SimtricosAsimtricosTiempo de vidaMenorMayorLongitudMenorMayorNum. de clavesElevadoPequeo
???Pgina ??? (???)24/02/2008, 23:41:47Pgina / Dani Gutirrez [email protected]
Introduccin a la
Criptografa
ndice
Introduccin
Valores aleatorios
Funciones hash
Cifrados simtrico y asimtrico. Comparacin.
Aplicaciones: encriptacin, firma digital, protocolos, MAC/HMAC
Esquemas de autenticacin
Estndares y Formatos
Software
Licencia de uso
Introduccin
Objetivos:
Privacidad=Confidencialidad
Autenticacin
Integridad
No repudio
Fundamentos matemticos:
Generacin de nmeros aleatorios
Generacin de nmeros primos grandes
Sustituciones
Permutaciones=Trasposiciones
Valores aleatorios
nonce=number used once. Nmero o cadena de bits a ser empleado una sola vez, aleatorio y que no se repite. Ej. empleado en autenticacin digest de http
Vector de inicializacin (IV): bloque de bits necesario para los cifradores de flujo o de bloque. Es un caso de nonce.
salt: para protegerse contra los ataques de diccionario, las funciones de generacin de claves crean claves a partir de una clave original y un conjunto de bits aleatorios denominado salt. A veces se emplea un IV como salt.
Ej: En ldap, {smd5} es la versin salted de md5y {ssha} la variante salted de la sha-1 {sha}
Funciones hash
Sinnimos: resumen, digest, hash
Crean un resumen de N bits a partir de un contenido origen.
Propiedades:
Funciona en una sola direccin: a partir del resumen no se puede deducir el origen
No hay 2 orgenes que den un mismo resumen (en teora), o son
difciles de calcularlos
(ver http://en.wikipedia.org/wiki/Hash_collision)
Usos:
Resumen de un contenido (ej. fichero, correo electrnico), ej. para comparacin
Codificacin de passwords a longitud fija
Funciones hash
Ejs. de algoritmos:
crypt: el resultado depende de cada sistema concreto ( http://en.wikipedia.org/wiki/Crypt_(Unix) )
md5. Tiene colisiones. Ejs:
En /etc/shadow se emplea una versin salted de md5. El salt se
almacena en el 2 campo de la forma $1salt$... Ej.
comprobacin:
openssl passwd -1 -salt mi_salt mi_clave
Passwords joomla de mysql
sha, sha-1, sha-2. sha-1 es el sucesor de md5. Se emplea en SSL/TLS, S/MIME, PGP, SSH, IPsec.
Refs:
http://en.wikipedia.org/wiki/Cryptographic_hash_function
http://en.wikipedia.org/wiki/SHA_hash_functions
Cifrado simtrico
Una misma clave para encriptar y desencriptar
Problema: distribucin de claves (ha de estar muy guardada, o ser de vida corta)
Los mtodos pueden ser de flujo o de bloque.
Ejs. de algoritmos:
des, 3des, aes, desx
cast, cast5
rc2, rc4, rc5
idea (patentado)
blowfish
Ref: http://en.wikipedia.org/wiki/Symmetric-key_algorithm
Cifrado asimtrico
Dos claves, una pblica y otra privada. Propiedades:
A partir de una clave pblica es imposible deducir la privada.
Lo que se encripta con una se puede desencriptar con la otra, y viceversa. Ej:
Encriptacin:
Origen: encriptar mensaje con clave pblica del receptor
Destino: desencriptarlo con clave privada del receptor
Firma:
Origen: encriptar hash de un mensaje con clave privada del emisor
Destino: desencriptarlo con la clave pblica del emisor
Slo se puede desencriptar con la otra clave; con ninguna otra.
Cifrado asimtrico
Ejs. de algoritmos:
DH (Diffie-Hellman). Uso tpico para claves de sesin: intercambiar claves simtricas sin la ayuda de una clave previa en un medio inseguro
RSA
DSA/DSS: Ms moderno y ms seguro que RSA
Usado slo para firmar (no para encriptar).
Necesita una funcin hash (ej. sha1).
DSS=DSA+sha1
ElGamal
Curvas elpticas
Ref: http://en.wikipedia.org/wiki/Public-key_cryptography
Cifrado asimtrico
Usos de RSA y DSA:
Generacin de claves privada y pblica:
La clave privada se puede encriptar con una passphrase y algoritmos simtricos des, 3des o idea. Se pide al usarla ej. arranque de servidor web
La clave pblica es deducible a partir de la clave privada.
Operaciones:
Firma: ms rpido RSA.
Verificacin: ms rpido DSA.
Encriptacin: slo RSA.
Ejs:
openssh: ssh-keygen -t dsa
openssl: openssl genrsa -out privkey.pem 1024
Comparacin de cifrados
En ambos: importante longitud de clave.
Asimtrico ms lento que simtrico
Claves:
Aplicaciones: encriptacin
Proceso:
Se crea una clave K. Puede ser:
Aleatoria, en el lado del emisor.
De sesin, a partir de las claves privada y pblica de emisor y receptor. Algoritmo Diffie-Hellman.
El emisor enva:
Mensaje encriptado con algoritmo simtrico y clave K.
Clave K encriptada con algoritmo asimtrico y clave pblica del receptor.
Garantiza confidencialidad
Aplicaciones: firma digital
Proceso:
En el lado del emisor:
Se encripta el resumen del mensaje con la firma privada del emisor.
Se enva el resultado
Garantiza:
Autenticidad e integridad
No repudio, como consecuencia de los dos anteriores
Ej. aplicaciones:
Correo electrnico (thunderbird, kmail,...)
Documentos ofimticos (openoffice, acrobat reader)
Aplicaciones: protocolos
Uso especfico en:
GPG/PGP
SSL/TLS (ej. https: autenticacin de servidor y/o cliente)
SSH
IKE (IPsec)
...
Aplicaciones: MAC/HMAC/...
MAC (message authentication code): cdigo pequeo de informacin construido a partir del mensaje y de una clave simtrica (no es una firma digital).
Garantiza autenticidad e integridad.
Algoritmos:
Funciones resumen ej SHA1, MD5.
HMAC (key-hashed MAC): MAC generado con funciones resumen
Cifrado de bloque ej. OMAC.
MIC (message integrity code): slo para integridad. Parte slo del mensaje, no de una clave
Esquemas de autenticacin
Problema de partida: verificar la asociacin de claves pblicas e identidades.
Esquemas:
Confianza en base a terceros:
Vertical: jerarqua de CAs (ej. PKI X.509)
Horizontal: red de confianza (ej. PGP/GPG)
Verificacin directa (ej. ssh)
Otros: modelo de confianza local (ej. SPKI=Simple PKI)
Estndares y Formatos
PKCS: Public Key Cryptography Standards. Listado de los principales:
1: claves RSA pblica y privada
5: encriptacin en base a claves
7: Firmar y encriptar mensajes,....
8: formato de fichero no encriptado de claves pblicas y privadas
10: Mensaje enviado a una CA para solicitar verificacin de una clave pblica
11: API para tokens de criptografa (seguridad hardware)
12: formato de fichero encriptado de claves pblicas y privadas
Estndares y Formatos
ASN.1
Abstract Syntax Notation One.
Lenguaje para describir y codificar reglas para representar datos.
Estndar ITU X.208/X.680.
Reglas de codificacin:
BER: Basic Encoding Rules (X.690). Ej. para LDAP
CER: Canonical Encoding Rules
DER: Distinguished Encoding Rules
XER: XML Encoding Rules
...
Estndares y Formatos
Formatos de parmetros, claves privada y pblica,...:
DER (es binario)
PEM (es ascii). Ej: -----BEGIN ...----- siendo ...:
Claves:
PKCS8 encriptado: ENCRYPTED PRIVATE KEY
PKCS8 no encriptado: PRIVATE KEY
RSA: RSA PRIVATE KEY
DSA: DSA PRIVATE KEY, DSA PARAMETERS
Curvas elpticas: EC PRIVATE KEY
Certificados:
Certificado: CERTIFICATE, X509 CERTIFICATE
Certificado firmado: TRUSTED CERTIFICATE
CSR: CERTIFICATE REQUEST
CRL: X509 CRL
Software
Paquetes ubuntu
asn1c - ASN.1 compiler for C
dirmngr - server for managing certificate revocation lists
kleopatra - KDE Certificate Manager
openssl - Secure Socket Layer (SSL) binary and related cryptographic tools
libbotan1.6 - multiplatform crypto library
libio-socket-ssl-perl - Perl module implementing object oriented interface to SSL sockets
libksba8 - X.509 and CMS support library
libxyssl-dev - lightweight crypto and SSL/TLS library
python-ncrypt - python wrapper for OpenSSL
Software
Paquetes ubuntu
beidgui - application to read out information from the Belgian electronic ID card
ca-certificates - Common CA Certificates PEM files
coolkey - Smart Card PKCS #11 cryptographic module
cryptonit - A client side PKI (X.509) cryptographic tool
ebox-ca - eBox - Certificate Authority Manager
newpki-client - PKI based on the OpenSSL low-level API (client package)
newpki-server - PKI based on the OpenSSL low-level API (server package)
pyca - Certification Authority written in python
seccure - tools for using algorithms based on elliptic curve cryptography (ECC)
ssl-cert - Simple debconf wrapper for openssl
tinyca - simple graphical program for certification authority management
Licencia de uso
http://creativecommons.org/licenses/by-sa/3.0/
Pulse para editar el formato del texto de ttulo
Pulse para editar los formatos del texto del esquema
Segundo nivel del esquema
Tercer nivel del esquema
Cuarto nivel del esquema
Quinto nivel del esquema
Sexto nivel del esquema
Sptimo nivel del esquema
Octavo nivel del esquema
Noveno nivel del esquema