跳过内容

MASTG-TEST-0063: 测试随机数生成

此测试即将更新

此测试目前可使用,但将作为新的 OWASP MASTG v2 指南 的一部分进行全面修订。

请提交 PR 来帮助我们改进: MASTG v1->v2 MASTG-TEST-0063: 随机数生成测试 (ios)

发送反馈

概述

静态分析

在 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 的序列分析器插件来检查随机性的质量。