Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, ClickOnce bildirimleri de dahil olmak üzere .NET tarafından desteklenen şifreleme yöntemlerine ve uygulamalarına genel bir bakış sağlanır.
Şifrelemeye giriş
İnternet gibi genel ağlar varlıklar arasında güvenli bir iletişim aracı sağlamaz. Bu tür ağlar üzerinden iletişim, yetkisiz üçüncü taraflarca okunmaya, hatta değiştirilmeye açıktır. Şifreleme, verilerin görüntülenmeye karşı korunmasına yardımcı olur, verilerin değiştirilip değiştirilmediğini algılamanın yollarını sağlar ve güvenli olmayan kanallar üzerinden güvenli bir iletişim yolu sağlamaya yardımcı olur. Örneğin veriler şifreleme algoritması kullanılarak şifrelenebilir, şifrelenmiş durumda iletilebilir ve daha sonra amaçlanan taraf tarafından şifresi çözülebilir. Bir üçüncü taraf şifrelenmiş verileri durdurursa, şifreyi çözmek zor olacaktır.
.NET'te, ad alanı içindeki System.Security.Cryptography sınıflar sizin için birçok şifreleme ayrıntısını yönetir. Bazıları işletim sistemi uygulamalarına yönelik sarmalayıcılardır, diğerleri ise tamamen yönetilen uygulamalardır. Bu sınıfları kullanmak için şifreleme uzmanı olmanız gerekmez. Şifreleme algoritması sınıflarından birinin yeni bir örneğini oluşturduğunuzda, anahtarlar kullanım kolaylığı için otomatik olarak oluşturulur ve varsayılan özellikler mümkün olduğunca güvenli ve güvenlidir.
Şifreleme temelleri
Şifrelemenin kullanıldığı tipik bir durumda, iki taraf (Alice ve Bob) güvenli olmayan bir kanal üzerinden iletişim kurar. Alice ve Bob, dinleyen herkes tarafından iletişimlerinin anlaşılmaz kalmasını sağlamak ister. Ayrıca, Alice ve Bob uzak konumlarda olduğundan, Alice'in Bob'dan aldığı bilgilerin iletim sırasında hiç kimse tarafından değiştirilmediğinden emin olması gerekir. Buna ek olarak, bilgilerin Bob'un kimliğine bürünen birinden değil, Bob'dan kaynaklandığından emin olmalıdır.
Şifreleme, aşağıdaki hedeflere ulaşmak için kullanılır:
Gizlilik: Kullanıcının kimliğinin veya verilerinin okunmasını engellemeye yardımcı olmak için.
Veri bütünlüğü: Verilerin değiştirilmesini engellemeye yardımcı olmak için.
Kimlik doğrulaması: Verilerin belirli bir tarafa ait olduğundan emin olmak için.
Reddedilemezlik: Belirli bir tarafın mesajı gönderdiğini inkâr etmemesini sağlamak.
Bu hedeflere ulaşmak için şifreleme ilkelleri olarak bilinen algoritma ve uygulamaların birleşimini kullanarak bir şifreleme şeması oluşturabilirsiniz. Aşağıdaki tabloda şifreleme temelleri ve kullanımları listelemektedir.
Şifreleme ilkel | Kullan |
---|---|
Gizli anahtar şifrelemesi (simetrik şifreleme) | Veriler üzerinde, üçüncü taraflar tarafından okunmasını engellemeye yönelik bir dönüşüm gerçekleştirir. Bu şifreleme türü, verileri şifrelemek ve şifresini çözmek için tek bir paylaşılan gizli anahtar kullanır. |
Ortak anahtar şifrelemesi (asimetrik şifreleme) | Veriler üzerinde, üçüncü taraflar tarafından okunmasını engellemeye yönelik bir dönüşüm gerçekleştirir. Bu şifreleme türü, verileri şifrelemek ve şifresini çözmek için ortak/özel anahtar çifti kullanır. |
Şifreleme imzalama | Bu taraf için benzersiz bir dijital imza oluşturarak verilerin belirli bir taraftan geldiğini doğrulamaya yardımcı olur. Bu işlem karma işlevleri de kullanır. |
Şifreleme karmaları | Verileri herhangi bir uzunluktan sabit uzunlukta bir bayt dizisine eşler. Karmalar istatistiksel olarak benzersizdir; farklı bir iki baytlık dizi aynı değerle karma oluşturmaz. |
Secret-Key Şifrelemesi
Gizli anahtar şifreleme algoritmaları, verileri şifrelemek ve şifresini çözmek için tek bir gizli anahtar kullanır. Anahtara sahip olan yetkisiz kişilerin erişimini engellemelisiniz, çünkü anahtara sahip herhangi bir taraf verilerinizi şifre çözme veya kendi verilerini şifreleme kapasitesine sahip olabilir ve böylece bilgilerin sizden geldiğini iddia edebilirler.
Şifreleme ve şifre çözme için aynı anahtar kullanıldığından gizli anahtar şifrelemesi simetrik şifreleme olarak da adlandırılır. Gizli anahtar şifreleme algoritmaları çok hızlıdır (ortak anahtar algoritmalarıyla karşılaştırıldığında) ve büyük veri akışlarında şifreleme dönüştürmeleri gerçekleştirmek için uygundur. RSA gibi asimetrik şifreleme algoritmaları, ne kadar veriyi şifreleyebileceği konusunda matematiksel olarak sınırlıdır. Simetrik şifreleme algoritmalarında genellikle bu sorunlar yoktur.
Blok şifrelemesi adı verilen gizli anahtar algoritması türü, bir kerede bir veri bloğunu şifrelemek için kullanılır. Blok şifreleme yöntemleri veri Şifreleme Standardı (DES), TripleDES ve Gelişmiş Şifreleme Standardı (AES) gibi n baytlık bir giriş bloğunu şifrelenmiş baytlardan oluşan bir çıkış bloğuna dönüştürür. Bir bayt dizisini şifrelemek veya şifresini çözmek istiyorsanız, bunu blok blok yapmanız gerekir. n küçük olduğundan (DES ve TripleDES için 8 bayt; 16 bayt [varsayılan], 24 bayt veya AES için 32 bayt), n'den büyük veri değerlerinin bir seferde bir blok şifrelenmesi gerekir. n'den küçük olan veri değerlerinin işlenebilmesi için n olarak genişletilmesi gerekir.
Blok şifrelemesinin basit bir biçimi elektronik kod defteri (ECB) modu olarak adlandırılır. ECB modu, ilk düz metin bloğunu başlatmak için bir başlatma vektöru kullanmadığından güvenli olarak kabul edilmez. Belirli bir gizli anahtar k için, başlatma vektörünün kullanılmadığı basit bir blok şifrelemesi, aynı düz metin giriş bloğunu aynı şifreleme metni çıkış bloğuna şifreler. Bu nedenle, giriş düz metin akışınızda yinelenen bloklarınız varsa, çıkış şifreleme metni akışınızda yinelenen bloklar olur. Bu yinelenen çıkış blokları, yetkisiz kullanıcıları kullanılan veya kullanılabilecek algoritmaların zayıf şifrelemesine ve olası saldırı yöntemlerine karşı uyarır. Bu nedenle ECB şifreleme modu analize ve nihai olarak anahtar bulmaya karşı oldukça savunmasızdır.
Temel sınıf kitaplığında sağlanan blok şifreleme sınıfları, şifreleme bloğu zincirleme (CBC) adlı varsayılan bir zincirleme modu kullanır, ancak isterseniz bu varsayılanı değiştirebilirsiniz.
CBC şifreleri, ilk düz metin bloğunu şifrelemek için bir başlatma vektör (IV) kullanarak ECB şifreleriyle ilişkili sorunların üstesinden gelir. Sonraki her düz metin bloğu, şifrelenmeden önce önceki şifreleme metni bloğuyla bit düzeyinde özel VEYA (XOR
) işlemine tabi tutulur. Bu nedenle her şifreleme metni bloğu önceki tüm bloklara bağlıdır. Bu sistem kullanıldığında, ortak olarak bilinen ileti üst bilgileri yetkisiz bir kullanıcı tarafından bir anahtarı tersine mühendislik uygulamak için kullanılamaz.
CBC şifrelemesi ile şifrelenen verilerin güvenliğini aşmanın bir yolu, olası tüm anahtarlarda kapsamlı bir arama yapmaktır. Şifreleme gerçekleştirmek için kullanılan anahtarın boyutuna bağlı olarak, bu tür aramalar en hızlı bilgisayarları bile kullanarak çok zaman alır ve bu nedenle mümkün değildir. Daha büyük anahtar boyutlarının deşifre edilmesi daha zordur. Şifreleme, bir saldırganın şifrelenmiş verileri almasını teorik olarak imkansız hale getirmese de, bunu yapmanın maliyetini yükseltir. Yalnızca birkaç gün boyunca anlamlı olan verileri almak için kapsamlı bir arama yapmak üç ay sürerse, kapsamlı arama yöntemi pratik değildir.
Gizli anahtar şifrelemesinin dezavantajı, iki tarafın bir anahtar ve IV üzerinde anlaştığını ve değerlerini bildirdiğini varsayıyor olmasıdır. IV bir gizli bilgi olarak kabul edilmez ve mesajla birlikte düz metin olarak iletilebilir. Ancak anahtarın yetkisiz kullanıcılardan gizli tutulması gerekir. Bu sorunlar nedeniyle gizli anahtar şifrelemesi genellikle anahtar ve IV değerlerini özel olarak iletmek için ortak anahtar şifrelemesi ile birlikte kullanılır.
Alice ve Bob'ın güvenli olmayan bir kanal üzerinden iletişim kurmak isteyen iki taraf olduğunu varsayarsak, gizli anahtar şifrelemesini şu şekilde kullanabilirler: Alice ve Bob belirli bir anahtar ve IV ile belirli bir algoritmayı (örneğin AES) kullanmayı kabul eder. Alice bir ileti oluşturur ve iletinin gönderildiği bir ağ akışı (adlandırılmış kanal veya ağ e-postası olabilir) oluşturur. Ardından, anahtarı ve IV'yi kullanarak metni şifreler ve şifrelenmiş iletiyi ve IV'yi intranet üzerinden Bob'a gönderir. Bob şifrelenmiş metni alır ve IV ve daha önce üzerinde anlaşmaya varılan anahtarı kullanarak şifresini çözer. İletim engellenirse, dinleyen kişi anahtarı bilmediğinden özgün iletiyi kurtaramaz. Bu senaryoda yalnızca anahtarın gizli kalması gerekir. Gerçek bir dünya senaryosunda Alice veya Bob bir gizli anahtar oluşturur ve gizli anahtarı (simetrik) diğer tarafa aktarmak için ortak anahtar (asimetrik) şifreleme kullanır. Ortak anahtar şifrelemesi hakkında daha fazla bilgi için sonraki bölüme bakın.
.NET, gizli anahtar şifreleme algoritmaları uygulayan aşağıdaki sınıfları sağlar:
HMACSHA256, HMACSHA384 ve HMACSHA512. (Bunlar teknik olarak gizli anahtar algoritmalarıdır çünkü gizli anahtarla birlikte şifreleme karma işlevi kullanılarak hesaplanan ileti kimlik doğrulama kodlarını temsil eder. Bu makalenin devamında yer alan Karma Değerler'e bakın.)
Public-Key Şifrelemesi
Ortak anahtar şifrelemesi, yetkisiz kullanıcılardan gizli tutulması gereken bir özel anahtar ve herkese açık hale getirilebilen bir ortak anahtar kullanır. Ortak anahtar ve özel anahtar matematiksel olarak bağlantılıdır; ortak anahtarla şifrelenen verilerin şifresi yalnızca özel anahtarla çözülebilir ve özel anahtarla imzalanan veriler yalnızca ortak anahtarla doğrulanabilir. Ortak anahtar herkesin kullanımına sunulabiliyor; özel anahtarın bekçisine gönderilecek verileri şifrelemek için kullanılır. Verileri şifrelemek için bir anahtar ve verilerin şifresini çözmek için başka bir anahtar gerektiğinden ortak anahtar şifreleme algoritmaları asimetrik algoritmalar olarak da bilinir. Temel bir şifreleme kuralı anahtarın yeniden kullanılmasını engeller ve her iki anahtar da her iletişim oturumu için benzersiz olmalıdır. Ancak uygulamada asimetrik anahtarlar genellikle uzun ömürlüdür.
İki taraf (Alice ve Bob) ortak anahtar şifrelemesini şu şekilde kullanabilir: İlk olarak, Alice bir ortak/özel anahtar çifti oluşturur. Bob, Alice'e şifreli bir ileti göndermek istiyorsa, ondan ortak anahtarını ister. Alice, Güvenli olmayan bir ağ üzerinden Bob'a ortak anahtarını gönderir ve Bob, iletiyi şifrelemek için bu anahtarı kullanır. Bob şifrelenmiş iletiyi Alice'e gönderir ve özel anahtarını kullanarak şifresini çözer. Bob, genel ağ gibi güvenli olmayan bir kanal üzerinden Alice'in anahtarını aldıysa ortadaki adam saldırısına açıktır. Bu nedenle Bob, Alice'e ortak anahtarının doğru bir kopyasına sahip olduğunu doğrulamalıdır.
Alice'in ortak anahtarının iletilmesi sırasında yetkisiz bir kişi anahtarı ele geçirebilir. Ayrıca, aynı aracı Bob'dan gelen şifrelenmiş mesajı ele geçirebilir. Ancak ajan, iletinin şifresini açık anahtarla çözemez. Mesaj yalnızca Alice'in iletilmeyen özel anahtarı ile çözülebilir. Ortak anahtara sahip olan herkes iletinin şifresini çözebildiğinden Alice, Bob'a bir yanıt iletisini şifrelemek için özel anahtarını kullanmaz. Alice, Bob'a bir ileti göndermek isterse, Bob'dan ortak anahtarını ister ve bu ortak anahtarı kullanarak iletisini şifreler. Ardından Bob, ilişkili özel anahtarını kullanarak iletinin şifresini çözer.
Bu senaryoda, Alice ve Bob bir gizli anahtarı (simetrik) aktarmak için ortak anahtar (asimetrik) şifreleme kullanır ve oturumlarının geri kalanında gizli anahtar şifrelemesi kullanır.
Aşağıdaki liste ortak anahtar ile gizli anahtar şifreleme algoritmaları arasında karşılaştırmalar sunar:
Ortak anahtar şifreleme algoritmaları sabit bir arabellek boyutu kullanırken gizli anahtar şifreleme algoritmaları değişken uzunlukta bir arabellek kullanır.
Ortak anahtar algoritmaları yalnızca az miktarda veriyi şifreleyebilir; bu nedenle, verileri gizli anahtar algoritmaları gibi akışlara zincirlemek amacıyla kullanılamaz. Bu nedenle, asimetrik işlemler simetrik işlemler ile aynı akış modelini kullanmaz.
Ortak anahtar şifrelemesi, gizli anahtar şifrelemesinden çok daha büyük bir anahtar alanına (anahtar için olası değerler aralığı) sahiptir. Bu nedenle, ortak anahtar şifrelemesi olası her anahtarı deneyen kapsamlı saldırılara daha az duyarlıdır.
Ortak anahtarların dağıtılması kolaydır çünkü gönderenin kimliğini doğrulamak için bir yol olması koşuluyla güvenli hale getirilmesi gerekmez.
Verileri gönderenin kimliğini doğrulamak için dijital imzalar oluşturmak amacıyla bazı ortak anahtar algoritmaları (örneğin RSA ve DSA, ancak Diffie-Hellmandeğil) kullanılabilir.
Ortak anahtar algoritmaları gizli anahtar algoritmalarıyla karşılaştırıldığında çok yavaştır ve büyük miktarda veriyi şifrelemek için tasarlanmamıştır. Ortak anahtar algoritmaları yalnızca çok az miktarda veriyi aktarmak için kullanışlıdır. Genellikle ortak anahtar şifrelemesi, gizli anahtar algoritması tarafından kullanılacak bir anahtarı ve IV'yi şifrelemek için kullanılır. Anahtar ve IV aktarıldıktan sonra, oturumun geri kalanı için gizli anahtar şifrelemesi kullanılır.
.NET, ortak anahtar algoritmaları uygulayan aşağıdaki sınıfları sağlar:
RSA hem şifrelemeye hem de imzalamaya izin verir, ancak DSA yalnızca imzalama için kullanılabilir. DSA, RSA kadar güvenli değildir ve RSA'yı öneririz. Diffie-Hellman yalnızca anahtar oluşturma için kullanılabilir. Genel olarak ortak anahtar algoritmaları, kullanımlarında özel anahtar algoritmalarına göre daha sınırlıdır.
Dijital İmzalar
Ortak anahtar algoritmaları dijital imzalar oluşturmak için de kullanılabilir. Dijital imzalar bir gönderenin kimliğini doğrular (gönderenin ortak anahtarına güveniyorsanız) ve verilerin bütünlüğünü korumaya yardımcı olur. Alice tarafından oluşturulan ortak anahtarı kullanarak, Alice'in verilerinin alıcısı, dijital imzayı Alice'in verileriyle ve Alice'in ortak anahtarıyla karşılaştırarak Alice'in gönderdiğini doğrulayabilir.
Bir iletiyi dijital olarak imzalamak için ortak anahtar şifrelemesini kullanmak için, Alice önce iletiye bir karma algoritması uygulayarak ileti özeti oluşturur. İleti özeti, verilerin küçük ve benzersiz bir gösterimidir. Ardından Alice, kişisel imzasını oluşturmak için ileti özetini özel anahtarıyla şifreler. İletiyi ve imzayı aldıktan sonra Bob, alice'in ortak anahtarını kullanarak imzanın şifresini çözerek ileti özetini kurtarır ve Alice'in kullandığı karma algoritmayı kullanarak iletinin karmasını oluşturur. Bob'un işlediği ileti özeti Alice'ten alınan ileti özetiyle tam olarak eşleşiyorsa, Bob iletinin özel anahtarın sahibinden geldiğinden ve verilerin değiştirilmediğinden emin olur. Bob, Alice'in özel anahtarın sahibi olduğuna güveniyorsa, mesajın Alice'ten geldiğini biliyordur.
Uyarı
Gönderenin ortak anahtarı ortak bilgi olduğundan ve genellikle dijital imza biçiminde bulunduğundan, imza herkes tarafından doğrulanabilir. Bu yöntem iletinin gizliliğini korumaz; iletinin gizli olması için de şifrelenmelidir.
.NET, dijital imza algoritmaları uygulayan aşağıdaki sınıfları sağlar:
Hash Değerleri
Karma algoritmalar rastgele uzunluktaki ikili değerleri, karma değerler olarak bilinen sabit uzunluktaki daha küçük ikili değerlerle eşler. Karma değer, bir veri parçasının sayısal gösterimidir. Bir düz metin paragrafını karma değeriyle şifrelerseniz ve paragrafta bir harf bile değiştirirseniz, sonraki karma değeri farklı bir sonuç üretir. Karma değeri kriptografik olarak güçlü olursa, değeri önemli ölçüde değişir. Örneğin, bir iletinin tek bir biti değiştirilirse, güçlü bir karma işlevi yüzde 50 farklılık gösteren bir çıkış üretebilir. Birçok giriş değeri aynı çıkış değerine karmalanabilir. Ancak, aynı değere hash edilen iki farklı girişi bulmak işlem açısından imkansızdır.
İleti bütünlüğünü sağlamak için iki taraf (Alice ve Bob) bir karma fonksiyon kullanabilir. İletilerini imzalamak için bir karma algoritması seçerler. Alice bir ileti yazar ve seçili algoritmayı kullanarak ileti karmasını oluşturacaktır. Daha sonra aşağıdaki yöntemlerden birini izlerler:
Alice düz metin iletisini ve karma iletiyi (dijital imza) Bob'a gönderir. Bob, mesajı alır ve hash işlemi yaparak kendi hash değerini Alice'ten aldığı hash değeriyle karşılaştırır. Karma değerler aynıysa, ileti değiştirilmedi. Değerler aynı değilse, Alice yazdıktan sonra mesaj üzerinde değişiklik yapıldı.
Ne yazık ki, bu yöntem gönderenin orijinalliğini belirlemez. Herkes Alice'in kimliğine bürünebilir ve Bob'a bir ileti gönderebilir. İletilerini imzalamak için aynı karma algoritmayı kullanabilirler ve Bob'un belirleyebileceği tek şey iletinin imzasıyla eşleşip eşleşmediğini belirlemektir. Bu, araya giren adam saldırısının bir biçimidir. Daha fazla bilgi için bkz . Şifreleme Yeni Nesil (CNG) Güvenli İletişim Örneği.
Alice, güvenli olmayan bir ortak kanal üzerinden Bob'a düz metin iletisi gönderir. Karma iletiyi güvenli bir özel kanal üzerinden Bob'a gönderir. Bob, düz metin iletisini alır, karma hale getirir ve karmayı özel olarak değiştirilen karmayla karşılaştırır. Karmalar eşleşiyorsa Bob iki şey bilir:
İleti değiştirilmedi.
İletinin göndereni (Alice) doğrulanmıştır.
Bu sistemin çalışması için Alice'in özgün karma değerini Bob dışındaki tüm taraflardan gizlemesi gerekir.
Alice, güvenli olmayan bir genel kanal üzerinden Bob'a düz metin iletisi gönderir ve karma iletiyi genel olarak görüntülenebilir Web sitesine yerleştirir.
Bu yöntem, herhangi birinin karma değerini değiştirmesini engelleyerek ileti üzerinde değişiklik yapılmasını engeller. İleti ve karması herkes tarafından okunabiliyor olsa da, karma değeri yalnızca Alice tarafından değiştirilebilir. Alice'in kimliğine bürünmek isteyen bir saldırgan, Alice'in Web sitesine erişim gerektirebilir.
Önceki yöntemlerden hiçbiri, birinin Alice'in iletilerini okumasını engellemez, çünkü bunlar düz metin olarak iletilir. Tam güvenlik için genellikle dijital imzalar (ileti imzalama) ve şifreleme gerekir.
.NET, karma algoritmaları uygulayan aşağıdaki sınıfları sağlar:
.NET ayrıca MD5 ve SHA1 sağlar. Ancak MD5 ve SHA-1 algoritmalarının güvenli olmadığı bulunmuştur ve artık bunun yerine SHA-2 önerilir. SHA-2 SHA256, SHA384 ve SHA512'yi içerir.
Rastgele Sayı Oluşturma
Rastgele sayı üretimi, birçok şifreleme işlemi için hayati öneme sahiptir. Örneğin, şifreleme anahtarlarının yeniden üretilmesi mümkün olmayacak şekilde mümkün olduğunca rastgele olması gerekir. Şifreleme amaçlı rastgele sayı üreteçleri, yarıdan fazla bir olasılıkla tahmin edilmesi hesaplama açısından imkansız bir çıktı üretmelidir. Bu nedenle, sonraki çıkış bitini tahmin etmek için herhangi bir yöntem rastgele tahminden daha iyi performans göstermemelidir. .NET'teki sınıflar, şifreleme anahtarları oluşturmak için rastgele sayı oluşturucuları kullanır.
RandomNumberGenerator sınıfı, rastgele sayı oluşturucu algoritmasının bir uygulamasıdır.
ClickOnce Bildirimleri
Aşağıdaki şifreleme sınıfları , ClickOnce teknolojisi kullanılarak dağıtılan uygulamalar için bildirim imzaları hakkında bilgi edinmenizi ve doğrulamanızı sağlar:
ManifestSignatureInformation sınıfı, VerifySignature yöntem aşırı yüklemelerini kullandığınızda bildirim imzası hakkında bilgi edinir.
Hangi bildirimlerin ManifestKinds doğruleneceğini belirtmek için numaralandırmayı kullanabilirsiniz. Doğrulamanın sonucu numaralandırma değerlerinden SignatureVerificationResult biridir.
ManifestSignatureInformationCollection sınıfı, doğrulanmış imza nesnelerinin ManifestSignatureInformation salt okunur bir koleksiyonunu sağlar.
Ayrıca, aşağıdaki sınıflar belirli imza bilgilerini sağlar:
StrongNameSignatureInformation bir manifesto için güçlü ad imza bilgilerini barındırır.
AuthenticodeSignatureInformation bir bildirimin Authenticode imza bilgilerini temsil eder.
TimestampInformation Authenticode imzasının zaman damgası hakkında bilgi içerir.
TrustStatus Authenticode imzasına güvenilip güvenilmediğini denetlemek için basit bir yol sağlar.
Şifreleme Yeni Nesil (CNG) Sınıfları
Şifreleme Yeni Nesil (CNG) sınıfları, yerel CNG işlevleri çevresinde yönetilen bir sarmalayıcı sağlar. (CNG, CryptoAPI'nin yerini alır.) Bu sınıfların adlarının bir parçası olarak "Cng" vardır. CNG sarmalayıcı sınıflarının merkezi, CNG anahtarlarının CngKey depolamasını ve kullanımını soyutlayan anahtar kapsayıcı sınıfıdır. Bu sınıf, bir anahtar çiftini veya ortak anahtarı güvenli bir şekilde depolamanıza ve basit bir dize adı kullanarak buna başvurmanıza olanak tanır. Eliptik eğri tabanlı ECDsaCng imza sınıfı ve ECDiffieHellmanCng şifreleme sınıfı, CngKey nesnelerini kullanabilir.
CngKey sınıfı anahtarları açma, oluşturma, silme ve dışarı aktarma gibi çeşitli ek işlemler için kullanılır. Ayrıca, yerel işlevleri doğrudan çağırırken kullanılacak temel anahtar tanıtıcısına erişim de sağlar.
.NET ayrıca aşağıdakiler gibi çeşitli destekleyici CNG sınıfları içerir:
CngProvider bir anahtar depolama sağlayıcısını yönetir.
CngAlgorithm bir CNG algoritması tutar.
CngProperty sık kullanılan anahtar özelliklerini korur.
Ayrıca bakınız
- Şifreleme Modeli - Şifrelemenin temel sınıf kitaplığında nasıl uygulandığını açıklar.
- Platformlar Arası Şifreleme
- Doldurmayı kullanarak CBC modunda simetrik şifre çözmedeki zamanlama açıkları
- ASP.NET Çekirdek Veri Koruması