criptolib/rsa v3 - editraneditran.indra.es/doc/iseries/criptografia/rs30usia.pdf · el servidor de...
Post on 26-Sep-2018
238 Views
Preview:
TRANSCRIPT
Servidor Criptográfico Software
CRIPTOlib/RSA V3.0
Servidor Criptográfico Software
Indra
Diciembre de 2.002
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 3
Í N D I C E
Pág.
1 INTRODUCCIÓN ...............................................................................................................4
2 EVOLUCIÓN DE LOS SISTEMAS DE SEGURIDAD ........................................................8
2.1 CRIPTOGRAFÍA DE CLAVE SECRETA O SIMÉTRICA.........................................................................10
2.2 CRIPTOGRAFÍA DE CLAVE PÚBLICA O ASIMÉTRICA ........................................................................13
2.3 CERTIFICADOS........................................................................................................................16
2.4 PKI’S.....................................................................................................................................18
3 SERVIDOR CRIPTOGRÁFICO RSA ...............................................................................22
3.1 TIPOS DE CLAVES ....................................................................................................................23
3.2 FICHERO DE CLAVES FICHKRSA .............................................................................................25
4 SERVICIOS DE GESTIÓN DEL FICHKRSA ...................................................................28
4.1 SCRFILE0 - INSTALACIÓN DEL FICHERO Y CARGA DEL REGISTRO DE CONTROL..............................28
4.2 SCRFILE1 - GENERACIÓN DE LAS DOS CLAVES DE TRANSPORTE DES ........................................30
5 SERVICIOS DE GESTIÓN DE CLAVES PÚBLICAS ......................................................32
5.1 SCRKGEN - GENERACIÓN DE UNA PAREJA DE CLAVES PÚBLICA Y PRIVADA...................................32
5.2 SCRKDEL - BORRADO DE UNA CLAVE PÚBLICA O PRIVADA DEL FICHKRSA .................................34
5.3 SCRKEXP - EXPORTAR UNA CLAVE PÚBLICA DEL FICHERO FICHKRSA .......................................35
5.4 SCRKIMP - IMPORTAR UNA CLAVE PÚBLICA AL FICHERO FICHKRSA...........................................37
6 SERVICIOS DE INTEGRIDAD Y AUTENTICACIÓN .......................................................40
6.1 SCRGFIR - GENERACIÓN DE UNA FIRMA DIGITAL ISO9796 ........................................................41
6.2 SCRVFIR - VERIFICACIÓN DE UNA FIRMA DIGITAL ISO9796........................................................43
7 SERVICIOS DE INTERCAMBIO DE CLAVES DES ........................................................48
7.1 SCRGDES - GENERACIÓN DE UNA CLAVE DES Y CIFRADO RSA.................................................49
7.2 SCRRDES - RECEPCIÓN DE UNA CLAVE DES CIFRADA RSA......................................................52
APÉNDICE A: Códigos de Retorno y Razón.....................................................................57
APÉNDICE B: Instalación del producto ............................................................................63
APÉNDICE C: Utilidades ....................................................................................................67
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Introducción
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 4
1 INTRODUCCIÓN
El Servidor de criptografía software CRIPTOlib/RSA de Indra en su versión 3.0 para
entornos MVS, utiliza técnicas criptográficas de claves públicas o asimétricas
basadas en el algoritmo estándar RSA, diseñado en el año 1977 por los profesores
Rivest, Shamir y Adleman, de cuyas iniciales proceden las siglas con las que es
conocido.
El algoritmo de clave pública RSA es el más utilizado, y desde sus orígenes este
algoritmo de cifrado se ha convertido en el prototipo de los de clave pública. Se
fundamenta en la exponenciación modular del producto de dos números primos
enteros de gran tamaño. La seguridad de este método radica en la dificultad de
factorizar dicho producto.
Los algoritmos de clave pública también se denominan de clave asimétrica debido a
que se utilizan claves distintas para cifrar y descifrar los datos. Cada usuario tiene
dos claves, una de ellas se hace pública y la otra es privada de cada usuario,
solucionando de esta manera el problema de la distribución de claves secretas o
simétricas.
Los mensajes cifrados con la clave pública sólo pueden ser descifrados con la clave
privada asociada. Esto permite enviar información cifrada con la clave pública de un
usuario con la garantía de que sólo él, que posee la clave privada, podrá tener
acceso al contenido del mensaje. Por otro lado los mensajes cifrados con la clave
privada sólo pueden ser descifrados con la clave pública; esta característica es la
base de la firma digital.
La firma digital identifica a los usuarios y autentifica los mensajes que se envían, a
la vez que garantiza la integridad de los datos. Para firmar digitalmente un mensaje
las aplicaciones cifran los datos, normalmente una función hash del mensaje a
enviar, con su clave privada, y lo envían al destinatario, el cual utilizará la clave
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Introducción
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 5
pública de la aplicación para verificar la identidad y autenticidad del mensaje
recibido.
Los algoritmos de clave asimétrica permiten una gestión racional de las claves, pero
son menos eficientes que los simétricos, de ahí que en la práctica se utilice una
combinación de ambos.
El cifrado de un mensaje normalmente se hace utilizando un algoritmo simétrico
(más rápido y eficiente), con una clave que se utiliza sólo durante una sesión
—clave de sesión—; los interlocutores intercambian esta clave de sesión utilizando
algoritmos asimétricos: el remitente selecciona una clave de sesión, la cifra con la
clave pública del destinatario, y se la envía a este.
El servidor de criptografía software CRIPTOlib/RSA interactúa con diferentes
productos criptográficos de clave secreta DES, proporcionando las API’s necesarias
para acceder a los servicios de los principales productos de criptografía DES
disponibles en el mercado:
• CRIPTOlib/DES de Indra versión 3.0
• TSS/4753 de IBM, modelo 12 o superior
• ICRF/ICSF de IBM
Este manual de usuario e instalación del servidor de criptografía software
CRIPTOlib/RSA tiene como finalidad el facilitar la instalación y el mantenimiento del
producto, así como proporcionar la información necesaria acerca de los servicios
criptográficos (interfaz con los programas de aplicación) que permitirán a las
aplicaciones definir Sistemas de Seguridad utilizando técnicas de criptografía de
clave pública.
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Introducción
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 6
En el segundo capítulo se hace una breve descripción de la evolución de los
Sistemas de Seguridad, enfocada principalmente a la situación actual de las
técnicas y métodos criptográficos modernos.
El tercer capítulo describe el servidor criptográfico, compuesto por un módulo de
seguridad y un fichero de claves denominado FICHKRSA. El módulo de seguridad
es una implementación software del algoritmo RSA y se encarga de suministrar las
funciones criptográficas.
El fichero de claves FICHKRSA almacena las claves públicas y privadas protegidas
con dos claves de Aplicación DES, de tal forma que las aplicaciones usuarias
pueden abstraerse del mantenimiento de las claves que residen en el fichero, y
garantizándose la necesaria seguridad del sistema.
A lo largo de este capítulo se analizarán los dos tipos de claves asimétricas,
públicas y privadas, sus características, los métodos de protección utilizados para
su almacenamiento seguro y la forma en que se utilizan para proteger la información
y en los procesos de firma digital.
En el cuarto capítulo se describen los servicios de que dispone el Administrador del
sistema para efectuar la instalación inicial del fichero de claves FICHKRSA, la
generación y la carga en el registro de control de las dos claves de Aplicación DES
que lo protegen, y la generación de las dos claves de Transporte y su incorporación
en el fichero de claves DES del producto criptográfico compatible.
En el capítulo quinto se describen los servicios criptográficos que proporciona el
servidor para el mantenimiento y la gestión de las claves públicas y privadas
almacenadas en el fichero de claves FICHKRSA, así como para facilitar la
distribución y el intercambio de las claves públicas.
El sexto capítulo describe los servicios de seguridad que permiten verificar que la
información transmitida o almacenada no ha sido alterada (integridad de los datos),
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Introducción
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 7
y asegurar que el remitente y el destinatario de la información son en realidad quien
dicen ser (autenticidad de los mensajes y no-repudiación). Los métodos utilizados
se basan en la obtención de firmas digitales conjuntamente con la utilización de
funciones hash.
En el séptimo y último capítulo se describen los servicios que proporciona el
servidor para realizar el intercambio de claves secretas DES utilizando el algoritmo
RSA. La combinación de los algoritmos de clave simétrica y de los algoritmos de
clave asimétrica permite crear sistemas de intercambio de claves seguros.
Finalmente y como apéndices se incluye la lista con los posibles códigos de error
que devuelven los servicios, la guía con los pasos a seguir para la instalación del
producto, y un conjunto de utilidades que facilitan la realización de las tareas de
propósito general frecuentemente utilizadas por las Aplicaciones.
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Evolución de los Sistemas de Seguridad
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 8
2 EVOLUCIÓN DE LOS SISTEMAS DE SEGURIDAD
En la actualidad el desarrollo de las comunicaciones electrónicas, unido al uso
masivo y generalizado de los ordenadores, hace posible la transmisión y
almacenamiento de grandes flujos de información confidencial que es necesario
proteger.
La revolución de la tecnología de información, conjuntamente con el desarrollo de la
infraestructura de comunicaciones y un nuevo entorno competitivo marcado por el
imparable desarrollo de Internet, está haciendo cambiar significativamente las
relaciones entre individuos y organizaciones en todo el mundo. Hay quien llega a
hablar de revolución social y de cambios drásticos en la forma de establecer
relaciones comerciales entre personas o entidades.
La diferencia principal introducida por este cambio en los comportamientos de
relación comercial, viene dada por la sustitución del formato papel por formatos
electrónicos. Y este cambio ha provocado la reactualización de ciertas amenazas
contra la seguridad de la operación, que en los usos tradicionales estaba resuelta.
Los servicios de seguridad aplicables al comercio basado en documentos en papel
y el basado en documentos electrónicos, requieren disponer de funciones análogas
tanto desde el punto de vista legal como desde el punto de vista comercial: los
documentos típicamente contienen firmas y fechas, necesitan protegerse de
posibles revelaciones de contenido, falsificación o destrucción, precisan ser
notariados y registrados o licenciados.
Aunque la trascendencia de los servicios de seguridad depende del contexto de la
organización, entre las amenazas de seguridad más importantes podemos destacar
las siguientes:
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Evolución de los Sistemas de Seguridad
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 9
• El remitente de la información ¿es en realidad quien dice ser? (servicios de
autenticación y control de acceso).
• La información recibida, ¿es la misma que fue enviada? (servicios de integridad
de los datos).
• La información enviada, ¿podrá ser espiada por un tercero? (servicios de
confidencialidad).
• ¿Podrá el remitente negar que la ha enviado, o el destinatario que la ha
recibido? (servicios de no repudio).
• ¿Podrá un tercero capturar la información para después eliminarla o reenviarla?
(servicios de integridad en la secuencia).
La probabilidad de que una de las amenazas descritas pueda llevarse a cabo, es
tanto mayor cuanto más abierta y mayor es el número de usuarios de la red por la
que viaja la información. En la situación actual, con un número creciente de
participantes, se deriva una necesidad también creciente de soluciones que eviten
que amenazas como las indicadas puedan llevarse a cabo.
LOS SISTEMAS TRADICIONALES FRENTE A LOS BASADOS EN ALGORITMOS
CRIPTOGRÁFICOS
La mayoría de los servicios actuales que se encuentran disponibles mediante las
tecnologías de la información, fundamentan su seguridad en la identificación de los
participantes a través de un nombre y/o de una contraseña (password). Este
sistema tradicional es adecuado si la comunicación se establece a través de una
red cerrada y donde todos los usuarios son conocidos de antemano.
Sin embargo, en el caso de redes abiertas —como Internet— no es posible
garantizar plenamente la confidencialidad de la información, así como la propia
identidad de los participantes.
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Evolución de los Sistemas de Seguridad
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 10
La solución a los problemas tradicionales pasa por la utilización de algoritmos
criptográficos. Cifrar es el proceso de transformar la información de tal manera que
solo sea inteligible para su destinatario; por otro lado, descifrar es el proceso por el
cual se hace inteligible la información cifrada.
Con la mayoría de los métodos actuales de criptografía, la seguridad no se basa en
el algoritmo criptográfico, que es ampliamente conocido, sino en el parámetro de
dicho algoritmo llamado clave, que se emplea para cifrar, para descifrar o para
ambas cosas. Descifrar con la clave correcta es fácil, hacerlo con la clave incorrecta
es muy difícil y en algunos casos, imposible en la práctica.
El tipo particular de transformación aplicada al texto claro o las características de
las claves utilizadas marcan la diferencia entre los diversos métodos criptográficos.
Las técnicas de criptografía se pueden clasificar en dos según el tipo de clave
utilizado, Criptografía de clave secreta o simétrica y Criptografía de clave pública o
asimétrica.
2.1 CRIPTOGRAFÍA DE CLAVE SECRETA O SIMÉTRICA
Los algoritmos de clave simétrica se caracterizan por el hecho que la clave para
cifrar puede ser calculada a partir de la clave para descifrar y viceversa. En la
mayoría de los casos, están basados en la existencia de una única clave que sirve
tanto para cifrar como para descifrar, y que deben conocer las dos partes que
intervienen en la relación telemática.
Toda la seguridad está basada en la privacidad de esta clave secreta, llamada
simétrica porque es la misma para el emisor y el receptor. Lógicamente dicha clave
tiene que permanecer secreta, lo que presupone que emisor y receptor se han
puesto de acuerdo previamente en la determinación de la misma, o bien que existe
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Evolución de los Sistemas de Seguridad
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 11
un centro de distribución de claves que se la ha hecho llegar a ambos por un canal
seguro.
Los algoritmos de clave simétrica son rápidos y eficientes, pero presentan varios
problemas operativos como la necesidad de que cada pareja de interlocutores
(emisor y receptor) compartan una misma clave, lo que dificulta la gestión de las
claves, y el hecho que con estos algoritmos no podamos garantizar completamente
el no-repudio (debido también a la compartición de la clave).
Además la confidencialidad y la autenticación, sólo podrán garantizarse mientras la
clave simétrica se mantenga en secreto entre cada par de interlocutores. Por todo
esto, el uso de estos algoritmos puede llegar a ser impracticable en grandes
comunidades (como es el caso de Internet).
Los algoritmos simétricos son más sencillos que los asimétricos, por ese motivo los
procesos son más simples y rápidos. Entre los algoritmos simétricos más utilizados,
podemos destacar:
• DES (Data Encryption Standard). Es un algoritmo de cifrado en bloques de 64
bits y con una longitud de clave de 56 bits, siendo el algoritmo simétrico más
extendido mundialmente. Data de mediados de los años setenta, cuando fue
adoptado como estándar por el Gobierno de los EE.UU., tras ganar el concurso
la propuesta presentada por la corporación IBM, inspirada en su sistema
propietario LUCIFER (clave de 128 bits).
La aprobación y modificación de la propuesta se hizo bajo la supervisión de la
NSA (National Security Agency), que fue la que impuso la modesta longitud de la
clave. El DES está considerado como un producto estratégico USA, por lo tanto,
no está permitida su exportación sin un permiso especial.
Durante más de 20 años el algoritmo no ha demostrado ninguna debilidad grave
en su diseño desde el punto de vista teórico, aunque a mediados de 1998, se
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Evolución de los Sistemas de Seguridad
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 12
demostró que un ataque por la fuerza bruta era viable, debido a la escasa
longitud que emplea en su clave.
• Triple DES Para evitar el problema de la clave corta y continuar utilizando el
DES, existe un sistema que consiste en aplicar varias veces el algoritmo con
diferentes claves al mensaje original (ya que el DES no presenta estructura de
grupo), llamado triple DES o TDES. Se cifra con una primera clave de 56 bits, el
resultado se descifra con una segunda clave también de 56 bits, y por último se
vuelve a cifrar con la primera. La clave resultante utilizada en este proceso es la
concatenación de las dos claves, con una longitud efectiva de 112 bits. Si se
utilizan tres claves diferentes, en lugar de reutilizar la primera en el tercer paso,
la clave resultante sería de 168 bits.
Actualmente los algoritmos con claves de menos de 56 bits no son seguros, ya que
existe la posibilidad real, y económicamente viable, de descifrar cualquier mensaje
simplemente probando todas las posibles claves distintas. Las claves de menos de
56 bits son “rompibles” con los medios adecuados, recomendándose la utilización
de claves de 128 bits.
La organización de estándares de los EE.UU. (NIST, National Institute of Standards
and Technology), decide en 1997 convocar un concurso público para buscar un
nuevo algoritmo simétrico estándar. El nuevo sistema se llamará AES (Advanced
Encryption Standard) y el algoritmo utilizado AEA (Advanced Encryption Algorithm).
El 2 de octubre de 2000 se proclamó el algoritmo vencedor, Rinjdael ganaba la
partida a sus competidores. A partir de este momento, el NIST definirá los
protocolos estándar de este algoritmo antes de publicar la propuesta definitiva,
prevista para mediados del año 2001.
Esta elección influirá mucho en la industria de los sistemas simétricos, ya que el
AES será utilizado para todas las comunicaciones oficiales y militares de los
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Evolución de los Sistemas de Seguridad
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 13
EE.UU., y por lo tanto, se producirá hardware y software del algoritmo en grandes
cantidades y a un precio asequible.
Además, al ser de dominio público, el algoritmo será analizado y probado por los
expertos más prestigiosos del mundo, por lo que probablemente, las empresas
privadas lo adoptarán en un plazo de tiempo razonable.
2.2 CRIPTOGRAFÍA DE CLAVE PÚBLICA O ASIMÉTRICA
En 1976 Diffie y Hellman publicaron el artículo “New directions in cryptography”. En
él proponían un nuevo tipo de criptografía basado en utilizar claves distintas para
cifrar y descifrar, una de ellas se hace pública y la otra es privada de cada usuario.
Estas ideas supusieron la revolución de la criptografía, se podía utilizar para
confidencialidad (como los sistemas simétricos), autenticación y firma digital,
además de solucionar el problema de la distribución de claves simétricas.
Con los algoritmos de clave asimétrica cada usuario tiene dos claves: una pública y
otra privada; la clave pública está accesible a cualquiera, la clave privada es de uso
restringido para su propietario.
A este conjunto de técnicas y métodos se le denominó criptografía de clave pública.
Los mensajes cifrados con la clave pública sólo pueden ser descifrados con la clave
privada asociada. Esto permite enviar documentos a un usuario con la garantía de
que sólo él, que posee la clave privada, podrá tener acceso al contenido del
mensaje.
Por otro lado los mensajes cifrados con la clave privada sólo pueden ser
descifrados con la clave pública; esta característica es la base de la firma digital.
Los algoritmos asimétricos están basados en funciones matemáticas fáciles de
resolver pero muy complicadas de realizar la inversa, por ejemplo, la potencia y el
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Evolución de los Sistemas de Seguridad
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 14
logaritmo. Estas funciones son útiles para criptografía si la inversa es fácil de
calcular conociendo un número concreto, —la clave privada—.
Por lo tanto, la clave privada y la clave pública están relacionadas
matemáticamente, pero esta relación debe ser suficientemente compleja para que
un criptoanalista no la pueda encontrar.
El algoritmo de clave pública más utilizado es el RSA, diseñado en 1977 por los
profesores del MIT (Massachussets Institute of Technology) Ronald R. Rivest, Adi
Shamir y Leonard M. Adleman, de ahí las siglas con las que es conocido.
Desde entonces este algoritmo de cifrado se ha convertido en el prototipo de los de
clave pública. Se fundamenta en la exponenciación modular del producto de dos
números primos enteros de gran tamaño. La seguridad de este método radica en la
dificultad de factorizar dicho producto.
Los algoritmos de clave asimétrica permiten una gestión racional de las claves, pero
son menos eficientes que los simétricos, de ahí que en la práctica se utilice una
combinación de ambos.
El cifrado de un mensaje normalmente se hace utilizando un algoritmo simétrico
(más rápido y eficiente), con una clave que se utiliza sólo durante una sesión
—clave de sesión—; los interlocutores intercambian esta clave de sesión utilizando
algoritmos asimétricos: el remitente selecciona una clave de sesión, la cifra con la
clave pública del destinatario, y se la envía a este.
Para la firma digital lo más habitual es utilizar un algoritmo de cifrado asimétrico,
como RSA o DSA, en combinación con un algoritmo de hash. Los algoritmos de
hash permiten obtener una secuencia única de tamaño fijo a partir de un bloque de
datos de cualquier tamaño, no siendo posible encontrar una secuencia alternativa
de datos que tenga un mismo hash, ni obtener los datos originales a partir del hash.
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Evolución de los Sistemas de Seguridad
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 15
Los algoritmos de hash estándares más utilizados son el MD5 (Message-Digest
Algorithm), que obtiene una secuencia o función hash de 128 bits, y el SHA-1
(Secure Hash Algorithm), que obtiene una función hash de 160 bits.
Los sistemas de clave pública permiten ofrecer los siguientes servicios de
seguridad:
• Autenticación: Este servicio tiene como objetivo que los usuarios se puedan
identificar de una forma fiable a otros usuarios y servicios en una red, sin
necesidad de enviar información secreta (como palabras de paso) por la red, de
manera que ambos interlocutores tengan la certeza de que el otro es quién dice
ser.
Esta autenticación puede hacerse por medio de un protocolo de desafío-
respuesta utilizando la firma digital: el sistema envía al usuario unos datos
aleatorios, éste les aplica una función hash y el resultado lo cifra utilizando su
clave privada, enviando el resultado de la encriptación al sistema; este hash
cifrado es lo que se considera la firma digital del usuario.
El sistema puede comprobar que los datos fueron firmados por el usuario,
descifrando éstos con la clave pública del usuario y comparando el resultado
con la semilla generada al aplicar el hash a los datos aleatorios. Si los dos hash
coinciden, el sistema puede tener la garantía que la clave pública que ha
utilizado para descifrar corresponde a la clave privada utilizada para generar la
firma.
• Confidencialidad: Este servicio debe garantizar la privacidad a los contenidos
de los datos electrónicos, impidiendo no solo la revelación de la información a
cualquier entidad no autorizada, sino también evitando que se pueda monitorizar
la frecuencia de transmisión de paquetes en una transacción o que se puede
obtener información (como la longitud) asociada a estos paquetes.
Normalmente, la confidencialidad de los datos se consigue cifrando el tráfico
entre los dos interlocutores.
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Evolución de los Sistemas de Seguridad
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 16
• No repudio: Estos servicios protegen contra la posible falsa negación de una
entidad participante en una transacción electrónica o proceso de comunicación,
de que dicha transacción o proceso se realizó. Los mensajes firmados con la
clave privada de un usuario sólo pueden haber sido generados por éste, ya que
sólo él la conoce (no-repudio de emisor). Por otro lado, el no-repudio en
recepción se puede conseguir exigiendo acuse de recibos basado en el
contenido de lo recibido y firmado por el receptor.
• Integridad: La firma electrónica también asegura que el valor de la información
electrónica no ha sido modificado por un tercero (integridad de los datos) al
encontrarse los datos firmados con la clave privada del remitente.
Además, el uso de los algoritmos de claves asimétricas, en combinación con otros
procedimientos (timestamping, números de secuencia, acuses de recibo,...) permite
garantizar la integridad en la secuencia de mensajes (protegiendo frente a
duplicaciones, adiciones, borrado o reenvíos).
2.3 CERTIFICADOS
La utilización de los algoritmos criptográficos sin más, sigue planteando una serie
de problemas de seguridad:
En primer lugar, para implementar los mecanismos de cifrado, los usuarios
necesitan conocer de manera segura la clave pública de todos sus interlocutores,
siendo necesario establecer mecanismos seguros para la publicación de las claves.
En el caso de la firma digital, se suele incluir la clave pública junto con la firma para
que no sea necesario acceder a un repositorio de claves.
En segundo lugar, la verificación de la autenticidad y la integridad de los datos no
necesariamente prueba la identidad del autor de la firma electrónica, es necesario
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Evolución de los Sistemas de Seguridad
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 17
establecer un mecanismo que garantice que la clave pública pertenece realmente a
la entidad que esta haciendo uso de ella y que esa clave sigue siendo válida.
Estos problemas se solventan con la utilización de certificados, también conocidos
como identidades o credenciales digitales.
Un Certificado Digital puede definirse como el medio utilizado en operaciones
electrónicas para vincular cierta información correspondiente a una entidad con su
clave pública. El certificado va, por tanto, estrechamente ligado a un par de claves
(una clave pública y otra privada) que se usan para cifrar o firmar información.
El certificado Digital viene a ser un documento electrónico firmado digitalmente por
una tercera parte confiable, entidad denominada Autoridad de Certificación (CA), en
el que se establece una ligazón entre un sujeto y su clave pública.
Si el certificado es auténtico, no está caducado y confiamos en la CA que lo emitió,
entonces, podemos confiar en que el sujeto identificado en el Certificado Digital
posee la clave pública que se señala en dicho certificado.
Así pues, si un sujeto firma un documento y anexa su certificado digital, cualquiera
que conozca la clave pública de la CA podrá autenticar el documento. La firma del
certificado por parte de la CA asegura que cualquier alteración del contenido del
certificado puede ser detectada fácilmente y este hecho es el que permite que los
certificados se puedan distribuir públicamente asegurando siempre su integridad.
Los certificados son, por tanto, documentos acreditativos infalsificables, si alguien
falsificara los datos de un certificado, este hecho quedaría claramente revelado ante
los usuarios que lo utilizarán, ya que la firma de la entidad que emitió el certificado
(incluida en el propio certificado) dejaría de ser válida.
Cuando alguien está en posesión de un certificado, éste se añade a cada uno de los
mensajes que envía de forma electrónica. El receptor del mensaje utiliza el
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Evolución de los Sistemas de Seguridad
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 18
certificado para verificar en primer lugar que la clave pública es autentica y luego
para verificar el contenido del mensaje mismo.
Existe la posibilidad de enviar más de un certificado asociados todos al mismo
mensaje, formando así una cadena de certificados en la cual sucesivamente cada
certificado prueba la autenticidad del anterior hasta llegar a la autoridad de más
nivel.
La autoridad de más nivel deberá ser una autoridad reconocida por todas las partes
como Autoridad Certificadora. Este esquema de certificados permite que el receptor
de un mensaje pueda comprobar la identidad de quien ha enviado el mensaje y la
integridad del mensaje enviado, es decir que no ha sido alterado.
Public-Key Criptography Standars (PKCS) son un conjunto de estándares para la
implementación de un sistema de criptografía de clave pública, desarrollados por
RSA Laboratories en cooperación con otras grandes empresas. Desde su
publicación en 1991, los PKCS han sido la base de muchas implementaciones de
PKI.
2.4 PKI’S
PKI’s son las siglas que corresponden a Public Key Infrastructure, término en inglés
con el que se designan las Estructuras de Seguridad basadas en Sistemas
Criptográficos de Clave Pública.
Con este término se agrupan un conjunto de nuevas tecnologías sobre las que
descansan toda una gama de estrategias de seguridad telemática, que permiten
implementar los más severos niveles de seguridad requeridos.
Las PKI’s permiten, por tanto, desarrollar de una manera flexible las Políticas de
Seguridad definidas según las necesidades propias de cada entorno operativo, que
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Evolución de los Sistemas de Seguridad
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 19
satisfagan los atributos de una comunicación telemática segura: autenticidad,
confidencialidad, integridad y no-repudio.
Una PKI determina que entidades entran a formar parte del sistema de certificación,
que papel juegan dichas entidades, que normas y protocolos se deben seguir para
poder operar dentro del sistema, cómo se codifica, transmite y publica la
información digital, qué información contendrán los objetos y documentos
gestionados por la infraestructura, y principalmente, cómo se gestionan las claves y
los certificados.
Así, por ejemplo, cada PKI puede definir un conjunto de información adicional a
incluir en un certificado. Esto proporciona una flexibilidad desconocida en
documentos de papel, que proporciona diferentes maneras de codificar la
información digital y de transmitirla a través de las redes de comunicaciones.
Gestionando claves y certificados a través de una PKI, una organización posibilita la
utilización de servicios de firma digital y cifrado en una amplia variedad de
aplicaciones y establece y mantiene un entorno de red totalmente fiable.
En un entorno de certificación, las responsabilidades de la emisión de certificados
se comparten entre la Autoridad de Registro (RA) y la Autoridad de Certificación
(CA):
• La RA es la encargada de recibir las solicitudes de certificación procedentes de
las entidades destinatarias y decidir su validación o denegación.
• La CA se dedica exclusivamente a la generación de los certificados y las listas
de revocación (CRLs, —Certificate Revocation Lists—).
La distinción entre estos dos componentes se realiza debido a su bajo grado de
independencia. Mientras el componente RA interacciona con las entidades
solicitantes de certificados y con el sistema de toma de decisiones de la
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Evolución de los Sistemas de Seguridad
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 20
organización, el componente CA se encarga exclusivamente de procesar las
solicitudes aprobadas y emitir los certificados correspondientes.
Autoridad de Registro
Una Autoridad de Registro (RA) es una entidad autorizada por la Autoridad de
Certificación para auxiliarla en el procedimiento de “dar fe” de que los requisitos que
un sujeto tiene que satisfacer para que se le emita un certificado sean satisfechos
de acuerdo a un procedimiento establecido.
Normalmente, este procedimiento consiste en que el sujeto pruebe su identidad.
Además, el sujeto debe de manifestar su voluntad de aceptar su clave pública y la
política de certificación de la PKI y probar (mediante autofirmado de un mensaje)
que es propietario de la correspondiente clave privada.
La RA, por tanto, es la encargada de gestionar el registro de usuarios, recibir las
solicitudes de certificación procedentes de las entidades destinatarias, decidir su
validación y enviar los certificados respuesta a dichas solicitudes gestionando la
mayoría del ciclo de vida de un certificado.
Autoridades de Certificación
La Autoridad de Certificación (CA) es una entidad de reconocido prestigio (tercera
parte confiable) que “da fe” de que una clave pública pertenece realmente al sujeto
que la posee.
Se encarga de generar los Certificados Digitales firmándolos con su clave privada,
lo que permitirá a cualquiera que conozca su clave pública autenticar el documento.
Si es el solicitante quien genera la clave pública, la CA sólo debe firmarla con el
certificado de firma de certificados de que dispone. En otro caso, previamente la CA
debe generar el par de claves, debiendo entregarlas junto con los certificados a la
RA para que ésta los haga llegar a los destinatarios.
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Evolución de los Sistemas de Seguridad
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 21
Las Autoridades de Certificación se organizan certificándose unas a otras de forma
que entre ellas exista una jerarquía que proporcione confianza, estableciéndose
vínculos de confianza a través de los cuales podemos autenticar a entidades o
clientes que no pertenezcan a nuestro dominio.
Repositorio de la información pública de la PKI
Como ya se ha mencionado, el papel de la CA es la de actuar como tercera parte
confiable emitiendo los certificados para los usuarios. Estos certificados, a su vez,
deben ser distribuidos a los usuarios para ser utilizados en las aplicaciones.
Los repositorios de certificados almacenan los certificados, de tal forma que las
aplicaciones puedan recuperar los mismos en nombre del usuario. El término
repositorio se refiere a un servicio de red que permite el almacenamiento y la
distribución de los certificados de una PKI.
La PKI puede utilizar también dicho repositorio para distribuir la información de los
certificados revocados (CRLs).
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Servidor criptográfico RSA
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 22
3 SERVIDOR CRIPTOGRÁFICO RSA
El servidor criptográfico RSA proporciona los servicios de seguridad necesarios
para garantizar la integridad de la información, la autenticidad de la pareja emisor-
receptor y la no repudiación en origen y destino, utilizando técnicas criptográficas de
claves asimétricas basadas en el algoritmo estándar RSA.
A lo largo de este capítulo se revisarán las distintas claves que participan en el
sistema, sus características, los métodos de protección utilizados para su
almacenamiento seguro y la forma en que se utilizan para proteger la información y
en los procesos de firma digital.
El servidor criptográfico está compuesto por un módulo de seguridad y un fichero de
claves RSA en donde se almacenan todas las claves publicas y privadas. El módulo
de seguridad es una implementación software del algoritmo RSA, encargado de
suministrar las funciones criptográficas.
El fichero de claves RSA, denominado FICHKRSA, almacena las claves públicas y
privadas protegidas con dos claves de Aplicación DES, de tal forma que las
aplicaciones usuarias pueden abstraerse del mantenimiento de las claves que
residen en el fichero FICHKRSA, y además se garantiza la necesaria seguridad del
sistema.
El acceso a las funciones criptográficas del servidor se lleva a cabo mediante
llamadas a los servicios de seguridad. Un servicio de seguridad es una rutina que
recibe control desde una sentencia CALL de un lenguaje de aplicación.
Cada servicio ejecuta una o más funciones criptográficas, incluyendo:
• Generación de una pareja de claves pública y privada.
• Gestión de las claves públicas y privadas en el fichero de claves FICHKRSA.
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Servidor criptográfico RSA
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 23
• Exportar claves públicas para su envío y distribución.
• Importar las claves públicas recibidas.
• Generación y verificación de Firmas Digitales.
• Distribución de claves DES utilizando el algoritmo RSA.
El diseño de este esquema criptográfico se ha realizado buscando siempre un nivel
máximo de seguridad, así como la compatibilidad absoluta con las especificaciones
y normas de las organizaciones internacionales.
3.1 TIPOS DE CLAVES
A continuación se describen los tipos de claves criptográficas utilizadas por
cualquier aplicación que defina un Sistema de Seguridad basado en el Servidor
criptográfico RSA.
Como ya se dijo previamente, el algoritmo RSA se denomina de claves asimétricas
debido a que utiliza claves diferentes para el cifrado y el descifrado de los datos.
Estos dos tipos de claves se conocen como la clave pública y la clave privada,
una pareja de claves complementarias en la que ambas están capacitadas para
cifrar y descifrar datos.
La clave pública, como su propio nombre indica, es de carácter público y por lo tanto
puede ser conocida por todos los participantes del sistema, mientras que la clave
privada es de carácter secreto, debiendo mantenerla el Administrador de Seguridad
del Sistema protegida y guardada en lugar seguro.
Las claves públicas y privadas se componen de dos valores numéricos, el módulo y
el exponente, en formato binario. El valor numérico del módulo siempre es mayor
que el del exponente y ha de ser impar —es el producto de dos números primos—,
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Servidor criptográfico RSA
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 24
además el bit más significativo del módulo ha de tener valor 1. El exponente de la
clave pública también es un número impar, siendo el exponente de la clave privada
el valor que hay que mantener en secreto.
Una pareja de claves pública y privada está formada por dos claves
complementarias, en las que ambas tienen el mismo valor de módulo y diferente
valor de exponente, de tal forma que los datos que se cifran con la clave pública
sólo pueden ser descifrados con su correspondiente clave privada, e igualmente, los
datos cifrados con la clave privada, únicamente se pueden descifrar con la clave
pública asociada.
La seguridad de los Sistemas depende del tamaño que se elija para el módulo,
cuanto mayor sea éste más seguro será el Sistema. Por contra, la eficiencia también
depende de la longitud del módulo, de tal forma que a mayor tamaño del módulo,
menor es el rendimiento del Sistema. El servidor criptográfico RSA utiliza claves con
una longitud para el módulo y el exponente de 1.024 bits.
El primer paso para establecer un escenario de trabajo con el servidor criptográfico
RSA consiste en la generación de una pareja de claves pública y privada y su
incorporación en el fichero de claves FICHKRSA. A continuación las Aplicaciones
deben hacer entrega de su clave pública al resto de los usuarios que participen en
el Sistema de Seguridad, y del mismo modo, recibir de todos ellos su clave pública e
incorporarla en el fichero de claves.
Por lo tanto, el fichero de claves FICHKRSA contendrá la clave privada y la clave
pública local de las aplicaciones, y las claves públicas remotas recibidas del resto
de los participantes en el Sistema de Seguridad.
Las aplicaciones envían la información protegida a un determinado usuario, cifrando
los datos con la clave publica del destinatario, la cual previamente se ha recibido e
incorporado en el fichero de claves. De esta manera los datos solamente pueden
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Servidor criptográfico RSA
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 25
ser descifrados por el destinatario, puesto que es el único que dispone de la
correspondiente clave privada de la pareja de claves.
De igual forma, las aplicaciones reciben la información protegida cifrada con su
clave publica, que previamente han distribuido, de manera que solamente pueden
ser descifrados con la correspondiente clave privada, disponible únicamente por la
aplicación.
La firma digital identifica a los usuarios y autentifica los mensajes que se envían, a
la vez que garantiza la integridad de los datos. Para firmar digitalmente un mensaje
las aplicaciones cifran los datos, normalmente una función hash del mensaje a
enviar, con su clave privada, y lo envían al destinatario, el cual utilizará la clave
pública de la aplicación para verificar la identidad y autenticidad del mensaje
recibido.
El servidor criptográfico RSA proporciona los servicios de seguridad necesarios
para crear este escenario, tanto para la generación de una pareja de claves pública
y privada, con su correspondiente incorporación en el fichero de claves FICHKRSA,
como para llevar a cabo el intercambio de claves públicas entre los distintos
usuarios que lo componen.
3.2 FICHERO DE CLAVES FICHKRSA
El fichero de claves FICHKRSA de que dispone el servidor criptográfico está
protegido mediante los servicios y métodos de seguridad proporcionados por el
producto criptográfico DES compatible. Los datos a proteger, en este caso las
claves públicas y privadas, están cifrados con dos claves de Aplicación DES.
Estas dos claves de Aplicación se guardan en un registro de control del fichero
FICHKRSA cifradas en su forma aplicativa —cada una de las claves cifradas con
una clave de Transporte diferente, que residen en el fichero de claves del producto
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Servidor criptográfico RSA
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 26
criptográfico DES—, junto con la etiqueta que identifica a ambas claves de
Transporte en el fichero.
Durante el proceso de instalación del fichero FICHKRSA se crea un registro inicial
que contiene a estas dos claves de Aplicación cifradas de forma aplicativa, y las dos
etiquetas de identificación de las claves de Transporte que las cifran, manteniendo
de esta forma la integridad y seguridad del sistema (un cambio de la clave Maestra
en el Servidor criptográfico DES no afectaría a la información protegida en el fichero
de claves FICHKRSA).
El proceso de instalación también se encarga de generar las dos claves de
Transporte e incorporarlas en el fichero de claves del producto criptográfico DES,
con las etiquetas de identificación definidas en la creación del registro de control del
fichero FICHKRSA.
Las dos claves de Transporte se generan con el mismo valor pero se incorporan en
el fichero con diferentes etiquetes y diferentes tipos, para poder ser utilizadas de
igual forma en los servicios que requieren el tipo Exportable como en los que se
requiere el tipo Importable.
La primera de las dos claves de Aplicación DES se utiliza para cifrar el exponente
de la clave privada, mientras que la segunda clave de Aplicación se emplea para
cifrar el módulo común de las dos claves y el exponente de la clave pública.
Por lo tanto, las claves se almacenan en el fichero FICHKRSA manteniendo una
estructura jerárquica: las claves privadas del fichero están protegidas con la primera
clave de Aplicación, que a su vez está protegida con una de las claves de
Transporte. Las claves públicas están cifradas con la segunda clave de Aplicación,
que se encuentra cifrada a su vez bajo la otra clave de Transporte.
Los servicios de seguridad que proporciona el servidor se encargan de efectuar el
recifrado de las claves de Aplicación DES del registro de control, y los
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Servidor criptográfico RSA
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 27
cifrados/descifrados de las claves públicas y privadas, necesarios cada vez que se
incorpora o se recupera una clave del fichero FICHKRSA, de forma transparente a
las aplicaciones usuarias.
Las claves públicas y privadas que residen en el fichero de claves FICHKRSA se
identifican mediante una etiqueta de 64 caracteres, a través de la cual son
referenciadas por las Aplicaciones para su utilización en los diferentes servicios.
La etiqueta de una clave de Transporte tiene un formato de 64 caracteres
alfabéticos, con o sin representación gráfica, permitiéndose cualquier valor, excepto
que todos los caracteres sean nulos (x'00'). Dado que en el mismo fichero de claves
FICHKRSA se pueden almacenar las claves de diferentes aplicaciones, es
aconsejable normalizar la nomenclatura de sus etiquetas para independizar unas de
otras.
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Servicios de Gestión del FICHKRSA
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 28
4 SERVICIOS DE GESTIÓN DEL FICHKRSA
Los dos servicios criptográficos que proporciona el Servidor para la instalación del
fichero de claves FICHKRSA, la carga inicial de las dos claves de Aplicación DES
en el registro de control, y la generación de las dos claves de Transporte y su
incorporación en el fichero de claves DES del producto criptográfico son los
siguientes:
• Instalación del fichero de claves FICHKRSA y carga del registro de control.
• Generación de las dos claves de Transporte e incorporación en el fichero de
claves DES del producto criptográfico.
Teniendo en cuenta la importancia de estos dos servicios, deberán estar
especialmente protegidos mediante las herramientas que proporcione el sistema
operativo, para que únicamente tenga acceso a ellos la persona autorizada como
Administrador de Seguridad del Sistema, y en un entorno físicamente seguro.
4.1 SCRFILE0 - INSTALACIÓN DEL FICHERO Y CARGA DEL REGISTRO DE
CONTROL
Este servicio se encarga de efectuar la generación inicial del fichero de claves
FICHKRSA, incorporando en un registro de control del fichero las dos claves de
Aplicación DES cifradas de forma aplicativa, y las dos etiquetas de identificación de
las claves de Transporte especificadas por el Administrador en los parámetros de
entrada.
Las dos claves de Aplicación DES se generan en el interior del módulo de
seguridad, de forma aleatoria, con paridad impar y verificándose que las dos claves
obtenidas no sean de las claves consideradas débiles en el algoritmo estándar
DES. Ambas claves se incorporan en el registro de control del fichero FICHKRSA,
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Servicios de Gestión del FICHKRSA
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 29
cifradas bajo las dos claves de Transporte indicadas por el Administrador, junto con
las dos etiquetas que identifican a las claves de Transporte en el fichero de claves
DES del producto criptográfico compatible.
Formato
CALL SCRFILE0(código-retorno,código-razón,label-transporte1,label-transporte2)
Parámetros
código-retorno
Dirección: Salida Tipo: Entero Longitud: 4 octetos
El código de retorno indica el resultado general del proceso.
código-razón
Dirección: Salida Tipo: Entero Longitud: 4 octetos
El código de razón especifica el tipo de error producido cuando el código
de retorno es distinto de ceros.
label-transporte1
Dirección: Entrada Tipo: Carácter Longitud: 64 octetos
La etiqueta de identificación correspondiente a la primera clave de
Transporte del fichero de claves DES, bajo la que se cifrará en el interior
del módulo de seguridad a la primera clave de Aplicación, para
almacenarla en el registro de control del fichero FICHKRSA en su forma
aplicativa. Esta etiqueta de identificación también se almacena en el
registro de control del fichero.
label-transporte2
Dirección: Entrada Tipo: Carácter Longitud: 64 octetos
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Servicios de Gestión del FICHKRSA
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 30
La etiqueta de identificación correspondiente a la segunda clave de
Transporte del fichero de claves DES, bajo la que se cifrará en el interior
del módulo de seguridad a la segunda clave de Aplicación, para
almacenarla en el registro de control del fichero FICHKRSA en su forma
aplicativa. Esta etiqueta de identificación también se almacena en el
registro de control del fichero.
4.2 SCRFILE1 - GENERACIÓN DE LAS DOS CLAVES DE TRANSPORTE DES
Este servicio se encarga de efectuar la generación aleatoria de las dos claves de
Transporte DES, y de su incorporación en el fichero de claves del producto
criptográfico DES compatible, con las etiquetas de identificación especificadas por
el Administrador en los parámetros de entrada.
Las dos claves de Transporte se generan con el mismo valor pero se incorporan en
el fichero con diferentes etiquetes y diferentes tipos, para poder ser utilizadas de
igual forma en los servicios que requieren el tipo Exportable y en los que se
requiere el tipo Importable.
El valor de la clave de Transporte DES se genera en el interior del módulo de
seguridad, de forma aleatoria, con paridad impar, longitud de clave doble y
verificándose que el valor obtenido no sea el de una de las claves consideradas
débiles en el algoritmo estándar DES.
La clave de Transporte generada se incorpora en el fichero de claves del producto
criptográfico DES, mediante el servicio estándar SCRDES0 de la interfaz DES. Las
dos etiquetas de identificación con las que se incorporarán en el fichero de claves
DES, deberán ser las mismas que las especificadas por el Administrador en el
proceso de generación y carga del registro de control del fichero de claves
FICHKRSA.
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Servicios de Gestión del FICHKRSA
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 31
Formato
CALL SCRFILE1(código-retorno,código-razón,label-transporte1,label-transporte2)
Parámetros
código-retorno
Dirección: Salida Tipo: Entero Longitud: 4 octetos
El código de retorno indica el resultado general del proceso.
código-razón
Dirección: Salida Tipo: Entero Longitud: 4 octetos
El código de razón especifica el tipo de error producido cuando el código
de retorno es distinto de ceros.
label-transporte1
Dirección: Entrada Tipo: Carácter Longitud: 64 octetos
La etiqueta de identificación con la que se incorporará la primera clave de
Transporte en el fichero de claves DES. En los productos criptográficos
compatibles de IBM esta clave se incorporará con el tipo = Exporter.
label-transporte2
Dirección: Entrada Tipo: Carácter Longitud: 64 octetos
La etiqueta de identificación con la que se incorporará la segunda clave de
Transporte en el fichero de claves DES. En los productos criptográficos
compatibles de IBM esta clave se incorporará con el tipo = Importer.
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Servicios de Gestión de claves Públicas
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 32
5 SERVICIOS DE GESTIÓN DE CLAVES PÚBLICAS
En este capítulo se describen los servicios que proporciona el Servidor criptográfico
RSA para el mantenimiento y la gestión de las claves públicas y privadas
almacenadas en el fichero de claves FICHKRSA, así como para la distribución y el
intercambio de las claves públicas.
Los servicios criptográficos que proporciona el Servidor para la gestión de claves
RSA públicas y privadas, son los siguientes:
• Generación de una pareja de claves RSA pública y privada y su incorporación
en el fichero de claves FICHKRSA.
• Borrado de una clave pública o privada del fichero de claves FICHKRSA.
• Exportar una clave pública del fichero de claves FICHKRSA.
• Importar una clave pública al fichero de claves FICHKRSA.
5.1 SCRKGEN - GENERACIÓN DE UNA PAREJA DE CLAVES PÚBLICA Y
PRIVADA
La función de este servicio es la generación aleatoria de una pareja de claves RSA
pública y privada y su incorporación en el fichero de claves FICHKRSA. La longitud
del módulo y del exponente de las claves generadas es de 1.024 bits, teniendo las
dos claves el mismo valor del módulo y diferente valor del exponente.
Las dos claves se incorporarán en el fichero de claves FICHKRSA con las etiquetas
de identificación especificadas por el administrador en los parámetros de entrada,
una para la clave pública y la otra para la clave privada. En el caso de que ya
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Servicios de Gestión de claves Públicas
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 33
existiesen claves con la misma etiqueta en el fichero FICHKRSA, las nuevas claves
generadas sustituirán a las claves anteriores, perdiéndose su valor.
Durante el proceso de incorporación de las claves generadas en el fichero
FICHKRSA, se efectúa en el interior del módulo de seguridad un recifrado de las
dos claves de Aplicación del registro de control, mediante el servicio estándar
SCRDES2 de la interfaz DES. Este servicio se encarga de recifrar una clave de
Aplicación que se encuentra cifrada de forma aplicativa (cifrada con una clave de
Transporte del fichero de claves DES), y obtenerla en su forma operativa (cifrada
con la clave Maestra del Sistema).
Con la primera de estas dos claves operativas se cifra el exponente de la clave
privada, mediante el servicio estándar SCRDES1 de la interfaz DES, y con la
segunda clave operativa se cifra el módulo común de las dos claves y el exponente
de la clave pública, siendo el resultado de estas operaciones el que se almacena en
el fichero, junto con la etiqueta que identifica a cada clave y cierta información de
control, como la fecha y hora de la incorporación, fecha y hora de la última
modificación, etc.
Formato
CALL SCRKGEN (label-clave-pública,label-clave-privada,código-retorno,código-razón)
Parámetros
label-clave-pública
Dirección: Entrada Tipo: Carácter Longitud: 64 octetos
La etiqueta de identificación con la que se va a incorporar la clave pública
de la pareja de claves generadas, en el fichero de claves FICHKRSA.
label-clave-privada
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Servicios de Gestión de claves Públicas
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 34
Dirección: Entrada Tipo: Carácter Longitud: 64 octetos
La etiqueta de identificación con la que se va a incorporar la clave privada
de la pareja de claves generadas, en el fichero de claves FICHKRSA.
código-retorno
Dirección: Salida Tipo: Entero Longitud: 4 octetos
El código de retorno indica el resultado general del proceso.
código-razón
Dirección: Salida Tipo: Entero Longitud: 4 octetos
El código de razón especifica el tipo de error producido cuando el código
de retorno es distinto de ceros.
5.2 SCRKDEL - BORRADO DE UNA CLAVE PÚBLICA O PRIVADA DEL
FICHKRSA
La función de este servicio es dar de baja una clave pública o una clave privada que
resida en el fichero de claves FICHKRSA, eliminando toda la información del fichero
relativa a la clave con la etiqueta de identificación especificada en los parámetros
de entrada.
Si no existe una clave con la etiqueta indicada en el fichero de claves FICHKRSA, el
servicio devolverá un código de retorno y razón indicando el error.
Teniendo en cuenta la repercusión que en una Aplicación puede tener la
eliminación de una clave pública o privada del fichero de claves FICHKRSA, este
servicio deberá estar especialmente protegido mediante las herramientas de
seguridad y control de accesos que proporcione el sistema operativo.
Formato
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Servicios de Gestión de claves Públicas
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 35
CALL SCRKDEL (código-retorno,código-razón,label-clave)
Parámetros
código-retorno
Dirección: Salida Tipo: Entero Longitud: 4 octetos
El código de retorno indica el resultado general del proceso.
código-razón
Dirección: Salida Tipo: Entero Longitud: 4 octetos
El código de razón especifica el tipo de error producido cuando el código
de retorno es distinto de ceros.
label-clave
Dirección: Entrada Tipo: Carácter Longitud: 64 octetos
La etiqueta de identificación correspondiente a la clave pública o a la clave
privada que va a ser eliminada del fichero FICHKRSA.
5.3 SCRKEXP - EXPORTAR UNA CLAVE PÚBLICA DEL FICHERO FICHKRSA
La función de este servicio es exportar una clave RSA pública que resida en el
fichero de claves FICHKRSA del servidor criptográfico. La clave pública exportada
será enviada posteriormente al resto de los participantes en el Sistema de
Seguridad.
En los parámetros de entrada se indicará la etiqueta de identificación de la clave
pública a exportar, devolviendo el servicio el valor del módulo y del exponente de la
clave pública, en formato claro, dado el carácter público de la clave.
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Servicios de Gestión de claves Públicas
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 36
Durante el proceso de extracción de la clave pública del fichero FICHKRSA, se
efectúa en el interior del módulo de seguridad un recifrado operativo de la segunda
clave de Aplicación del registro de control (la que protege a las claves públicas),
mediante el servicio estándar SCRDES2 de la interfaz DES para recifrar una clave
de Aplicación que se encuentra cifrada de forma aplicativa (cifrada con una clave de
Transporte del fichero de claves DES), y obtenerla en su forma operativa (cifrada
con la clave Maestra del Sistema).
Con la clave operativa se descifra el módulo y el exponente de la clave pública
seleccionada, mediante el servicio estándar SCRDES1 de la interfaz DES, siendo el
resultado de esta operación el que devuelve el servicio.
Formato
CALL SCRKEXP (label-clave-pública,código-retorno,código-razón,módulo,exponente-público)
Parámetros
label-clave-pública
Dirección: Entrada Tipo: Carácter Longitud: 64 octetos
La etiqueta que identifica a la clave pública del fichero de claves
FICHKRSA que se va exportar.
código-retorno
Dirección: Salida Tipo: Entero Longitud: 4 octetos
El código de retorno indica el resultado general del proceso.
código-razón
Dirección: Salida Tipo: Entero Longitud: 4 octetos
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Servicios de Gestión de claves Públicas
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 37
El código de razón especifica el tipo de error producido cuando el código
de retorno es distinto de ceros.
módulo
Dirección: Salida Tipo: Carácter Longitud: 128 octetos
Contiene el valor numérico del módulo de la clave pública exportada que
devuelve el servicio, en claro y en formato binario.
exponente-público
Dirección: Salida Tipo: Carácter Longitud: 128 octetos
Contiene el valor numérico del exponente de la clave pública exportada
que devuelve el servicio, en claro y en formato binario, ajustado a la
derecha y rellenado con ceros no significativos a la izquierda.
5.4 SCRKIMP - IMPORTAR UNA CLAVE PÚBLICA AL FICHERO FICHKRSA
Este servicio se encarga de importar las claves RSA públicas recibidas del resto de
participantes en el Sistema de Seguridad, incorporándolas en el fichero de claves
FICHKRSA del servidor criptográfico. La longitud del módulo y del exponente de las
claves públicas a importar tiene que ser de 1.024 bits.
En los parámetros de entrada se debe indicar la etiqueta de identificación con la
que se incorporará la clave pública en el fichero de claves. En el caso de que ya
existiese una clave con la misma etiqueta en el fichero FICHKRSA, la nueva clave
importada sustituirá a la clave anterior, perdiéndose su valor.
Previo a su incorporación en el fichero, se verificará que la clave pública recibida
sea una clave válida, debiendo ser el módulo de la clave un valor numérico impar, y
tener 1.024 bits de longitud —el bit más significativo ha de tener valor 1—.
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Servicios de Gestión de claves Públicas
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 38
Durante el proceso de incorporación de la clave pública en el fichero FICHKRSA, se
efectúa en el interior del módulo de seguridad un recifrado operativo de la segunda
clave de Aplicación del registro de control (la que protege a las claves públicas),
mediante el servicio estándar SCRDES2 de la interfaz DES para recifrar una clave
de Aplicación que se encuentra cifrada de forma aplicativa (cifrada con una clave de
Transporte del fichero de claves DES), y obtenerla en su forma operativa (cifrada
con la clave Maestra del Sistema).
Con la clave operativa se cifra el módulo y el exponente de la clave pública a
incorporar, mediante el servicio estándar SCRDES1 de la interfaz DES, siendo el
resultado de esta operación el que se almacena en el fichero, junto con la etiqueta
que identifica a la clave y cierta información de control, como la fecha y hora de la
incorporación, fecha y hora de la última modificación, etc.
Formato
CALL SCRKIMP (label-clave-pública,módulo,exponente-público,código-retorno,código-razón)
Parámetros
label-clave-pública
Dirección: Entrada Tipo: Carácter Longitud: 64 octetos
La etiqueta de identificación con la que se va a incorporar en el fichero de
claves FICHKRSA a la clave pública recibida.
módulo
Dirección: Entrada Tipo: Carácter Longitud: 128 octetos
Contiene el valor numérico del módulo de la clave pública a importar en el
fichero de claves FICHKRSA, en claro y en formato binario.
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Servicios de Gestión de claves Públicas
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 39
exponente-público
Dirección: Entrada Tipo: Carácter Longitud: 256 octetos
Contiene el valor numérico del exponente de la clave pública a importar en
el fichero de claves FICHKRSA, en claro y en formato binario, ajustado a la
derecha y rellenado con ceros no significativos a la izquierda.
código-retorno
Dirección: Salida Tipo: Entero Longitud: 4 octetos
El código de retorno indica el resultado general del proceso.
código-razón
Dirección: Salida Tipo: Entero Longitud: 4 octetos
El código de razón especifica el tipo de error producido cuando el código
de retorno es distinto de ceros.
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Servicios de Integridad y Autenticación
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 40
6 SERVICIOS DE INTEGRIDAD Y AUTENTICACIÓN
El servidor criptográfico proporciona los servicios de seguridad necesarios para
verificar que la información transmitida o almacenada no ha sido alterada
(integridad de los datos), y para asegurar que el remitente de la información es en
realidad quien dice ser (autenticidad de los mensajes y no-repudiación).
Los métodos utilizados para verificar la integridad de los datos y la autenticidad de
los mensajes se basan en la obtención de firmas digitales conjuntamente con la
utilización de funciones hash.
Para firmar digitalmente un mensaje las aplicaciones cifran los datos, normalmente
una función hash del mensaje, con su clave privada, y lo envían al destinatario, el
cual utilizará la clave pública de la aplicación para verificar la identidad y
autenticidad del mensaje recibido.
La identificación y autenticidad del mensaje recibido se basa en el secreto de la
clave privada RSA. Los mensajes firmados con la clave privada de un usuario sólo
pueden haber sido generados por éste, ya que sólo él la conoce (no-repudio de
emisor). Por otro lado, el no-repudio en recepción se puede conseguir exigiendo
acuse de recibos basado en el contenido de lo recibido y firmado por el receptor.
Verificar la integridad de los datos se consigue utilizando la firma digital en
combinación con un algoritmo de hash. Las funciones hash, también conocidas
como resumen o huella digital de un mensaje, permiten obtener una secuencia
única de tamaño fijo a partir de un mensaje de cualquier tamaño, no siendo posible
encontrar una secuencia alternativa de datos que tenga un mismo hash, ni obtener
los datos originales a partir del hash. Los productos criptográficos DES compatibles
proporcionan los servicios para calcular funciones hash según diferentes algoritmos
estándar.
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Servicios de Integridad y Autenticación
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 41
El emisor del mensaje primero calcula una función hash de los datos que se van a
transmitir y firma el resultado con su clave privada, enviando los datos junto con la
firma digital generada. El extremo receptor calcula el hash de los datos recibidos y
lo compara con el extraído en la verificación de la firma digital, debiendo coincidir
ambos valores para considerar que el mensaje recibido es autentico y no ha sufrido
alteraciones.
Los servicios criptográficos que proporciona el Servidor RSA para la identificación
de usuarios, autenticación de mensajes, no-repudiación e integridad de los datos,
son los siguientes:
• Generación de una firma digital RSA según la recomendación de la norma
ISO9796.
• Verificación de una firma digital RSA según la recomendación de la norma
ISO9796.
6.1 SCRGFIR - GENERACIÓN DE UNA FIRMA DIGITAL ISO9796
Este servicio se encarga de la generación de una firma digital RSA según la
recomendación de la norma ISO9796, a partir de un texto de entrada de una
longitud máxima de 64 octetos, y utilizando una clave privada que resida en el
fichero de claves FICHKRSA.
En los parámetros de entrada se debe indicar la etiqueta que identifica a la clave
privada en el fichero de claves FICHKRSA, con la que se cifrará el texto para
obtener la firma digital. Como texto de entrada normalmente se utilizará el resultado
de aplicar una función hash a los datos. El servicio devuelve la firma digital como un
valor numérico de 1.024 bits en formato binario.
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Servicios de Integridad y Autenticación
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 42
Durante el proceso de generación de la firma digital, se efectúa en el interior del
módulo de seguridad un recifrado operativo de las dos claves de Aplicación del
registro de control del fichero de claves FICHKRSA, mediante el servicio estándar
SCRDES2 de la interfaz DES, para recifrar una clave de Aplicación que se
encuentra cifrada de forma aplicativa (cifrada con una clave de Transporte del
fichero de claves DES), y obtenerla en su forma operativa (cifrada con la clave
Maestra del Sistema).
Con la primera de las claves en su forma operativa se descifra el exponente de la
clave privada seleccionada, mientras que con la segunda clave operativa se
descifra el módulo, utilizando en ambos casos el servicio estándar SCRDES1 de la
interfaz DES, siendo el resultado de estas operaciones el que se utiliza para cifrar el
texto de entrada y obtener la firma digital.
Formato
CALL SCRGFIR (label-clave-privada,longitud-texto,texto,código-retorno,código-razón,firma-digital)
Parámetros
label-clave-privada
Dirección: Entrada Tipo: Carácter Longitud: 64 octetos
La etiqueta que identifica a la clave privada en el fichero de claves
FICHKRSA con la que se va a cifrar el texto de entrada para obtener la
firma digital.
longitud-texto
Dirección: Entrada Tipo: Carácter Longitud: 2 octetos
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Servicios de Integridad y Autenticación
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 43
La longitud del texto de entrada que se va a firmar digitalmente. La
longitud máxima son 64 octetos.
texto
Dirección: Entrada Tipo: Carácter Longitud: 64 octetos
Contiene el texto en claro —normalmente es una función hash del mensaje
completo a enviar—, que va a ser cifrado con la clave privada para obtener
la firma digital, alineado a la izquierda y de una longitud igual a la indicada
en el parámetro longitud-texto.
código-retorno
Dirección: Salida Tipo: Entero Longitud: 4 octetos
El código de retorno indica el resultado general del proceso.
código-razón
Dirección: Salida Tipo: Entero Longitud: 4 octetos
El código de razón especifica el tipo de error producido cuando el código
de retorno es distinto de ceros.
firma-digital
Dirección: Salida Tipo: Carácter Longitud: 128 octetos
Contiene la firma digital que devuelve el servicio, como un valor numérico
de 1.024 bits en formato binario, ajustado a la derecha y rellenado con
ceros no significativos a la izquierda.
6.2 SCRVFIR - VERIFICACIÓN DE UNA FIRMA DIGITAL ISO9796
Este servicio efectúa la validación de una firma digital utilizando una clave pública
del fichero de claves FICHKRSA, comprobando que la firma digital cumple con las
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Servicios de Integridad y Autenticación
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 44
normas de la recomendación ISO9796, y verificando la identidad y autenticidad de
la firma, así como la integridad de los datos recibidos.
Para llevar a cabo este proceso se cifra la firma digital recibida con la clave pública
que se indique del fichero de claves FICHKRSA, aplicándole al resultado el test de
verificación de la norma ISO9796. Si la verificación del test no es correcta se
devuelve un código de retorno y razón indicando el motivo por el que se rechaza la
firma digital.
Si la verificación del test es correcta se devuelve el código de retorno y razón ceros,
y se procede a comparar el resultado con el texto en claro proporcionado, debiendo
coincidir ambos valores. El resultado de la comparación es devuelto en el campo
código-validación, donde un cero indica que son iguales y un uno indica que hay
diferencias.
En los parámetros de entrada se debe indicar la etiqueta que identifica a la clave
pública en el fichero de claves FICHKRSA, con la que se cifrará la firma digital
recibida. La única clave pública con la que se puede autentificar positivamente una
firma digital, es la que se corresponde o forma pareja con la clave privada bajo la
que se firmó digitalmente en origen el mensaje.
Como texto de entrada normalmente se utilizará el resultado de aplicar una función
hash a los datos, consiguiéndose de esta manera verificar también que la
información transmitida o almacenada no ha sido alterada (integridad de los datos).
Un código de retorno y razón distintos de ceros indican un problema en la
autenticación —la clave pública utilizada no se corresponde con la clave privada de
la firma—. Un código de validación diferente de cero indica un problema en la
integridad de los datos —las funciones hash calculadas en origen y destino no
coinciden—.
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Servicios de Integridad y Autenticación
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 45
Durante el proceso de verificación de la firma digital, se efectúa en el interior del
módulo de seguridad un recifrado operativo de la segunda clave de Aplicación del
registro de control (la que protege a las claves públicas), mediante el servicio
estándar SCRDES2 de la interfaz DES, para recifrar una clave de Aplicación que se
encuentra cifrada de forma aplicativa (cifrada con una clave de Transporte del
fichero de claves DES), y obtenerla en su forma operativa (cifrada con la clave
Maestra del Sistema).
Con la clave operativa se descifran el módulo y el exponente de la clave pública
seleccionada, mediante el servicio estándar SCRDES1 de la interfaz DES, siendo el
resultado de esta operación el que se utiliza para cifrar la firma digital de entrada, y
efectuar la comparación con el texto proporcionado para devolver el código de
validación.
Formato
CALL SCRVFIR (label-clave-pública,longitud-texto,texto,firma-digital,código-retorno,código-razón,código-validación)
Parámetros
label-clave-pública
Dirección: Entrada Tipo: Carácter Longitud: 64 octetos
La etiqueta que identifica a la clave pública en el fichero de claves
FICHKRSA con la que se va a verificar la firma digital de entrada.
longitud-texto
Dirección: Entrada Tipo: Carácter Longitud: 2 octetos
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Servicios de Integridad y Autenticación
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 46
La longitud del texto de entrada que se va a utilizar para verificar la firma
digital. La longitud máxima son 64 octetos.
texto
Dirección: Entrada Tipo: Carácter Longitud: 64 octetos
Contiene el texto en claro —normalmente es una función hash del mensaje
completo recibido—, con el que se comparará el resultado de cifrar con la
clave pública la firma digital proporcionada. Debe estar alineado a la
izquierda y tener una longitud igual a la indicada en el parámetro longitud-
texto.
firma-digital
Dirección: Entrada Tipo: Carácter Longitud: 128 octetos
Contiene el valor numérico de la firma digital que se va a verificar, como un
valor numérico de 1.024 bits en formato binario, ajustado a la derecha y
rellenado con ceros no significativos a la izquierda.
código-retorno
Dirección: Salida Tipo: Entero Longitud: 4 octetos
El código de retorno indica el resultado general del proceso.
código-razón
Dirección: Salida Tipo: Entero Longitud: 4 octetos
El código de razón especifica el tipo de error producido cuando el código
de retorno es distinto de ceros.
código-validación
Dirección: Salida Tipo: Entero Longitud: 1 octeto
En el caso de que el código de retorno y razón sean ceros, el código de
validación indica si la comparación entre el texto de entrada proporcionado
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Servicios de Integridad y Autenticación
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 47
y el resultado de cifrar la firma digital coinciden. Un cero indica que son
iguales y un uno indica que hay diferencias.
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Servicios de Intercambio de claves DES
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 48
7 SERVICIOS DE INTERCAMBIO DE CLAVES DES
En este capítulo se describen los servicios que proporciona el servidor criptográfico
RSA para realizar el intercambio de claves secretas DES utilizando el algoritmo
RSA. La combinación de los algoritmos de clave simétrica y de los algoritmos de
clave asimétrica permite crear sistemas de intercambio de claves seguros.
Mediante los algoritmos de clave asimétrica se lleva a cabo una gestión más
racional de las claves, pero son menos eficientes que los simétricos, por este motivo
normalmente el cifrado de un mensaje se realiza utilizando el algoritmo simétrico
(más rápido y eficiente), con una clave DES que se utiliza sólo durante una sesión
—clave de sesión—; los interlocutores intercambian esta clave de sesión mediante
el algoritmo RSA: el remitente genera una clave de sesión DES, la cifra con la clave
pública del destinatario, y se la envía a éste.
Los servicios criptográficos que proporciona el Servidor RSA para la distribución de
claves secretas DES cifradas con algoritmo RSA, son los siguientes:
• Generación de una clave DES aleatoria devolviéndola cifrada en forma
aplicativa (cifrada con algoritmo RSA), y además en función del tipo de la clave,
si es una clave de Aplicación DES —clave de sesión— se devuelve en forma
operativa, y si se trata de una clave de Transporte DES, se incorpora en el
fichero de claves DES del producto criptográfico compatible.
• Recepción de una clave DES proporcionada en forma aplicativa (cifrada con
algoritmo RSA) y, dependiendo del tipo de clave, si es una clave de Aplicación
DES —clave de sesión— la devuelve cifrada en forma operativa, y si se trata de
una clave de Transporte DES, se incorpora en el fichero de claves DES del
producto criptográfico compatible.
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Servicios de Intercambio de claves DES
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 49
7.1 SCRGDES - GENERACIÓN DE UNA CLAVE DES Y CIFRADO RSA
La función de este servicio es generar una clave DES aleatoria devolviéndola
cifrada de forma aplicativa con algoritmo RSA, bajo una clave pública del fichero de
claves FICHKRSA, disponible para ser intercambiada con un remoto o almacenada
en un fichero.
Dependiendo del tipo de la clave a generar que se indique en los parámetros de
entrada, el proceso actúa de dos formas diferentes. Si el tipo de clave seleccionado
es una clave de Aplicación —clave de sesión—, la clave generada será devuelta
también cifrada de forma operativa con algoritmo DES (cifrada bajo la clave Maestra
del Sistema del producto criptográfico DES compatible), disponible para ser
utilizada en los servicios de cifrado y descifrado de datos.
En el caso de que el tipo de la clave indicado sea una clave de Transporte DES, la
clave generada no será devuelta cifrada en forma operativa, sino que se incorpora
en el fichero de claves DES del producto criptográfico compatible, con la etiqueta de
identificación especificada en los parámetros de entrada. Si ya existiese una clave
en el fichero DES con la misma etiqueta, la nueva clave sustituirá a la clave anterior,
perdiéndose su valor.
La clave DES se generará con paridad impar, de longitud simple (64 bits), doble
(128 bits) o triple (192 bits), y se verificará que la clave obtenida no sea una de las
claves consideradas débiles en el algoritmo DES. Si el tipo de la clave es una clave
de Transporte, la longitud de la clave solo puede ser simple o doble.
En los parámetros de entrada se debe indicar la etiqueta que identifica a la clave
pública en el fichero de claves FICHKRSA, con la que se efectuará el cifrado RSA
de la clave DES generada.
Durante el proceso de cifrado RSA con la clave pública, se efectúa en el interior del
módulo de seguridad un recifrado operativo de la segunda clave de Aplicación del
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Servicios de Intercambio de claves DES
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 50
registro de control del fichero de claves FICHKRSA (la que protege a las claves
públicas), mediante el servicio estándar SCRDES2 de la interfaz DES, para recifrar
una clave de Aplicación que se encuentra cifrada de forma aplicativa (cifrada con
una clave de Transporte del fichero de claves DES), y obtenerla en su forma
operativa (cifrada con la clave Maestra del Sistema).
Con la clave operativa se descifran el módulo y el exponente de la clave pública
seleccionada, mediante el servicio estándar SCRDES1 de la interfaz DES, siendo el
resultado de esta operación el que se utiliza para el cifrado RSA de la clave DES
generada.
Si en los parámetros de entrada se ha seleccionado el tipo de la clave DES a
generar como una ‘S’ —clave de sesión o clave de Aplicación—, se efectúa en el
interior del módulo de seguridad el cifrado operativo de la clave generada, mediante
el servicio estándar SCRDES3 de la interfaz DES.
Si el tipo de la clave seleccionado es una ‘I’ —clave de Transporte—, la clave
generada se incorpora en el fichero de claves DES del producto criptográfico
compatible, mediante el servicio estándar SCRDES0 de la interfaz DES.
Formato
CALL SCRGDES (código-retorno,código-razón,longitud-clave-DES,label-clave-pública,clave-aplicativa-RSAtipo-clave-DES,label-clave-transporte,clave-operativa)
Parámetros
código-retorno
Dirección: Salida Tipo: Entero Longitud: 4 octetos
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Servicios de Intercambio de claves DES
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 51
El código de retorno indica el resultado general del proceso.
código-razón
Dirección: Salida Tipo: Entero Longitud: 4 octetos
El código de razón especifica el tipo de error producido cuando el código
de retorno es distinto de ceros.
longitud-clave-DES
Dirección: Entrada Tipo: Carácter Longitud: 1 octeto
La longitud de la clave DES que se va a generar. Para una clave DES
simple (64 bits), su valor debe ser una ‘S’, para una clave DES doble (128
bits) el valor debe ser una ‘D’, y para una clave DES triple (192 bits) el
valor debe ser una ‘T’. Si el tipo de clave a generar es una clave de
Transporte, la longitud de la clave solo puede ser simple o doble.
label-clave-pública
Dirección: Entrada Tipo: Carácter Longitud: 64 octetos
La etiqueta que identifica a la clave pública en el fichero de claves
FICHKRSA con la que se efectuará el cifrado RSA, en el interior del
módulo de seguridad, de la clave generada.
clave-aplicativa-RSA
Dirección: Salida Tipo: Carácter Longitud: 128 octetos
La clave DES que se ha generado cifrada con algoritmo RSA bajo la clave
pública que se haya indicado del fichero de claves FICHKRSA, disponible
para ser intercambiada con un remoto o almacenada en un fichero. Es un
valor numérico en formato binario de 1.024 bits, ajustado a la derecha y
rellenado con ceros no significativos a la izquierda
tipo-clave-DES
Dirección: Entrada Tipo: Carácter Longitud: 1 octeto
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Servicios de Intercambio de claves DES
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 52
El tipo de la clave DES que se va a generar. Para una clave de Aplicación
DES —clave de sesión—, su valor debe ser una ‘S’, para una clave de
Transporte DES el valor debe ser una ‘I’.
label-clave-transporte
Dirección: Entrada Tipo: Carácter Longitud: 64 octetos
La etiqueta de identificación con la que se incorporará la clave de
Transporte DES en el fichero de claves del producto criptográfico DES
compatible. Solo es necesario cumplimentarlo en el caso de que el tipo de
clave especificado sea una clave de Transporte.
clave-operativa
Dirección: Salida Tipo: Carácter Longitud: 24 octetos
En el caso de que el tipo de clave especificado sea clave de Aplicación, se
devuelve la misma clave generada pero cifrada con algoritmo DES en su
forma operativa (cifrada bajo la clave Maestra del Sistema del producto
criptográfico DES compatible), disponible para ser utilizada en los servicios
de cifrado y descifrado de datos. Puede ser una clave DES simple (64
bits), doble (128 bits) o triple (192 bits) dependiendo del parámetro
longitud-clave que se haya especificado.
7.2 SCRRDES - RECEPCIÓN DE UNA CLAVE DES CIFRADA RSA
La función de este servicio es descifrar una clave DES que se encuentra cifrada con
algoritmo RSA de forma aplicativa, utilizando para ello una clave privada del fichero
de claves FICHKRSA. Dependiendo del tipo de la clave a recibir que se indique en
los parámetros de entrada, el proceso actúa de dos formas diferentes.
Si el tipo de clave seleccionado es una clave de Aplicación —clave de sesión—, el
servicio devolverá la clave recibida cifrada de forma operativa con algoritmo DES
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Servicios de Intercambio de claves DES
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 53
(cifrada bajo la clave Maestra del Sistema del producto criptográfico DES
compatible), disponible para ser utilizada en los servicios de cifrado y descifrado de
datos.
En el caso de que el tipo de la clave indicado sea una clave de Transporte DES, la
clave recibida se incorporará en el fichero de claves DES del producto criptográfico
compatible, con la etiqueta de identificación especificada en los parámetros de
entrada. Si ya existiese una clave en el fichero DES con la misma etiqueta, la nueva
clave sustituirá a la clave anterior, perdiéndose su valor.
La longitud de la clave DES obtenida es devuelta en los parámetros de salida,
pudiendo ser una clave de longitud simple (64 bits), doble (128 bits) o triple (192
bits) cuando el tipo de la clave es una clave de Aplicación, y solo puede ser de
longitud simple o doble cuando el tipo de la clave que se ha especificado es una
clave de Transporte.
En los parámetros de entrada se debe indicar la etiqueta que identifica a la clave
privada en el fichero de claves FICHKRSA, con la que se efectuará el descifrado
RSA de la clave DES recibida en forma aplicativa.
Durante el proceso de descifrado RSA con la clave privada, se efectúa en el interior
del módulo de seguridad un recifrado operativo de las dos claves de Aplicación del
registro de control del fichero de claves FICHKRSA, mediante el servicio estándar
SCRDES2 de la interfaz DES, para recifrar una clave de Aplicación que se
encuentra cifrada de forma aplicativa (cifrada con una clave de Transporte del
fichero de claves DES), y obtenerla en su forma operativa (cifrada con la clave
Maestra del Sistema).
Con la primera de las claves en su forma operativa se descifra el exponente de la
clave privada seleccionada, mientras que con la segunda clave operativa se
descifra el módulo, utilizando en ambos casos el servicio estándar SCRDES1 de la
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Servicios de Intercambio de claves DES
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 54
interfaz DES, siendo el resultado de estas operaciones el que se utiliza para el
descifrado RSA de la clave DES recibida en forma aplicativa.
Si en los parámetros de entrada se ha seleccionado el tipo de la clave DES que se
va a recibir como una ‘S’ —clave de sesión o clave de Aplicación—, se efectúa en el
interior del módulo de seguridad el cifrado operativo de la clave obtenida, mediante
el servicio estándar SCRDES3 de la interfaz DES.
Si el tipo de la clave seleccionado es una ‘I’ —clave de Transporte—, la clave
obtenida se incorpora en el fichero de claves DES del producto criptográfico
compatible, mediante el servicio estándar SCRDES0 de la interfaz DES.
Formato
CALL SCRRDES (código-retorno,código-razón,label-clave-privada,clave-aplicativa-RSA,longitud-clave-DES,tipo-clave-DES,label-clave-transporte,clave-operativa)
Parámetros
código-retorno
Dirección: Salida Tipo: Entero Longitud: 4 octetos
El código de retorno indica el resultado general del proceso.
código-razón
Dirección: Salida Tipo: Entero Longitud: 4 octetos
El código de razón especifica el tipo de error producido cuando el código
de retorno es distinto de ceros.
label-clave-privada
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Servicios de Intercambio de claves DES
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 55
Dirección: Entrada Tipo: Carácter Longitud: 64 octetos
La etiqueta que identifica a la clave privada en el fichero de claves
FICHKRSA con la que se va a efectuar el descifrado RSA, en el interior del
módulo de seguridad, de la clave DES recibida en forma aplicativa.
clave-aplicativa-RSA
Dirección: Entrada Tipo: Carácter Longitud: 128 octetos
La clave DES cifrada con algoritmo RSA en su forma aplicativa, cifrada con
la clave pública complementaria a la clave privada que se indique.
longitud-clave-DES
Dirección: Salida Tipo: Carácter Longitud: 1 octeto
El servicio devuelve la longitud de la clave DES obtenida. Si es una clave
DES simple (64 bits), el valor devuelto será una ‘S’, si es una clave DES
doble (128 bits) el valor será una ‘D’, y si es una clave DES triple (192 bits)
el valor será una ‘T’. Si el tipo de la clave indicado en los parámetros de
entrada es una clave de Transporte y la longitud de la clave obtenida es
triple, se producirá un error.
tipo-clave-DES
Dirección: Entrada Tipo: Carácter Longitud: 1 octeto
El tipo de la clave DES que se va a recibir. Para una clave de Aplicación
DES —clave de sesión—, su valor debe ser una ‘S’, para una clave de
Transporte DES el valor debe ser una ‘I’.
label-clave-transporte
Dirección: Entrada Tipo: Carácter Longitud: 64 octetos
La etiqueta de identificación con la que se incorporará la clave de
Transporte DES en el fichero de claves del producto criptográfico DES
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Servicios de Intercambio de claves DES
Indra Todos los derechos reservados diciembre de 2.002 — Pág. 56
compatible. Solo es necesario cumplimentarlo en el caso de que el tipo de
la clave especificado sea una clave de Transporte.
clave-operativa
Dirección: Salida Tipo: Carácter Longitud: 24 octetos
En el caso de que el tipo de clave especificado sea clave de Aplicación, se
devuelve la clave obtenida cifrada con algoritmo DES en su forma
operativa (cifrada bajo la clave Maestra del Sistema del producto
criptográfico DES compatible), disponible para ser utilizada en los servicios
de cifrado y descifrado de datos. Puede ser una clave DES simple (64
bits), doble (128 bits) o triple (192 bits).
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Apéndice A
Indra Todos los derechos reservados diciembre de 2.002 — Pág. A-57
APÉNDICE A: Códigos de Retorno y Razón
En este apéndice se describen los posibles códigos de retorno y razón que son
devueltos en las llamadas a los servicios criptográficos.
DESCRIPCIÓN
Retorno Razón "batch" o IMS CICS
0 0 Proceso realizado correctamente Proceso realizado correctamente
100 ERROR en la INSTALACIÓN del fichero de claves RSA
101 No hay DDname para el fichero
102 No definido a VSAM el fichero
103No existe el registro de control del
fichero
No existe el registro de control del
fichero
101 xError en el OPEN del fichero de
claves RSA (X = el Error VSAM)
102 xError en el CLOSE del fichero de
claves RSA (X = el Error VSAM)
103 xError de lectura en el fichero de
claves RSA (X = el Error VSAM)
Error de lectura en el fichero de claves
RSA (X = EIBRESP de CICS)
104 xError de escritura en el fichero de
claves RSA (X = el Error VSAM)
Error de escritura en el fichero de
claves RSA (X = EIBRESP de CICS)
105 xError de reescritura en el fichero de
claves RSA (X = el Error VSAM)
Error de reescritura en el fichero de
claves RSA (X = EIBRESP de CICS)
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Apéndice A
Indra Todos los derechos reservados diciembre de 2.002 — Pág. A-58
DESCRIPCIÓN
Retorno Razón "batch" o IMS CICS
106 ERROR en la GENERACIÓN de una pareja de claves pública-y privada RSA
1 Base fuera de límites
2 Longitud de cifras fuera de límites
3 No espacio suficiente en memoria
4 Tamaño máximo de nº sobrepasado
5 Resultado negativo
6 Número no está en la base correcta
7 Nº introducido demasiado grande
8 División por cero
9 No puede aplicarse alg.Montgomery
107 ERROR al IMPORTAR una clave pública-en el fichero de claves RSA.
98El módulo de la clave pública
importada no tiene un valor impar
El módulo de la clave pública
importada no tiene un valor impar
99 El módulo de la clave pública
importada no tiene 1.024 bits (el bit
más significativo no es un 1)
El módulo de la clave pública
importada no tiene 1.024 bits (el bit
más significativo no es un 1)
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Apéndice A
Indra Todos los derechos reservados diciembre de 2.002 — Pág. A-59
DESCRIPCIÓN
Retorno Razón "batch" o IMS CICS
108ERROR en la Generación/Verificación de una FIRMA DIGITAL según la
norma ISO9796
1 Base fuera de límites Base fuera de límites
2 Longitud de cifras fuera de límites Longitud de cifras fuera de límites
3 No espacio suficiente en memoria No espacio suficiente en memoria
4 Tamaño máximo de nº sobrepasado Tamaño máximo de nº sobrepasado
5 Resultado negativo Resultado negativo
6 Número no está en la base correcta Número no está en la base correcta
7 Nº introducido demasiado grande Nº introducido demasiado grande
8 División por cero División por cero
9 No puede aplicarse alg.Montgomery No puede aplicarse alg.Montgomery
10 Longitud de strings de entrada a cero Longitud de strings de entrada a cero
11 No hay memoria para definir strings No hay memoria para definir strings
12 Inválida longitud de strings de trabajo Inválida longitud de strings de trabajo
13 Formato incorrecto de string Formato incorrecto de string
14 Longitud grande para el módulo Longitud grande para el módulo
15 Mensaje rechazado para firma digital Mensaje rechazado para firma digital
16 Firma digital errónea Firma digital errónea
17 Error en chequeo de redundancia Error en chequeo de redundancia
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Apéndice A
Indra Todos los derechos reservados diciembre de 2.002 — Pág. A-60
DESCRIPCIÓN
Retorno Razón "batch" o IMS CICS
109ERROR en la Generación/Recepción de un BLOQUE cifrado RSA,
conteniendo una clave DES de longitud simple, doble o triple
1 Base fuera de límites Base fuera de límites
2 Longitud de cifras fuera de límites Longitud de cifras fuera de límites
3 No espacio suficiente en memoria No espacio suficiente en memoria
4 Tamaño máximo de nº sobrepasado Tamaño máximo de nº sobrepasado
5 Resultado negativo Resultado negativo
6 Número no está en la base correcta Número no está en la base correcta
7 Nº introducido demasiado grande Nº introducido demasiado grande
8 División por cero División por cero
9 No puede aplicarse alg.Montgomery No puede aplicarse alg.Montgomery
21 Formato inválido de bloque con DES Formato inválido de bloque con DES
22 Longitud de módulo no es 1024 bitsLongitud de módulo no es de 1024
bits
31 Error en captura de hora del sistema Error en captura de hora del sistema
41 Texto a cifrar no es múltiplo de 8 Texto a cifrar no es múltiplo de 8
51 Error en generación aleatoria clave Error en generación aleatoria clave
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Apéndice A
Indra Todos los derechos reservados diciembre de 2.002 — Pág. A-61
DESCRIPCIÓN
Retorno Razón "batch" o IMS CICS
110 x Error en acceso a DCB del fichero secuencial (X = valor del reg. 15)
112 0El parámetro Label o etiqueta de la clave RSA tiene un valor incorrecto: no
puede ser todo espacios o low-values
113 8 Se requiere una clave privada y el label especificado es de una clave pública
16 Se requiere una clave pública y el label especificado es de una clave privada
881 0
El parámetro Longitud de clave DES tiene un valor incorrecto: ha de ser ‘S’
Simple, ‘D’ Doble o ‘T’ Triple. Las claves de Transporte no pueden ser de
longitud ‘T’ Triple
882 0El parámetro Tipo de clave DES tiene un valor incorrecto: ha de ser ‘I’ para
una clave de Transporte o ‘S’ para una clave de Aplicación -clave de sesión-
883 0El parámetro Label o etiqueta de la clave DES tiene un valor incorrecto: no
puede ser todo espacios o low-values
9997 xxxxAbend CICS, donde XXXX=ABCODE
en módulo LE/370 llamado
9998 xError general en comando CICS,
donde X=EIBRESP de CICS
9999 xxxx Abend CICS, donde XXXX=ABCODE
Debido a que CRIPTOlib/RSA interactúa con otros productos de criptografía DES y
algunos de los servicios realizan llamadas a funciones criptográficas DES, se
pueden producir errores en estas funciones devolviéndose en este caso los códigos
de retorno y razón propios del producto DES.
Por lo tanto, cualquier otro error devuelto en las llamadas a los servicios que no
figure en la lista anterior, se deberá consultar en el manual de errores del producto
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Apéndice A
Indra Todos los derechos reservados diciembre de 2.002 — Pág. A-62
de criptografía DES correspondiente: 4753/TSS de IBM, ICRF/ICSF de IBM, o
CRIPTOlib/DES versión 3.0 de Indra.
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Apéndice B
Indra Todos los derechos reservados diciembre de 2.002 — Pág. B-63
APÉNDICE B: Instalación del producto
CRIPTOlib/RSA 3.0 es un producto software que, en su versión MVS, está
desarrollado en lenguaje Cobol y lenguaje C. Por este motivo, es necesario para su
funcionamiento disponer de las run-time adecuadas de LE/370, cuyo acceso y
disponibilidad serán imprescindibles tanto en los procesos "batch" como desde los
monitores de teleproceso CICS o IMS.
La instalación del producto se lleva a cabo enviando desde Indra las librerías que
contienen los módulos y jcl’s necesarios para su funcionamiento. Debido a que
CRIPTOlib/RSA interactúa con otros productos de criptografía DES, se deberá
indicar previamente el producto DES disponible en cada instalación para instalar la
interfaz DES adecuada en cada caso.
Una vez recibidas las librerías se procederá a la generación del fichero de claves
FICHKRSA y la generación de las dos claves DES que lo protegen. Por último, se
definirán los recursos al sistema, dependiendo de si el monitor de teleproceso es
CICS o IMS.
Contenido de las librerías
Los módulos de la versión 3.0 (en lenguaje Cobol y lenguaje C) están compilados
con las librerías del LE/370 y las opciones RMODE=ANY, AMODE=31.
Dependiendo de la configuración particular de cada instalación, es posible que
estas dos opciones sea necesario cambiarlas.
La lista completa de jcl’s y módulos que contienen las librerías enviadas es la
siguiente:
"Jcls":
XSCRKDEL - Borrado de una clave pública del FICKKRSA
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Apéndice B
Indra Todos los derechos reservados diciembre de 2.002 — Pág. B-64
XSCRFILE - Instalación inicial del fichero FICHKRSA
XSCRKGEN - Generación de una pareja de claves públ/priv
XSCRKEXP - Exporta una clave pública del FICHKRSA
XSCRKIMP - Importa una clave pública en el FICHKRSA
XSCRGFIR - Generación de firma digital ISO9796
XSCRVFIR - Verificación de una firma digital ISO9796
XSCRGDES - Genera clave DES y la cifra bajo clave RSA
XSCRRDES - Extrae clave DES de un bloque cifrado RSA
Ejecutables:
- Interfaz batch
SCRBENQD - Lenguaje Assembler
SCRBVSAM - Lenguaje Assembler
SCRDESØB - Lenguaje COBOL
SCRDES1B (")
SCRDES2B (")
SCRDES3B (")
SCRFILEØ (")
SCRFILE1 (")
SCRGDESB (")
SCRGDESX (")
SCRGDE1B (")
SCRGFIRB (")
SCRGFIRX (")
SCRGFI1B (")
SCRKDELB (")
SCRKEXPB (")
SCRKEXPX (")
SCRKGENB (")
SCRKGENX (")
SCRKGE1B (")
SCRKIMPB (")
SCRKIMPX (")
SCRRDESB (")
SCRRDESX (")
SCRRDE1B (")
SCRVFIRB (")
SCRVFIRX (")
SCRVFI1B (")
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Apéndice B
Indra Todos los derechos reservados diciembre de 2.002 — Pág. B-65
- Interfaz CICS
SCRDESØO - Lenguaje COBOL
SCRDES1O (")
SCRDES2O (")
SCRDES3O (")
SCRGDESO (")
SCRGFIRO (")
SCRKEXPO (")
SCRKIMPO (")
SCRRDESO (")
SCRVFIRO (")
SCRGDE1O - Lenguaje C
SCRGFI1O (")
SCRRDE1O (")
SCRVFI1O (")
En el caso de que el producto de criptografía DES utilizado en la instalación sea
TSS/4753 de IBM, se recibirán además los dos siguientes jcl’s:
JRELINKO - Relink para resolver verbos TSS en CICS
JRELINKB - Relink para resolver verbos TSS en IMS
Se deberá ejecutar el jcl que corresponda dependiendo de si el monitor de
teleproceso es CICS o IMS, para resolver los verbos TSS de los módulos de la
interfaz DES (SCRDES0, 1, 2 y 3).
Generación del fichero FICHKRSA
Para la generación inicial del fichero de claves FICHKRSA, la creación del registro
de control y la generación de las dos claves de Transporte DES, se debe adaptar y
ejecutar el jcl XSCRFILE recibido en la librería de jcl’s.
Consta de tres pasos, en el primero se define el fichero indexado a VSAM, en el
segundo se crea el registro inicial con la información de control, y en el tercero se
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Apéndice B
Indra Todos los derechos reservados diciembre de 2.002 — Pág. B-66
generan las dos claves de Transporte DES y se incorporan en el fichero de claves
del producto criptográfico DES compatible.
Este jcl se adaptará en cada instalación con los nombres adecuados de las librerías
e indicándose los parámetros de entrada específicos, tal y como se describe en el
Apéndice C: Utilidades.
Definición de recursos
Entorno batch e IMS
Modificar los jcls y regiones IMS de las Aplicaciones usuarias de la siguiente
forma:
• concatenar —bien en STEPLIB o JOBLIB, o bien en la lista de LNKLST— las
librerías de run-time de LE/370, así como la librería que contenga a los
ejecutables de CRIPTOlib/RSA.
• añadir una ficha con DDName FICHKRSA y DSName el nombre físico definido
a VSAM para el fichero de claves “FICHKRSA”:
Entorno CICS
• Modificación del proceso de arranque del CICS, concatenando la librería de
ejecutables de CRIPTOlib/RSA en la ficha DFHRPL.
• Alta en CICS de los programas ejecutables descritos en la lista de la interfaz
CICS.
• Alta en CICS del fichero de claves "FICHKRSA":
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Apéndice C
Indra Todos los derechos reservados diciembre de 2.002 — Pág. C-67
APÉNDICE C: Utilidades
En este apéndice se describen un conjunto de utilidades que se proporcionan con el
producto CRIPTOlib/RSA, mediante las cuales se facilita la gestión y el
mantenimiento de las claves almacenadas en el fichero de claves FICHKRSA, y que
permiten realizar una serie de funciones de propósito general frecuentemente
utilizadas por las Aplicaciones que definen un Sistema de Seguridad basado en
CRIPTOlib/RSA.
Estas utilidades consisten en procesos batch que se encargan de efectuar las
llamadas a los servicios estándar del servidor para efectuar las funciones
criptográficas. Cada uno de los programas de utilidad se ejecuta con su
correspondiente jcl de llamada.
Los jcl’s deberán adaptarse en cada instalación con los nombres adecuados de las
librerías —tanto la de ejecutables de CRIPTOlib/RSA, como la de run-time de
LE/370 si es necesario—, y el nombre físico o DSName con el que se haya creado
el fichero de claves FICHKRSA.
En el caso de que el producto de criptografía DES utilizado en la instalación sea
CRIPTOlib/DES de Indra, se deberá indicar también la librería en donde residen los
módulos ejecutables de CRIPTOlib/DES, y el nombre físico o DSName del fichero
de claves FICHKDES.
Para el resto de los productos compatibles DES no es necesario especificar ninguna
librería ni fichero, pero se deben ejecutar los procesos en un entorno desde donde
este accesible la criptografía DES.
A continuación se da una breve descripción de cada una de las utilidades
proporcionadas, y se indican los parámetros que en cada caso es necesario
cumplimentar en los jcl’s de llamada.
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Apéndice C
Indra Todos los derechos reservados diciembre de 2.002 — Pág. C-68
XSCRFILE - Generación inicial del fichero de claves FICHKRSA
Mediante esta utilidad se realiza todo el proceso de generación e instalación inicial
del fichero de claves FICHKRSA, creando el registro inicial con la información de
control y generando las dos claves de Transporte necesarias e incorporándolas en
el fichero de claves DES del producto criptográfico compatible.
El jcl de ejecución consta de tres pasos, en el primero se define el fichero indexado
a VSAM, debiéndose indicar el nombre físico o DSName con el que se va crear el
fichero FICHKRSA, y los parámetros propios de VSAM y de cada instalación
necesarios para definir el fichero.
El segundo paso crea el registro inicial del fichero con la información de control,
mediante una llamada al programa de utilidad SCRFILE0. Se deben especificar en
dos líneas diferentes de la ficha SYSIN las dos etiquetas que identifican a las claves
de Transporte en el fichero de claves DES.
El tercer paso genera las dos claves de Transporte y las incorpora en el fichero de
claves del producto criptográfico DES compatible, mediante una llamada al
programa de utilidad SCRFILE1. Se deben especificar en dos líneas de la ficha
SYSIN las mismas dos etiquetas de identificación de las claves de Transporte que
las indicadas en el paso anterior.
En los productos criptográficos DES compatibles de IBM, la clave cuya etiqueta se
ha indicado en la primera línea de la ficha SYSIN se incorporará en el fichero con
tipo igual a Exporter, y la correspondiente a la segunda etiqueta se incorporará con
tipo igual a Importer.
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Apéndice C
Indra Todos los derechos reservados diciembre de 2.002 — Pág. C-69
XSCRKDEL – Borrado de una clave del fichero FICHKRSA
Esta utilidad realiza el borrado de una clave RSA que resida en el fichero de claves
FICHKRSA, eliminándose toda la información del fichero relativa a la clave con la
etiqueta de identificación especificada en los parámetros de entrada.
El jcl de ejecución consta de un único paso en el que se efectúa una llamada al
programa de utilidad SCRKDELB. Se debe especificar en la primera y única línea de
la ficha SYSIN la etiqueta de identificación de la clave RSA que se quiere dar de
baja del fichero de claves FICHKRSA.
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Apéndice C
Indra Todos los derechos reservados diciembre de 2.002 — Pág. C-70
XSCRKGEN – Generación de una pareja de claves
Mediante esta utilidad se efectúa la generación aleatoria de una pareja de claves
RSA pública y privada y se incorporan ambas en el fichero de claves FICHKRSA,
con las dos etiquetas de identificación que se especifiquen en las fichas de SYSIN.
El jcl de ejecución consta de un único paso en el que se efectúa una llamada al
programa de utilidad del servidor SCRKGENX, encargado de realizar la generación
de la pareja de claves. Se debe especificar en dos líneas diferentes de la ficha
SYSIN y por este orden:
• En la primera línea la etiqueta de identificación con la que se incorporará en el
fichero de claves FICHKRSA la clave privada generada.
• En la segunda línea la etiqueta de identificación con la que se incorporará en el
fichero de claves FICHKRSA la clave pública generada.
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Apéndice C
Indra Todos los derechos reservados diciembre de 2.002 — Pág. C-71
XSCRKEXP – Exportar una clave pública
Con esta utilidad se exporta una clave RSA pública que resida en el fichero de
claves FICHKRSA del servidor criptográfico. Para facilitar el posterior envío y
distribución de la clave pública exportada, el módulo y el exponente se graban en un
fichero secuencial en formato claro y en representación hexadecimal, de tal forma
que cada pareja de dos caracteres se corresponden con un octeto del módulo y
exponente de la clave pública.
El jcl de ejecución consta de dos pasos, el primero es una llamada al programa
estándar IDCAMS que efectúa el borrado del fichero secuencial en donde se va a
grabar la clave pública, para asegurarse de que no exista en el siguiente paso que
lo crea nuevo. Se deberá especificar en el DELETE el nombre físico o DSName del
fichero secuencial que contendrá a la clave pública exportada.
El segundo paso es una llamada al programa de utilidad del servidor SCRKEXPX,
mediante el cual se exporta la clave pública. Se debe especificar en la ficha con
DDname SALIDA el mismo nombre físico del fichero secuencial indicado en el paso
anterior, y los parámetros propios de alocación de cada instalación, manteniendo
los datos de la DCB del fichero. En la primera y única línea de la ficha SYSIN se
especificará la etiqueta de identificación de la clave pública en el fichero de claves
FICHKRSA que se va a exportar.
La clave pública se graba en el fichero secuencial en un único registro de longitud
512 octetos, en formato claro y representación hexadecimal, primero los 128 octetos
del módulo (256 en hexadecimal) y a continuación los 128 octetos del exponente
(256 en hexadecimal).
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Apéndice C
Indra Todos los derechos reservados diciembre de 2.002 — Pág. C-72
XSCRKIMP – Importar una clave pública
Mediante esta utilidad se incorporan en el fichero de claves FICHKRSA del servidor
criptográfico las claves RSA públicas recibidas del resto de los participantes en el
Sistema de Seguridad. Las claves públicas se reciben en un fichero secuencial con
las mismas características y el mismo formato que los utilizados en el proceso de
exportación.
El jcl de ejecución consta de un único paso en donde se llama al programa de
utilidad del servidor SCRKIMPX para importar la clave pública. Se debe especificar
en la ficha con DDname ENTRADA el nombre físico o DSName del fichero
secuencial recibido y que contiene la clave pública a importar. En la primera y única
línea de la ficha SYSIN se especificará la etiqueta de identificación con la que se va
a incorporar la clave pública en el fichero de claves FICHKRSA.
El fichero secuencial de entrada debe contener a la clave pública en un único
registro de longitud 512 octetos, en formato claro y representación hexadecimal,
primero los 128 octetos del módulo (256 en hexadecimal) y a continuación los 128
octetos del exponente (256 en hexadecimal).
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Apéndice C
Indra Todos los derechos reservados diciembre de 2.002 — Pág. C-73
XSCRGFIR – Genera una firma digital ISO9796
Esta utilidad permite generar una firma digital RSA según la recomendación de la
norma ISO9796, a partir de un texto de entrada de una longitud máxima de 64
octetos, y utilizando una clave privada que resida en el fichero de claves
FICHKRSA.
La firma digital generada se graba en un fichero secuencial de salida con las
siguientes características y formato:
• Longitud de registro del fichero: 256 octetos.
• Número de registros que contiene: 3.
• Registro 1: Longitud del texto que ha sido firmado.
• Registro 2: Texto original en claro que ha sido firmado.
• Registro 3: Firma digital que se ha generado de 128 octetos, en representación
hexadecimal (256 octetos), de tal forma que cada pareja de dos caracteres se
corresponden con un octeto de la firma.
El jcl de ejecución consta de dos pasos, el primero es una llamada al programa
estándar IDCAMS que efectúa el borrado del fichero secuencial en donde se va a
grabar la firma digital, para asegurarse de que no exista en el siguiente paso que lo
crea nuevo. Se deberá especificar en el DELETE el nombre físico o DSName del
fichero secuencial que contendrá la firma digital generada.
El segundo paso es una llamada al programa de utilidad del servidor SCRGFIRX,
mediante el cual se genera la firma digital. Se debe especificar en la ficha con
DDname SALIDA el mismo nombre físico del fichero secuencial indicado en el paso
anterior, y los parámetros propios de alocación de cada instalación, manteniendo
los datos de la DCB del fichero. En tres líneas diferentes de la ficha SYSIN y por
este orden se indicarán:
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Apéndice C
Indra Todos los derechos reservados diciembre de 2.002 — Pág. C-74
• La etiqueta de identificación de la clave privada en el fichero de claves
FICHKRSA que se va a utilizar para firmar el texto.
• La longitud del texto que se va a firmar, mayor que 0 y menor que 65 caracteres.
• El texto en claro que se va a firmar, de una longitud igual a la especificada en la
línea anterior.
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Apéndice C
Indra Todos los derechos reservados diciembre de 2.002 — Pág. C-75
XSCRVFIR – Verificación de una firma digital ISO9796
Con esta utilidad se efectúa la validación de una firma digital contenida en un
fichero secuencial, utilizando una clave pública del fichero de claves FICHKRSA,
para comprobar que la firma digital cumple con las normas de la recomendación
ISO9796 y verificar la identidad y autenticidad de la firma.
La firma digital de entrada al proceso se recibe en un fichero secuencial con las
mismas características y el mismo formato que los utilizados en el proceso de
generación de la firma.
• Longitud de registro del fichero: 256 octetos.
• Número de registros que contiene: 3.
• Registro 1: Longitud del texto que ha sido firmado.
• Registro 2: Texto original en claro que ha sido firmado.
• Registro 3: Firma digital que se va a verificar de 128 octetos, en representación
hexadecimal (256 octetos), de tal forma que cada pareja de dos caracteres se
corresponden con un octeto de la firma.
El jcl de ejecución consta de un único paso en donde se llama al programa de
utilidad del servidor SCRVFIRX encargado de validar y verificar la firma digital. Se
debe especificar en la ficha con DDname ENTRADA el nombre físico o DSName del
fichero secuencial que contiene la firma digital a comprobar, en el formato
adecuado.
En la primera y única línea de la ficha SYSIN se especificará la etiqueta de
identificación de la clave pública en el fichero de claves FICHKRSA, que se va a
utilizar en el proceso de verificación de la firma digital.
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Apéndice C
Indra Todos los derechos reservados diciembre de 2.002 — Pág. C-76
XSCRGDES – Generación de una clave DES cifrada RSA
Mediante esta utilidad se genera una clave DES aleatoria y se devuelve en un
fichero secuencial cifrada de forma aplicativa con algoritmo RSA, bajo una clave
pública del fichero de claves FICHKRSA, disponible para ser intercambiada con un
remoto, y dependiendo del tipo de clave a generar se devuelve cifrada de forma
operativa con algoritmo DES o se incorpora en el fichero de claves DES del
producto criptográfico compatible.
Si se indica en los parámetros de entrada que el tipo de clave DES a generar sea
una clave de Aplicación —clave de sesión—, la clave generada se mostrará en la
SYSOUT del job cifrada de forma operativa con algoritmo DES (cifrada bajo la clave
Maestra del Sistema del producto criptográfico DES compatible).
En el caso de que el tipo de la clave indicado sea una clave de Transporte DES, la
clave generada se incorpora en el fichero de claves DES del producto criptográfico
compatible, con la etiqueta de identificación especificada en los parámetros de
entrada. Si ya existiese una clave en el fichero DES con la misma etiqueta, la nueva
clave sustituirá a la clave anterior, perdiéndose su valor.
La clave DES generada cifrada con algoritmo RSA bajo la clave pública indicada, se
graba en un fichero secuencial de salida con las siguientes características y
formato:
• Longitud de registro del fichero: 256 octetos.
• Número de registros que contiene: 1.
• Registro 1: El AS-BLOCK de 128 octetos que contiene la clave DES cifrada bajo
la clave pública, en representación hexadecimal (256 octetos), de tal forma que
cada pareja de dos caracteres se corresponden con un octeto del AS-BLOCK.
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Apéndice C
Indra Todos los derechos reservados diciembre de 2.002 — Pág. C-77
El jcl de ejecución consta de dos pasos, el primero es una llamada al programa
estándar IDCAMS que efectúa el borrado del fichero secuencial en donde se va a
grabar la clave DES cifrada RSA, para asegurarse de que no exista el fichero en el
siguiente paso que lo crea nuevo. Se deberá especificar en el DELETE el nombre
físico o DSName del fichero secuencial que va a ser utilizado como salida en el
paso siguiente para contener la clave DES cifrada RSA.
El segundo paso es una llamada al programa de utilidad del servidor SCRGDESX,
mediante el cual se genera la clave DES cifrada RSA y se devuelve operativa o se
incorpora en el fichero de claves DES. Se debe especificar en la ficha con DDname
SALIDA el mismo nombre físico del fichero secuencial indicado en el paso anterior,
y los parámetros propios de alocación de cada instalación, manteniendo los datos
de la DCB del fichero. En cuatro líneas diferentes de la ficha SYSIN y por este
orden se indicarán:
• La longitud de la clave DES que se va a generar. Para una clave DES simple (64
bits), su valor debe ser una ‘S’, para una clave DES doble (128 bits) el valor
debe ser una ‘D’, y para una clave DES triple (192 bits) el valor debe ser una ‘T’.
Si el tipo de clave a generar es una clave de Transporte, la longitud de la clave
solo puede ser simple o doble.
• La etiqueta de identificación de la clave pública en el fichero de claves
FICHKRSA con la que se va a realizar el cifrado RSA de la clave DES generada.
• El tipo de la clave DES que se va a generar. Para una clave de Aplicación DES
—clave de sesión—, su valor debe ser una ‘S’, para una clave de Transporte
DES el valor debe ser una ‘I’.
• La etiqueta de identificación con la que se incorporará la clave de Transporte
DES en el fichero de claves del producto criptográfico DES compatible. Solo es
necesario cumplimentarlo en el caso de que el tipo de clave especificado sea
una ‘I’ clave de Transporte.
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Apéndice C
Indra Todos los derechos reservados diciembre de 2.002 — Pág. C-78
XSCRRDES – Recepción de una clave DES cifrada RSA
Esta utilidad se encarga de descifrar una clave DES que se encuentra cifrada con
algoritmo RSA de forma aplicativa en un fichero secuencial, utilizando para ello una
clave privada del fichero de claves FICHKRSA y, dependiendo del tipo de clave a
recibir que se indique, se devuelve cifrada de forma operativa con algoritmo DES o
se incorpora en el fichero de claves DES del producto criptográfico compatible.
Si se indica que el tipo de clave DES a recibir sea una clave de Aplicación —clave
de sesión—, la clave recibida se mostrará en la SYSOUT del job cifrada de forma
operativa con algoritmo DES (cifrada bajo la clave Maestra del Sistema del producto
criptográfico DES compatible).
En el caso de que el tipo de la clave indicado sea una clave de Transporte DES, la
clave recibida se incorpora en el fichero de claves DES del producto criptográfico
compatible, con la etiqueta de identificación especificada en los parámetros de
entrada. Si ya existiese una clave en el fichero DES con la misma etiqueta, la nueva
clave sustituirá a la clave anterior, perdiéndose su valor.
En la SYSOUT del job se mostrará la longitud de la clave DES obtenida. Si es una
clave DES simple (64 bits), el valor mostrado será una ‘S’, si es una clave DES
doble (128 bits) el valor será una ‘D’, y si es una clave DES triple (192 bits) el valor
será una ‘T’. Si el tipo de la clave indicado en los parámetros de entrada es una
clave de Transporte y la longitud de la clave obtenida es triple, se producirá un
error.
La clave DES cifrada con algoritmo RSA de entrada al proceso se recibe en un
fichero secuencial con las mismas características y el mismo formato que los
utilizados en el proceso de generación de la clave.
• Longitud de registro del fichero: 256 octetos.
CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Apéndice C
Indra Todos los derechos reservados diciembre de 2.002 — Pág. C-79
• Número de registros que contiene: 1.
• Registro 1: El AS-BLOCK de 128 octetos que contiene la clave DES cifrada bajo
la clave pública, en representación hexadecimal (256 octetos), de tal forma que
cada pareja de dos caracteres se corresponden con un octeto del AS-BLOCK.
El jcl de ejecución consta de un único paso en donde se llama al programa de
utilidad del servidor SCRRDESX, encargado de obtener la clave DES y devolverla
operativa o incorporarla en el fichero de claves DES. Se debe especificar en la ficha
con DDname ENTRADA el nombre físico o DSName del fichero secuencial recibido
que contiene la clave DES cifrada RSA, en el formato adecuado.
En tres líneas diferentes de la ficha SYSIN y por este orden se indicarán:
• La etiqueta de identificación de la clave privada en el fichero de claves
FICHKRSA con la que se va a realizar el descifrado RSA de la clave DES
recibida.
• El tipo de la clave DES que se va a recibir. Para una clave de Aplicación DES
—clave de sesión—, su valor debe ser una ‘S’, para una clave de Transporte
DES el valor debe ser una ‘I’.
• La etiqueta de identificación con la que se incorporará la clave de Transporte
DES en el fichero de claves del producto criptográfico DES compatible. Solo es
necesario cumplimentarlo en el caso de que el tipo de clave especificado sea
una ‘I’ clave de Transporte.
top related