On Sun, Apr 02, 2000 at 06:52:37PM +0200, Robert Bihlmeyer wrote:
> > It's currently the case, yes, but it *could* be changed. You could,
> > for example setup dinstall so that it wouldn't accept NMUs of certain
> > important packages (such as gnupg).
> A good idea. Still: with package-granularity, this decision is made by
> the users, not the Debian administrators.

Users don't have enough information to make such a decision, however.
How do they know if James allowed a particular NMU to be made, because
not only did he not have time to make the upload himself, but because
there was a huge nefarious vulnerability there that made gpg accidently
distribute the user's private key along with every signed message?

Debian *can* make this decision, because we know each other. Most users
can only go `James who?'.

> > And, equally, a deliberately compromised package would probably get a
> > fair bit of coverage too. It'd be nice not have to rely on staying up to
> > date with slashdot and the mailing lists and IRC before doing an apt-get
> > dist-upgrade though.
> If you trust the debian-keyring maintainer, there is no problem for
> you: your keyring will get updated (to a version w/o the bad guy's
> key) and then any other packages get upgraded. People will probably
> also quickly updated packages compromised by this guy with fixed
> versions.

And if he's already compromised your local mirror, and decides that no
one needs an updated debian-keyring, or any of those irritating bugfree
packages?

To reiterate: signed .debs don't cope with any of the following attacks:

        * Past/current developers doing nefarious things, especially if
          they also manage to compromise your local link in the distribution    
          network.

        * Vandalism against Packages files

        * Maliciously distributing the worst possible selection of valid
          packages

These attacks are all based on the fact that sometimes it's Debian as a whole
acting in concert that you trust, not any and all particular developers.

Signed Packages.gz don't cope with master being compromised, or similar.
That is, if you trust Debian as a whole, that's a single point of
vulnerability.

Note that signed .debs also don't cope easily with Debian being
compromised for new users, who don't have an existing copy of James key
or the entire keyring to check against. Sometimes it *is* Debian that
you trust, not arbitrary maintainers.

> If there is consensus that the maintainer put a backdoor in on
> purpose, he will get kicked, a new version of debian-keyring will be
> produced, and the situation is repaired.

And if he's doing this on purpose, he'll likely go and compromise some
other systems, like, say, some downstream mirrors.

> > And if a developer gets kicked out? You can't revoke a signature (PGP
> > signatures are designed to certify identity, not trustworthyness),
> GPG can revoke signatures, so your conclusions do not apply.

Huh, so it can. Having x signatures on every maintainer key, where x-1 of
them have been revoked still seems thoroughly inelegant, however.

> > And again you have the usual problems if someone compromises one of the
> > machines with this `super key' on it.
> Indeed. But this machine could be made more secure than the debian
> main machines could ever get (there's no need for people other than
> the signer being root, etc.)

Hmmm? The `signer' in this case is `Debian'. There should really be
no need for non-Debian people to have root on master. To some extent
sponsors are Debian people, too.

> > Again, all these complicated distributed methods are great and all, but
> > they *aren't* actually particularly more secure, and nor are they more
> > convenient.
> I don't think it would more complicated for developers. Perhaps one
> additional entering of their passphrase, while building the .changes
> file, but that's it.

Mmm? One per .deb, YM? That's somewhere around 40 or 50 for each X upload.
(each .deb has to be signed separately, no matter which way you do it)

> Users could choose their paranoia level. From trusting (same as now)
> to paranoid (only trust packages signed by a key which is signed by my
> own key). 

This is very cliquey. Not everyone knows everyone else, even within Debian,
let alone thinking about people who've never met a Debian developer in
their lives.

So afaics, users can really only choose exactly one paranoia level:
allow everything in every package to be uploaded by anyone. I'm yet to
see a reasonable method of restricting even uploads of debian-keyring
that also allows James to resign.

> > In some vague academic sense, they're harder to compromise
> > *completely*, but I don't think that makes any particular exploits any
> > harder to perform, practically speaking.
> I partly concur. Even if the developer->user channel was completely
> secured by signatures et al, we would still have the problem of an
> attacker gaining very much by breaking into a single developer's
> machine. You're netbase package is a good example: it contains a
> couple of programs usually started as root. If your developing machine
> is compromised, and your copy of the source modified, the evil guy may
> gain entry into a large number of Debian boxen.

The preinst and postinst scripts of every package are also run as root.
All you need to do is compromise the machine of one of the 60 or so
maintainers that maintain a standard or better package, or any of the
maintainers who could do an NMU of such a package, and you've got root.

Securing the way Debian distributes its software is a *long* way from
making it impossible for an attacker to compromise huge numbers of
Debian boxen.

I probably should add a rider that it's already quite difficult to do
this; developers machines aren't your regular `let's install RedHat
5.0 and leave all the default servers running', nor are most mirrors,
and certainly most popular mirrors. And even if a mirror is compromised,
an attacker has to keep their grip on it, otherwise the regular updates
to Debian will make their attack fairly minimal.

Cheers,
aj

-- 
Anthony Towns <[EMAIL PROTECTED]> <http://azure.humbug.org.au/~aj/>
I don't speak for anyone save myself. GPG encrypted mail preferred.

 ``The thing is: trying to be too generic is EVIL. It's stupid, it 
        results in slower code, and it results in more bugs.''
                                        -- Linus Torvalds

Attachment: pgpRklcR0pQOg.pgp
Description: PGP signature

Reply via email to