Home  Programming   How the htt ...

how the https certificate is validated using chain of trust

Validating the certificate of an HTTPS website involves a series of steps to ensure that the server's identity is legitimate and that the certificate presented is valid and issued by a trusted Certificate Authority (CA). Here's a detailed flow of how the certificate validation process works:

1. Client Request

  1. Client Accesses HTTPS Website: The client (e.g., web browser) initiates a connection to an HTTPS-enabled website by sending a request to the server.

2. Server Response

  1. Server Sends Certificate: Upon receiving the client's request, the server responds by sending its SSL/TLS certificate, which includes:
    • Server's Public Key: Used for encrypting session keys during the SSL/TLS handshake.
    • Server's Identity Information: This includes the Common Name (CN) or Subject Alternative Names (SANs), organization details, and the validity period of the certificate.

3. Certificate Chain Validation

  1. Certificate Chain Validation: The client verifies the certificate chain to ensure the authenticity of the server's certificate:
    • Root CA Verification: The client checks if the server's certificate was issued by a trusted Root CA (Certificate Authority). The Root CA's public key is typically pre-installed in the client's operating system or browser.
    • Intermediate CA Verification: If the server's certificate was issued by an Intermediate CA (not directly by a Root CA), the client checks if the Intermediate CA's certificate is signed by a trusted Root CA.
    • Chain of Trust: The client builds a chain of certificates from the server's certificate back to a trusted Root CA certificate. Each certificate in the chain is validated using the public key of the next certificate in the chain until the chain reaches a trusted Root CA certificate.

4. Certificate Revocation Check

  1. Certificate Revocation Check: The client verifies if the server's certificate has been revoked (e.g., due to compromise or expiration) by:
    • CRL (Certificate Revocation List): Checking the CRL published by the CA to see if the certificate serial number is listed as revoked.
    • OCSP (Online Certificate Status Protocol): Sending a request to the CA's OCSP responder to get the real-time status of the certificate (revoked or valid).

5. Expiry Check

  1. Expiry Check: The client checks if the server's certificate is still within its validity period (not expired). If expired, the certificate is considered invalid.

6. Trust Evaluation

  1. Trust Evaluation: After verifying the certificate chain, checking revocation status, and expiry, the client determines if it trusts the server's certificate:
    • If all checks pass (valid chain, not revoked, not expired), the client trusts the server's identity and proceeds with establishing a secure connection.
    • If any check fails (invalid chain, revoked, expired), the client displays a security warning to the user, indicating that the connection may not be secure.

7. Secure Connection Established

  1. Secure Connection: Once certificate validation is successful, the client and server establish a secure SSL/TLS connection:
    • Data Encryption: Data exchanged between the client and server is encrypted using symmetric encryption keys negotiated during the SSL/TLS handshake.
    • Data Integrity: Message Authentication Codes (MACs) ensure that data has not been tampered with during transmission.
    • Server Authentication: The server's identity is authenticated, ensuring that the client is communicating with the intended server.
Published on: Jun 19, 2024, 05:29 AM  
 

Comments

Add your comment