Fwd: Last Call comments on draft-ietf-hip-dex-11
Eric Rescorla <[email protected]> Sun, 3 Nov 2019 12:33:45 -0800
| Newsgroups | gmane.ietf.hipsec,gmane.ietf.hip |
|---|---|
| Message-ID | <CABcZeBMRptoaGhgWYmC8a=9tBjoJxVBYbge7EF1xBY7c0poWXQ@mail.gmail.com> |
--===============8946297435015124334== Content-Type: multipart/alternative; boundary="000000000000cd10bd0596771f0b" --000000000000cd10bd0596771f0b Content-Type: text/plain; charset="UTF-8" ---------- Forwarded message --------- From: Eric Rescorla <[email protected]> Date: Sun, Nov 3, 2019 at 12:31 PM Subject: Last Call comments on draft-ietf-hip-dex-11 To: <[email protected]>, <[email protected]>, <[email protected]>, IESG <[email protected]> Sorry for the standalone message. I don't seem to be subscribed to ietf-announce, so can't reply. I do not believe that this meets the security standards that we currently use for designing protocols at IETF. As a general matter, this document seems to cut a large number of corners in the service of some unspecified "overhead" goal, yet it never describes what the targets are (though presumably this is somehow about computation and bandwidth), and so it is not possible to evaluate the document against them. At present, I am unable to say whether it's necessary to do a new document at all. The rest of this message details specific deficiencies of this protocol which should be addressed. Aside from these, it's fairly unfortunate to see a design for a protocol that uses such an unusual cryptographic core for no obvious reason. This makes it very hard to analyze. It would be far better to use SIGMA or some other well-analyzed construction. LACK OF PFS The most serious concern here is the lack of Forward Secrecy. This is a straightforward static-static DH exchange, but it is not possible to provide FS in that scenario, as S 1 acknowledges. I have two concerns here: First, FS is simply table stakes in a modern AKE protocol, so I don't think we should be publishing a document that doesn't have it on the standards track. Second, even if we were to concede that FS might be optional, the design choices here don't make any sense. There are two major costs to DH: the cost of doing the DH computations and the bandwidth of sending the keys. However, given the wide range of the curves permitted here (X25519 to P521), even a full triple-DH protocol will be far more efficient on both counts than the existing protocol with P521 (indeed, it's probably as or more efficient than the existing protocol with P256). Proposed action: This protocol needs to be revised to have forward security. HIT GENERATION Previous versions of HIP generated HITs from HIs by computing a secure hash on the HI. This document converts them by a novel folding procedure. There is no good reason to believe that it is hard to generate a key that has a given HIT (indeed there are good reasons to believe it *is* reasonably efficient for non-EC algorithms). The document sort-of-acknowledges this in Section 9: o The HIP DEX HIT generation may present new attack opportunities. Hence, HIP DEX HITs MUST NOT be used as the only means to identify a peer in an ACL. Instead, the use of the peer's HI is recommended as explained in Section 3. However, it's not clear it's sufficient, because nothing strongly binds the HI (as opposed to the HIT) to the handshake, so attacks may still be possible if the HI is used (via UKS-like attacks). In any case, this is a regression from HIPv2. It's not even clear why this change was made: given that you have CMAC, you should be able to use this to produce a hash of the key. Proposed action: generate HITs from HIs securely. WEAK EC GROUPS This document specifies the use of SECP160R1. This is not an acceptably secure group. Proposed action: REmove support for SECP160R1. FAILURE TO VALIDATE PUBLIC KEYS This document does not require that implementations validate the remote public key. With the NIST curves specified here, this leads to straightforward key extraction attacks, which is a very serious problem when you have a static key. Proposed action: Require point validation. The TLS 1.3 has text you can borrow. AEAD This document makes use of non-AEAD symmetric algorithms. This has been found to be hazardous in practice. Proposed action: use only AEAD algorithms. REPLAY ATTACK ON AKE The only entropy provided to the AKE is the puzzle, which means that it's possible for an attacker to replay the responder's messages, leaving the initiator believing that he has created a connection when in fact he has not. The attacker will not be able to send data messages because the initiator contributes data to the eventual keys, but we generally try to avoid this property. More importantly, this is unnecessary, and can be resolved by changing the odd "encrypt half the key" mechanism used here with a conventional nonce structure in which each side sends a random value and then you HKDF it with the DH shared secret. This would have the effect of removing the replay attack and be easier to analyze. Proposed action: restructure the AKE to mix nonces + DH into the key schedule. -Ekr --000000000000cd10bd0596771f0b Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><br><br><div class=3D"gmail_quote"><div dir=3D"ltr" class= =3D"gmail_attr">---------- Forwarded message ---------<br>From: <b class=3D= "gmail_sendername" dir=3D"auto">Eric Rescorla</b> <span dir=3D"auto"><<a= href=3D"mailto:[email protected]">[email protected]</a>></span><br>Date: Sun, Nov= 3, 2019 at 12:31 PM<br>Subject: Last Call comments on draft-ietf-hip-dex-1= 1<br>To: <<a href=3D"mailto:[email protected]">[email protected]</a>&= gt;, <<a href=3D"mailto:[email protected]">draft-ietf-hip= [email protected]</a>>, <<a href=3D"mailto:[email protected]">[email protected]= g</a>>, IESG <<a href=3D"mailto:[email protected]">[email protected]</a>><= br></div><br><br><div dir=3D"ltr"><div dir=3D"ltr">Sorry for the standalone= message. I don't seem to be subscribed to<br>ietf-announce, so can'= ;t reply.<br><br>I do not believe that this meets the security standards th= at we<br>currently use for designing protocols at IETF. As a general matter= ,<br>this document seems to cut a large number of corners in the service of= <br>some unspecified "overhead" goal, yet it never describes what= the<br>targets are (though presumably this is somehow about computation an= d<br>bandwidth), and so it is not possible to evaluate the document against= <br>them. At present, I am unable to say whether it's necessary to do a= <br>new document at all.<br><br>The rest of this message details specific d= eficiencies of this<br>protocol which should be addressed. Aside from these= , it's fairly<br>unfortunate to see a design for a protocol that uses s= uch an unusual<br>cryptographic core for no obvious reason. This makes it v= ery hard to<br>analyze. It would be far better to use SIGMA or some other<b= r>well-analyzed construction.<br><br><br>LACK OF PFS<br>The most serious co= ncern here is the lack of Forward Secrecy.=C2=A0 This is<br>a straightforwa= rd static-static DH exchange, but it is not possible to<br>provide FS in th= at scenario, as S 1 acknowledges. I have two concerns<br>here: First, FS is= simply table stakes in a modern AKE protocol, so I<br>don't think we s= hould be publishing a document that doesn't have it<br>on the standards= track.<br><br>Second, even if we were to concede that FS might be optional= , the<br>design choices here don't make any sense. There are two major = costs to<br>DH: the cost of doing the DH computations and the bandwidth of = sending<br>the keys. However, given the wide range of the curves permitted = here<br>(X25519 to P521), even a full triple-DH protocol will be far more<b= r>efficient on both counts than the existing protocol with P521 (indeed,<br= >it's probably as or more efficient than the existing protocol with<br>= P256).<br><br>Proposed action: This protocol needs to be revised to have fo= rward<br>security.<br><br><br>HIT GENERATION<br>Previous versions of HIP ge= nerated HITs from HIs by computing a secure<br>hash on the HI. This documen= t converts them by a novel folding<br>procedure. There is no good reason to= believe that it is hard to<br>generate a key that has a given HIT (indeed = there are good reasons to<br>believe it *is* reasonably efficient for non-E= C algorithms). The<br>document sort-of-acknowledges this in Section 9:<br><= br>=C2=A0 =C2=A0o =C2=A0The HIP DEX HIT generation may present new attack o= pportunities.<br>=C2=A0 =C2=A0 =C2=A0 Hence, HIP DEX HITs MUST NOT be used = as the only means to identify<br>=C2=A0 =C2=A0 =C2=A0 a peer in an ACL.=C2= =A0 Instead, the use of the peer's HI is<br>=C2=A0 =C2=A0 =C2=A0 recomm= ended as explained in Section 3.<br><br>However, it's not clear it'= s sufficient, because nothing strongly<br>binds the HI (as opposed to the H= IT) to the handshake, so attacks<br>may still be possible if the HI is used= (via UKS-like attacks). In<br>any case, this is a regression from HIPv2.<b= r><br>It's not even clear why this change was made: given that you<br>h= ave CMAC, you should be able to use this to produce a hash of<br>the key.<b= r><br>Proposed action: generate HITs from HIs securely.<br><br><br>WEAK EC = GROUPS<br>This document specifies the use of SECP160R1. This is not an acce= ptably<br>secure group.<br><br>Proposed action: REmove support for SECP160R= 1.<br><br><br>FAILURE TO VALIDATE PUBLIC KEYS<br>This document does not req= uire that implementations validate<br>the remote public key. With the NIST = curves specified here,<br>this leads to straightforward key extraction atta= cks, which<br>is a very serious problem when you have a static key.<br><br>= Proposed action: Require point validation. The TLS 1.3 has<br>text you can = borrow.<br><br><br>AEAD<br>This document makes use of non-AEAD symmetric al= gorithms. This has been<br>found to be hazardous in practice.<br><br>Propos= ed action: use only AEAD algorithms.<br><br><br>REPLAY ATTACK ON AKE<br>The= only entropy provided to the AKE is the puzzle, which means<br>that it'= ;s possible for an attacker to replay the responder's<br>messages, leav= ing the initiator believing that he has created<br>a connection when in fac= t he has not. The attacker will not<br>be able to send data messages becaus= e the initiator contributes<br>data to the eventual keys, but we generally = try to avoid this<br>property.<br><br>More importantly, this is unnecessary= , and can be resolved<br>by changing the odd "encrypt half the key&quo= t; mechanism used here<br>with a conventional nonce structure in which each= side sends<br>a random value and then you HKDF it with the DH shared secre= t.<br>This would have the effect of removing the replay attack<br>and be ea= sier to analyze.<br><br>Proposed action: restructure the AKE to mix nonces = + DH<br>into the key schedule.<br><br>-Ekr<br><br><br><br><br><br><br><br><= br><br><br><br><br><br><br><br><br><br><br><br><br></div></div> </div></div> --000000000000cd10bd0596771f0b-- --===============8946297435015124334== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Hipsec mailing list [email protected] https://www.ietf.org/mailman/listinfo/hipsec --===============8946297435015124334==--