Post on 18-Apr-2015
Seguridad Distribuida
Kerberos Vs PKI
Ruben RecabarrenMiguel Alcalde
Introducción
Criptografía Simétrica y Asimétrica.
- Ventajas, Desventajas, Uso.
Encripción DesencripciónTexto Cifrado Texto
Clave Clave
Firmas Digitales.
– Consiste en utilizar la clave privada para encriptar el documento.
– Todos los que confian en la autenticidad de la clave publica pueden verificar esta firma digital.
– En la práctica se firma un “hash” del texto en vez de firmar el documento completo.
Certificados DigitalesVersion
Número serial del Certificado
Certificador
Periodo de Validez
Id. del algoritmo de firma
Sujeto certificado
Información PK del sujeto.
Firma digital de la autoridad certificadora
Otra información opcional
Otro tipo de credenciales: Tickets y Autenticadores.– Usualmente tienen un tiempo de validez
corto.– Utilizados como transporte de información
encriptada:• Claves de sesión.• Identidad del portador legítimo del ticket.• Identidad del servidor que acepta el ticket.• Timestamp.
Ej: T c,s = s, {c, a, v, K c, s}K s
Public Key Infrastructure (PKI)
RFC 2828: Es un sistema de Autoridades de certificación que realiza algun conjunto de:– Manejo de certificados.– Manejo de almacenamientos historicos.– Manejo de claves.– Manejo de “tokens”.
para una comunidad de usuarios en una aplicación de criptografía asimétrica.
Un PKI consiste de por lo menos:
– Una Autoridad de Certificación (CA) encargada de la emisión de certificados.
– Una Autoridad de Registro (RA) encargada de evaluar las peticiones de emisión de certificados.
– Un servicio de directorios encargado de la distribución de certificados y de listas de revocación.
Modelo de utilización de un PKI
Kerberos
Su proposito es permitir la autenticación de clientes y servidores en ambos sentidos.
El sistema esta conformado por:– Servidor de Autenticación (AS).– Servidor otorgador de tickets (TGS).– Servidores “Kerberizados”.– Clientes “Kerberizados”.
Modelo de utilización de un Sistema Kerberos
Mensajes de Kerberos V5c = clientes = servidora = dirección de redv = validez (inicio y fin)t = timestampKx = Clave secreta de xKx,y = Clave de sesion{m}Kx = m encriptado con
la clave secreta de xTx,y = ticket de x para usar
yAx,y = Autenticador de x a y
Tc,s = s, {c,a,v,Kc,s}Ks
Ac,s = {c,t,key}Kc,s
1.c, tgs
2.{Kc,tgs}Kc,{Tc,tgs}Ktgs
3.{Ac,s}Kc,tgs,{Tc,tgs}Ktgs
4.{Kc,s}Kc,tgs,{Tc,s}Ks
5.{Ac,s}Kc,s,{Tc,s}Ks
6. {t}Kc,s
Creación de un PKI
SSleay / OpenSSL 0.9.5a.– Creación de un CA.
• mkdir ${SSLDIR}/certs mkdir ${SSLDIR}/crl mkdir ${SSLDIR}/newcerts mkdir ${SSLDIR}/privateecho "01" > ${SSLDIR}/serialtouch ${SSLDIR}/index.txt
• Archivo de configuración:
#
# SSLeay example configuration file.
#
RANDFILE = /var/ssl/.rnd
####################################################################
[ ca ]
default_ca = CA_default # The default ca section
####################################################################
[ CA_default ]
dir = /var/ssl # 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/newcerts # default place for new certs.
certificate = $dir/private/CAcert.pem # The CA certificate
serial = $dir/serial # The current serial number
crl = $dir/clr/crl.pem # The current CRL
private_key = $dir/private/CAkey.pem # The private key
RANDFILE = $dir/private/.rand # private random number file
x509_extensions = x509v3_extensions # The extentions to add to the cert
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
# A few difference way of specifying how similar the request should look
# For type CA, the listed attributes must be the same, and the optional
# and supplied fields are just that :-)
policy = policy_match
# For the CA policy[ policy_match ]countryName = matchstateOrProvinceName = matchlocalityName = matchorganizationName = matchorganizationalUnitName = matchcommonName = suppliedemailAddress = optional# For the 'anything' policy# At this point in time, you must list all acceptable 'object'# types.[ policy_anything ]countryName = optionalstateOrProvinceName = optionallocalityName = optionalorganizationName = optionalorganizationalUnitName = optionalcommonName = suppliedemailAddress = optional[ req ]default_bits = 1024default_keyfile = privkey.pemdistinguished_name = req_distinguished_name[ req_distinguished_name ]countryName = Country Name (2 letter code)countryName_default = GBcountryName_min = 2countryName_max = 2stateOrProvinceName = State or Province Name (full name)
stateOrProvinceName_default = Some-State
localityName = Locality Name (eg, city)
organizationName = Organization Name (eg, company; recommended)
organizationName_max = 64
organizationalUnitName = Organizational Unit Name (eg, section)
organizationalUnitName_max = 64
commonName = server name (eg. ssl.domain.tld; required!!!)
commonName_max = 64
emailAddress = Email Address
emailAddress_max = 40
[ req_attributes ]
challengePassword = A challenge password
challengePassword_min = 4
challengePassword_max = 20
[ x509v3_extensions ]
# under ASN.1, the 0 bit would be encoded as 80
# nsCertType = 0x40
Creación de un PKI (cont.)
Creación de un CA (cont.)– ssleay req -new -x509 -keyout $
{SSLDIR}/private/CAkey.pem -out ${SSLDIR}/private/CAcert.pem -config archivo-de-configuracion.cnf
CAkey.pem es la clave privada de la autoridad certificadora.
CAcert.pem es el certificado raiz.
Creación de un PKI (3)
Creación de un nuevo certificado:– Creación de un CSR:
• ssleay req -new -keyout newkey.pem -out newreq.pem -days 360 -config ssleay.cnf
– Certificación de un CSR:• cat newreq.pem newkey.pem > new.pem
• ssleay ca -policy policy_anything -out newcert.pem -config ssleay.cnf -infiles new.pem
Instalación de Kerberos(cliente) Windows 2000 y Mac OS X con menus
y ventanas. Para UNIX: Descomprimir y compilar
los archivos en el directorio /usr/krb/ Añadir al /etc/krb5.conf los servidores
de autenticación
Instalación de Kerberos (servidor) Windows 2000 y Mac OS X con menus y
ventanas. Para UNIX: descomprimir y compilar los
archivos en el directorio /usr/krb Editar el inetd.conf para cambiar los
demonios por los de kerberos. Registrar los servicios en el SA.
Uso del cliente Kerberos
/usr/krb/bin/kinit => Pide un ticket /usr/krb/bin/klist => Muestra los
tickets validos
/usr/krb/bin/kdestroy => Destruye los tickets
validos (log-out)
Ventajas de Kerberos
Basado en standard IETF Permite Transitive Trust Provee autenticación mutua Bajo costo de implantación Reduce tiempos de Log-in
Desventajas de Kerberos
Complejo de administrar Poco escalable Permite Transitive Trust Requiere “Kerberizar” aplicaciones El KDC es un punto crítico Implementación de Windows 2000 Vulnerable por los usuarios
Ventajas de PKI
Ofrece no-repudio Mantenimiento mas sencillo No requiere alta disponibilidad Reduce tiempos de Log-in Permite encriptar y firmar información
Desventajas de PKI
Los estándares están en desarrollo Implementación costosa La seguridad de la clave raíz es
esencial Es difícil relacionar un certificado con
un usuario
Preguntas y
Comentarios
Bibliografía
Schneier, Bruce. Applied Criptography. John Wiley & Sons, 1996.
Hynes, Matt. An Analysis of Distributed Network Security Services: Kerberos and Public Key Infrastructure (PKI). Guardent Inc.
Oppliger, Rolf. Kerberos vs. PKI slides. e-SECURITY Technologies. 2000