Identifiera paketkällan med digitala signaturer
gäller för:SQL Server SSIS Integration Runtime i Azure Data Factory
Ett Integration Services-paket kan signeras med ett digitalt certifikat för att identifiera källan. När ett paket har signerats med ett digitalt certifikat kan du låta Integration Services kontrollera den digitala signaturen innan du läser in paketet. Om du vill att Integration Services ska kontrollera signaturen anger du ett alternativ i antingen SQL Server Data Tools (SSDT) eller i verktyget dtexec (dtexec.exe) eller anger ett valfritt registervärde.
Signera ett paket med ett digitalt certifikat
Innan du kan signera ett paket med ett digitalt certifikat måste du först skaffa eller skapa certifikatet. När du har certifikatet kan du sedan använda det här certifikatet för att signera paketet. Mer information om hur du hämtar ett certifikat och signerar ett paket med certifikatet finns i Sign a Package by Using a Digital Certificate.
Ange ett alternativ för att kontrollera paketsignaturen
Både SQL Server Data Tools (SSDT) och verktyget dtexec har ett alternativ som konfigurerar Integration Services för att kontrollera den digitala signaturen för ett signerat paket. Om du använder SQL Server Data Tools (SSDT) eller verktyget dtexec beror på om du vill kontrollera alla paket eller bara specifika:
Om du vill kontrollera den digitala signaturen för alla paket innan du läser in paketen vid designtillfället anger du Kontrollera digital signatur när du läser in ett paket i SQL Server Data Tools (SSDT). Det här alternativet är en global inställning för alla paket i SQL Server Data Tools (SSDT).
Om du vill kontrollera den digitala signaturen för ett enskilt paket anger du alternativet /VerifyS[igned] när du använder verktyget dtexec för att köra paketet. Mer information finns i dtexec Utility.
Ange ett registervärde för att kontrollera paketsignaturen
Integration Services stöder också ett valfritt registervärde, BlockedSignatureStates, som du kan använda för att hantera en organisations princip för inläsning av signerade och osignerade paket. Registervärdet kan förhindra att paket läses in om paketen är osignerade eller har ogiltiga eller ej betrodda signaturer. Mer information om hur du anger det här registervärdet finns i Implementera en signeringsprincip genom att ange ett registervärde.
Not
Det valfria BlockedSignatureStates registervärde kan ange en inställning som är mer restriktiv än det alternativ för digital signatur som anges i SQL Server Data Tools (SSDT) eller på kommandoraden dtexec. I den här situationen åsidosätter den mer restriktiva registerinställningen de andra inställningarna.
Implementera en signeringsprincip genom att ange ett registervärde
Du kan använda ett valfritt registervärde för att hantera en organisations princip för inläsning av signerade eller osignerade paket. Om du använder det här registervärdet måste du skapa det här registervärdet på varje dator där Integration Services-paket ska köras och som du vill tillämpa principen på. När registervärdet har angetts kontrollerar eller verifierar Integration Services signaturerna innan paket läses in.
I den här artikeln beskrivs hur du lägger till det valfria BlockedSignatureStates DWORD-värdet till registernyckeln HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\150\SSIS\Setup\DTSPath.
Not
En registerplats under 150 representerar SQL Server 2019, under 140 representerar SQL Server 2017, under 130 representerar SQL Server 2016, under 120 representerar SQL Server 2014 och under 110 representerar SQL Server 2012.
Datavärdet i BlockedSignatureStates avgör om ett paket ska blockeras om det har en signatur som inte är betrodd, har en ogiltig signatur eller är osignerad.
För statusen för signaturer som används för att signera paket använder BlockedSignatureStates registervärde följande definitioner:
En giltig signatur är en som kan läsas framgångsrikt.
En ogiltig signatur är en för vilken den dekrypterade kontrollsumman (enkelriktad hash för paketkoden krypterad av en privat nyckel) inte matchar den dekrypterade kontrollsumman som beräknas som en del av processen med att läsa in Integration Services-paket.
En betrodd signatur skapas med hjälp av ett digitalt certifikat som signerats av en betrodd rotcertifikatutfärdare. Den här inställningen kräver inte att undertecknaren finns i användarens lista över betrodda utgivare.
En signatur som inte är betrodd är en signatur som inte kan verifieras som utfärdad av en betrodd rotcertifikatutfärdare eller en signatur som inte är aktuell.
I följande tabell visas giltiga värden för DWORD-data och deras associerade princip.
Värde | Beskrivning |
---|---|
0 | Ingen administrativ begränsning. |
1 | Blockera ogiltiga signaturer. Den här inställningen blockerar inte osignerade paket. |
2 | Blockera ogiltiga och ej betrodda signaturer. Den här inställningen blockerar inte osignerade paket, utan blockerar självgenererade signaturer. |
3 | Blockera ogiltiga och ej betrodda signaturer och osignerade paket Den här inställningen blockerar även självgenererade signaturer. |
Notera
Den rekommenderade inställningen för BlockedSignatureStates är 3. Den här inställningen ger det största skyddet mot osignerade paket eller signaturer som antingen inte är giltiga eller ej betrodda. Den rekommenderade inställningen kanske dock inte är lämplig under alla omständigheter. Mer information om hur du signerar digitala tillgångar finns i avsnittet "Introduktion till kodsignering" i MSDN-biblioteket.
Implementera en signeringsprincip för paket
På menyn Starta klickar du på Kör.
I dialogrutan Kör skriver du Regeditoch klickar sedan på OK.
Leta upp registernyckeln HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\SSIS.
Högerklicka på MSDTS, peka på Nyoch klicka sedan på DWORD-värde.
Uppdatera namnet på det nya värdet till BlockedSignatureStates.
Högerklicka på BlockedSignatureStates och klicka på Ändra.
I dialogrutan Redigera DWORD-värde skriver du värdet 0, 1, 2 eller 3.
Klicka på OK.
På menyn Arkiv klickar du på Avsluta.
Signera ett paket med hjälp av ett digitalt certifikat
Det här avsnittet beskriver hur du signerar ett Integration Services-paket med ett digitalt certifikat. Du kan använda en digital signatur tillsammans med andra inställningar för att förhindra att ett paket som inte är giltigt läses in och körs.
Innan du kan signera ett Integration Services-paket måste du utföra följande uppgifter:
Skapa eller hämta en privat nyckel som ska associeras med certifikatet och lagra den privata nyckeln på den lokala datorn.
Skaffa ett certifikat för kodsignering från en betrodd certifikatutfärdare. Du kan använda någon av följande metoder för att hämta eller skapa ett certifikat:
Skaffa ett certifikat från en offentlig, kommersiell certifikatutfärdare som utfärdar certifikat.
Hämta ett certifikat från en certifikatserver som gör det möjligt för en organisation att internt utfärda certifikat. Du måste lägga till rotcertifikatet som används för att underteckna certifikatet till arkivet för betrodda rotcertifikatutfärdare. Om du vill lägga till rotcertifikatet kan du använda snapin-modulen Certifikat för Microsoft Management Console (MMC). Mer information finns i avsnittet "Certificate Services" i MSDN-biblioteket.
Skapa ett eget certifikat endast i testsyfte. PowerShell-kommandot New-SelfSignedCertificate kan skapa ett nytt självsignerat certifikat med säker hash-algoritm i testsyfte. Till exempel:
$params = @{ Type = 'CodeSigningCert' Provider = 'Microsoft Enhanced RSA and AES Cryptographic Provider' Subject = 'CN=PS code signing Certificate 2' TextExtension = @( '2.5.29.37={text}1.3.6.1.5.5.7.3.3', '2.5.29.17={text}upn=yourupn' ) KeyExportPolicy = 'NonExportable' KeyUsage = 'DigitalSignature' KeyAlgorithm = 'RSA' KeyLength = 2048 CertStoreLocation = 'Cert:\CurrentUser\My' HashAlgorithm = 'sha512' } New-SelfSignedCertificate @params
Om du ser felmeddelandet "Paketsigneringen misslyckades med felet 0x80090008 "Ogiltig algoritm angiven". Det anger att algoritmen för certifikatshash inte är säker, ändrar du certifikatet till en säkrare hashalgoritm som SHA512 och använder en CSP (Kryptografisk tjänstprovider). Eftersom .NET-ramverket uppgraderas till 4.7.2 för SQL Server 2022 ändras standardalgoritmen signedXML till SHA256 eftersom SHA1 inte längre anses vara säker. Mer information finns i den här artikeln.
Mer information om certifikat finns i hjälpen online för Certifikat-snapinmodulen. Mer information om hur du signerar digitala tillgångar finns i avsnittet "Signering och kontroll av kod med Authenticode" i MSDN-biblioteket.
Kontrollera att certifikatet har aktiverats för kodsignering. Om du vill ta reda på om ett certifikat är aktiverat för kodsignering läser du egenskaperna för certifikatet i snapin-modulen Certifikat.
Lagra certifikatet i det personliga arkivet.
När du har slutfört tidigare uppgifter kan du använda följande procedur för att signera ett paket.
Så här signerar du ett paket
I SQL Server Data Tools (SSDT) öppnar du projektet Integration Services som innehåller paketet som ska signeras.
Dubbelklicka på paketet i Solution Explorer för att öppna det.
I SSIS Designer går du till menyn SSIS och klickar på Digital Signing.
I dialogrutan Digital Signering klickar du på Signera.
I dialogrutan Välj ett certifikat väljer du ett certifikat.
(Valfritt) Klicka på Visa certifikat för att visa certifikatinformation.
Klicka på OK för att stänga dialogrutan Välj ett certifikat.
Klicka på OK för att stänga dialogrutan digital signering.
Om du vill spara det uppdaterade paketet klickar du på Spara markerade objekt på menyn Arkiv.
Även om paketet har signerats måste du nu konfigurera Integration Services för att kontrollera eller verifiera den digitala signaturen innan du läser in paketet.
Referens för användargränssnittet för digital signering
Använd dialogrutan digital signering för att signera ett paket med en digital signatur eller för att ta bort signaturen. Dialogrutan digital signering är tillgänglig från alternativet digital signering på menyn SSIS i SQL Server Data Tools (SSDT).
Mer information finns i Signera ett paket med hjälp av ett digitalt certifikat.
Alternativ
Signera
Klicka här om du vill öppna dialogrutan Välj certifikat och välj det certifikat som ska användas.
Ta bort
Klicka om du vill ta bort den digitala signaturen.
Se även
Integration Services-paket (SSIS)
Säkerhetsöversikt (Integration Services)