暗号はモバイルデバイスに保存されたデータを守るために不可欠な要因です。特に標準の慣習に従っていない場合、それは物事がひどく間違っている可能性があるカテゴリでもあります。 本章の目的は、検証されたアプリケーションが以下のような業界のベストプラクティスに従って暗号を使用することを確かにすることです。
- 実績のある暗号ライブラリの使用
- 暗号プリミティブの適切な選択と設定
- ランダム性が必要な場合は、適切な乱数生成器を使用
# | 説明 | L1 | L2 |
---|---|---|---|
3.1 | アプリケーションが単一の暗号方式として、ハードコードされた鍵を用いた対称暗号(秘密鍵暗号)に頼らない | ✓ | ✓ |
3.2 | アプリケーションが実績のある暗号プリミティブの実装を使用している | ✓ | ✓ |
3.3 | アプリケーションが業界のベストプラクティスに準拠したパラメータで構成されている特定のユースケースに適切な暗号プリミティブを使用している | ✓ | ✓ |
3.4 | セキュリティの目的を達成する手段として非推奨の暗号プロトコルやアルゴリズムをアプリケーションが使用していない | ✓ | ✓ |
3.5 | アプリケーションが複数の目的で同じ暗号鍵を再利用していない | ✓ | ✓ |
3.6 | すべての乱数が十分にセキュアな乱数生成器を用いて生成されている | ✓ | ✓ |
OWASPモバイルセキュリティテストガイドには、本セクションに記載されている要件を検証するための詳細な手順が記載されています。
- Android - https://github.com/OWASP/owasp-mstg/blob/master/Document/0x05e-Testing-Cryptography.md
- iOS - https://github.com/OWASP/owasp-mstg/blob/master/Document/0x06e-Testing-Cryptography.md
詳細は以下を参照してください。
- OWASP Mobile Top 10: M5 - Insufficient Cryptography(不十分な暗号化)
- CWE: https://cwe.mitre.org/data/definitions/310.html