this post was submitted on 21 Mar 2024
95 points (97.0% liked)

Technology

34894 readers
941 users here now

This is the official technology community of Lemmy.ml for all news related to creation and use of technology, and to facilitate civil, meaningful discussion around it.


Ask in DM before posting product reviews or ads. All such posts otherwise are subject to removal.


Rules:

1: All Lemmy rules apply

2: Do not post low effort posts

3: NEVER post naziped*gore stuff

4: Always post article URLs or their archived version URLs as sources, NOT screenshots. Help the blind users.

5: personal rants of Big Tech CEOs like Elon Musk are unwelcome (does not include posts about their companies affecting wide range of people)

6: no advertisement posts unless verified as legitimate and non-exploitative/non-consumerist

7: crypto related posts, unless essential, are disallowed

founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] sylver_dragon@lemmy.world 17 points 8 months ago (1 children)

From the unsaflok.com site:

Dormakaba uses a Key Derivation Function (KDF) to derive the keys for some of the Saflok MIFARE Classic sectors. This proprietary KDF only uses the card’s Unique IDentifier (UID) as an input.
Knowledge of the KDF allows an attacker to easily read and clone a Saflok MIFARE Classic card. However, the KDF by itself is not sufficient for an attacker to create arbitrary Saflok keycards.

Security is hard. Cryptography is even harder. Don't roll your own algorithms, it's just asking for a problem. And given that "oversight", I'd bet that the rest of the kill chain involves equally bad encryption or hashing being used on the cards.

[–] ramble81@lemm.ee 1 points 8 months ago (1 children)

I’m curious, for a non-network connected lock, how could you ensure that it’s secured with time bound parameters like they list?

Now that I’m thinking about it I guess each lock would have a private key and a CMOS of sorts to keep time. The writer could then write have the public key of each room and that could have a timestamp as part of the encrypted payload. I guess to take it further you could reverse it too with that payload having a private key of the writer and the locks could verify the private key against a public key of the writer. At that point each writer would have to have the public key of all locks, and each lock would have the public key of each writer.

At that point your payload to encode would be a timestamp of expiration and any sort of “checksum” or PSK to verify it was made by a valid writer?

[–] August27th@lemmy.ca 1 points 8 months ago

Look up JSON Web Tokens, they work how this would need to work.