CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS....

79
Servidor Criptográfico Software CRIPTOlib/RSA V3.0 Servidor Criptográfico Software Indra Diciembre de 2.002

Transcript of CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS....

Page 1: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

Servidor Criptográfico Software

CRIPTOlib/RSA V3.0

Servidor Criptográfico Software

Indra

Diciembre de 2.002

Page 2: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

CRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice

Page 3: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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

Page 4: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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

Page 5: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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.

Page 6: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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),

Page 7: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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.

Page 8: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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:

Page 9: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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.

Page 10: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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

Page 11: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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

Page 12: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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

Page 13: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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

Page 14: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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.

Page 15: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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.

Page 16: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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

Page 17: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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

Page 18: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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

Page 19: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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

Page 20: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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.

Page 21: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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

Page 22: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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.

Page 23: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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—,

Page 24: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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

Page 25: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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

Page 26: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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

Page 27: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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.

Page 28: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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,

Page 29: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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

Page 30: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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.

Page 31: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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.

Page 32: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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

Page 33: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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

Page 34: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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

Page 35: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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.

Page 36: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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

Page 37: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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

Page 38: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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.

Page 39: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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.

Page 40: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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.

Page 41: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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.

Page 42: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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

Page 43: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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

Page 44: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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

Page 45: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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

Page 46: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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

Page 47: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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.

Page 48: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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.

Page 49: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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

Page 50: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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

Page 51: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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

Page 52: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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

Page 53: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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

Page 54: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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

Page 55: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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

Page 56: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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

Page 57: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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)

Page 58: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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)

Page 59: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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

Page 60: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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

Page 61: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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

Page 62: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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.

Page 63: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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

Page 64: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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 (")

Page 65: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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

Page 66: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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":

Page 67: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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.

Page 68: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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.

Page 69: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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.

Page 70: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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.

Page 71: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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

Page 72: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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

Page 73: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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:

Page 74: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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.

Page 75: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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.

Page 76: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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.

Page 77: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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.

Page 78: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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.

Page 79: CRIPTOlib/RSA V3montilla.indra.es/doc/CICS/criptografia/Rs30usia.pdfCRIPTOlib/RSA 3.0 — MVS. Manual de usuario e instalación Índice Indra Todos los derechos reservados diciembre

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.