Replies: 4 comments 33 replies
-
It sounds like that's a sensible idea (it's recommended by NIST), although it's unclear to me how big of an issue this is. It might be problematic with non-English keyboards, which is something I've never tested. That just never occurred to me. It doesn't seem that widely discussed, and it looks like age and probably lots of programs don't do normalization either. |
Beta Was this translation helpful? Give feedback.
-
See also: https://datatracker.ietf.org/doc/html/rfc8265
However, it has been discussed for over 20 years (at least since RFC 3454 and RFC 4013) and is widely recommended by NIST and IETF. |
Beta Was this translation helpful? Give feedback.
-
@hakavlad thanks for pointing this out on the Age project (which I silently follow). Following @samuel-lucas6's comments, I see that his main counterargument is the unreliability of non-ASCII passwords, which is in fact @hakavlad main purpose for Unicode normalization, and unfortunately on this subject (namely "passwords") I think I side with Samuel's argument. For example, I've developed a password generator tool (and a few related topics), and a few weeks ago I was pondering of adding Unicode-exclusive password patterns (i.e. just emojis or non ASCII-based passwords). But I've decided against that because I think they'll generate more issues that they'll solve (for once due to possible poor support for Unicode inputs, and second for the portability issue). (The main feature would have been increased entropy for the same "visual length", but as Samuel said, entropy can easily be increased with ASCII-only passwords.) However, and the reason I've opened my own ticket on the subject, is that sometimes there might be cases where Unicode inputs (that do contribute cryptographically) could be encountered. For example in the case of Associated Data (as part of AEAD) encryption schemes. (Similar to Kryptor and Covert, I too have implemented as part of Now, I don't think this is the case for Kryptor (based on what I've read from the specification), but imagine that one adds a CLI argument like In such a case, the user is more likely to texts native to his own tongue, and thus Unicode. Thus perhaps, especially in such situations Unicode normalization would be a requirement. Getting back to Kryptor, it allows the usage of both a password and a secret key file (shared secret); thus a user might just use the secret key file as the intended password, and the "password" as the "additional data" in a scheme similar to the above. In the end, each developer makes a decision based on his priorities (which might be completely different from another's). However I find this discussion quite interesting, at least from a theoretical point of view. Perhaps, if a tool doesn't support Unicode normalization for a particular input, and that normalization is essential for portability (or cryptography), perhaps that tool should issue a warning or error on the usage of non ASCII inputs? How about CLI tools (in Linux/BSD environments) that receive C-strings as inputs (i.e. byte arrays terminated by |
Beta Was this translation helpful? Give feedback.
-
I've updated the website, adding a section in Known limitations and a warning on the Tutorial pages talking about using a passphrase (e.g., this page). I'll look into adding a warning in the program based on char values exceeding ASCII. |
Beta Was this translation helpful? Give feedback.
-
https://github.com/covert-encryption/covert/blob/main/docs/Specification.md#argon2-password-hashing
What do you think about it? Why doesn't Kryptor do Normalization?
Beta Was this translation helpful? Give feedback.
All reactions