OneKey 앱 난수 보안 테스트

이 기사는 OneKey 앱(소프트웨어 지갑)에서 니모닉 생성의 무작위성에 대한 보안 테스트 보고서를 제공하며, 지원되는 모든 운영 체제(macOS, Windows, Android, iOS)와 해당 클라이언트(데스크톱 & 확장 프로그램)를 포함합니다.

테스트 결론

OneKey 앱은 Windows, macOS, iOS 및 Android 클라이언트와 Chrome 확장에서 개발 지침이 권장하는 플랫폼별 암호학적으로 강력한 난수 API를 사용합니다. 내부 테스트를 통해 NIST SP 800-22 및 FIPS 140-2 난수 보안 기준에 부합함을 확인했습니다.

  • Chrome 기반 플랫폼(Windows, macOS)에서는 암호학적으로 강력한 난수를 생성하기 위해 Chrome에서 제공하는 안전한 의사 난수 API인 crypto.getRandomValues를 사용합니다.
  • React Native 기반 Android 및 iOS 플랫폼에서는 각각 시스템이 제공하는 안전한 난수 인터페이스 SecureRandomSecRandomCopyBytes를 호출합니다.
⚠️ 참고: OneKey 앱은 보안 개발 지침을 엄격히 준수하고 있지만, 무작위 수 생성의 보안은 사용자 장치의 운영 체제/하드웨어 구현에 의해 영향을 받을 수 있습니다.

Security Testing

NIST SP 800-22 FIPS 140-2

NIST SP 800-22 (미국 국가 표준 기술 연구소 특별 간행물 800-22)는 주로 의사 난수 생성기(PRNG)를 테스트하기 위한 통계적 테스트 스위트를 포함하는 미국 국가 표준 기술 연구소(NIST)가 발행한 문서입니다. 난수 생성기가 생성한 비트 시퀀스의 무작위성과 품질을 평가하기 위한 통계 테스트 세트를 제공합니다.

프로젝트

매개변수

Segment Length

1024000

Test Items

1 (전체 15개 테스트)

Block Frequency Test - block length(M)

20480

NonOverlapping Template Test - block length(m)

10

Overlapping Template Test - block length(m)

10

Approximate Entropy Test - block length(m)

10

Serial Test - block length(m)

16

Linear Complexity Test - block length(M)

5000

bitstreams

20(20*1024000bits = 20480000bits = 20MB)

 

Windows

Win10 22H2; 하드웨어: i7-13700h

  • 데스크톱 클라이언트
    • Windows 데스크톱 클라이언트는 Electron 애플리케이션으로, Chrome 엔진을 사용합니다. 개발자 도구를 사용하여 실행 시 니모닉 엔트로피 생성 API crypto.getRandomValues를 호출해 난수를 샘플링하며, 총 20MB를 생성합니다. 정의된 매개변수에 따라 테스트한 결과, "테스트 보고서"(아래 첨부 파일 참조)에서 모든 항목이 통과되어 보안 요구 사항을 충족했습니다.
    • 테스트 결과: NIST SP 800-22-windows-desktop-wini713.txt (기사 첨부 파일에서 확인 가능)
  • 브라우저 확장 프로그램
    • Chrome 확장은 Chrome 엔진을 사용합니다. 개발자 도구를 사용하여 실행 시 니모닉 엔트로피 생성 API crypto.getRandomValues를 호출해 난수를 샘플링하며, 총 20MB를 생성합니다. 정의된 매개변수에 따라 테스트한 결과, "테스트 보고서"(아래 첨부 파일 참조)에서 모든 항목이 통과되어 보안 요구 사항을 충족했습니다.
    • 테스트 결과: NIST SP 800-22-windows-ext-wini713.txt (기사 첨부 파일에서 확인 가능)
macOS

시스템: Sonoma 14.6; 하드웨어: MacBook Pro 2020 13-inch M1

  • 데스크톱 클라이언트
    • macOS 데스크톱 클라이언트는 Electron 애플리케이션으로, Chrome 엔진을 사용합니다. 개발자 도구를 사용하여 실행 시 니모닉 엔트로피 생성 API crypto.getRandomValues를 호출해 난수를 샘플링하며, 총 20MB를 생성합니다. 정의된 매개변수에 따라 테스트한 결과, "테스트 보고서"(아래 첨부 파일 참조)에서 모든 항목이 통과되어 보안 요구 사항을 충족했습니다.
    • 테스트 결과: NIST SP 800-22-macOS-desktop-macm1p.txt (기사 첨부 파일에서 확인 가능)
  • 브라우저 확장 프로그램
    • Chrome 확장은 Chrome 엔진을 사용합니다. 개발자 도구를 사용하여 실행 시 니모닉 엔트로피 생성 API crypto.getRandomValues를 호출해 난수를 샘플링하며, 총 20MB를 생성합니다. 정의된 매개변수에 따라 테스트한 결과, "테스트 보고서"(아래 첨부 파일 참조)에서 모든 항목이 통과되어 보안 요구 사항을 충족했습니다.
    • 테스트 결과: NIST SP 800-22-macOS-ext-macm1p.txt (기사 첨부 파일에서 확인 가능)
Android

시스템: hyperOS 1.0.4.0; 하드웨어: Xiaomi 10s Snapdragon 870

  • Android 클라이언트
    • Android 클라이언트는 React Native 애플리케이션으로, 원시 API를 사용합니다. Android에서는 애플리케이션에서 crypto.getRandomValues가 호출될 때 시스템 API SecureRandom이 호출됩니다. React 원격 JS 디버그를 사용하여 실행 시 니모닉 엔트로피 생성 API crypto.getRandomValues를 호출해 난수를 샘플링하며, 총 20MB를 생성합니다. 정의된 매개변수에 따라 테스트한 결과, "테스트 보고서"(아래 첨부 파일 참조)에서 모든 항목이 통과되어 보안 요구 사항을 충족했습니다.
    • 테스트 결과: NIST SP 800-22-android-app-andsm870.txt (기사 첨부 파일에서 확인 가능)
iOS

시스템: iOS 17.5; 하드웨어: iPhoneX A11

  • iOS 클라이언트
    • iOS 클라이언트는 React Native 애플리케이션으로, 원시 API를 사용합니다. iOS에서는 애플리케이션에서 crypto.getRandomValues가 호출될 때 시스템 API SecRandomCopyBytes가 호출됩니다. React 원격 JS 디버그를 사용하여 실행 시 니모닉 엔트로피 생성 API crypto.getRandomValues를 호출해 난수를 샘플링하며, 총 20MB를 생성합니다. 정의된 매개변수에 따라 테스트한 결과, "테스트 보고서"(아래 첨부 파일 참조)에서 모든 항목이 통과되어 보안 요구 사항을 충족했습니다.
    • 테스트 결과: NIST SP 800-22-iOS-app-x.txt (기사 첨부 파일에서 확인 가능)

결과 첨부 파일

도움이 되었습니까?
0명 중 0명이 도움이 되었다고 했습니다.