tashian
Joined 15 years ago
Joined 15 years ago
I think of it as a long term negotiation with society about what we are all willing to sacrifice for the conveniences of a new technology.
I don't think that negotiation ever ends, either. It just evolves with the tech. Robert Moses exuberantly covered New York City with highways during the mid 20th century. Each new bridge and highway he built induced demand for more cars. So, every road was clogged as soon as it opened. And his answer was always to build more roads.
Moses built a base of power that depended in part on revenue from toll booths. But, some of his projects were disastrous for communities and should not have ever happened. Because of his fixation on cars, and because of how he was benefitting from cars, he was unable to recognize that a city's transportation infrastructure must be balanced between different modes.
Personal cars are almost the least ideal form of transportation for a dense city and for intercity traffic. But once the power around a single technology becomes locked in, it can freeze the negotiation around it and the power structures can safely ignore any further resistance.
Interesting note ... a 2017 review of 70 London sites where Transport for London removed railings found serious and fatal pedestrian injuries fell 53% in the three years afterwards compared with the three years before.
https://content.tfl.gov.uk/pedestrian-railings-removal-repor...
What Facebook has is an opaque process run by AI with no way for most people to appeal.
But:
- You cannot prove that no one has ever been able to break a Secure Enclave or a YubiKey or another secure element. That's okay, these companies focus on making it so expensive that it's not worth doing.
- The analog "attack vector" is real, but that was always true with analog cameras as well. Anyone could have taken an analog picture of a screen, or even painted a hyper realistic image of something that never happened.
I think a realistic goal for provenance is to at least get to parity with analog cameras ("this is a picture directly from a sensor"), not to make the perfect system for proving that a photo is of a real world event.
And, Apple could choose to integrate a LiDAR depth map into the signed photo as a mitigation against the analog attacks (eg. pictures of screens).
VPN providers all run the same two or three VPN protocols, all with similar security guarantees and privacy limitations.
I've been playing with MASQUE relays over the last year. Apple's iCloud Private Relay is a MASQUE relay (two, actually). MASQUE can offer genuine privacy improvements via traffic separation, preventing any single party from correlating the traffic source and destination.
Some of the privacy concerns of VPN users can be mitigated with better technology. And relays are built into Apple operating systems today. I'm surprised that they aren't very widely deployed yet.
That's the next step for me in learning AI... playing with different integrated editor tools.
Six months ago, I tried building this app with ChatGPT and got nowhere fast.
Building it with Claude required a gluing together a few things that I didn't know much about: JavaScript audio processing, drawing on a JavaScript canvas, an algorithm for bilinear interpolation.
I don't write JavaScript often. But I know how to program and I understand what I'm looking at. The project came together easily and the creative momentum of it felt great to me. The most amazing moment was when I reported a bug—I told Claude that the audio was stuttering whenever I moved the controls—and it figured out that we needed to use an AudioWorklet thread instead of trying to play the audio directly from the React component. I had never even heard of AudioWorklet. Claude refactored my code to use the AudioWorklet, and the stutter disappeared.
I wouldn't have built this without Claude, because I didn't need it to exist that badly. Claude reduced the creative inertia just enough for me to get it done.
Primarily, the YubiKey is there to lock away the private key while making it available to the running CA. Certificate signing happens inside the YubiKey, and the CA private key is not exportable.
This uses the YubiKey PIV application, not FIDO.
As an aside, step-ca supports several approaches for key protection, but the YubiKey is relatively inexpensive.
Another fun approach is to use systemd-creds to help encrypt the CA's private key password inside a TPM 2.0 module and tie it to PCR values, similar to what LUKS or BitLocker can do for auto disk unlocking based on system integrity. The Raspberry Pi doesn't have TPM 2.0 but there are HATs available.