auditdrivencrypto / secure-channel

secure-channel that protects all communication between two peers
MIT License
25 stars 3 forks source link

"(Updated) Crytographic Right Answers" by tptacek #8

Open pfrazee opened 9 years ago

pfrazee commented 9 years ago

https://gist.github.com/tqbf/be58d2d39690c3b366ad

This is a nice file written by tptacek of matasano.com fame. Worth reading, and possibly working into the repo.

dominictarr commented 9 years ago

There are some things he says that are a bit fuddy - he may well be right, but what makes them fud is not explaining/linking why (promoting clarity). For example - he says don't port or reimplement curve25519 - okay but what sort of mistakes can you make? I am sure the full answer is very long, but we need a pointer in the correct direction.

We need security, but we need to know we have security (not the same things!). To know we have security we need to understand and be able to reason about the properties.

For example - AES is difficult to implement securely, because the cipher has branches, it allows side channel attacks (another program running on the same cpu can detect what it's doing from cache timing etc), but salsa/chacha avoids this by simply never branching (all memory accesses are predictable, and thus do not reveal any information about the key)

pfrazee commented 9 years ago

Im digging around to find some answers about emscripten ports. Here's the only thing I've found so far: https://groups.google.com/forum/#!topic/emscripten-discuss/S_l2waYg33M