[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Required Algorithms for Certificates



Folks,

Since different algorithms are a natural fit for different applications, the selection of a single MUST algorithm for PKIX seems a bad idea. That is the reason Jeff Schiller let us avoid this issue in the first place. If S/MIME chooses RSA but IPsec chooses DSA and D-H, we would be in conflict with at least one of them. PKIX should not be in the position of dictating algorithms to other working groups. If PKIX decides to specify MUSTs or SHOULDs, they should be designed to support broad interoperability.

Interoperability is a prime concern here at NIST. In terms of algorithm independence, we have come to the conclusion that interoperability *requires* multi-algorithm clients. Yes, it would be nice to move the burden to CAs since there will be relatively few CAs. However, CAs that can sign with multiple algorithms doesn't help clients that verify with only one unless they issue each certificate multiple times, using each supported signing algorithm. Not a solution, IMHO!

This implies that we need to move the burden to the clients, even though that will impact many clients. If a PKIX client can validate both DSA and RSA signatures, it can handle certificates from any CA when signed with a PKIX-specified algorithm. The client will never be forced to reject the certificate based on the signing algorithm - to me, that's interoperability. (I am assuming, of course, that the client knows how to use the end entity's public key. If the certificate contains a D-H key, and the client can't do D-H we still break down. It wasn't the signature algorithm on the certificates that broke it, though...)

The question is whether multiple algorithm support is a practical requirement for clients. I just took a few minutes to scan the FIPS 140-1 validated crypto module list. This list currently has 130 modules - some hardware, some software. (For those interested, see http://csrc.nist.gov/cryptval/140-1/1401val.htm) Many of those cryptographic modules already support multiple signature algorithms. I didn't count, but it appears that most of the recent products (both hardware and software) support both DSA and RSA for signatures.

To me, this implies that multiple algorithm support is reasonable unless the device footprint must be very small. This may be a biased data set, though. Validated products are required to support at least one FIPS-approved algorithm, and RSA has only recently become a FIPS-approved algorithm.

Anyway, I personally like Russ's proposal. I believe it doesn't put too great a burden on PKI clients and would foster interoperability.

My $0.02 (which may in fact be overpriced.)

Thanks,

Tim Polk