Pure Python HTTPS Server

Paul Rubin http
Sat Feb 28 14:33:47 EST 2004


trevp at trevp.net (Trevor Perrin) writes:
> > Where do you get the fingerprint?
> 
> Through the same channel that you used to acquire the email address.

Well, no.  That channel doesn't have to be secure.  If you think it's
secure, you may as well use it for secret keys.  Aha you say, it only
has to be secure against tampering, not mere eavesdropping.  But if
you've got a definite way to secure it against tampering, you may as
well also secure it against eavesdropping.

> 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.

Yes, but if the address is bogus and the public key is good, then
someone intercepting the encrypted traffic can't read it.  That's the
whole point of encryption.  Also, routing to the address is done by
mechanisms outside the recipient's control.  You could get the address
through a secure channel, only to have someone hijack the address the
next day.

> Here's some good writings about this approach:
> http://trevp.net/cryptoID/cryptoID.html

This paper begins

    Abstract: In this paper, we argue that person-to-person key
    distribution is best accomplished with a key-centric approach,

However the idea of certificates is to do away with the need for
person-to-person key distribution.  

> http://www.waterken.com/dev/YURL/
> http://zooko.com/distnames.html

I'm presuming these are along similar lines as the first.

> > 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.

The addresses can be unauthenticated and are much easier to accomplish.

> > 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.

Cool, thanks.



More information about the Python-list mailing list