RFC8221 -- 密码算法实现要求和使用指南

RFC 8221废掉了RFC 7321(RFC 7321废掉了RFC 4835)。

4. 加密必须经过身份验证

  没有身份验证的加密是无效的,MUST NOT使用。IPsec提供三种方式来提供加密和认证:

  • ESP采用AEAD密码
  • ESP采用非AEAD密码+身份验证
  • ESP使用非AEAD密码+ AH进行身份验证

    最快速也最现代的方法是ESP使用组合模式密码,例如AEAD密码,加解密和认证在一步中完成。在这种情况下,AEAD密码被设置为加密算法,而认证算法设置为空。例如使用算法ENCR_AES_GCM_16和ENCR_CHACHA20_POLY1305。

      更传统的方法是,ESP使用加密算法和验证算法。这种方法处理起来更慢,因为要处理两次:一次用于加密/解密,一次用于认证。例如ENCR_AES_CBC结合    AUTH_HMAC_SHA2_512_256。

    可以使用的最后一种方法是ESP + AH。这种方法不推荐使用。因为它最慢,由于ESP + AH两层头,因此占用更多的字节。这导致加密数据的有效MTU变小。使用这种方法,ESP只用于没有认证算法的加密,需要启用AH协议用于认证。例如ESP使用ENCR_AES_CBC算法,AH使用AUTH_HMAC_SHA2_512_256算法。

5. ESP加密算法

    +-------------------------+------------+---------+----------------+
    | Name                    | Status     | AEAD    | Comment        |
    +-------------------------+------------+---------+----------------+
    | ENCR_DES_IV64           | MUST NOT   | No      | UNSPECIFIED    |
    | ENCR_DES                | MUST NOT   | No      | [RFC2405]      |
    | ENCR_3DES               | SHOULD NOT | No      | [RFC2451]      |
    | ENCR_BLOWFISH           | MUST NOT   | No      | [RFC2451]      |
    | ENCR_3IDEA              | MUST NOT   | No      | UNSPECIFIED    |
    | ENCR_DES_IV32           | MUST NOT   | No      | UNSPECIFIED    |
    | ENCR_NULL               | MUST       | No      | [RFC2410]      |
    | ENCR_AES_CBC            | MUST       | No      | [RFC3602][1]   |
    | ENCR_AES_CCM_8          | SHOULD     | Yes     | [RFC4309](IoT) |
    | ENCR_AES_GCM_16         | MUST       | Yes     | [RFC4106][1]   |
    | ENCR_CHACHA20_POLY1305  | SHOULD     | Yes     | [RFC7634]      |
    +-------------------------+------------+---------+----------------+

 6. ESP和AH认证算法

     本节中的身份验证算法建议针对两种类型的通信:

  • 通信仅经过身份认证,不加密,如ESP使用NULL加密或AH通信
  • 使用非AEAD算法加密的通信必须与身份验证算法结合使用。
   +------------------------+----------------+-------------------------+
   | Name                   | Status         | Comment                 |
   +------------------------+----------------+-------------------------+
   | AUTH_NONE              | MUST /         | [RFC7296][RFC5282]      |
   |                        | MUST NOT       | AEAD-only               |
   | AUTH_HMAC_MD5_96       | MUST NOT       | [RFC2403][RFC7296]      |
   | AUTH_HMAC_SHA1_96      | MUST-          | [RFC2404][RFC7296]      |
   | AUTH_DES_MAC           | MUST NOT       | UNSPECIFIED             |
   | AUTH_KPDK_MD5          | MUST NOT       | UNSPECIFIED             |
   | AUTH_AES_XCBC_96       | SHOULD / MAY   | [RFC3566][RFC7296]      |
   |                        |                | (IoT)                   |
   | AUTH_AES_128_GMAC      | MAY            | [RFC4543]               |
   | AUTH_AES_256_GMAC      | MAY            | [RFC4543]               |
   | AUTH_HMAC_SHA2_256_128 | MUST           | [RFC4868]               |
   | AUTH_HMAC_SHA2_512_256 | SHOULD         | [RFC4868]               |
   +------------------------+----------------+-------------------------+


     使用AUTH_NONE的唯一场景是,经过身份验证的加密算法选自第5节。在所有其他情况下,绝不能选择AUTH_NONE。正如ESP和AH都提供身份验证,人们可以将这些协议组合起来提供身份验证。正如[RFC7321]所述,不建议使用ESP非认证加密与AH结合;此外,AUTH_NONE身份验证无法与ESP NULL加密组合使用。

 

 

 

注:AEAD为“用关联数据进行认证的加密”

转载于:https://www.cnblogs.com/collapsar/p/9640861.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值