2,583 karma · joined October 2, 2018
[ my public key: https://keybase.io/vngzs; my proof: https://keybase.io/vngzs/sigs/JW88RqiRCJqnuZ_59waFsjWNKkHQ8c9ejTJR4JXX_mE ]
Comments are my opinion and not intended to represent the viewpoint of my employer (past or present).
Even a relatively literal read of the words "supply chain" is reasonably appropriate, even for FOSS. Wikipedia's current definition for supply chain is:
> In commerce, a supply chain refers to the network of organizations, people, activities, information, and resources involved in delivering a product or service to a consumer.
There's nothing in that definition that necessitates a formal agreement, support commitment, etc.
What kind of arguments do the organizations you consult for find compelling? I find it extraordinarily difficult to convince others. There is a strong bias towards the status quo.
Careful. In the case of bankruptcy, you probably won't get your money back. Bloomberg Law[0]:
> An exchange going bankrupt would likely have to face Chapter 11 debtors’ rules on creditor recovery. Generally, secured creditors would be paid back first before others.
> A crypto exchange is not likely to have investor protection measures in place for cryptocurrency, though it could carry insurance policies for certain covered incidents, such as cybersecurity incident. And unless user terms specified otherwise, an investor would likely be an unsecured creditor who may not be able to recover what they’re owed.
[0]: https://news.bloomberglaw.com/securities-law/if-a-crypto-exc...
> For example, every string is an object, `str <: object`, but not every object is a string, `str ≮: object`.
Is not
str <: object ∧ str ≮: object
a contradiction? Wouldn't `object ≮: string` be the correct representation of "not every object is a string"?But they are both systems intended to provide secure storage of key material with policy-based access to that key material. As an SSH CA, you can configure Vault to sign SSH pubkeys but never divulge the key material. Depending on your threat model, it might get you what you want for this use-case, but you should definitely be aware of the limitations of Vault's security model.
"This guy": https://en.wikipedia.org/wiki/Peiter_Zatko
The closest thing I've found is the Fujifilm X-Pro 3's "hybrid" viewfinder. It has a Leica-style rangefinder that can, with the flip of a switch, convert into a digital image like every other mirrorless. It can even overlay the frame and a digital focus preview onto the analog image in the rangefinder as you move it around. It's not useful for concerts - the 23.5x15.6mm sensor is too small - but I photographed some of the the 2020 protests in NYC and the extra field of view in the rangefinder is actually an advantage in that kind of hectic environment.
Beyond that, vaping is so obviously safer than smoking. It strikes me as profoundly hypocritical to ban the less dangerous alternative, while keeping the unbelievably deadly cigarettes on the market.
(1) Mining pools are not even remotely static. In fact, they gain/lose marketshare very quickly, and when problems are discovered, miners actually move. Therefore, it would have to be shown that these pools can be disrupted clandestinely, otherwise an attempted takeover/51% attack would just cause a rebalancing of the pools. To better understand this, it's good to visualize it; here's a graph of changes to miner pool distribution over time: [0]
(2) 51% attacks permit double-spend, but many guarantees persist in the light of 51% attacks - nobody can invent coins they don't have with a 51% attack; they can just undo transactions that were assumed to be settled [1].
(3) Software centralization and the implied lack of immutability is subject to the voting influences of node operators; maintainers can't just do whatever they want (in other words, backdoors would probably need to be bugdoors, else they would not be deployed and therefore de facto rejected). Taking Bitcoin as an example, many BIPs have been withdrawn or rejected, either early in the development process or later by the community refusing to adopt releases they don't support: [2]. And you can see this process at work in the block size debates and ultimate resolution [3].
ISP centrality and the vulnerability of the network to malicious Tor exit nodes is the most interesting point to me. Miners can go switch pools, and node operators can band together & refuse to update to new software that does things they disagree with. But can node operators/miners switch ISPs quickly and easily? Not really. There's virtually no free market competition among ISPs, so people can't freely switch ISPs if theirs starts inserting arbitrary latency into Bitcoin traffic. We probably need some ways to operate nodes/miners that are less sensitive to corrupt ISP disruption.
Encrypting BTC P2P traffic and developing strategies for operating nodes/miners behind anti-censorship software like ShadowSocks should be high-priority.
[0]: https://public.flourish.studio/visualisation/2879848/
[1]: "Even a 51% attacker cannot propose a block that takes away your ETH, because such a block would violate the protocol rules and so it would get rejected by the network. Even if 99% of the hashpower or stake wants to take away your ETH, everyone running a node would just follow the chain with the remaining 1%, because only its blocks follow the protocol rules. More generally, if you have an application on Ethereum, then a 51% attack could censor or revert it for some time, but what comes out at the end is a consistent state." - Vitalik, https://old.reddit.com/r/ethereum/comments/rwojtk/ama_we_are...
[2]: https://en.wikipedia.org/wiki/Bitcoin_Improvement_Proposals#...
[3]: https://en.bitcoin.it/wiki/Block_size_limit_controversy
Beware that if you do this and lose your primary key, or if it is stolen, then an attacker can impersonate you. Setting up multiple unique keys is probably more useful in general, even if it's more cumbersome.
Your passwords can still be stolen, however. Any hardware authentication mechanism is going to ensure that no matter how compromised your local machine is, the worst an attacker can do is steal one active session. They can't steal the secret required to initiate any future session.
Hardware keys also require that the key can only authenticate a local session, so there's also no risk that your "hardware key tap" can be captured and used by a remote adversary who doesn't control the local computer.
The core practical difference between a hardware key and that TOTP code on a secure element is the hardware key, when registered with a domain, is programmed with the domain name in it. Lookalike domains - or anything besides the exact domain you registered the key with - fail to 2FA because they are unregistered. This essentially prevents (spear)phishing attacks from stealing login credentials.
It's not perfect, but it's a hell of a lot better than TOTP.
Worth mentioning, most mechanical watches will have a sapphire back, so when you take them off you can admire the movement privately.
Besides that, I look forward to giving it a chance.
Disclaimer: I use NixOS every day and I love functional programming. But boy do I wish Nix had picked Haskell, OCaml, or Lisp instead of inventing a programming language.
[0]: https://jmlr.csail.mit.edu/reviewing-papers/knuth_mathematic...
Or you can skip the keys and get a mobile prompt, instantly, the moment you visit the page.
Of course, this has nothing to do with the underlying limitations of hardware keys. But vendors routinely mess up implementing them. We could really use some rock-solid open source WebAuthN implementations.
Also, many of the chapters are available to read for free - read author's text under the cover photo.
I used uBlock customization to block the font from loading to read the article.
Carol is one of the authors of The Rust Programming Language [1]. This talk, targeted mainly at C programmers, motivates the development of Rust and then offers a deep dive into Rust's safety guarantees.
[0]: https://learning.acm.org/binaries/content/assets/leaning-cen...