Android'de Certificate Pinning Nasıl Uygulanır?

0 Ответы 3 Просмотры
·
Участники
Автор темы #1
Android'de Certificate Pinning Nasıl Uygulanır?

Güvenlik açısından mobil uygulamalarda SSL/TLS kullanımı oldukça kritik olsa da, man-in-the-middle (MITM) saldırılarına karşı ek önlemler almak gerekebilir. Bunlardan biri de certificate pinning (sertifika sabitleme) uygulamasıdır. Bu teknik, uygulamanın belirli bir sunucu sertifikasıyla sınırlandırılmasını sağlar, böylece sahte veya değiştirilmiş sertifikalara karşı koruma sağlar.

İlk aşamada, sertifikanın veya sertifika imzalama zincirinin belirli bir parçasını uygulamaya gömmek gerekir. Bu işlem, sertifikanın veya onun public key'inin hash'ini elde edip, bu değeri kodda saklamayı içerir. Android'de buna en uygun yöntemlerden biri, OkHttp kütüphanesiyle birlikte Certificate Pinner kullanmaktır.

Örneğin, OkHttp'de certificate pinning şöyle gerçekleştirilir:

  1. Sertifika veya public key hash'ini alın. (Örneğin, sha256/ ile başlayan hash)


  1. Pinner nesnesi oluşturun:


CODE
val hostname = "www.orneksite.com"
val certificatePinner = CertificatePinner.Builder()
.add(hostname, "sha256/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=")
.build()

  1. OkHttpClient yapılandırmasını yaparken bu pinner'ı ekleyin:


CODE
val client = OkHttpClient.Builder()
.certificatePinner(certificatePinner)
.build()

Bu yapılandırma, sadece belirttiğiniz sertifika veya public key hash'ine sahip sunucularla iletişime izin verir. Sertifika değiştiğinde, hash güncellenmediği sürece bağlantı reddedilir ve bu da güvenliği önemli ölçüde artırır.

Alternatif olarak, Android'in Network Security Config özelliğiyle de sertifika pinning yapılabilir. Bu yöntem, XML tabanlı yapılandırma sağlar ve daha kolay yönetilebilir. Ancak, bu yöntemde de sertifika veya public key hash'lerini önceden belirlemeniz gerekir.

Sonuç olarak, certificate pinning uygularken, sertifikanın düzenli olarak güncellenmesi veya yenilenmesi gerektiğini unutmamak önemli. Aksi takdirde, sertifika yenilendiğinde uygulama bağlantı kuramayabilir. Ayrıca, bu düzenlemelerin uygulama güncellemeleriyle uyumlu olması için planlama yapmak gerekir.

Bu teknik, uygulama güvenliğinizi önemli ölçüde artırırken, dikkatli uygulama ve yönetim gerektirir.

Чтобы ответить, необходимо войти в систему.

0 цитат выбрано