59
Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018

Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018

Page 2: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

Agenda

Mantención de zonas firmadas • Generación de llaves • Firma de zona • Rotación de llaves • Cambios a la zona • Regeneración de firmas • Actualización de cadena de confianza

2LACNIC30

Page 3: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

Agenda

¿Qué son los HSM? • ¿Por qué usar un HSM? ¿Cómo firmar? • Usando OpenDNSSEC y HSM • Usando BIND y HSM

3LACNIC30

Page 4: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

Agenda

Monitoreo de zonas firmadas •  Integridad • Presencia de llaves • Expiración de firmas • Validación de firmas • Cadena de confianza completa • Validación desde la raíz

4LACNIC30

Page 5: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

Mantención de zonas firmadas

Generación de llaves • Al decidir firmar una zona, necesitas generar

llaves para KSK y ZSK • Con los parámetros adecuado: algoritmo, largo

de la llave • Para todas las zonas a firmar • Y llaves extras para rotación futura

5LACNIC30

Page 6: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

Mantención de zonas firmadas

Firma de la zona • Tomar el contenido de la zona original • Ordenar en orden lexicográfico • Canonizar registros • Generar secuencias NSEC/NSEC3 • Agregar registros DNSKEY • Generar registros RRSIG

6LACNIC30

Page 7: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

Mantención de zonas firmadas

Rotación de llaves •  Introducir nuevas llaves (KSK o ZSK) en el

momento correcto • Mantención de estado de las llaves • Remover llaves ya usadas al final de la

rotación • Usar las llaves correctas para firmar

7LACNIC30

Page 8: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

Mantención de zonas firmadas

Cambios a la zona • Editar o regenerar zona • Refirmar Regeneración de firmas • Si la zona no cambia, los registros RRSIG

tienen que refrescarse. • Refresco en el momento adecuado • No refrescar todos los registros a la vez

8LACNIC30

Page 9: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

Mantención de zonas firmadas

Actualización de cadena de confianza • Enviar el registro DS a la zona padre en el

momento adecuado • Verificar que el registro DS calza con el

DNSKEY • Durante la rotación de llaves, cambiar el

registro DS en el padre

9LACNIC30

Page 10: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

HSM

Hardware Security Modules • Almacenamiento seguro de llaves • Previene la extracción de las llaves privadas • En algunos casos, aceleración de operaciones

criptográficas •  Interface de acceso bien definida (PKCS#11)

10LACNIC30

Page 11: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

HSM

Protección vía software y hardware • Si el dispositivo es comprometido, las llaves se

borran Generalmente incluyen un generador de números aleatorios NLnetLabs implementó un HSM en software, llamado SoftHSM. • Muy útil para probar el uso de un HSM antes

de comprar 11LACNIC30

Page 12: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

¿Por qué usar un HSM?

Manejo de riesgos • La llave puede ser comprometida

•  Intrusos en el servidor •  Personal comprometido o poco feliz •  Factorización de la llave

• Reducción de riesgos •  Proteger el servidor •  Proteger las llaves •  HSM siguen estándares de seguridad bien

definidos, ejemplo FIPS 140-2

12LACNIC30

Page 13: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

Firmado usando OpenDNSSEC

OpenDNSSEC se encarga de • Mantención de zonas firmadas • Mantención de las llaves asociadas

Creado para proveer • Buen manejo de llaves • Manejo de parámetros vía políticas • Soporte para HSM

13LACNIC30

Page 14: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

Firmado usando OpenDNSSEC

OpenDNSSEC opera como caja negra • Le alimentas zonas sin firmar

•  Vía archivo o transferencia de zona • Produce zonas firmadas

•  Vía archivo o transferencia de zona • Pensado para operar entre el origen de la zona

y un primario o servidor de distribución

14LACNIC30

Page 15: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

Architectura de OpenDNSSEC

HSM: Almacén de llaves Enforcer: administra zonas, llaves, eventos. Rotación de llaves Signer: recibe zonas sin firmar, firma zonas, entrega zonas firmadas

15LACNIC30

Page 16: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

OpenDNSSEC: configuración

• Archivos de configuración en XML •  conf.xml •  kasp.xml •  addns.xml

• Archivos de zona • Archivos temporales •  kasp.db: base SQLite con el estado de las

llaves. Crítico, ¡no olvide respaldar!

16LACNIC30

Page 17: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

OpenDNSSEC: tutorial

•  Instrucciones basadas en Raspberry PI with Raspbian y NitroKey HSM

• OpenSC provee acceso al HSM

• HSM proveen diferentes ”slots” para almacenar llaves.

17LACNIC30

sudoapt-getinstallopensc

pkcs11-tool--show-infoCryptokiversion2.20ManufacturerOpenSCProjectLibraryOpenSCsmartcardframework(ver0.16)Usingslot0withapresenttoken(0x0)

Page 18: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

OpenDNSSEC: tutorial

• Un HSM requiere ser inicializado. Generalmente tienen una clave por omisión

18LACNIC30

sc-hsm-tool--initialize--so-pin3537363231383830--pin648219--label"NitroKeyHSM"

Page 19: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

OpenDNSSEC: tutorial

• Podemos ver el slot por omisión, #0

19LACNIC30

pkcs11-tool-LAvailableslots:Slot0(0x0):NitrokeyNitrokeyHSM(010000000000000000000000)0000tokenlabel:NitroKeyHSM(UserPIN)tokenmanufacturer:www.CardContact.detokenmodel:PKCS#15emulatedtokenflags:rng,loginrequired,PINinitialized,tokeninitializedhardwareversion:24.13firmwareversion:2.6serialnum:DENK0101304

Page 20: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

OpenDNSSEC: tutorial

•  Instalamos OpenDNSSEC

20LACNIC30

sudoapt-getinstallopendnsseclibhsm-bin

Page 21: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

OpenDNSSEC: tutorial

• Configurar HSM como repositorio de llaves. Editamos /etc/opendnssec/conf.xml

21LACNIC30

<Repositoryname="nitrokey"><Module>/usr/lib/arm-linux-gnueabihf/opensc-pkcs11.so</Module><TokenLabel>NitroKeyHSM(UserPIN)</TokenLabel><PIN>648219</PIN><Capacity>20</Capacity><RequireBackup/><SkipPublicKey/></Repository>

ProvistoporOpenSC

Definidoenlainicialización

CapacidaddelHSM/Slot

Page 22: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

OpenDNSSEC: tutorial

• Verificamos acceso usando OpenDNSSEC

22LACNIC30

sudo-uopendnssecods-hsmutilinfoRepository:nitrokey

Module:/usr/lib/arm-linux-gnueabihf/opensc-pkcs11.so

Slot:0TokenLabel:NitroKeyHSM(UserPIN)Manufacturer:www.CardContact.deModel:PKCS#15emulatedSerial:DENK0101304

Page 23: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

OpenDNSSEC: tutorial

• Generamos una llave usando OpenDNSSEC

• Verificamos que la llave existe

23LACNIC30

sudo-uopendnssecods-hsmutilgeneratenitrokeyrsa1024Generating1024bitRSAkeyinrepository:nitrokeyKeygenerationsuccessful:0bd3b444ce9aae5eeef541c170bf41f5

sudo-uopendnssecods-hsmutillistnitrokeyListingkeysinrepository:nitrokey1keyfound.RepositoryIDType----------------nitrokey0bd3b444ce9aae5eeef541c170bf41f5RSA/1024

Page 24: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

OpenDNSSEC: tutorial

• Borramos la llave de prueba

• Estamos listos para configurar OpenDNSSEC para firmado

24LACNIC30

sudo-uopendnssecods-hsmutilremove0bd3b444ce9aae5eeef541c170bf41f5Keyremovesuccessful.

Page 25: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

OpenDNSSEC: tutorial

• Borramos la llave de prueba

• Estamos listos para configurar OpenDNSSEC para firmado

25LACNIC30

sudo-uopendnssecods-hsmutilremove0bd3b444ce9aae5eeef541c170bf41f5Keyremovesuccessful.

Page 26: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

OpenDNSSEC: inicializar DB

• OpenDNSSEC almacena politicas y estado de las zonas en SQLite.

26LACNIC30

sudoods-enforcer-db-setup*WARNING*Thiswillerasealldatainthedatabase;areyousure?[y/N]yDatabasesetupsuccessfully.

Page 27: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

OpenDNSSEC: política

• Definimos una política de firmado •  Parametros para las firmas, en que HSM se

almacenan •  NSEC o NSEC3 •  Parametros para las llaves: algoritmos y tama~no

para KSK y ZSK, tiempos de introducción •  Parametros del registro SOA para la zona a firmar •  Parametros de la zona padre

27LACNIC30

Page 28: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

OpenDNSSEC: verificación

• Una vez editado kasp.xml, verificar

28LACNIC30

sudo-uopendnssecods-kaspcheckINFO:TheXMLin/etc/opendnssec/conf.xmlisvalidINFO:TheXMLin/etc/opendnssec/kasp.xmlisvalidWARNING:Inpolicydefault,YusedindurationfieldforKeys/KSKLifetime(P1Y)in/etc/opendnssec/kasp.xml-thiswillbeinterpretedas365daysWARNING:Inpolicylab,YusedindurationfieldforKeys/KSKLifetime(P1Y)in/etc/opendnssec/kasp.xml-thiswillbeinterpretedas365daysINFO:TheXMLin/etc/opendnssec/zonelist.xmlisvalid

Page 29: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

OpenDNSSEC: ejecutar componentes

• Con la base de datos inicializada, y políticas definidas, podemos iniciar los servicios

29LACNIC30

sudoods-controlstartStartingenforcer...OpenDNSSECkeyandsigningpolicyenforcerversion2.0.4Enginerunning.ctrlcompletedin0seconds.Startingsignerengine...OpenDNSSECsignerengineversion2.0.4Enginerunning.

Page 30: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

OpenDNSSEC: zona mínima

• Preparamos una versión minima de una zona en el archivo /var/lib/opendnssec/unsigned/dnsseclab.nz.zone

30LACNIC30

dnsseclab.nz.3600INSOApri.dnsseclab.nz.hostmaster.dnsseclab.nz.201809120021600720025920003600dnsseclab.nz.1800INNSpuck.nether.net.dnsseclab.nz.3600INNSpri.dnsseclab.nz.dnsseclab.nz.43200INMX1aspmx.l.google.com.dnsseclab.nz.43200INMX5alt1.aspmx.l.google.com.dnsseclab.nz.43200INMX5alt2.aspmx.l.google.com.pri.dnsseclab.nz.43200INA54.218.206.177z-token.dnsseclab.nz.43200INTXT"MARK"

Page 31: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

OpenDNSSEC: agregar zona

• Le indicamos a ODS que queremos mantener una zona

31LACNIC30

sudoods-enforcerzoneadd--zonednsseclab.nz--policylab--input/var/lib/opendnssec/unsigned/dnsseclab.nz.zone--in-typefile--output/var/lib/opendnssec/signed/dnsseclab.nz.zoneinputissetto/var/lib/opendnssec/unsigned/dnsseclab.nz.zone.outputissetto/var/lib/opendnssec/signed/dnsseclab.nz.zone.Zonednsseclab.nzaddedsuccessfullyzoneaddcompletedin81seconds.

Page 32: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

OpenDNSSEC: tras bambalinas

• La zona es mantenida ahora

32LACNIC30

sudoods-enforcerzonelistDatabasesetto:/var/lib/opendnssec/kasp.dbZones:Zone:Policy:Nextchange:SignerConfiguration:dnsseclab.nzlabWedSep1216:01:402018/var/lib/opendnssec/signconf/dnsseclab.nz.xmlzonelistcompletedin0seconds.

Page 33: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

OpenDNSSEC: tras bambalinas

• ods-enforcer creo las llaves necesarias para la zona

33LACNIC30

ods-hsmutillistsofthsmListingkeysinrepository:softhsm6keysfound.RepositoryIDType----------------softhsm2575ab4b87f57c1d1aa8c59290578408RSA/2048softhsm6aad1f30bdc83650ada1db2ec2561910RSA/1024softhsm34a5e2e9a4e92092b4058939be3f1523RSA/2048softhsmcfbe3877fdf0e8dd338f7eaa956793b9RSA/1024softhsmd78c7f4b0a1986d13876ec4d9ddeb217RSA/1024softhsma470392f7d794f968e230eb473001c14RSA/1024

Page 34: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

OpenDNSSEC: tras bambalinas

• Y el archivo /var/log/syslog muestra

34LACNIC30

Sep1712:09:22raspberrypiods-enforcerd:[zone_add_cmd]zonednsseclab.nzadded[policy:lab]Sep1712:09:22raspberrypiods-enforcerd:[hsm_key_factory_generate]3keysneededfor1zonescovering86400seconds,generating3keysforpolicylabSep1712:09:22raspberrypiods-enforcerd:3newZSK(s)(1024bits)needtobecreated.Sep1712:09:24raspberrypiods-enforcerd:[hsm_key_factory_generate]1keysneededfor1zonescovering86400seconds,generating1keysforpolicylabSep1712:09:24raspberrypiods-enforcerd:1newKSK(s)(2048bits)needtobecreated.Sep1712:09:29raspberrypiods-signerd:[STATS]dnsseclab.nz2018091201RR[count=8time=0(sec)]NSEC[count=3time=0(sec)]RRSIG[new=8reused=0time=1(sec)avg=8(sig/sec)]TOTAL[time=1(sec)]

Page 35: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

OpenDNSSEC: Otras tareas

• Rotación de llaves: enforcer se encarga • Refirmado de la zona: signer se encarga • Actualización de firmas: signer se encarga • Backup de llaves: depende del HSM • Publicación de la zona firmada: depende de la

arquitectura • Actualización de la cadena de confianza

35LACNIC30

Page 36: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

OpenDNSSEC: Zona firmada

•  /etc/opendnssec/conf.xml

• Una vez que la zona se firma, este comando se ejecuta

• Es el lugar perfecto para verificar que la zona firmada este correcta antes de publicar

36LACNIC30

<!--the<NotifyCommmand>willexpandthefollowingvariables:%zonethenameofthezonethatwassigned%zonefilethefilenameofthesignedzone--><NotifyCommand>/usr/local/bin/my_nameserver_reload_command%zone%zonefile</NotifyCommand>

Page 37: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

OpenDNSSEC: Registros DS

•  /etc/opendnssec/conf.xml

• Cuando se generan nuevos registros DS, se ejecuta el comando

•  Pueden actualizar el padre directamente •  O recibir una notificación por correo

•  En .NZ, el script manda un correo firmado con PGP para los registros DS de .nz que se envían a IANA

•  Para otras zonas, los registros se inyectan en la correspondiente zona padre.

37LACNIC30

<DelegationSignerSubmitCommand>/usr/sbin/simple-dnskey-mailer.sh</DelegationSignerSubmitCommand>

Page 38: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

Firmando con BIND

LACNIC30 38

Page 39: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

BIND

• Firmar con BIND y un HSM es desafiante • Si van a usar un HSM, necesitaran

•  Parchar y recompilar OpenSSL •  Recompilar BIND para usar OpenSSL •  Mantener las versiones alineadas a mano •  Una buena dosis de fe y oraciones

39LACNIC30

Después de horas de intentar, recompilar, y leer, ni SoftHSM ni Nitrokey funcionó.

Page 40: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

BIND

• Puede mantener una zona firmada •  Zona estática •  Zona dinámica usando dynamic updates

• Partiendo con BIND 9.11 •  Administración de llaves usando dnssec-keymgr

• No hace bien •  Generación de llaves la primera vez

40LACNIC30

Page 41: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

BIND: Configuración base

• Una configuración mínima para mantener zonas firmadas en named.conf

41LACNIC30

options{directory"/var/cache/bind";dnssec-validationno;//Norecursionrecursionno;dnssec-enableyes;auth-nxdomainno;#conformtoRFC1035listen-on-v6{any;};};

Page 42: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

BIND: Generar llaves

42LACNIC30

sudomkdir–p/var/cache/bind/keys/dnsseclab.nzsudochown–Rbind:bind/var/cache/bind/keys/cd/var/cache/bind/keys#GenerateaKSKsudo-ubinddnssec-keygen-aRSASHA256-b2048-nZONE-TDNSKEY-fKSKdnsseclab.nz.#GenerateaZSKsudo-ubinddnssec-keygen-aRSASHA256-b1024-nZONE-TDNSKEYdnsseclab.nz.

Page 43: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

BIND: Firmar zona

• Creamos una zona de juguete para firmar

• Configuramos BIND para firmar

43LACNIC30

sudo–ubindmkdir/var/cache/bind/zones#Createtestzonefileasbeforesudocp/var/lib/opendnsssec/unsigned/dnsseclab.nz.zone/var/cache/bind/zones

zonednsseclab.nz{typemaster;file"zones/dnsseclab.nz.zone";auto-dnssecmaintain;update-policylocal;key-directory"keys/dnsseclab.nz";};

Page 44: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

BIND: Firmar zona

• BIND no es muy conversador

• Pero si consultamos el servidor

44LACNIC30

Sep2012:56:57raspberrypinamed[25492]:zonednsseclab.nz/IN:reconfiguringzonekeysSep2012:56:57raspberrypinamed[25492]:zonednsseclab.nz/IN:nextkeyevent:20-Sep-201813:56:57.693

digSOAdnsseclab.nz@localhost+dnssecdnsseclab.nz. 3600 IN SOA pri.dnsseclab.nz.hostmaster.dnsseclab.nz.201809120221600720025920003600dnsseclab.nz. 3600 IN RRSIG SOA823600201810200056572018091923565764053dnsseclab.nz.JMw359LPbqtV74cvF2IbBFL4qnYZuBgnWt1dzXH0eRluIonbz29hFBAEr2YEqdqgCXVkyIu4qgQ1nk/Rwrgjuc80rrt6MCaCBCWlnlNCO9gnTWgFX84wD5POKmYWq0MqMBmjg/LzbGD70tezJlPCuT04RrkrskaJJu61BUZaQTY=

Page 45: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

BIND: Mantener zona firmada

• BIND firmara la zona mientras encuentre llaves asociadas.

• Cambios a la zona necesitan ser vía dynamic updates

45LACNIC30

Page 46: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

BIND: Rotación de llaves

• Veamos los tiempos de las llaves que tenemos

• Creamos una nueva ZSK

46LACNIC30

cd/var/cache/bind/keys/dnsseclab.nzsudo-ubinddnssec-settime-pallKdnsseclab.nz.+008+64053.keyCreated:ThuSep2012:43:582018Publish:ThuSep2012:43:582018Activate:ThuSep2012:43:582018Revoke:UNSETInactive:UNSETDelete:UNSET

sudo-ubinddnssec-keygen-aRSASHA256-b1024-nZONE-TDNSKEY-Anow+1hdnsseclab.nz.Generatingkeypair.............................................................++++++....++++++Kdnsseclab.nz.+008+56373

Page 47: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

BIND: Rotación de llaves

• Creamos una nueva ZSK

• Le decimos a BIND sobre la nueva llave

• Y vemos en el log

47LACNIC30

sudo-ubinddnssec-keygen-aRSASHA256-b1024-nZONE-TDNSKEY-Anow+1hdnsseclab.nz.Generatingkeypair.............................................................++++++....++++++Kdnsseclab.nz.+008+56373

sudorndcloadkeysdnsseclab.nz

Sep2013:42:14raspberrypinamed[25492]:zonednsseclab.nz/IN:reconfiguringzonekeysSep2013:42:14raspberrypinamed[25492]:zonednsseclab.nz/IN:nextkeyevent:20-Sep-201814:38:32.850

Page 48: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

BIND: Cadena de confianza

• Para completar la cadena de confianza, necesitamos los registros DS

48LACNIC30

sudo-ubinddnssec-dsfromkey-K.-1Kdnsseclab.nz.+008+60820.keydnsseclab.nz.INDS60820818EAC710E126747C3CA32257B6A1632CC96FA9B07

sudo-ubinddnssec-dsfromkey-K.-2Kdnsseclab.nz.+008+60820.keydnsseclab.nz.INDS6082082683CF1B1C37D049BDF8BC882A3891D5BCC06E12B5AE0BC2068EF90E44A553D02

Page 49: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

BIND: Otras tareas

• Publicar la zona firmada? •  BIND provee transferencia de zona y soporta

NOTIFY cuando la zona ha sido firmada • Ver la zona firmada?

•  En el lugar de la zona original! •  Se puede usar inline-signing para preservar la

zona original • Mi zona es regenerada cada vez, como la

firmo? •  No hemos probado esa opción :(

• Se pueden automatizar los rollovers?

49LACNIC30

Page 50: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

BIND: dnssec-keymgr

• En BIND 9.11 se introduce dnssec-keymgr •  Diseñada para ejecutar vía cron •  Utiliza un archivo de políticas •  Crea y actualiza archivos de llaves dependiendo de

ciertos eventos •  Automatiza la creación y rotación de llaves

•  Escrito en Python como un wrapper para dnssec-keygen y dnssec-settime

• BIND 9.11.0 Release Notes

50LACNIC30

Page 51: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

BIND: dnssec-keymgr

• Usando otro laboratorio con BIND 9.11

51LACNIC30

cd/var/cache/bind/keys#GenerateaKSKsudo-ubinddnssec-keygen-aRSASHA256-b4096-nZONE-TDNSKEY-fKSK-Anow+1hdnsseclab.nz.#GenerateaZSKsudo-ubinddnssec-keygen-aRSASHA256-b2048-nZONE-TDNSKEY-Anow+1hdnsseclab.nz.

Page 52: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

BIND: DNSSEC policy

52LACNIC30

policyglobal{algorithmrsasha256;key-sizeksk4096;key-sizezsk2048;roll-periodksk1w;roll-periodzsk1d;pre-publishksk1d;pre-publishzsk1h;post-publishksk1d;post-publishzsk1h;standbyksk1;standbyzsk1;keyttl5mi;coverage2w;

};policydefault{policyglobal;};

Page 53: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

BIND: aplicar política

•  Instruimos a dnssec-keymgr que aplique política

• Fijara los parámetros de tiempo y creara las llaves que sean necesarias.

•  Con esto BIND hará los rollovers automáticamente

53LACNIC30

sudo-ubinddnssec-keymgr-c/etc/bind/dnssec-policy.conf-K/var/cache/bind/keys/dnsseclab.nz/#/usr/sbin/dnssec-settime-K/var/cache/bind/keys/dnsseclab.nz/-P20180920053833-A20180920053833-I20180921063826-D20180921073826Kdnsseclab.nz.+008+10308#/usr/sbin/dnssec-keygen-q-K/var/cache/bind/keys/dnsseclab.nz/-SKdnsseclab.nz.+008+10308-L300-i3600

Page 54: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

Otras opciones

• Knot DNS es un servidor de DNS autoritativo creado por CZ.NIC

• Soporta DNSSEC • Parte de DNSSEC appliances de Secure64 • Elegido por RIPE para mantener sus zonas

•  https://labs.ripe.net/Members/anandb/dnssec-signer-migration

54LACNIC30

Page 55: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

Monitoreo de zonas firmadas

•  Integridad •  Ha habido casos donde una zona firmada se

distribuye trunca. •  Como una zona firmada está ordenada

lexicográficamente, algunos ccTLD usando una marca

•  Antes de distribuir la zona, se verifica la existencia de la marca

55LACNIC30

Page 56: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

Monitoreo de zonas firmadas

• Herramientas como ldns-verify-zone, named-checkzone y validns verifican la salud de las llaves

•  Presencia de llaves •  Correctitud de las llaves •  Firmas •  Presencia de las llaves correctas •  Expiración de firmas •  Validación de firmas

56LACNIC30

Page 57: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

Monitoreo de zonas firmadas

• Cadena de confianza completa •  En InternetNZ operamos dos validadores, uno

basado en BIND y otro con Unbound •  Usamos registros DS de .nz como trust anchor •  Verificamos las sub-zonas

• Validación desde la raíz •  Usar un validador abierto como el de DNS-OARC •  https://www.dns-oarc.net/oarc/services/odvr •  Usar un proveedor externo, como Thousand Eyes

57LACNIC30

Page 58: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

Preguntas

LACNIC30 58

Page 59: Tutorial de DNSSEC: Firmado de zonas · Tutorial de DNSSEC: Firmado de zonas Sebastian Castro LACNIC 30 Rosario, Argentina, Septiembre 2018 . ... aceleración de operaciones criptográficas

[email protected]

¡GRACIAS!