Picproje Elektronik Sitesi

SERBEST BÖLGE => Programlama ve Algoritma => Konuyu başlatan: esensoy - 29 Kasım 2016, 22:59:22

Başlık: C# içindeki MSSQL şifresi koruma
Gönderen: esensoy - 29 Kasım 2016, 22:59:22
Selamlar,
Diyelim ki Visual C# ile bir program yazdık, webde de bir SQL server var, connection string ile bu server  a bağlanıp veri alıp veriyoruz,

ILSPY gibi bir decompiler ile C# programını açtığımızda tüm kaynak kodları vs leri hatta bu şifreyi bile görebiliyoruz,
Bu gibi bir durumda server şifresini vermemek için herhangi bir yöntem var mı?
Başlık: Ynt: C# içindeki MSSQL şifresi koruma
Gönderen: erdcan - 29 Kasım 2016, 23:04:04
Decompiler her halukarda kodları çözüyorsa registry ya da C altında bir text/xml gibi bir kaynak dosyası içerisinde şifreyi saklayabilirsiniz. Böylece kaynaktan aldığınız şifreyi direk vermeyebilirsiniz ancak kodları okuyan birisi bu kaynağa da erişebilir. Kodu ve decompiler çıktısını görmek gerekir.
Başlık: Ynt: C# içindeki MSSQL şifresi koruma
Gönderen: baran123 - 29 Kasım 2016, 23:09:38
Şu videoda decompiler olayını engelliyor.
https://www.youtube.com/watch?v=BzN9ZKLMInU
Fakat bu .NET Reflector için.
Başka Reverse-Engineering programları bunu yapabilir mi emin değilim.
Bence şifreyi USB cihazdaki bir txt dosyasından alabilirsiniz. :)
Başlık: Ynt: C# içindeki MSSQL şifresi koruma
Gönderen: mert3162 - 29 Kasım 2016, 23:17:14
Usb üzerinden harici cihazla okunması mantıklı ama txt formatı anlamsız olur zira adam direk usb içindeki txt dosyayı açtığı gibi şifreye erişebilir.farklı bir metod ile haberleştirme sağlanırsa daha güvenli olacaktır.
Başlık: Ynt: C# içindeki MSSQL şifresi koruma
Gönderen: ErsinErce - 29 Kasım 2016, 23:19:51
sql server'da db'e kullanıcı oluşturuyorsunuz.
kullanıcı girişte kullanıcı adı şifresini giriyor, bu sayede şifre saklama derdiniz olmuyor.
arada ssl ile bağlantı sağlıyorsunuz büyük ihtimal zaten güvenlik seviyeniz otomatikman normal seviyelere yükseliyor.
Başlık: Ynt: C# içindeki MSSQL şifresi koruma
Gönderen: muhittin_kaplan - 29 Kasım 2016, 23:39:40
programı değil şifreyi koruyun hocam. (programı sonra korursunuz ;) )

http://ismailadar.com/connection-stringlerde-kullanilan-persist-security-info-ve-integrated-security-ozelikleri/
Başlık: Ynt: C# içindeki MSSQL şifresi koruma
Gönderen: cerdemir - 30 Kasım 2016, 10:09:00
DB Parolanızı ne kadar iyi korursanız koruyun erişilme ihtimali var.

* Uygulamanızın çalışabilmesi için gerekli minimum yetkilere sahip bir kullanıcı oluşturup bu kullanıcı ile db sunucusuna bağlanın. Parolanız ele geçirilse bile en azından uygulamanın yapabileceğinden daha fazlasını yapamasın. Mesela tablo silemesin. Kullanıcınız db_owner olmasın (sa kesinlikle olmasın :) )
* Bağlantı cümlenize "application name" ekleyip, db sunucunuza login trigger yazıp bazı kullanıcıları sadece sizin uygulama için yetkilendirebilirsiniz .https://sqlandme.com/2011/07/13/sql-server-login-auditing-using-logon-triggers/
* DB sunucunuza vpn arkasından bağlanabilirsiniz. (Kullanıcılar önce vpn ile ağınıza bağlanır sonra uygulama DB sunucunuza erişebilir hale gelir)
* DB sunucunuzu internetten erişilemez hale getirip, başka bir servisle(json, xml vb.) veri erişimini gerçekleştirebilirsiniz. Bu servis kullanıcı tanımlama ve yetkilendirme işlemlerini gerçekleştirebilir.
unutmuşum
* Bağlantı cümlenizi DPAPI ile şifreleyip text dosya vs bir yere kaydederseniz başkalarının ulaşsa bile çözemeyeceği bir bağlantı cünleniz olur. Bu yöntemin dezavantajı ise veriyi açacak kullanıcının şifrelemesi lazım. Başka bir windows kullanıcısı şifreyi çözemez. 
DPAPI: https://msdn.microsoft.com/en-us/library/ms995355.aspx