1 00:00:00,400 --> 00:00:02,420 For a digital certificate to be issued, 2 00:00:02,420 --> 00:00:04,930 a user first has to request a digital certificate 3 00:00:04,930 --> 00:00:07,910 from a Registration Authority known as an RA. 4 00:00:07,910 --> 00:00:09,010 The Registration Authority 5 00:00:09,010 --> 00:00:11,630 then requests the identifying information from the user 6 00:00:11,630 --> 00:00:14,640 and forwards that certificate request up to the CA 7 00:00:14,640 --> 00:00:16,690 known as the Certificate Authority. 8 00:00:16,690 --> 00:00:17,820 This Certificate Authority 9 00:00:17,820 --> 00:00:19,540 then creates the digital certificate, 10 00:00:19,540 --> 00:00:21,090 including the user's public key 11 00:00:21,090 --> 00:00:22,360 and their identity information, 12 00:00:22,360 --> 00:00:24,460 and passes that back to the user. 13 00:00:24,460 --> 00:00:26,800 There are many root certificate authorities out there 14 00:00:26,800 --> 00:00:29,200 including companies like Verisign, Digisign, 15 00:00:29,200 --> 00:00:30,590 and numerous others. 16 00:00:30,590 --> 00:00:33,290 They act as a trusted third party to validate 17 00:00:33,290 --> 00:00:36,230 the certificates are being issued to the correct people. 18 00:00:36,230 --> 00:00:37,910 The certificate authority also maintains 19 00:00:37,910 --> 00:00:41,030 a publicly accessible copy of that user's public key 20 00:00:41,030 --> 00:00:43,750 and this allows them to have that for use by other users 21 00:00:43,750 --> 00:00:46,060 who wish to send them confidential information. 22 00:00:46,060 --> 00:00:47,860 So when you want to go to my web server, 23 00:00:47,860 --> 00:00:49,580 you can go to that trusted third party 24 00:00:49,580 --> 00:00:51,930 and pull my public key, encrypt something, 25 00:00:51,930 --> 00:00:53,460 and then send it to me. 26 00:00:53,460 --> 00:00:56,390 Now they also maintain what's known as a CRL 27 00:00:56,390 --> 00:00:58,700 which is a Certificate Revocation List. 28 00:00:58,700 --> 00:01:00,220 The Certificate Revocation List 29 00:01:00,220 --> 00:01:02,410 is an online list of digital certificates 30 00:01:02,410 --> 00:01:04,860 that the certificate authority has already revoked. 31 00:01:04,860 --> 00:01:06,810 Usually, this is because those certificates 32 00:01:06,810 --> 00:01:08,470 have become comprised. 33 00:01:08,470 --> 00:01:09,840 The Certificate Revocation List 34 00:01:09,840 --> 00:01:11,990 is a full list of every certificate 35 00:01:11,990 --> 00:01:13,900 that has ever, ever been revoked 36 00:01:13,900 --> 00:01:16,060 by that particular certificate authority. 37 00:01:16,060 --> 00:01:18,580 Whenever your computer tries to connect to a new server, 38 00:01:18,580 --> 00:01:21,350 it requests the current public key digital certificate 39 00:01:21,350 --> 00:01:23,200 from the certificate authority. 40 00:01:23,200 --> 00:01:24,960 The certificate authority first checks 41 00:01:24,960 --> 00:01:26,500 the Certificate Revocation List 42 00:01:26,500 --> 00:01:29,050 before they send you that public key or digital certificate 43 00:01:29,050 --> 00:01:31,260 to ensure it hasn't already been revoked. 44 00:01:31,260 --> 00:01:33,880 Now if you want to determine if a certificate was revoked, 45 00:01:33,880 --> 00:01:36,980 we're going to use a protocol known as the OCSP 46 00:01:36,980 --> 00:01:39,500 or Online Certificate Status Protocol. 47 00:01:39,500 --> 00:01:41,520 This protocol is going to allow you to determine 48 00:01:41,520 --> 00:01:44,320 the revocation status of any digital certificate 49 00:01:44,320 --> 00:01:45,660 using its serial number. 50 00:01:45,660 --> 00:01:48,350 This is an alternative to the Certificate Revocation List 51 00:01:48,350 --> 00:01:51,100 and operates much more quickly and much more efficiently 52 00:01:51,100 --> 00:01:52,730 because it doesn't use encryption, 53 00:01:52,730 --> 00:01:55,060 but that makes it less secure. 54 00:01:55,060 --> 00:01:57,130 Just as OCSP was an alternative 55 00:01:57,130 --> 00:01:59,070 to Certificate Revocation List, 56 00:01:59,070 --> 00:02:02,700 OCSP Stapling is an alternative to OCSP. 57 00:02:02,700 --> 00:02:04,210 This process used to be known 58 00:02:04,210 --> 00:02:07,840 as the TLS Certificate Status Request Extension. 59 00:02:07,840 --> 00:02:11,060 This OCSP Stapling allows the certificate holder 60 00:02:11,060 --> 00:02:15,010 to get the OCSP record from the server at a regular interval 61 00:02:15,010 --> 00:02:18,300 and include it as part of the SSL or TLS handshake. 62 00:02:18,300 --> 00:02:19,350 By doing so, 63 00:02:19,350 --> 00:02:21,550 it eliminates an additional connection being required 64 00:02:21,550 --> 00:02:23,230 at the time of the user's request 65 00:02:23,230 --> 00:02:26,300 and this speeds up the secure tunnel creation process. 66 00:02:26,300 --> 00:02:28,470 Now one concern with digital certificates 67 00:02:28,470 --> 00:02:30,850 is if an attacker can impersonate a server. 68 00:02:30,850 --> 00:02:32,270 To prevent this from occurring, 69 00:02:32,270 --> 00:02:34,290 public key pinning was created. 70 00:02:34,290 --> 00:02:37,560 Public key pinning allows an HTTPS website 71 00:02:37,560 --> 00:02:39,260 to resist impersonation attacks 72 00:02:39,260 --> 00:02:42,000 from those who are trying to present fraudulent certificates 73 00:02:42,000 --> 00:02:44,450 by presenting a set of trusted public keys 74 00:02:44,450 --> 00:02:48,180 to the user's web browser as part of its HTTP header. 75 00:02:48,180 --> 00:02:50,810 Now if the web browser doesn't get the matching public key 76 00:02:50,810 --> 00:02:52,330 from the certificate authority, 77 00:02:52,330 --> 00:02:54,530 then it knows that website was compromised 78 00:02:54,530 --> 00:02:56,600 and it's going to alert the user. 79 00:02:56,600 --> 00:02:58,310 The last two concepts we need to mention 80 00:02:58,310 --> 00:02:59,870 in regards to certificate authorities 81 00:02:59,870 --> 00:03:02,620 are key escrow and key recovery agents. 82 00:03:02,620 --> 00:03:04,600 Key escrow occurs when a secure copy 83 00:03:04,600 --> 00:03:06,300 of a user's private key is held 84 00:03:06,300 --> 00:03:09,330 just in case that user accidentally loses their key. 85 00:03:09,330 --> 00:03:12,350 If your organization simply can't accept any data loss, 86 00:03:12,350 --> 00:03:15,490 then you need to ensure key escrow has been setup. 87 00:03:15,490 --> 00:03:17,660 Now remember whenever you use key escrow, 88 00:03:17,660 --> 00:03:19,060 you have to protect that key store 89 00:03:19,060 --> 00:03:21,410 from anybody who's trying to steal those keys. 90 00:03:21,410 --> 00:03:23,440 It's recommended that key escrow services 91 00:03:23,440 --> 00:03:25,330 require two different administrators be present 92 00:03:25,330 --> 00:03:27,770 anytime a key is being taken out of escrow. 93 00:03:27,770 --> 00:03:29,160 This is going to help you implement 94 00:03:29,160 --> 00:03:31,830 the concept of a separation of duties. 95 00:03:31,830 --> 00:03:34,760 Now the second concept is a key recovery agent. 96 00:03:34,760 --> 00:03:37,570 A key recovery agent is a specialized type of software 97 00:03:37,570 --> 00:03:39,330 that allows the restoration of a lost 98 00:03:39,330 --> 00:03:41,210 or corrupted key to be performed. 99 00:03:41,210 --> 00:03:42,440 Think of it as a backup 100 00:03:42,440 --> 00:03:44,380 for all of the certificate authority's keys 101 00:03:44,380 --> 00:03:46,840 just in case an incident or disaster occurred. 102 00:03:46,840 --> 00:03:48,790 Finally, I want you to remember this. 103 00:03:48,790 --> 00:03:51,180 If a root CA is compromised by an attacker, 104 00:03:51,180 --> 00:03:53,830 then every certificate that has been issued by that CA 105 00:03:53,830 --> 00:03:55,300 is now considered compromised 106 00:03:55,300 --> 00:03:57,740 and they have to be revoked and reissued. 107 00:03:57,740 --> 00:03:59,670 Luckily, this isn't a frequent occurrence 108 00:03:59,670 --> 00:04:02,080 especially with commercial certificate authorities. 109 00:04:02,080 --> 00:04:04,330 But if you're running your own certificate authority 110 00:04:04,330 --> 00:04:07,000 within your organization and this gets compromised, 111 00:04:07,000 --> 00:04:08,610 this is something you need to be aware of 112 00:04:08,610 --> 00:04:10,840 so you can revoke all of your digital certificates 113 00:04:10,840 --> 00:04:12,963 and then create new secure ones.