Shamir Secret Sharing
max.levch.in
max.levch.in
I really wish HN had the mildest of dupe checking, as anyone who does care about the topics of these repeated reposts has to go and read all the different threads
netmail, not email :-)
As the knower of the code, for the safe, in the escorted-only data center, that contains one of our Vault key shares, this story resonates.
Solaris is known for having stupid defaults. I once had a box refuse to boot because the whitespace in a config file used tabs rather than spaces.
What's worse, partially.
So, premeditated or not, it counts as pushing development code into production. The accidentally part I believe is because someone didn't know any better.
It still happens today though, and subtle differences between computers or e.g. CPU architectures can and will still occur. It's really difficult or cost prohibitive to set up a DTAP or similar where every step is production-like; I can imagine it's similarly complex on modern day distributed systems / microservices.
"A cursory look at the master key file date told me that no, it wouldn’t be OK at all. The file sitting on cryptoserv wasn’t from last night, it was created just a few minutes ago. During the Salt-n-Pepa-themed push from stage, we overwrote the master key file with the stage version... Not only that, the push script appears to have also wiped out the backup of the old key, so the database backups we have encrypted with the old key are likely useless."
So, despite all the planning and premeditation, they ended up doing exactly what AstralStorm says. An undesirable outcome does not stop being an accident if it is an unanticipated and unintended consequence of a planned action. Being in a crisis because you have forgotten how you planned to avoid it also counts as an accident.
As for the "Salt-n-Pepa-themed push": personally, I would have avoided all possible distractions at a time like this. Turning off phones (except maybe one, monitored by someone for whom that was their only job) would not have been unreasonable.
checks article
Oh, wait, nevermind. More “folklore.”
I'd totally read that, are there any articles?
Wonder if that printer kept a copy...?
Two words: tamper seals
An envelope is easily steamed open.
And you better hope nobody bypasses the alarm. Or you won't know to check the seals until it's way too late.
The point is, you can only mitigate so much before it become an exercise in futility. The general counsel, if anybody, is the person that can actually bankrupt your company and get some nice money for himself using some legal tomfoolery. I doubt that if that was his intention, trying to decode a piece of base64 for a private key of the database would be the course of action that he would take.
The author was in a (then) startup. He had a sensitive document. He asked the Legal Counsel to keep hold of it and shred it after 1 days. And then forgot about it and went on and built more measure to defend against hacker, which is the more important threat actor here.
Know your threat model and expend your/your company limited resource on the things that matter.
Edit: another one was Solaris defaulting to the obsolete unix crypt function based on the Enigma machine
It seems you never had to deal with file encodings? And windows upper lowercase does not matter, compared to linux where it does matter?
But yes, obvious was none of that to me, I naivly assumed, data should be just data, until I change it. Like they did.
This is essential commentary to Shamir Secret Sharing, because it requires a trusted dealer, unlike BLS and other bilinear technqiues.
Look at this:
Whatever key that was, it wasn’t the one I generated the day before: only one copy existed, the one I copied to cryptoserv from my computer the night before. Zero copies existed now. Not only that, the push script appears to have also wiped out the backup of the old key, so the database backups we have encrypted with the old key are likely useless.
So with SSS just have to take his word for it, that he didn’t have a copy of the key back on his computer. Zero copies existed? It’s not like he made another copy of it? Surely he is a reliable narrator and we can trust that at least, right? Actually, NOPE:
A few hours later, John, our General Counsel, stopped by my cubicle to ask me something. The day before I apparently gave him a sealed envelope and asked him to store it in his safe for 24 hours without explaining myself. He wanted to know what to do with it now that 24 hours have passed. Ha. I forgot all about it, but in a bout of “what if it doesn’t work” paranoia, I printed out the base64-encoded master key when we had generated it the night before, stuffed it into an envelope, and gave it to John for safekeeping. We shredded it together without opening and laughed about what would have never actually been a company-ending event.
So the lawyer could have conceivably hired someone to break into the database, steal credit card numbers and salami-slice some value for years, or launch one big attack on the entire database:
https://en.wikipedia.org/wiki/Salami_slicing_tactics
Having ONE SET OF KEYS or passwords to access THE ENTIRE DATABASE is the epitome of the whole Digital Feudalism that we have today! But that’s what we have in Web2. Sam Bankman Fried is just one example. This is where Web3 is so different. Everyone has their own keys, and they can only do what the are allowed to by the smart contract code. You reduce the attack surface massively. You reduce the need for celebirties like Max Levchin, and his stories, as much as I like them.
Some people on HN might dislike Web3 and smart contracts, and I do agree that blockchains arent a very efficient technology for implementing them, but the idea of being able to trust the code is crucial for our society. Otherwise, the closest we can get to it is this:
https://signal.org/blog/private-contact-discovery/
In an age where Google wants to implement attestations of CLIENTS in Chrome, we as a society should be demanding the other way: proving that the CODE AND DATA cannot be tampered with. SGX extensions are far worse than smart contracts to secure large amounts of value, whether it’s currency balances, votes, or other data.
Anyway, for the crypto side I will just say that BLS signatures are far superior to SSS. I mean cryprography when I say crypto. It has NOTHING to do with blockchain, but rather with generation of private keys and verifying transactions that were posted to some decentralized network. Use BLS. SSS is outdated.
(also any BLS signature that implements a single key threshold that's indistinguishable from a single key will be using SSS under the hood to implement the threshold, though I agree end users should probably never be using SSS directly)
> SGX extensions are far worse than smart contracts to secure large amounts of value, whether it’s currency balances, votes, or other data.
"smart contracts" as they are don't provide confidentiality, in fact they're generally extra toxic to confidentiality.
> The governments are all moving to gradually ban end-to-end encryption, as they worry about “terrorism” etc.
In a few countries like the UK where the residents are subjects and don't have civil rights.
> But no one is moving to ban cryptographic signatures.
Most (perhaps all) signature schemes can also be used to conceal data.
> Smart contracts can help ensure the immutability of code and I don’t know of any other mechanism that’s widely deployed today that can guarantee the code and data won’t be tampered with.
I'm remained of "Wakalixes makes it go." from "Surely, You are Joking, Mr Feynman".
It's not at all clear to me that there is some code immutability crisis, and I don't see the relevance of 'Smart contracts' to the integrity of code that isn't answered by tools like cryptographic hashes or an ordinary digital signature, -- stuff we've been using for decades.
The blockchain woo is a bit part of what what causes a lot of the public to regard the entire space as a bunch of grifters.
> Ha. I forgot all about it, but in a bout of “what if it doesn’t work” paranoia, I printed out the base64-encoded master key when we had generated it the night before, stuffed it into an envelope, and gave it to John for safekeeping.