Identificazione dell'origine dei pacchetti con firme digitali

Si applica a:yes SQL Server (tutte le versioni supportate) yes Integration Runtime SSIS in Azure Data Factory

Un pacchetto di Integration Services può essere firmato con un certificato digitale per identificarne l'origine. Dopo aver firmato un pacchetto con un certificato digitale, è possibile controllare la firma digitale di Integration Services prima di caricare il pacchetto. Per fare in modo che Integration Services controlli la firma, impostare un'opzione in SQL Server Data Tools (SSDT) o nell'utilità dtexec (dtexec.exe) o impostare un valore facoltativo del Registro di sistema.

Firma di un pacchetto con un certificato digitale

Prima di poter firmare un pacchetto con un certificato digitale, è necessario ottenere o creare il certificato. Dopo aver ottenuto il certificato, è possibile utilizzarlo per la firma del pacchetto. Per altre informazioni su come ottenere un certificato e usarlo per firmare un pacchetto, vedere Firmare un pacchetto con un certificato digitale.

Impostazione di un'opzione per la verifica della firma del pacchetto

Sia SQL Server Data Tools (SSDT) che l'utilità dtexec hanno un'opzione che configura Integration Services per controllare la firma digitale di un pacchetto firmato. Se si usa SQL Server Data Tools (SSDT) o l'utilità dtexec dipende dal fatto che si voglia controllare tutti i pacchetti o solo quelli specifici:

  • Per controllare la firma digitale di tutti i pacchetti prima di caricare i pacchetti in fase di progettazione, impostare l'opzione Controlla firma digitale durante il caricamento di un pacchetto in SQL Server Data Tools (SSDT). Questa opzione è un'impostazione globale per tutti i pacchetti in SQL Server Data Tools (SSDT).

  • Per controllare la firma digitale di un singolo pacchetto, specificare l'opzione /VerifyS[igned] quando si usa l'utilità dtexec per eseguire il pacchetto. Per altre informazioni, vedere dtexec Utility.

Impostazione di un valore del Registro di sistema per la verifica della firma del pacchetto

Integration Services supporta anche un valore facoltativo del Registro di sistema , BlockedSignatureStates, che è possibile usare per gestire i criteri di un'organizzazione per il caricamento di pacchetti firmati e non firmati. Il valore del Registro di sistema consente di impedire il caricamento di pacchetti non firmati o con firme non valide o non attendibili. Per altre informazioni su come impostare questo valore del Registro di sistema, vedere Implementare criteri per le firme tramite l'impostazione di un valore del Registro di sistema.

Nota

Il valore facoltativo del Registro di sistema BlockedSignatureStates può specificare un'impostazione più restrittiva rispetto all'opzione di firma digitale impostata in SQL Server Data Tools (SSDT) o nella riga di comando dtexec. In questo caso, l'impostazione del Registro di sistema più restrittiva ha la precedenza rispetto ad altre impostazioni.

Implementazione di criteri per le firme impostando un valore del Registro di sistema

È possibile utilizzare un valore facoltativo del Registro di sistema per gestire i criteri dell'organizzazione per il caricamento dei pacchetti firmati o non firmati. Se si utilizza questo valore del Registro di sistema, è necessario creare questo valore del Registro di sistema in ogni computer in cui verranno eseguiti i pacchetti di Integration Services e in cui si desidera applicare i criteri. Dopo aver impostato il valore del Registro di sistema, Integration Services verificherà o verificherà le firme prima del caricamento dei pacchetti.

La procedura descritta in questo articolo descrive come aggiungere il valore DWORD BlockedSignatureStates facoltativo alla chiave del Registro di sistema HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\150\SSIS\Setup\DTSPath.

Nota

Un percorso del Registro di sistema inferiore a 150 rappresenta SQL Server 2019, sotto 140 rappresenta SQL Server 2017, sotto 130 rappresenta SQL Server 2016, sotto 120 rappresenta SQL Server 2014 e sotto 110 rappresenta SQL Server 2012.

Il valore dei dati in BlockedSignatureStates determina se un pacchetto debba essere bloccato se contiene una firma non attendibile o non valida oppure se non è firmato.

Per lo stato delle firme usate per firmare i pacchetti, il valore del Registro di sistema BlockedSignatureStates usa le definizioni seguenti:

  • Per firma valida si intende una firma che può essere letta.

  • Una firma non valida è una per cui il checksum decrittografato (l'hash unidirezionale del codice del pacchetto crittografato da una chiave privata) non corrisponde al checksum decrittografato calcolato come parte del processo di caricamento dei pacchetti di Integration Services.

  • Per firma attendibile si intende una firma creata tramite un certificato digitale firmato da un'autorità di certificazione radice attendibile. Con questa impostazione non è necessario che il firmatario sia contenuto nell'elenco degli autori attendibili.

  • Per firma non attendibile si intende una firma che non può essere verificata in riferimento al rilascio da parte di un'autorità di certificazione radice attendibile o una firma non corrente.

Nella tabella seguente sono elencati i valori validi dei dati DWORD e i criteri associati.

valore Descrizione
0 Nessuna restrizione amministrativa.
1 Blocco delle firme non valide.

Con questa impostazione non vengono bloccati i pacchetti non firmati.
2 Blocco delle firme non valide e non attendibili.

Con questa impostazione non vengono bloccati i pacchetti non firmati, ma vengono bloccate le firme a generazione automatica.
3 Blocco delle firme non valide e non attendibili e dei pacchetti non firmati

Con questa impostazione vengono bloccate anche le firme a generazione automatica.

Nota

L'impostazione consigliata per BlockedSignatureStates è 3. Questa impostazione garantisce la massima protezione da pacchetti non firmati o firme non valide o non attendibili, ma potrebbe non essere appropriata per tutte le circostanze. Per altre informazioni su come firmare elementi digitali, vedere l'argomento "Introduzione alla firma di codice" in MSDN Library.

Per implementare criteri per le firme per i pacchetti

  1. Fare clic sul menu Start e scegliere Esegui.

  2. Nella finestra di dialogo Esegui digitare regedite quindi fare clic su OK.

  3. Individuare la chiave del Registro di sistema: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\SSIS

  4. Fare clic con il pulsante destro del mouse su MSDTS, scegliere Nuovoe quindi Valore DWORD.

  5. Aggiornare il nome del nuovo valore impostandolo su BlockedSignatureStates.

  6. Fare clic con il pulsante destro del mouse su BlockedSignatureStates e quindi scegliere Modifica.

  7. Nella finestra di dialogo Modifica valore DWORD digitare il valore 0, 1, 2 o 3.

  8. Fare clic su OK.

  9. Scegliere Esci dal menu File.

Firma di un pacchetto tramite certificato digitale

Questo argomento descrive come firmare un pacchetto di Integration Services con un certificato digitale. È possibile utilizzare una firma digitale, insieme ad altre impostazioni, per evitare il caricamento e l'esecuzione di pacchetti non validi.

Prima di poter firmare un pacchetto di Integration Services, è necessario eseguire le attività seguenti:

  • Creare o ottenere una chiave privata da associare al certificato e archiviarla nel computer locale.

  • Ottenere un certificato a scopo di firma del codice da un'autorità di certificazione attendibile. Per ottenere o creare un certificato, è possibile utilizzare uno dei metodi seguenti:

    • Ottenere un certificato da un'autorità di certificazione commerciale pubblica che emette certificati.

    • Ottenere un certificato da un server dei certificati che consente alle organizzazioni di emettere certificati internamente. È necessario aggiungere il certificato radice usato per firmare il certificato nell'archivio Autorità di certificazione radice disponibili nell'elenco locale . Per aggiungere il certificato radice, è possibile usare lo snap-in Certificati per Microsoft Management Console (MMC). Per altre informazioni, vedere l'argomento "Certificate Services" (Servizi certificati) in MSDN Library.

    • Creare un certificato solo a scopo di testing. Lo strumento di creazione certificati (Makecert.exe) genera certificati X.509 solo a scopo di testing. Per altre informazioni, vedere l'argomento "Strumento di creazione certificati (Makecert.exe)" in MSDN Library.

    Per ulteriori informazioni sui certificati, vedere la Guida relativa allo snap-in Certificati. Per altre informazioni sulla firma di risorse digitali, vedere l'argomento "Signing and Checking Code with Authenticode" (Firma e verifica del codice con Authenticode) in MSDN Library.

  • Verificare che il certificato sia stato abilitato per la firma di codice. Per determinare se un certificato è abilitato per la firma di codice, controllare le proprietà del certificato nello snap-in Certificati.

  • Archiviare il certificato nell'archivio personale.

Dopo avere completato le attività precedenti, è possibile utilizzare la procedura descritta di seguito per firmare un pacchetto.

Per firmare un pacchetto

  1. In SQL Server Data Tools (SSDT) aprire il progetto di Integration Services che contiene il pacchetto da firmare.

  2. In Esplora soluzioni fare doppio clic sul pacchetto per aprirlo.

  3. In Progettazione SSIS scegliere Firma digitale dal menu SSIS.

  4. Nella finestra di dialogo Firma digitale fare clic su Firma.

  5. Nella finestra di dialogo Seleziona certificato selezionare un certificato.

  6. (Facoltativo) Fare clic su Visualizza certificatoper visualizzare informazioni sul certificato.

  7. Fare clic su OK per chiudere la finestra di dialogo Seleziona certificato .

  8. Fare clic su OK per chiudere la finestra di dialogo Firma digitale .

  9. Per salvare il pacchetto aggiornato, scegliere Salva elementi selezionati dal menu File .

    Anche se il pacchetto è stato firmato, è ora necessario configurare Integration Services per controllare o verificare la firma digitale prima di caricare il pacchetto.

Riferimento all'interfaccia utente della finestra di dialogo Firma digitale

Utilizzare la finestra di dialogo Firma digitale per apporre una firma digitale a un pacchetto o rimuovere quella esistente. La finestra di dialogo Firma digitale è disponibile dall'opzione Firma digitale nel menu SSIS in SQL Server Data Tools (SSDT).

Per altre informazioni, vedere Firmare un pacchetto con un certificato digitale.

Opzioni

Firma
Fare clic per aprire la finestra di dialogo Seleziona certificato e selezionare il certificato da usare.

Rimuovi
Fare clic su questo pulsante per rimuovere la firma digitale.

Vedere anche

Pacchetti di Integration Services (SSIS)
Panoramica sulla sicurezza (Integration Services)