Share via


Configurar el cifrado de doble clave

Se aplica a: Cifrado de clave doble de Microsoft Purview, Microsoft Purview, Azure Information Protection

Descripción del servicio para: Microsoft Purview

Siga estos pasos generales para configurar DKE. Una vez completados estos pasos, los usuarios finales pueden proteger los datos altamente confidenciales con el cifrado de doble clave.

  1. Implemente el servicio DKE como se describe en este artículo. Asegúrese de que el entorno cumple los requisitos mínimos del sistema y las licencias. Para obtener más información, consulte Requisitos del sistema y licencias para DKE.

  2. Cree una etiqueta con el cifrado de doble clave. En el portal de cumplimiento Microsoft Purview, vaya a Protección de la información y cree una nueva etiqueta con Cifrado de doble clave. Consulte Restricción del acceso al contenido mediante etiquetas de confidencialidad para aplicar el cifrado.

  3. Configure el Registro en dispositivos cliente para que pueda usar etiquetas de cifrado de doble clave. A continuación, proteja los datos seleccionando la etiqueta Double Key Encrypted en la cinta de opciones Confidencialidad de Microsoft Office.

Hay varias maneras de completar algunos de los pasos para implementar el cifrado de doble clave. En este artículo se proporcionan instrucciones detalladas para que los administradores con menos experiencia implementen correctamente el servicio. Si se siente cómodo al hacerlo, puede elegir usar sus propios métodos.

Implementación de DKE

En este artículo y en el vídeo de implementación se usa Azure como destino de implementación para el servicio DKE. Si va a realizar la implementación en otra ubicación, debe proporcionar sus propios valores.

Siga estos pasos generales para configurar el cifrado de doble clave para su organización.

  1. Instalación de requisitos previos de software para el servicio DKE
  2. Clonación del repositorio de GitHub de cifrado de clave doble
  3. Modificación de la configuración de la aplicación
  4. Generación de claves de prueba
  5. Compile el proyecto.
  6. Implementación del servicio DKE y publicación del almacén de claves
  7. Validar la implementación
  8. Registro del almacén de claves
  9. Creación de etiquetas de confidencialidad mediante DKE
  10. Migración de archivos protegidos de etiquetas HYOK a etiquetas DKE

Cuando haya terminado, puede cifrar documentos y archivos mediante DKE. Para obtener información, vea Aplicar etiquetas de confidencialidad a los archivos y el correo electrónico en Office.

Instalación de requisitos previos de software para el servicio DKE

Instale estos requisitos previos en el equipo donde desea instalar el servicio DKE.

SDK de .NET Core 7.0. Descargue e instale el SDK desde Descargar .NET Core 7.0.

Visual Studio Code. Descargue Visual Studio Code de https://code.visualstudio.com/. Una vez instalado, ejecute Visual Studio Code y seleccione Ver>extensiones. Instale estas extensiones.

  • C# para Visual Studio Code

  • Administrador de paquetes NuGet

Recursos de Git. Descargue e instale una de las siguientes opciones.

Openssl Debe tener instalado OpenSSL para generar claves de prueba después de implementar DKE. Asegúrese de invocarla correctamente desde la ruta de acceso de las variables de entorno. Por ejemplo, consulte "Agregar el directorio de instalación a PATH" en https://www.osradar.com/install-openssl-windows/ para obtener más información.

Clonación del repositorio de GitHub DKE

Microsoft proporciona los archivos de origen DKE en un repositorio de GitHub. Clone el repositorio para compilar el proyecto localmente para el uso de su organización. El repositorio de GitHub DKE se encuentra en https://github.com/Azure-Samples/DoubleKeyEncryptionService.

Las instrucciones siguientes están destinadas a los usuarios de git o Visual Studio Code inexpertos:

  1. En el explorador, vaya a: https://github.com/Azure-Samples/DoubleKeyEncryptionService.

  2. Hacia el lado derecho de la pantalla, seleccione Código. La versión de la interfaz de usuario podría mostrar un botón Clonar o descargar . A continuación, en la lista desplegable que aparece, seleccione el icono de copia para copiar la dirección URL en el Portapapeles.

    Por ejemplo:

    Clone el repositorio del servicio Double Key Encryption desde GitHub.

  3. En Visual Studio Code, seleccione Ver>paleta de comandos y seleccione Git: Clonar. Para ir a la opción de la lista, empiece a escribir git: clone para filtrar las entradas y, a continuación, selecciónela en la lista desplegable. Por ejemplo:

    Visual Studio Code opción GIT:Clone.

  4. En el cuadro de texto, pegue la dirección URL que copió de Git y seleccione Clonar desde GitHub.

  5. En el cuadro de diálogo Seleccionar carpeta que aparece, vaya a y seleccione una ubicación para almacenar el repositorio. Seleccione Abrir.

    El repositorio se abre en Visual Studio Code y muestra la rama de Git actual en la parte inferior izquierda. La rama debe ser principal. Por ejemplo:

    Captura de pantalla del repositorio DKE en Visual Studio Code que muestra la rama principal.

  6. Si no está en la rama principal, selecciónela. En Visual Studio Code, seleccione la rama y elija principal en la lista de ramas que se muestra.

    Importante

    Al seleccionar la rama principal, se garantiza que tiene los archivos correctos para compilar el proyecto. Si no elige la rama correcta, se producirá un error en la implementación.

Ahora tiene el repositorio de origen DKE configurado localmente. A continuación, modifique la configuración de la aplicación para su organización.

Modificación de la configuración de la aplicación

Para implementar el servicio DKE, debe modificar los siguientes tipos de configuración de aplicación:

La configuración de la aplicación se modifica en el archivo appsettings.json. Este archivo se encuentra en el repositorio DoubleKeyEncryptionService que clonó localmente en DoubleKeyEncryptionService\src\customer-key-store. Por ejemplo, en Visual Studio Code, puede ir al archivo como se muestra en la siguiente imagen.

Buscar el archivo appsettings.json para DKE.

Configuración de acceso de clave

Elija si desea usar el correo electrónico o la autorización de roles. DKE solo admite uno de estos métodos de autenticación a la vez.

  • Email autorización. Permite que su organización autorice el acceso a las claves solo en función de las direcciones de correo electrónico.

  • Autorización de roles. Permite que su organización autorice el acceso a claves basadas en grupos de Active Directory y requiere que el servicio web pueda consultar LDAP.

Para establecer la configuración de acceso de clave para DKE mediante la autorización por correo electrónico
  1. Abra el archivo appsettings.json y busque la AuthorizedEmailAddress configuración.

  2. Agregue la dirección de correo electrónico o las direcciones que desea autorizar. Separe varias direcciones de correo electrónico con comillas dobles y comas. Por ejemplo:

    "AuthorizedEmailAddress": ["email1@company.com", "email2@company.com ", "email3@company.com"]
    
  3. Busque la LDAPPath configuración y quite el texto If you use role authorization (AuthorizedRoles) then this is the LDAP path. entre comillas dobles. Deje las comillas dobles en su lugar. Cuando haya terminado, la configuración debería tener este aspecto.

    "LDAPPath": ""
    
  4. Busque la AuthorizedRoles configuración y elimine toda la línea.

Esta imagen muestra el archivo appsettings.json con el formato correcto para la autorización por correo electrónico.

El archivo appsettings.json que muestra el método de autorización por correo electrónico.

Para establecer la configuración de acceso de clave para DKE mediante la autorización de roles
  1. Abra el archivo appsettings.json y busque la AuthorizedRoles configuración.

  2. Agregue los nombres de grupo de Active Directory que desea autorizar. Separe varios nombres de grupo con comillas dobles y comas. Por ejemplo:

    "AuthorizedRoles": ["group1", "group2", "group3"]
    
  3. Busque la LDAPPath configuración y agregue el dominio de Active Directory. Por ejemplo:

    "LDAPPath": "contoso.com"
    
  4. Busque la AuthorizedEmailAddress configuración y elimine toda la línea.

Esta imagen muestra el archivo appsettings.json con el formato correcto para la autorización de roles.

appsettings.json archivo que muestra el método de autorización de roles.

Configuración de inquilinos y claves

La configuración de clave y el inquilino de DKE se encuentran en el archivo appsettings.json .

Para configurar los valores de inquilino y clave para DKE
  1. Abra el archivo appsettings.json .

  2. Busque la ValidIssuers configuración y reemplace por <tenantid> el identificador de inquilino. Para localizar el identificador de inquilino, vaya a la Azure Portal y vea las propiedades del inquilino. Por ejemplo:

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

Nota:

Si desea habilitar el acceso B2B externo al almacén de claves, también deberá incluir estos inquilinos externos como parte de la lista de emisores válidos.

Busque .JwtAudience Reemplace por <yourhostname> el nombre de host de la máquina donde desea ejecutar el servicio DKE. Por ejemplo: "https://dkeservice.contoso.com"

Importante

El valor de JwtAudience debe coincidir exactamente con el nombre del host.

  • TestKeys:Name. Escriba un nombre para la clave. Por ejemplo: TestKey1
  • TestKeys:Id. Cree un GUID y introdúzcalo como TestKeys:ID valor. Por ejemplo, DCE1CC21-FF9B-4424-8FF4-9914BD19A1BE. Puede usar un sitio como generador de GUID en línea para generar aleatoriamente un GUID.

Esta imagen muestra el formato correcto para la configuración de inquilinos y claves en appsettings.json. LDAPPath está configurado para la autorización de roles.

Muestra la configuración de inquilino y clave correcta para DKE en el archivo appsettings.json.

Generación de claves de prueba

Una vez que haya definido la configuración de la aplicación, estará listo para generar claves de prueba públicas y privadas.

Para generar claves:

  1. En el menú Inicio de Windows, ejecute el símbolo del sistema de OpenSSL.

  2. Cambie a la carpeta donde desea guardar las claves de prueba. Los archivos que cree completando los pasos de esta tarea se almacenan en la misma carpeta.

  3. Genere la nueva clave de prueba.

    openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365
    
  4. Genere la clave privada.

    Si instaló OpenSSL versión 3 o posterior, ejecute el siguiente comando:

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

    De lo contrario, ejecute el siguiente comando:

    openssl rsa -in key.pem -out privkeynopass.pem -outform PEM
    
  5. Genere la clave pública.

    openssl rsa -in key.pem -pubout > pubkeyonly.pem
    
  6. En un editor de texto, abra pubkeyonly.pem. Copie todo el contenido del archivo pubkeyonly.pem , excepto la primera y la última línea, en la PublicPem sección del archivo appsettings.json .

  7. En un editor de texto, abra privkeynopass.pem. Copie todo el contenido del archivo privkeynopass.pem , excepto la primera y la última línea, en la PrivatePem sección del archivo appsettings.json .

  8. Quite todos los espacios en blanco y las líneas nuevas en las PublicPem secciones y PrivatePem .

    Importante

    Al copiar este contenido, no elimine ninguno de los datos PEM.

  9. En Visual Studio Code, vaya al archivo Startup.cs. Este archivo se encuentra en el repositorio DoubleKeyEncryptionService que clonó localmente en DoubleKeyEncryptionService\src\customer-key-store.

  10. Busque las siguientes líneas de código:

        #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. Reemplace estas líneas por el texto siguiente:

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

    Los resultados finales deben tener un aspecto similar al siguiente.

    startup.cs archivo para la versión preliminar pública.

Ahora está listo para compilar el proyecto DKE.

Compile el proyecto.

Use las siguientes instrucciones para compilar el proyecto DKE localmente:

  1. En Visual Studio Code, en el repositorio de servicios DKE, seleccione Ver>paleta de comandos y escriba build en el símbolo del sistema.

  2. En la lista, elija Tareas: Ejecutar tarea de compilación.

    Si no se encuentra ninguna tarea de compilación, seleccione Configurar tarea de compilación y cree una para .NET Core como se indica a continuación.

    Configure la tarea de compilación que falta para .NET.

    1. Elija Crear tasks.json a partir de la plantilla.

      Cree tasks.json archivo a partir de la plantilla para DKE.

    2. En la lista de tipos de plantilla, seleccione .NET Core.

      Seleccione la plantilla correcta para DKE.

    3. En la sección de compilación, busque la ruta de acceso al archivo customerkeystore.csproj . Si no está allí, agregue la línea siguiente:

      "${workspaceFolder}/src/customer-key-store/customerkeystore.csproj",
      
    4. Vuelva a ejecutar la compilación.

  3. Compruebe que no haya errores rojos en la ventana de salida.

    Si hay errores rojos, compruebe la salida de la consola. Asegúrese de que ha completado todos los pasos anteriores correctamente y que las versiones de compilación correctas están presentes.

La configuración ya está completa. Antes de publicar el almacén de claves, en appsettings.json, para la configuración jwtAudience, asegúrese de que el valor del nombre de host coincida exactamente con el nombre de host de App Service.

Implementación del servicio DKE y publicación del almacén de claves

Para las implementaciones de producción, implemente el servicio en una nube de terceros o publíquelo en un sistema local.

Es posible que prefiera otros métodos para implementar las claves. Seleccione el método que mejor funcione para su organización.

En el caso de las implementaciones piloto, puede implementar en Azure y empezar a trabajar de inmediato.

Para crear una instancia de Azure Web App para hospedar la implementación de DKE

Para publicar el almacén de claves, cree una instancia de Azure App Service para hospedar la implementación de DKE. A continuación, publique las claves generadas en Azure.

  1. En el explorador, inicie sesión en microsoft Azure Portal y vaya aAgregar de App Services>.

  2. Seleccione la suscripción y el grupo de recursos y defina los detalles de la instancia.

    • Escriba el nombre de host del equipo donde desea instalar el servicio DKE. Asegúrese de que es el mismo nombre que el definido para la configuración jwtAudience en el archivo appsettings.json . El valor que se proporciona para el nombre también es WebAppInstanceName.

    • En Publicar, seleccione código y, en Pila en tiempo de ejecución, seleccione .NET Core 3.1.

    Por ejemplo:

    Agregue el App Service.

  3. En la parte inferior de la página, seleccione Revisar y crear y, a continuación, seleccione Agregar.

  4. Realice una de las siguientes acciones para publicar las claves generadas:

Publicación a través de ZipDeployUI

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

    Por ejemplo: https://dkeservice.contoso.scm.azurewebsites.net/ZipDeployUI

  2. En el código base del almacén de claves, vaya a la carpeta customer-key-store\src\customer-key-store y compruebe que esta carpeta contiene el archivo customerkeystore.csproj .

  3. Ejecución: dotnet publish

    La ventana de salida muestra el directorio donde se implementó la publicación.

    Por ejemplo: customer-key-store\src\customer-key-store\bin\Debug\netcoreapp3.1\publish\

  4. Envíe todos los archivos del directorio de publicación a un archivo .zip. Al crear el archivo .zip, asegúrese de que todos los archivos del directorio están en el nivel raíz del archivo .zip.

  5. Arrastre y coloque el archivo .zip que creó en el sitio ZipDeployUI que abrió antes. Por ejemplo: https://dkeservice.scm.azurewebsites.net/ZipDeployUI

DKE se implementa y puede ir a las claves de prueba que ha creado. Continúe con Validar la implementación en este artículo.

Publicación a través de FTP

  1. Conéctese al App Service que creó antes.

    En el explorador, vaya a: Azure Portal>App Service> PanelFTP> deimplementación manualdel Centro> de implementación>.

  2. Copie las cadenas de conexión mostradas en un archivo local. Use estas cadenas para conectarse a la App Service web y cargar archivos a través de FTP.

    Por ejemplo:

    Copie las cadenas de conexión desde el panel FTP.

  3. En el código base del almacenamiento de claves, vaya al directorio customer-key-store\src\customer-key-store.

  4. Compruebe que este directorio contiene el archivo customerkeystore.csproj .

  5. Ejecución: dotnet publish

    La salida contiene el directorio donde se implementó la publicación.

    Por ejemplo: customer-key-store\src\customer-key-store\bin\Debug\netcoreapp3.1\publish\

  6. Envíe todos los archivos del directorio de publicación a un archivo ZIP. Al crear el archivo .zip, asegúrese de que todos los archivos del directorio están en el nivel raíz del archivo .zip.

  7. Desde el cliente FTP, use la información de conexión que copió para conectarse a la App Service. Cargue el archivo .zip que creó en el paso anterior en el directorio raíz de la aplicación web.

DKE está implementado y puede ir a las claves de prueba que ha creado. A continuación, valide la implementación.

Validar la implementación

Después de implementar DKE con uno de los métodos descritos en este artículo, valide la implementación y la configuración del almacén de claves.

Ejecutar:

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

Por ejemplo:

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

Asegúrese de que no aparezca ningún error en la salida. Cuando esté listo, registre el almacén de claves.

El nombre de la clave distingue mayúsculas de minúsculas. Escriba el nombre de la clave tal como aparece en el archivo appsettings.json.

Registro del almacén de claves

Los pasos siguientes le permiten registrar el servicio DKE. El registro del servicio DKE es el último paso para implementar DKE antes de empezar a crear etiquetas.

Para registrar el servicio DKE:

  1. En el explorador, abra microsoft Azure Portal y vaya a Todos los registrosde aplicacionesde identidad>de servicios>.

  2. Seleccione Nuevo registro y escriba un nombre significativo.

  3. Seleccione un tipo de cuenta en las opciones que se muestran.

    Por ejemplo:

    Nuevo registro de aplicaciones.

  4. En la parte inferior de la página, seleccione Registrar para crear el nuevo registro de aplicaciones.

  5. En el nuevo registro de aplicaciones, en el panel izquierdo, en Administrar, seleccione Autenticación.

  6. Seleccione Agregar una plataforma.

  7. En el menú emergente Configurar plataformas , seleccione Web.

  8. En URI de redireccionamiento, escriba el URI del servicio de cifrado de doble clave. Escriba la dirección URL de App Service, incluidos el nombre de host y el dominio.

    Por ejemplo: https://mydkeservicetest.com

    • La dirección URL que escriba debe coincidir con el nombre de host donde se implementa el servicio DKE.
    • El dominio debe ser un dominio comprobado.
    • En todos los casos, el esquema debe ser https.

    Asegúrese de que el nombre de host coincide exactamente con el nombre de host de App Service.

  9. En Concesión implícita, active la casilla Tokens de identificador .

  10. Seleccione Guardar para guardar los cambios.

  11. En el panel izquierdo, seleccione Exponer una API, junto a URI del identificador de aplicación, escriba la dirección URL de App Service, incluidos el nombre de host y el dominio, y, a continuación, seleccione Establecer.

  12. Todavía en la página Exponer una API , en el área Ámbitos definidos por esta API , seleccione Agregar un ámbito. En el nuevo ámbito:

    1. Defina el nombre del ámbito como user_impersonation.

    2. Seleccione los administradores y los usuarios que pueden dar su consentimiento.

    3. Defina los valores restantes necesarios.

    4. Seleccione Agregar ámbito.

    5. Seleccione Guardar en la parte superior para guardar los cambios.

  13. Todavía en la página Exponer una API , en el área Aplicaciones cliente autorizadas , seleccione Agregar una aplicación cliente.

    En la nueva aplicación cliente:

    1. Defina el identificador de cliente como d3590ed6-52b3-4102-aeff-aad2292ab01c. Este valor es el identificador de cliente de Microsoft Office y permite a Office obtener un token de acceso para el almacén de claves.

    2. En Ámbitos autorizados, seleccione el ámbito de user_impersonation .

    3. Seleccione Agregar aplicación.

    4. Seleccione Guardar en la parte superior para guardar los cambios.

    5. Repita estos pasos, pero esta vez, defina el identificador de cliente como c00e9d32-3c8d-4a7d-832b-029040e7db99. Este valor es el identificador de cliente de Information Protection.

El servicio DKE ya está registrado. Para continuar, cree etiquetas mediante DKE.

Creación de etiquetas de confidencialidad mediante DKE

En el portal de cumplimiento Microsoft Purview, cree una nueva etiqueta de confidencialidad y aplique el cifrado como lo haría en caso contrario. Seleccione Usar cifrado de doble clave y escriba la dirección URL del punto de conexión de la clave. Debe incluir el nombre de clave que proporcionó en la sección "TestKeys" del archivo appsettings.json en la dirección URL.

Por ejemplo: https://testingdke1.azurewebsites.net/KEYNAME

Seleccione Usar cifrado de doble clave en el portal de cumplimiento Microsoft Purview.

Las etiquetas DKE que agregue aparecen para los usuarios en las versiones más recientes de Aplicaciones Microsoft 365 para empresas.

Nota:

Los clientes pueden tardar hasta 24 horas en actualizarse con las nuevas etiquetas.

Migración de archivos protegidos de etiquetas HYOK a etiquetas DKE

Si lo desea, una vez que termine de configurar DKE, puede migrar el contenido que ha protegido mediante etiquetas HYOK a etiquetas DKE. Para migrar, use el analizador de Microsoft Purview Information Protection. Para empezar a usar el escáner, consulte Descripción del analizador de protección de la información.

Si no migra contenido, el contenido protegido de HYOK no se verá afectado.

Otras opciones de implementación

Nos damos cuenta de que, para algunos clientes de sectores altamente regulados, esta implementación de referencia estándar mediante claves basadas en software podría no ser suficiente para satisfacer sus obligaciones y necesidades de cumplimiento mejoradas. Nos asociamos con proveedores de módulos de seguridad de hardware (HSM) de terceros para admitir opciones mejoradas de administración de claves en el servicio DKE, entre las que se incluyen:

Póngase en contacto directamente con estos proveedores para obtener más información e instrucciones sobre sus soluciones de DKE HSM en el mercado.

Configuración de clientes para aplicar etiquetas de confidencialidad de DKE

En cada dispositivo cliente, complete esta tarea.

  1. Asegúrese de que los siguientes valores del Registro están definidos en cada cliente. Cree claves del Registro que aún no estén allí:
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\MSIPC\flighting]
"DoubleKeyProtection"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSIPC\flighting]
"DoubleKeyProtection"=dword:00000001