暗号化アルゴリズムの破損やリスクが高い

OWASP カテゴリ: MASVS-CRYPTO: 暗号

概要

データの機密性と完全性を保護するために暗号が広く使用されていますが、デベロッパーが誤って脆弱な暗号アルゴリズムや古い暗号アルゴリズムを実装すると、重大なリスクが生じます。この脆弱性は、これらのアルゴリズムに固有の弱点に起因しており、必要な計算能力や知識を持つ悪意のある行為者によって悪用される可能性があります。このような不正使用の結果は深刻になる可能性があり、不正アクセス、データ侵害、機密情報の操作につながる可能性があります。

影響

機密データが公開、変更、偽造される可能性があります。破損した暗号アルゴリズムやリスクの高い暗号アルゴリズムは脆弱性につながる可能性があり、機密情報の復号、データの改ざん、正当なエンティティのなりすましに悪用される可能性があります。このような脆弱性を悪用されると、データ漏洩や金銭的損失から、評判の低下やユーザーの信頼の喪失まで、さまざまな影響が生じる可能性があります。

リスク: 脆弱な暗号学的ハッシュ関数または破損した暗号学的ハッシュ関数

脆弱な暗号ハッシュ関数(MD5SHA1 など)を使用すると、データのセキュリティと完全性が著しく損なわれる可能性があります。ハッシュ関数は、入力データの一意の固定長フィンガープリント(ハッシュ)を作成するように設計されています。これにより、データの完全性検証、パスワードの保存、デジタル署名など、さまざまな目的に使用できます。ただし、脆弱なハッシュ関数や侵害されたハッシュ関数が使用されると、次のような脆弱性が生じる可能性があります。

  • 衝突攻撃: 弱いハッシュ関数は衝突攻撃を受けやすく、攻撃者は同じハッシュ値を生成する 2 つの異なる入力を検出します。これにより、不正なデータを正規のデータに置き換えることが可能になり、データの完全性が損なわれる可能性があります。
  • データ侵害: パスワードが脆弱なアルゴリズムでハッシュ化されている場合、システムへの侵害が成功すると、ユーザー認証情報が漏洩する可能性があります。攻撃者は、レインボー テーブルなどの手法を使用してパスワードを解読し、アカウントへの不正アクセスを試みます。
  • デジタル署名の否認: デジタル署名で使用されている弱いハッシュ関数が不正使用され、偽造された署名が作成される可能性があります。これにより、ドキュメントやメッセージの信頼性と完全性を判断することが難しくなります。

リスクの軽減

こうしたリスクを軽減するには、SHA-2SHA-3 などの強力で十分に検証された暗号学的ハッシュ関数を使用し、新しい脆弱性が発見されたら更新し続けることが重要です。また、パスワードのソルト処理や、bcryptArgon2 などのパスワード固有のハッシュ アルゴリズムの使用などのセキュリティ対策を採用することで、データ保護をさらに強化できます。


リスク: 脆弱な暗号化関数または破損した暗号化関数

脆弱な暗号化関数(DESRC4 など)を使用すると、機密データの機密性が著しく損なわれる可能性があります。暗号化は、情報を解読不能な形式に変換して保護するように設計されていますが、暗号化アルゴリズムに欠陥があると、これらの保護が回避される可能性があります。

  • データ漏洩: 弱い暗号化アルゴリズムは、ブルート フォース攻撃、既知の平文攻撃、暗号解読手法など、さまざまな攻撃を受けやすくなります。攻撃が成功すると、暗号化されたデータが漏洩し、個人情報、財務記録、機密のビジネスデータなどの機密情報に不正アクセスされる可能性があります。
  • データの操作と改ざん: 攻撃者がデータを完全に復号できない場合でも、暗号化アルゴリズムが弱いと、検出されずにデータを操作できる可能性があります。これにより、データの不正な変更につながり、不正行為、虚偽表示、その他の悪意のある行為が発生する可能性があります。

リスクの軽減

暗号化関数で強力な暗号アルゴリズムを使用する

これらのリスクを軽減するには、強力で十分に検証された暗号アルゴリズムを使用し、鍵管理と暗号化の実装に関するベスト プラクティスに従うことが重要です。暗号化アルゴリズムを定期的に更新し、新たな脅威に関する最新情報を常に把握することも、堅牢なデータ セキュリティを維持するうえで不可欠です。

使用が推奨されるデフォルトのアルゴリズムは次のとおりです。

  • 対称暗号化:
    • GCM モードの AES-128/AES-256
    • Chacha20
  • 非対称暗号化:
    • OAEP パディングを含む RSA-2048/RSA-4096

暗号ライブラリの安全なプリミティブを使用して、一般的な落とし穴を減らす

適切な暗号化アルゴリズムを選択することは重要ですが、セキュリティの脆弱性を最小限に抑えるには、合理化された API を提供し、安全なデフォルト構成を重視する暗号ライブラリの使用を検討してください。このアプローチにより、アプリケーションのセキュリティが強化されるだけでなく、コーディング エラーによる脆弱性の発生を大幅に減らすことができます。たとえば、TinkAEAD 暗号化と Hybrid 暗号化という 2 つの異なるオプションを提供することで、暗号化の選択を簡素化し、デベロッパーが十分な情報に基づいてセキュリティに関する意思決定を行えるようにします。


リスク: 脆弱な暗号署名関数または破損した暗号署名関数

脆弱な暗号署名関数(RSA-PKCS#1 v1.5 など、脆弱なハッシュ関数に基づくもの)を使用すると、データと通信の完全性に重大なリスクが生じます。デジタル署名は、認証、否認防止、データ完全性を提供し、メッセージやドキュメントが特定の送信者から送信され、改ざんされていないことを保証するように設計されています。ただし、基盤となる署名アルゴリズムに欠陥がある場合、これらの保証は損なわれる可能性があります。

  • 署名の偽造: 弱い署名アルゴリズムは、悪意のある行為者が偽造署名を作成できる攻撃に対して脆弱である可能性があります。つまり、正規のエンティティを装ったり、文書を偽造したり、メッセージを改ざんしたりしても、検知されません。
  • 署名の否認: 署名アルゴリズムが破られると、署名者は文書に署名していないと虚偽の主張をすることができ、否認防止の原則が損なわれ、法的およびロジスティック上の問題が生じる可能性があります。
  • データの操作と改ざん: 署名を使用してデータの完全性を保護するシナリオでは、アルゴリズムが弱いと、攻撃者が署名を無効にすることなくデータを変更できるため、改ざんが検出されず、重要な情報が漏洩する可能性があります。

リスクの軽減

強力な暗号署名アルゴリズムを使用する

これらのリスクを軽減するには、強力で十分に検証された暗号署名アルゴリズムを使用することが重要です。

  • PSS パディングを含む RSA-2048/RSA-4096
  • 安全な曲線を使用した楕円曲線デジタル署名アルゴリズム(ECDSA

暗号ライブラリの安全なプリミティブを使用して、一般的な落とし穴を減らす

適切な署名アルゴリズムを選択することは不可欠ですが、セキュリティの脆弱性を最小限に抑えるには、デフォルトで堅牢なセキュリティ保証を提供する暗号ライブラリを検討してください。たとえば、Tink は、安全な曲線を使用した ECDSA をデフォルト オプションとして提供することで、署名の選択を簡素化します。これはすべて、わかりやすく包括的な API 内で行われます。このアプローチにより、セキュリティが強化されるだけでなく、複雑な構成や意思決定が不要になるため、開発が合理化されます。


リソース