MASTG-TEST-0221 不備のある対称暗号アルゴリズム (Broken Symmetric Encryption Algorithms)
概要
Android アプリで 不備のある暗号アルゴリズムの使用 をテストするには、暗号化と復号化操作を実行するために使用される暗号フレームワークやライブラリのメソッドに焦点を当てる必要があります。
Cipher.getInstance
: 暗号化または復号化のために Cipher オブジェクトを初期化します。algorithm
パラメータには サポートされているアルゴリズム のいずれかを指定できます。SecretKeyFactory.getInstance
: 鍵を鍵仕様に変更したり、その逆を行う SecretKeyFactory オブジェクトを返します。algorithm
パラメータには サポートされているアルゴリズム のいずれかを指定できます。KeyGenerator.getInstance
: 対称アルゴリズムの秘密鍵を生成するKeyGenerator
オブジェクトを返します。algorithm
パラメータには サポートされているアルゴリズム のいずれかを指定できます。
不備のある対称暗号アルゴリズムには以下のようなものがあります。
DES (Data Encryption Standard): 56 ビット鍵、解読可能、2005 年に NIST により撤回されました。
3DES (Triple DES, 正式には Triple Data Encryption Algorithm (TDEA もしくは Triple DEA)): 64 ビットブロックサイズ、Sweet32 バイナリ攻撃に脆弱、2024 年 1 月 1 日に NIST により撤回されました。
Blowfish: 64 ビットブロックサイズ、Sweet32 攻撃に脆弱、FIPS 承認は受けておらず、FIPS の「非承認アルゴリズム」 にリストされています。
Android では 破られた暗号アルゴリズム に関する追加のガイダンスも提供しています。
手順
アプリバイナリに対して semgrep などのツールで Android での静的解析 (Static Analysis on Android) を実行するか、Frida for Android などのツールで メソッドトレース (Method Tracing) (動的解析) を使用して、暗号化と復号化操作を実行する暗号関数の使用を探します。
結果
出力には安全でない対称暗号アルゴリズムが使用されている場所のリストを含む可能性があります。
評価
安全でないか非推奨の 暗号アルゴリズムが使用されていることを見つけた場合、そのテストケースは不合格です。
Last updated
Was this helpful?