this post was submitted on 07 May 2024
41 points (97.7% liked)

Privacy

32045 readers
1010 users here now

A place to discuss privacy and freedom in the digital world.

Privacy has become a very important issue in modern society, with companies and governments constantly abusing their power, more and more people are waking up to the importance of digital privacy.

In this community everyone is welcome to post links and discuss topics related to privacy.

Some Rules

Related communities

Chat rooms

much thanks to @gary_host_laptop for the logo design :)

founded 5 years ago
MODERATORS
 

I use Aegis as my 2fa. Today on new token creation I observed that there's hash function set to SHA-1, later checked all my tokens and the result is same type of encryption used for all. So I have edited all my tokens to SHA-256 as a result my totp doesn't authenticate. Do I have to rescan my tokens for updating to SHA-256 or it doesn't work like that?

Security: SHA-1 < SHA-256 < SHA-512

Speed: SHA-1 > SHA-256 > SHA-512

My doubts are: Why can't we use SHA-256? Is it because TOTP requires less time so faster one(SHA-1) is chosen? Can we use SHA-256 for TOTPs?

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 22 points 6 months ago* (last edited 6 months ago) (2 children)

I think this question might be missing the point of TOTP and protection it provides. The reason 256/512 is used to encrypt data and passwords is to prevent the possibility of brute force and other attacks (e.g. using other data breaches). This doesn't really matter with TOTP. They can't reverse engineer a TOTP password out of you. They can't use your info from prior breaches to gleen what your TOTP might be anywhere else. It's not something where "cracking" the hash is likely to be attempted, as an attacker would still have to capture the generated codes and time of input in some way, then brute force hashes until they generate one that produces the correct codes at x time. Why would they ever do that when it would be a thousand times easier to compromise a device or TOTP app, and scrape the hashes directly from it; negating any need to brute force?

Note: I am not a cryptographer and have not implemented a TOTP server, so I could be completely wrong.

TL;DR 256/512 wouldn't necessarily increase the security of TOTP at all.

[–] [email protected] 10 points 6 months ago

capture the generated codes and time of input in some way, then brute force hashes until they generate one that produces the correct codes at x time

Given a TOTP key is usually at least 18 characters for a 6-digit code, having only one data point sticks you with something on the order of 10^28 possible keys for a given singular code (way more if case sensitive). You'd need to be regularly intercepting TOTP codes to brute force your way to the right key, and even then it'd only be valid for a single site. At that point it probably means you've fully compromised the connecting device or server, at which point, why do you even need the TOTP again?

[–] [email protected] 4 points 6 months ago

You should be using bcrypt or something similiarly designed to hash passwords, since they are much safer than sha256/512. Sha is not designed for hashing passwords and therefore a fast algorithm which you shouldn't use for passwords