【问题标题】:Serial Number of a X.509 CertificateX.509 证书的序列号
【发布时间】:2011-01-07 00:03:43
【问题描述】:

我正在用 java 为 uni 类编写证书颁发机构,现在我不知道证书序列号的最佳选择是什么。

  • 从 0 到veryBigNumber 的简单静态计数器
  • 一些巨大的 BigInt 随机数

有什么好的理由选择一个而不是另一个......或者一个都不选??

谢谢,

【问题讨论】:

    标签: java security x509certificate pki x509


    【解决方案1】:

    我建议您使用随机数,但在数据库中保留一份已发行序列号的列表。这将允许两件事。

    1. 您永远不会重新发行相同的序列号。
    2. 您可以从证书的序列号判断它是否远程有效。

    当然,#1 要求您在生成时检查已知列表,并在发生冲突时生成一个新的随机数,而#2 在安全性或验证方面并没有什么意义,但一个有趣的前景永远不会——少。

    【讨论】:

    • “您可以从序列号判断它是否甚至远程有效”不是真的。证书的有效性需要大量检查,序列号不是其中之一。它可能是您存储的证书列表的快速索引,但仅此而已。哈希也一样好。但它肯定不会帮助客户验证证书是否有效(或“远程”有效,无论这意味着什么)。
    • @John,我假设你没有读过我的另一句话......“#2 在安全性或验证方面没什么大不了的,但永远是一个有趣的前景。 "
    • 我确实阅读了它,并同意了。但有点奇怪的是,在推荐了一个随机数之后,你描述的好处实际上与随机数无关——它们同样适用于序列号的使用。在安全协议中,当从零开始的序列足够时使用术语“序列号”是传统的,而当使用随机数可以获得安全利益时使用术语“随机数”。我发现很多人(尤其是学生)很容易对 PKI 产生错误的印象,因此有必要随时澄清一下。问候。
    • 这里提到了使用随机数的好处:security.stackexchange.com/a/15700/72959
    【解决方案2】:

    从技术上讲,从 0 到veryBigNumber 的计数器比 bigRandomNumber 更容易实现 - 因为序列号必须不同。

    但是 - 如果您关心人们知道您颁发了多少证书,您可能不想使用简单的计数器。

    【讨论】:

      【解决方案3】:

      这取决于您使用序列号的目的。如果您是一家小公司,并且您计划为每位客户提供一份证书,那么您的序列号将显示您拥有多少客户。

      除此之外,我看不出序列号不应该是序列号的任何原因。有些人认为使用序列号会向潜在的攻击者泄露一些信息(下一个序列号),但我认为这不是一个大问题。

      【讨论】:

        【解决方案4】:

        主要要求是(Issuer distinguished name, serial number) 对在宇宙中应该是唯一的。因此,除非随机数太大以至于重复的概率可以忽略不计,否则不应使用随机数。一个 20 字节的随机数应该绰绰有余。如果您不介意其他人知道您颁发了多少证书,那么一个简单的计数器就可以了。

        最近利用 MD5 的弱点对 SSL 证书颁发者发起的攻击(由 Alex Sotirov 等人发起)实际上通过使用反序列号变得更加容易。随机序列号没有受到攻击。这并不意味着可预测的序列号是不好的安全性,它只是意味着对于这个应用程序随机序列号可以帮助掩盖 MD5 中的弱点。根本问题仍然是 MD5。

        【讨论】:

          【解决方案5】:

          我认为如果我们检查 Serial 这个词,答案是隐含的....Serial、series、progress 等

          【讨论】:

            【解决方案6】:

            我刚才碰巧遇到了这个问题,从答案中您会认为可预测的序列号不是安全问题。我会说这是一个问题,随机序列号更安全。参照。例如,Flame attack 等人 here,或 here 或关于“Predictable serial number attack”的维基百科文章。

            【讨论】:

              猜你喜欢
              • 2011-09-21
              • 1970-01-01
              • 2012-07-14
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2018-03-03
              • 1970-01-01
              相关资源
              最近更新 更多