このテストケースでは、iOS アプリでの不十分な鍵サイズの使用を探します。そのためには、iOS で利用できる暗号フレームワークとライブラリ、および暗号鍵の生成に使用されるメソッドに注目する必要があります。
CommonCrypto: CCCryptarrow-up-right 関数は対称暗号化と復号に使用され、五番目のパラメータ keyLength で鍵サイズまたは鍵長を指定します。
CCCrypt
keyLength
Security: SecKeyCreateRandomKeyarrow-up-right 関数は kSecAttrKeyTypearrow-up-right や kSecAttrKeySizeInBitsarrow-up-right などの特定の属性を使用してランダム鍵を生成するために使用されます。SecKeyGeneratePairarrow-up-right 関数は iOS 16 で非推奨になりました。
SecKeyCreateRandomKey
kSecAttrKeyType
kSecAttrKeySizeInBits
SecKeyGeneratePair
CryptoKit: AES.GCMarrow-up-right と ChaChaPolyarrow-up-right クラスは対称暗号化と復号に使用されます。
AES.GCM
ChaChaPoly
通常、CryptoKit で鍵を直接生成することはありません (ライブラリが自動的に行います) ので、このテストでは CommonCrypto ライブラリと Security ライブラリに焦点を当てます。
radare2 for iOS などの静的解析ツールをアプリバイナリに対して実行するか、Frida for iOS などの動的解析ツールを使用して、鍵を生成する暗号関数の使用を探します。
出力には CCCrypt や他の暗号関数を使用する関数の逆アセンブルされたコードを含む可能性があります。
ソースコード内に不十分な鍵サイズの使用を見つけることができた場合、そのテストケースは不合格です。たとえば、量子コンピューティング攻撃を考慮すると、1024 ビットの鍵サイズは RSA 暗号では不十分であるとみなされ、128 ビットの鍵サイズは AES 暗号では不十分であるとみなされます。
Last updated 6 months ago