osdir.com
mailing list archive

Subject: Using PKIX - msg#00287

List: ietf.x509

Date: Prev Next Index Thread: Prev Next Index
Hello everybody,

I am trying to fit the PKIX messages onto some global Public Key
Infrastructures I can think off.

This exercise was pretty usefull and most of the cases are fully covered by
PKIX. There are however two situations in which I don't know what to do.
Perhaps the list can help me finding a way out.

1) Yes, I am also a European guy addicted to Hardware Tokens. My question
is about how to make a distinction between a Hardware Key and a Software
one. Suppose you have a Certification Authority which supports centralised
key generation, both in software and on hardware tokens (suppose one of the
Internet CA's would like to do this),
1) How can an EE tell the CA where to store the Certificate and the
secret key?
2) Is there a way to transmit all the stuff to use the smartcard
(unblocking PIN, access PIN, ..) along with the message in a secured way?

2) I have a problem with the CertTemplate where the whole
SubjectPublicKeyInfo is treated as one big entity. Suppose (in the same
case of centralised keygen), I want to be able to request a 1024 bit RSA
key (and not an 512 bit one). This means I need to transmit the modulus
length somewhere in the message. The only possibility I have found, is to
include some dummy modulus and exponent in the SubjectPublicKeyInfo field.
But now the CA thinks I am asking him to certify my public key instead of
generating a new keypair for me. Am I missing something?

Regards,

Frederik Loeckx



Was this page helpful?
Yes No
Thread at a glance:

Previous Message by Date: click to view message preview

Re: Comments on pkix-ipki-part1

At 12:23 3/20/98 -0500, Russ Housley wrote: >At 05:13 PM 3/19/98 +1200, Peter Gutmann wrote: >>4.2.1.2. >> >>This gives the subject key identifier as the hash of the subjectPublicKeyInfo >>*without* the tag and length. Is this a mistake, or is it meant to be like >>that? Every other instance in which an ASN.1 object is hashed (eg >>certificates, CRL's, issuerAndSerialNumber, the HASHED macro) hashes the >>entire object. In fact the PKIX CMP draft uses a hash of the full >>subjectPublicKeyInfo in the OOBCertHash, which would make it incompatible >with >>the value in the subject key identifier. Requiring a well-defined standard >>X.509 object to be broken up into pieces before processing it seems an >>extremely peculiar move, so I'm guessing it's some sort of mistake in the >spec. > >This was done prior to the CMP section. To use the public key, you need to >get the value out of the certificate without the associated ASN.1 stuff, so >that was the reason we chose to hash just the key. However, for RSA public keys you still have ASN.1 there, since the public key consists of n and e, which are coded as ASN.1 sequence. Therefore, your reasoning does not hold. I suggest to use whole SubjectPublicKeyInfo for calculation of key ids, to avoid confusion and have compatibility with CMP OOBCertHash. .... >>7.3.2. >> >>This gives a redundant definition of the DH p and g values (the ASN.1 >>definition is followed immediately by text which says exactly the same >thing - >>actually the RSA definition does this too with n and e), but doesn't explain >>the INTEGER which is the DH public key (what *is* this value? The only thing >>I can think of is g^x mod p, but that shouldn't be a fixed value). It also >>goes to some lengths to explain the encoding of the INTEGER parameter as a >BIT >>STRING, which seems very odd. > >Whould you like to suggest improved text? > >Russ > I would like to suggest the following change in the text: Instead of: "The Diffie-Hellman public key (an INTEGER) is mapped to a subjectPublicKey (a BIT STRING) as follows: the most significant bit (MSB) of the INTEGER becomes the MSB of the BIT STRING; the least significant bit (LSB) of the INTEGER becomes the LSB of the BIT STRING." to have: "The DSA public key shall be ASN.1 encoded as an INTEGER; this encoding shall be used as the contents (i.e., the value) of the subjectPublicKey component (a BIT STRING) of the SubjectPublicKeyInfo data element. DHPublicKey ::= INTEGER -- public key y = g^x mod p" This would be in accordance with DSA public key definition from 7.3.3. Regards, Nada ______________________________________________________________ Nada Kapidzic Cicovic COST - Computer Security Technologies CST AB (subsidiary of Entegrity Solutions Corporation) office: + 46 (0)8 477 77 37 mobile: + 46 (0)70 495 09 03 fax: + 46 (0)8 477 77 31 e-mail: nada@xxxxxxx or nada@xxxxxxxxxxxxx address: Finlandsgatan 60, 164 74 Kista, Sweden

Next Message by Date: click to view message preview

Re: Using PKIX

Hi Frederik, >---------- >From: Frederik Loeckx[SMTP:FRL@xxxxxxxxxxxxxx] >Sent: Tuesday, March 24, 1998 7:46 AM >To: IETF-PKIX@xxxxxxxxxxxxxxxx >Subject: [IETF-PKIX] Using PKIX > >Hello everybody, > >I am trying to fit the PKIX messages onto some global Public Key >Infrastructures I can think off. > >This exercise was pretty usefull and most of the cases are fully covered by >PKIX. There are however two situations in which I don't know what to do. >Perhaps the list can help me finding a way out. The situations you describe are not explicitly covered by the CMP/CRMF documents. However, these documents specify a framework within which you can certainly accommodate what you need. >1) Yes, I am also a European guy addicted to Hardware Tokens. My question >is about how to make a distinction between a Hardware Key and a Software >one. Suppose you have a Certification Authority which supports centralised >key generation, both in software and on hardware tokens (suppose one of the >Internet CA's would like to do this), > 1) How can an EE tell the CA where to store the Certificate and the >secret key? There are a couple of options here. I think the preferred route is to define another choice for the PKIArchiveOptions control in CRMF (something like "storeOnHardwareToken [3] BOOLEAN"). The second possibility is to define a new Control for the request (again, something like "StoreOnHardwareToken ::= BOOLEAN"). Note that in either case, the CMP CertResponse message would have a status of "granted" but would omit the optional certifiedKeyPair. > 2) Is there a way to transmit all the stuff to use the smartcard >(unblocking PIN, access PIN, ..) along with the message in a secured way? Yes. Since this is not specific to each certificate in the CMP CertReqMessages or CertRepMessage (assuming there are multiple), but is instead related to the message as a whole, this is a good example of a use for the generalInfo field of the CMP PKIHeader. An InfoTypeAndValue can be defined to carry this data (perhaps with syntax EncryptedValue from CRMF). Note that if this data is generated by the CA and sent to the EE (e.g., for cases in which the CA initializes the hardware token itself) then the EE should send a protocolEncryptionKey control in the CertRequest so that the data can be protected for confidentiality. >2) I have a problem with the CertTemplate where the whole >SubjectPublicKeyInfo is treated as one big entity. Suppose (in the same >case of centralised keygen), I want to be able to request a 1024 bit RSA >key (and not an 512 bit one). This means I need to transmit the modulus >length somewhere in the message. The only possibility I have found, is to >include some dummy modulus and exponent in the SubjectPublicKeyInfo field. >But now the CA thinks I am asking him to certify my public key instead of >generating a new keypair for me. Am I missing something? There are three possibilities here. I think the preferred route is to send nothing in the SubjectPublicKeyInfo but to send a protocolEncryptionKey control (the size of the modulus in the protocol encryption key dictates the size to use for the modulus of the centrally-generated key pair). Another alternative is the one you suggest in which a modulus and exponent are transmitted but are clearly not intended as the public key (e.g., a modulus of 2**1023 and an exponent of 0). Thirdly, a new control can be defined for the request (something like "SizeOfReqModulus ::= INTEGER"). Again, the situations you describe can be handled in the existing CMP/CRMF framework. Furthermore, one or more of the proposals presented above can be standardized if there is sufficient interest in doing so. Thanks for your interest! -------------------------------------------- Carlisle Adams Entrust Technologies cadams@xxxxxxxxxxx --------------------------------------------

Previous Message by Thread: click to view message preview

Comments on draft CMMF-00

Here are the first set of comments that I have on this draft: 1. Lets combine this with CRMF to produce a single draft of all messages. The reasons for breaking them into two drafts no longer exist to the best of my knowledge. 2. Formatting issue: Should be some space before the start of section 4. 3. Section 4.2 - Need to put in a defintion for PKIFreeText into this draft. Should not have to reference CMP for this, it is now a primitive. 4. Section 4.4 - I can see the use of having both encryptedValue and cMSEnveloped in the EncryptedData type, however I see no use for the last two types. All they are doing is making the structures more difficult and harder to interop with, more options mean more problems. Additionally I have heard of no current efforts to move the PKCS #8 and 12 into IETF drafts. 5. Section 4.4 - I don't understand the reasoning behind the fact that RSA uses a symmetric key and D-H does not. It seems reasonable to me to say that you don't need to have the encrypted symmetric key in D-H, but allow it anyway. If you are going to put the text in this manner please change it to working such as the following: "For key agreement algorithms (such as Diffie-Hellman), the encSymmKey field of EncryptedValue is not included. For key exchange algorithms (such as RSA), the encSymmKey is a symmetric key encrypted under the subscriber's public key." 6. Section 5.2.1 -- I need far more information about what the structure of rspInfo should be? If we don't define it then we can't possibly get a get interopability. There appears to be a vague reference to it being name/value pairs, but this is not certian from the text. 7. Section 5.1 - Please add a certReqId to the PKCSReq type. This allows for a correct value to be placed in a CertRepContent in the event that multiple PKCSReqs are sent to a CA. 8. Section 5.3 - Need to add a CertReqId to this message. If multiple requests have been sent in then this would be needed to disabmiguate the different requests. 9. Section 5.3 - Does this imply that you must put a subject and issuer into the certificate request if you want to use this polling method? Does this imply that a CA cannot return PENDING as a code in the event that a subject and issuer name have not been placed in the request? or just that the certificates cannot be polled for? 10. Section 5.4 - How do I retrieve a CRL in the event that the CA has an empty Issuer name? Do I put the empty name in the issuerName field or do I extract a portion of the IssuerAltName? 11. Section 5.5.1 - Should change PrintableString to UTF8string in the RevRequest ASN. 12. Section 5.5.1 - Why is there not a SEQUENCE OF RevRequest defined? The text about certDetails in RevReqContent implies to me that the RevRequest form would be perfered if you actually knew the issuer and serial number. I see nothing which would prevent the usage of the RevReqContent except for the "I don't have access to my keys any more" case. 13. Section 5.6 - Please change the first sentence to: "The response to the RevReqContent message." I am making an assumption that this message would not be generated in response to a RevRequest message since the first sentence is currently singular rather than plural. This may be a bad assumption. 14. Section 5.7 - Please change FullCertTemplates in the comment for POPODecKeyChallContent to CertReqMessages. 15. Section 5.7 - In order to make the association between the request and the challenge clearer, I strongly suggest adding a CertReqId field to the Challenge structure. This means that we could remove the order association in the comment on POPODecKeyChallContent if desired and still have correct associations. 16. Section 5.7 - It would appear to be that something should definitely be said about the suggested length of A being used in the challenge, I also see some potential problems about the total length of the integer and the senders GeneralName. What should be done if the encoding of Rand happens to be larger than the longest value that is encryptable by the public key? If you are using a bulk algorithm for doing the key exchange/key agreement versions, then you must specify the AlgorithmIdentifier of the bulk encryption algorithm. 17. Section 5.7 - What would be the correct way to say that I failed to do this? THere is a success body content defined but not a failure body. I can see this as possibly being handled in the overlying protocal but that potentically should be stated. 18. Section 5.7 - There is a reference to PKIHeader, but I can not find the defintion of this in either CRMF or CMMF. Please put in a defintion or correct the reference. 19. Section 5.9 - The second sentence in this paragraph implies that I will be generating a response to these announcement messages. I cannot believe that this is what was intended. I would suggest "These messages are generally unsolicited and may be received by End Entities at random times." 20. Section 5.9.1 - I disagree that the old CA private key is no longer required after sending out this message. I think that you still need the old CA private key to produce CRLs right up to the time that the old CA certificate expires. Here the the problem that I see with your statement. Lets say that I am using my own private CA which is publishing CRLs via an HTTP link. I send you a signed message with my certificates and the current (old) chain. The CA then updates it key set and send me the information and publishes out a CRL signed with its (new) private key. You then attempt to verify the message I sent you and pick up the CRL. You are unable to verify the signature on the CRL and thus the message I sent you. If I now send you a new message it will verify since I have the new chain of certificates to send to you. This is fine in a closed environment but not on the internet. 21. Section 5.10 - From the fact that the CA is just anouncing this information, am I correct in assuming that the request for this would come from an Out-Of-Band request? It makes no sense to me that this would just randomly show up in my mailbox. I would feel very srongly that this should be an explicit request/reply message in the normal format rather than tan anouncement message. 22. Section 5.10 - The structure includes a field for newSigCert, how and where was the request for this certificate made if this is just a random annoucement? (I use the words random from a client point of view. I know that the CA will only generate this message in response to some well defined events, but the client does not see those events.) 23. Section 5.11 - There are a set of examples that are partially defined. It would appear that atleast some of the items in the examples (CAKeyUpdateInfo) are explicitly called out in the spec and therefore should not appear here. 24. Section 5.11/5.12 -- I give up. This is not defined enough for me to even start to understand how to use these messages. 25. Section 6. There is a warning in this section about the unadvisablity of doing arbitrary decryptions and sending them back to somebody. It would appear to me that this is very close to what is being done in the challenge/response POP seqeuences. I think a paragraph either here or in the section on the POP messages would be in order about why I should not consider this to be an explicitly documented version of this attack I am suppose to ipmlement. 26. Need an appendix containing the ASN pulled out into a single module for easy reference. jim schaad

Next Message by Thread: click to view message preview

Re: Using PKIX

At 07:46 AM 3/24/98 -0500, Frederik Loeckx wrote: >1) Yes, I am also a European guy addicted to Hardware Tokens. My question >is about how to make a distinction between a Hardware Key and a Software >one. Suppose you have a Certification Authority which supports centralised >key generation, both in software and on hardware tokens (suppose one of the >Internet CA's would like to do this), > 1) How can an EE tell the CA where to store the Certificate and the >secret key? Is this really necessary? If the CA sends the centrally generated keying material to the EE, the EE will store it in the appropriate place. When a hardware token is used, I would hope that the keying material to revover the private key is available only on that token. In this case, the private key cannot be used until it is put on the token and recovered. > 2) Is there a way to transmit all the stuff to use the smartcard >(unblocking PIN, access PIN, ..) along with the message in a secured way? This is a good question. PKIX has never looked at the issues associated with distributing token specific information. It might be useful to define extensions to the protocols (once they are stable) for this information. All of the protocols have extension mechanisms. Russ
Sign up for updates to this mailing list. email:
Loading Comments...
Home | News | Patents | Sitemap | FAQ | advertise

Advertising by