Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Para implementar la revocación, es preciso que implemente una lista de revocaciones, que es un documento XML que utiliza el lenguaje de marcado de permisos extensible (XrML) y enumera las entidades que ya no deben tener acceso al contenido protegido por derechos. Debe crear listas de revocaciones que indiquen la fecha y la hora y dispongan de las firmas adecuadas con la herramienta de firma de lista de revocaciones (RLsigner.exe) que se proporciona con RMS.
Importante
Para firmar la lista de revocaciones con RLsigner.exe, debe guardar el archivo de lista de revocaciones como archivo Unicode.
Ejemplo de lista de revocaciones
Este tema presenta un ejemplo de lista de revocaciones completo que muestra todos los mecanismos de revocación posibles. Puede utilizar este ejemplo como modelo para crear sus propias listas de revocaciones.
Una lista de revocaciones es un archivo XML que usa el lenguaje XrML.
El elemento BODY contiene cuatro elementos secundarios:
- ISSUEDTIME. Contiene la fecha y la hora de emisión de la lista de revocaciones. RLsigner.exe inserta este elemento en el archivo; el elemento se proporciona en el ejemplo únicamente para demostrar la estructura global del archivo de lista de revocaciones.
- DESCRIPTOR. Contiene datos que identifican el archivo como lista de revocaciones.
- ISSUER. Contiene datos que identifican a la entidad que emite la lista de revocaciones.
- REVOCATIONLIST. Contiene elementos secundarios REVOKE que especifican las entidades que se revocan en esta lista.
A continuación se muestra un ejemplo del archivo de lista de revocaciones.
Nota
Los elementos ISSUEDTIME, PUBLICKEY y SIGNATURE se pueden omitir porque RLsigner.exe los inserta o los sobrescribe.
<?xml version="1.0" ?>
<XrML xml:space=”preserve” version=”1.2”>
<BODY type="LICENSE" version="3.0">
<ISSUEDTIME>...</ISSUEDTIME>
<DESCRIPTOR>
<OBJECT type="Revocation-List">
<ID type="MS-GUID">{d6373cba-01f1-4f32-ac58-260f580af0f8}</ID>
</OBJECT>
</DESCRIPTOR>
<ISSUER>
<OBJECT type="Revocation-List">
<ID type="acsii-tag">External revocation authority</ID>
<NAME>Revocation list name</NAME>
<ADDRESS type="URL">https://somedomain.com/revocation_list_file</ADDRESS>
</OBJECT>
<PUBLICKEY>...</PUBLICKEY>
</ISSUER>
<REVOCATIONLIST>
<REVOKE>...<\REVOKE>
<REVOKE>...<\REVOKE>
</REVOCATIONLIST>
<SIGNATURE>...</SIGNATURE>
</XrML>
Precaución
Al especificar la dirección URL en la lista de revocaciones, ya no se admite una ruta UNC en RMS con SP1 o RMS con SP2. Debe usar una dirección URL.
Una vez definidos los elementos REVOKE, la lista de revocaciones está lista para firmarse.
Con el elemento REVOKE
En la lista de revocaciones de ejemplo de la sección Ejemplo de lista de revocaciones, cada elemento REVOKE especifica una entidad de seguridad que se va a revocar. La etiqueta inicial tiene atributos category y type que definen lo que se revoca y según qué criterio de identificación. Los diversos elementos REVOKE pueden tener diferentes elementos secundarios, dependiendo de la acción especificada en los atributos category y type.
Para obtener más información acerca de la especificación de elementos REVOKE, consulte los siguientes ejemplos:
- Revocación de entidades principales basándose en una clave pública
- Revocación de certificados y licencias basándose en el GUID
- Revocación de certificados y licencias basándose en el valor de un algoritmo hash
- Revocación de certificados y licencias basándose en la clave pública del emisor
- Revocación de certificados y licencias basándose en el Id. del emisor
- Revocación de contenido basándose en el Id. del contenido
- Revocación de certificados según el identificador de la entidad de seguridad
- Revocación de entidades de seguridad según Windows Live ID
Revocación de entidades principales basándose en una clave pública
Este ejemplo revoca una entidad principal basándose en su clave pública. El contenido de la etiqueta <PUBLICKEY> proviene del nodo <BODY><ISSUEDPRINCIPALS><PRINCIPAL><PUBLICKEY> del certificado que emitió la clave.
<REVOKE category="principal" type="principal-key">
<PUBLICKEY>
<ALGORITHM>RSA-1024</ALGORITHM>
<PARAMETER name="public exponent">
<VALUE encoding="integer32">65537</VALUE>
</PARAMETER>
<PARAMETER name="modulus">
<VALUE encoding="base64" size="1024">
6Jn0kEAWU+1AFWtuUmBYL8Jza8tLhUv/BCmgcq/Pc08Au3DvXkH65s+0MEyZjM+71j3F1xaXUSst+wH2FjApkY1RxgL8VAKIuEvIy9hRrvY1YhJx/0Ite5fZeg2crUFrmoQgZzaJ50FvoakA2QMgZZgxoQmwiGE0y40cEJtIlE0=
</VALUE>
</PARAMETER>
</PUBLICKEY>
</REVOKE>
Revocación de certificados y licencias basándose en el GUID
Este ejemplo revoca un certificado o una licencia según su identificador único global (GUID). No puede utilizar un certificado ni una licencia con un GUID coincidente cuando se utilice esta lista de revocaciones. El contenido de la etiqueta <ID> en este ejemplo procede del nodo <BODY><DESCRIPTOR><OBJECT><ID> del certificado o la licencia que va a revocar. También puede revocar aplicaciones mediante este mecanismo si especifica el Id. del manifiesto de la aplicación.
<REVOKE category="license" type="license-id">
<OBJECT>
<ID type="MS-GUID">{06BCB94D-43E5-419f-B180-AA9FD321ED7A}</ID>
</OBJECT>
</REVOKE>
Revocación mediante un manifiesto de la aplicación
Para revocar mediante un manifiesto de la aplicación, debe extraer el Id., la clave pública o el algoritmo hash del emisor del manifiesto de la aplicación. Sin embargo, los manifiestos de aplicaciones están cifrados en base 64, para que la información no esté disponible como texto sin formato. Con el kit de desarrollo de software (SDK) de Servicios de Rights Management, puede desarrollarse un programa utilizando los métodos DRMConstructCertificateChain, DRMDeconstructCertificateChain y DRMDecode para descodificar el manifiesto de la aplicación y obtener la información necesaria.
Si desea impedir que una aplicación use contenido protegido por derechos, considere el uso de la exclusión de aplicaciones para prohibir que el clúster de RMS les otorgue licencias de uso a estas aplicaciones. La limitación de exclusión implica que no puede evitar que alguien con una licencia de uso válida descifre contenido protegido por derechos. Para obtener más información sobre la exclusión de aplicaciones, vea Exclusión de aplicaciones, anteriormente en este tema.
Revocación de certificados y licencias basándose en el valor de un algoritmo hash
Este ejemplo revoca un certificado o una licencia según su algoritmo hash. El contenido de la etiqueta <VALUE> es el algoritmo hash SHA-1 de los caracteres UNICODE de <BODY> a </BODY>, ambos inclusive, en el certificado o la licencia. Encontrará este valor de algoritmo hash en la sección <SIGNATURE> del certificado o la licencia. También puede revocar aplicaciones mediante este mecanismo si especifica el algoritmo hash del manifiesto de la aplicación.
<REVOKE category="license" type="license-hash">
<DIGEST>
<ALGORITHM>SHA1</ALGORITHM>
<VALUE encoding="base64" size="160">
ABfB4mcEslVCMEZR9reACqXHCoQ=
</VALUE>
</DIGEST>
</REVOKE>
Revocación mediante un manifiesto de la aplicación
Para revocar mediante un manifiesto de la aplicación, debe extraer el Id., la clave pública o el algoritmo hash del emisor del manifiesto de la aplicación. Sin embargo, los manifiestos de aplicación están cifrados en base 64, para que la información no esté disponible como texto sin formato. Con el kit de desarrollo de software (SDK) de los Servicios de Rights Management, puede desarrollarse un programa utilizando los métodos DRMConstructCertificateChain, DRMDeconstructCertificateChain y DRMDecode para descodificar el manifiesto de la aplicación y obtener la información necesaria.
Si desea impedir que una aplicación use contenido protegido por derechos, considere el uso de la exclusión de aplicaciones para prohibir que el clúster de RMS les otorgue licencias de uso a estas aplicaciones. La limitación de exclusión implica que no puede evitar que alguien con una licencia de uso válida descifre contenido protegido por RMS. Para obtener más información sobre la exclusión de aplicaciones, vea Exclusión de aplicaciones, anteriormente en este tema.
Revocación de certificados y licencias basándose en la clave pública del emisor
Este ejemplo revoca todos los certificados y licencias emitidos por el propietario de la clave pública especificada. El contenido de la etiqueta <PUBLICKEY> es el nodo <BODY><ISSUER><PUBLICKEY> de los certificados o las licencias que vaya a revocar.
<REVOKE category="license" type="issuer-key">
<PUBLICKEY>
<ALGORITHM>RSA-1024</ALGORITHM>
<PARAMETER name="public exponent">
<VALUE encoding="integer32">65537</VALUE>
</PARAMETER>
<PARAMETER name="modulus">
<VALUE encoding="base64" size="1024">
AAn0kEAWU+1AFWtuUmBYL8Jza8tLhUv/BCmgcq/Pc08Au3DvXkH65s+0MEyZjM+71j3F1xaXUSst+wH2FjApkY1RxgL8VAKIuEvIy9hRrvY1YhJx/0Ite5fZeg2crUFrmoQgZzaJ50FvoakA2QMgZZgxoQmwiGE0y40cEJtIlE0=
</VALUE>
</PARAMETER>
</PUBLICKEY>
</REVOKE>
Revocación de certificados y licencias basándose en el Id. del emisor
Este ejemplo revoca un conjunto de certificados o licencias según el id. del emisor. El contenido de la etiqueta <ID> es el nodo <BODY><ISSUER><OBJECT><ID> de los certificados o las licencias que vaya a revocar.
<REVOKE category="license" type="issuer-id">
<OBJECT type="MS-DRM-Server">
<ID type="MS-GUID">{2BE9E200-3040-41B9-8832-D4D0445EBBD6}</ID>
</OBJECT>
</REVOKE>
Nota
Al especificar el tipo de id., asegúrese de que no haya un retorno de carro entre el identificador único global (GUID) y la etiqueta de cierre. Si se agrega accidentalmente un retorno de carro, el cliente de RMS no podrá analizar la lista de revocaciones.
Revocación de contenido basándose en el Id. del contenido
Este ejemplo revoca contenido protegido según su id. de contenido. Éste es el método preferido que debe utilizar para revocar contenido, ya que el id. de contenido es igual en todas las licencias de uso que se crean a partir de una determinada licencia de publicación. El valor del nodo <OBJECT> puede encontrarse en el nodo <BODY><WORK><OBJECT> de una licencia de publicación o de uso para el contenido.
<REVOKE category="content" type="content-id">
<OBJECT type="Microsoft Office Document">
<ID type="MS-GUID">{8702641D-3512-4AA4-A584-84C703A5B5C0}</ID>
</OBJECT>
</REVOKE>
Nota
Al especificar el tipo de id., asegúrese de que no haya un retorno de carro entre el identificador único global (GUID) y la etiqueta de cierre. Si se agrega accidentalmente un retorno de carro, el cliente de RMS no podrá analizar la lista de revocaciones.
Revocación de entidades de seguridad según la cuenta de Windows
Este ejemplo revoca un usuario o una entidad de habilitación por su cuenta de Windows. El contenido del elemento <OBJECT> procede del nodo <BODY><ISSUEDPRINCIPALS><PRINCIPAL><OBJECT> de un certificado de cuenta de derechos o de una licencia de uso.
<REVOKE category="principal" type="principal-id">
<OBJECT type="Group-Identity">
<ID type="Windows">{Windows account SID}</ID>
<NAME>{E-mail address}</NAME>
</OBJECT>
</REVOKE>
Nota
Al especificar el tipo de identificador, asegúrese de que no haya un retorno de carro entre el SID de cuenta de Windows y la etiqueta de cierre. Si se agrega accidentalmente un retorno de carro, el cliente de RMS no podrá analizar la lista de revocaciones.
Revocación de entidades de seguridad según Windows Live ID
Este ejemplo revoca un usuario o una entidad de seguridad de habilitación por su Windows Live ID. El contenido del elemento <OBJECT> procede del nodo <BODY><ISSUEDPRINCIPALS><PRINCIPAL><OBJECT> de un certificado de cuenta de derechos o de una licencia de uso.
<REVOKE category="principal" type="principal-id">
<OBJECT type="Group-Identity">
<ID type="Passport">{PUID}</ID>
<NAME>michael@contoso.com</NAME>
</OBJECT>
</REVOKE>
Nota
Al especificar el tipo de id., asegúrese de que no haya un retorno de carro entre el identificador único principal (PUID) y la etiqueta de cierre. Si se agrega accidentalmente un retorno de carro, el cliente de RMS no podrá analizar la lista de revocaciones.
Inserción de una firma en una lista de revocaciones
Cuando termine de crear una lista de revocaciones, debe insertar una firma en ella como se explica en este tema. Después, puede poner a disposición de los usuarios la lista de revocaciones desde la dirección URL que especifique en la plantilla de directiva de permisos asociada.
El primer paso para insertar una firma es generar un par de claves y un archivo de clave para la lista de revocaciones, con la herramienta de nombre seguro (Sn.exe). La herramienta Sn.exe se incluye en el SDK 1.1 de Microsoft .NET Framework, que está disponible en el sitio web de Microsoft http://go.microsoft.com/fwlink/?LinkId=104796.
El archivo de lista de revocaciones se debe haber guardado como archivo Unicode para firmarlo con RLsigner.exe.
Para utilizar Sn.exe tanto para generar un nuevo par de claves como para escribirlo en un archivo, siga estos pasos:
Cree la clave privada. En el símbolo del sistema, escriba el siguiente comando y presione ENTRAR:
sn -k archivo_de_clave_privada .snk
donde archivo_de_clave_privada es el nombre del archivo de clave.
Use Sn.exe para extraer la clave pública del archivo de par de claves creado en el paso 1 y exportarlo a un archivo independiente. Escriba el siguiente comando y presione ENTRAR:
sn -p archivo_de_clave_privada archivo_de_clave_pública
donde archivo_de_clave_privada es el nombre del archivo de clave privada creado en el paso 1 y archivo_de_clave_pública es el nombre del archivo donde se almacenará la clave pública exportada.
Cambie la extensión del archivo de clave privada (creado en el paso 1) de .snk a .dat para usarlo con RLsigner.exe.
Use RLsigner.exe para insertar una firma en un archivo de lista de revocaciones. Esta herramienta se incluye con RMS. De forma predeterminada, se encuentra en el directorio %systemdrive%:\Archivos de programa\Servicios de Windows Rights Management\Tools.
Nota
RLsigner.exe no admite nombres de archivo con espacios.
Uso de RLsigner.exe
Cuando se ejecuta RLsigner.exe, crea primero una firma con la clave privada que se proporciona en el archivo de clave. Después, crea un archivo de salida que se basa en el archivo de lista de revocaciones proporcionado.
Importante
El archivo de lista de revocaciones se debe haber guardado en un archivo Unicode para usar RLsigner.exe.
Para usar RLsigner.exe con el fin de firmar la lista de revocaciones, escriba el siguiente comando en el símbolo del sistema:
rlsigner.exe input_file {-f key_file | -h container_name CSP} output_file
Utilice la siguiente información para completar los parámetros de entrada del comando:
Parámetro | Descripción |
---|---|
input_file | Nombre del archivo de lista de revocaciones compatible con XrML que ha preparado. |
key_file | Nombre del archivo que contiene las claves privada y pública que ha generado. |
container_name | Nombre del contenedor de la clave |
output_file | Nombre del archivo de lista de revocaciones firmado que la herramienta creará. |
Código de retorno | Descripción |
---|---|
0 | Éxito |
-1 | No se puede leer el archivo de origen. |
-2 | No se puede leer el archivo de clave. |
-3 | El archivo de clave no es válido. |
-4 | El archivo de origen no es válido. |
-5 | No se puede escribir el archivo de salida. |
-6 | Error desconocido |
VB
const EVT_SUCCESS = 0
const EVT_ERROR = 1
const EVT_WARNING = 2
const EVT_INFORMATION = 4
const EVT_AUDIT_SUCCESS = 8
const EVT_AUDIT_FAILURE = 16
Dim WshShell, oExec
Set WshShell = CreateObject( "WScript.Shell" )
Set oExec = WshShell.Exec("rlsigner.exe input_file key_file output_file")
Do While oExec.Status = 0
WScript.Sleep 100
Loop
if WshShell.ExitCode <> 0 Then
WshShell.LogEvent EVT_ERROR, "RLsigner failed with error """ + WshShell.ExitCode + """"
else
WshShell.LogEvent EVT_SUCCESS, "RLsigner completed successfully"
end if