Delen via


De bron van pakketten met digitale handtekeningen identificeren

van toepassing op:SQL Server SSIS Integration Runtime in Azure Data Factory

Een Integration Services-pakket kan worden ondertekend met een digitaal certificaat om de bron te identificeren. Nadat een pakket is ondertekend met een digitaal certificaat, kunt u integration services de digitale handtekening laten controleren voordat u het pakket laadt. Als u wilt dat Integration Services de handtekening controleert, stelt u een optie in in SQL Server Data Tools (SSDT) of in het hulpprogramma dtexec (dtexec.exe) of stelt u een optionele registerwaarde in.

Een pakket ondertekenen met een digitaal certificaat

Voordat u een pakket met een digitaal certificaat kunt ondertekenen, moet u eerst het certificaat verkrijgen of maken. Nadat u het certificaat hebt, kunt u dit certificaat gebruiken om het pakket te ondertekenen. Zie Een pakket ondertekenen met behulp van een digitaal certificaatvoor meer informatie over het verkrijgen van een certificaat en het ondertekenen van een pakket met dat certificaat.

Een optie instellen om de pakkethandtekening te controleren

Zowel SQL Server Data Tools (SSDT) als het hulpprogramma dtexec hebben een optie waarmee Integration Services wordt geconfigureerd om de digitale handtekening van een ondertekend pakket te controleren. Of u nu SQL Server Data Tools (SSDT) of het hulpprogramma dtexec gebruikt, is afhankelijk van of u alle pakketten of alleen specifieke pakketten wilt controleren:

  • Als u de digitale handtekening van alle pakketten wilt controleren voordat u de pakketten tijdens het ontwerp laadt, stelt u de Digitale handtekening controleren in bij het laden van een pakket optie in SQL Server Data Tools (SSDT). Deze optie is een globale instelling voor alle pakketten in SQL Server Data Tools (SSDT).

  • Als u de digitale handtekening van een afzonderlijk pakket wilt controleren, geeft u de optie /VerifyS[igned] op wanneer u het hulpprogramma dtexec gebruikt om het pakket uit te voeren. Zie dtexec Utilityvoor meer informatie.

Een registerwaarde instellen om pakkethandtekening te controleren

Integration Services ondersteunt ook een optionele registerwaarde, BlockedSignatureStates, die u kunt gebruiken om het beleid van een organisatie te beheren voor het laden van ondertekende en niet-ondertekende pakketten. De registerwaarde kan voorkomen dat pakketten worden geladen als de pakketten niet zijn ondertekend of ongeldige of niet-vertrouwde handtekeningen hebben. Zie Een handtekeningbeleid implementeren door een registerwaarde in te stellenvoor meer informatie over het instellen van deze registerwaarde.

Notitie

De optionele BlockedSignatureStates registerwaarde kan een instelling opgeven die meer beperkend is dan de optie voor digitale handtekening die is ingesteld in SQL Server Data Tools (SSDT) of op de opdrachtregel van dtexec. In dit geval overschrijft de meer beperkende registerinstelling de andere instellingen.

Een handtekeningbeleid implementeren door een registerwaarde in te stellen

U kunt een optionele registerwaarde gebruiken om het beleid van een organisatie te beheren voor het laden van ondertekende of niet-ondertekende pakketten. Als u deze registerwaarde gebruikt, moet u deze registerwaarde maken op elke computer waarop Integration Services-pakketten worden uitgevoerd en waarop u het beleid wilt afdwingen. Nadat de registerwaarde is ingesteld, controleert of verifieert Integration Services de handtekeningen voordat pakketten worden geladen.

In de procedure in dit artikel wordt beschreven hoe u de optionele BlockedSignatureStates DWORD-waarde toevoegt aan de registersleutel HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\150\SSIS\Setup\DTSPath.

Notitie

Een registerlocatie onder 150 vertegenwoordigt SQL Server 2019, onder 140 staat voor SQL Server 2017, onder 130 staat voor SQL Server 2016, onder 120 staat voor SQL Server 2014 en onder 110 staat voor SQL Server 2012.

De gegevenswaarde in BlockedSignatureStates bepaalt of een pakket moet worden geblokkeerd als het een niet-vertrouwde handtekening heeft, een ongeldige handtekening heeft of niet is ondertekend.

Voor de status van handtekeningen die worden gebruikt om pakketten te ondertekenen, gebruikt de BlockedSignatureStates registerwaarde de volgende definities:

  • Een geldige handtekening is een handtekening die kan worden gelezen.

  • Een ongeldige handtekening is één waarvoor de ontsleutelde controlesom (de eenrichtingshash van de pakketcode die is versleuteld met een persoonlijke sleutel) niet overeenkomt met de ontsleutelde controlesom die wordt berekend als onderdeel van het proces voor het laden van Integration Services-pakketten.

  • Een vertrouwde handtekening is een handtekening die wordt gemaakt met behulp van een digitaal certificaat dat is ondertekend door een vertrouwde basiscertificeringsinstantie. Voor deze instelling hoeft de ondertekenaar niet te worden gevonden in de lijst met vertrouwde uitgevers van de gebruiker.

  • Een niet-vertrouwde handtekening is een handtekening die niet kan worden geverifieerd als uitgegeven door een vertrouwde basiscertificeringsinstantie of een handtekening die niet actueel is.

De volgende tabel bevat de geldige waarden van de DWORD-gegevens en het bijbehorende beleid.

Waarde Beschrijving
0 Geen administratieve beperking.
1 Ongeldige handtekeningen blokkeren.

Met deze instelling worden niet-ondertekende pakketten niet geblokkeerd.
2 Ongeldige en niet-vertrouwde handtekeningen blokkeren.

Met deze instelling worden niet-ondertekende pakketten niet geblokkeerd, maar worden zelf gegenereerde handtekeningen geblokkeerd.
3 Ongeldige en niet-vertrouwde handtekeningen en niet-ondertekende pakketten blokkeren

Met deze instelling worden ook zelf gegenereerde handtekeningen geblokkeerd.

Notitie

De aanbevolen instelling voor BlockedSignatureStates is 3. Deze instelling biedt de grootste bescherming tegen niet-ondertekende pakketten of handtekeningen die niet geldig of niet-vertrouwd zijn. De aanbevolen instelling is echter in alle omstandigheden niet geschikt. Zie het onderwerp 'Inleiding tot ondertekening van programmacode' in de MSDN-bibliotheek voor meer informatie over het ondertekenen van digitale assets.

Een handtekeningbeleid voor pakketten implementeren

  1. Klik in het menu Start op Uitvoeren.

  2. Typ in het dialoogvenster Uitvoeren Regedit-en klik vervolgens op OK.

  3. Zoek de registersleutel HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\SSIS.

  4. Klik met de rechtermuisknop op MSDTS, wijs Nieuwaan en klik vervolgens op DWORD-waarde.

  5. Werk de naam van de nieuwe waarde bij naar BlockedSignatureStates.

  6. Klik met de rechter muisknop op BlockedSignatureStates en klik op Wijzigen.

  7. Typ in het dialoogvenster DWORD-waarde bewerken de waarde 0, 1, 2 of 3.

  8. Klik op OK-.

  9. Klik in het menu Bestand op Afsluiten.

Een pakket ondertekenen met behulp van een digitaal certificaat

In dit onderwerp wordt beschreven hoe u een Integration Services-pakket ondertekent met een digitaal certificaat. U kunt samen met andere instellingen een digitale handtekening gebruiken om te voorkomen dat een pakket dat niet geldig is, wordt geladen en uitgevoerd.

Voordat u een Integration Services-pakket kunt ondertekenen, moet u de volgende taken uitvoeren:

  • Maak of haal een persoonlijke sleutel op om aan het certificaat te koppelen en sla deze persoonlijke sleutel op de lokale computer op.

  • Haal een certificaat op voor het ondertekenen van programmacode van een vertrouwde certificeringsinstantie. U kunt een van de volgende methoden gebruiken om een certificaat te verkrijgen of te maken:

    • Haal een certificaat op van een openbare, commerciële certificeringsinstantie die certificaten uitgeeft.

    • Haal een certificaat op van een certificaatserver waarmee een organisatie intern certificaten kan uitgeven. Je moet het basiscertificaat dat wordt gebruikt om het certificaat te ondertekenen toevoegen aan de Vertrouwde Basiscertificeringsinstanties opslag. Als u het basiscertificaat wilt toevoegen, kunt u de module Certificaten voor de Microsoft Management Console (MMC) gebruiken. Zie het onderwerp 'Certificate Services' in de MSDN-bibliotheek voor meer informatie.

    • Maak alleen uw eigen certificaat voor testdoeleinden. Met de PowerShell-opdracht New-SelfSignedCertificate kunt u een nieuw zelfondertekend certificaat maken met een beveiligd hash-algoritme voor testdoeleinden. Bijvoorbeeld:

        $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
    

    Als u het foutbericht 'Pakketondertekening is mislukt met fout 0x80090008 "Ongeldig algoritme opgegeven"' ziet, betekent dit dat uw certificaathashalgoritme niet veilig is. Wijzig uw certificaat naar een veiliger hash-algoritme zoals SHA512 en gebruik een CSP (Cryptografische Serviceprovider). Omdat het .NET Framework wordt bijgewerkt naar 4.7.2 voor SQL Server 2022 en het standaardalgoritme SignedXML wordt gewijzigd in SHA256 omdat SHA1 niet langer als veilig wordt beschouwd. De details verwijzen naar dit artikel .

    Zie de online-Help voor de module Certificaten voor meer informatie over certificaten. Zie het onderwerp 'Ondertekening en controlecode met Authenticode' in de MSDN-bibliotheek voor meer informatie over het ondertekenen van digitale assets.

  • Zorg ervoor dat het certificaat is ingeschakeld voor ondertekening van programmacode. Als u wilt bepalen of een certificaat is ingeschakeld voor ondertekening van programmacode, controleert u de eigenschappen van het certificaat in de module Certificaten.

  • Sla het certificaat op in de persoonlijke opslag.

Nadat u de vorige taken hebt voltooid, kunt u de volgende procedure gebruiken om een pakket te ondertekenen.

Een pakket ondertekenen

  1. Open in SQL Server Data Tools (SSDT) het Integration Services-project dat het pakket bevat dat moet worden ondertekend.

  2. Dubbelklik in Solution Explorer op het pakket om het te openen.

  3. Klik in SSIS Designer in het menu SSIS op Digital Signing.

  4. Klik in het dialoogvenster Digitale ondertekening op ondertekenen.

  5. In het dialoogvenster Een certificaat selecteren, selecteer een certificaat.

  6. (Optioneel) Klik op Certificaat weergeven om certificaatgegevens weer te geven.

  7. Klik op OK- om het dialoogvenster Een certificaat selecteren te sluiten.

  8. Klik op OK- om het dialoogvenster digitale ondertekening te sluiten.

  9. Als u het bijgewerkte pakket wilt opslaan, klikt u op Geselecteerde items opslaan in het menu Bestand.

    Hoewel het pakket is ondertekend, moet u Integration Services nu configureren om de digitale handtekening te controleren of te verifiëren voordat u het pakket laadt.

Naslaginformatie over de gebruikersinterface van het dialoogvenster voor digitale ondertekening

Gebruik het dialoogvenster Digitale ondertekening om een pakket te ondertekenen met een digitale handtekening of om de handtekening te verwijderen. Het dialoogvenster Digital Signing is beschikbaar via de optie Digital Signing in het menu SSIS in SQL Server Data Tools (SSDT).

Zie Een pakket ondertekenen met behulp van een digitaal certificaatvoor meer informatie.

Opties

ondertekenen
Klik om het dialoogvenster Certificaat selecteren te openen en selecteer het certificaat dat u wilt gebruiken.

verwijderen
Klik om de digitale handtekening te verwijderen.

Zie ook

SSIS-pakketten (Integration Services)
Overzicht van de Beveiliging (Integration Services)