Semantics of SSL_get_peer_certificate() - and fingerprinting

View: New views
1 Messages — Rating Filter:   Alert me  

Semantics of SSL_get_peer_certificate() - and fingerprinting

by Kevin Easton :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

I'm developing a client in for a protocol where the public servers  
that use SSL typically use self-signed certificates.

In order to make the best of a bad situation, I would like to  
implement "server key caching", similar to the way that SSH is  
typically used (that is, on the first connection to a given server,  
the client presents the user with the fingerprint of the public key  
that the server used; if the user accepts it, the public key is  
remembered by the client so that future connections to the same server  
can be verified).

To this end I have two questions:

1) Clearly in this case SSL_get_verify_result() is likely to indicate  
that the server certificate failed verification (because it was  
self-signed).  However, in this situation can I still assume that the  
public key from the certificate (obtained with  
SSL_get_peer_certificate()) was the public key that the server  
actually used to connect with me?

2) Is it cryptographically acceptable practice to for the client to  
remember (and use for future verification) just the SHA1 digest of the  
public key, rather than the public key in its entirety?

Thanks in advance,

     - Kevin


----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@...
Automated List Manager                           majordomo@...
LightInTheBox - Buy quality products at wholesale price!