I wonder if it's possible to develop a secure point to point encryption application (a pgp message application for example) on a proprietary software.

If such an application was developed, let say on iOS or OS X or any proprietary OS, what are the chance that the OS could break it, intercept data, etc...

That lead me to the question : can I trust my gpg program (or any of my encryption program) on my OS X / Windows computer? Apple, Microsoft,... couldn't bypass my software?

What are your policies? Do you trust companies? Can you prove that they cannot access encrypted data on their OS?


Yes, it's possible to trust companies. You do it all the time. If you use Windows, you're trusting Microsoft very heavily. Same goes for Apple if you use any of their products. When you use HTTPS you're trusting a whole raft of Certificate Authorities, most of whom you've never heard of before.

Most of the companies that you're forced to trust when you use their products have ample opportunity to circumvent other protections you have in place.

Should you trust them? That depends on your context. It depends on your exposure, your appetite for risk, the cost of compromise, the cost of defense; everything.

In most cases there are technology alternatives that allow you more control over your trust environment. If a project is open-source, then you can vet the code yourself, compile it yourself, and build on your own trust roots. Obviously you need to trust your compiler, which means you have to build it with a trusted compiler, and turtles all the way down. If you aren't skilled at vetting code, then vetting it yourself isn't really an option, so you have to trust someone else to do that for you... which sort of defeats the purpose.

Trust is inevitable, unavoidable. What you have to decide is whom to trust.

And asking for trust advice in an anonymous forum on the Internet carries a certain irony that can't be ignored.

  • Haha I understand the irony, but I'm not asking whom to trust but how to trust. Besides, I was interested to know if a perfectly secure solution could work on a system you don't trust because you can't fully trust your hardware or your OS or your SP. – luxcem Feb 28 '14 at 8:41

Bruce Schneier in his article linked to register site. In the article, the author talks about a virtual scenario where you want to ensure trust in all parts of the processes. By showing the true, but ridiculous things you would have to do for controlling things from start to end.

To quote a relevant extract:

The truly paranoid would worry about backdoors being built into the app. The solution to that is independent audits. A requirement for those audits is that the auditors come from different jurisdictions, making it impossible to claim that all the auditors could have been ordered – or coerced - by any one entity to overlook such critical flaws.

Updates should be delivered via a pull (rather than push) mechanism, the updates posted to the site and the server software going out to grab them. There should be no means by which the centralised service could directly interact with the deployed base of servers. These updates could be similarly scrutinised to ensure that they do not introduce any back doors into the system.

I could go on, but I believe the point is made. We are heading into a world of cloud computing where trust is going to be a huge issue. It is no longer simply a matter of trusting that the software you buy works as advertised

Then, there is a small section about trust as a design. Basically, no one has the time and the money to invest in it.

As a conclusion, I will cite the introduction of the article:

Avoiding insanity requires trusting those who designed, developed and manufactured the instruments of our daily existence.

In brief, you can't trust the people who developed the tools you are using, but you have to if you want to move on and do something. From some point or another, if you want trust, you have to make a leap of faith. This can be done a every level: developer, compilers, hardware manufacturers etc.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.