1,572 reputation
1613
bio website martinstoeckli.ch
location Switzerland
age 42
visits member for 2 years, 9 months
seen 10 hours ago

I belong to the lucky people, who can combine job and hobby, in my case writing software. Coming from the Delphi world, i'm working now mostly with CSharp and use PHP for my spare time project, an internet lost-and-found office.

// Don't tell people that they do wrong, explain the reasons and let them think for themselves.


Sep
29
comment PBKDF2 used to generate an encryption key: long shared secret (password) vs iterations count
@ggo - Of course it depends on the importance of the data you want to protect, but at least you should explain it in the GUI where the administrator will enter his password. Even companies like Microsoft expect to tell them a generated token for activating their software, such a token would be a strong password.
Sep
29
comment PBKDF2 used to generate an encryption key: long shared secret (password) vs iterations count
@ggo - Well then the PBKDF is indeed the way to go, i edited my answer accordingly.
Sep
19
comment What are the differences between dictionary attack and brute force attack?
Most password cracker tools offer hybrid modes, where they prefer words from a dictionary, test variations, and finally test with brute-forcing. So you cannot always distinguish between the attacks, have a look at the attack-modes of hashcat for example.
Sep
13
comment Is my custom password hashing algorithm insecure?
Another thing you gain is convenience, the password_hash() function will pack all necessary parameters into the resulting hash-value (salt / cost factor / algo). This string you can store in a single database field.
Sep
10
comment Is there a brute-force attack similar to what they demonstrate in movies
Ahh yes, i just ignored that part, you are right then.
Sep
10
comment Is there a brute-force attack similar to what they demonstrate in movies
@sq33G - Timing attacks are very unlikely, because you would measure time differences comparing the hash and not the password itself. Have a look at this question.
Sep
10
comment Is there a brute-force attack similar to what they demonstrate in movies
Assuming that the password is hashed with an appropriate algorithm, you could only measure time differences comparing the hash, not the password, so you get no useful information.
Sep
3
comment How to avoid session fixation (Login CSRF) by MitM attack without HSTS?
What you are describing is SSL-strip. The problem is, that the server cannot detect whether the page was requested by the user or by a MITM. Even if there would be something like safe cookies, the MITM could transform them to normal cookies easily.
Jun
24
comment Aren't password managers still incredibly risky?
Passphrases are very strong passwords and are not difficult to memorize.
Jun
18
comment Can HSTS be defeated?
It depends entirely on the implementation of each browser, how the header is handled and stored. But i would be surprised when clearing the headers would be accessible by a script.
Jun
12
comment is it illegal to share customer credit card data
As far as i know storing credit card information requires to comply with the PCI standard. I'm pretty sure that after reading the requirements, your customer will reconsider implementing this feature.
May
27
comment Who can carry out Man-in-the-Middle (MITM) attacks?
If you have the time, then have a look at Moxie Marlinspikes video about SSL-strip. He talks about setting up a public WLAN hotspot for demonstration.
May
1
comment Password Hashing Without a Unique Salt
Whether your hashing scheme is sufficient you will find out as soon as your hashes where stolen, then you will have to contact your customers, and tell them that unfortunately their passwords are not well protected. I cannot imagine a modification so huge, that it is worth the risk. Every hashing scheme must be able to change to more secure standards from time to time, this is not only a one time job.
Apr
26
comment How to apply a pepper correctly to bcrypt?
@Powerman - It is surely a good idea to ask the users for strong passwords, but unfortunately it's not under your control. The password "Password-2014" will pass most checks, but is not very strong. As for SQLi, SQL-injection can be prevented easily with parametrized queries, only third party libraries are a problem. Reading files from the server with SQL is even much more difficult and works only with certain database configurations, so in my opinion encrypting with a server-side key should be done in any case.
Apr
25
comment How to apply a pepper correctly to bcrypt?
@Powerman - The purpose of the key is, that the attacker needs to gain additional privileges on the server (he needs the key, the database alone won't do), not to make the hash more safe (this is the job of BCrypt). Of course if the encryption is done wrong you may get the hashes, that's what Thomas mentioned, but this is a question of using a good library. The advantage is, that you can exchange the key whenever you have need to, even periodically. Another discussed point is, that you do not interfere in any way with the hash algorithm.
Apr
25
comment How to apply a pepper correctly to bcrypt?
@Powerman - The pseudo code is based on the PHP implementation of the hash_hmac() function.
Apr
25
comment How to apply a pepper correctly to bcrypt?
@Powerman - There is a better way to add a server side key to the hash, i updated my answer to point it out. Doing it this way you cannot decrease security, because in the worst case an attacker just gets the original hashes. I wrote a tutorial about safely storing passwords, where i tried to describe it more indepth.
Mar
26
comment When and where do I hash a password?
The answer of this question Why is it not standard practice to run password-based KDF's client-side also explains pros and cons of client side hashing.
Mar
22
comment Why use PBKDF2 over multiple iterations of a another cryptographic hash function?
Could you explain why you think that PBKDF2 is superior to BCrypt?
Mar
21
comment Why is it not standard practice to run password-based KDF's client-side?
@xkcd - What Levi tried to explain is, that it is absolutely safe to store an unsalted non interated hash, if the "password" is strong enough. Salting and key-stretching is necessary, because people choose relatively weak passwords, which they can remenber. The output of a PBKDF2 on the other side is a very strong "password", and can be hashed with a hash algorithm like SHA512 even without a salt.