質問

Java で Uni クラスの認証局をプログラミングしていますが、証明書のシリアル番号に最適なオプションがわかりません。

  • 0 から VeryBigNumber までの単純な静的カウンター
  • 巨大な BigInt 乱数

どちらかを選択する正当な理由はありますか...それともどれも??

ありがとう、

役に立ちましたか?

解決

乱数を使用することをお勧めしますが、発行されたシリアル番号のリストをデータベースに保存しておきます。これにより、2 つのことが可能になります。

  1. 同じシリアル番号を再発行することはありません。
  2. 証明書がリモートで有効かどうかは、証明書のシリアル番号からわかります。

もちろん、#1 では、生成時に既知のリストと照合して、衝突が発生した場合に新しい乱数を生成する必要があります。#2 は、セキュリティや検証の点では大したことはありませんが、それでも興味深い見通しです。 。

他のヒント

シリアル番号が異なるなければならないため -

0からveryBigNumberすることは技術的にカウンタがbigRandomNumberよりも実装が容易です。

しかし - あなたはあなたが発行した証明書がどのように多くの人々を知って心配している場合、単純なカウンタを使用したくない場合があります。

それはあなたのためのシリアル番号を使用しているかに依存します。あなたは顧客ごとに1つの証明書を与えることを計画している場合は、小さな会社であり、場合には、シリアル番号は、あなたが持っているどのように多くのお客様に明らかにします。

私はシリアル番号がシリアルすべきではない理由を何らかの理由を参照してくださいいけないこと[その他。一部の人々は、シリアル番号を使用すると、潜在的な攻撃者にいくつかの情報(次のシリアル番号)を与えるだろうが、私はそれは大きな問題であると思ういけないと主張します。

主な要件は、ペア(Issuer distinguished name, serial number)が宇宙で一意でなければならないということです。繰り返しの確率は無視できるほど大きい場合を除きしたがって、あなたは、乱数を使用しないでください。 20バイトの乱数は十分以上でなければなりません。あなたが発行されているどのように多くの証明書が知って他の人を気にしない場合は、単純なカウンタが、まったく問題あります。

SSL証明書発行者に比較的最近の攻撃(アレックスによってSotirovら)は、実際に対向型シリアル番号を使用することによってさらに容易に行われたMD5の弱点を悪用。ランダムシリアル番号が攻撃されませんでした。これは、このアプリケーションのためにランダムなシリアル番号は、MD5の弱点を隠す助けることができること、それだけの手段、予測可能なシリアル番号が悪いセキュリティであることを意味するものではありません。根本的な問題はまだMD5だっます。

私が思うに、私たちは言葉のシリアルを調べると答えている暗黙の....シリアル、シリーズ、進行など

私は今、偶然この質問に遭遇しました。その回答から、予測可能なシリアル番号はセキュリティ上の問題ではないと思われるでしょう。私はそれを言うだろう ランダムなシリアル番号の方がはるかに安全であるという懸念があります。参照。フレイムアタックほか ここ たとえば、または ここ または「」に関するウィキペディアの記事予測可能なシリアル番号攻撃."

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top