Mobil Uygulamalarda Asymmetric Encryption'u Uygulama: İpuçları ve En İyi Uygulamaları
Table of Contents
Mobil Uygulamalar için Asymmetric Encryption'ı Anlamak
Net şifreleme, aynı zamanda halka açık kriptografi olarak da bilinir, temel bir güvenlik mekanizmasıdır, iki matematiksel olarak ilişkili ancak farklı anahtarlar için idealdir: özgürce paylaşılabilir ve özel bir anahtar, bu yaklaşım, ilk anahtar dağıtım problemini çözmüş, ancak bu şekilde kaynak kodlanmış kullanıcılar veya sunucular için ideal hale getirmek gerekir.
Temel ilke, bazı matematiksel sorunların zorluğuna dayanıyor. Örneğin, RSA, büyük asal ürünlerin sayısal karmaşıklığını kullanıyor, Elliptik Curve Cryptography (ECC) uygulamanız için bir algoritma seçmeden önce kritik önem taşıyor.
Mobile için Doğru Algoritmayı Seçin
RSA: Geniş Desteklendi ama Kaynak-I Yoğun
RSA, asimetrik algoritma olarak en geniş şekilde destekleniyor, neredeyse her kriptografik kütüphanede mevcut; 2048-bit anahtar, 2025 yılında önerilen en az tavsiye edilir:0)NIST) 2025 olarak, RSA şifreleme ve decryption hesaplamak pahalı, özellikle uzun düz metinler için, RSA büyük para yüklerini doğrudan şifreleyerek kullanılır; bunun yerine, genellikle bir symmetric cipher ile bir araya gelir.
ECC: Küçük Anahtarlar, Hızlı Operasyonlar
Elliptic Curve Cryptography (ECC) modern mobil uygulamalar için tercih edilen bir seçim haline geldi. 256-bit ECC anahtarı, sertifikaların boyutunu büyük ölçüde azalttı ve veri iletildi. ECC işlemleri genellikle anahtar nesil ve imza için daha hızlı, bu da düşük güç mobil CPU'lar için önemli bir avantajdır. Apple'ın iOS ve Android her ikisinde de güvenli Enklavuz ve Güvenilen Ortamları kullanarak donanıma sahip olabilir.
Diffie-Hellman ve Key Exchange Protokolü
Diffie-Hellman (DH) ve eliptik-curve varyant (ECDH) doğrudan şifreleme verileri için kullanılmamıştır, ancak ayrıntılı bir şekilde gizli bir kanal oluşturmak için kritiktir.In mobile apps, ECDH genellikle seans anahtarlarını oluşturmak için TLS el ele alınır.Uygulamalar birçok karmaşıklık tuzakları kullanmalıdır.
Platform-Specific Implementation Tips
iOS: Güvenli Enklav ve CryptoKit'ı Kaldırın
Apple, NIST eğrileri (P-256, P-384, P-512) ve Curve25519'u kullanarak yüksek seviyeli işlemleri imzalayarak, doğrulama ve anahtar anlaşma kullanarak NIST eğrileri (P-256, P-384, P-512) ve Curve25519. Özel depolama anahtarları için, her zaman güvenli Enklavuzda güvenli Enktöreleri kullanarak güvenli Enklavuzlu özel depolamak için anahtarları kullanın:
Android: Key store ve GüçlüBox
Android, Android 9 (API seviyesi 28) üzerinden başlayarak, ECDSA ve RSA işareti / kullanıcı arayüzünü kullanarak güçlü kutu desteği talep edebilirsiniz.Forymmetric key generation, useFLT:6 sağlayıcı ve belirteçleri kullanarak, Android 9 (API seviyesi 28), GüçlüBox desteği ile birlikte güçlü anahtarlar da ECDSA ve RSA işareti / anahtar işlemleri için entegre destek sağlayabilirsiniz.
Cross-Platform Frameworks
Flutter, React Native gibi Çerçeveler ve Xamarin, temel işlem için kullanılan kütüphaneleri ekleyebiliyor, ancak depolama her zaman platforma özgü eklentileri (örneğin, JavaScript ortamı ile birlikte, ana kaynak nesli ile birleştirilmemelidir) için uygun olmayan kriptografik işlemlerinin uygulanması için her zaman ayarlanmalıdır.
Güvenli Anahtar Yönetimi: Asymmetric Encryption
Never Hard-Ko Özel Anahtarlar
Uygulama ikilisine özel anahtarlar zor kodlanmış anahtarlar, anahtar teslim için ciddi bir güvenlik hatasıdır.In server-authentic apps, göz ardı edilebilir ve sabit anahtarlar satın alın.Use platform safe storage (Keychain on iOS, Android Key store) or a uzaktan anahtar yönetim hizmeti (KMS) for key provisioning.For server-authentic apps, consider is going ephemeral device-specific keys at record time.
Donanım-Backed Storage
Modern mobil cihazlar Apple'ın Secure Enclave ve Android'in Güvenilen Execution Ortamı (TEE) veya GüçlüBox gibi özel anahtarı veri işlemeden ve imzalayın, her zaman donanıma dayalı anahtarlar tercih edilir (örneğin, uygulama hizmetleri veya sağlık verileri için), Android veya ESD 14'te belirtilen uygulamalar için geçerlidir.
Anahtar Rotasyon ve Revokasyon
Asymmetric anahtarları sonlu bir yaşam süresine sahip olmalıdır. Anahtar rotasyon politikaları: örneğin, her altı ayda yeni imza anahtarlar ve sunucu tarafında, kara liste veya kamu anahtarlarını geri almak için kamu anahtarlarını kullanmak. Mobile uygulamaları, güncel halk anahtarlarını düzenli olarak sorgulamalı ve güvenilir bir otorite tarafından imzalanmışlardır.
Backup Thinkations
Kullanıcı verilerini geri alırken, özel anahtarların dışlanmadığına karar verin. Belirli bir cihaza bağlı olan anahtarlar (örneğin yerel şifreleme için) yedeklenmemelidir. iOS'ta, güvenlik modelini zayıflatır.In iOS'ta, erişilebilirliği engeller.
Güvenli İletişim için En İyi Uygulamalar
Hibrit Büyük Veri için Şifre Kullanımı
Asimetrik şifreleme büyük maaş yükleri için verimsizdir. Bunun yerine, bir hibrit program kullanın: asimetrik anahtarın güvenli anahtarı (örneğin, AES-256-GCM), bu anahtarla verileri şifreleyin, o zaman alıcının genel anahtarını otomatik olarak kullanan üst düzey kripto şifreleme şifrelemeleri sağlar.
Her zaman güven zincirini onaylayın
Bir sunucu aracılığıyla halka açık anahtarları değiştirmek, halkın anahtarını istenen alıcıya ait olduğunu doğrulayın.Müşterinin açık parmak izi veya eş-ortalama doğrulamayı önlemek için bir pinte CA kullanın. iOS özel güven için QR kodu tarama sağlar; Android\'in kullanımları için kullanımları gerekir.
Mükemmel Forward Secrecy (PFS)
Anahtar değişim protokollerinde, her zaman ephemeral anahtarlar (ECDHE) kullanın, böylece uzun vadeli özel anahtarın geçmiş seans anahtarlarını açığa çıkarmamasını sağlar. Bu özellik, mükemmel ileriye dönük gizlilik olarak adlandırılır, sunucunun özel anahtarını elde edersen, daha önce kayıt dışı trafiği şifreleyemezler. iOS ve Android'in TLS yığınlarını ECDHE kodlar varsayılan olarak onaylar; Uygulamanızın Ağ Güvenlik Yapınmasını doğrulamayı sağlar.
Leaking Bilgileri olmadan Hataları
Kriptografik işlemler geçersiz anahtarlar, bozuk veriler veya zaman kesintiler nedeniyle başarısız olabilir. Kullanıcıya ayrıntılı hata mesajları veya günlük ham anahtar materyalinizi yayınlamayı engellemeyin. Örneğin, imza doğrulama başarısız olursa, “ECDSA imzası geçersiz” yerine, bir saldırgana yardım edebilir. İmzaları doğrularken veya MAC'ları doğrulamayı önlemek için sürekli karşılaştırmalar kullanın.
Uygulamanızı Test Etmek ve Denetim Etmek
Bilinen Test Vectors ile Birim Testleri
Şifrenizi doğrulama ve NIST veya RFC'lerden yayınlanan test vektörlerine karşı oturum açma işlevlerini onaylayın. Örneğin, RSA-OAEP şifrelemelerini kullanarak CAVP) vektörleri yazın.Çevipli metin, geçersiz anahtar boyutlardaki testleri yazın, sınırsız anahtarlar, son dereceleri kullanın ve anahtarları doğrulamayı güvenli depolamayı kullanın.
Eleştirme Testi ve Statik Analiz
Kriptografik uygulamalara odaklanan düzenli penetrasyon testleri yapın. Ortak saldırı vektörleri aşağılama atakları içerir (daha zayıf bir cipher), yan kanal sızıntı (örneğin, güç analizi veya CPU önbelleği ile) ve ⁇ veyaacle saldırıları (örneğin, PKCS#1 v1.5 ile RSA'da statik analiz araçları kullanın.
Kütüphane Güncellemelerinden Sonra Regresyon Testleri
Kriptografik kütüphaneler genellikle keşfettiğiniz açıklıklar için yamalar serbest bırakırlar. Bir kütüphaneyi güncellemeden sonra (örneğin, OpenSSL, Bouncy Castle, Conscrypt), bu anahtar nesilden emin olmak için tam regresyon testleri çalıştırın, imzalayın ve API'leri gelecekteki kesintilerden kaçınmak için destekletir.
Ortak Pitfalls ve Them'dan Nasıl Kaçırmak
Tahmin edilemez Random Number Jeneratörleri kullanarak
Tüm kriptografik işlemler güvenli rastgele sayılara bağlıdır. Mobile uygulamaları iOS ve ESFLT:27'ye bağlı olarak kullanılabilir. Android'e asla güvenmeyin. ”-ŞUYUM: 15.000'den itibaren, bu tahmin edilebilir ve anahtar nesilleri kırılabilir.
Improper Key Encoding ve Transmission
Halk anahtarları standart bir formatta kodlanmalıdır (örneğin, DER veya PEM). Ağa göndermeden önce Base64 kodlarını JWK (JSON Web Key) kullanarak dikkatli olun.
Key Expiration'ı işe sokmak için başarısız olmak
Uygulamanızda uzun vadeli bir risk asla tamamlanmamış anahtarlar: Güvenli bir API aracılığıyla mevcut zamanı sağlamak için sunucuya güvenen anahtarlar (örneğin, 90 gün), kullanıcıyı yeniden manipüle edebilir.In the server side, red keys that have expired.Use a reliable timestamp or rely on the server to provide the current time via a reliable API.If use device local time for expireation valid, as users can handle.
Neglecting Side-Channel Direnişi
Mobil işlemciler zamanlaması ve güç-analiz saldırıları için savunmasızdır. Tüm kriptografik işlemler için sürekli uygulama kullanın. Çoğu platform APIs (örneğin, CryptoKit, 03-parti kütüphanesi kullanıyorsanız, ancak yan kanal direncini doğrulayın.
Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç
Mobil uygulamalarda asimetrik şifreleme sadece birkaç kütüphane işlevi aramak değil; bu, algoritma seçimi, anahtar yönetim, platform bazlı API'ler ve güvenlik testleri ile ilgili uygulamaları takip ederek, kullanıcı verilerini geniş bir dizi tehditle karşı karşıya bırakan uygulamalarla pekiştirir: Mobil ekosistemin mümkün olan, donanım geri yüklemesi, Apple kültürüne karşı mükemmel bir şekilde test edilmesi ve düzenli güvenlik modellerinize karşı dikkatli bir şekilde test edilmesi gerekir.