260 likes | 478 Views
Seguridad Distribuida. Kerberos Vs PKI. Ruben Recabarren Miguel Alcalde. Introducci ón. Criptografía Simétrica y Asimétrica. - Ventajas, Desventajas, Uso. Clave. Clave. Texto. Cifrado. Texto. Encripción. Desencripción. Firmas Digitales.
E N D
Seguridad Distribuida Kerberos Vs PKI Ruben Recabarren Miguel Alcalde
Introducción • Criptografía Simétrica y Asimétrica. - Ventajas, Desventajas, Uso. Clave Clave Texto Cifrado Texto Encripción Desencripción
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.
Version Número serial del Certificado • Certificados Digitales Id. del algoritmo de firma Certificador Periodo de Validez Sujeto certificado Información PK del sujeto. Otra información opcional Firma digital de la autoridad certificadora
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.
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”.
c = cliente s = servidor a = dirección de red v = validez (inicio y fin) t = timestamp Kx = Clave secreta de x Kx,y = Clave de sesion {m}Kx = m encriptado con la clave secreta de x Tx,y = ticket de x para usar y Ax,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 Mensajes de Kerberos V5
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 = match stateOrProvinceName = match localityName = match organizationName = match organizationalUnitName = match commonName = supplied emailAddress = optional # For the 'anything' policy # At this point in time, you must list all acceptable 'object' # types. [ policy_anything ] countryName = optional stateOrProvinceName = optional localityName = optional organizationName = optional organizationalUnitName = optional commonName = supplied emailAddress = optional [ req ] default_bits = 1024 default_keyfile = privkey.pem distinguished_name = req_distinguished_name [ req_distinguished_name ] countryName = Country Name (2 letter code) countryName_default = GB countryName_min = 2 countryName_max = 2 stateOrProvinceName = 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
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