6 ms·
I would consider key management to be a greater problem than implementation, at this point. There are many verified, open-source, freely-licensed cryptography l
by quanticle 15y ago
I would consider key management to be a greater problem than implementation, at this point. There are many verified, open-source, freely-licensed cryptography libraries out there. You shouldn't be rolling your own implementation.
Unfortunately, key management is still a difficult problem. Without secure keys, even the most secure encryption becomes nothing more than an inconvenience.
- tptacek 15y agoEveryone says this, because Applied Cryptography (not a good book) says it. But no, the problem of coming up with a good 128 bit or 256 bit key is not the hardest part of getting a cryptosystem working. Plenty of static-keyed systems, in which keys are more or less guaranteed to come from /dev/random, end up totally busted. You seem to be thinking that when I say "implement", I mean, "building an AES core library from scratch". No. I mean properly using a well tested, totally sound AES library in a way that doesn't leave your application totally boned.
- cperciva 15y agoI've seen a lot of broken key management. People using MD5(passphrase) (cough OpenSSH cough) as a key, people downloading public keys over insecure networks and not verifying them at all, people distributing secret keys along with software destined to be run on hostile systems... I'm happy to say that systems which try to generate random passwords do tend to generate securely random passwords, though. /dev/random has been a huge help there.
- yuhong 15y ago>people downloading public keys over insecure networks and not verifying them at all And note that SSL download public keys over insecure networks. Verifying them is why certificates were created
- tptacek 15y agoYou wouldn't want to leave anyone with the impression that they're mostly fine as long as their keys are securely generated.
- cperciva 15y agoNo, of course not. That's why I work so hard to point out the ways that people get crypto wrong (and how to do it right). I'm just saying that key management is absolutely not a solved problem yet.
- tptacek 15y agoYeah yeah, not arguing, just wanted us both on the record on this point. Crypto: dangerous.
- bonzoesc 15y ago> You seem to be thinking that when I say "implement", I mean, "building an AES core library from scratch". No. I mean properly using a well tested, totally sound AES library in a way that doesn't leave your application totally boned. Can you please fix the images on your blog post about that :)
- waitwhat 15y agoCome on, "coming up with a good 128 bit or 256 bit key" is only a very small part of key management (and, as you note, probably also the easiest part of key management). You know this.
- tptacek 15y agoYou misunderstood me. What I did was come up with the simplest, most reliable key management system there is (static keying with secure keys), and presumed it to be safe. Then I pointed out that such an application is still likely to be boned by implementation flaws that have nothing to do with how the keys are established.
- deleted 15y ago[deleted]
- quanticle 15y agoIts not coming up with keys that's the problem. Its storing the keys in a place that's only accessible to authorized users while not incurring massive performance or usability problems that's the issue.