Pure Python HTTPS Server

Trevor Perrin trevp at trevp.net
Sat Feb 28 13:09:30 EST 2004


Paul Rubin <http://phr.cx@NOSPAM.invalid> wrote in message news:<7xhdxbsg10.fsf at ruckus.brouhaha.com>...
> trevp at trevp.net (Trevor Perrin) writes:
> > > But it means you need a separate fingerprint for each person you talk
> > > to.
> > 
> > You need to *get* the fingerprint of each person you talk to.  But if
> > you're calling people you need to get their phone number, if you're
> > emailing them you need to get their email address, etc..  acquiring
> > fingerprints isn't much different from acquiring those things, and
> > it's a hundred times easier than doing anything with certificates, IMHO.
> 
> Where do you get the fingerprint?

Through the same channel that you used to acquire the email address.

Put it this way: If you acquire someone's address through a secure
channel, then you can use that same channel for fingerprint
distribution.  If you acquired their address through an *insecure*
channel, then there's no point in using a PKI-provided (address,
public key) binding, since the address could be bogus.

So PKI (address, key) bindings are strictly less secure than simply
distributing fingerprints through the same channels used to distribute
addresses (DNS, LDAP, and paper directories, URLs, business cards,
pen-and-paper, etc.).

Here's some good writings about this approach:

http://trevp.net/cryptoID/cryptoID.html
http://www.waterken.com/dev/YURL/
http://zooko.com/distnames.html


> > Well, fingerprints are public, not secret data.  So they're much
> > easier to distribute, and N people only need N fingerprints, whereas
> > they'd need N-squared shared keys.
> 
> Yes, but each of the N people needs to authenticate N-1 of those
> fingerprints somehow, so that's O(N**2) authentication operations.

But you need to do O(N**2) address exchanges in any case, so you can
just piggyback key distribution on those.


> 
> > > Yeah, that's what I mean about it being a lot of work to do the full
> > > stack.  It's great that you've provided this starting point though.
> > 
> > Thanks.  I don't agree that the "full stack" of PKIX protocols is
> > worth implementing or using, but we can agree to disagree on that..
> 
> I don't know about going berserk writing ASN1 parsers and that whole
> bit, but there really should be some way to do basic cert checking.

I'll try to provide an interface for cryptlib and openssl's cert
checking.  So if you have those libraries you can use it, but it won't
be in pure python.


Trevor



More information about the Python-list mailing list