Beruflich Dokumente
Kultur Dokumente
- C U R S I LLO -
Criptografía y certificación
GnuPG y OpenSSL
07/06
nesys-st.com Seguridad Telemática Avanzada
Objetivo:
Dirigido a:
Profesor: juriona@nesys-st.com
nesys-st.com Seguridad Telemática Avanzada
Duración: 6 horas
Fechas del curso: 10/07/2006 ~ 11/07/2006
Horario: 16:00 - 19:00
julio de 2006
lu ma mi ju vi sá do
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
nesys-st.com Seguridad Telemática Avanzada
- Índice -
Tema 1 Introducción a necesidades de seguridad
* Protocolos vulnerables, analizadores de redes
* Necesidades para la seguridad en las comunicaciones
o Privacidad
o Autenticación
o Integridad
o No repudio
nesys-st.com Seguridad Telemática Avanzada
- Índice -
- Índice -
Conceptos teóricos I
Conceptos teóricos II
Amenazas a la seguridad I
✗
Interrupción: un recurso se vuelve no disponible. Este es un
ataque contra la disponibilidad.
✗
Intercepción: una entidad no autorizada consigue acceso a un
recurso. Este es un ataque contra la confidencialidad.
✗
Modificación: una entidad no autorizada no sólo consigue acceder
a un recurso, sino que es capaz de manipularlo. Ataque contra la
integridad.
✗
Fabricación: una entidad no autorizada inserta objetos falsificados
en el sistema. Este es un ataque contra la autenticidad.
nesys-st.com Seguridad Telemática Avanzada
Amenazas a la seguridad II
nesys-st.com Seguridad Telemática Avanzada
MECANISMOS DE SEGURIDAD I
MECANISMOS DE SEGURIDAD II
- Firma digital: se enviará junto con los datos ordinarios,
garantizará la autenticidad y el no repudio de los datos
TEMA 2: CRIPTOGRAFÍA
nesys-st.com Seguridad Telemática Avanzada
●
La criptografía es la técnica, ciencia o arte de la escritura secreta.
●
A la transformación del mensaje original en el mensaje cifrado
(criptograma) le llamamos cifrado, y a la inversa, el paso del
criptograma al mensaje original le llamamos descifrado.
●
Estos pasos se realizan mediante un conjunto de reglas
preestablecidas entre los comunicantes, definidas por el algoritmo, y
dependientes (hace únicas las operaciones) de un valor numérico al que
llamamos clave.
●
El criptoanálisis es el conjunto de técnicas que intenta encontrar la
clave utilizada en un algoritmo entre dos comunicantes.
nesys-st.com Seguridad Telemática Avanzada
Definición
●
Un conjunto finito (alfabeto), que permite representar tanto el texto en
claro como el criptograma.
●
A bajo nivel: bits,
●
A más alto nivel: caracteres ASCII o MIME.
●
Un conjunto finito denominado espacio de claves. Constituido por la
totalidad de las claves posibles del criptosistema.
●
Familias de transformaciones aritmético-lógicas -->
●
transformaciones de cifrado
●
transformaciones de descifrado
nesys-st.com Seguridad Telemática Avanzada
Definición
Cifrado vs Codificación
NO ES LO MISMO EL CIFRADO QUE LA CODIFICACIÓN
Algoritmo vs Clave
• Algoritmo: Descripción precisa de una sucesión de
instrucciones que permiten llevar a cabo un trabajo en un
número finito de pasos.
●
Abiertos La fortaleza está en la clave usada y no en el algoritmo.
Sistemas abiertos
●
Cerrados La fortaleza reside en la clave y en el algoritmo. Sistemas
propietarios
nesys-st.com Seguridad Telemática Avanzada
Criptoanálisis y criptología
Historia
• Antiguo Egipto: Escritura de jeroglíficos
• Cifrado Cesar: Sustituir cada letra por otra 3 más allá en el abecedario
• San Bernardino: Irregularidad de los símbolos
• Tarjetas con agujeros perforados
• Cifrado de Vignere: Cifrado por sustitución con uso de una clave
• Primera y segunda guerra mundial: La dificultad de códigos daba
robustez
¡¡PREHISTORIA!!
Cifrado Cesar
nesys-st.com Seguridad Telemática Avanzada
Criptografía Fuerte
• Del inglés strong cryptography
“There are two kinds of cryptography in this world: cryptography that will
stop your kid sister from reading your files, and cryptography that will stop
major governments from reading your files. Our trade is about the latter.”
Tipos
Tipos
●
De clave simétrica (SKC): Una sola clave para cifrar y descifrar.
También llamada de clave privada
●
De clave asimétrica (PKC): Una clave cifrará y otra descifrará los
mensajes, dichas claves estarán relacionadas de alguna manera (de
modo que sea computacionalmente imposible sacar una de la otra)
Criptosistemas simétricos
Cifrado con criptosistemas de clave secreta
Medio de
k Transmisión k
C C M
M
EKK
E MT DDKK
Texto Texto
Base protegida Criptograma protegida Base
C’ no permitido M no permitido
Características
Problemas
• No sirve en relaciones que no son simétricas
– yo tengo un secreto compartido con el banco; pero no
acepto que el banco firme órdenes como si fueran mías
Esquemas
• Esquemas de cifrado:
– De bloque: Encripta por bloques de datos. Hay diferentes
modos de implementación (EBC y CBC)
– De hash
nesys-st.com Seguridad Telemática Avanzada
M EB MT DDBB M
Usuario A C C Usuario B
Criptograma protegida
M no permitido
M DAA
D MT EA M
Usuario A C C Usuario B
protegida Criptograma
Integridad
Firma
digital Autenticación
del usuario A;
Información cifrada integridad de M
• Aplicaciones y usos:
1.Intercambio de claves privadas
2.Firma digital: se cifra un resumen del mensaje
• Las claves a emplear para que se considere
seguro son mucho mayores que en SKC
• Difícil de implementar y lentitud del proceso de
cálculo ¡¡No se usa para cifrar mensajes!!
¡¡Se usa para distribuir claves!!
nesys-st.com Seguridad Telemática Avanzada
Características PKC
nesys-st.com Seguridad Telemática Avanzada
Funciones Hash
• Para resolver el problema de la integridad de los
mensajes
• Realiza una transformación a un mensaje
consiguiendo otro mensaje de longitud constante
Valor de Hash
• Requerimientos:
1. La entrada puede ser de cualquier longitud
2. La salida tiene longitud fija (128, 160 o 256 bits)
3. La transformación es de cálculo fácil
4. La inversa es computacionalmente imposible
5. Libre de colisiones
nesys-st.com Seguridad Telemática Avanzada
Funciones Hash
•Se usa para dos funciones: • Algoritmos:
1.Integridad de mensajes MD5, SHA1
2.Firmas digitales (autenticidad y no-
repudio)
nesys-st.com Seguridad Telemática Avanzada
HMAC
•Message Authentication Code
•Añade un password al hash
•Sólo el que posee la clave puede generar el hash
Los últimos estudios demuestran que existen colisiones
en las funciones SHA-1 y MD5
nesys-st.com Seguridad Telemática Avanzada
Proceso Hash
nesys-st.com Seguridad Telemática Avanzada
MD5
Ejemplos
¿Qué hacer?
Cifrado de la información:
Sistemas de clave secreta
k privada k pública
de A k k secreta de A
DA secreta
K EA M
M K
C
Usuario A K Usuario B K
Cifrado asimétrico
Autenticación
Firma del usuario e
digital Cifrado simétrico integridad
sobre
H(M) Intercambio clave de sesión K usando
EB(M) en emisión y DB(C) en
recepción
nesys-st.com Seguridad Telemática Avanzada
• Vemos resumen:
– http://en.wikipedia.org/wiki/Cryptography
nesys-st.com Seguridad Telemática Avanzada
Longitud de claves
• Comparativa de nivel de seguridad en PKC y SKC
nesys-st.com Seguridad Telemática Avanzada
12 minutes 18 months
Small Business $10,000 FPGA 55
($0.08) ($5,000)
24 seconds 19 days
FPGA
($0.08) ($5,000)
Corporate Department $300K 60
0.18 seconds 3 hours
ASIC
($0.001) ($38)
7 seconds 13 hours
FPGA
($0.08) ($5,000)
Big Company $10M 70
0.005 seconds 6 minutes
ASIC
($0.001) ($38)
0.0002 12
Intelligence Agency $300M ASIC seconds seconds 75
($0.001) ($38)
nesys-st.com Seguridad Telemática Avanzada
Criptoanálisis - Ataques
• Dependerán de lo que los atacantes dispongan
• Suponemos que el atacante tiene acceso al texto cifrado
• Entonces puede:
–Sólo captura texto cifrado
–Conoce (o puede adivinar) parte del texto plano
–Puede cifrar el texto que quiera
• Múltiples tipos:
– http://en.wikipedia.org/wiki/Category:Cryptographic_attacks
• En todo caso, siempre existirá un ataque, conocido el
algoritmo, la “fuerza bruta”.
La única protección: Longitud de claves
nesys-st.com Seguridad Telemática Avanzada
Criptoanálisis - Ataques
• Criptoanálisis diferencial:
– Leves diferencias en entradas, qué diferentes salidas
producen
– Busca comportamientos no aleatorios del algoritmo
• detección de patrones estadísticos
– Necesita chosen-plaintext-atack
• Criptoanálisis lineal:
– Se trata de buscar aproximaciones afines de la acción del
cifrado
nesys-st.com Seguridad Telemática Avanzada
Problemas
• Temas legales en la criptografía:
– Limitaciones en legislación USA para la exportación
• Clasifica la criptografía como munición
• Según el tamaño de la clave de los algoritmos
– PGP y PGPi
– Digital Millennium Copyright Act (DMCA)
• Criminaliza la producción y distribución de ciertas
técnicas y tecnologías criptoanalíticas
• Sobre todo las destinadas a “romper” tecnologías de
aseguración de copyright (DRM)
• fuente: wikipedia
nesys-st.com Seguridad Telemática Avanzada
Autenticación de mensajes
• Requerimiento básico de seguridad: Asegurar la
procedencia de los mensajes.
– Cartas lacradas en la edad media
– Tarjetas identificadoras, claves de acceso, etc.
• Objetivos:
1. El mensaje procede de la persona que dice remitirlo
2. Nadie ha modificado el mensaje en cuestión
• Se usan firmas digitales y certificados Sustitutos de la
firma manuscrita
nesys-st.com Seguridad Telemática Avanzada
Firmas digitales
• Necesidad del equivalente electrónico a la firma manuscrita
• Aseguran la procedencia de un mensaje Autenticidad y no
repudio
• ¡¡Valor legal!!
• Implicaciones económicas, legales y jurídicas
• Ley de firma electrónica RD 17/9/1999
nesys-st.com Seguridad Telemática Avanzada
Firmas digitales
• Propiedades:
– Personal
– Infalsificable
– Fácil de autenticar
– No repudio
– Fácil de generar
• ¡Aún más segura que la manuscrita!
nesys-st.com Seguridad Telemática Avanzada
Firmas digitales
Firmas digitales
– Algoritmo de firma
– Algoritmo de verificación
nesys-st.com Seguridad Telemática Avanzada
Firmas digitales
• Una de las formas de realizar firma digital es la siguiente
forma:
– A genera un resumen del mensaje (función hash (conocida y
pública)), y lo cifra usando PKC con su clave privada
(F(H(M)))
– A envía el par mensaje original + resultado anterior a B
– B calcula dos cosas:
• Con el mensaje saca el hash
• Con PKC y clave pública de A descifra F(H(M)))
– Si ambos resúmenes son iguales se acepta la firma
nesys-st.com Seguridad Telemática Avanzada
Firmas digitales
• Usa PKC + Hashing
• Con la firma digital conseguimos:
integridad
autenticación
no repudio
• Ejemplo: DSS (Digital Signature Standard)
– Algoritmo DSA de firma
– SHA-1 como Hash
nesys-st.com Seguridad Telemática Avanzada
TEMA 3: CRIPTOGRAFÍA Y
GESTIÓN DE LA CONFIANZA
nesys-st.com Seguridad Telemática Avanzada
PKI's
Es el conjunto de hardware, software, gente, políticas y procedimientos
necesarios para crear, gestionar, guardar, distribuir y revocar
certificados basados en criptografía de clave pública.
IETF-PKIX
nesys-st.com Seguridad Telemática Avanzada
PKI's
• Una PKI es el conjunto de servicios de seguridad que
posibilitan el uso y administración de:
– Certificados y criptografía de clave pública
– en sistemas de computación distribuidos
– incluyendo claves, certificados y políticas
nesys-st.com Seguridad Telemática Avanzada
PKI's
Componentes de un PKI
nesys-st.com Seguridad Telemática Avanzada
Certificados digitales
• Cogemos una clave pública de un repositorio de Internet,
¿Cómo sabemos que realmente corresponde al destinatario
deseado?
– Certificados digitales, así la identidad del dueño no puede
ser falsificada
• Una tercera identidad interviene en la administración de las
claves públicas y asegura que las claves públicas tienen un
usuario claramente identificado
nesys-st.com Seguridad Telemática Avanzada
Certificados digitales
• Se trata de una credencial que contiene información acerca de
la entidad certificadora (CA) y de la entidad certificada (usuario)
• Caso de DNI paralelismo
• El formato será el de un fichero digital intransferible y no
modificable
• Una CA da fe de la firma de una entidad certificada
nesys-st.com Seguridad Telemática Avanzada
Certificados digitales
• Funciones de los certificados:
1. Establecer identidades: Asocia una clave pública a un
individuo u otra entidad
2. Asignar una autoridad: Establece qué acciones podrá
realizar el poseedor del certificado
3. Securiza la información confidencial
• Ejemplo: X.509
• Existen muchas CAs, que proveen los certificados (Verisign,
Thawte, FNMT, Izenpe...)
nesys-st.com Seguridad Telemática Avanzada
Autoridades de Certificación
La Autoridad de Certificación es un A B
ente u organismo que, de acuerdo con certificado de B
unas políticas y algoritmos, certificará
-por ejemplo- claves públicas de certificado de A
usuarios o servidores.
Elementos de una AC
El sistema debe tener:
• Una política de certificación
• Un certificado de la CA
• Los certificados de los usuarios (X.509)
• Los protocolos de autenticación, gestión y obtención de
certificados:
– Se obtienen de bases de datos (directorio X.500, LDAP)
– O bien directamente del usuario en tiempo de conexión
(WWW con SSL)
nesys-st.com Seguridad Telemática Avanzada
Algoritmo
Parámetros Período de validez
Autoridad de Certificación
Inicio de la validez
Caducidad de la validez Clave pública que se firma
Algoritmo
Parámetros Función hash que se cifra con la clave
Clave pública del usuario privada de la AC
Firma de la AC
nesys-st.com Seguridad Telemática Avanzada
Certificate Request
• Esto no es un certificado
• Se trata de un formato de datos (normalmente un archivo) en cuál se
realiza una solicitud de un certificado x509 por parte de un usuario
• Se complementa con la clave privada (normalmente en otro archivo)
• Los datos que lleva serán parte de los que lleva un certificado, pero le
faltará la parte de compromiso
– Subject
– Clave pública
– Algoritmo de firma
nesys-st.com Seguridad Telemática Avanzada
SOFTWARE
PKI
nesys-st.com Seguridad Telemática Avanzada
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 FEgRLWw9dgA==jBw7
4g===cHzL -----END PGP PRIVATE KEY BLOCK-----
-----END PGP PUBLIC KEY BLOCK-----
nesys-st.com Seguridad Telemática Avanzada
OpenSSL
OpenSSL es un trabajo derivado de SSLeay. SSLeay fue desarrollado originalmente
por Eric A. Young y Tim J. Hudson en 1995. En Diciembre de 1998, el desarrollo de
SSLeay fue interrumpido y la primera versión de OpenSSL fue liberada (0.9.1c) ,
utilizando SSLeay 0.9.1b como punto de partida. OpenSSL se compone de dos
partes:
1.librería criptográfica 2.conjunto de aplicaciones SSL
Existen versiones para distintas plataformas http://www.openssl.org
OpenSSL>
Standard commands
asn1parse ca ciphers crl crl2pkcs7
dgst dh dhparam dsa dsaparam
enc engine errstr gendh gendsa
genrsa nseq ocsp passwd pkcs12
pkcs7 pkcs8 rand req rsa
rsautl s_client s_server s_time sess_id
smime speed spkac verify version
x509
Message Digest commands (see the `dgst' command for more details)
md2 md4 md5 rmd160 sha sha1
OpenSSL
[root@nesys209 ssl]# rpm -i openssl-0.9.7a-35.rpm
OpenSSL
•Hashing
#openssl md5 a.txt
#openssl sha1 a.txt
#openssl sha1 -out a_hash.txt a.txt
Descifrado 3DES
#openssl enc -des-ede3-cbc -d -in cifra_a.bin -out descifra_a_3des.txt -pass pass:CLAVE
Descifrado BLOWFISH
#openssl bf-cbc -salt -d -in cifra_a.bin -out descifra_a_blow.txt -pass pass:CLAVE
•Codificación de la información
#openssl base64 -in cifra_a.bin -out cifra_a_base64.txt
nesys-st.com Seguridad Telemática Avanzada
OpenSSL
Construyendo una Autoridad de Certificación
# mkdir /tmp/newca
# cd /tmp/newca
# mkdir certs private
# chmod g-rwx,o-rwx private
# echo '01' > serial
# touch index.txt
# ls -las
OpenSSL /usr/share/ssl/openssl.cnf
[ CA_default ]
dir = /tmp/newca # Where everything is kept
certs = $dir/certs # Where the issued certs are kept
crl_dir = $dir/crl # Where the issued crl are kept
database = $dir/index.txt # database index file.
new_certs_dir = $dir/certs # default place for new certs.
certificate = $dir/cacert.pem # The CA certificate
serial = $dir/serial # The current serial number
crl = $dir/crl.pem # The current CRL
private_key = $dir/private/privkey.pem # The private key
RANDFILE = $dir/private/.rand # private random number file
x509_extensions = usr_cert # The extentions to add to the cert
. . .
# crl_extensions = crl_ext
default_days = 365 # how long to certify for
default_crl_days= 30 # how long before next CRL
default_md = md5 # which md to use.
preserve = no # keep passed DN ordering
[ req ]
default_bits = 2048
default_keyfile = privkey.pem
distinguished_name = req_distinguished_name
attributes = req_attributes
nesys-st.com Seguridad Telemática Avanzada
OpenSSL
Construyendo una Autoridad de Certificación
+ Construyendo el certificado de la CA autofirmado
#openssl req -x509 -days 3650 -newkey rsa -out cacert.pem -outform PEM –keyout
cakey.pem
OpenSSL
[root@nesys209 newca]# cat userkey.pem
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,CE2D5DC9F9275BE0
fPVuz1E2dFPb5ja3dSQrgUyJ1Z0vMMPyuREAL53eoUAplkBQnkutKyiK13GXFlHT
mb4kYswgy4koa/Jj9AjO10jTUdQ0bKF4F69w/hWLKl7CcOdTiZpCFXtE/b8kS/+d
Kecw/4YEfDW2V+rrlYu8QaMUSvTBGjlrT2wlJIdTpn78uEjdEeyjDmf5VL8yyeSb
FqKZa1zgE3qCUedpL24NCYBUESCoMUH4YtdXn4hvxaHkdgBigDS3LW9Ztedo+tCy
qqYBqO9LBQAgYVgYoxe37BKw++mBAo32AbP9KUY/TqW3atsGEzeTKgt8XErvkEsJ
NquuxjwEQClOcoASF5ox8TOEAGMic7iUKlmIZB37a4n7on075Wenoez7/i/EuFR6
YMxABMVZ9jTcPJfNJViKpCUFEli8vGgBF83iifbGgYaCfRyCcyvB5fFBzmkYHft4
uVaJJLoaxotLj8FHTPPeCQqtfgpESPSVrq+funfDtZJiKzUB3JATeyshK8Zc0OR8
REu51+jWD9CY5piRDvfk6JEvsSv2vXt6rbFXGkzysasrbgcb722dpkLNTWDTJxEl
UyCfLJflCxZ08lXbG6oaMIHxhbaewcEyovxOTHIFbYzL+y3xetwDD3I3f+XhikB/
l9eC+MUIaFzSS9rFXOzxULzZ3gdCUMHkcIRUY7J1e6mYmBs6Z3g4lchKVe1/cxrd
B6AtRxIJIJFLwBumXGnXvBHTfTdAcN6Ical32zyL2DOgY4yy/sdwUA8yFEoavK0g
g9aQhgULjdPAcuvxloF4YE8UosBhu0VqzdhMtiY5oosK5A/AAC7cNg==
-----END RSA PRIVATE KEY-----
OpenSSL
Generación de un certificado a partir del request (CSR)
#openssl ca -in userreq.pem
...
-----BEGIN CERTIFICATE-----
MIIEADCCAuigAwIBAgIBATANBgkqhkiG9w0BAQQFADCBhDELMAkGA1UEBhMCRVMx
EDAOBgNVBAgTB3ZpemNheWExEDAOBgNVBAcTB1NvbmRpY2ExDjAMBgNVBAoTBU5F
U1lTMQwwCgYDVQQLEwNQS0kxETAPBgNVBAMTCG5lc3lzMjA5MSAwHgYJKoZIhvcN
...
IppRmJrZ7HCOsgOkhsoYe4EIYcZRoqgZFK0dehcRWG4/auXmKFO+XtdYorjYEU0/
07PI2LtOyEjA2lgCEk5pH/khbAI=
-----END CERTIFICATE-----
Revocación de certificados
# cp certs/01.pem testcert.pem
# openssl ca -revoke usercert.pem
Using configuration from openssl.cnf
Enter PEM pass phrase:
Revoking Certificate 01.
Data Base Updated
OpenSSL
Generación de una lista de revocación
Formatos de certs
• PKCS: Public Key Cryptography Standards. Estándares
emitidos por RSA http://www.rsasecurity.com/rsalabs/pkcs/.
– PKCS#1: Especificación del algoritmo RSA
– PKCS#8: Formato para claves privadas
– PKCS#10: Formato para requests de certificados (CSRs)
– PKCS#12: Formato combinado para claves-certs (pfx, p12)
• ASN.1, DER y PEM:
– ASN.1 estándar de descripción de datos portables. En crypto
Descripción de claves.
– DER codifica los datos en un stream de bytes
– PEM Coge el stream, lo codifica Base64 y le añade una cabecera y un
pie de página.
nesys-st.com Seguridad Telemática Avanzada
Puede contener todas las claves privadas (RSA y DSA), claves públicas (RSA y DSA) y
certificados (x509). Es el formato por defecto para OpenSSL. Guarda datos codificados
en Base64 y formato DER, rodeado de cabeceras ASCII, de tal forma que es muy
adecuado para transferencias entre sistemas.
DER
Puede contener todas las claves privadas, públicas y certificados. Se guarda de acuerdo
con el formato ASN1 DER. Suele ser el utilizado por los navegadores
PKCS#12
También conocido como PFX (ext .p12 y .pfx). Puede contener todas las claves
privadas, públicas y certificados. Se guardan los datos en binario. Lo usa Microsoft.
nesys-st.com Seguridad Telemática Avanzada
Conversión de certificados
openssl dsa -inform PEM|DER -outform DER|PEM -in pem-file|der-file -out der-file|pem-file
openssl rsa -inform PEM|DER -outform DER|PEM -in pem-file|der-file -out der-file|pem-file
nesys-st.com Seguridad Telemática Avanzada
Ejercicios
1. Manejo de GPG
– Creación par de claves, gestión de anillos, cifrado,
firma, descifrado y validación…
– Validación de firmado de SW putty
– http://www.gnupg.org/gph/en/manual.html
2. Manejo OpenSSL:
– Creación de una CA, creación de requests, firmado
de certs, gestión de CRLs
– Creación de una PKI de tres niveles
– Uso de la PKI bajo OpenVPN
nesys-st.com Seguridad Telemática Avanzada
REFERENCIAS
Openssl.org, gnupg.org, openvpn.org,
seguridaddigital.info
Wikipedia
UPM, Jorge Ramió Aguirre, J.L. Mañas
Jérémy Chartier
NESYS-ST.COM
www.kriptopolis.org
nesys-st.com Seguridad Telemática Avanzada
Licencia