Skip to the content.

Android Network Security

Android uygulamarda network bağlantımızı güvenli ve gizli tutmak için tüm istekler HTTPS/TLS kanal üzerinden yapılmalı.

Fakat cihazda zararlı yazılımlarla veya farklı yöntemlerle HTTPS trafiğinin arasına girilebiliyor. Bu işlem için cihaza zararlı bir sertifika Certificate Authority (CA) gibi tanımlanıp network trafiği dinlenip arasına girilebiliyor. Yazının devamında bunun nasıl engellenebileceğine dair notlar var.

Araştırma Notları

Ssl pinning için örnek :

<domain-config>
    <domain includeSubdomains="true">my.secure.domain</domain>
    <pin-set expiration="2022-11-17">
        <pin digest="SHA-256">asdaksljdalsdjasdlkjsdlk=</pin>
    </pin-set>
</domain-config>

NOT: network-security-config ile güvenlik desteği android 7 (api 24) ve üzerindeki cihazlar için var.

Uygulama örneği

<network-security-config>
    <base-config cleartextTrafficPermitted="false">
        <trust-anchors>
            <certificates src="@raw/usertrust_ca" />
        </trust-anchors>
    </base-config>
</network-security-config>

Not: Burada base-config yerine domain-config ile sadece kendi endpointimizi tanımlamamız daha sağlıklı, bu sadece uygulamadaki farklı endpointleri (görseller için gidilen cdn’ler vs.) zorlamamış oluruz.

Son olarak da AndroidManifest dosyasında application tag’i içine android:networkSecurityConfig="@xml/network_security_configuration" tanımı yapıyoruz.

Eklemeler

Detaylı bilgi için aşağıdaki dokümanlar da incelenmeli:

REFERENCES
https://developer.android.com/training/articles/security-config.html
https://developer.android.com/codelabs/android-network-security-config

< Go back to Android section