Changes

Jump to: navigation, search

CA/FAQ

285 bytes removed, 23:50, 13 July 2021
m
minor updates
=== What are certificates? ===
Certificates are used in the context of "public key" cryptography. More specifically, certificates are digitally signed data items combining a public key used for some purpose (e.g., enabling a web server to accept SSL connections) with information about the entity associated with the public key. Certificates are used in at least three two functions within Mozilla and related software:
* when a user uses the software to connect to an SSL-enabled web server or other SSL-enabled servers, (e.g., an IMAP mail server)
* when a user uses the software to read digitally signed email from another user
* when a user uses the software to download and execute digitally signed executable code (e.g., a digitally-signed Java applet)
In public key cryptography the communicating entities (e.g., web servers or user email programs) each have a unique pair of cryptographic keys, a "private" key that is kept secret and a "public" key that is made known to others. In the various cryptography-based functions in Mozilla mentioned above public keys are not used in their "raw" form but rather are encapsulated in "certificates". (These are often referred to as "X.509 v3 certificates", from the name of the technical standard defining the certificates' format.)
As noted above, a certificate is a digitally signed bundle of data that includes both the public key for a given entity and various pieces of information about that entity; for example, the certificate for a secure web server includes the domain name of the server, and a certificate used for secure email includes the email address of the sending user, and the certificate for a signed Java applet includes the name of the organization or individual who developed and/or distributed the applet.
Digitally signing a certificate (or any other data) is done using some entity's private key. More specifically, certificate data are signed by taking the bit string representing the data and putting it through a specially-designed "hashing" operation that generates a small fixed-length bit string, and then encrypting that new bit string (the "hash") using some entity's private key to generate the "signature". Hash functions are mathematically designed to ensure that different bit strings will generate different hash values, and public/private key pairs and algorithms are designed to ensure that data encrypted by a private key can be easily decrypted only by the corresponding public key. (In both cases these guarantees are not absolute, but are as good as skilled cryptographers can make them.)
Someone receiving a copy of the data and its signature can verify the data and signature by decrypting the signature using the entity's public key to recover the original hash value, separately hashing the data to generate a new hash value, and then comparing the original hash value and the new hash value. If the recovered hash value and the newly-generated hash value match then the receiver can be reasonably sure that the data received are the same as the data as originally signed, and that the entity whose public key was used to verify the signature is the same entity that did the signing (with the corresponding private key).
 
=== What are CAs? ===
Confirm, administrator
5,526
edits

Navigation menu