Certs + TLS (...crypto ...-> network) Flashcards
What problem do Certificates aim to solve in public key cryptography?
When a server sends over a PK, how do we verify authentication of the PK. Aka, how do we know the PK truly belongs to the server?
What exactly is a certificate?
Certs are documents that contain each entity’s PKs. We trust them because they are signed using the CA private signing key.
What is a CA?
Certificate Authority: A globablly trusted entity that contains the signed certificates of many different servers.
How do certificates come into play on the Key exchange?
When the server sends over the PK, it also sends over the domain name and the signature. The client will use its VK (verification key) that is a PK pre-downloaded on its hardware to look up and verify that the signature matches the domain and PK.
What does an X.509 Certificate contain?
Serial #, Expiration date, Common name of subject (ex: google.com), PK, extensions, CA name, CA signature (hash of PK with their SK)
How can an attacker get a “valid” certificate? (insert their own PK)
- Bypass a CA’s validation process
- Larger scale attack: compromise the CA organization and generate multiple malicious certs
What is Public-Key Pinning? What is its goal + what does it defend against? What are the issues with its defense? Is this still secure?
Goal: Get rid of any intermediate or root CAs that might be malicious / give away too many invalid certificates
A certain server is able to only accept certificates signed by a specific list of CAs (either implemented via code on the client side- ex: Chrome only trusts certificates by Google CA) or a message/list of trusted CAs is sent
Attacks:If the server is hacked, the attacker can forge the message of CAs to only connect with the Cert of the attacker. Also, you can do an attack on availability by pinning a broken key to shut the website down. Public Key pinning is DEPRECATED now
What is Revocation?
A defense on malicious certs: It is a CA/server that contains a list of revoked certificates
CRL: A way for each CA to keep a list of revoked certs. When try to get a cert, it checks this list first. Not used anymore bc list gets too big and difficult to keep it current.