Take the 2-minute tour ×
Information Security Stack Exchange is a question and answer site for Information security professionals. It's 100% free, no registration required.

There are various services on the internet that offer secure communications. Typically in the past if I want to share some sensitive information with someone, I will do so over a Cryptocat chat session, Privnote, or through an IRC channel set up on a "no log" VPN.

Am I looking in the right places when it comes to the services I use to keep my anonymity? Are there any flaws in these technologies? And what quite simply, what else is out there that you would recommend?

Edit: In reply to @Graham Hill, my immediate priority would be to first ensure that the information I am relaying gets to the person I am talking to, and only to that person. Obviously once they have it, it's up to their discretion on how they're going to store it, I'm more speaking in terms of making sure that the infrastructure is set up so that the only cause for data being leaked would be improper storage of the information by either party.

share|improve this question
I haven't done much research into it, but Torchat sounds like it might be exactly what you want. –  Polynomial Jan 8 '13 at 7:07
In person, on a solitary raft in the middle of the ocean. That's about as secure as I can think of. –  tylerl Jan 8 '13 at 8:39
Face to face of course. –  k to the z Jan 8 '13 at 21:02
@Tylerl - no, deep in a cave in the middle of no where with nobody around. A satellite might be able to see the exchange in the ocean and would reveal you were communicating. ;) –  AJ Henderson Jan 9 '13 at 14:44
Don't forget to be naked inside a Faraday cage. –  lynks Jan 9 '13 at 15:14

5 Answers 5

up vote 18 down vote accepted

Before looking at specific technological solutions, you need to do some thinking about your threat model. Who is the "enemy"? What do they want, and what resources do they have?

For example, keeping the content of the communications secret is one thing, hiding the fact that you are communicating is another, verifying the identity of the other person is yet a third.

And keeping secrets from your mom is one thing, keeping secrets from the Politburo Standing Committee of the Communist Party of China is another.

You also need to understand your resources. Can you establish a short-term secure channel to the other party (so you can exchange keys)? Can you use cut-outs? Can you arrange to use a different computer each time you communicate?

share|improve this answer
Figuring out an appropriate key-management scheme and thread model is usually the hard part. The actual crypto typically is easy by comparison. –  CodesInChaos Jan 8 '13 at 16:10
I like this answer and have made edits in my original post to reflect further questions. –  Josh Terrill Jan 8 '13 at 18:06
If your priority is security of the data while in transit, that's very simple: emailing properly encrypted files back and forth will work just fine. Try PGP - apparently it's what Edward Snowdon is using to talk to the Guardian. ;-) –  Graham Hill Jul 8 '13 at 17:40
Authentication, Authorization and Accounting. –  Fiasco Labs Feb 3 at 17:38

Well, technically the answer to your question is use one time pads and an anonymising network like Tor. One time pads provide the highest security because they are guaranteed to be unbreakable as long as their key is truly random and not compromised. Tor then provides the anonymity. That said, one time pads are not generally practical since it requires a secure means to share the pad out of channel.

The second best means of encrypting communications is a much harder question to answer, but I'd probably go for something like an AES based cipher over an anonymising network with a public/private key pair for signing. Note that the algorithm choice would have to be exchanged out of band since you want to maintain anonymity. Optionally, you could drop the signing portion if you only wanted it to be possible to identify that the message had come from some party privy to the AES key rather than knowing specifically who the sender is among those party to the communication.

If anonymity is a big concern, another possible approach is to use steganography, which is a method of concealing the existence of the message entirely. You could then (in theory) make seemingly innocuous posts publicly and only the intended recipient would know to look for the message.

share|improve this answer
@JonathanGarber - thanks for adding the great link and the spelling fix. –  AJ Henderson Jan 8 '13 at 21:17

I plan to communicate with my family across the planet who does not know much about encryption. Otherwise I would ask them to simply use GPG.

In this instance, I like to make the communications simple.

I prepare before hand, a small list of about 100 different passwords, randomly generated, each one is 40+ characters long, consisting of letters and numbers.

The reason for such a small character set is to avoid human errors or confusion. The length of the password makes it effectively 256 bit level security.

Then I print two copies of this list, and they exist only on paper print out.

I give one copy to my brother, I keep the other one for myself. No one else has this list. It's easy enough for them to secure this.

I can then email them from another country and when we need to transmit information securely, I would encrypt either the message or attach an encrypted archive using one of those passwords, and just identify which one in the list (I numbered them from 1 to 100 already, for example.)

Why a list? Well, each password is only used once, then crossed out of the list.

Why only one hundred? That's more than we need, and once every few years I can fly back to them and hand them another set.

Otherwise, we'd simply use OTR for real time chat and GPG for emails. The password list is a nice option since it's easy to understand for them, and I think they can keep that piece of paper secure.

share|improve this answer

This is a really interesting question. Cryptography, I think, is shrouded in uncertainty. History is riddled with instances where the world 'knew' that their method of encryption was completely secure, only to discover years later that wasn't the case. Usually once they were in jail, or the war was over already.

You see.. Eve (the nickname we give to the person trying to evesdrop in Cryptography http://en.wikipedia.org/wiki/Alice_and_Bob), is at an advantage if she knows how to decrypt a message if Alice and Bob don't know she can. Because they will continue to communicate while she eves drops.

While a little out of my depth, people are well into the realms of Quantum Cryptography. Which as Simon Singh explains in his book 'The Code Book', will really blow most currently known encryption methods out of the water. Even if we were to simplify this, hackers are now using cloud architecture to increase computing power massively to decrypt information.

You only have to look at the competitions held at conventions like Defcon every year where the competitors seem to have machines and resources 10 times what they had last year :)

You could possibly argue, that as time has gone by code breaking has become just as much about computing power as it has about the method of decryption itself. I.e. it doesn't take a computer to break the Casesar Cipher (http://en.wikipedia.org/wiki/Caesar_cipher) but you better hope you have some computer power to break say, MD5 or DES.

In that sense, it's hard to answer what the most secure method of communicating is right now.. We can't be 100% safe in the knowledge that publically known encryption methods can't be broken.

So how can we securely communicate in the real world? Well.. I think we need to consider the very first communications.

Assuming it's true that, given enough computing power, AES256 can be broken.. commonly considered 'military grade' encryption, I think we need to focus on other means of being safe. I think that is in the initial communication. If you assume we're utilising public key bases ideologies, once each person has the key, they need only send encrypted messages without the key. Some communications lend themselves well to that, I think.

PGP encryption is good I think. Because you can physically pass the key on a piece of paper, memorise it, which you can later burn, for example.

I quite like OCR (http://www.cypherpunks.ca/otr/) which is similar but also integrates with a few instant messaging programs.

tl;dr ultimately nothing will always be secure, if trends in history prevail. But something where you can share a key and never repeat it out loud is possibly about as good as you can get right now.

p.s. i'm no expert. Just sharing what I know :)

share|improve this answer
"Considering it's true that, given enough computing power, AES256 can be broken" No amount of classical computers can brute-force AES-256. To break a 256 bit key you either need new kinds of hardware which are ridiculously better than conventional computers, or you need to cryptoanalyze AES. –  CodesInChaos Jan 8 '13 at 12:22
You're right. That was worded badly. My point was, that if historic trends continue, we can't be sure that it is unbreakable. Therefore, when considering the best way of communicating, we need to look at ways that we can control - i.e sharing the key itself securely :) –  BIGMOOSE Jan 8 '13 at 12:29
While good key exchange is critical, it doesn't increase the security of data at rest. It's also worth noting that Quantum cryptography is primarily useful against Asymmetric cryptography, not symmetric. Asymmetric is all based on "hard to solve"TM math problems, some of which become much easier with quantum computers. Breaking encryption is also still about finding tricks. Yes, massive amounts of computing power are needed, but finding the tricks that reduce entropy and allow it to be cracked on current hardware are the hard part. Also, are you confusing AES and DES? –  AJ Henderson Jan 9 '13 at 14:28
AES is thought to be secure last I knew, though DES has some attacks that can work against it through collisions as I recall. That's why triple DES is recommended when using DES now, though AES is preferable. PGP and GPG aren't encryption algorithms, but rather encryption schemes that use a combination of other algorithms to perform certain cryptographic functions. They can often be configured to use different ciphers as well and the security will depend on the ciphers used. –  AJ Henderson Jan 9 '13 at 14:30
If true future proofing is an absolute requirement, one time pads are the only real option that is known that no amount of computing power will break as long as the key remains secure. The trick is of course how to exchange the key securely and store it securely. It's mostly helpful for protecting data on the line. –  AJ Henderson Jan 9 '13 at 14:32

IMHO if the two persons know each other and has somehow been able to establish and securely keep a good encryption key, then using a good encryption scheme (with authetication to take care of modifications) to encrypt the messages and transmitting (over a channel that by itself barely causes any suspicions from third persons) the bits of the ciphertexts with a good steganographic scheme would be an answer to your question. Note though you would thereby certainly face the trade-off of security vs. cost (including time and effort spent, low efficiency etc.). For higher security naturally incurs a higher cost (in conformance to the ubiquitous "No Free Lunch Principle"). On the other hand, with sufficient cost, the measures mentioned above are in fact all realizable to a highest and very satisfying degree in practice in my personal conviction.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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