• 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为“用关联数据进行认证的加密”

  • 相关阅读:
    leetcode刷题 557~
    Unity正交相机智能包围物体(组)方案
    Embedded Browser(ZFBrowser)使用相关问题
    Unity性能优化
    sipp的使用
    Elment清除表单验证,防止报错小技巧
    git常用命令(干货)
    文本单词one-hot编码
    86. 分隔链表 链表
    5638. 吃苹果的最大数目 优先队列
  • 原文地址:https://www.cnblogs.com/collapsar/p/9640861.html
Copyright © 2020-2023  润新知