Hi Colm,
>> However, the client doesn't use the certificate to verify a signature, and 
>> thus proving that the KDC knows the private key associated with the cert. Is 
>> this correct?
You are right. I think anonymous case, not actually signed.
Thanks,
Jiajia


From: Colm O hEigeartaigh [mailto:[email protected]]
Sent: Friday, July 22, 2016 11:22 PM
To: Li, Jiajia <[email protected]>
Cc: [email protected]
Subject: Re: Anonymous PKINIT signatures

Hi Jiajia,
So if I understand you correctly, what you are saying is that it is sufficient 
to verify that the Subject (alternative name) of the Certificate matches that 
of the "known principal" of the KDC? In other words, the KDC is not doing any 
asymmetric signature, it is just "presenting" the certificate to the client. 
The client verifies that the certificate is trusted, and then verifies that the 
KDC principal matches the certificate. However, the client doesn't use the 
certificate to verify a signature, and thus proving that the KDC knows the 
private key associated with the cert. Is this correct?
It's a bit unusual from a security POV but I think it's ok. We're verifying 
trust in the certificate path and we're putting a hard constraint on the 
Subject of the certificate. A malicious KDC/MITM could forge a certificate, but 
then trust validation would fail, or else get a certificate for another KDC, 
but then the constraint would fail. So I think it's ok.

Colm.

On Fri, Jul 22, 2016 at 3:40 AM, Li, Jiajia 
<[email protected]<mailto:[email protected]>> wrote:
Hi Colm,
>> >However, I can't see where it is signing the response with the private key 
>> >associated with the KDC. This is a requirement for anonymous PKINIT

Yes, you are right. The  "Identity" should be used in anonymous PKINIT.
But now in client PkinitPreauth, start from line 393, we skip to use the 
certificateSet which is returned by server, so now the code can't verify the 
kdc sans, edu and so on. Such as the function 
cryptoRetrieveX509Sans#PkinitCrypto is marked as TODO.


Thanks
Jiajia


-----Original Message-----
From: Colm O hEigeartaigh 
[mailto:[email protected]<mailto:[email protected]>]
Sent: Thursday, July 21, 2016 7:27 PM
To: [email protected]<mailto:[email protected]>
Subject: Anonymous PKINIT signatures

Hi all,

I'm continuing to look at anonymous PKINIT as implemented in Kerby. I'm a bit 
puzzled by a few things relating to signatures and would welcome some feedback.

Looking at the server PkinitPreauth, it appears that Diffie-Hellman is used to 
establish a shared secret key with the client. However, I can't see where it is 
signing the response with the private key associated with the KDC. This is a 
requirement for anonymous PKINIT, unless I am mistaken?

Similarly, on the client side, it's not enough just to verify trust in the 
Certificate that's presented, it also needs to be using the Certificate to 
verify some signed data, to make sure that the KDC knows the private key 
associated with the Certificate...

I've updated the code so that the server at least includes the "Identity"
Certificate in the response to the client.

Thanks,

Colm.


--
Colm O hEigeartaigh

Talend Community Coder
http://coders.talend.com



--
Colm O hEigeartaigh

Talend Community Coder
http://coders.talend.com

Reply via email to