Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
SQL Server använder krypteringsnycklar för att skydda data, autentiseringsuppgifter och anslutningsinformation som lagras i en serverdatabas. SQL Server har två typer av nycklar: symmetrisk och asymmetrisk. Symmetriska nycklar använder samma lösenord för att kryptera och dekryptera data. Asymmetriska nycklar använder ett lösenord för att kryptera data (kallas den offentliga nyckeln) och ett annat för att dekryptera data (kallas den privata nyckeln).
I SQL Server innehåller krypteringsnycklar en kombination av offentliga, privata och symmetriska nycklar som används för att skydda känsliga data. Den symmetriska nyckeln skapas under SQL Server-initieringen när du först startar SQL Server-instansen. SQL Server använder nyckeln för att kryptera känslig data som lagras i SQL Server. Operativsystemet skapar de publika och privata nycklarna, och de skyddar den symmetriska nyckeln. Ett offentligt och privat nyckelpar skapas för varje SQL Server-instans som lagrar känsliga data i en databas.
Program för SQL Server och databasnycklar
SQL Server har två primära program för nycklar: en tjänsthuvudnyckel (SMK) som genereras på och för en SQL Server-instans och en databashuvudnyckel (DMK) som används för en databas.
Tjänsthuvudnyckel
Tjänstens huvudnyckel är roten i SQL Server-krypteringshierarkin. SQL Server genererar SMK första gången instansen startar och använder den för att kryptera länkade serverlösenord, autentiseringsuppgifter och databasens huvudnyckel i varje databas.
SMK krypteras genom att använda den lokala maskinnyckeln eller Windows Data Protection API (DPAPI). DPAPI använder en nyckel som härleds från Windows-inloggningsuppgifterna för SQL Server-tjänstekontot. Eftersom nyckeln är skyddad åt båda hållen kan tjänstehuvudnyckeln öppnas av det tjänstekonto som den skapades under, eller av ett säkerhetsobjekt som har tillgång till datorautentiseringsuppgifter.
SQL Server använder AES-krypteringsalgoritmen för att skydda huvudnyckeln för tjänsten och databasens huvudnyckel. AES ersatte 3DES-algoritmen som användes i versioner tidigare än SQL Server 2012 (11.x). Efter att du uppgraderat en instans av Database Engine från en av de tidigare versionerna, regenerera SMK och DMK för att uppgradera huvudnycklarna till AES. Mer information om hur du återskapar SMK ALTER SERVICEALTER SERVICE MASTER KEY finns i (Transact-SQL) och ALTER MASTER KEY (Transact-SQL).
Huvudnyckel för databas
Databasens huvudnyckel är en symmetrisk nyckel som skyddar de privata nycklarna till certifikat och asymmetriska nycklar som finns i databasen. Den kan också kryptera data, men har längdbegränsningar som gör den mindre praktisk för data än en asymmetrisk nyckel är. För att möjliggöra automatisk dekryptering av databasens huvudnyckel krypteras en kopia av nyckeln med hjälp av SMK. SQL Server lagrar den kopian både i databasen där nyckeln används och i master systemdatabasen.
Kopian av DMK som lagras i systemdatabasen master uppdateras automatiskt i bakgrunden varje gång DMK ändras. Du kan ändra den här standardinställningen genom att använda alternativet DROP ENCRYPTION BY SERVICE MASTER KEY i ALTER MASTER KEY (Transact-SQL). En DMK som inte är krypterad av tjänstehuvudnyckeln måste öppnas med hjälp av OPEN MASTER KEY (Transact-SQL) och ett lösenord.
Hantering av SQL Server- och databasnycklar
Att hantera krypteringsnycklar innebär att skapa nya databasnycklar, säkerhetskopiera server- och databasnycklar samt veta när och hur man återställer, raderar eller ändrar nycklarna.
För att hantera symmetriska nycklar, använd verktygen som ingår i SQL Server för att utföra följande uppgifter:
- Säkerhetskopiera en kopia av server- och databasnycklarna så att du kan använda dem för att återställa en serverinstallation eller som en del av en planerad migrering.
- Återställ en tidigare sparad nyckel till en databas. Att återställa nyckeln låter en ny serverinstans komma åt befintlig data som den ursprungligen inte krypterade.
- Ta bort krypterade data i en databas i den osannolika händelsen att du inte längre kan komma åt krypterade data.
- Återskapa nycklar och kryptera data igen i det osannolika fallet att nyckeln komprometteras. Som säkerhetspraxis återskapar du nycklarna periodiskt, till exempel var tredje månad, för att skydda servern mot attacker som försöker tyda nycklarna.
- Lägg till eller ta bort en serverinstans från en utskalad serverdistribution där flera servrar delar både en enda databas och den nyckel som används för reversibel kryptering av databasen.
Viktig säkerhetsinformation
För att komma åt objekt som är säkrade av servicehuvudnyckeln behöver du antingen det SQL Server-tjänstekonto du använde för att skapa nyckeln eller datorns (maskin-)konto kopplat till systemet där du skapade nyckeln. Du kan byta SQL Server-tjänstekontot eller datorkontot utan att förlora tillgången till nyckeln. Men om du byter båda kontona förlorar du tillgången till tjänstens huvudnyckel. Om du förlorar åtkomsten till tjänstehuvudnyckeln utan något av dessa två element kan du inte dekryptera data och objekt som den ursprungliga nyckeln krypterade.
Du kan inte återställa anslutningar som är säkrade med service-huvudnyckeln om du inte har den nyckeln.
För att komma åt objekt och data som är säkrade med databasens huvudnyckel behöver du bara lösenordet som hjälper till att säkra nyckeln.
Försiktighet
Om du förlorar all tillgång till de nycklar som beskrivs i denna artikel, förlorar du tillgången till de objekt, anslutningar och data som säkras av dessa nycklar. Du kan återställa tjänstehuvudnyckeln som beskrivs i Återställ tjänstehuvudnyckeln, eller så kan du gå tillbaka till det ursprungliga krypteringssystemet för att återställa åtkomsten. Det finns ingen bakdörr för att återfå åtkomsten.
Relaterat innehåll
- Utökningsbar nyckelhantering (EKM)
- Utökningsbar nyckelhantering med Hjälp av Azure Key Vault (SQL Server)
- Aktivera TDE på SQL Server med hjälp av EKM
- Skapa en databashuvudnyckel
- Säkerhetskopiera en databashuvudnyckel
- Återställ en databasens huvudnyckel
- Säkerhetskopiera tjänstehuvudnyckeln
- Återställ tjänstehuvudnyckeln
- Skapa identiska symmetriska nycklar på två servrar
- Kryptera en kolumn med data
- Transparent datakryptering (TDE)
- CREATE MASTER KEY (Transact-SQL)
- ALTER SERVICE ALTER SERVICE MASTER KEY (Transact-SQL)
- Säkerhetskopiera och återställa KRYPTERINGSnycklar för SQL Server Reporting Services (SSRS)
- Ta bort och återskapa krypteringsnycklar (Configuration Manager)
- Lägga till och ta bort krypteringsnycklar för utskalningsdistribution