iOS Uygulamalarında SSL Sabitleme Nasıl Gerçekleştirilir

Yayınlanan: 2020-02-24

İnsanlar evlerinden çıktıkları anda açık Wi-Fi ağları arayışına girerler. İster havaalanında bekliyorlar ister bir kafede oturuyorlar, ana gündem açık bir Wi-Fi bağlantısı bulmaktır.

Korkarak, bilgisayar korsanları da aynı arayış içindedir. Onlar da, kimlik avı beyinlerini işe koymadan ve onları hassas verilerinden veya daha kötüsü banka hesaplarındaki paradan mahrum etmeden önce, kullanıcıların açık ağ üzerinde bir bağlantı talebi başlatmasını beklerler.

HTTPS bir dereceye kadar etkili olsa da, kırılmaz ve büyük ölçüde güvenli olmasıyla kullanıcıları güvenli hale getirdiği bilinen bir SSL protokolüdür. Ancak Ortadaki Adam (MITM) saldırıları bunu da aşmanın yollarını buldu.

SSL Sabitleme tekniğinin , mobil uygulama güvenliği en iyi uygulamalarından biri olarak resme girdiği yer burasıdır . Özellikle platformlar hakkında konuşmak gerekirse, sorunu çözmek için harika bir iş çıkaran ideal iphone uygulaması güvenlik çözümüdür.

Bu yazıda, bu Ortadaki Adam saldırılarını önlemek için iOS uygulamalarına SSL Sabitleme eklemenin türlerini ve sürecini inceleyeceğiz. OWASP mobil güvenlik testi uygulamasının aktif bir parçası olan bir süreç .

SSL Sertifika Türleri Sabitleme Yöntemi

Aşağıda tartışıldığı gibi SSL Sabitleme testi için büyük ölçüde iki yöntem vardır:

SSL sabitleme

SSL-certificate

  • Sertifikayı sabitleyin – Sunucunun sertifikasını indirebilir ve bunları uygulamada paketleyebilirsiniz. Çalışma zamanında uygulama, sunucu sertifikasını katıştırdığınız sertifikalarla karşılaştırır.
  • Ortak anahtarı sabitleyin – Sertifikanın ortak anahtarını kodda bir dize olarak alabilirsiniz. Çalışma zamanında uygulama, sertifikanın ortak anahtarını kodda sabit kodlanmış olanla karşılaştırır.

İki SSL sabitleme iOS yöntemi arasında seçim yapmak , sunucu yapılandırmanıza ve bireysel ihtiyaçlarınıza bağlıdır. İlk seçeneği seçtiğinizde, sunucu sertifikasını değiştirdiğinde veya çalışmayı durdurduğunda uygulamayı yüklemeniz gerekecek . İkinci seçeneği belirlerken, ortak anahtar değişmeyeceğinden anahtar döndürme politikasını ihlal edebilirsiniz .

Şimdi iOS uygulamanızda SSL Sabitleme uygulama adımlarına bir göz atalım.

*Not: Aşağıda belirtilen adımlar, iOS sertifikasının Swift ile sabitlenmesi sürecini takip eder.

iOS Uygulamanızda SSL Sabitleme Nasıl Uygulanır?

1. NSURLS Oturumu

NSURLSession durumunda, SSL sabitlemeyi işlemenin birincil yöntemi URLSession:didReceiveChallenge:completionHandler:delegate'dir. Geliştiricilerin, sınıfı URLSessionDelegate ile uyumlu olacak şekilde ayarlaması ve bu işlevi sınıfa yapıştırması gerekir:

İşlev, " uzak sunucudan gelen bir kimlik doğrulama isteğine yanıt olarak temsilciden kimlik bilgilerini ister " . iPhone uygulama geliştiricisi daha sonra sunucudan alınan sertifikaları uygulama paketinde kayıtlı olanlarla karşılaştırır . İki sertifika aynı bulunursa, kimlik doğrulamanın geçmesine izin verecek ve istemci sunucuya bağlanabilecektir.

2. Alamofire Sertifika Sabitleme

Alamofire , Swift dilinde HTTP ağı için en ünlü kütüphanelerden biridir. iOS Swift'de yerleşik SSL sabitleme işleviyle birlikte gelir ve kullanımı son derece kolaydır. Alamofire sertifika sabitleme ile güvenli bir iOS uygulamasının nasıl oluşturulacağı aşağıda açıklanmıştır.

SSL Sabitleme Uygulamasıyla İlişkili Yaygın Sorunlar ve Nasıl Çözülür

Tanınmış uygulama geliştirme ajanslarındaki Kalite Güvencesi Uzmanları , mobil uygulamaları tam ağ penetrasyonu da dahil olmak üzere güvenlik açıkları için düzenli olarak test eder. Ancak bu alanlara aynı hevesle odaklanmayan birçok uygulama test ajansı var . Bu özel iPhone güvenlik çözümünü uygulamalarına uygularken isteksiz görünüyorlar .

İşte bunun arkasındaki yaygın nedenlerden bazıları -

  • iOS uygulamasında SSL sabitlemenin en büyük dezavantajlarından biri uygulanmasıdır. Süreç karmaşıktır ve geliştiricileri tekrar tekrar kod yazmaya ve uygulama oluşturma sürecini karmaşıklaştırmaya zorlayabilir .
  • Düzenli olarak değişmesi gereken iOS SSL sertifikalarını sabitlemek, geliştiricileri her sertifika değişikliğinde uygulama ikili dosyasını güncellemeye zorlayabilir.
  • iOS SSL doğrulamasını atlamanın yollarını korumak için çok sayıda çaba sarf edilmelidir .

Sahnenin yokluğunun getirebileceği sonuçlara dikkat çekerek, güvenilir bir iPhone uygulama geliştirme şirketi tarafından bazı yaygın tuzaklardan nasıl kaçınıldığı aşağıda açıklanmıştır .

pimi test etme

Her şeyin çalışıp çalışmadığını test ettiğiniz normal uygulama testinden farklı olarak, SSL sabitleme testinin yöntemi, bir şeyin başarısız olup olmadığını kontrol etmeniz gerektiğidir. Uygulamanın, güvenliği ihlal edilmiş olabilecek bağlantıları iptal edip etmediğini test etmeye odaklanmanız gerekecek. Uygulama, tek bir uç nokta ile iletişimi mümkün kılıyorsa, test etmek, GET isteğini rastgele bir duruma getirmek kadar basit olacaktır. İdeal olarak, bu durumda uygulama bağlantıyı iptal etmeli ve istek başarısız olmalıdır.

Sertifika değişikliğini işleme

Bir etki alanı sertifikasının yenilenmesi, genel/özel anahtar çiftini korur, ancak bu her zaman böyle değildir. Ancak güncelleme döngüsünü doğru bir şekilde planlarsanız, son kullanıcılar için kesinti süresini önleyebilirsiniz.

iOS SSL sertifikası web sitesinde etkinleştirilmeden önce, o anda etkin olan sertifikaya ek olarak uygulamada sabitlemeli ve ardından bir güncelleme yayınlamalısınız. Appinventiv'de güvenli bir iOS uygulaması yapmak için bu adımı uyguladığımızda , yeni sertifika ile geçici olarak hızlı bir test gerçekleştiriyor ve her iki sertifikayı da sabitleyerek uygulamayı test ediyoruz.

iOS Uygulamalarında SSL Sabitleme Hakkında SSS

1. Bir iOS uygulamasında hassas veriler nerede saklanır?

Uygulamanın hassas verileri, uygun şifrelemeden sonra her zaman iOS'ta iCloud veya Anahtarlık'ta veya hatta veritabanında saklanmalıdır.

2. SSL nasıl çalışır?

SSL Sabitleme, en yaygın iOS uygulaması güvenlik ipuçlarından biridir . Ancak bunun ne anlama geldiğini anlamak için önce SSL'nin nasıl çalıştığını bilmeniz gerekir.

  • Bir tarayıcı, SSL ile korunan bir web sitesine bağlanmaya çalışır. Tarayıcı daha sonra web sunucusundan kendisini tanımlamasını ister.
  • Web sunucusu daha sonra tarayıcıya SSL sertifika kopyasını gönderir.
  • Tarayıcı, SSL sertifikasına güvenilmesi gerekip gerekmediğini kontrol eder. Mümkünse, web sunucusuna bir mesaj gönderilir.
  • Web sunucusu daha sonra SSL şifreli oturumu başlatmak için bir onay gönderir.
  • Şifrelenmiş veriler daha sonra tarayıcı ve web sunucusu arasında paylaşılır.

Biten Düşünceler

SSL sabitleme güvenli kabul edilse ve şifreleme gerektiğinde yaygın olarak kullanılsa da, yüksek riskli uygulamalar oluştururken başka bir koruma katmanı her zaman memnuniyetle karşılanır. SSL sabitleme, SSL güven doğrulama zincirinin üstünde sunucunun kimliğini doğrulamanıza olanak tanır.

SSL sabitleme ile, SSL sertifikasını yerel paketimize kaydettiğimiz belirlenmiş sunucuya sahip olanlar dışındaki tüm bağlantıları reddedebilirsiniz. Bunun olası bir dezavantajı, sunucunun SSL anahtarı her değiştirildiğinde uygulamayı güncellemeniz gerekmesidir.

Ayrıca SSL sabitlemeli bir iOS uygulaması başlatmayı planlıyorsanız, en iyi iOS uygulama geliştirme şirketine danışmak iyi bir başlangıç ​​olabilir .