2012-06-27 26 views
8

benim siteyi için diğer kullanıcılar için şifreler gibi kullanılacak gerekmez şifreleri (kastetmiyorum - ki bu durumda gerçekten değil bunları saklamak zorundayım https://stackoverflow.com/a/1054069/939213 bakınız..) bu yüzden basitçe karma saklamak bir seçenek değildir.Web barındırıcısında bir parola veya özel anahtar depolamanın en iyi yolu nedir?

Bir SQL veritabanı ve paylaşılan sunucu üzerinde yazılım kullanmak zorunda olduğu özel anahtara şifreleri saklamak bahsediyorum.

bunu yapmak için hiçbir gerçekten güvenli yolu var varsayalım. Sadece 'un ne olduğunu bilmek istiyorum bu durumda en iyisi.

I (aynı web ana bilgisayarda veya değil) korsanlara karşı güvenli bir şekilde saklamak çalışıyorum. Dosyaları görme izni olan kişilerden değil.

Onları kullanıyor olacaktır ASP.Net codebehind bu.

+0

Doğrulamanın yanı sıra parola için başka hangi uygun kullanımlar var? Bir şifre başka ne için kullanılır? –

+0

En iyi yol? ** Bu bilgiyi saklamak ** için değil. Parolayı kendi başına saklamayın - tuzlanmış bir karma saklayın. –

+0

Bu bilgiyi nereden edinmeye çalışıyorsunuz? web.config dosyanızdaki anahtar, herkesten * güvenli * olacak, ancak dosya ve/veya veritabanına erişimi olan kişiler olmayacaktır. her durumda, bu bilgiye hangi düzeyde erişimin uygun olduğunu belirlemeniz gerekir – Didaxis

cevap

1

, Windows özellikle bu amaç için veri koruma API (DPAPI) sunmaktadır. .NET'ten almak için ProtectedData sınıfına bakın.

DPAPI avantajı hassas veri Windows hesabı başkaları sürece güvenli olduğu anlamına Windows kullanıcının oturum açma kimlik bilgilerine dayanarak şifreli olmasıdır.

3

şifreyi depolamak için en iyi yol saklayın getirmemektir. SQL Server'a bağlanmak için tümleşik (Windows) kimlik doğrulamasını kullanın. Bu, IIS uygulama havuzunu belirli bir (Windows) kullanıcı olarak ve granting that user access veritabanını kullanarak veritabanına giriş yapmayı ve gerekli sorguları çalıştırmayı içerir.

daha güvenli olmaktan da SQL Server Integrated Authentication Mode

Kenara bak, daha iyi bir performans sergiliyor. Kullanıcı başına bağlantı dizelerini kullanmak bağlantı havuzunu bozar.

DÜZENLEME:

kesinlikle sonra ASP.NET içinde Encrypted Connection Strings kullanarak şifre saklamak gerekiyorsa

gitmek yoludur. Bu, bağlantı dizgisini ve makine anahtarını doğru bir şekilde saklamak için DPAPI'yi kullanmanızla ilgilenir ve bunu yapma olasılığınızı azaltır. Ayrıca

: Encrypting Connection String in web.config

+0

-1. Benim düşüncemde bir cevap değil. OP, özellikle parola _store_ için bir yol soruyor. –

+0

Güvenlik bağlamında, evet.Bir uçak kazasında ölmekten kaçınmanın en iyi yolunu sorarsanız, "herhangi bir yere uçma" cevabı makul görünüyor. * Doğru * cevap verdiğim cevaptır - mümkün olduğunda entegre kimlik doğrulaması kullanmalısınız. OP, Entegre'nin bir seçenek olmadığını söylemedi. –

+0

Ama uçmanız gerekiyorsa - en güvenli yolu seçeceksiniz. Sitedeki yazılım bu şeyleri kullanmak zorunda. Entegre güvenlik bir seçenek değildir – ispiro

İlgili konular