Configurare la crittografia a chiave doppia

Descrizione del servizio Microsoft Purview

Descrizione del servizio per: Microsoft Purview

Segui questi passaggi generali per configurare DKE. Dopo aver completato questi passaggi, gli utenti finali possono proteggere i dati altamente sensibili con la crittografia a doppia chiave.

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

  2. Creare un'etichetta con crittografia a doppia chiave. Nel portale di Microsoft Purview passare a Protezione delle informazioni e creare una nuova etichetta con crittografia a chiave doppia. Vedere Limitare l'accesso al contenuto usando etichette di riservatezza per applicare la crittografia.

  3. Configurare il Registro di sistema nei dispositivi client in modo da poter usare le etichette di Crittografia a chiave doppia. Quindi, proteggere i dati selezionando l'etichetta Crittografia a doppia chiave sulla barra multifunzione Riservatezza in Microsoft Office.

Esistono diversi modi per completare alcuni dei passaggi per distribuire la crittografia a chiave doppia. Questo articolo fornisce istruzioni dettagliate affinché gli amministratori meno esperti riescano a distribuire correttamente il servizio. Se hai familiarità nel farlo, puoi scegliere di usare i tuoi metodi.

Distribuire DKE

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

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 Double Key Encryption
  3. Modificare le impostazioni dell'applicazione
  4. Genera 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 dei file protetti dalle etichette HYOK alle etichette DKE

Al termine, puoi crittografare documenti e file utilizzando DKE. Per informazioni, vedere Applicare le 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 8.0 SDK. Scaricare e installare l'SDK da Download .NET 8.0.

Visual Studio Code. Scarica Visual Studio Code da https://code.visualstudio.com/. Una volta installato, esegui Visual Studio Code e seleziona Visualizza>estensioni. Installare queste estensioni.

  • C# per Visual Studio Code

  • Gestione pacchetti NuGet

Risorse Git. Scarica e installa una delle opzioni seguenti.

OpenSSL. È necessario che OpenSSL sia installato per generare chiavi di test dopo aver distribuito DKE. Assicurati di richiamarlo correttamente dal percorso delle variabili di ambiente. Ad esempio, vedere "Aggiungere la directory di installazione al percorso" in https://www.osradar.com/install-openssl-windows/ per i dettagli.

Clonare il repository GitHub DKE

Microsoft fornisce i file di origine DKE in un repository GitHub. Cloni il repository per compilare il progetto in locale per l'uso da parte della tua organizzazione. Il repository GitHub DKE si trova all'indirizzo https://github.com/Azure-Samples/DoubleKeyEncryptionService.

Le seguenti istruzioni 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, seleziona Codice. Nella versione dell'interfaccia utente potrebbe essere presente 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 Crittografia a doppia chiave da GitHub.

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

    Opzione GIT:Clone di Visual Studio Code.

  4. Nella casella di testo incolla l'URL copiato da Git e seleziona Clona da GitHub.

  5. Nella finestra di dialogo Seleziona cartella visualizzata, individuare e selezionare un percorso in cui memorizzare il repository. Seleziona Apri.

    Il repository si apre in Visual Studio Code e visualizza il ramo Git corrente in basso a sinistra. Il ramo deve essere main. Ad esempio:

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

  6. Se non sei nel ramo principale, selezionalo. In Visual Studio Code seleziona il ramo e scegli main dall'elenco di rami visualizzato.

    Importante

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

Ora il repository di origine DKE è configurato localmente. Successivamente, modificare le impostazioni dell'applicazione per l'organizzazione.

Modificare le impostazioni dell'applicazione

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

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

Individuazione del file appsettings.json per DKE.

Impostazioni di accesso con chiave

Scegliere se usare l'e-mail o l'autorizzazione del ruolo. DKE supporta solo uno di questi metodi di autenticazione alla volta.

  • Autorizzazione Email. 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 LDAP.

Per impostare le impostazioni di accesso alle chiavi per DKE usando l'autorizzazione e-mail
  1. Apri il file appsettings.json e individua l'impostazione AuthorizedEmailAddress .

  2. Aggiungere l'indirizzo o gli indirizzi di posta elettronica che si desidera 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. racchiuso tra virgolette doppie. Lasciare le virgolette al loro posto. 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 della posta elettronica.

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

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

  2. Aggiungere i nomi dei gruppi di Active Directory da autorizzare. Separare più nomi di gruppi 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 indicante il metodo di autorizzazione del ruolo.

Impostazioni del tenant e delle chiavi

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 sostituirla <tenantid> con l'ID tenant, assicurandosi di mantenere la barra alla fine dell'ID tenant. È possibile individuare l'ID tenant passando al 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 esterno B2B al proprio archivio chiavi, è necessario includere anche questi tenant esterni come parte dell'elenco delle autorità emittenti valide.

Individua il JwtAudiencefile . Sostituire il valore "https://dkeservice.contoso.com" segnaposto nel codice JSON con il nome host del computer in cui si desidera eseguire il servizio DKE.

Importante

Il valore per 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 un GUID in modo casuale.
  • JwtAuthorization. Sostituire {tenant-id} con l'ID tenant.

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

{
  "TokenValidationParameters": {
    "ValidIssuers": [
      "https://sts.windows.net/9c99431e-b513-44be-a7d9-e7b50002d4b/"
    ]
  },
  "Logging": {
    "LogLevel": {
      "Default": "Warning"
    }
  },
  "AllowedHosts": "*",
  "JwtAudience": "https://dkeservice.contoso.com/",
  "JwtAuthorization": "https://login.microsoftonline.com/{tenant-id}/oauth2/v2.0/authorize",
  "RoleAuthorizer": {
    "LDAPPath": ""
  },
  "TestKeys": [
    {
      "Name": "TestKey1",
      "Id": "DCE1CC21-FF98-4424-8FF4-9914BD19A1BE"
    }
  ]
}

Genera chiavi di test

Dopo aver definito le impostazioni dell'applicazione, sei pronto per generare chiavi di test pubbliche e private.

Per generare le chiavi:

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

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

  3. Genera 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 è installato OpenSSL versione 3 o successiva, 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. Genera la chiave pubblica.

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

  7. In un editor di testo aprire privkeynopass.pem. Copiare tutto il contenuto del 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 righe nelle PublicPem sezioni AND PrivatePem .

    Importante

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

  9. In Visual Studio Code individuare il 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. Sostituisci 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.

Ora sei pronto per costruire il tuo 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 Tasks: Run build task (Esegui attività di compilazione).

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

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

    1. Scegliere Crea tasks.json da modello.

      Crea tasks.json file da un modello per DKE.

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

      Seleziona il modello corretto per DKE.

    3. Nella sezione build individuare il percorso del file customerkeystore.csproj . In caso contrario, aggiungere la riga seguente:

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

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

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

La configurazione è completa. Prima di pubblicare l'archivio chiavi, in appsettings.json, per l'impostazione JwtAudience, assicurarsi che il valore del nome host 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.

È preferibile usare altri metodi per distribuire le chiavi. Selezionare il metodo più adatto per l'organizzazione.

Per le distribuzioni pilota, è possibile eseguire la distribuzione in Azure e iniziare subito.

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

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

  1. Nel browser accedere al portale di Azure di Microsoft e passare a Servizi> app web create>.

  2. Creare un nuovo gruppo di risorse o selezionarne uno esistente.

  3. Specificare un nome per l'istanza, ad esempio contosodke1. Questo nome non corrisponde al nome nel file di configurazione. Il valore specificato per il nome è anche WebAppInstanceName.

  4. Nel piano tariffario selezionare una dimensione che consenta domini personalizzati, ad esempio Basic B1.

  5. Per Pubblica, seleziona il codice e per Stack di runtime, seleziona .NET 8 (LTS).

  6. Seleziona Rivedi + Crea

Ad esempio:

Creare un'app Web

  1. Nell'app web appena creata, vai su "Impostazioni", "Domini personalizzati", seleziona Aggiungi dominio personalizzato

  2. In Provider di dominio selezionare Tutti gli altri servizi di dominio

  3. In Dominio immettere il nome host del computer in cui si desidera installare il servizio DKE.

Importante

Assicurarsi che il nome host sia uguale a quello definito per l'impostazione JwtAudience nel file appsettings.json.

  1. Nel DNS pubblico eseguire le modifiche suggerite come indicato nella sezione Convalida dominio e selezionare Convalida.

Ad esempio:

Aggiungere un dominio personalizzato.

  1. Per pubblicare le chiavi generate, eseguire le operazioni seguenti:

Ad esempio, FTP

Pubblica tramite ZipDeployUI

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

    Ad esempio: https://dkeservice-ctaugtfwh7d3c3c.scm.westcentralus-01.azurewebsites.net/ZipDeployUI

  2. Avviare un prompt di PowerShell.

  3. 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 .

  4. Esegui: dotnet publish

    La finestra di output visualizza la directory in cui è stata distribuita la pubblicazione.

    Ad esempio: customer-key-store\src\customer-key-store\bin\Debug\net8.0\publish\

  5. Invia 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.

  6. Trascinare il file .zip creato nel sito ZipDeployUI aperto in precedenza.

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

Convalidare la distribuzione

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

Esegui:

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

Ad esempio:

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

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

Nel nome della chiave viene fatta distinzione tra maiuscole e minuscole. Immettere il nome della chiave così come appare nel file appsettings.json.

Registrare l'archivio chiavi

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

Per registrare il servizio DKE:

  1. Nel browser aprire il portale di Azure di Microsoft e passare a Tutti i servizi>Registrazioni delle app diidentità>.

  2. Selezionare Nuova registrazione e immettere un nome significativo.

  3. Selezionare un tipo di account dalle opzioni visualizzate.

    Ad esempio:

    Registrazione di una nuova app.

  4. Nella parte inferiore della pagina selezionare Registrati per creare la nuova registrazione dell'app.

  5. Nella nuova registrazione dell'app, nel riquadro sinistro, in Gestisci, selezionare Autenticazione.

  6. Selezionare Aggiungi una piattaforma.

  7. Nel popup Configura piattaforme selezionare Web.

  8. In URI di reindirizzamento immettere l'URI del servizio di crittografia a doppia chiave. Immettere l'URL del servizio app, inclusi il nome host e 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 del 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 Esponi un'API, accanto a URI ID applicazione immettere l'URL del servizio app, inclusi il nome host e il dominio, quindi selezionare Imposta.

  12. Sempre nella pagina Esporre un'API , nell'area Ambiti definiti da questa API , selezionare Aggiungi un ambito. 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. Definisce gli eventuali valori rimanenti necessari.

    4. Selezionare Aggiungi ambito.

    5. Seleziona Salva in alto per salvare le modifiche.

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

    Nella nuova applicazione client:

    1. Definire l'ID client come d3590ed6-52b3-4102-aeff-aad2292ab01c. Questo valore corrisponde all'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. Seleziona Salva in alto per salvare le modifiche.

    5. Ripetere questi passaggi, ma questa volta definire l'ID client come 00001111-aaaa-2222-bbbb-3333cccc4444. Questo valore è l'ID client di Purview Information Protection.

Il tuo servizio DKE è ora registrato. Continuare creando etichette utilizzando DKE.

Creare etichette di riservatezza con DKE

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

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

Selezionare Usa crittografia a chiave doppia nel portale di Microsoft Purview.

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

Nota

Potrebbero essere necessarie fino a 24 ore prima che i client si aggiornino con le nuove etichette.

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

Se lo desideri, una volta completata la configurazione DKE, puoi migrare il contenuto protetto usando le 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 per la protezione delle informazioni.

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

Altre opzioni di distribuzione

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

Contatta direttamente questi fornitori per ulteriori informazioni e indicazioni sulle loro soluzioni DKE HSM sul mercato.

Configurare i client per l'applicazione delle etichette di riservatezza DKE

Completare questa attività in ogni dispositivo client.

  1. Verificare che in ogni client siano definiti i valori del Registro di sistema seguenti. Creare chiavi del Registro di sistema non già esistenti:

    [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\MSIPC\flighting]
    "DoubleKeyProtection"=dword:00000001
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSIPC\flighting]
    "DoubleKeyProtection"=dword:00000001