Android Projesinde SSL Pinning Nasıl Yapılır?

20.11.2021
A+
A-
Android Projesinde SSL Pinning Nasıl Yapılır?

Merhaba sevgili Sanal Kaşif okuyucuları. Bu başlığın altında mobil uygulama geliştirirken özellikle kurumsal uygulamalarda çok sık problem haline gelen SSL sertifikasını uygulama ve SSL pinning yapma konularına değineceğiz.
Bildiğiniz gibi mobil geliştirmede en önemli şeylerden biri, uygulama ile sunucu arasındaki güvenli veri alışverişini sağlamaktır. Bunu yapmanın en bilinen yöntemi SSL Pinning (SSL Sabitleme) yöntemidir.

Kısa bir teknik bilgi verdikten sonra yöntemlerimizi anlatmaya başlayacağım.Şu anda, web servislerinin en yaygın mimarisi HTTP tabanlı REST’tir. Bu iletişim modeli için en iyi koruma yöntemide TLS/SSL standardıdır. HTTP adı verilen şifreli bir değişken oluşturmak için HTTP protokolü ile birleştirilebilir. HTTP’ler, istemci uygulamaları ve sunucu arasında güvenli, şifreli iletişim kanalları sağlar.Geliştiricilerin daha güvenli bir iletişim sağlaması için HTTPS standardı geliştirildi. Ancak yeterince iyi bir güvenlik sağlayamadığı için pinning işleminin önemi arttı.

 

ssl_sanal

PEKİ NEDEN SSL PINNING UYGULANMALI ?

HTTPS isteklerinde sertifika olup olmadığı sorgulanıyor. Ancak uygulama sunucu tarafından verilen her sertifikaya güvenir. Bu, saldırganın kendi sahte sertifikalarını oluşturabileceği anlamına gelir. Sertifikalar daha sonra bilgisayar korsanının şifreli iletişimi engellemesine izin verecektir. Bu tür saldırılara Ortadaki Adam(Man-In-The-Middle) denir. HTTP yapılandırmasını doğru bir şekilde uygulamak için biraz daha fazla zaman ve çaba harcamanızın ana nedeni budur. Uygulama, sunucuyla bağlantı kurarken, parmak izini(finger print) sunucudan alınan bir sertifikayla karşılaştırmalıdır.Parmak izleri aynıysa, bağlantı geçerlidir ve veri aktarımı devam edebilir. Parmak izleri aynı değilse, uygulama, güvenliği ihlal edildiği için bağlantıyı hemen reddetmelidir.

SERTİFİKA SABİTLEMENİN 3 YOLU

1)TrustManager

Android uygulamasının eş tarafından gönderilen kimlik bilgilerini kabul edip etmeyeceğine karar vermekten sorumlu bir bileşendir.

2)OkHttp ve CertificatePinner

OkHttp by Square, Java ve Android için çok popüler bir HTTP istemci kitaplığıdır. Kitaplık, Android – Retrofit’te REST iletişimini yönetmek için en popüler araçlardan biri tarafından kullanılır. OkHttp, ilgili parmak izlerine sahip özel bir oluşturucu kullanarak yalnızca bir CertificatePinner örneği oluşturmayı gerektirdiğinden, Sertifika Sabitleme uygulamasını kolaylaştıran bir mekanizma sağlar. Parmak izlerinin elbette Android uygulamasına sabit kodlanmış olması gerekiyor. Şahsen, derleme işlemi sırasında buildConfigField yöntemini kullanarak bu tür anahtarları enjekte etmeyi tercih ederim. Anahtarları depoda tutmaktan daha esnek ve daha güvenlidir.

Farklı etki alanları için birden fazla parmak izi ekleyebilirsiniz. Birden fazla parmak izi, uygulamanızı daha esnek hale getirecektir. Sertifika yolundan tüm parmak izlerini ekleyebilirsiniz. Eski sertifikaların süresi yakında dolacaksa, ek sertifikalar da ekleyebilirsiniz. Parmak izleri doğrudan sertifikadan alınabilir. Sertifika dosyasını TrustManager örneğinde olduğu gibi kaynaklar klasörüne de aktarabilirsiniz. Bu sefer dosyadan parmak izini çıkaracak bir sınıfı manuel olarak yazmanız gerekiyor. Bunu sizin için yapmak için Peer Certificate Extractor kütüphanesini  de kullanabilirsiniz.

certificate_pinning

3)Network Security Configuration

Android platformu, ağ yapılandırmasını yönetmek için yeni ve kolay bir araç sağlar . Ancak dikkat etmeniz gereken bir durum var ki bu yapu Android 7.0 ve üzerinde çalışmaktadır. . NSC ile, XML dosyalarını kullanarak Android Sertifika Sabitleme de dahil olmak üzere güvenli iletişim yöntemleri bildirebilirsiniz. Yapılandırmayı etkinleştirmek için bir yapılandırma dosyasını Manifest ile bağlamanız gerekir. Bağlamak için uygulama etiketindeki networkSecurityConfig özniteliğini kullanın.  Network Security Config ile ilgili daha fazla bilgi alabilmeniz için buradan yararlanabilirsiniz.

 

Umarım sizin için değerli bilgiler olmuştur. Bir diğer konumuz olan  Mail İmza Nasıl eklenir içeriğine buradan bakabilirsiniz. Keyifli okumalar.

ETİKETLER: , ,
ZİYARETÇİ YORUMLARI - 0 YORUM

Henüz yorum yapılmamış.