1,622 reputation
1713
bio website martinstoeckli.ch
location Switzerland
age 42
visits member for 3 years, 1 month
seen 2 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.


Apr
27
comment Should password reset tokens be hashed when stored in a database?
@IanWarburton - I do not have a facebook account, so i cannot verify how they solved the password reset function.
Apr
27
comment Should password reset tokens be hashed when stored in a database?
@IanWarburton - A six digit number has not nearly enough entropy to be used as a token, so it is not safe to store its hash in the database. A salt won't help neither, because the salt is known and a million possibilities can be brute-forced in a fraction of a second. If you take the code as a password, you would have to use a slow salted key-derivation function at least.
Apr
27
comment Should password reset tokens be hashed when stored in a database?
@IanWarburton - No, hashing is a one-way operation and doesn't need a secret key. You probably think of an encryption algorithm which needs a key to decrypt the string. You could have a look at my tutorial about safely storing passwords to get more in-depth information.
Apr
27
comment Should password reset tokens be hashed when stored in a database?
If an attacker has read access to the database (SQL-injection), he could request a reset for any account he wants, even for admin accounts. Because he can see the new generated token, he could take over this account.
Apr
26
comment Should password reset tokens be hashed when stored in a database?
@IanWarburton - If your token has enough entropy, lets say 20 random characters 0-9 a-z A-Z, then you can calculate an unsalted fast hash (e.g. SHA-256 or SHA-512) and store it. This is safe, because it is not possible to successfully brute-force such strong "passwords". Salting is done, because passwords choosen by people are often relatively weak, because they have to be remembered.
Mar
19
comment Is it possible to perform a MITM attack with a smartphone?
Moxie Marlinspike demonstrated something similar with his notebook, and people did connect to his hotspot, see the SSL-strip demo.
Mar
8
comment Why do major sites(Facebook, Google, etc) still send passwords unhashed?
@RobW - This is good news, thanks for the info. It seems that key derivation functions are not widely supported yet, but anyway it looks promising.
Mar
4
comment Why do major sites(Facebook, Google, etc) still send passwords unhashed?
@Eckster - There is no reason this cannot be done on optimized hardware. Wellknown password cracker tools like hashcat support brute-forcing SHA* on GPUs, not to mention dedicated NSA hardware.
Mar
4
comment Why do major sites(Facebook, Google, etc) still send passwords unhashed?
@Eckster - I doubt it, because this is a race between a relatively slow interpreted script language, and optimized hardware like GPUs or even dedicated hardware, which can do calculations parallel.
Feb
19
comment Do most browsers handle mixed encrypted and unencrypted content correctly?
@trlkly - I think the decision to warn from mixed content is a good one. It would be very difficult for a user to know which parts are safe and which are not. Who says that a picture doesn't contain sensitive data? What other resources should be allowed unencrypted, webfonts, movies, external scripts? If an attacker can deliver an exploit inside a picture or movie, he could take over the client. A cookie can be restricted to HTTPS but do all developers know this and no one forgets to do it?
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.