MASTG-TEST-0063 乱数生成のテスト (Testing Random Number Generation)
概要
静的解析
Swift では、 SecRandomCopyBytes
API は以下のように定義されています。
func SecRandomCopyBytes(_ rnd: SecRandomRef?,
_ count: Int,
_ bytes: UnsafeMutablePointer<UInt8>) -> Int32
Objective-C バージョン は以下の通りです。
int SecRandomCopyBytes(SecRandomRef rnd, size_t count, uint8_t *bytes);
以下はこの API の使用例です。
int result = SecRandomCopyBytes(kSecRandomDefault, 16, randomBytes);
注意: コード内の乱数に他のメカニズムが使用されている場合には、これらが上述の API のラッパーであることを検証するか、セキュアランダム性をレビューします。多くの場合これは非常に困難であり、上記の実装を守ることが最適であることを意味します。
動的解析
ランダム性をテストしたい場合には、多数の数値セットをキャプチャし、Burp の sequencer プラグイン を使用してランダム性の品質をチェックします。
Last updated
Was this helpful?