In password security, the longer the better. With a password manager, using more than 24 characters is simple. Unless, of course, the secure password is not accepted due to its length. (In this case, through STOVE.)

Possibly indicating cleartext storage of a limited field (which is an absolute no-go), or suboptimal or lacking security practices.

  • MolecularCactus1324@lemmy.world
    link
    fedilink
    English
    arrow-up
    52
    ·
    6 days ago

    At least they tell you. I’ve had inputs take the full password and then truncate it silently, so you don’t actually know what they saved. Then, you try to login and they tell you wrong password.

    • Tenkard@lemmy.ml
      link
      fedilink
      English
      arrow-up
      6
      ·
      5 days ago

      Yes I’ve had issues with this as well, since I’m a child I’ve set my password generator length at 69 characters… A small trick I’ve found is to delete and rewrite the last character of one of the two repeated passwords since often the validity check gets triggered on write but not on paste

  • mcat@lemmy.world
    link
    fedilink
    English
    arrow-up
    41
    ·
    6 days ago

    My worst experience so far was a webpage that trimmed passwords to 20 characters in length without telling you. Good luck logging in afterwards…

    • drewcarreyfan@lemm.ee
      link
      fedilink
      English
      arrow-up
      28
      ·
      6 days ago

      One of my favorite memories of how much Something Awful’s sysadmins were absolutely amateur hour back in the early 2000s was the “lappy” to “laptop” debacle. Apparently Lowtax found the term “lappy” so annoying that he ordered his system administrator to do a find/replace for every instance of “lappy,” replacing them with “laptop.”

      Unfortunately this included usernames and passwords, as well as anything that just managed to have the letters “lappy” in that order anywhere in the word. So, there was one user named ‘Clappy’ who woke up one day to find his name changed to ‘Claptop.’ Apparently this is also how people discovered that they were storing password unsalted in plain text in a fucking MySQL database, which if you’re old enough, you probably already remember that the combination of MySQL and PHPmyAdmin were like Swiss cheese when it comes to site defense. :p

    • SkunkWorkz@lemmy.world
      link
      fedilink
      English
      arrow-up
      3
      ·
      5 days ago

      I remember some office software that didn’t accept certain special characters but didn’t tell the user and just accepted the new password. I had to bother IT support many times to reset my password.

    • Randelung@lemmy.world
      link
      fedilink
      English
      arrow-up
      4
      ·
      6 days ago

      Common mistake for amateurs that found a password library and used it without reading the documentation. E. g. bcrypt will tell you to salt and hash the password before digesting it into constant length output for your database.

      Salting before doing anything else is basic password security. I assume the webpage in question doesn’t do that, either.

  • kepix@lemmy.world
    link
    fedilink
    English
    arrow-up
    20
    ·
    5 days ago

    i once used 20 for a bank. the website havent told me it was too long just clipped off 2 and accepted the rest. not even the banking support was able to help me. took me a few days to solve this by accident.

    • Nora (She/Her)@lemmy.dbzer0.com
      link
      fedilink
      English
      arrow-up
      5
      ·
      5 days ago

      This shit always pisses me off. I’ve encountered it in like 2-3 places over the years since I started using a password manager, and every time it’s so frustrating and hard to figure out.

  • foggy@lemmy.world
    link
    fedilink
    English
    arrow-up
    73
    arrow-down
    4
    ·
    6 days ago

    Okay so I agree with you that a longer password is better but this in no way indicates clear text password storage.

    • Zikeji@programming.dev
      link
      fedilink
      English
      arrow-up
      60
      ·
      6 days ago

      Is the maximum 24 characters because their database column is a VARCHAR(24)? That’s one of the first questions that I thought of. Sure, it doesn’t guarantee plaintext, but it’s a indicator that it may be stored plaintext, considering hashing doesn’t care about length. Or at the very least whoever has had eyes on this code doesn’t know shit about security, which makes me less confident in the product as a whole.

      The only reason I can think of to have a maximum would be to save on bandwidth and CPU cycles, and even then 24 characters is ridiculously stingy when the difference would be negligible.

      • x00z@lemmy.world
        link
        fedilink
        English
        arrow-up
        37
        ·
        6 days ago

        bcrypt hashes only the first 72 bytes. 24 characters is the max amount of 4 byte UTF8 characters when using bcrypt. Which is stupid because UTF8 is variable, but still, it’s a possible explanation.

      • Redjard@lemmy.dbzer0.com
        link
        fedilink
        English
        arrow-up
        3
        ·
        6 days ago

        Cryptographic hash functions actually have fixed runtime too, to avoid timing-based attacks.
        So correct password implementations use the same storage and cpu-time regardless of the password.

        • Ziglin (it/they)@lemmy.world
          link
          fedilink
          English
          arrow-up
          1
          ·
          3 days ago

          I figured it was about the time spent transmitting. But the password should probably be hashed before sending as well as upon arrival at the server, correct?

          • Redjard@lemmy.dbzer0.com
            link
            fedilink
            English
            arrow-up
            1
            ·
            3 days ago

            It isn’t usually. If it was, the server-side function wouldn’t need a constant runtime at different-length inputs since the inputs would not have differing lengths.

            The problem with client-side hashing is that it is very slow (client-side code is javascript (for the forseeable future unless compatibility is sacrificed)), unpredictable (many different browsers with differing feature-sets and bugs), and timing-based attacks could also be performed in the client by say a compromised browser-addon.

            For transit a lot of packaging steps will round off transfer-sizes anyhow, you typically generate constant physical activity up to around 1kB. Ethernet MTU sits at ~1500 bytes for example, so a packet of 200 bytes with a 64 char password or a packet of 1400 bytes with a 1024 char password containing some emoji will time exactly identically in your local network.

      • AA5B@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        6 days ago

        I would have thought the opposite. I remember having a familiar conversation: “we need a sanity check in the password: what would no sane person do?” I believe we cut it off at 64 characters, but I can see someone thinking 24 is kore than enough, if they’ve never used a password generator.

    • troed@fedia.io
      link
      fedilink
      arrow-up
      34
      arrow-down
      6
      ·
      6 days ago

      It does. If you hash the user passwords, which you should, the hash is always the same length and it’s thus irrelevant how many characters the user’s password consists of.

      Now, it’s not certain though, which wasn’t claimed either, because the front end developer might have other reasons for setting limits. The backend shouldn’t care though.

      • IphtashuFitz@lemmy.world
        link
        fedilink
        English
        arrow-up
        4
        ·
        6 days ago

        It could be an older codebase that’s using an inline encryption algorithm as opposed to a hash. Using an encryption algorithm with a private key would result in varying length outputs.

        • troed@fedia.io
          link
          fedilink
          arrow-up
          11
          ·
          6 days ago

          That’s the same as “cleartext” for someone who works in security though, since that means anyone with the private key can decrypt the password.

      • x00z@lemmy.world
        link
        fedilink
        English
        arrow-up
        8
        arrow-down
        4
        ·
        6 days ago

        The backend should care though. Even if strings can have an unlimited amount of characters, you don’t want to go and hash a gigabyte of data. In lower level languages you don’t have magic strings either so you might do something like char password[64].

        There’s many reasons to limit raw password length. Not many good ones to have it as small as 24 (or even 64) though.

          • CosmicTurtle0@lemmy.dbzer0.com
            link
            fedilink
            English
            arrow-up
            5
            ·
            6 days ago

            Exactly. The tax on hashing the password can’t be ignored and if you’re doing this enough times it can kill a system. 24 characters is too low. I’d say 100 characters is enough for most use cases. 1024 if you’re feeling 1337.

            • troed@fedia.io
              link
              fedilink
              arrow-up
              6
              ·
              6 days ago

              Sure, but when we talk about the computation then the number of rounds is by far the more important factor compared to password length.

              The discussion is about whether 24 characters indicate cleartext though - not whether password lengths should be in the gigabytes.

        • troed@fedia.io
          link
          fedilink
          arrow-up
          9
          ·
          6 days ago

          I agree you might have threat actors looking to DoS your system if there’s a publicly exposed REST endpoint accepting gigabytes of data. That has nothing to do with the discussion on password hashing though.

          • x00z@lemmy.world
            link
            fedilink
            English
            arrow-up
            7
            arrow-down
            6
            ·
            6 days ago

            The claim was that a limit on passwords implies plaintext storage. It doesn’t. There is no such thing as unlimited on computers.

            • Kissaki@feddit.orgOP
              link
              fedilink
              English
              arrow-up
              9
              arrow-down
              2
              ·
              edit-2
              6 days ago

              The claim was that a limit on passwords implies plaintext storage.

              quoting the post:

              Possibly indicating cleartext storage of a limited field (which is an absolute no-go), or

              It was not a claim that it certainly is plaintext storage. It was claimed to be a possibility. AND provided an alternative explanation.

              Maybe you’re more confident than me in good practices and implementations across all services. But I’ve seen enough to know that’s not always the case. It’s good to be skeptical on anything related to security.

              • x00z@lemmy.world
                link
                fedilink
                English
                arrow-up
                3
                arrow-down
                9
                ·
                6 days ago

                but this in no way indicates clear text password storage.

                It does.

                No it doesn’t.

            • troed@fedia.io
              link
              fedilink
              arrow-up
              6
              arrow-down
              2
              ·
              6 days ago

              Don’t worry, I’m autistic myself and understand how difficult it can be to parse “it’s thus irrelevant how many characters the user’s password consists of” to mean something besides “all implementations must accept an unlimited amount of characters”.

              I do believe the point was understood by the general reader however.

                • grysbok@lemmy.sdf.org
                  link
                  fedilink
                  English
                  arrow-up
                  3
                  arrow-down
                  1
                  ·
                  6 days ago

                  Curiousity: Could you please explain what was awful about the comment you responded to?

                  For context, I’m also autistic.

        • hummingbird@lemmy.world
          link
          fedilink
          English
          arrow-up
          7
          arrow-down
          2
          ·
          6 days ago

          There is no good reason so send the passwors itself to the server. Send the hash and you will have a fixes length of data to send anyway.

          And even if insist in sending the password over the wire, there is no problem on the backend to handle longer passwords than that, so that no one will run into a limit in practice. We’re talking about bytes here, not even a kb.

          • IphtashuFitz@lemmy.world
            link
            fedilink
            English
            arrow-up
            7
            arrow-down
            1
            ·
            6 days ago

            Proper hashing of a password includes a salt that should be kept private. This means the password should definitely be passed to the server in plaintext. The server adds the salt to the password, then hashes it.

            This adds more protection should an attacker somehow manage to get access to your hashed passwords. Even if they identify the type of hashing mechanism used it will prevent the use of rainbow tables, dictionary attacks, etc. against the hashes.

            • Ziglin (it/they)@lemmy.world
              link
              fedilink
              English
              arrow-up
              1
              ·
              3 days ago

              If that were the case you could still hash it on the client side, forcing it to be a certain size and then hash it again on the server with the right salt. I don’t think there’s a real disadvantage to hashing a hash.

            • troed@fedia.io
              link
              fedilink
              arrow-up
              7
              arrow-down
              2
              ·
              6 days ago

              While I’m not arguing for doing the crypto client side, the salt isn’t needed to be private - only unique.

              • IphtashuFitz@lemmy.world
                link
                fedilink
                English
                arrow-up
                3
                arrow-down
                2
                ·
                6 days ago

                It definitely needs to be private. If an attacker can obtain both the password hashes and the salt(s) (via the same database vulnerability for example) then they have everything they need to run offline attacks against the passwords.

                • troed@fedia.io
                  link
                  fedilink
                  arrow-up
                  10
                  ·
                  6 days ago

                  No, it most definitely does not need to be private. The idea with salt is to invalidate rainbow tables. If you’re “keeping it private” it’s just another password.

                  The salt and the password (or its version after key stretching) are concatenated and fed to a cryptographic hash function, and the output hash value is then stored with the salt in a database. The salt does not need to be encrypted, because knowing the salt would not help the attacker.

                  https://en.wikipedia.org/wiki/Salt_(cryptography)

                • mic_check_one_two@lemmy.dbzer0.com
                  link
                  fedilink
                  English
                  arrow-up
                  1
                  ·
                  5 days ago

                  The salt is specifically to invalidate pre-generated rainbow tables, and doesn’t need to be kept private. It only needs to be unique.

                  The attacker generates rainbow tables by running common passwords through known hashing algorithms. So I run “password1” through a bunch of different algorithms, and save the results of each. Notably, generating decently large rainbow tables takes a lot of time, processing power, and storage space. Because you don’t just use common passwords; You’re basically running a brute force/dictionary attack on your own computer’s hashing algorithm.

                  Now if a database is unsalted, I can search for matching results against my rainbow table. When I see a match, it tells me both which users had that password and which hashing algorithm they were using. So now I can narrow down my focus to only using that algorithm.

                  But if a database is salted, all of my pre-generated tables are useless. Even if someone used “password”, it won’t match my rainbow tables because the hash was actually fed “password{hash}” instead. And even if multiple users used “password”, each salt is unique, so I don’t see a bunch of repeated hashes (which would point to those accounts using the same password). I would now need to generate all new tables with the salts I stole in order for my rainbow tables to be usable again. And even then, I’d need to repeat that table generation for every user.

          • Pika@sh.itjust.works
            link
            fedilink
            English
            arrow-up
            2
            ·
            6 days ago

            you absolutely should not be hashing client side. You need to securely transmit the password to the server where it is hashed. You do not want clients knowing /how/ the password is salted/hashed. this lowers your security overall.

          • x00z@lemmy.world
            link
            fedilink
            English
            arrow-up
            2
            arrow-down
            1
            ·
            6 days ago

            There’s some software that hashes the password clientside before sending it, sure. But it still should be hashed serverside too.

                • Sonotsugipaa@lemmy.dbzer0.com
                  link
                  fedilink
                  English
                  arrow-up
                  3
                  arrow-down
                  1
                  ·
                  edit-2
                  6 days ago

                  Plaintext password (693 chars):
                  “hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2”

                  Clientside SHA-512 hash (64 bytes):
                  7399ed78effda820b2187bc70f0549dd67f6846c595f944d198a1f1136cd0ab91119d6f208a34b4419e969b9ffb326d3786cecb90828f0ab36a5e3835558740c

                  — Client sends 64 bytes to the server —

                  Serverside SHA-512 hash (64 bytes):
                  25293199e10af10e8a20f4ab38abccd2cdccd762d8cba2ed4871a2aea8fe6d9ffcc54cfe1c9cbd03245bfd2f0ee1039f06083b7bcbefd91b7fcbba182d588983

                  At no point the server has to deal with the length of the plaintext

    • Kissaki@feddit.orgOP
      link
      fedilink
      English
      arrow-up
      11
      ·
      6 days ago

      Password hashes always have the same length.

      Why is there a limit at 24? It may be an arbitrary limit set, or it may be because they don’t store more.

    • axh@lemmy.world
      link
      fedilink
      English
      arrow-up
      4
      ·
      6 days ago

      I heard some banks encrypt single characters of the password separately (no idea how that would be safe) they often ask to provide random characters from the password instead of the entire password.

      My bank only accepts up to 20 characters. It doesn’t validate it… The login page simply ignores all characters beyond 20th. So I didn’t even know that it cut my password until I tried to log into the mobile app, which replaces the last character when you type more than 20… that was confusing 20 minutes when I didn’t know why I can’t log into my mobile app.

  • magic_lobster_party@fedia.io
    link
    fedilink
    arrow-up
    57
    ·
    6 days ago

    What’s more frustrating is when the password creation page is silently cutting off too long passwords and don’t inform you about it.

    • neilb@lemmy.ml
      link
      fedilink
      English
      arrow-up
      12
      ·
      6 days ago

      There’s a site I use that does that on the password reset page, but not when logging in. So when using a long password it’s as if the reset never works. Took me ages to figure out what was going wrong.

    • jj4211@lemmy.world
      link
      fedilink
      English
      arrow-up
      6
      ·
      6 days ago

      Back in the day, long time ago, Unix would do that, and limit user silently to 8 characters.

      Which then wasn’t great, but a good password would be hard to break even at only 8 characters with equipment of the time.

      We would do a cracking test against the user passwords periodically and ding users who got cracked. Well one user was shocked because they thought their 16 character password was super secure and there’s no way we would crack it. So we cited her password and she was shocked she went through so much trouble only for the computer to throw away half her awesome password.

  • lightnsfw@reddthat.com
    link
    fedilink
    English
    arrow-up
    13
    ·
    5 days ago

    If I have to create a password Ill need to remember and don’t have access to my password manager for whatever reason I have a long phrase that’s my go to but I have a system about adding numbers and characters to it based on the context of the log in. Sites with character limits really fuck that up.

  • The Infinite Nematode@feddit.uk
    link
    fedilink
    English
    arrow-up
    34
    ·
    6 days ago

    My mum told be the other day she logged onto a new bank, gave it a 12 character password then couldn’t get back in after. When she got through to their customer services they said that it was an 8 character password limit (!), but it just never said on the register screen.

  • Mark@lemmy.world
    link
    fedilink
    English
    arrow-up
    29
    ·
    6 days ago

    How about creating a new account, letting bitwarden create a password, only for them to send me a clear text copy of that passwod in their confirmation email…

    • mic_check_one_two@lemmy.dbzer0.com
      link
      fedilink
      English
      arrow-up
      3
      ·
      edit-2
      5 days ago

      That means the breach is imminent, but at least you won’t need to worry about other accounts when it happens. Just be sure you don’t give them any kind of PII or financial data to save. No, you can’t save my card data to make shopping easier, because you’re almost certainly going to have a data breach next month, and drag your heels about disclosing it, giving hackers plenty of time to commit a bunch of fraud using all of the cards on file.

  • OsKe@lemm.ee
    link
    fedilink
    English
    arrow-up
    5
    ·
    4 days ago

    At least they tell you. I signed up with websites that just cut the password after the 12th character. No way of signing in with the password again (not without trying a couple of times, at least)

  • Kissaki@feddit.orgOP
    link
    fedilink
    English
    arrow-up
    31
    ·
    6 days ago

    I’ve had a case in the past where I reduced my password to the limit, but after account creation, I was not able to log in.

    Turns out they had an off-by-one issue, and a password with a length slightly below the limit worked fine.

    • valkyre09@lemmy.world
      link
      fedilink
      English
      arrow-up
      16
      ·
      6 days ago

      I once got locked out of an HP printer because it chopped off the last few characters of a password. Only figured it out because somebody had made a comment online about password length

    • fatalicus@lemmy.world
      link
      fedilink
      English
      arrow-up
      7
      ·
      6 days ago

      Experienced a site some years ago that let me I put however long password I wanted (my default is 52 in my password manager), but turns out it only used the first 20 or so.

  • tauren@lemm.ee
    link
    fedilink
    English
    arrow-up
    20
    ·
    6 days ago

    My favorite is when they don’t have this check, but silently slice the string to meet the requirement, so that you can’t login with the original password the next time.

  • Buffalox@lemmy.world
    link
    fedilink
    English
    arrow-up
    28
    ·
    edit-2
    6 days ago

    Your password MUST contain big and small letters, and contain at least 1 number character and 1 spacial character, it MUST be 8 characters long, and it MUST be typed on a German Cherry keyboard between 8-9 PM, using ONLY 1 finger while blindfolded and listening to ABBA music. BUT NO SPACES ALLOWED!!!
    This is because of something called entropy we never even read about so we have zero understanding of it. Of course combined with lousy programming, so safety is all on you.

    Making all these possibilities OPTIONAL would actually make for safer passwords (higher entropy), as would using multiple words separated by spaces. The only meaningful way to accept a password would be to test it against common bad passwords, and test the entropy to determine acceptable levels. There is no good reason a password couldn’t be 10 words and at least 127 characters. There is no way that should stress a properly designed modern system.

    • Kushan@lemmy.world
      link
      fedilink
      English
      arrow-up
      15
      ·
      6 days ago

      You have described all of the guidelines that NIST, Microsoft, GCHQ and a few other institutions now recommend for password security.

      And yet I still have to have this argument with so-called security engineers and my favourite, compliance officers.

      • Buffalox@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        6 days ago

        the guidelines that NIST, Microsoft, GCHQ and a few other institutions now recommend for password security

        Because they are morons that don’t understand entropy.
        Requiring at least 1 number increases entropy less than simply allowing the use of numbers, and then recommending it.
        But most password queries are lousy at describing what’s allowed when creating it, and they generally don’t describe it at all when you enter it for access.
        The second part can be crucial for remembering exactly how the password was created, because what is now required, used to often not even be possible to use!

      • AA5B@lemmy.world
        link
        fedilink
        English
        arrow-up
        2
        ·
        6 days ago

        Even worse, when you can’t figure out why, or how to configure the generator, then end up having to type your own anyway

      • Buffalox@lemmy.world
        link
        fedilink
        English
        arrow-up
        2
        ·
        5 days ago

        I think it’s originally because of bad programming. It’s so incredibly stupid I don’t have words.

  • dQw4w9WgXcQ@lemm.ee
    link
    fedilink
    English
    arrow-up
    17
    ·
    6 days ago

    For a system I worked on a few years ago I got the password requirement:

    • Only upper case letters A-Z, no letter or symbols.

    • Exactly 7 characters.

    I was also recommended to make it a single word to make it memorable.