Certificate pinning
- React Native kursu
- Uzman
- Ders 39/47
- 5 dk
Certificate pinning öğrenirsin.
Certificate pinning nedir?
Certificate pinning, uygulamanın yalnızca belirli SSL sertifikalarına güvenmesidir. Normalde cihazın sertifika deposuna güvenilir; ama bu, man-in-the-middle (MITM) saldırılarına açıktır. Pinning ile uygulama yalnızca senin sunucunun sertifikasını kabul eder.
React Native'de TrustKit (iOS) ve Network Security Config (Android) ile yapılır. Bir sertifika parmak izi (SHA-256) koda gömülür. Sunucu bu parmak izini taşıyorsa istek geçer; değilse reddedilir. Bu, birinin araya girip trafiği dinlemesini engeller. Pin güncellenmezse sertifika yenilendiğinde uygulama çalışmaz; bu yüzden yedek pin de vermek iyi bir uygulamadır.
network security config
Android'de pinning network_security_config.xml ile yapılır. Bu dosya bir domain ve bir ya da daha fazla pin tanımlar. Pin, sertifikanın SHA-256 parmak izidir.
Örnek iskelet: <domain-config><domain includeSubdomains="true">api.example.com</domain><pin-set><pin digest="SHA-256">...</pin></pin-set></domain-config>. includeSubdomains alt domainleri de kapsar. pin-set içinde birden fazla pin verilirse yedek pin olarak kullanılır. Bu dosya AndroidManifest.xml'de android:networkSecurityConfig özniteliğiyle bağlanır.
Uygulama Pin yapılandırması yaz
Bir network_security_config.xml iskeleti yaz. Kök <network-security-config> etiketi olsun. İçinde bir <domain-config>, onun içinde bir <pin-set> ve bir <pin> etiketi bulunsun. <pin> etiketi digest="SHA-256" özniteliği taşısın.
Başlangıç kodu
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<!-- domain-config, pin-set ve pin etiketlerini buraya ekle -->
</network-security-config>Örnek çözüm
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config>
<domain includeSubdomains="true">api.example.com</domain>
<pin-set>
<pin digest="SHA-256">abcdef1234567890</pin>
</pin-set>
</domain-config>
</network-security-config>Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Pinning algoritması
"pinningAlgorithm": "____"
"pinningAlgorithm": "sha256"
Açıklama: sha256 pinning için yaygın algoritmadır.
2 Certificate pinning neyi engeller?
MITM attack- Man-in-the-middle saldırısı Doğru cevap
- Bellek sızıntısı
- Pil tüketimi
- Ekran görüntüsü
Açıklama: Pinning araya giren dinleyiciyi engeller.
3 Parçayı rolüne eşle
| Kavram | Anlamı |
|---|---|
pin-set |
Pin kümesi |
SHA-256 |
Parmak izi |
domain-config |
Domain bölümü |
TrustKit |
iOS pinning |