Identificazione dell'origine dei pacchetti con firme digitaliIdentify the Source of Packages with Digital Signatures

Un pacchetto di Integration ServicesIntegration Services può essere firmato con un certificato digitale per identificarne l'origine.An Integration ServicesIntegration Services package can be signed with a digital certificate to identify its source. Dopo la firma di un pacchetto con un certificato digitale, è possibile configurare Integration ServicesIntegration Services per controllare o verificare la firma digitale prima del caricamento del pacchetto.After a package has been signed with a digital certificate, you can have Integration ServicesIntegration Services check the digital signature before loading the package. Per fare in modo che Integration ServicesIntegration Services controlli la firma, impostare un'opzione in SQL Server Data Tools (SSDT)SQL Server Data Tools (SSDT) o nell'utilità dtexec (dtexec.exe) oppure impostare un valore facoltativo del Registro di sistema.To have Integration ServicesIntegration Services check the signature, you set an option in either SQL Server Data Tools (SSDT)SQL Server Data Tools (SSDT) or in the dtexec utility (dtexec.exe), or set an optional registry value.

Firma di un pacchetto con un certificato digitaleSign a package with a digital certificate

Prima di poter firmare un pacchetto con un certificato digitale, è necessario ottenere o creare il certificato.Before you can sign a package with a digital certificate, you first have to obtain or create the certificate. Dopo aver ottenuto il certificato, è possibile utilizzarlo per la firma del pacchetto.After you have the certificate, you can then use this certificate to sign the package. Per altre informazioni su come ottenere un certificato e usarlo per firmare un pacchetto, vedere Firmare un pacchetto con un certificato digitale.For more information about how to obtain a certificate and sign a package with that certificate, see Sign a Package by Using a Digital Certificate.

Impostazione di un'opzione per la verifica della firma del pacchettoSet an option to check the package signature

SQL Server Data Tools (SSDT)SQL Server Data Tools (SSDT) e l'utilità dtexec includono un'opzione per configurare Integration ServicesIntegration Services per la verifica della firma digitale dei pacchetti firmati.Both SQL Server Data Tools (SSDT)SQL Server Data Tools (SSDT) and the dtexec utility have an option that configures Integration ServicesIntegration Services to check the digital signature of a signed package. È possibile usare SQL Server Data Tools (SSDT)SQL Server Data Tools (SSDT) o l'utilità dtexec a seconda che si voglia controllare tutti i pacchetti o solo alcuni pacchetti specifici:Whether you use SQL Server Data Tools (SSDT)SQL Server Data Tools (SSDT) or the dtexec utility depends on whether you want to check all packages or just specific ones:

  • Per controllare la firma digitale di tutti i pacchetti prima del caricamento in fase di progettazione, impostare l'opzione Controlla firma digitale al caricamento di un pacchetto in SQL Server Data Tools (SSDT)SQL Server Data Tools (SSDT).To check the digital signature of all packages before loading the packages at design time, set the Check digital signature when loading a package option in SQL Server Data Tools (SSDT)SQL Server Data Tools (SSDT). Questa opzione è un'impostazione globale per tutti i pacchetti di SQL Server Data Tools (SSDT)SQL Server Data Tools (SSDT).This option is a global setting for all packages in SQL Server Data Tools (SSDT)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.To check the digital signature of an individual package, specify the /VerifyS[igned] option when you use the dtexec utility to run the package. Per altre informazioni, vedere dtexec Utility.For more information, see dtexec Utility.

Impostazione di un valore del Registro di sistema per la verifica della firma del pacchettoSet a Registry value to check package signature

Integration ServicesIntegration Services supporta anche un valore facoltativo del Registro di sistema, BlockedSignatureStates, che può essere usato per gestire i criteri di un'organizzazione per il caricamento di pacchetti firmati e non firmati. also supports an optional registry value, BlockedSignatureStates, that you can use to manage an organization's policy for loading signed and unsigned packages. Il valore del Registro di sistema consente di impedire il caricamento di pacchetti non firmati o con firme non valide o non attendibili.The registry value can prevent packages from loading if the packages are unsigned, or have invalid or untrusted signatures. 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.For more information about how to set this registry value, see Implement a Signing Policy by Setting a Registry Value.

NOTA: il valore facoltativo BlockedSignatureStates del Registro di sistema può specificare un'impostazione più restrittiva rispetto all'opzione per la firma digitale impostata in SQL Server Data Tools (SSDT)SQL Server Data Tools (SSDT) o nella riga di comando dtexec .NOTE: The optional BlockedSignatureStates registry value can specify a setting that is more restrictive than the digital signature option set in SQL Server Data Tools (SSDT)SQL Server Data Tools (SSDT) or at the dtexec command line. In questo caso, l'impostazione del Registro di sistema più restrittiva ha la precedenza rispetto ad altre impostazioni.In this situation, the more restrictive registry setting overrides the other settings.

Implementare criteri per le firme tramite l'impostazione di un valore del Registro di sistema Implement a Signing Policy by Setting a Registry Value

È possibile utilizzare un valore facoltativo del Registro di sistema per gestire i criteri dell'organizzazione per il caricamento dei pacchetti firmati o non firmati.You can use an optional registry value to manage an organization's policy for loading signed or unsigned packages. Se si utilizza questo valore del Registro di sistema, è necessario crearlo in ogni computer in cui verranno eseguiti i pacchetti di Integration ServicesIntegration Services e in cui si desidera applicare i criteri.If you use this registry value, you must create this registry value on each computer on which Integration ServicesIntegration Services packages will run and on which you want to enforce the policy. Dopo l'impostazione del valore del Registro di sistema, Integration ServicesIntegration Services controllerà o verificherà le firme prima di caricare i pacchetti.After the registry value has been set, Integration ServicesIntegration Services will check or verify the signatures before loading packages.

La procedura in questo argomento descrive come aggiungere il valore facoltativo DWORD BlockedSignatureStates alla chiave del Registro di sistema HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\SSIS.This procedure in this topic describes how to add the optional BlockedSignatureStates DWORD value to the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\SSIS registry key. 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.The data value in BlockedSignatureStates determines whether a package should be blocked if it has an untrusted signature, has an invalid signature, or is unsigned. In relazione allo stato delle firme usate per firmare i pacchetti, il valore del Registro di sistema BlockedSignatureStates usa le definizioni seguenti:With regard to the status of signatures used to sign packages, the BlockedSignatureStates registry value uses the following definitions:

  • Per firma valida si intende una firma che può essere letta.A valid signature is one that can be read successfully.

  • Per firma non valida si intende una firma il cui checksum decrittografato, ovvero l'hash unidirezionale del codice del pacchetto crittografato mediante una chiave privata, non corrisponde al checksum decrittografato calcolato nell'ambito del processo di caricamento dei pacchetti di Integration ServicesIntegration Services .An invalid signature is one for which the decrypted checksum (the one-way hash of the package code encrypted by a private key) does not match the decrypted checksum that is calculated as part of the process of loading Integration ServicesIntegration Services packages.

  • Per firma attendibile si intende una firma creata tramite un certificato digitale firmato da un'autorità di certificazione radice attendibile.A trusted signature is one that is created by using a digital certificate signed by a Trusted Root Certification Authority. Con questa impostazione non è necessario che il firmatario sia contenuto nell'elenco degli autori attendibili.This setting does not require the signer to be found in the user's list of Trusted Publishers.

  • 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.An untrusted signature is one that cannot be verified as issued by a Trusted Root Certification Authority, or a signature that is not current.

    Nella tabella seguente sono elencati i valori validi dei dati DWORD e i criteri associati.The following table lists the valid values of the DWORD data and their associated policy.

ValoreValue DescrizioneDescription
00 Nessuna restrizione amministrativa.No administrative restriction.
11 Blocco delle firme non valide.Block invalid signatures.

Con questa impostazione non vengono bloccati i pacchetti non firmati.This setting does not block unsigned packages.
22 Blocco delle firme non valide e non attendibili.Block invalid and untrusted signatures.

Con questa impostazione non vengono bloccati i pacchetti non firmati, ma vengono bloccate le firme a generazione automatica.This setting does not block unsigned packages, but blocks self-generated signatures.
33 Blocco delle firme non valide e non attendibili e dei pacchetti non firmatiBlock invalid and untrusted signatures and unsigned packages

Con questa impostazione vengono bloccate anche le firme a generazione automatica.This setting also blocks self-generated signatures.
Nota

L'impostazione consigliata per BlockedSignatureStates è 3.The recommended setting for BlockedSignatureStates is 3. Questa impostazione garantisce la massima protezione da pacchetti non firmati o firme non valide o non attendibili,This setting provides the greatest protection against unsigned packages or signatures that are either not valid or untrusted. ma potrebbe non essere appropriata per tutte le circostanze.However, the recommended setting may not be appropriate in all circumstances. Per altre informazioni su come firmare elementi digitali, vedere l'argomento "Introduzione alla firma di codice" in MSDN Library.For more information about signing digital assets, see the topic, "Introduction to Code Signing," in the MSDN Library.

Per implementare criteri per le firme per i pacchettiTo implement a signing policy for packages

  1. Fare clic sul menu Start e scegliere Esegui.On the Start menu, click Run.

  2. Nella finestra di dialogo Esegui digitare regedite quindi fare clic su OK.In the Run dialog box, type Regedit, and then click OK.

  3. Individuare la chiave del Registro di sistema: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\SSISLocate the registry key, 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.Right-click MSDTS, point to New, and then click DWORD Value.

  5. Aggiornare il nome del nuovo valore impostandolo su BlockedSignatureStates.Update the name of the new value to BlockedSignatureStates.

  6. Fare clic con il pulsante destro del mouse su BlockedSignatureStates e quindi scegliere Modifica.Right-click BlockedSignatureStates and click Modify.

  7. Nella finestra di dialogo Modifica valore DWORD digitare il valore 0, 1, 2 o 3.In the Edit DWORD Value dialog box, type the value 0, 1, 2, or 3.

  8. Scegliere OK.Click OK.

  9. Scegliere Esci dal menu File.On the File menu, click Exit.

Firmare un pacchetto con un certificato digitale Sign a Package by Using a Digital Certificate

Questo argomento illustra come firmare un pacchetto di Integration ServicesIntegration Services con un certificato digitale.This topic describes how to sign an Integration ServicesIntegration Services package with a digital certificate. È possibile utilizzare una firma digitale, insieme ad altre impostazioni, per evitare il caricamento e l'esecuzione di pacchetti non validi.You can use a digital signature, together with other settings, to prevent a package that is not valid from loading and running.

Prima di poter firmare un pacchetto di Integration ServicesIntegration Services , è necessario effettuare le attività seguenti:Before you can sign an Integration ServicesIntegration Services package, you must do the following tasks:

  • Creare o ottenere una chiave privata da associare al certificato e archiviarla nel computer locale.Create or obtain a private key to associate with the certificate, and store this private key on the local computer.

  • Ottenere un certificato a scopo di firma del codice da un'autorità di certificazione attendibile.Obtain a certificate for the purpose of code signing from a trusted certification authority. Per ottenere o creare un certificato, è possibile utilizzare uno dei metodi seguenti:You can use one of the following methods to obtain or create a certificate:

    • Ottenere un certificato da un'autorità di certificazione commerciale pubblica che emette certificati.Obtain a certificate from a public, commercial certification authority that issues certificates.

    • Ottenere un certificato da un server dei certificati che consente alle organizzazioni di emettere certificati internamente.Obtain a certificate from a certificate server, that enables an organization to internally issue certificates. È necessario aggiungere il certificato radice usato per firmare il certificato nell'archivio Autorità di certificazione radice disponibili nell'elenco locale .You have to add the root certificate that is used to sign the certificate to the Trusted Root Certification Authorities store. Per aggiungere il certificato radice, è possibile utilizzare lo snap-in Certificati per MicrosoftMicrosoft Management Console (MMC).To add the root certificate, you can use the Certificates snap-in for the MicrosoftMicrosoft Management Console (MMC). Per altre informazioni, vedere l'argomento "Certificate Services" (Servizi certificati) in MSDN Library.For more information, see the topic, "Certificate Services," in the MSDN library.

    • Creare un certificato solo a scopo di testing.Create your own certificate for testing purposes only. Lo strumento di creazione certificati (Makecert.exe) genera certificati X.509 solo a scopo di testing.The Certificate Creation Tool (Makecert.exe) generates X.509 certificates for testing purposes. Per altre informazioni, vedere l'argomento "Strumento di creazione certificati (Makecert.exe)" in MSDN Library.For more information, see the topic, "Certificate Creation Tool (Makecert.exe)," in the MSDN Library.

      Per ulteriori informazioni sui certificati, vedere la Guida relativa allo snap-in Certificati.For more information about certificates, see the online Help for the Certificates snap-in. 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.For more information about how to sign digital assets, see the topic, "Signing and Checking Code with Authenticode," in the MSDN Library.

  • Verificare che il certificato sia stato abilitato per la firma di codice.Make sure that the certificate has been enabled for code signing. Per determinare se un certificato è abilitato per la firma di codice, controllare le proprietà del certificato nello snap-in Certificati.To determine whether a certificate is enabled for code signing, review the properties of the certificate in the Certificates snap-in.

  • Archiviare il certificato nell'archivio personale.Store the certificate in the Personal store.

    Dopo avere completato le attività precedenti, è possibile utilizzare la procedura descritta di seguito per firmare un pacchetto.After you have completed the previous tasks, you can use the following procedure to sign a package.

Per firmare un pacchettoTo sign a package

  1. In SQL Server Data Tools (SSDT)SQL Server Data Tools (SSDT)aprire il progetto di Integration ServicesIntegration Services che contiene il pacchetto da firmare.In SQL Server Data Tools (SSDT)SQL Server Data Tools (SSDT), open the Integration ServicesIntegration Services project that contains the package to be signed.

  2. In Esplora soluzioni fare doppio clic sul pacchetto per aprirlo.In Solution Explorer, double-click the package to open it.

  3. In Progettazione SSISSSIS scegliere Firma digitale dl menu SSIS.In SSISSSIS Designer, on the SSIS menu, click Digital Signing.

  4. Nella finestra di dialogo Firma digitale fare clic su Firma.In the Digital Signing dialog box, click Sign.

  5. Nella finestra di dialogo Seleziona certificato selezionare un certificato.In the Select a Certificate dialog box, select a certificate.

  6. (Facoltativo) Fare clic su Visualizza certificatoper visualizzare informazioni sul certificato.(Optional) Click View Certificate to view certificate information.

  7. Fare clic su OK per chiudere la finestra di dialogo Seleziona certificato .Click OK to close the Select a Certificate dialog box.

  8. Fare clic su OK per chiudere la finestra di dialogo Firma digitale .Click OK to close the Digital Signing dialog box.

  9. Per salvare il pacchetto aggiornato, scegliere Salva elementi selezionati dal menu File .To save the updated package, click Save Selected Items on the File menu.

    Anche se il pacchetto è stato firmato, è necessario configurare Integration ServicesIntegration Services per controllare o verificare la firma digitale prima del caricamento del pacchetto.Although the package has been signed, you must now configure Integration ServicesIntegration Services to check or verify the digital signature before loading the package.

Finestra di dialogo dell'interfaccia utente riferimento al firma digitale Digital Signing Dialog Box UI Reference

Utilizzare la finestra di dialogo Firma digitale per apporre una firma digitale a un pacchetto o rimuovere quella esistente.Use the Digital Signing dialog box to sign a package with a digital signature or to remove the signature. Per accedere alla finestra di dialogo Firma digitale , scegliere l'opzione Firma digitale dal menu SSIS in SQL Server Data Tools (SSDT)SQL Server Data Tools (SSDT).The Digital Signing dialog box is available from the Digital Signing option on the SSIS menu in SQL Server Data Tools (SSDT)SQL Server Data Tools (SSDT).

Per altre informazioni, vedere Firmare un pacchetto con un certificato digitale.For more information, see Sign a Package by Using a Digital Certificate.

OpzioniOptions

FirmaSign
Fare clic per aprire la finestra di dialogo Seleziona certificato e selezionare il certificato da usare.Click to open the Select Certificate dialog box, and select the certificate to use.

RimuoviRemove
Fare clic su questo pulsante per rimuovere la firma digitale.Click to remove the digital signature.

Vedere ancheSee also

Pacchetti di Integration Services (SSIS) Integration Services (SSIS) Packages
Cenni preliminari sulla sicurezza ( Integration Services )Security Overview (Integration Services)