Aktarım Katmanı Güvenliği (TLS) 1.2
Uygulama ağ iletişimlerinin güvenli olduğundan emin olmak için Aktarım Katmanı Güvenliği'nin (TLS) en son sürümünü kullanmak önemlidir.
Uyarı
Nisan 2018 – PCI uyumluluğu da dahil olmak üzere artan güvenlik gereksinimleri nedeniyle, büyük bulut sağlayıcılarının ve web sunucularının 1.2'den eski TLS sürümlerini desteklemeyi durdurması bekleniyor. Visual Studio'nun önceki sürümlerinde oluşturulan Xamarin projeleri varsayılan olarak TLS'nin eski sürümlerini kullanır.
Uygulamalarınızın bu sunucu ve hizmetlerle çalışmaya devam etmesini sağlamak için Xamarin projelerinizi aşağıdaki ayarları kullanacak şekilde güncelleştirmeniz, ardından uygulamalarınızı yeniden oluşturup kullanıcılarınıza yeniden dağıtmanız gerekir.
Projelerin System.Net.Http derlemesine başvurması ve aşağıda gösterildiği gibi yapılandırılması gerekir.
Xamarin.Android'i TLS 1.2'ye güncelleştirme
TLS 1.2 güvenliğini etkinleştirmek için HttpClient uygulamasını ve SSL/TLS uygulama seçeneklerini güncelleştirin.
Not
Android 5.0 veya üzerini gerektirir.
Bu ayarlar, Proje Özellikleri > Android Seçenekleri'nde ve ardından Gelişmiş düğmesine tıklayarak bulunabilir:
Xamarin.iOS'yi TLS 1.2'ye güncelleştirme
TSL 1.2 güvenliğini etkinleştirmek için HttpClient Uygulaması seçeneğini güncelleştirin.
Bu ayar, Proje Özellikleri > iOS Derlemesi'nde bulunabilir:
Xamarin.Mac'i TLS 1.2'ye güncelleştirme
Mac için Visual Studio bir Xamarin.Mac uygulamasında TLS 1.2'yi etkinleştirmek için, Project Seçenekleri > Mac Derleme Derlemesi'ndeki > HttpClient Uygulaması seçeneğini güncelleştirin:
Uyarı
Yaklaşan Xamarin.Mac 4.8 sürümü yalnızca macOS 10.9 veya sonraki sürümleri destekleyecektir. Xamarin.Mac’in önceki sürümleri macOS 10.7 veya sonraki sürümleri destekler ancak bu eski macOS sürümleri TLS 1.2’yi destekleyecek yeterli TLS altyapısını barındırmaz. macOS 10.7 veya macOS 10.8’i hedeflemek için Xamarin.Mac 4.6 veya önceki sürümleri kullanın.
Alternatif yapılandırma seçenekleri
Bu bölümde, yukarıda gösterilen TLS 1.2 destekli yapılandırmaların alternatifleri açıklanmıştır. Uygulama geliştiricilerinin bu alternatifleri dikkate alması için farklı TLS desteği düzeylerini kullanmanın risklerini anlaması gerekir.
HttpClient uygulaması
Xamarin geliştiricileri her zaman kodlarında yerel ağ sınıflarını kullanabilmiştir, ancak sınıflar tarafından hangi ağ yığınının HttpClient
kullanıldığını belirleyen bir seçenek de vardır. Bu, yerel platformun hız ve güvenlik avantajlarına sahip tanıdık bir .NET API'sini sağlar.
Seçenekler şunlardır:
- Yönetilen yığın – Mono tarafından sağlanan ağ işlevselliği veya
- Yerel yığın – temel platformlar (Android, iOS veya macOS) tarafından sağlanan çeşitli ağ API'leri.
Yönetilen yığın, mevcut .NET koduyla en yüksek uyumluluk düzeyini sağlar, ancak daha yavaş olabilir ve daha büyük yürütülebilir boyuta neden olabilir.
Yerel seçenekler daha hızlı olabilir ve daha iyi güvenliğe (TLS 1.2 dahil) sahip olabilir, ancak sınıfın tüm işlevlerini ve seçeneklerini HttpClient
sağlamayabilir.
SSL/TLS uygulaması (Android)
Android proje seçenekleri, hangi SSL/TLS uygulamasının destekleyebileceğinizi seçmenize de olanak sağlar:
- Mono/Yönetilen – Android'de TLS 1.1
- Yerel – Android'de TLS 1.2.
Yeni Xamarin projeleri varsayılan olarak TLS 1.2'yi destekleyen yerel uygulamadır (tüm projeler için önerilir), ancak uyumluluk nedeniyle gerekirse yönetilen koda geri dönebilirsiniz.
Önemli
Mono/Yönetilen seçeneği iOS ve Mac proje seçeneklerinden kaldırılmıştır.
Yerel seçeneği her zaman iOS ve Mac platformlarında kullanılır.
Platforma özgü ayrıntılar
Yukarıdaki özette, Xamarin Projelerinde HttpClient ve SSL/TLS uygulaması için proje düzeyi ayarları açıklanmaktadır. HttpClient uygulaması kodda dinamik olarak da ayarlanabilir. Daha fazla bilgi için platforma özgü şu kılavuzlara bakın:
Özet
Uygulamalar mümkün olduğunca Aktarım Katmanı Güvenliği (TLS) 1.2 kullanmalıdır. Mevcut uygulamalarda ayarları bu makaledeki yönergelere göre güncelleştirmeli, ardından yeniden oluşturup müşterilerinize yeniden dağıtmalısınız.
İlgili bağlantılar
- Uygulama Aktarım Güvenliği
- Xamarin.Android Ortamı
- Xamarin Döngüsü 9 (Şubat 2017)
- TLS (Vikipedi)
- Mono 4.8 Sürüm Notları - TLS 1.2 Desteği
- BoringSSL
- HttpClient, HttpClientHandler ve WebRequestHandler Açıklandı
- System.Net.HttpClient
- System.Net.HttpClientHandler
- System.Net.HttpMessageHandler
- System.Net.HttpWebRequest
- System.Net.WebClient
- System.Net.WebRequest
- java.net.URL Bağlan ion
- Foundation.CFNetwork
- Foundation.NSUrl Bağlan ion
- System.Net.WebRequest