[解決済み] SSL証明書に使用するRSA鍵の長さを教えてください。
2022-11-28 05:05:38
質問
CSR を作成しているところですが、RSA 鍵の長さとして間違いなく最適なのはどれでしょうか。
もちろん、384は弱すぎるでしょうし、16384は遅すぎるでしょう。
証明書の有効期間によって、使用すべき鍵の長さについてコンセンサスがありますか?
編集する。 ほとんどの人と同じように、私は自分の鍵が適度に強いことを望んでいます。2019年にNSAが私のキーを破るかもしれないことを心配しているわけではありません。ただ、通常のビジネス(たとえばeコマースサイト)を行う予定がある場合、何がベストプラクティスなのかを知りたいだけなのです。
どのように解決するのですか?
2020年現在、RSA鍵は2048ビットであるべきです。
1024ビット
- 1024 ビットの RSA 証明書は時代遅れで、ブラウザーに受け入れられません。
- Firefox は、2014 年に 1024 ビットの RSA 証明書の受け付けを停止しました。
- 認証局は2014年以前に1024ビットRSA証明書の配信を停止しています。参照 グローバルサイン または コモド の通知で確認できます。
- 1024 ビットのキーは、小さなデータセンター (数千の CPU または数百の GPU、おそらく数か月) でクラックできたため、非推奨とされました。これは膨大に見えるかもしれませんが、大規模な組織や政府にとっては十分に手の届く範囲でした。
2048 ビット
- 2048ビットのRSA証明書は、現在使用されている標準的なものです。
- CA によって提供され、ソフトウェアによって使用されるデフォルトのベースライン。
- 最終的にはクラックされるでしょう。いつかは分かりませんが、数十年かかるかもしれません。
- サイズを2倍にすると、クラックするために何桁も多くの計算能力が必要になります。質問を参照 RSA2048は1024に比べてどれだけ強いのですか? .
4096 ビット
- 4096 ビットの RSA 証明書は次のステップに進みます。
- 広く利用可能でサポートされています。すべての主要な CA は、以下を含む 2048 ビットと 4096 ビットの RSA の両方を提供することができます。 暗号化しよう .
- 計算コストは鍵のサイズと線形ではありません。4096 は 2048 の 2 倍ではなく、10 倍程度処理速度が遅くなります。 パフォーマンスへの影響を考慮せず、やみくもに証明書を 4096 ビットにアップグレードしないでください。 .
- ウェブは、4096 ビットのハードウェア コストに耐えられないため、大部分は 2048 ビットの証明書にとどまっています。Google、CloudFlare、NetFlix のような、膨大なトラフィックとハードウェア フットプリントを持つ大規模なアクターを考えてみてください。
3072 ビット
- 3072 ビットは存在しない。4096 ビットに直接ジャンプします。
- 3072 ビットの暗号を行うことは完全に可能です。ただ、実際に実装し、サポートし、公式に宣伝しているソフトウェアがありません。
- 歴史的には、2010 年から 2015 年にかけて、4096 の余分な計算コストが理想的でないユースケース向けに 3072 を開始する試みがありました。これは消えてしまいましたが、(より高速な) 3072 のメリットを広める古い記事がまだ残っています。
追加
- RSAは1977年に初めて公開され、50年近く経った今でも強力です。ただ、より高速なコンピュータに追いつくために、ビット数を増やす必要があります。
- 楕円曲線に基づく公開鍵暗号方式は他にもあり、ECDSA(1992)を参照してください。
- ユーザーの容量と攻撃者の容量には大きな隔たりがあります。Web サーバーやモバイル クライアントは 1 つの (低電力) CPU を持っています。攻撃者はデータセンター全体を持つことができます。参考までに、新しく構築された AWS データセンターは、約 60,000 サーバーをホストしています。
- 数百万台のコンピューターが一生かかっても推測できないような計算を、たった 1 台のモバイル デバイスが数秒のうちに計算できることは、信じられないことです。
関連
-
[解決済み】AndroidのSSL接続でトラストアンカーが見つからない
-
[解決済み] wget ssl alert ハンドシェイク失敗
-
[解決済み] OpenSSLを使用して自己署名入りSSL証明書を生成する方法を教えてください。
-
[解決済み] PHPでパスワードをハッシュ化するためにbcryptを使用するにはどうすればよいですか?
-
[解決済み] RSA秘密鍵を使って公開鍵を生成する?
-
[解決済み】RSA鍵のフィンガープリントを計算する
-
[解決済み】ハッシュ化されたパスワードフィールドに使用するデータ型と長さは?
-
[解決済み】ssl証明書はどのように検証されるのですか?
-
[解決済み] 不正な証明書でhttpsリクエストを行うには?
-
[解決済み] DockerコンテナSSL証明書
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] OpenSSL: Experian URL の最初の証明書を検証できません。
-
[解決済み] をカールします。(35) error:1408F10B:SSLルーチン:ssl3_get_record:バージョン番号が間違っています。
-
[解決済み] ssl : 証明書を読み込むことができません
-
[解決済み] Amazon S3でのSSL化の強制
-
[解決済み] Certbot が見つかりません。
-
[解決済み] Curl CURL (51) SSL エラーを修正: 代替となる証明書のサブジェクト名が一致しません。
-
[解決済み] SNIとCCSを使用してhttpsのデフォルトのWebサイトを設定する方法
-
[解決済み] NGINXでWebソケットをリバースプロキシし、SSL(wss://)を有効にするには?
-
[解決済み] 紛失したIIS Express SSL証明書を復元するにはどうすればよいですか?
-
[解決済み] OpenSSLを使用してSubjectAltName付きの自己署名証明書を生成するには?[クローズド]