Two students find security bug that could let millions do laundry for free - eviltoast
  • Excrubulent@slrpnk.net
    link
    fedilink
    English
    arrow-up
    13
    arrow-down
    1
    ·
    edit-2
    6 months ago

    It could be simply obscure like you say, but the absence of a network doesn’t guarantee it’s that easy to hack.

    They could use a checksum and your trick would invalidate the card until you figured out the correct algorithm, which would require a new visit to the laundromat for every new attempt, so basically impractical.

    That or the card is just simply encrypted, which would make it impossible to interpret. It would be easy to implement too because the shared secret is between machines that are all physically controlled by the laundromat.

    • cyberic@discuss.tchncs.de
      link
      fedilink
      English
      arrow-up
      10
      ·
      6 months ago

      If there’s no central control or ledger, couldn’t you just rewrite the card with the original values and the machines wouldn’t know any difference?

      • Excrubulent@slrpnk.net
        link
        fedilink
        English
        arrow-up
        5
        ·
        6 months ago

        Oh yeah, that’s true, so you wouldn’t have destroyed the card, but it’s not a useful hack if they’ve done even the most basic security measures.

        That said, I would be fascinated to know what was on that card. I’d give it pretty good odds of having absolutely no security measures whatsoever.

      • efstajas@lemmy.world
        link
        fedilink
        English
        arrow-up
        3
        ·
        6 months ago

        you could add a random number to the encrypted data on the card and require it to always be the same or larger than the last time that card was seen, and then increment it every time the card is used.

        • Excrubulent@slrpnk.net
          link
          fedilink
          English
          arrow-up
          1
          ·
          6 months ago

          The problem with that is that if the machines don’t talk to one another then there’s no way to make that system work across machines. I guess if each machine enforced it then you would eventually run out of machines that work for your hacked card.

          • efstajas@lemmy.world
            link
            fedilink
            English
            arrow-up
            1
            ·
            edit-2
            6 months ago

            You could store a counter for every machine used on the card, realistically, given few Laundromats would have over 50 or so machines. That’d mean that as you say, restoring the cards initial state would break it for every machine you previously used.

            Going way too far now for what would make sense for a Laundromat, but just to entertain the idea…

            You could also use an OTP encryption scheme on the card, where the exchange encryption key is based on the laundry machine ID, card ID, and a current timestamp, and thus changes every time the card is used. It would then be quite hard to “restore” the initial state of the card without having the laundry machine’s hidden ID. Everything you read off the card would be useless a second later.

    • Possibly linux@lemmy.zip
      link
      fedilink
      English
      arrow-up
      4
      ·
      6 months ago

      A simple encryption key would make the most sense. It wouldn’t even need to be that complex. All you would need is a way to verify the card and then another one that represents the number. You probably could just use some primes.

    • uis@lemm.ee
      link
      fedilink
      English
      arrow-up
      1
      ·
      6 months ago

      Meaning I could either back up and rewrite a $20 card forever, or rewrite the balance to having FF credits or whatever.

      As you can guess, checksum is stored somewhere. And that somewhere happens to be card that was just dumped.

      • Excrubulent@slrpnk.net
        link
        fedilink
        English
        arrow-up
        4
        ·
        edit-2
        6 months ago

        Yeah, but you’d need the algorithm. It could be a hash of some kind, and if you don’t know what kind of algorithm they’re using you can’t replicate it.

        EDIT: Oh, I see what you’re saying. You mean you could simply rewrite the original card value back over it forever. That’s actually quite clever, and it would work even in case the card was completely encrypted.

        Actually that means this is trivial to beat I think.

      • Excrubulent@slrpnk.net
        link
        fedilink
        English
        arrow-up
        2
        ·
        6 months ago

        Well that’s the thing, you don’t need a lot. You’re handing out these cards and people walk out the door with them, so you can’t trust they’re not going to mess with them. They don’t need to be walking around with a writer, you need one person to have access - either own one or have one at work or a university lab - and they can make as many cards as they want to give to their friends. Then they could use your business for years and get thousands of dollars of free service without you ever knowing.

        That’s the real threat here I think - a poor university student with a technical degree challenging themselves to cheat the system and help out their friends. I mean it’s probably not going to happen, but a business owner who’s aware of this attack vector could spend the time to get a basic encryption system going that’s practically unbreakable.

        • ridethisbike@lemmy.world
          link
          fedilink
          English
          arrow-up
          2
          ·
          6 months ago

          Might be unbreakable, but all the attacker has to do is put money on it once and then just duplicate the card. You don’t need to beat the encryption. You just need to make the machine think the card is legit