Seguridad en el enrutamiento utilizando tecnología Blockchain
Autor Principal: | |
---|---|
Otros autores o Colaboradores: | , , |
Formato: | Tesis |
Lengua: | español |
Datos de publicación: |
[2023]
|
Temas: | |
Acceso en línea: | http://catalogo.info.unlp.edu.ar/meran/getDocument.pl?id=2608 Consultar en el Cátalogo |
Descripción Física: | 1 archivo (5,2 MB) : il. col. |
Tabla de Contenidos:
- 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