Güvenli Bina için En İyi Uygulamalar Ios Kimlik Sistemleri
Giriş Giriş Giriş
iOS uygulamaları için güvenli kimlik doğrulama sistemleri, geliştiriciler için temel bir sorumluluktur. Gelişmiş siber tehditlerin yükselişi ile, giriş akışında tek bir kırılganlık hassas kullanıcı verilerini, hasar markasını ortaya çıkarabilir ve yasal cezaları teslim ederken Apple'ın ekosistemi güçlü bir güvenlik çerçevelerini sağlar, ancak en iyi uygulamaları doğru şekilde anlamak için temel bir sorumluluk gerektirir.Bu makale temel stratejileri - kriptografik protokollerine karşı sağlam bir şekilde kodlanabilir - bu şekilde, doğrulayıcı bir kullanıcı deneyimini sunmak için ortak saldırılara karşı koruyucu bir kimlik doğrulama mimarisi tasarlayabilirsiniz.
Güçlü Kimlik Yöntemleri
Sadece şifre tabanlı kimlik doğrulama artık yeterli değildir. Saldırıcılar genellikle kriminal şeyler, phishing veya brute-force teknikleri hesaplarını uzlaşmak için kullanırlar. Bu riskleri azaltmak için, çok faktörlü kimlik protokolleri benimsemeniz gerekir.
Çok-Factor Authentication (MFA)
MFA iki veya daha bağımsız faktörlerle birleştirir: Kullanıcının bildiği bir şey (aya güvenilen bir cihaz veya donanım token), ve iOS uygulamaları için, MFA'nın entegre edilmesi gereken bir şey (TOTP) gerçekleyici uygulamalar tarafından üretilen zaman tabanlı bir parola (TOTP) ile elde edilebilir, iten tabanlı onay talepleri veya SMS kodları (yardımcı)[değiştirmeler için MYO'nun şifreleri yönetmek için daha fazla cesaret gerektirir.
OAuth 2.0 ve OpenID Connect
Özel bir doğrulama geri yüklemesi yerine, OAuth 2.0 ve OpenID Connect gibi endüstri standartlarının yararlanın.Bu protokoller uygulamanızın güvenilir sağlayıcılara (Apple, Google, veya kendi yetki sunucunuz) izin vermesine izin verir ve iyi niyetli kontroller ve izinler devam ederken, OAuth 2.0'ı iOS'ta uygulamanız gerekir:0)ASWebAuthenticationSession) Kullanıcılara izin verir.
[FONT:0) PKCE hakkında daha fazla bilgi sahibi olmak ve mobil uygulamalar için önemi ).
Credentials Güvenli Depolama
Cihazda depolanan herhangi bir bilgi, jeton veya kriptografik anahtarlar, yetkisiz erişimden korunmalıdır - cihazın yazılım veya fiziksel hırsızlığın üstesinden gelmesi durumunda bile. iOS bu amaç için birkaç mekanizma sağlar.
Gıda Ürünleri
iOS menüsü, kullanıcı varsayılan dosyaların veya dosyaların aksine, diskolanların şifreleri (örneğin, parolaları) ile ilgili olarak, şifreleri veya şifreleri kullanarak, ekrandaki dosyaların şifresini kullanarak şifrelenen anahtarla geri bildirimde bulunacaktır.[>[değiştir | kaynağı değiştir]
[0] Apple'ın Hava Yolları Hizmetleri Belgeleri).
App Sandbox ve Data Protection
Diskin ötesinde, iOS'un Data Protection API'lerini dosya seviyesinde uygular. Belgeleri veya Caches direktörü dosyaları oluştururken, dosyayı koruma sınıfınızı açınca aşağıdaki sürüme kadar kullanılabilir.Bu, aynı donanım şifreleme motorunu, hatta dosya sistemi katmanının şifrelendiğini sağlar.
Kriptografik Anahtarları Yönetmek
Kimlik doğrulama sistemi dijital imzalar, ephemeral anahtarlar veya simetrik şifreleme kullanırsa, bu anahtarları mümkün olduğunda Güvenli Enklavuzu kullanarak depolayın. [Ücretsiz:0)SecKey) API, eliptik anahtarlar oluşturmanıza izin verir (örneğin, P-256) bu asla güvenli Enklavuzu bırakmaz. Bu, onları bir çekirdek- uzlaşma seviyesi ile bile geri çekilmeye dayanıklı hale getirir.
Biometric Authentication Kullanımı
Touch ID ve Face ID güçlü bir güvenlik ve mükemmel kullanıcı deneyiminin bir kombinasyonunu sunar. Şifreyi biyometrik doğrulamaya yükleyerek, geri dönen kullanıcılar için daha düşük tutma ve anahtarlama yüzeyini azaltırsınız.
YerelAuthentication
Apple'ın 7.D:0)LocalAuthentication[Dönetici") çerçevesi biyometrik politikaları değerlendirmek için standart bir arayüz sağlar.Bir biyometrik olarak, [[Dönetici:2|spekontext) Uygulamanın neden doğrulama gerektiğini açıkça açıklar (örneğin, “PolicyDeviceOwnerAuthentication)
Biometric-Komşeli Hediyeler için En İyi Uygulamalar
Dolma:0)[Dönetici:0))) Bir biyometrik kontrol listesi (ACL) ile giriş yapın[Döneticileri değiştir) veya daha az sayıdaki verileri takip eden veya takip eden bir veriye erişim (CurrentSet[FLT) veya LNTSecAccess()[D) erişimli bir şekilde ayarlandığında, aşağıdaki gibi bir veri kümesine sahip olun.
[0] Apple LocalAuthentication belgesi).
Implement Proper Session Management
Bir kullanıcı bu oturumu güvenli bir şekilde sürdürmesi kritiktir. Sonuç oturum işlemesi hırsızlık, seans düzeltmesi veya yeniden oyun saldırılarına yol açabilir.
Hediye bazlı Oturumlar
OAuth 2.0 ayıer token çiftlerini tercih edin: URL sorgu dizeleri ile erişim; sadece 15–60 dakika) ve bir yenileme (uzun ömürlü, e.g., 30 gün) Mağaza her ikisinde de uygun erişim kontrolü ile çalışır. hiçbir zaman erişim token erişim noktaları iletmez; sadece kullanıcı arayüzü üzerinden yeni bir geri dönüş yapmak için yeni bir istek almak için yeni bir istek almak için yeni bir istekte bulunamaz.
Revokasyon ve Logout
Her iki yerel ve sunucunun da yerini geçersiz kılan açık bir logout mekanizması sağlayın. Cihazın üzerinde, hemen Snapchat'ten gelen jetonları silin.(veya bir token revokasyon listesi) böylece geri dönüş hizmetleri herhangi bir iptal edilmiş token, güvenlik için, kullanım için (örneğin, JWT’nin “cnf” talebini, belirli bir cihaz veya anahtar çifte bağlar - bu başka bir yerde kullanılmamasını engeller.
Oturum Saati ve Inaktivite
Uygulamayı yerel olarak kilitleyen yumuşak zaman çizelgesi, kullanıcının kısa bir PIN veya biyometrik taramasına kadar oturum açma zamanı. Ayrıca, cihaz parmak izlerini kullanarak oturum anomalileri tespit eder (IP adresi, kullanıcı tarafından yönlendirilir) ve risk puan artışları arttıkça seansı korur.
Hediyelerin Güvenli Depolama
Zaten HDMI depolamasını kaplasak, ancak yenilenen jetlerin asla emanet edilmemiş ortamlara gönderilmemesi gerektiğini unutmayın.Eğer uygulamanız kimlik doğrulama için bir web görünümü kullanırsa, JavaScript'in belge aracılığıyla Jetonlara erişemeyeceğinden emin olun.cookie (unuFLT:0)HttpOnly[FLT]BuDeviceSadece[Dönetici|Dönetici =[Dönetici:2)
Güvenli İletişimin Sağlanması
iOS uygulaması ve sunucularınız arasındaki tüm ağ trafiği TLS 1.2 veya daha yüksek kullanarak şifreli olmalıdır. Kimlik doğrulama verileri asla aktarılmasa bile, şifrelenmemiş trafik metadata (API uç noktaları, istek kalıpları) saldırganlara yardımcı olabilir.
App Transport Security (ATS)
Apple, iOS 9 ve daha sonra varsayılan olarak ATS'yi devre dışı bırakır, modern güvenlik standartlarını karşılayan HTTPS bağlantılarını gerektirir.You should never add exceptions toETHFLT:0)NSAppTransport Security) (kendi API uç noktaları için kesinlikle gerekli olan, TLS 1.3 forwarderinizi her zaman gizli bir şekilde kullanarak destekler.
Sertifika Pinning
HTTPS ile bile, uzlaşmacı bir sertifika otoritesi (CA) sizin alan için bir hileli sertifika verebilir.Viasa:Dörtçe:[Dönetici) veya sertifikanızın ikilisine karşı anahtarını kullanır.(0)NSURLSession[Dönetici:2)URLSession:Dönetici:completionHandler:[Dönetici:[Döneticileri değiştir][Döneticileri kullanarak, dosyanın anahtarının anahtarına uygun olarak, aşağıdaki gibi bir şekilde değiştirilmelidir.
Hediye İletim
Her zaman HTTPS bağlantısına bindir. Asla yol veya sorgu dizesinde belirtilme (bir giriş veya önbellek tarafından önbelleklenebilir) Teklifi kullanın: Bearer <token>) üst düzey güvenlik için, yüksek çözünürlükte bir giriş için, üstteki bir giriş için pencereleri bağlamak.
[FONT=0)OWASP Mobile Top 10 – Güvenli İletişim).
Düzenli Güvenlik Güncellemeleri ve Testleri
Güvenlik tek zamanlı bir görev değildir. Yeni açıklar iOS, üçüncü taraf kütüphanelerde ortaya çıkar ve kendi kodunuz, dikkatli kalmak önemlidir.
Bağımlılık Yönetimine bağlı
Kontrollü akışa entegre ettiğiniz her üçüncü taraf kütüphanesini kontrol edin.CoaPods-Session veya SPM'nin önceden bilinen açıkları tespit etmek için yerleşik olarak inşa edilen araçları kullanın.Session Web Tokens için iyi bakımlı kütüphaneler için tercih edin.0.Alamofire) veya erişim olmadan doğrudan erişim sağlar; ham URLSession genellikle daha güvenlidir.
Otomatik Güvenlik Testi
CI/CD boru hattınıza tarama yapın. Statik analiz araçları kullanın (örneğin, SonarQube with Swift kuralları veya )SwiftLint), güvenlik odaklı kurallarla birlikte) entropik kullanım için kullanılabilir. Dinamik analiz için, kullanımın kullanılması gerekir.In dynamic analysis, using Swift rules, oryut) ve DFLT:3).
Vulnerability Disclosures'e yanıt vermek
Bug raporlarını işlemek için bir süreç var. Apple güvenlik geri bildirim aracı sağlar.Üye katılmak için göz önüne alındığında; Apple, ASWebAuthentT:1'i kullanmak için her zaman uygulamanızın kimlik doğrulama kodunu en son iOS SDK ile uyumlu tutuyor - Apple genellikle deprecates olmayan API'leri (örneğin, UIWebView kaldırıldı; ASWebAuthenticationSession yerine).
Ek Güvenlik Bakışları
Kapsamlı bir kimlik doğrulama sistemi temel giriş akışının ötesine geçer. Kalan saldırganlara yakın bu tamamlayıcı alanlara ulaşın.
Hesap ve Şifre Sıfırlama
Güçlü kimlik doğrulama güvenliğini geri yükleme mekanizmaları geri alındı. Zaman sınırlı, tek kullanımlık jetonları doğrulanmış e-posta adreslerine veya telefon numaralarına gönderdi. Bir hesabın enumerasyon ataklarını önlemek için kurtarma sürecinde var olup olmadığını ortaya çıkarmadan kaçının.
Limiting ve Brute-Force Protections
Implement server-side rate Limit on login endpoints (e.g., IP veya kullanıcı başına dakika başına 5 girişim) Birkaç başarısız denemeden sonra CAPTCHA veya gecikmiş bir yeniden deneme gerektirir. iOS'ta, aynı zamanda da kullanabilirsiniz.accelerate).
Gizlilik ve Veri Minimizasyon
Sadece doğrulama için gerekli olan verileri toplayın. Doğrudan ilişki olmayan izinlerden kaçının (örneğin, temaslar, konum) Kullanıcının açıkça tercih ettiği sürece Apple'ın ) ile kayıt olun.[IPT:0) Gizlilik yönergeleri: Bu özelliği entegre ederken, kullanıcının özel e-posta adresini takip etmek için kullanın.[değiştir | kaynağı değiştir]
Device Attestation
Yüksek güvenlik uygulamaları (örneğin, bankacılık), taleplerin meşru bir cihazda çalışan gerçek bir kopyasının ortaya çıktığını doğrulayan bir şekilde kontrol altına alınması için (örneğin, [[Döneticiler) ile birlikte, (örneğin, güvenlik iddialarını oluşturmak için kimlik doğrulama ile birlikte, belirli bir güvenlik iddiasını yerine getirmek için.
Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç
iOS'ta doğrulama, kriptografi, protokol tasarımı, depolama ve devam eden bakım.MFA'yı PKCE ile uygulamak, diskometrik erişim kontrolleri ile korumak, rotasyonla yönetmek, şifreli iletişim kurmak ve sürekli test etmek için, bu en iyi risklerle doğrulama riskini büyük ölçüde azaltabilirsiniz.
[0]NIST Digital Identity Guidelines (SP 800-63B)).