Bezpečné uložení hesla v aplikaci   zodpovězená otázka

Architektura, Bezpečnost

Zdravím všechny.

Chtěl bych se obecně zeptat, ne jenom pro VB .NET. Když používám v programu jakékoliv ověření (ať přístup do databáze, domainy, nebo administratorsky pristupy), tak se tam ukazuje uživatelské jméno a heslo, nebo jkakákoliv informace, která by se neměla nikomu dostat do ruky. Jak zamezím tomu, aby když mi někdo rozkompiluje exe, nebo dll, aby se k nim dostal?

Existuje nějaká ochrana proti dekopilaci? Nebo je nějaký speciální způsob ukládání těchto citlivých informací?

Díky za nápady a připomínky

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ideální je heslo neukládat a nechat si ho vždy zadat od uživatele. I tak je ale možné se k němu dostat bude v paměti.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

To s tou pamětí řeší třída SecureString.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Jen částečně, protože ne každá funkce, do níž můžete heslo předat, má overload pro SecureString. Třeba do connection stringu ho zabalit musíte a tam už bude jako obyčejný řetězec.

Navíc když ho dokáže rozšifrovat aplikace, tak ho z principu musí jít rozšifrovat i útočníkem, i když to nebude tak jednoduché.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

No jasněže, ale když budu mít databázovou aplikaci, kde budu skládat connection string, tak tam bude heslo, které ani uživatel znát nemá.

např.

connStr="server=srvSQL uid=dbUser pass=dbPass database=defDb"
nahlásit spamnahlásit spam 0 odpovědětodpovědět

Proto píšu používat integrované ověřování (Trusted_Connection, Integrated Security). A nebo lze použít šifrovanou konfigurační sekci.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

A jeste jednu otazku. Nemam moznost vyuzit integrovane overovani. Jak je to s tou šifrovanou konfiguracni sekci? Nemate nekde po ruce odkaz na nejaky clanek, nebo priklad, nebo cokoliv?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Možnost použít integrované ověřování má kdokoliv a to dokonce i bez domény. O šifrované konfigurační sekci je toho dost na MSDN:

http://msdn.microsoft.com/en-us/library/...

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

Díky moc za tip

MK

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Pro připojení k SQL Serveru můžete použít integrované ověřování a to potom přihlásí uživatele s oprávněním na základě jeho Windowsové identity a není potřeba zadávat jméno ani heslo.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback