Artifact 90a33414b84f8b412cff20de9b35c28c254a3b8a:
- File wiki/client-auth.md — part of check-in [385b2a8aa4] at 2019-03-09 12:11:20 on branch trunk — Markdown edits (user: bernd size: 3749)
0000: 23 20 43 6c 69 65 6e 74 20 41 75 74 68 65 6e 74 # Client Authent 0010: 69 63 61 74 69 6f 6e 20 23 0a 0a 41 73 20 64 69 ication #..As di 0020: 73 63 75 73 73 65 64 20 69 6e 20 74 68 65 20 5b scussed in the [ 0030: 70 6b 69 5d 28 70 6b 69 2e 6d 64 29 20 73 65 63 pki](pki.md) sec 0040: 74 69 6f 6e 2c 20 69 74 20 69 73 20 71 75 69 74 tion, it is quit 0050: 65 20 64 69 66 66 69 63 75 6c 74 20 74 6f 0a 73 e difficult to.s 0060: 6f 6c 76 65 20 74 68 65 20 74 72 75 73 74 20 70 olve the trust p 0070: 72 6f 62 6c 65 6d 20 69 6e 20 61 20 50 4b 49 20 roblem in a PKI 0080: 73 79 73 74 65 6d 20 77 68 65 72 65 20 74 68 65 system where the 0090: 20 63 6c 69 65 6e 74 20 68 61 73 20 74 6f 20 74 client has to t 00a0: 72 75 73 74 0a 74 68 65 20 73 65 72 76 65 72 2e rust.the server. 00b0: 20 54 68 65 20 63 65 6e 74 72 61 6c 69 7a 65 64 The centralized 00c0: 20 43 65 72 74 69 66 69 63 61 74 69 6f 6e 20 41 Certification A 00d0: 75 74 68 6f 72 69 74 79 20 73 63 68 65 6d 65 20 uthority scheme 00e0: 69 73 20 62 72 6f 6b 65 6e 2c 0a 61 6e 64 20 61 is broken,.and a 00f0: 20 64 69 73 74 72 69 62 75 74 65 64 20 73 79 73 distributed sys 0100: 74 65 6d 20 69 73 20 68 61 72 64 2e 0a 0a 48 6f tem is hard...Ho 0110: 77 65 76 65 72 2c 20 6c 65 74 27 73 20 74 61 6b wever, let's tak 0120: 65 20 61 20 73 74 65 70 20 62 61 63 6b 2c 20 61 e a step back, a 0130: 6e 64 20 6c 6f 6f 6b 20 2a 2a 77 68 65 6e 2a 2a nd look **when** 0140: 20 64 6f 20 77 65 20 72 65 61 6c 6c 79 20 77 61 do we really wa 0150: 6e 74 20 61 0a 73 65 63 75 72 65 20 63 6f 6e 6e nt a.secure conn 0160: 65 63 74 69 6f 6e 3f 20 57 68 65 6e 20 77 65 20 ection? When we 0170: 68 61 76 65 20 70 72 69 76 61 74 65 20 64 61 74 have private dat 0180: 61 20 6f 6e 20 61 20 73 65 72 76 65 72 2c 20 77 a on a server, w 0190: 68 65 6e 20 77 65 20 77 61 6e 74 20 74 6f 0a 61 hen we want to.a 01a0: 75 74 68 65 6e 74 69 63 61 74 65 20 75 73 2c 20 uthenticate us, 01b0: 61 6e 64 20 73 65 6e 64 20 6f 75 72 20 63 72 65 and send our cre 01c0: 64 65 6e 74 69 61 6c 73 20 6f 76 65 72 20 74 68 dentials over th 01d0: 65 20 49 6e 74 65 72 6e 65 74 2e 0a 0a 23 23 20 e Internet...## 01e0: 49 6e 76 65 72 74 65 64 20 54 72 75 73 74 20 23 Inverted Trust # 01f0: 23 0a 0a 54 68 65 20 63 61 73 65 20 77 65 20 68 #..The case we h 0200: 61 76 65 20 68 65 72 65 20 74 68 75 73 20 69 73 ave here thus is 0210: 20 74 68 65 20 6f 74 68 65 72 20 77 61 79 20 72 the other way r 0220: 6f 75 6e 64 3a 20 54 68 65 20 73 65 72 76 65 72 ound: The server 0230: 20 77 61 6e 74 73 20 74 6f 20 6b 6e 6f 77 0a 6f wants to know.o 0240: 75 72 20 69 64 65 6e 74 69 74 79 2c 20 61 6e 64 ur identity, and 0250: 20 77 69 6c 6c 20 70 72 65 73 65 6e 74 20 75 73 will present us 0260: 20 64 61 74 61 20 6f 6e 6c 79 20 77 68 65 6e 20 data only when 0270: 69 74 20 74 72 75 73 74 73 20 75 73 2e 20 54 68 it trusts us. Th 0280: 69 73 20 69 73 20 61 20 63 61 73 65 0a 77 68 65 is is a case.whe 0290: 72 65 20 70 75 62 6c 69 63 20 6b 65 79 73 20 73 re public keys s 02a0: 74 69 6c 6c 20 68 65 6c 70 20 75 73 3a 20 69 74 till help us: it 02b0: 20 69 73 20 73 75 66 66 69 63 69 65 6e 74 20 77 is sufficient w 02c0: 68 65 6e 20 6f 6e 65 20 73 69 64 65 20 6f 66 20 hen one side of 02d0: 61 0a 63 6f 6d 6d 75 6e 69 63 61 74 69 6f 6e 20 a.communication 02e0: 76 65 72 69 66 69 65 73 20 74 68 65 20 69 64 65 verifies the ide 02f0: 6e 74 69 74 79 20 6f 66 20 74 68 65 20 70 61 72 ntity of the par 0300: 74 6e 65 72 2c 20 61 73 20 61 20 6d 61 6e 20 69 tner, as a man i 0310: 6e 20 74 68 65 20 6d 69 64 64 6c 65 0a 61 74 74 n the middle.att 0320: 61 63 6b 20 68 61 73 20 74 6f 20 72 65 70 6c 61 ack has to repla 0330: 63 65 20 62 6f 74 68 20 69 64 65 6e 74 69 74 69 ce both identiti 0340: 65 73 20 74 6f 20 61 63 74 75 61 6c 6c 79 20 69 es to actually i 0350: 6e 74 65 72 63 65 70 74 20 74 68 65 20 63 6f 6d ntercept the com 0360: 6d 75 6e 69 63 61 74 69 6f 6e 0a 28 69 66 20 74 munication.(if t 0370: 68 65 72 65 20 69 73 20 61 6e 20 69 64 65 6e 74 here is an ident 0380: 69 74 79 20 65 78 63 68 61 6e 67 65 29 2e 0a 0a ity exchange)... 0390: 53 6f 20 77 68 61 74 20 68 61 70 70 65 6e 73 20 So what happens 03a0: 69 66 20 77 65 20 75 73 65 20 74 68 65 20 70 75 if we use the pu 03b0: 62 6c 69 63 20 6b 65 79 20 61 73 20 73 69 67 6e blic key as sign 03c0: 2d 69 6e 20 74 6f 20 74 68 65 20 73 65 72 76 65 -in to the serve 03d0: 72 3f 20 54 68 65 20 75 73 65 72 0a 70 72 65 73 r? The user.pres 03e0: 65 6e 74 73 20 69 74 73 20 70 75 62 6c 69 63 20 ents its public 03f0: 6b 65 79 2c 20 77 68 69 63 68 20 65 73 74 61 62 key, which estab 0400: 6c 69 73 68 65 73 20 61 20 73 68 61 72 65 64 20 lishes a shared 0410: 73 65 63 72 65 74 20 74 68 61 74 20 61 6c 6c 6f secret that allo 0420: 77 73 20 74 6f 0a 76 65 72 69 66 79 20 74 68 61 ws to.verify tha 0430: 74 20 74 68 69 73 20 75 73 65 72 20 69 73 20 6c t this user is l 0440: 65 67 69 74 69 6d 61 74 65 20 28 69 2e 65 2e 20 egitimate (i.e. 0450: 6b 6e 6f 77 73 20 68 69 73 20 73 65 63 72 65 74 knows his secret 0460: 20 6b 65 79 29 2c 20 2a 2a 61 6e 64 2a 2a 20 61 key), **and** a 0470: 74 0a 74 68 65 20 73 61 6d 65 20 74 69 6d 65 20 t.the same time 0480: 61 6c 6c 6f 77 73 20 74 6f 20 65 73 74 61 62 6c allows to establ 0490: 69 73 68 20 61 20 73 65 63 75 72 65 20 63 6f 6e ish a secure con 04a0: 6e 65 63 74 69 6f 6e 2e 0a 0a 54 68 65 20 74 72 nection...The tr 04b0: 75 73 74 20 6d 6f 64 65 6c 20 69 73 20 61 67 61 ust model is aga 04c0: 69 6e 20 22 77 65 20 6b 6e 6f 77 20 65 61 63 68 in "we know each 04d0: 20 6f 74 68 65 72 22 20 6d 6f 64 65 6c 2e 20 54 other" model. T 04e0: 68 69 73 20 74 69 6d 65 2c 20 77 65 20 68 61 76 his time, we hav 04f0: 65 20 61 0a 6d 75 63 68 20 62 65 74 74 65 72 20 e a.much better 0500: 70 6f 73 69 74 69 6f 6e 20 74 68 61 6e 20 69 6e position than in 0510: 20 74 68 65 20 22 75 6e 6b 6e 6f 77 6e 20 73 65 the "unknown se 0520: 72 76 65 72 20 63 61 73 65 22 3a 20 54 68 65 20 rver case": The 0530: 66 69 72 73 74 20 74 69 6d 65 20 61 6e 0a 75 6e first time an.un 0540: 6b 6e 6f 77 6e 20 6e 65 77 20 75 73 65 72 20 61 known new user a 0550: 63 63 65 73 73 65 73 20 61 20 73 65 72 76 65 72 ccesses a server 0560: 20 69 73 20 77 68 65 6e 20 68 65 20 63 72 65 61 is when he crea 0570: 74 65 73 20 68 69 73 20 61 63 63 6f 75 6e 74 2e tes his account. 0580: 20 54 68 69 73 20 69 73 0a 73 74 69 6c 6c 20 63 This is.still c 0590: 72 69 74 69 63 61 6c 2c 20 79 6f 75 20 64 6f 6e ritical, you don 05a0: 27 74 20 77 61 6e 74 20 74 6f 20 63 72 65 61 74 't want to creat 05b0: 65 20 61 6e 20 61 63 63 6f 75 6e 74 20 77 68 69 e an account whi 05c0: 6c 65 20 61 20 6d 61 6e 2d 69 6e 2d 74 68 65 2d le a man-in-the- 05d0: 6d 69 64 64 6c 65 0a 61 74 74 61 63 6b 20 69 73 middle.attack is 05e0: 20 6f 6e 67 6f 69 6e 67 20 28 74 68 69 73 20 69 ongoing (this i 05f0: 73 20 61 20 22 63 61 70 74 69 76 65 20 65 6e 76 s a "captive env 0600: 69 72 6f 6e 6d 65 6e 74 22 20 70 72 6f 62 6c 65 ironment" proble 0610: 6d 3b 20 69 66 20 79 6f 75 20 6e 65 76 65 72 20 m; if you never 0620: 6c 65 61 76 65 0a 74 68 61 74 20 65 6e 76 69 72 leave.that envir 0630: 6f 6e 6d 65 6e 74 2c 20 74 68 65 20 4d 69 74 4d onment, the MitM 0640: 20 63 61 6e 20 67 6f 20 6f 6e 20 77 69 74 68 20 can go on with 0650: 74 68 61 74 20 61 74 74 61 63 6b 20 66 6f 72 65 that attack fore 0660: 76 65 72 2e 20 20 41 20 63 61 70 74 69 76 65 0a ver. A captive. 0670: 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 75 73 75 61 environment usua 0680: 6c 6c 79 20 69 73 20 69 6e 73 69 64 65 20 61 20 lly is inside a 0690: 63 6f 6d 70 61 6e 79 29 2e 20 20 42 75 74 20 79 company). But y 06a0: 6f 75 20 63 61 6e 20 69 6e 76 65 73 74 20 73 6f ou can invest so 06b0: 6d 65 20 65 66 66 6f 72 74 0a 69 6e 74 6f 20 76 me effort.into v 06c0: 65 72 69 66 79 69 6e 67 20 74 68 65 20 69 64 65 erifying the ide 06d0: 6e 74 69 74 79 20 6f 66 20 74 68 65 20 73 65 72 ntity of the ser 06e0: 76 65 72 2c 20 61 6e 64 20 74 68 65 20 66 61 63 ver, and the fac 06f0: 74 20 74 68 61 74 20 74 68 65 20 6f 74 68 65 72 t that the other 0700: 20 73 69 64 65 20 69 73 0a 61 20 68 75 6d 61 6e side is.a human 0710: 2e 0a 0a 23 23 20 49 64 65 6e 74 69 74 79 20 43 ...## Identity C 0720: 61 70 74 63 68 61 20 23 23 0a 0a 41 6e 64 2c 20 aptcha ##..And, 0730: 61 73 20 61 20 63 61 70 74 63 68 61 20 69 73 20 as a captcha is 0740: 75 73 75 61 6c 6c 79 20 70 61 72 74 20 6f 66 20 usually part of 0750: 73 69 67 6e 69 6e 67 20 6f 6e 74 6f 20 61 20 73 signing onto a s 0760: 65 72 76 65 72 2c 20 79 6f 75 20 63 61 6e 20 74 erver, you can t 0770: 65 73 74 20 74 68 65 0a 63 6f 6e 6e 65 63 74 69 est the.connecti 0780: 6f 6e 20 77 69 74 68 20 73 6f 6d 65 74 68 69 6e on with somethin 0790: 67 20 74 68 61 74 20 69 73 20 68 61 72 64 20 66 g that is hard f 07a0: 6f 72 20 61 6e 20 61 75 74 6f 6d 61 74 69 63 20 or an automatic 07b0: 69 6e 74 65 72 63 65 70 74 69 6f 6e 20 73 79 73 interception sys 07c0: 74 65 6d 20 74 6f 0a 65 6d 75 6c 61 74 65 2e 20 tem to.emulate. 07d0: 59 6f 75 20 73 65 6e 64 20 61 20 6e 6f 72 6d 61 You send a norma 07e0: 6c 20 63 61 70 74 63 68 61 20 28 61 20 64 69 73 l captcha (a dis 07f0: 74 6f 72 74 65 64 20 69 6d 61 67 65 2c 20 76 6f torted image, vo 0800: 69 63 65 2c 20 61 20 70 72 6f 67 72 61 6d 20 74 ice, a program t 0810: 68 61 74 0a 67 65 6e 65 72 61 74 65 73 20 74 68 hat.generates th 0820: 65 20 74 65 78 74 20 74 68 72 6f 75 67 68 20 73 e text through s 0830: 6f 6d 65 20 6e 6f 6e 2d 74 72 69 76 69 61 6c 20 ome non-trivial 0840: 6c 6f 67 69 63 2c 20 65 74 63 2e 29 2c 20 77 68 logic, etc.), wh 0850: 69 63 68 20 74 68 65 20 61 75 74 6f 6d 61 74 69 ich the automati 0860: 63 0a 69 6e 74 65 72 63 65 70 74 69 6f 6e 20 69 c.interception i 0870: 73 20 6e 6f 74 20 61 62 6c 65 20 74 6f 20 70 72 s not able to pr 0880: 6f 63 65 73 73 2e 20 59 6f 75 20 65 6e 63 72 79 ocess. You encry 0890: 70 74 20 74 68 65 20 61 6e 73 77 65 72 20 74 6f pt the answer to 08a0: 20 74 68 69 73 20 63 61 70 74 63 68 61 20 6f 6e this captcha on 08b0: 0a 74 68 65 20 63 6c 69 65 6e 74 20 73 69 64 65 .the client side 08c0: 20 75 73 69 6e 67 20 74 68 65 20 73 68 61 72 65 using the share 08d0: 64 20 73 65 63 72 65 74 2c 20 61 6e 64 20 73 65 d secret, and se 08e0: 6e 64 69 6e 67 20 2a 2a 6f 6e 6c 79 2a 2a 20 74 nding **only** t 08f0: 68 65 20 65 6e 63 72 79 70 74 69 6f 6e 0a 63 68 he encryption.ch 0900: 65 63 6b 73 75 6d 20 6f 66 20 74 68 69 73 20 61 ecksum of this a 0910: 6e 73 77 65 72 2e 20 54 68 65 20 69 6e 74 65 72 nswer. The inter 0920: 63 65 70 74 69 6e 67 20 73 79 73 74 65 6d 20 63 cepting system c 0930: 61 6e 20 6e 6f 74 20 67 65 6e 65 72 61 74 65 20 an not generate 0940: 74 68 65 20 61 6e 73 77 65 72 20 74 6f 0a 74 68 the answer to.th 0950: 65 20 63 61 70 74 63 68 61 20 69 74 73 65 6c 66 e captcha itself 0960: 2c 20 61 6e 64 20 74 68 65 72 65 66 6f 72 65 20 , and therefore 0970: 63 61 6e 20 6e 6f 74 20 67 65 6e 65 72 61 74 65 can not generate 0980: 20 74 68 65 20 63 6f 72 72 65 63 74 20 63 68 65 the correct che 0990: 63 6b 73 75 6d 2e 20 54 68 65 0a 69 6e 74 65 72 cksum. The.inter 09a0: 63 65 70 74 65 64 20 63 6c 69 65 6e 74 20 64 6f cepted client do 09b0: 65 73 20 6e 6f 74 20 68 61 76 65 20 74 68 65 20 es not have the 09c0: 63 6f 72 72 65 63 74 20 73 68 61 72 65 64 20 73 correct shared s 09d0: 65 63 72 65 74 2c 20 61 6e 64 20 74 68 65 72 65 ecret, and there 09e0: 66 6f 72 65 20 63 61 6e 27 74 0a 63 72 65 61 74 fore can't.creat 09f0: 65 20 74 68 65 20 63 6f 72 72 65 63 74 20 63 68 e the correct ch 0a00: 65 63 6b 73 75 6d 20 65 76 65 6e 20 74 68 6f 75 ecksum even thou 0a10: 67 68 20 74 68 65 20 75 73 65 72 20 63 6f 72 72 gh the user corr 0a20: 65 63 74 6c 79 20 61 6e 73 77 65 72 73 20 74 68 ectly answers th 0a30: 65 20 63 61 70 74 63 68 61 2e 0a 0a 54 68 69 73 e captcha...This 0a40: 20 76 65 72 69 66 69 65 73 20 74 68 61 74 20 77 verifies that w 0a50: 68 65 6e 20 63 72 65 61 74 69 6e 67 20 74 68 65 hen creating the 0a60: 20 61 63 63 6f 75 6e 74 2c 20 61 20 73 65 63 75 account, a secu 0a70: 72 65 2c 20 6e 6f 6e 2d 69 6e 74 65 72 63 65 70 re, non-intercep 0a80: 74 65 64 0a 63 6f 6e 6e 65 63 74 69 6f 6e 20 77 ted.connection w 0a90: 61 73 20 70 72 65 73 65 6e 74 2e 20 54 68 65 20 as present. The 0aa0: 73 65 72 76 65 72 20 6e 6f 77 20 73 74 6f 72 65 server now store 0ab0: 73 20 74 68 65 20 75 73 65 72 27 73 20 70 75 62 s the user's pub 0ac0: 6c 69 63 20 6b 65 79 20 61 73 20 70 72 69 6d 61 lic key as prima 0ad0: 72 79 0a 75 73 65 72 20 49 44 2e 20 45 61 63 68 ry.user ID. Each 0ae0: 20 74 69 6d 65 20 74 68 65 20 75 73 65 72 20 6c time the user l 0af0: 6f 67 73 20 69 6e 2c 20 68 69 73 20 69 64 65 6e ogs in, his iden 0b00: 74 69 74 79 20 69 73 20 76 65 72 69 66 69 65 64 tity is verified 0b10: 2e 20 49 20 64 6f 6e 27 74 20 74 61 6c 6b 0a 61 . I don't talk.a 0b20: 62 6f 75 74 20 6e 61 6d 65 20 61 6e 64 20 61 64 bout name and ad 0b30: 64 72 65 73 73 2c 20 77 68 61 74 27 73 20 76 65 dress, what's ve 0b40: 72 69 66 69 65 64 20 69 73 20 74 68 61 74 20 74 rified is that t 0b50: 68 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 77 61 he connection wa 0b60: 73 20 69 6e 69 74 69 61 6c 6c 79 0a 6e 6f 74 20 s initially.not 0b70: 69 6e 74 65 72 63 65 70 74 65 64 2c 20 61 6e 64 intercepted, and 0b80: 20 74 68 65 72 65 66 6f 72 65 2c 20 77 68 65 6e therefore, when 0b90: 20 70 72 65 73 65 6e 74 69 6e 67 20 74 68 65 20 presenting the 0ba0: 73 61 6d 65 20 70 75 62 6c 69 63 20 6b 65 79 20 same public key 0bb0: 61 6e 64 20 75 73 69 6e 67 0a 74 68 65 20 73 61 and using.the sa 0bc0: 6d 65 20 73 68 61 72 65 64 20 73 65 63 72 65 74 me shared secret 0bd0: 2c 20 69 74 27 73 20 6e 6f 77 20 61 6c 73 6f 20 , it's now also 0be0: 6e 6f 74 20 69 6e 74 65 72 63 65 70 74 65 64 2e not intercepted. 0bf0: 0a 0a 54 68 69 73 20 69 73 20 77 68 65 72 65 20 ..This is where 0c00: 61 20 70 75 62 6c 69 63 20 6b 65 79 20 73 74 69 a public key sti 0c10: 6c 6c 20 69 73 20 76 65 72 79 20 75 73 65 66 75 ll is very usefu 0c20: 6c 2e 0a 0a 23 23 20 57 68 65 6e 20 64 6f 65 73 l...## When does 0c30: 20 74 68 69 73 20 66 61 69 6c 3f 20 23 23 0a 0a this fail? ##.. 0c40: 54 68 69 73 20 61 70 70 72 6f 61 63 68 20 73 74 This approach st 0c50: 69 6c 6c 20 66 61 69 6c 73 20 69 6e 20 61 6e 20 ill fails in an 0c60: 65 6e 76 69 72 6f 6e 6d 65 6e 74 2c 20 77 68 65 environment, whe 0c70: 72 65 20 61 6c 6c 20 63 6f 6e 6e 65 63 74 69 6f re all connectio 0c80: 6e 73 20 61 72 65 0a 69 6e 74 65 72 63 65 70 74 ns are.intercept 0c90: 65 64 2c 20 61 6e 64 20 74 68 65 20 6d 69 6e 69 ed, and the mini 0ca0: 6c 75 76 20 73 70 65 6e 64 73 20 74 68 65 20 65 luv spends the e 0cb0: 66 66 6f 72 74 20 74 6f 20 73 6f 6c 76 65 20 63 ffort to solve c 0cc0: 61 70 74 63 68 61 0a 70 75 7a 7a 6c 65 73 2c 20 aptcha.puzzles, 0cd0: 6f 72 20 77 68 61 74 65 76 65 72 20 63 6f 6d 70 or whatever comp 0ce0: 75 74 61 74 69 6f 6e 61 6c 6c 79 20 65 78 70 65 utationally expe 0cf0: 6e 73 69 76 65 20 74 61 73 6b 20 28 62 75 74 20 nsive task (but 0d00: 65 61 73 79 20 65 6e 6f 75 67 68 0a 74 6f 20 73 easy enough.to s 0d10: 6f 6c 76 65 20 66 6f 72 20 68 75 6d 61 6e 73 29 olve for humans) 0d20: 20 69 73 20 64 6f 6e 65 20 74 6f 20 72 65 64 75 is done to redu 0d30: 63 65 20 74 68 61 74 20 72 69 73 6b 2e 0a 0a 49 ce that risk...I 0d40: 66 20 69 64 65 6e 74 69 74 79 20 70 72 6f 76 69 f identity provi 0d50: 64 65 72 73 20 6c 69 6b 65 20 47 6f 6f 67 6c 65 ders like Google 0d60: 2c 20 59 61 68 6f 6f 2c 20 6f 72 20 46 61 63 65 , Yahoo, or Face 0d70: 62 6f 6f 6b 20 77 6f 75 6c 64 20 73 69 6d 70 6c book would simpl 0d80: 79 20 75 73 65 0a 63 6c 69 65 6e 74 20 63 65 72 y use.client cer 0d90: 74 69 66 69 63 61 74 65 73 20 74 6f 20 76 65 72 tificates to ver 0da0: 69 66 79 20 74 68 65 20 69 64 65 6e 74 69 74 79 ify the identity 0db0: 20 6f 66 20 74 68 65 69 72 20 63 75 73 74 6f 6d of their custom 0dc0: 65 72 73 20 28 73 65 6c 66 2d 73 69 6e 67 65 64 ers (self-singed 0dd0: 0a 63 6c 69 65 6e 74 20 63 65 72 74 69 66 69 63 .client certific 0de0: 61 74 65 73 20 61 72 65 20 70 65 72 66 65 63 74 ates are perfect 0df0: 2c 20 77 68 61 74 20 6d 61 74 74 65 72 73 20 69 , what matters i 0e00: 73 20 74 68 61 74 20 74 68 65 20 63 65 72 74 69 s that the certi 0e10: 66 69 63 61 74 65 20 2a 2a 64 6f 65 73 0a 6e 6f ficate **does.no 0e20: 74 20 63 68 61 6e 67 65 2a 2a 29 2c 20 6d 75 63 t change**), muc 0e30: 68 20 6f 66 20 74 68 65 20 53 53 4c 20 64 69 6c h of the SSL dil 0e40: 65 6d 6d 61 20 77 6f 75 6c 64 20 61 6c 72 65 61 emma would alrea 0e50: 64 79 20 62 65 20 73 6f 6c 76 65 64 20 69 6e 20 dy be solved in 0e60: 61 20 70 72 61 63 74 69 63 61 6c 0a 77 61 79 2e a practical.way. 0e70: 20 4e 6f 20 74 72 75 73 74 20 63 68 61 69 6e 20 No trust chain 0e80: 77 69 74 68 20 74 68 65 20 77 65 61 6b 65 73 74 with the weakest 0e90: 20 43 41 20 61 73 20 6c 69 6e 6b 20 61 6e 79 6d CA as link anym 0ea0: 6f 72 65 2e 0a ore..