SORU
26 EYLÜL 2008, Cuma


Ne zaman bir SecureString içinde ihtiyaç duyayım .NET?

Amacı grok için çalışıyorum .NET SecureString. MSDN:

Sistemin bir örneği.String sınıfı, hem de değişmez ve artık gerekli, olamaz programlı olarak planlanan çöp toplama; örnek salt okunur sonra oluşturulur ve bu mümkün değil tahmin örneği silinecek bilgisayar belleği. Sonuç olarak, eğer bir String nesnesi içeren hassas bilgileri gibi şifre, kredi kartı numarası ya da kişisel veriler, bir risk bilgileri olabilir ortaya sonra kullanılır çünkü uygulama silinemiyor verileri bilgisayar belleği.

SecureString nesne bu metin bir değere sahip bir String nesnesine benzer. Ancak, bir SecureString nesne değeri otomatik olarak şifrelenir, uygulamanız salt okunur olarak işaretler kadar değiştirilebilir, ve ya bir uygulama veya bilgisayar hafızasından silinmiş olabilir .NET Çerçeve çöp toplayıcı.

SecureString bir örnek değeri otomatik olarak örneği başlatıldığında veya değeri değiştirildiğinde şifrelenir. Uygulamanız örneği değişmez kılmak ve MakeReadOnly yöntemini çağırarak daha fazla değişiklik engelleyebilir.

Otomatik şifreleme karşılığı nedir?

Ve neden ben sadece söyleyemem:

SecureString password = new SecureString("password");

yerine

SecureString pass = new SecureString();
foreach (char c in "password".ToCharArray())
    pass.AppendChar(c);

Ne yönü SecureString eksik muyum?

CEVAP
26 EYLÜL 2008, Cuma


Şu anda SecureString kullanan çerçevesinde bazı bölümleri:

  • WPF. PasswordBox kontrolü bir SecureString DAHİLİ olarak şifre tutar.
  • Sistem.Tanılama.Processınfo Şifre özelliği, bir SecureString.
  • X509Certificate2 için yapıcı bir parola için bir SecureString alır.

Ana amaç saldırı alanını azaltmak yerine, onu ortadan kaldırmaktır. SecureStrings "Çöp Toplayıcı veya kopyalarını olun. etrafında hareket etmiyor bu yüzden" RAM sabitlenir Ayrıca düz metin çekirdek döker Takas dosyası veya yazılı almazsınız emin olur. Simetrik şifreleme anahtar şifrelemek ve şifresini çözmek için kullanılan bulmak mümkün olacak şaşırtmaca gibi daha kararlı bir hacker durmayacak, ama.

Başkaları söyledi, nedeni var oluşturmak için bir SecureString karakter-by-karakter olduğu için ilk bariz kusur yapıyor aksi: muhtemelen var olan gizli bir değer olarak bir düz dize zaten, o zaman ne önemi var?

SecureStrings ilk adımda çözme bir Yumurta-Tavuk problemi olsa da en geçerli senaryo gerektirir dönüştürme onları geri içine normal dizeleri herhangi bir şekilde kullanmanız onlara, onların varlığı çerçevesinde bir anlamı da daha iyi destek için onlara gelecek. En azından, programın zayıf halka olmak zorunda değil, için.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Matthew Morrill

    Matthew Morr

    15 EKİM 2011
  • PhoneBuff

    PhoneBuff

    10 HAZİRAN 2011
  • Yanko Kral

    Yanko Kral

    8 HAZİRAN 2006