Windows Communication Foundation Güvenliğine Genel Bakış
Windows Communication Foundation (WCF), SOAP ileti tabanlı bir dağıtılmış programlama platformudur ve istemciler ve hizmetler arasındaki iletilerin güvenliğini sağlamak, verilerin korunması için gereklidir. WCF, hem mevcut güvenlik altyapısına hem de SOAP iletileri için tanınan güvenlik standartlarına göre güvenli iletiler alışverişi için çok yönlü ve birlikte çalışabilir bir platform sağlar.
WCF, kullanıcıların kimliğini doğrulamak için HTTPS, Windows tümleşik güvenliği veya kullanıcı adları ve parolalar gibi mevcut teknolojilerle güvenli, dağıtılmış uygulamalar oluşturduysanız tanıdık kavramları kullanır. WCF yalnızca mevcut güvenlik altyapılarıyla tümleştirmekle kalmaz, aynı zamanda güvenli SOAP iletileri kullanarak dağıtılmış güvenliği yalnızca Windows etki alanlarının ötesine genişletir. WCF'yi, mevcut protokollere ek olarak SOAP'yi protokol olarak kullanmanın en büyük avantajı olan mevcut güvenlik mekanizmalarının bir uygulaması olarak düşünün. Örneğin, kullanıcı adı ve parola veya X.509 sertifikaları gibi bir istemciyi veya hizmeti tanımlayan kimlik bilgileri birlikte çalışabilir XML tabanlı SOAP profillerine sahiptir. Bu profiller kullanılarak, XML dijital imzaları ve XML şifrelemesi gibi açık belirtimlerden yararlanılarak iletiler güvenli bir şekilde değiştirilir. Belirtimlerin listesi için bkz . Sistem Tarafından Sağlanan Birlikte Çalışabilirlik Bağlamaları Tarafından Desteklenen Web Hizmetleri Protokolleri.
Diğer bir paralel, güvenli, dağıtılmış uygulamaları etkinleştiren Windows platformundaki Bileşen Nesne Modeli'dir (COM). COM, bileşenler arasında güvenlik bağlamı akışının yapılabildiği kapsamlı bir güvenlik mekanizmasına sahiptir; bu mekanizma bütünlük, gizlilik ve kimlik doğrulaması uygular. Ancak COM, WCF gibi platformlar arası ve güvenli mesajlaşmayı etkinleştirmez. WCF kullanarak, İnternet üzerinden Windows etki alanlarından yayılan hizmetler ve istemciler oluşturabilirsiniz. WCF'nin birlikte çalışabilen iletileri, bilgilerinizin güvenliğinden emin olmanıza yardımcı olan dinamik, iş odaklı hizmetler oluşturmak için gereklidir.
Windows Communication Foundation Güvenlik Avantajları
WCF, SOAP iletilerini temel alan dağıtılmış bir programlama platformudur. WCF kullanarak, sınırsız sayıda diğer hizmet ve istemciden ileti oluşturup işleyip hem hizmetler hem de hizmet istemcileri olarak işlev görecek uygulamalar oluşturabilirsiniz. Böyle bir dağıtılmış uygulamada iletiler düğümden düğüme, güvenlik duvarları aracılığıyla, İnternet'e ve çok sayıda SOAP aracı aracılığıyla akabilir. Bu, çeşitli ileti güvenliği tehditlerini tanıtır. Aşağıdaki örneklerde, WCF güvenliğinin varlıklar arasında ileti alışverişinde azaltmaya yardımcı olabileceği bazı yaygın tehditler gösterilmektedir:
Hassas bilgileri almak için ağ trafiğinin gözlemlenmesi. Örneğin, bir çevrimiçi bankacılık senaryosunda müşteri bir hesaptan diğerine fon aktarımını talep eder. Kötü amaçlı bir kullanıcı iletiye müdahale eder ve hesap numarası ve parolaya sahip olarak, güvenliği aşılmış hesaptan bir fon aktarımı gerçekleştirir.
İstemcinin farkında olmadan hizmet olarak davranan sahte varlıklar. Bu senaryoda, kötü amaçlı bir kullanıcı (düzenbaz) çevrimiçi bir hizmet görevi görür ve hassas bilgileri almak için istemciden gelen iletileri durdurur. Ardından düzenbaz, çalınan verileri kullanarak güvenliği aşılmış hesaptan fon aktarır. Bu saldırı kimlik avı saldırısı olarak da bilinir.
Arayandan farklı bir sonuç elde etmek için iletilerin değiştirilmesi. Örneğin, bir depozitonun yapıldığı hesap numarasını değiştirmek, fonların sahte bir hesaba gitmesine izin verir.
Hacker, bir rahatsız edici korsanın aynı satın alma siparişini yeniden oynatıldığı yeniden oynatıyor. Örneğin, çevrimiçi bir kitapçı yüzlerce sipariş alır ve kitapları sipariş etmeyen bir müşteriye gönderir.
Bir hizmetin istemcinin kimliğini doğrulayamama. Bu durumda hizmet, uygun kişinin işlemi gerçekleştirdiğinden emin olamaz.
Özetle, aktarım güvenliği aşağıdaki güvenceleri sağlar:
Hizmet uç noktası (yanıtlayan) kimlik doğrulaması.
İstemci sorumlusu (başlatıcı) kimlik doğrulaması.
İleti bütünlüğü.
İleti gizliliği.
Yeniden yürütme algılama.
Mevcut Güvenlik Altyapılarıyla Tümleştirme
Web hizmeti dağıtımlarında genellikle Güvenli Yuva Katmanı (SSL) veya Kerberos protokolü gibi mevcut güvenlik çözümleri bulunur. Bazıları, Active Directory kullanan Windows etki alanları gibi önceden dağıtılmış bir güvenlik altyapısından yararlanır. Yeni teknolojileri değerlendirirken ve benimserken bu mevcut teknolojilerle tümleştirmek genellikle gereklidir.
WCF güvenliği mevcut aktarım güvenliği modelleriyle tümleşir ve SOAP ileti güvenliğine dayalı daha yeni aktarım güvenliği modelleri için mevcut altyapıdan yararlanabilir.
Mevcut Kimlik Doğrulama Modelleriyle Tümleştirme
İletişim güvenlik modellerinin önemli bir parçası, iletişimdeki varlıkları tanımlama ve kimlik doğrulaması yapma yeteneğidir. İletişimdeki bu varlıklar, iletişimde bulunan eşlerle kimliklerini doğrulamak için "dijital kimlikler" veya kimlik bilgileri kullanır. Dağıtılmış iletişim platformları geliştikçe, çeşitli kimlik bilgileri kimlik doğrulaması ve ilgili güvenlik modelleri uygulanmıştır. Örneğin, İnternet'te, kullanıcıları tanımlamak için kullanıcı adı ve parola kullanımı yaygındır. İntranet'te, kullanıcı ve hizmet kimlik doğrulamasını yedeklemek için Kerberos etki alanı denetleyicisi kullanımı yaygın hale gelmektedir. İki iş ortağı arasında olduğu gibi belirli senaryolarda, iş ortaklarının kimliğini karşılıklı olarak doğrulamak için sertifikalar kullanılabilir.
Bu nedenle, aynı hizmetin hem şirket içi müşterilere hem de dış iş ortaklarına veya İnternet müşterilerine açık olabileceği Web hizmetleri dünyasında, altyapının bu mevcut güvenlik kimlik doğrulama modelleriyle tümleştirme sağlaması önemlidir. WCF güvenliği, aşağıdakiler dahil olmak üzere çok çeşitli kimlik bilgisi türlerini (kimlik doğrulama modelleri) destekler:
Anonim arayan.
Kullanıcı adı istemci kimlik bilgileri.
Sertifika istemcisi kimlik bilgileri.
Windows (hem Kerberos protokolü hem de NT LanMan [NTLM]).
Standartlar ve Birlikte Çalışabilirlik
Büyük dağıtımların olduğu bir dünyada homojenlik nadirdir. Dağıtılmış bilgi işlem/iletişim platformlarının farklı satıcıların sunduğu teknolojilerle birlikte çalışabilmesi gerekir. Benzer şekilde, güvenlik de birlikte çalışabilir olmalıdır.
Birlikte çalışabilen güvenlik sistemlerini etkinleştirmek için Web hizmetleri sektöründe etkin olan şirketler çeşitli standartlar yazmaktadır. Özellikle güvenlikle ilgili olarak, bazı önemli standartlar önerilmiştir: WS-Security: SOAP İleti Güvenliği (OASIS standartları gövdesi tarafından kabul edilen ve eski adıyla WS-Security), WS-Trust, WS-SecureConversation ve WS-SecurityPolicy.
WCF çok çeşitli birlikte çalışabilirlik senaryolarını destekler. BasicHttpBinding sınıfı Temel Güvenlik Profili'ne (BSP) ve WSHttpBinding sınıf ise WS-Security 1.1 ve WS-SecureConversation gibi en son güvenlik standartlarına hedeflenmiştir. WCF güvenliği, bu standartlara bağlı olarak Microsoft Windows dışındaki işletim sistemlerinde ve platformlarda barındırılan Web hizmetleriyle birlikte çalışabilir ve tümleştirebilir.
WCF Güvenlik İşlevsel Alanları
WCF güvenliği üç işlevsel alana ayrılır: güvenliği aktarma, erişim denetimi ve denetim. Aşağıdaki bölümlerde bu alanlar kısaca ele alınmaktadır ve daha fazla bilgi için bağlantılar sağlanmaktadır.
Aktarım Güvenliği
Aktarım güvenliği üç ana güvenlik işlevini kapsar: bütünlük, gizlilik ve kimlik doğrulaması. Bütünlük , bir iletinin üzerinde oynanıp oynanmadığını algılama özelliğidir. Gizlilik , bir iletiyi hedeflenen alıcı dışındaki herkes tarafından okunamaz durumda tutma özelliğidir; bu, şifreleme yoluyla sağlanır. Kimlik doğrulaması , talep edilen bir kimliği doğrulama özelliğidir. Bu üç işlev birlikte iletilerin bir noktadan diğerine güvenli bir şekilde ulaşmasını sağlamaya yardımcı olur.
Aktarım ve İleti Güvenlik Modları
WCF'de aktarım güvenliğini uygulamak için iki ana mekanizma kullanılır: aktarım güvenlik modu ve ileti güvenliği modu.
Aktarım güvenliği modu , aktarım güvenliğini sağlamak için HTTPS gibi aktarım düzeyi bir protokol kullanır. Aktarım modu, yaygın olarak benimsenme, birçok platformda kullanılabilir ve daha az hesaplama açısından karmaşık olma avantajına sahiptir. Ancak, iletileri yalnızca noktadan noktaya güvenli hale getirme dezavantajı vardır.
İleti güvenlik modu ise aktarım güvenliğini uygulamak için WS-Security (ve diğer belirtimler) kullanır. İleti güvenliği doğrudan SOAP iletilerine uygulandığından ve UYGULAMA verileriyle birlikte SOAP zarflarının içinde bulunduğundan, aktarım protokolünden bağımsız, daha genişletilebilir olma ve uçtan uca güvenlik sağlama (noktadan noktaya karşı); SOAP iletilerinin XML yapısıyla ilgilenmesi gerektiğinden aktarım güvenliği modundan birkaç kat daha yavaş olmanın dezavantajı vardır.
Bu farklılıklar hakkında daha fazla bilgi için bkz . Hizmetlerin ve İstemcilerin Güvenliğini Sağlama.
Üçüncü bir güvenlik modu hem önceki modları kullanır hem de her ikisinin avantajlarını getirir. Bu mod olarak adlandırılır TransportWithMessageCredential
. Bu modda, istemcinin kimliğini doğrulamak için ileti güvenliği, sunucunun kimliğini doğrulamak ve ileti gizliliği ile bütünlüğü sağlamak için aktarım güvenliği kullanılır. Bu sayede güvenlik modu aktarım TransportWithMessageCredential
güvenliği modu kadar hızlıdır ve ileti güvenliğiyle aynı şekilde istemci kimlik doğrulaması genişletilebilirliği sağlar. Ancak, ileti güvenlik modundan farklı olarak tam uçtan uca güvenlik sağlamaz.
Erişim Denetimi
Erişim denetimi yetkilendirme olarak da bilinir. Yetkilendirme , farklı kullanıcıların verileri görüntüleme ayrıcalıklarına sahip olmasını sağlar. Örneğin, bir şirketin insan kaynakları dosyaları hassas çalışan verileri içerdiği için yalnızca yöneticilerin çalışan verilerini görüntülemesine izin verilir. Ayrıca yöneticiler yalnızca doğrudan raporlarına ilişkin verileri görüntüleyebilir. Bu durumda, erişim denetimi hem rolü ("yönetici") hem de yöneticinin belirli kimliğini temel alır (bir yöneticinin başka bir yöneticinin çalışan kayıtlarına bakmasını önlemek için).
WCF'de erişim denetimi özellikleri ortak dil çalışma zamanı (CLR) PrincipalPermissionAttribute ile tümleştirme ve kimlik modeli olarak bilinen bir DIZI API aracılığıyla sağlanır. Erişim denetimi ve talep tabanlı yetkilendirme hakkında ayrıntılı bilgi için bkz . Güvenliği Genişletme.
Denetim
Denetim , güvenlik olaylarının Windows olay günlüğüne kaydedilmesidir. Kimlik doğrulama hataları (veya başarılar) gibi güvenlikle ilgili olayları günlüğe kaydedebilirsiniz. Daha fazla bilgi için bkz . Denetim. Programlama ayrıntıları için bkz . Nasıl yapılır: Güvenlik Olaylarını Denetleme.
Ayrıca bkz.
- PrincipalPermissionAttribute
- Hizmetleri Güvenli Hale Getirme
- Ortak Güvenlik Senaryoları
- Bağlamalar ve Güvenlik
- Hizmet ve İstemcileri Güvenli Hale Getirme
- Kimlik Doğrulaması
- Yetkilendirme
- Federasyon ve Verilen Belirteçler
- Denetim
- Güvenlik Kılavuzu ve En İyi Uygulamalar
- Yapılandırma Dosyalarını Kullanarak Hizmetleri Yapılandırma
- Sistem Tarafından Sağlanan Bağlamalar
- Uç Nokta Oluşturmaya Genel Bakış
- Güvenliği Genişletme
- Windows Server App Fabric için Güvenlik Modeli