Daha önce .net güvenliği ve kriptografi isimli makalemde .net güvenliğinden genel olarak bahsetmiştim ve kriptografi konusuna değinmiştim.Gelen mailler ve istekler doğrultusunda sırf .net güvenliği ve bu politikalar doğrultusunda sınıfları ve kullanım alanlarını anlatacağım.Biraz sözel bir makale olabilir çünkü ana temel biçim ve kavramları anlatmaya çalışacağım.

Daha önce CLR in Security isimli makalemde .net güvenliğinin api ve formasyonlarla framework yapısında clr ve cls tabanlı sunulduğunu anlatmıştım.Bunlar için en güzel iki örneği ;Serializing Permission Requests ve Assembly Permission Requests i vermiştim.Net güvenliği CLR(Common Langue Runtime) ve CLS(Common Langue Specification) tabanlı olarak CryptoAPI gibi yapıları hizmetimize sunar ve bu api lerle işlemlerimizi daha önceden hazırlanmış namespace ler ile using System.Security; sınıflarında gerçekleştiririz.

.Net ortamının bize sunduğu provider lar ile işlemlerimizin yapılmasını sağlar ve streamreader,filestream,memorystream gibi yapılar ilede dosya ve bellek işlemlerimizi gerçekleştiririz.Bunlar gibi birçok yapı vardır.Fakat ben bana gelen sorularda üzerlerinde en çok durulan ve "bu ne işe yarıyor" sıfatıyla gelen yapılara değineceğim.

Şimdi bunların tam olarak görevlerine bir göz atalım.

...ServiceProvider : Bunun için crytoserviceprovider örneğini vereceğim.Dosya veya veri üzerinde şifreleme yapılmasını sağlar.Şifreleme değeri ve parmak izlerini elde değer.Genel olarak Security bazında yapacağımız işlemleri gerçekleştirir.

StreamReader : Dosyadan  okuma işlemlerini yapmamızı sağlar.

FileStream : Dosyalar üzerinde yapılacak işlemler için kullanılır.FileStream in bu alanda tercih edilmesinin en büyük etkeni dosyaya yazdığımız veriyi direk dosyaya yazmayıp bir bufferda bekletmesidir.

MemoryStream : Şifrelenecek veya güvenli bölgeye taşınacak veriyi belleğe yazdırır.Yane örneklendirecek olursak;veriyi cryptoserviceprovider şifreler işte bu şifrelenecek olan veriyi memory stream hafızada tutar ve cryptostream yardımı ile şifreleme modülü ile bellekte tutulan veri birleştirilir ve şifreleme gerçekleştirilir.

...Managed : Sınıfın algoritmasını api ve dll lerden çeken ve kullanıma sunan yapıdır.

 

Güvenlik sistemine baktığımız zaman CLR yapısında .security sınıfına çalışma ortamında hep yardım eden Reflection ve Serialization iç sınıfları vardır.Bunları bazı güvenlik politikalarında tekrar referans olarak kullanıp üzerlerinde işlem yaptığımız anlar gelir.

Şimdi .Net ortamının bize sunduğu referenslara ve görevlerine bakalım.

 using.System.Security; ile tabire açtığımız alanda bize 6 adet sınıf yardımcı olur.Bunlar;

 

1)using System.Security.AccessControl; Dosya erişim güvenliği platformudur.Dosyalar üzerinde kullanıcı erişim haklarını yapılandırabilir.

2)using System.Security.Principal; Asp.Net ten bildiğimiz Rol-Tabanlı güvenlik prosedürü bu sınıfa dayanır.Rol işlemleri ve görev işlemleri için kullanılabilir.

3)using System.Security.Authentication;  Kimlik doğrulama ve yetki sorgulama gibi asp.net ve IIS üzerinde bilgiğimiz kavramların dayandığı sınıftır.

4)using System.Security.Permission; Kaynak ve işlemlerde erişimi kontrol eder.Yetki arttırma veya kısıtlama işlemlerinde kullanılır.

5)using System.Security.Policy; Güvenli bölge tanımı ve sabit güvenlik politikaları için yaratılmış sınıftır.

6)using System.Security.Cryptography; Dosya ve veri üzerinde saklama,şifreleme,koruma işlemlerini gerçekleştireceğimiz sınıftır.

Bunları okuduğunuz zaman kafanızdaki soru işaretlerinin büyük bir kısmının bittiğine eminim.Çünkü basitte olsa,indirgenmişte olsa bu sınıfların bir çoğunu siz kullandınız.Gördüğünüz gibi asp.net te authentication dan tutun Rol-Based işlemlerine kadar hepsi .net Güvenliği içerisinde tanımlanmış yapılardır.

 

Gelen soru ve isteklere yönelik kendimde extra bilgiler katarak zenginleştirilmiş bir yazı oluşturdum.Gelen sorulara cevap verdiğim gibi ayrıca,bununla ilgili makale hazırlamak sizlerin çokdaha işinize yarayacaktır.

 

Son Söz:

Bir kavramın,sistemin veya yapının çalıştığını görmek ve bunlaral ilgili örnekler yapmak güzeldir.Fakat bunu ezbere yapmadığınıza emin olun.Benim bu yazımda dikkat ettiyseniz kavramları çalışma mantıkları ve örneklerle anlatmaya çalıştım.Lütfen önce mantığını oturtunuz , yoksa bir noktada çözülemez vir düğüm olduğunu görürsünüz.Bir sonraki makalemde gürüşmek ümidiyle...