Je hebt twee alternatieven:
-
Cryptografische controle. Hiermee kunnen alleen de gebruikers die het wachtwoord kennen de gegevens ontsleutelen. Het nadeel is dat de gebruiker moet invoeren het decoderingswachtwoord elke keer dat ze toegang krijgen tot de gegevens. Een rapport moet een wachtwoordparameter bevatten die de gebruiker die het rapport uitvoert, vult met het wachtwoord voor gegevenstoegang. Applicatie moet het wachtwoord opvragen bij de gebruiker. Websites moeten wachtwoord van bezoeker opvragen. enzovoort, enzovoort
-
Toegangscontrole. De gegevens worden versleuteld met een sleutel waar SQL Server zelf toegang toe heeft (uiteindelijk gaat de coderingsketen helemaal tot aan de Service Master Key en deze wordt versleuteld met DPAPI). Dit geeft u geen betere bescherming dan het verlenen en weigeren van SELECT u zou geven:is toegang controle, geen cryptografische controle. Zo'n schema beschermt alleen tegen onopzettelijk verlies van media (iemand vindt een schijf met uw database, of u verliest een laptop met de database erop). U kunt hetzelfde bereiken met Transparante gegevenscodering of codering op bestandsniveau (BitLocker ).
Het algemene scenario voor gegevensversleuteling is om de gegevens te versleutelen met een symmetrische sleutel en vervolgens de symmetrische sleutel te versleutelen met een asymmetrische sleutel (meestal de persoonlijke sleutel van een certificaat). De asymmetrische sleutel wordt dan op zijn beurt versleuteld met een wachtwoord, en dit wachtwoord moet worden getoond bij het proberen toegang te krijgen tot gegevens. De belangrijkste reden voor deze indirecte op twee niveaus is wachtwoordwijziging:wanneer een wachtwoord of een privésleutel wordt gecompromitteerd, wordt de symmetrische sleutel opnieuw versleuteld met een andere asymmetrische sleutel of wordt de asymmetrische sleutel opnieuw versleuteld met een ander wachtwoord. Op deze manier is het toegangswachtwoord gewijzigd zonder dat alle gegevens opnieuw moeten worden versleuteld . Als de toegang rechtstreeks tot de symmetrische sleutel zou worden verleend, zou een wachtwoordcompromis mogelijk vereisen dat alle gegevens opnieuw worden versleuteld , mogelijke terabytes aan gegevens.
Waar de twee scenario's die ik heb gepresenteerd verschillen, is of de asymmetrische sleutel ook is versleuteld met de hoofdsleutel van de database of niet. Geval 1) is het niet, geval 2) wel. Dit wordt allemaal uitgelegd in Encryptiehiërarchie .