Hex Artifact Content
Not logged in

Artifact 90a33414b84f8b412cff20de9b35c28c254a3b8a:


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..