X509 serialNumber的最小和最大长度

问题描述 投票:1回答:1

CA /浏览器论坛基准要求部分7.1指出以下内容:

CA应该生成具有至少20位熵的非顺序证书序列号。

同时,RFC 5280第4.1.2.2节规定:

证书用户必须能够处理最多20个八位字节的serialNumber值。符合CA不得使用超过20个八位字节的serialNumber值。

我可以使用哪个整数范围来满足这两个要求。这是我的理解,最大。值将是2 ^ 159(730750818665451459101842416358141509827966271488)。什么是分钟。值?

x509
1个回答
0
投票

CAB要求已更改为最小64位熵。由于正整数表示中的前导位必须为0,因此有许多策略:

  • 产生64位的随机位串。如果前导位为1,则预先添加7个随机位。这样做的缺点是,如果生成为63或64位,则不明显
  • 产生64位的随机位串并加上前导0字节。这仍然是紧凑的(浪费只有7-8位),但很明显它有64位熵
  • 产生一个长于64位的随机字符串,例如71或127位(+前导0位)。 16字节似乎是一个常见长度,远低于20字节限制。

顺便说一句,因为不清楚20字节的最大长度是否包含一个潜在的0前缀,因为互操作原因你不应该生成超过159位

可以生成具有x位熵的随机整数,生成0到(2 ^ x)-1(含)之间的随机数

© www.soinside.com 2019 - 2024. All rights reserved.