Seguridad en el enrutamiento utilizando tecnología Blockchain - Gómez, Marcelo Alberto; Bazán, Patricia Alejandra; Río, Nicolás del; Morandi, Miguel A. (2023)
1 Introducción -- 1.1 Estructura -- 1.2 Objetivos -- 1.3 Motivación -- 2 Estado del Arte -- 2.1 Gobernanza y gestión de información de ruteo global -- 2.1.1 Historia de los RIRs -- 2.1.2 Historia de los IRR -- 2.1.3 Mecanismos actuales de seguridad en el ruteo -- 2.2 Uso de la tecnología blockchain para validar la información de ruteo -- 2.2.1 Antecedentes -- II MARCO TEÓRICO -- 3 Recursos de internet -- 3.1 Sistemas Autónomos -- 3.2 Números IPv4 e IPv6 -- 3.3 Administración global de los recursos -- 4 Conceptos de BGP -- 4.1 Introducción a BGP -- 4.2 Características de BGP -- 4.3 Principales tipos de mensaje BGP -- 4.4 Principales atributos de BGP -- 4.5 Criterios de selección de rutas -- 5 Seguridad de ruteo en Internet -- 5.1 Secuestro de rutas - Route Hijacking -- 5.1.1 Antecedentes de secuestros de rutas -- 5.1.1.1 2008 - Denegación de servicio, Caso Pakistan - Youtube -- 5.1.1.2 2014 - Secuestro de BGP para obtener beneficios de criptomonedas -- 5.2 Fuga de ruta - Route Leak -- 5.2.1 Clasificación de Fugas de Ruta -- 5.2.2 Propuesta para solucionar los problemas de fugas de ruta: RFC 9234 -- 5.2.2.1 Introducción -- 5.2.2.2 Relaciones entre peers -- 5.2.2.3 Corrección de roles -- 5.2.2.4 Atributo BGP solo para el cliente (OTC) -- 5.3 RPKI -- 5.3.1 Introducción a RPKI -- 5.3.2 Validación del origen de la ruta -- 5.4 MANRS -- 5.5 BGPSEC -- 5.6 ASPA - Autonomous System Path Authorization -- 5.6.1 Procedimiento de verificación cliente-proveedor -- 5.6.2 Procedimiento de verificación de AS_PATH -- 6 Conceptos de Sistemas Distribuidos -- 6.1 Definición de Sistemas distribuidos -- 6.2 Problema de los generales bizantinos -- 6.3 Teorema CAP -- 7 Conceptos de Criptografía -- 7.1 Introducción -- 7.2 Servicios de la criptografía -- 7.3 Primitivas criptográficas -- 7.3.1 Primitivas criptográficas sin clave -- 7.3.1.1 Secuencias aleatorias -- 7.3.1.2 Funciones hash -- 7.3.2 Criptografía simétrica -- 7.3.3 Criptografía de clave asimétrica -- 7.4 Firma digital -- 7.5 Árbol de Merkle -- 7.6 Árbol Patricia Trie -- 8 Conceptos de Blockchain -- 8.1 Definición de blockchain -- 8.2 Componentes de una Blockchain -- 8.3 Arquitectura de una blockchain -- 8.4 Clasificación de una blockchain -- 8.4.1 Blockchain pública -- 8.4.2 Blockchain privadas o permisionadas -- 8.4.3 Blockchain público-permisionadas -- 8.5 Descentralización -- 8.6 Mecanismos de consenso -- 8.6.1 PBFT -- 8.6.2 RAFT -- 8.6.3 Proof of Work (PoW) ó Prueba de trabajo -- 8.6.4 Proof of Stake (PoS) ó Prueba de Participación -- 8.6.5 Committee-based PoS -- 8.6.6 DPoS - Delegated PoS -- 8.6.7 Proof of Authority ó Prueba de Autoridad -- 8.6.8 Tower Byzantine Fault Tolerance - Tower BFT -- 8.7 Escalabilidad de una blockchain -- 9 Plataformas blockchain consideradas -- 9.1 Bitcoin -- 9.1.1 Transacciones en la red Bitcoin -- 9.1.2 Red Bitcoin -- 9.1.3 RSK: Contratos inteligentes sobre la red Bitcoin -- 9.2 Ethereum -- 9.2.1 ¿Qué es Ethereum? -- 9.2.2 Características de la red Ethereum -- 9.2.3 Historia de la red Ethereum -- 9.2.4 Ecosistema de la red Ethereum -- 9.2.4.1 Claves y direcciones -- 9.2.4.2 Cuentas (Addresses) -- 9.2.4.3 Abstracción de cuentas ERC-4337 -- 9.2.4.4 Contratos inteligentes -- 9.2.4.5 Éter criptomoneda/tokens -- 9.2.4.6 Transacciones y mensajes -- 9.2.4.7 Tarifas y gas -- 9.2.4.8 EVM -- 9.3 Escalabilidad de la Blockchain Ethereum -- 9.3.1 Soluciones de escalado on-chain -- 9.3.2 Soluciones de escalado off-chain -- 9.3.2.1 Sidechain o cadena lateral -- 9.3.2.2 Soluciones de escalado de capa 2 -- 9.4 Arbitrum -- III DESARROLLO DEL TRABAJO -- 10 Desarrollo de la solución propuesta -- 10.1 Introducción -- 10.2 Arquitectura de la solución propuesta -- 10.2.1 Aportes realizados al contrato inteligente -- 10.2.1.1 Soporte IPv6 -- 10.2.1.2 Utilización de funciones para verificación de firmas realizadas offchain -- 10.2.1.3 Ataques de repetición de firmas (Signature replay attacks) -- 10.2.1.4 Heartbeat function -- 10.2.1.5 Migración a Solidity v0.8.18 -- 10.2.1.6 Verificación del AS_PATH -- 10.3 Despliegue del contrato inteligente -- 10.4 Asignación y delegación de recursos de Internet mediante blockchain -- 10.4.1 Secuencia de pasos para dar de alta un SA -- 10.4.2 Secuencia de pasos para asignar el prefijo IPv6 al SA -- 10.4.3 Los SAs indican mediante transacciones cuales son sus SAs vecinos -- 10.4.4 Conclusiones del trabajo experimental con Remix -- 10.5 Despliegue del contrato inteligente con Hardhat -- 10.6 Prueba del contrato inteligente -- 10.7 Reporte de gas utilizado -- 11 Validación de la solución -- 11.1 Introducción -- 11.2 Entorno de software utilizado para la realización de pruebas -- 11.3 Emulación de ataque de Route Hijacking existoso -- 11.4 Emulación de ataque de Route Hijacking evitado mediante el uso de tecnología -- blockchain -- 12 Conclusiones -- 13 Futuras líneas de investigación -- 13.1 Información adicional on-chain -- 13.2 Soporte dual stack IPv6/IPv4 -- 13.3 Verificación del AS-PATH mediante el método ASPA -- 13.4 Pruebas de la solución en redes público-permisionadas -- 14 Anexos -- 14.1 Contrato inteligente IANA.sol -- 14.2 Archivo de configuración de Hardhat -- 14.3 Scripts para el deploy del contrato inteligente -- 14.4 Scripts para testing del contrato inteligente -- 14.5 Script Python para validación de paquetes UPDATE de BGP -- 14.6 Servidores WEB en NodeJS en SA64503 -- 14.7 Servidores WEB en NodeJS en sistema autónomo atacante SA64504 -- 14.8 Configuración del R1 -- 14.9 Configuración del cliente docker C1 -- 14.10Configuración del router R1-2 -- 14.11Configuración del router R2 -- 14.12Configuración del router R3 -- 14.13Configuración del router R3-2 -- 14.14Configuración del router R4 -- 14.15Configuración del router R4-2
Tesis (Maestría en Redes de Datos) - Universidad Nacional de La Plata. Facultad de Informática, 2023.
Keywords: BLOCKCHAIN; SEGURIDAD INFORMÁTICA