Hi, On Mon, 2024-06-17 at 14:59 +0100, Jessica Clarke wrote: > On 17 Jun 2024, at 14:53, Ansgar 🙀 <ans...@43-1.org> wrote: > > It essentially introduces an alternative authentication system (and > > authorization system as tag2upload seems to care about DM status) that > > *replaces* the one in dak *and* *disagrees* it. Even when you fix one > > of the instances where the systems disagree, the basic problem remains > > (~> at least technical debt). It is very bad design to have multiple of > > these for a single system as you significantly increase the attack > > surface (and one of these usually ends up with less maintenance than > > the other). (Only one of the systems has to allow the upload, i.e., a > > big "*OR*".) > > Would an API for tag2upload to use satisfy that concern? It feeds in > a source package name and key fingerprint (or the signature, or > whatever’s deemed useful), dak replies whether it’s valid for > uploading. Then you don’t need to trust tag2upload’s authorisation > checks beyond that it adheres to what dak says each time.
Hmm, a signed manifest solves that problem and also adds some integrity verification and possibility for third parties to check the signature itself as well. An API that gets the signed data (signed tag) with some metadata (which package, version, target suite, maybe some other bits of d/control, would have to think; parts of that might also be in the tag) would still allow having a single system make the decisions. A downside is that integrity verification and third parties (possibly) verifying the data falls flat. For me integrity verification would be somewhat nice and third parties a bit less interesting (given they can get the tag, compare files and possibly redo what tag2upload does if they also care about .dsc and stuff). We are not very good at doing integrated services though. (Please no RPC via SSH forced commands...) With regard to integrity verification, it's probably not fully clear what one exactly wants there. Joerg's idea to have tag2upload run by ftp-master is related to that: if it was part of the archive, all integrity promises still come from within the archive. (I don't really want to run the service though; outsourcing is probably better.) Arguably we do trust some external services somewhat already (like buildds for binary packages). Ansgar