Bu makale, OneKey Uygulaması'ndaki (yazılım cüzdanı) anımsatıcı üretimin rastgeleliği üzerinde, OneKey Uygulaması'nın desteklediği tüm işletim sistemlerini (macOS, Windows, Android, iOS) ve ilgili istemcilerini (Masaüstü ve Tarayıcı Uzantısı) kapsayan bir güvenlik testi raporu sunmaktadır.
Sonuç
OneKey Uygulaması, Windows, macOS, iOS ve Android istemcilerinin yanı sıra Chrome uzantısında da geliştirme kılavuzları tarafından önerilen platforma özgü kriptografik olarak güçlü rastgele sayı API'lerini kullanır. Dahili testler, NIST SP 800-22 ve FIPS 140-2 rastgele sayı güvenlik standartlarına uyumu doğrulamaktadır.
Chrome tabanlı platformlarda (Windows, macOS), kriptografik olarak güçlü sözde rastgele sayılar üretmek için Chrome tarafından sağlanan güvenli sözde rastgele sayı API'si
crypto.getRandomValueskullanılır.React Native tabanlı Android ve iOS platformlarında sırasıyla sistem tarafından sağlanan güvenli rastgele arayüzler
SecureRandomveSecRandomCopyBytesçağrılır.
⚠️ Not: OneKey Uygulaması güvenlik geliştirme kılavuzlarına sıkı sıkıya bağlı kalsa da, rastgele sayı üretiminin güvenliği kullanıcının cihazının işletim sistemi/donanım uygulaması tarafından da etkilenebilir.
Güvenlik Testi
NIST SP 800-22 FIPS 140-2
NIST SP 800-22 (National Institute of Standards and Technology Special Publication 800-22), Amerika Birleşik Devletleri'nin Ulusal Standartlar ve Teknoloji Enstitüsü (NIST) tarafından yayınlanan ve öncelikle Sözde Rastgele Sayı Üreteçleri (PRNG) için istatistiksel bir test paketi içeren bir belgedir. Rastgele sayı üreteçleri tarafından üretilen bit dizilerinin rastgeleliğini ve kalitesini değerlendirmek için bir dizi istatistiksel test sağlar.
Test Yazılımı: NIST SP 800-22 İstatistiksel Test Paketi
Test Ortamı: macOS 14.5
Test Parametreleri:
Proje
|
Parametreler
|
Segment Uzunluğu
|
1024000
|
Test Öğeleri
|
1 (Tüm 15 test)
|
Blok Frekans Testi - blok uzunluğu(M)
|
20480
|
Aynı Olmayan Şablon Testi - blok uzunluğu(m)
|
10
|
Tekrarlayan Şablon Testi - blok uzunluğu(m)
|
10
|
Yaklaşık Entropi Testi - blok uzunluğu(m)
|
10
|
Seri Test - blok uzunluğu(m)
|
16
|
Doğrusal Karmaşıklık Testi - blok uzunluğu(M)
|
5000
|
bit akışları
|
20 (20*1024000 bit = 20480000 bit = 20MB)
|
Windows
Sistem: Win10 22H2; Donanım: i7-13700h
Masaüstü İstemcisi
OneKey Uygulaması'nın Windows masaüstü istemcisi, Chrome motoruna dayanan bir Electron uygulamasıdır. Geliştirici araçları kullanılarak, anımsatıcı entropi üretimi API'si
crypto.getRandomValuesçalışma zamanında çağrılarak 20MB'lık rastgele sayılar örneklenir. Tanımlanan parametrelere göre yapılan testler, tüm öğelerin geçtiği ve güvenlik gereksinimlerini karşıladığı bir "Test Raporu" (aşağıdaki eke bakınız) sağladı.Sonuçlar: NIST SP 800-22-windows-desktop-wini713.txt (Ekte mevcuttur)
Tarayıcı Uzantısı
Chrome uzantısı, Chrome motoruna dayanır. Geliştirici araçları kullanılarak, anımsatıcı entropi üretimi API'si
crypto.getRandomValuesçalışma zamanında çağrılarak 20MB'lık rastgele sayılar örneklenir. Tanımlanan parametrelere göre yapılan testler, tüm öğelerin geçtiği ve güvenlik gereksinimlerini karşıladığı bir "Test Raporu" (aşağıdaki eke bakınız) sağladı.Sonuçlar: NIST SP 800-22-windows-ext-wini713.txt (Ekte mevcuttur)
macOS
Sistem: Sonoma 14.6; Donanım: MacBook Pro 2020 13 inç M1
Masaüstü İstemcisi
OneKey Uygulaması'nın macOS masaüstü istemcisi, Chrome motoruna dayanan bir Electron uygulamasıdır. Geliştirici araçları kullanılarak, anımsatıcı entropi üretimi API'si
crypto.getRandomValuesçalışma zamanında çağrılarak 20MB'lık rastgele sayılar örneklenir. Tanımlanan parametrelere göre yapılan testler, tüm öğelerin geçtiği ve güvenlik gereksinimlerini karşıladığı bir "Test Raporu" (aşağıdaki eke bakınız) sağladı.Sonuçlar: NIST SP 800-22-macOS-desktop-macm1p.txt (Ekte mevcuttur)
Tarayıcı Uzantısı
Chrome uzantısı, Chrome motoruna dayanır. Geliştirici araçları kullanılarak, anımsatıcı entropi üretimi API'si
crypto.getRandomValuesçalışma zamanında çağrılarak 20MB'lık rastgele sayılar örneklenir. Tanımlanan parametrelere göre yapılan testler, tüm öğelerin geçtiği ve güvenlik gereksinimlerini karşıladığı bir "Test Raporu" (aşağıdaki eke bakınız) sağladı.Sonuçlar: NIST SP 800-22-macOS-ext-macm1p.txt (Ekte mevcuttur)
Android
Sistem hyperOS 1.0.4.0; Donanım Xiaomi 10s snapdragon870
Android İstemcisi
React Native uygulaması olan OneKey Uygulaması'nın Android istemcisi, yerel API'lere dayanır. Android'de, uygulamada
crypto.getRandomValuesçağrıldığında sistem API'siSecureRandomçağrılır. React uzaktan JS hata ayıklaması kullanılarak, anımsatıcı entropi üretimi API'sicrypto.getRandomValuesçalışma zamanında çağrılarak 20MB'lık rastgele sayılar örneklenir. Tanımlanan parametrelere göre yapılan testler, tüm öğelerin geçtiği ve güvenlik gereksinimlerini karşıladığı bir "Test Raporu" (aşağıdaki eke bakınız) sağladı.Sonuçlar: NIST SP 800-22-android-app-andsm870.txt (Ekte mevcuttur)
iOS
Sistem: IOS 17.5; Donanım: iPhoneX A11
iOS İstemcisi
React Native uygulaması olan OneKey Uygulaması'nın iOS istemcisi, yerel API'lere dayanır. iOS'ta, uygulamada
crypto.getRandomValuesçağrıldığında sistem API'siSecRandomCopyBytesçağrılır. React uzaktan JS hata ayıklaması kullanılarak, anımsatıcı entropi üretimi API'sicrypto.getRandomValuesçalışma zamanında çağrılarak 20MB'lık rastgele sayılar örneklenir. Tanımlanan parametrelere göre yapılan testler, tüm öğelerin geçtiği ve güvenlik gereksinimlerini karşıladığı bir "Test Raporu" (aşağıdaki eke bakınız) sağladı.Sonuçlar: NIST SP 800-22-iOS-app-x.txt (Ekte mevcuttur)
FIPS 140-2 (Federal Information Processing Standard Publication 140-2), NIST tarafından yayınlanan bir bilgisayar güvenliği standardıdır. Kriptografik modüller için güvenlik gereksinimlerini ayrıntılı olarak açıklar, özellikle RNG türlerine, güvenlik gücüne, tohum, entropi, periyodite, periyodik testler ve sürekli testlere odaklanır.
Test Yazılımı: rng-tools
Test Parametreleri: Yok
Test Ortamı: ubuntu 24.04 arm64
Derleme Süreci:
gcc,automake'i düzgün bir şekilde kurun./autogen.shkomutunu çalıştırın./configurekomutunu çalıştırın (hatalar oluşursa, hata mesajlarına göre bağımlılıkları yapılandırın)rngdverngtestdosyalarını derlemek içinmakekomutunu çalıştırın./rngtest < testfile.binkomutunu çalıştırın
⚠️ Not: Test dosyaları girdi olarak ikili formatta olmalıdır, ASCII formatında değil.
Windows
Sistem: Win10 22H2; Donanım: i7-13700h
Masaüstü İstemcisi
OneKey Uygulaması'nın Windows masaüstü istemcisi, Chrome motoruna dayanan bir Electron uygulamasıdır. Geliştirici araçları kullanılarak, anımsatıcı entropi üretimi API'si
crypto.getRandomValuesçalışma zamanında çağrılarak 20MB'lık rastgele sayılar örneklenir. Metin dosyası ikili bir dosyaya dönüştürüldü ve aşağıdaki "Test Raporu" tüm öğelerin geçtiğini ve güvenlik gereksinimlerini karşıladığını göstermektedir.
Tarayıcı Uzantısı
Chrome uzantısı, Chrome motoruna dayanır. Geliştirici araçları kullanılarak, anımsatıcı entropi üretimi API'si
crypto.getRandomValuesçalışma zamanında çağrılarak 20MB'lık rastgele sayılar örneklenir. Metin dosyası ikili bir dosyaya dönüştürüldü ve aşağıdaki "Test Raporu", 1024 tur test edildiğini ve bir tur Runs'ın başarısız olduğunu gösteriyor, ancak genel olarak tüm öğeler geçti ve güvenlik gereksinimlerini karşıladı.
macOS
Sistem: Sonoma 14.6; Donanım: MacBook Pro 2020 13 inç M1
Masaüstü İstemcisi
OneKey Uygulaması'nın macOS masaüstü istemcisi, Chrome motoruna dayanan bir Electron uygulamasıdır. Geliştirici araçları kullanılarak, anımsatıcı entropi üretimi API'si
crypto.getRandomValuesçalışma zamanında çağrılarak 20MB'lık rastgele sayılar örneklenir. Metin dosyası ikili bir dosyaya dönüştürüldü ve aşağıdaki "Test Raporu" tüm öğelerin geçtiğini ve güvenlik gereksinimlerini karşıladığını göstermektedir.
Tarayıcı Uzantısı
Chrome uzantısı, Chrome motoruna dayanır. Geliştirici araçları kullanılarak, anımsatıcı entropi üretimi API'si
crypto.getRandomValuesçalışma zamanında çağrılarak 20MB'lık rastgele sayılar örneklenir. Metin dosyası ikili bir dosyaya dönüştürüldü ve aşağıdaki "Test Raporu" tüm öğelerin geçtiğini ve güvenlik gereksinimlerini karşıladığını göstermektedir.
Android
Sistem: hyperOS 1.0.4.0;Donanım: Xiaomi 10s snapdragon870
Android İstemcisi
React Native uygulaması olan OneKey Uygulaması'nın Android istemcisi, yerel API'lere dayanır. Android'de, uygulamada
crypto.getRandomValuesçağrıldığında sistem API'si SecureRandom çağrılır. React uzaktan JS hata ayıklaması kullanılarak, anımsatıcı entropi üretimi API'sicrypto.getRandomValuesçalışma zamanında çağrılarak 20MB'lık rastgele sayılar örneklenir. Metin dosyası ikili bir dosyaya dönüştürüldü ve aşağıdaki "Test Raporu", 1024 turdan üçünün tüm test öğelerini başarısız olduğunu gösteriyor, ancak genel olarak tüm öğeler geçti ve güvenlik gereksinimlerini karşıladı.⚠️ Not: Android istemcisinde, tüm test öğelerinin başarısız olduğu 1024 deneme içinde üç deneme vardı. Bu sorun, rng-test aracındaki bir hata olabilir ve testin genel sonucunu etkilemez.
iOS
Sistem iOS 17.5;Donanım: iPhoneX A11
iOS İstemcisi
React Native uygulaması olan OneKey Uygulaması'nın iOS istemcisi, yerel API'lere dayanır. iOS'ta, uygulamada
crypto.getRandomValuesçağrıldığında sistem API'siSecRandomCopyBytesçağrılır. React uzaktan JS hata ayıklaması kullanılarak, anımsatıcı entropi üretimi API'sicrypto.getRandomValuesçalışma zamanında çağrılarak 20MB'lık rastgele sayılar örneklenir. Metin dosyası ikili bir dosyaya dönüştürüldü ve aşağıdaki "Test Raporu", 1024 turdan birinde Uzun çalışma testinin başarısız olduğunu gösteriyor, ancak genel olarak tüm öğeler geçti ve güvenlik gereksinimlerini karşıladı.
Sonuç Edeketleri
