3 ms·
The fundamental problem here is signing keys as authoritative over subsets of a namespace (I believe). CAs are pretty good at that, so we should compare TUF to
by justinsb 11y ago
The fundamental problem here is signing keys as authoritative over subsets of a namespace (I believe). CAs are pretty good at that, so we should compare TUF to the CA system (with pinning). In practice, that means that you have to get a certificate for your package, which also requires a DNS name and SSL hosting. You could also use the PKI infrastructure, but only to sign the packages, and not require TLS. If you wanted to eliminate the cost requirements, you could offer subdomains of opam.ocaml.org, (and make sure that your CA would sign sub-sub-domains). But then you're taking on the burden of allocating those subdomains.
My fear is that even allocating subdomains of opam.ocaml.org is a tough problem in the real world. And you're not only doing (the equivalent of) that, you're also running an alternative CA, with alternative signing software. I wish you success, but this seems ambitious.
In contrast, we know the CA/https system works and we know its failings (in particular the evil CA attacks, mostly fixed by pinning). That system is highly distributed and needs no custom software. It also needs little extra work, which is always a good thing.
I've looked at the TUF papers. Can you elaborate on the attack you're describing? They don't seem to compare TUF to alternatives (that I could find). (Edit: and to be clear, my straw-man here is serving the initial git revision information over HTTPS, fetching the hashed data over HTTP & mirrors, and then verifying the hash)
- hannesm 11y agoIt is not clear to me what you are reading in the proposal. There is no need for DNS and SSL hosting. Packages are put as tarball onto the Internet. Then in the opam-repository the metadata, including a signature over the tarball. The tarball is fetched (over any insecure connection) and its signature is verified. The naming and trust delegation happens within opam and the opam repository. How is an update supposed to work if the connection to the timestamp is prevented/intercepted? How if the connection to the repository is prevented/intercepted? Using a single connection leads to less potential failure modes.
- justinsb 11y agoI understand that; I am trying to explain one way that a CA-based system might work in response to your statement that the CA system was not applicable. I believe I understand the basics of the TUF system, though the mechanics of your update mechanism are still not entirely clear to me. I simply haven't seen a comparison to the (more naive?) alternatives like the one I am straw-man proposing. I think that TUF and an https based system would both warn if an adversary or adverse conditions was blocking connectivity to the "root file". I don't think either can do anything more than warn. TUF makes it easier to mirror the root file (because it doesn't require HTTPS), so TUF has the advantage there. But I think an attacker could probably as easily (more easily?) block or intercept every TUF mirror (over HTTP) as they could block a small number of HTTPS update servers, so I'm not sure this is a huge advantage in real life. I believe the same problems apply to delivery of the root file as to subsequent files; if you are concerned about malicious attackers interfering with file delivery it seems you should prefer HTTPS. Both TUF and HTTPS-for-root are basically agnostic to the delivery mechanism for subsequent files, I believe, so I don't see this as an advantage for either: for both an attacker can trivially block individual files over HTTP; if you use HTTPS as the transport it is still trivial to block connectivity altogether, and neither approach offers a solution to this no-connectivity attack.
- edwintorok 11y agoopam could show a warning if it didn't have an updated signed timestamp for a certain amount of time (1 day, 7 days). We had a similar warning for ClamAV when no anti-virus signature database updates were seen for a certain amount of time, usually indicating DNS problems or bad mirror selection.