Share via


Configurare la crittografia a chiave doppia

Si applica a: Microsoft Purview Double Key Encryption, Microsoft Purview, Azure Information Protection

Descrizione del servizio per: Microsoft Purview

Seguire questa procedura generale per configurare DKE. Dopo aver completato questi passaggi, gli utenti finali possono proteggere i dati altamente sensibili con Crittografia a chiave doppia.

  1. Distribuire il servizio DKE come descritto in questo articolo. Assicurarsi che l'ambiente soddisfi i requisiti minimi di sistema e di licenza. Per altre informazioni, vedere Requisiti di sistema e licenze per DKE.

  2. Creare un'etichetta con crittografia a chiave doppia. Nel Portale di conformità di Microsoft Purview passare a Information Protection e creare una nuova etichetta con Crittografia a chiave doppia. Vedere Limitare l'accesso al contenuto usando le etichette di riservatezza per applicare la crittografia.

  3. Configurare il Registro di sistema nei dispositivi client in modo da poter usare etichette di crittografia a chiave doppia. Proteggere quindi i dati selezionando l'etichetta Double Key Encrypted dalla barra multifunzione Riservatezza in Microsoft Office.

Esistono diversi modi per completare alcuni dei passaggi per distribuire Crittografia a chiave doppia. Questo articolo fornisce istruzioni dettagliate in modo che gli amministratori meno esperti distribuino correttamente il servizio. Se si è a proprio agio, è possibile scegliere di usare i propri metodi.

Distribuire DKE

Questo articolo e il video di distribuzione usano Azure come destinazione di distribuzione per il servizio DKE. Se si esegue la distribuzione in un'altra posizione, è necessario specificare i propri valori.

Seguire questa procedura generale per configurare La crittografia a chiave doppia per l'organizzazione.

  1. Installare i prerequisiti software per il servizio DKE
  2. Clonare il repository GitHub di crittografia a chiave doppia
  3. Modificare le impostazioni dell'applicazione
  4. Generare chiavi di test
  5. Creazione del progetto
  6. Distribuire il servizio DKE e pubblicare l'archivio chiavi
  7. Convalidare la distribuzione
  8. Registrare l'archivio chiavi
  9. Creare etichette di riservatezza con DKE
  10. Eseguire la migrazione di file protetti dalle etichette HYOK alle etichette DKE

Al termine, è possibile crittografare documenti e file usando DKE. Per informazioni, vedere Applicare etichette di riservatezza ai file e alla posta elettronica in Office.

Installare i prerequisiti software per il servizio DKE

Installare questi prerequisiti nel computer in cui si vuole installare il servizio DKE.

.NET Core 7.0 SDK. Scaricare e installare l'SDK da Scaricare .NET Core 7.0.

Visual Studio Code. Scaricare Visual Studio Code da https://code.visualstudio.com/. Dopo l'installazione, eseguire Visual Studio Code e selezionare Visualizza>estensioni. Installare queste estensioni.

  • C# per Visual Studio Code

  • Gestione pacchetti NuGet

Risorse Git. Scaricare e installare una delle opzioni seguenti.

Openssl È necessario che OpenSSL sia installato per generare chiavi di test dopo la distribuzione di DKE. Assicurarsi di richiamarlo correttamente dal percorso delle variabili di ambiente. Per informazioni dettagliate, vedere ad esempio "Aggiungere la directory di installazione a PATH" in https://www.osradar.com/install-openssl-windows/ .

Clonare il repository GitHub DKE

Microsoft fornisce i file di origine DKE in un repository GitHub. Clonare il repository per compilare il progetto in locale per l'uso dell'organizzazione. Il repository DKE GitHub si trova in https://github.com/Azure-Samples/DoubleKeyEncryptionService.

Le istruzioni seguenti sono destinate agli utenti inesperti di Git o Visual Studio Code:

  1. Nel browser passare a: https://github.com/Azure-Samples/DoubleKeyEncryptionService.

  2. Verso il lato destro dello schermo selezionare Codice. La versione dell'interfaccia utente potrebbe mostrare un pulsante Clona o scarica . Quindi, nell'elenco a discesa visualizzato selezionare l'icona di copia per copiare l'URL negli Appunti.

    Ad esempio:

    Clonare il repository del servizio Di crittografia a chiave doppia da GitHub.

  3. In Visual Studio Code selezionare Visualizza>riquadro comandi e selezionare Git: Clona. Per passare all'opzione nell'elenco, iniziare a digitare git: clone per filtrare le voci e quindi selezionarle dall'elenco a discesa. Ad esempio:

    Opzione GIT:Clone di Visual Studio Code.

  4. Nella casella di testo incollare l'URL copiato da Git e selezionare Clona da GitHub.

  5. Nella finestra di dialogo Seleziona cartella visualizzata passare a e selezionare un percorso in cui archiviare il repository. Seleziona Apri.

    Il repository viene aperto in Visual Studio Code e visualizza il ramo Git corrente in basso a sinistra. Il ramo deve essere principale. Ad esempio:

    Screenshot del repository DKE in Visual Studio Code che visualizza il ramo principale.

  6. Se non si è nel ramo principale, selezionarlo. In Visual Studio Code selezionare il ramo e scegliere principale dall'elenco dei rami visualizzati.

    Importante

    Selezionando il ramo principale si garantisce di avere i file corretti per compilare il progetto. Se non si sceglie il ramo corretto, la distribuzione avrà esito negativo.

Il repository di origine DKE è ora configurato in locale. Modificare quindi le impostazioni dell'applicazione per l'organizzazione.

Modificare le impostazioni dell'applicazione

Per distribuire il servizio DKE, è necessario modificare i tipi di impostazioni dell'applicazione seguenti:

Modificare le impostazioni dell'applicazione nel file appsettings.json. Questo file si trova nel repository DoubleKeyEncryptionService clonato localmente in DoubleKeyEncryptionService\src\customer-key-store. Ad esempio, in Visual Studio Code è possibile passare al file come illustrato nell'immagine seguente.

Individuazione del file appsettings.json per DKE.

Impostazioni di accesso alle chiavi

Scegliere se usare la posta elettronica o l'autorizzazione del ruolo. DKE supporta solo uno di questi metodi di autenticazione alla volta.

  • Email autorizzazione. Consente all'organizzazione di autorizzare l'accesso alle chiavi solo in base agli indirizzi di posta elettronica.

  • Autorizzazione del ruolo. Consente all'organizzazione di autorizzare l'accesso alle chiavi in base ai gruppi di Active Directory e richiede che il servizio Web possa eseguire query su LDAP.

Per impostare le impostazioni di accesso alle chiavi per DKE usando l'autorizzazione di posta elettronica
  1. Aprire il file appsettings.json e individuare l'impostazione AuthorizedEmailAddress .

  2. Aggiungere l'indirizzo di posta elettronica o gli indirizzi da autorizzare. Separare più indirizzi di posta elettronica con virgolette doppie e virgole. Ad esempio:

    "AuthorizedEmailAddress": ["email1@company.com", "email2@company.com ", "email3@company.com"]
    
  3. Individuare l'impostazione LDAPPath e rimuovere il testo If you use role authorization (AuthorizedRoles) then this is the LDAP path. tra virgolette doppie. Lasciare in posizione le virgolette doppie. Al termine, l'impostazione dovrebbe essere simile alla seguente.

    "LDAPPath": ""
    
  4. Individuare l'impostazione AuthorizedRoles ed eliminare l'intera riga.

Questa immagine mostra il file appsettings.json formattato correttamente per l'autorizzazione tramite posta elettronica.

File appsettings.json che mostra il metodo di autorizzazione tramite posta elettronica.

Per impostare le impostazioni di accesso alle chiavi per DKE usando l'autorizzazione del ruolo
  1. Aprire il file appsettings.json e individuare l'impostazione AuthorizedRoles .

  2. Aggiungere i nomi dei gruppi di Active Directory da autorizzare. Separare più nomi di gruppo con virgolette doppie e virgole. Ad esempio:

    "AuthorizedRoles": ["group1", "group2", "group3"]
    
  3. Individuare l'impostazione LDAPPath e aggiungere il dominio di Active Directory. Ad esempio:

    "LDAPPath": "contoso.com"
    
  4. Individuare l'impostazione AuthorizedEmailAddress ed eliminare l'intera riga.

Questa immagine mostra il file appsettings.json formattato correttamente per l'autorizzazione del ruolo.

appsettings.json file che mostra il metodo di autorizzazione del ruolo.

Impostazioni del tenant e della chiave

Le impostazioni del tenant E della chiave DKE si trovano nel file appsettings.json .

Per configurare le impostazioni del tenant e della chiave per DKE
  1. Aprire il file appsettings.json .

  2. Individuare l'impostazione ValidIssuers e sostituire <tenantid> con l'ID tenant. È possibile individuare l'ID tenant passando alla portale di Azure e visualizzando le proprietà del tenant. Ad esempio:

    "ValidIssuers": [
      "https://sts.windows.net/9c99431e-b513-44be-a7d9-e7b500002d4b/"
    ]
    

Nota

Se si vuole abilitare l'accesso B2B esterno all'archivio chiavi, è anche necessario includere questi tenant esterni come parte dell'elenco degli emittenti validi.

Individuare l'oggetto JwtAudience. Sostituire <yourhostname> con il nome host del computer in cui si vuole eseguire il servizio DKE. Ad esempio: "https://dkeservice.contoso.com"

Importante

Il valore di JwtAudience deve corrispondere esattamente al nome dell'host.

  • TestKeys:Name. Immettere un nome per la chiave. Ad esempio: TestKey1
  • TestKeys:Id. Creare un GUID e immetterlo come TestKeys:ID valore. Ad esempio, DCE1CC21-FF9B-4424-8FF4-9914BD19A1BE. È possibile usare un sito come Online GUID Generator per generare in modo casuale un GUID.

Questa immagine mostra il formato corretto per le impostazioni del tenant e delle chiavi in appsettings.json. LDAPPath è configurato per l'autorizzazione del ruolo.

Mostra le impostazioni del tenant e della chiave corrette per DKE nel file appsettings.json.

Generare chiavi di test

Dopo aver definito le impostazioni dell'applicazione, è possibile generare chiavi di test pubbliche e private.

Per generare chiavi:

  1. Dal menu Start di Windows eseguire il prompt dei comandi OpenSSL.

  2. Passare alla cartella in cui si desidera salvare le chiavi di test. I file creati completando i passaggi di questa attività vengono archiviati nella stessa cartella.

  3. Generare la nuova chiave di test.

    openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365
    
  4. Generare la chiave privata.

    Se OpenSSL versione 3 o successiva è stato installato, eseguire il comando seguente:

    openssl rsa -in key.pem -out privkeynopass.pem -outform PEM -traditional
    

    In caso contrario, eseguire il comando seguente:

    openssl rsa -in key.pem -out privkeynopass.pem -outform PEM
    
  5. Generare la chiave pubblica.

    openssl rsa -in key.pem -pubout > pubkeyonly.pem
    
  6. In un editor di testo aprire pubkeyonly.pem. Copiare tutto il contenuto nel file pubkeyonly.pem , ad eccezione della prima e dell'ultima riga, nella PublicPem sezione del file appsettings.json .

  7. In un editor di testo aprire privkeynopass.pem. Copiare tutto il contenuto nel file privkeynopass.pem , ad eccezione della prima e dell'ultima riga, nella PrivatePem sezione del file appsettings.json .

  8. Rimuovere tutti gli spazi vuoti e le nuove linee nelle PublicPem sezioni e PrivatePem .

    Importante

    Quando si copia questo contenuto, non eliminare alcun dato PEM.

  9. In Visual Studio Code passare al file Startup.cs . Questo file si trova nel repository DoubleKeyEncryptionService clonato localmente in DoubleKeyEncryptionService\src\customer-key-store.

  10. Individuare le righe seguenti:

        #if USE_TEST_KEYS
        #error !!!!!!!!!!!!!!!!!!!!!! Use of test keys is only supported for testing,
        DO NOT USE FOR PRODUCTION !!!!!!!!!!!!!!!!!!!!!!!!!!!!!
        services.AddSingleton<ippw.IKeyStore, ippw.TestKeyStore>();
        #endif
    
  11. Sostituire queste righe con il testo seguente:

    services.AddSingleton<ippw.IKeyStore, ippw.TestKeyStore>();
    

    I risultati finali dovrebbero essere simili ai seguenti.

    startup.cs file per l'anteprima pubblica.

A questo momento si è pronti per compilare il progetto DKE.

Creazione del progetto

Usare le istruzioni seguenti per compilare il progetto DKE in locale:

  1. In Visual Studio Code, nel repository del servizio DKE selezionare Visualizza>riquadro comandi e quindi digitare build al prompt.

  2. Nell'elenco scegliere Attività: Esegui attività di compilazione.

    Se non sono presenti attività di compilazione, selezionare Configura attività di compilazione e crearne una per .NET Core come indicato di seguito.

    Configurare l'attività di compilazione mancante per .NET.

    1. Scegliere Crea tasks.json dal modello.

      Creare tasks.json file dal modello per DKE.

    2. Nell'elenco dei tipi di modello selezionare .NET Core.

      Selezionare il modello corretto per DKE.

    3. Nella sezione build individuare il percorso del file customerkeystore.csproj . Se non è presente, aggiungere la riga seguente:

      "${workspaceFolder}/src/customer-key-store/customerkeystore.csproj",
      
    4. Eseguire di nuovo la compilazione.

  3. Verificare che non siano presenti errori rossi nella finestra di output.

    Se sono presenti errori rossi, controllare l'output della console. Assicurarsi di aver completato correttamente tutti i passaggi precedenti e che siano presenti le versioni di compilazione corrette.

La configurazione è stata completata. Prima di pubblicare l'archivio chiavi, in appsettings.json, per l'impostazione JwtAudience, verificare che il valore per hostname corrisponda esattamente al nome host servizio app.

Distribuire il servizio DKE e pubblicare l'archivio chiavi

Per le distribuzioni di produzione, distribuire il servizio in un cloud di terze parti o pubblicarlo in un sistema locale.

È possibile preferire altri metodi per distribuire le chiavi. Selezionare il metodo più adatto all'organizzazione.

Per le distribuzioni pilota, è possibile distribuire in Azure e iniziare subito.

Per creare un'istanza di App Web di Azure per ospitare la distribuzione DKE

Per pubblicare l'archivio chiavi, creare un'istanza di Servizio app di Azure per ospitare la distribuzione DKE. Pubblicare quindi le chiavi generate in Azure.

  1. Nel browser accedere a Microsoft portale di Azure e passare aAggiungiservizi> app.

  2. Selezionare la sottoscrizione e il gruppo di risorse e definire i dettagli dell'istanza.

    • Immettere il nome host del computer in cui si vuole installare il servizio DKE. Assicurarsi che sia lo stesso nome di quello definito per l'impostazione JwtAudience nel file appsettings.json . Il valore specificato per il nome è anche WebAppInstanceName.

    • In Pubblica selezionare codice e, per Stack di runtime, selezionare .NET Core 3.1.

    Ad esempio:

    Aggiungere il servizio app.

  3. Nella parte inferiore della pagina selezionare Rivedi e crea e quindi aggiungi.

  4. Eseguire una delle operazioni seguenti per pubblicare le chiavi generate:

Pubblicare tramite ZipDeployUI

  1. Vai a https://<WebAppInstanceName>.scm.azurewebsites.net/ZipDeployUI.

    Ad esempio: https://dkeservice.contoso.scm.azurewebsites.net/ZipDeployUI

  2. Nella codebase per l'archivio chiavi passare alla cartella customer-key-store\src\customer-key-store e verificare che questa cartella contenga il file customerkeystore.csproj .

  3. Esecuzione: dotnet publish

    Nella finestra di output viene visualizzata la directory in cui è stata distribuita la pubblicazione.

    Ad esempio: customer-key-store\src\customer-key-store\bin\Debug\netcoreapp3.1\publish\

  4. Inviare tutti i file nella directory di pubblicazione a un file .zip. Quando si crea il file .zip, assicurarsi che tutti i file nella directory si trovino al livello radice del file .zip.

  5. Trascinare e rilasciare il file .zip creato nel sito ZipDeployUI aperto in precedenza. Ad esempio: https://dkeservice.scm.azurewebsites.net/ZipDeployUI

DKE viene distribuito ed è possibile passare alle chiavi di test create. Continuare a convalidare la distribuzione in questo articolo.

Pubblicare tramite FTP

  1. Connettersi al servizio app creato in precedenza.

    Nel browser passare a: dashboardFTPdidistribuzione> manuale >portale di Azure>servizio app>Deployment Center>.

  2. Copiare le stringhe di connessione visualizzate in un file locale. Usare queste stringhe per connettersi al servizio app Web e caricare i file tramite FTP.

    Ad esempio:

    Copiare le stringhe di connessione dal dashboard FTP.

  3. Nella codebase per l'archiviazione delle chiavi passare alla directory customer-key-store\src\customer-key-store.

  4. Verificare che questa directory contenga il file customerkeystore.csproj .

  5. Esecuzione: dotnet publish

    L'output contiene la directory in cui è stata distribuita la pubblicazione.

    Ad esempio: customer-key-store\src\customer-key-store\bin\Debug\netcoreapp3.1\publish\

  6. Inviare tutti i file nella directory di pubblicazione a un file ZIP. Quando si crea il file .zip, assicurarsi che tutti i file nella directory si trovino al livello radice del file .zip.

  7. Dal client FTP usare le informazioni di connessione copiate per connettersi al servizio app. Caricare il file .zip creato nel passaggio precedente nella directory radice dell'app Web.

DKE viene distribuito ed è possibile passare alle chiavi di test create. Convalidare quindi la distribuzione.

Convalidare la distribuzione

Dopo aver distribuito DKE usando uno dei metodi descritti in questo articolo, convalidare la distribuzione e le impostazioni dell'archivio chiavi.

Correre:

src\customer-key-store\scripts\key_store_tester.ps1 dkeserviceurl/mykey

Ad esempio:

key_store_tester.ps1 https://dkeservice.contoso.com/TestKey1

Assicurarsi che non vengano visualizzati errori nell'output. Quando si è pronti, registrare l'archivio chiavi.

Il nome della chiave fa distinzione tra maiuscole e minuscole. Immettere il nome della chiave come viene visualizzato nel file appsettings.json.

Registrare l'archivio chiavi

I passaggi seguenti consentono di registrare il servizio DKE. La registrazione del servizio DKE è l'ultimo passaggio nella distribuzione di DKE prima di poter iniziare a creare etichette.

Per registrare il servizio DKE:

  1. Nel browser aprire microsoft portale di Azure e passare a Tutte leregistrazioni dell'app diidentità>dei servizi>.

  2. Selezionare Nuova registrazione e immettere un nome significativo.

  3. Selezionare un tipo di account tra le opzioni visualizzate.

    Ad esempio:

    Registrazione nuova app.

  4. Nella parte inferiore della pagina selezionare Registra per creare la nuova registrazione app.

  5. Nel riquadro sinistro della nuova registrazione app selezionare Autenticazione in Gestisci.

  6. Selezionare Aggiungi una piattaforma.

  7. Nella finestra popup Configura piattaforme selezionare Web.

  8. In URI di reindirizzamento immettere l'URI del servizio di crittografia a chiave doppia. Immettere l'URL servizio app, inclusi sia il nome host che il dominio.

    Ad esempio: https://mydkeservicetest.com

    • L'URL immesso deve corrispondere al nome host in cui viene distribuito il servizio DKE.
    • Il dominio deve essere un dominio verificato.
    • In tutti i casi, lo schema deve essere https.

    Assicurarsi che il nome host corrisponda esattamente al nome host servizio app.

  9. In Concessione implicita selezionare la casella di controllo Token ID .

  10. Seleziona Salva per salvare le modifiche.

  11. Nel riquadro sinistro selezionare Esporre un'API, accanto a URI ID applicazione, immettere l'URL di servizio app, inclusi sia il nome host che il dominio, quindi selezionare Imposta.

  12. Sempre nella pagina Esporre un'API selezionare Aggiungi un ambito nell'area Ambiti definiti da questa API. Nel nuovo ambito:

    1. Definire il nome dell'ambito come user_impersonation.

    2. Selezionare gli amministratori e gli utenti che possono fornire il consenso.

    3. Definire i valori rimanenti necessari.

    4. Selezionare Aggiungi ambito.

    5. Selezionare Salva nella parte superiore per salvare le modifiche.

  13. Sempre nella pagina Esporre un'API selezionare Aggiungi un'applicazione client nell'area Applicazioni client autorizzate.

    Nella nuova applicazione client:

    1. Definire l'ID client come d3590ed6-52b3-4102-aeff-aad2292ab01c. Questo valore è l'ID client di Microsoft Office e consente a Office di ottenere un token di accesso per l'archivio chiavi.

    2. In Ambiti autorizzati selezionare l'ambito user_impersonation .

    3. Selezionare Aggiungi applicazione.

    4. Selezionare Salva nella parte superiore per salvare le modifiche.

    5. Ripetere questi passaggi, ma questa volta definire l'ID client come c00e9d32-3c8d-4a7d-832b-029040e7db99. Questo valore è l'ID client di information protection.

Il servizio DKE è ora registrato. Continuare creando etichette con DKE.

Creare etichette di riservatezza con DKE

Nel Portale di conformità di Microsoft Purview creare una nuova etichetta di riservatezza e applicare la crittografia come si farebbe in caso contrario. Selezionare Usa crittografia a chiave doppia e immettere l'URL dell'endpoint per la chiave. È necessario includere il nome della chiave specificato nella sezione "TestKeys" del file appsettings.json nell'URL.

Ad esempio: https://testingdke1.azurewebsites.net/KEYNAME

Selezionare Usa crittografia a chiave doppia nel Portale di conformità di Microsoft Purview.

Le etichette DKE aggiunte vengono visualizzate per gli utenti nelle versioni più recenti di Microsoft 365 Apps for enterprise.

Nota

L'aggiornamento dei client con le nuove etichette può richiedere fino a 24 ore.

Eseguire la migrazione di file protetti dalle etichette HYOK alle etichette DKE

Se si vuole, una volta completata la configurazione di DKE, è possibile eseguire la migrazione del contenuto protetto tramite etichette HYOK alle etichette DKE. Per eseguire la migrazione, usare lo scanner Microsoft Purview Information Protection. Per iniziare a usare lo scanner, vedere Informazioni sullo scanner di protezione delle informazioni.

Se non si esegue la migrazione del contenuto, il contenuto protetto HYOK rimane inalterato.

Altre opzioni di distribuzione

Ci rendiamo conto che per alcuni clienti in settori altamente regolamentati, questa implementazione di riferimento standard che usa chiavi basate su software potrebbe non essere sufficiente per soddisfare i loro obblighi e le loro esigenze di conformità avanzata. Collaboriamo con fornitori di moduli di sicurezza hardware (HSM) di terze parti per supportare opzioni avanzate di gestione delle chiavi nel servizio DKE, tra cui:

Per altre informazioni e indicazioni sulle soluzioni HSM DKE sul mercato, contattare direttamente questi fornitori.

Configurare i client per applicare le etichette di riservatezza DKE

In ogni dispositivo client completare questa attività.

  1. Assicurarsi che i valori del Registro di sistema seguenti siano definiti in ogni client. Creare chiavi del Registro di sistema che non sono già presenti:
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\MSIPC\flighting]
"DoubleKeyProtection"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSIPC\flighting]
"DoubleKeyProtection"=dword:00000001