Sdílet prostřednictvím


Ochrana osobních údajů a zabezpečení dat

Ochrana a správa citlivých informací v aplikaci ADO.NET závisí na základních produktech a technologiích používaných k jejich vytvoření. ADO.NET neposkytuje přímo služby pro zabezpečení ani šifrování dat.

Kryptografické kódy a kódy hash

Třídy v oboru názvů rozhraní .NET Framework System.Security.Cryptography lze použít z vašich ADO.NET aplikací, aby se zabránilo čtení nebo úpravě dat neoprávněnými třetími stranami. Některé třídy jsou obálky pro nespravované rozhraní Microsoft CryptoAPI, zatímco jiné jsou spravované implementace. Téma Kryptografické služby poskytuje přehled kryptografie v rozhraní .NET Framework, popisuje způsob implementace kryptografie a způsob provádění konkrétních kryptografických úloh.

Na rozdíl od kryptografie, která umožňuje šifrování a dešifrování dat, je hashování dat jednosměrným procesem. Hashování dat je užitečné, když chcete zabránit manipulaci tím, že zkontrolujete, že data nebyla změněna: při identických vstupních řetězcích hashovací algoritmy vždy vytvářejí identické krátké výstupní hodnoty, které lze snadno porovnat. Zajištění integrity dat pomocí kódů hash popisuje, jak můžete vygenerovat a ověřit hodnoty hash.

Šifrování konfiguračních souborů

Ochrana přístupu ke zdroji dat je jedním z nejdůležitějších cílů při zabezpečení aplikace. Připojovací řetězec představuje potenciální ohrožení zabezpečení, pokud není zabezpečené. Připojovací řetězce uložené v konfiguračních souborech se ukládají ve standardních souborech XML, pro které rozhraní .NET Framework definovalo společnou sadu prvků. Chráněná konfigurace umožňuje šifrovat citlivé informace v konfiguračním souboru. I když jsou primárně určené pro ASP.NET aplikace, lze chráněnou konfiguraci použít také k šifrování oddílů konfiguračních souborů v aplikacích systému Windows. Další informace naleznete v tématu Ochrana informací o připojení.

Zabezpečení hodnot řetězců v paměti

String Pokud objekt obsahuje citlivé informace, například heslo, číslo platební karty nebo osobní údaje, hrozí riziko, že by se tyto informace mohly odhalit po použití, protože aplikace nemůže odstranit data z paměti počítače.

Hodnota String je neměnná. Její hodnotu nelze po vytvoření změnit. Změny, které se jeví jako změna řetězcové hodnoty, ve skutečnosti vytvoří novou instanci objektu String v paměti a uloží data jako prostý text. Kromě toho není možné předpovědět, kdy se instance řetězců odstraní z paměti. Uvolňování paměti při práci s řetězci není deterministické při uvolňování paměti v .NET. Pokud jsou vaše data skutečně citlivá, měli byste se těmto třídám vyhnout StringStringBuilder .

Třída SecureString poskytuje metody pro šifrování textu pomocí rozhraní DATA Protection API (DPAPI) v paměti. Řetězec je následně odstraněn z paměti, když už není potřeba. Neexistuje žádná ToString metoda pro rychlé čtení obsahu SecureString. Můžete inicializovat novou instanci SecureString bez hodnoty nebo předáním ukazatele na pole Char objektů. Poté můžete použít různé metody třídy k práci s řetězcem.

Viz také