This is a public service to detect compromised, weak SSL/X.509 keys.
Hashserver offers the following functionality:When a user submits a certificate request to your system, your system first does the normal request checking (Proof of Possession). Afterwards, your system should extract the public key, and calculate the hash of the public key. That hash is then sent to the hashserver automatically, and the hashserver responds with the status of the key, whether it is compromised or not. In case the key is definitley compromised, you can alert the user that the key has been compromised, and stop the process. In case the key is likely compromised, you can ignore it, or alert the user, ask the user to provide further input on how the key-generation happened, and let the user continue if he really wants to. (This could be needed in case the user knowingly submitted the same Certificate Request to several different CA's and really needs different certificates from different CA's for the same key) In case the key is known to be compromised yet, your system normally continues to issue the certificate for the user.
If the hashserver later on detects that the key of your user got compromised, it will contact your system through http/https (or smtp if you prefer emails), and inform you about the compromise. Your system will then lookup the key-hash and the pseudonym of your user, and can inform your user that the key was compromised, and that the user should generate a new key and revoke the certificate.
The Hashserver only needs the hash of the public key of the certificate(request), and a pseudonym of the user that owns the key. You do not need to send the whole certificate requests, public keys, email addresses of your users, domains of your users, private keys of your users, or any other personal information.
To avoid false-positives, we will require strong authentication from all CA's, and an agreement that will be signed by all CA's. To avoid false-negatives, as many CA's as possible should use the HashServer.
Please tell us about your service-level demands, we are confident, that we can meet your needs.
The Hashserver needs the following fields for every submission: Please read those descriptions carefully. If you have any questions, please contact us!
In case a collision is found later on, you will either receive an email or a HTTP POST request to the given contact address with the following parameters:
You can download and use our script which extracts the public key hash from a certificate or CSR from a given filename, and automatically sends it to the hashserver and gets the result back.
You can integrate this script into your software, or you can take it as a reference and develop similar code into your own software.
We are currently working together with vendors of Certificate-Authority Software to integrate the Hashserver API into their products directly, so that your CA software can easily do it for you. If your CA software does not support HashServer yet, please contact your vendor and us about it.
If you need any help, feel free to contact us!More information about this service: http://wiki.cacert.org/wiki/HashServer
This Hashserver is operated by CAcert.org