Here is the text of the NIST sp800-63b Digital Identity Guidelines.

  • Amanduh@lemm.ee
    link
    fedilink
    English
    arrow-up
    8
    ·
    2 days ago

    Can you elaborate further? Why would someone want to truncate passwords to begin with?

    • essteeyou@lemmy.world
      link
      fedilink
      English
      arrow-up
      22
      ·
      2 days ago

      To save a few megabytes of text in a database somewhere. Likely the same database that gets hacked.

      • orclev@lemmy.world
        link
        fedilink
        English
        arrow-up
        26
        ·
        2 days ago

        Which shouldn’t even matter because passwords are salted and hashed before storing them, so you’re not actually saving anything. At least they better be. If you’re not hashing passwords you’ve got a much bigger problem than low complexity passwords.

        • essteeyou@lemmy.world
          link
          fedilink
          English
          arrow-up
          31
          ·
          2 days ago

          The place that truncates passwords is probably not the place to look for best practices when it comes to security. :-)

          • orclev@lemmy.world
            link
            fedilink
            English
            arrow-up
            5
            arrow-down
            1
            ·
            1 day ago

            Hashing passwords isn’t even best practice at this point, it’s the minimally acceptable standard.

            • frezik@midwest.social
              link
              fedilink
              English
              arrow-up
              2
              arrow-down
              1
              ·
              edit-2
              1 day ago

              Sorta. Not really.

              Key derivation algorithms are still hashes in most practical ways. Though they’re derived directly from block ciphers in most cases, so you could also say they’re encrypted. Even though people say to hash passwords, not encrypt them.

              I find the whole terminology here to be unenlightening. It obscures more than it understands.

              • orclev@lemmy.world
                link
                fedilink
                English
                arrow-up
                2
                ·
                1 day ago

                A KDF is not reversible so it’s not encryption (a bad one can be brute forced or have a collision, but that’s different from decrypting it even if the outcome is effectively the same). As long as you’re salting (and ideally peppering) your passwords and the iteration count is sufficiently high, any sufficiently long password will be effectively unrecoverable via any known means (barring a flaw being found in the KDF).

                The defining characteristic that separates hashing from encryption is that for hashing there is no inverse function that can take the output and one or more extra parameters (secrets, salts, etc.) and produce the original input, unlike with encryption.

                • frezik@midwest.social
                  link
                  fedilink
                  English
                  arrow-up
                  1
                  ·
                  edit-2
                  1 day ago

                  OK. How do you reconcile that with “Hashing passwords isn’t even the best practice at this point”? Key derivation functions are certainly the recommended approach these days. If they are hashes, then your earlier post is wrong, and if they aren’t hashes, then your next post was wrong.

                  • orclev@lemmy.world
                    link
                    fedilink
                    English
                    arrow-up
                    1
                    ·
                    1 day ago

                    The rest of that sentence is important. Hashing passwords is the minimum practice, not best practice. You should always be at least hashing passwords. Best practice would be salting and peppering them as well as picking a strong hashing function with as high a number of iterations as you can support. You would then pair that with 2FA (not SMS based), and a minimum password length of 16 with no maximum length.

      • frezik@midwest.social
        link
        fedilink
        English
        arrow-up
        1
        ·
        edit-2
        1 day ago

        Lots of older databases had fixed length fields, and you had to pad it if it was smaller. VARCHAR is a relatively new thing. So it’s not just saving space, but that old databases tended to force the issue.

        Nobody has an excuse today. Even Cobol has variable length strings.