Certificates

X.509 OID 的最大長度是多少?

  • March 21, 2017

我正在為一個項目開發一項功能,以確定給定的 X.509 證書是否是 EV 證書,如果是,那麼誰是該證書背後的權威。

為此,我從 Wikipedia 中獲取了 EV OID 列表,並將它們保存在 OID -> 授權名稱的散列中。我得到證書策略 OID 並將其轉換為我可以在我的雜湊中使用的 char 數組。

但是我不確定 OID 的最大長度是多少。我無法在規範或線上其他任何地方找到該資訊。

OID 沒有指定最大長度/深度。沒有真正的價值可以讓您安全地切斷它們 - 或者更確切地說拒絕它們(引發異常或錯誤)。任何超過 20 字節的內容似乎都很荒謬,所以應該足夠了。如果您必須設置限制,那麼在非嵌入式平台(桌面/伺服器)上限制為 1 KB 的 RAM 也應該沒問題。

在計劃防止來自證書的 DoS 攻擊時,限制整個證書的字節量更有用。限制證書中的每個組件並不是很有效。


在 C/非託管 C++ 中程式時,更合理的是擔心基於 ASN.1 的緩衝區溢出;這些很常見,也非常危險。

引用自:https://crypto.stackexchange.com/questions/44842