[foaf-protocols] FOAF+SSL and root certificates

Bruno Harbulot Bruno.Harbulot at manchester.ac.uk
Mon Feb 15 00:45:25 CET 2010



On 14/02/2010 23:18, Story Henry wrote:
>
> On 14 Feb 2010, at 21:37, Bruno Harbulot wrote:
>
>>
>> Defining a pseudo CA-certificate with CN=FOAF+SSL (for example) would just allow those resources that don't use a CA to ask for a FOAF+SSL certificate (rather than just any certificate), provided we all agree on which DN to use.
>> If this is what we end up doing (this seems sensible), I would recommend that all parties emitting FOAF+SSL certificates put a sufficiently random serial number in their certificates (e.g. based on a UUID), to avoid conflicts for applications that keep track of certificates based on their serial numbers.
>
> In http://tools.ietf.org/html/rfc4346#section-7.4.4
>
> it says:
>
>      ClientCertificateType values are divided into three groups:
>
>        1. Values from 0 (zero) through 63 decimal (0x3F) inclusive are
>           reserved for IETF Standards Track protocols.
>
>        2. Values from 64 decimal (0x40) through 223 decimal (0xDF)
>           inclusive are reserved for assignment for non-Standards Track
>           methods.
>
>        3. Values from 224 decimal (0xE0) through 255 decimal (0xFF)
>           inclusive are reserved for private use.
>
>
> Perhaps we could use one of these numbers, instead? That seems like it would be more appropriate.


No, this is not that kind of type at all. See the beginning of that section:
>       enum {
>           rsa_sign(1), dss_sign(2), rsa_fixed_dh(3), dss_fixed_dh(4),
>        rsa_ephemeral_dh_RESERVED(5), dss_ephemeral_dh_RESERVED(6),
>        fortezza_dms_RESERVED(20),
>           (255)
>       } ClientCertificateType;

So far, we've been using RSA keys (and thus rsa_sign). I suppose we 
could use dss_sign at some point.
These types imply a further CertificateVerify TLS message later on in 
the handshake, which is rather fundamental for what we are doing (since 
that's what effectively proves that the client does indeed have the 
private key for the certificate its sending).

Let's not dig into ClientCertificateType. The certificates we're using 
already fit into existing categories and this has nothing to do with 
verifying how the certificate is to be trusted (signing key-usage flag 
excepted perhaps, but we'd have this to true if present anyway).
Introducing a new type here would not just be redundant, but also 
require modifications in a number of TLS libraries.


Best wishes,

Bruno.


More information about the foaf-protocols mailing list