Hacker News

Top stories

Live mirror
30 storiesupdated just nowView source snapshot
  1. Keys Not Included: recovering the signing keys for US driver's license barcodes(ryan.science ↗)
    18comments
  2. The Painful Truth: The RAM Crisis Is Only Just the Beginning(madshrimps.be ↗)
    27comments
  3. Nvidia announces native GPU programming in Rust(nvidia.com ↗)
    161comments
  4. Training a 4B model to produce 81% faster query plans than Postgres(rohanbansal.com ↗)
    94comments
  5. DeepSeek-v4.1 Flash: Pushing the Limits of KV Cache Compression(zartbot.github.io ↗)
    6comments
  6. Xiaomi Mimo 2.6 live post-training dashboard(xiaomi.com ↗)
    86comments
  7. Backups Aren't Simple(filipovski.net ↗)
    73comments
  8. Breaking the 1.58-bit Barrier for Ternary LLMs(arxiv.org ↗)
    22comments
  9. Developing provably correct Rust code with Verus(amazon.science ↗)
    9comments
  10. Small programming tricks(will-keleher.com ↗)
    199comments
  11. The engineering behind the US Strategic Petroleum Reserve(johnjwang.com ↗)
    58comments
  12. A 32-Year-Old Bug Walks into a Telnet Server(watchtowr.com ↗)
    2comments
  13. OpenSpec – A lightweight and configurable AI spec framework(openspec.dev ↗)
    40comments
  14. The Return of Sail Power: Cargo Ships Are Turning Back to the Wind(gcaptain.com ↗)
    19comments
  15. PCB is brought to you by Fable 5(a6mzero.com ↗)
    15comments
  16. Performance Improvements in .NET 11(devblogs.microsoft.com/dotnet ↗)
    40comments
  17. AWS says it can't restore some data from mideast facilities struck by Iran(wsj.com ↗)
    237comments
  18. Reversing Factorio's RNG(gegell.github.io ↗)
    21comments
  19. HarnessTax: How Much Does the Harness Matter for Coding Agents?(harnesstax.github.io ↗)
    21comments
  20. Part-human part-mouse brain developed in science breakthrough(bbc.com ↗)
    12comments
  21. Show HN: An e-ink frame that hears birds and draws them as 1800s illustrations(github.com/arnegiacomo ↗)
    240comments
  22. Japan's book scene is moving from bookstores to libraries(untranslatedjp.substack.com ↗)
    57comments
  23. Anecdotally, programmers dislike "reduce"(evanhahn.com ↗)
    186comments
  24. Mapsnap: Automated Georeferencing for Historic Sanborn Insurance Maps(danvk.org ↗)
    2comments
  25. Reverse-engineered Jev-like model(github.com/vinnylarouge ↗)
    15comments
  26. Dream-RSI: Recursive Self-Improvement through Evolving Worlds(arxiv.org ↗)
    49comments
  27. Anatomy of a Texture(agentlien.github.io ↗)
    14comments
  28. Monsanto's Cruel, and Dangerous, Monopolization on American Farming (2008)(vanityfair.com ↗)
    10comments
  29. Hackers Got Inside a Flock Camera(wired.com ↗)
    231comments
  30. The DeepMind Institute(deepmind.com ↗)
    55comments

Keys Not Included: recovering the signing keys for US driver's license barcodes

66 pointsby 1h agoryan.science
18 comments
1h agoHN ↗

I come to HN to learn things I never realized I wanted to know.

1h agoHN ↗

At the time of this writing, the subtitle of the submission here on HN is

  recovering the signing keys for US driver's license barcodes

Notably, this subtitle doesn't appear on the blog post.

Anyway. I only see claims that the public key can be determined from license barcodes, not that a signing key can be determined. What am I missing or misunderstanding?

To head off one potential retort: While it's true that one can use a public key to encrypt data for the recipient that has the private half of that key or verify that data has been signed by the possessor of the private half of that key, I'm almost 100% certain that it's not possible to use that public key to sign data would validate to other folks as being signed by the private half of that key. It has been more than a decade since I've thought about any of this, but isn't the entire point of public-key cryptography that the public part can be distributed to your worst enemy without causing you any trouble at all?

59m agoHN ↗

Yes. The subtitle is wrong. He recovers the public key, due to the way EDCSA signing works.

46m agoHN ↗

Yup. The person who submitted this to HN is probably way less knowledgeable on this topic than the writer of the article. The article clearly labels the recovered keys as “recovered public keys” at the top.

37m agoHN ↗

Given the poster's nickname, the person who posted it and the author may be one and the same.

55m agoHN ↗

That's really neat! Seems potentially adaptable to paper currency--a verifiable QR code digital signature of the bill's serial number creates a cryptographically hard obstacle to counterfeiting!

4m agoHN ↗

combine with a central authority server network and make it blind signatures and you have untraceable e-cash.

53m agoHN ↗

All of this is nearly pointless unless the photo itself is in the barcode and also signed. You only need a leak of a few hundred real IDs to cover all of the identifiable characteristics (hair, eye, skin color, approx height and weight). Leak a few hundred thousand a year and now you can’t even flag leaked IDs without some false positives.

A fake photo plus a valid barcode will pass any current check right? Unless you still do a secondary proprietary photo lookup that I don’t think exists.

32m agoHN ↗

I wonder if we might have the equivalent of Certificate Revocation List for IDs leaked this way.

49m agoHN ↗

I had a fake ID, and it being scannable was a huge selling point. Convenience stores all scan, and don't seem to care if you look underage. I was only turned down two or three times, usually at bars and restaurants.

39m agoHN ↗

The other thing I remember was California fakes folding in half and not breaking

44m agoHN ↗

It baffles that people think it's a bad thing to disclose a public key. That's their purpose actually. Sure we now have the post quantum computer threat, and some state actors are harvesting keys, but quantum computer is going to disrupt so much, that Id verification won't even matter really.

34m agoHN ↗

Before signing, the encoder fills the field with a placeholder (0), repeated for the field's exact length - signs the entire payload including that placeholder, and then writes the real signature over the top of it. To verify, you put the placeholder back.

I hate shit like this. Do not let your crypto layer know about the structure of what it's signing. Keep security stupid.

30m agoHN ↗

Counterpoint - every real world crypto algo needs to do somewhat content aware padding or the crypto is much easier to break. Either that, or go so overboard on randomness that it adds a lot of overhead.

When you look at the details underneath more crypto, there is a lot of ah hah - and ‘doh’ - moments due to implementation realities.

10m agoHN ↗

As far as compact encodings go, this kind of patch-and-fill technique isn't particularly egregious. The alternative mentioned (where the verifier has to be aware of a bitfield that defines the to-be-signed elements) is much easier to mess up!