141 reputation
6
bio website bernd.eckenfels.net
location Karlsruhe, Germany
age 42
visits member for 1 year, 9 months
seen Jul 22 at 4:23

Chief Architect at a german ISV. Java Guru, IT-Security freak, married and pirate.


Apr
25
comment SSL cert minimize downtime key rotation strategy
Important: if you generate a new CSR you also need to generate a new key. It is not uncommon to request new certrificates with the old key. But this is generally bad and especially bad for heartbleed mitigation.
Apr
8
comment How exactly does the OpenSSL TLS heartbeat (Heartbleed) exploit work?
@supercat no, the openssl layer which processes records will allocate and store the ssl record based on the (first) record length. This stored record is handed to the extension processing, where another length identifier inside the record is used. And the later one happens to have a larger number. So the memcopy starts at the beginning of the valid record and includes data after it. I suspect its a malloced buffer (even when thats a weird thing for high performance network code.) Check the diagnosis link above.
Apr
8
comment How exactly does the OpenSSL TLS heartbeat (Heartbleed) exploit work?
@supercat I dont think the actual buffers are a problem here, the network buffers get overwritten, so when you extract memeory its only the current stuff in memory. And you cannot overwrite stuff you need later on (like cached sessions). And in fact zeroing is quite a high overhead for web servers. I think however some more static allocation of ssl record buffers would not only improve performance but also leaking random system memory (especialy initially allovated "system parameter" memory like the key)
Apr
8
comment How exactly does the OpenSSL TLS heartbeat (Heartbleed) exploit work?
While it is not a flaw in the TLS extention or the TLS protocol, the TLS specification is still somewhat responsible. The layering of messages inside records and the fact that you typically have multiple length specifications inside those records as a very fragile protocol design and asks for trouble. Even worse when implementations do not abstract the segmentation and parsing away with safe helper methods (so all extension parsers need to reinvent the wheel).
Jan
9
comment Location to store an encryption key
Yes, the encryption secret and the memcached credentials would have to be stored persistent on the filesystem (accessible to the www-run user). There is not really a way to avoid that (unless you use hardware based protection, but there is not really a good solution as TPM sealing is too slow for transactional data).
Jan
4
comment Does the Oracle Database Built-in Password Protections prevent pass-the-hash or replay attacks?
Advanced Security allows wrapping the connections in certificate based SSL/TLS.
Jan
4
comment Location to store an encryption key
Be carefull with using the password alone: when the user changes the password he wont be able to access the old data. You eighter have to re-encode all old data or you introduce a new indirection: the user hash decrypt a session key. When you set a new password you keep the session key and re-encode it with new user hash. BTW: if you need to store encrypted data from a non user-process, use public key crypto for the session key.
Jan
4
comment iptables: plaintext password protection
It might be obvious, but: do not use a common password for all sides and do not use unencrypted password transmits.
Jan
4
comment iptables: plaintext password protection
This does not reliable work depending on the encoding and fragmentation/chunking of the string transferred. But I guess it is (besides using filtering proxies which are better but not perfect in decoding different protocols) the correct answer to the question.
Jan
5
comment Preventing user supplied javascript from posting to external server
Actually CSP has the "connect-src" attribute, but yes the best separation can be achieved by downloading the plugin from its own origin/domain.
Dec
21
comment How can I explain SQL injection without technical jargon?
I typically try to skip the details if it is not a technical user but only describe the risk and effect. "If $software has a bug which allows SQL injection an attacker can smuggle commands into your database to destroy or modify data or passwords." Why would you want to go to the details of sql parsing, prepared statements and quoting.
Dec
21
comment Resource consumption attacks against algorithms
Actually the Apache Range Header bug is not a hash collission problem. Apache had hash problems as well.
Dec
21
comment How secure is opening an incoming port for a java application?
No, it is not the "Java vulnerability" you need to care here about but the actual java application which is started with java. For example you can write a Java appication which deletes a file every time you receive a UDP message. Or allows upload of files and executes it. So basically the risk depends on the java program. Java Runtime Bugs would come on top of that (but are rather unlikely for simple udp ports).
Nov
22
comment How to securely hash passwords?
It is not "most common" or "best". Most common are crypt() family hashes or even unsalted variants. KDFs are not designed for that and therefore be used with care. Dont know what the "best" is (it depends on your goals I guess), but bcrypt and scrypt or even sunmd5 is more purpose build.
Nov
22
comment Is PBKDF2-based System.Cryptology.RFC2898DeriveBytes() “better” for Unicode Password hashing than traditional methods?
For most salted encryption schemes which are used out there in the wild the salt is not hidden. Thats not a helpfull restriction. You cannot legitimately re-produce the hashing if you dont know the salt.
Nov
22
comment Is PBKDF2-based System.Cryptology.RFC2898DeriveBytes() “better” for Unicode Password hashing than traditional methods?
I disagree on the "nist-sp800-132" approves PBKDF2 for "hashing and storing passwords". It actually talks about using PBKDF2 as a KDF for deriving data protection keys which are used to encrypt stored data.