|
1 | 1 | --- |
2 | 2 | title: Example |
3 | | -layout: null |
| 3 | +layout: null |
4 | 4 | tab: true |
5 | 5 | order: 1 |
6 | | -tags: example-tag |
| 6 | +tags: architecture diagrams examples |
7 | 7 | --- |
8 | 8 |
|
9 | | -## Example |
| 9 | +# Architecture & Examples |
10 | 10 |
|
11 | | -Put whatever you like here: news, screenshots, features, supporters, or remove this file and don't use tabs at all. |
| 11 | +Este archivo contiene **todos los ejemplos oficiales**, incluyendo los **4 niveles del RHC**, fragmentos HTTP, diagramas y flujos. |
| 12 | + |
| 13 | +--- |
| 14 | + |
| 15 | +# 🔷 Nivel 1 — *Dispersión Aleatoria* (Dispersión Aleatoria) |
| 16 | +El cliente utiliza una tabla con encabezados válidos definida desde el inicio y un solo token CSRF generado por el servidor. |
| 17 | + |
| 18 | +### **Flujo** |
| 19 | +1. El servidor publica una tabla fija: `H1, H2, H3`. |
| 20 | +2. El cliente selecciona un header al azar. |
| 21 | +3. El token CSRF se inserta en ese header. |
| 22 | +4. El servidor valida el header y el token. |
| 23 | + |
| 24 | +### **Ejemplo HTTP** |
| 25 | +```http |
| 26 | +POST /v1/transfer |
| 27 | +X-RHC-Header-2: 6F8dP2sQ9RmC1aZ7Xh4K |
| 28 | +Content-Type: application/json |
| 29 | +``` |
| 30 | + |
| 31 | +--- |
| 32 | + |
| 33 | +# 🔷 Nivel 2 — *Dual Entrop* (Dual Entrop) |
| 34 | +El cliente utiliza una tabla con encabezados válidos y tres tokens CSRF, donde en cada ciclo se elige: |
| 35 | + |
| 36 | + - un header al azar |
| 37 | + - un token CSRF al azar |
| 38 | + |
| 39 | +### **Flujo** |
| 40 | +1. El servidor publica una tabla fija: `H1, H2, H3`. |
| 41 | +2. El cliente selecciona un header al azar. |
| 42 | +3. El cliente selecciona uno de los 3 tokens CSRF al azar. |
| 43 | +4. El token se inserta en ese header. |
| 44 | +5. El servidor valida el header y el token. |
| 45 | + |
| 46 | +### **Ejemplo HTTP** |
| 47 | +```http |
| 48 | +POST /v1/payments |
| 49 | +X-RHC-Header-3: Zp7Qm4Ay81FsK9TdHr6W |
| 50 | +Content-Type: application/json |
| 51 | +``` |
| 52 | + |
| 53 | +--- |
| 54 | + |
| 55 | +# 🔷 Nivel 3 — *Entropía Variable* (Entropía Variable) |
| 56 | +El cliente utiliza encabezados válidos como en los niveles anteriores, pero los tokens CSRF tienen longitudes y codificaciones variables, lo que incrementa la entropía real. |
| 57 | + |
| 58 | +### **Flujo** |
| 59 | +1. El servidor publica una tabla fija: `H1, H2, H3`. |
| 60 | +2. El cliente selecciona un header al azar. |
| 61 | +3. El cliente selecciona un token CSRF al azar (longitud variable). |
| 62 | +4. El token se inserta en ese header. |
| 63 | +5. El servidor valida el header y el token. |
| 64 | + |
| 65 | +### **Ejemplo 1 HTTP** ** — ** *Token largo* |
| 66 | +```http |
| 67 | +POST /v1/payments |
| 68 | +X-CSRF-H3: qP4fA1wZ9kT7mB3sJ2uR8hX0VyM5nLgC |
| 69 | +Content-Type: application/json |
| 70 | +``` |
| 71 | + |
| 72 | +### **Ejemplo 2 HTTP** ** — ** *Token Mediano* |
| 73 | +```http |
| 74 | +POST /v1/payments |
| 75 | +X-CSRF-H1: 73sPqr52WbKJgA4cL3sPYv |
| 76 | +Content-Type: application/json |
| 77 | +``` |
| 78 | + |
| 79 | +### **Ejemplo 3 HTTP** ** — ** *Token Corto* |
| 80 | +```http |
| 81 | +POST /v1/payments |
| 82 | +X-CSRF-H2: fQ9dL7xS1mA4 |
| 83 | +Content-Type: application/json |
| 84 | +``` |
| 85 | + |
| 86 | +--- |
| 87 | + |
| 88 | +# 🔷 Nivel 4 — *Dynamic Adaptive RHC* (Canal Adaptativo Dinámico) |
| 89 | +El **Nivel 4** es la versión más avanzada del RHC. No es solo un grupo de headers: es un **canal vivo**, dinámico y adaptativo. |
| 90 | + |
| 91 | +Supera los niveles previos mediante: |
| 92 | +- rotación dinámica de encabezados válidos |
| 93 | +- señuelos activos con ruido estadístico |
| 94 | +- filtros adaptativos según contexto |
| 95 | +- canal que muta según condiciones externas |
| 96 | +- dispersión y ruido útil |
| 97 | +- protección contra correlación predictiva |
| 98 | + |
| 99 | +Es el primer nivel **no-determinista**, imposible de resolver por análisis estático o fuerza bruta tradicional. |
| 100 | + |
| 101 | +El servidor utiliza **filtros adaptativos** que reconocen los headers correctos e ignoran decoys. |
| 102 | + |
| 103 | +## 🧬 Principio del Nivel 4 |
| 104 | +> **“El canal RHC ya no es un conjunto de encabezados: es un organismo.”** |
| 105 | +
|
| 106 | +--- |
| 107 | + |
| 108 | +## ✔ 1. Headers válidos dinámicos (N por ciclo) |
| 109 | +De una lista total, se eligen **N headers válidos** que cambian por ciclo según: |
| 110 | +- carga (PoC) |
| 111 | +- tiempo |
| 112 | +- endpoint |
| 113 | +- intentos fallidos |
| 114 | +- comportamiento del cliente |
| 115 | + |
| 116 | +--- |
| 117 | + |
| 118 | +## ✔ 2. Headers señuelo (Decoys) con ruido útil |
| 119 | +- Parecen legítimos |
| 120 | +- No se distinguen externamente |
| 121 | +- El servidor sí puede identificarlos |
| 122 | +- Pueden rotar o mutar |
| 123 | + |
| 124 | +--- |
| 125 | + |
| 126 | +## ✔ 3. Filtro adaptativo del servidor |
| 127 | +Cambia su respuesta según: |
| 128 | +- carga (PoC) |
| 129 | +- IP o fingerprint |
| 130 | +- número de fallos |
| 131 | +- endpoint |
| 132 | +- nivel del recurso |
| 133 | +- hora del día |
| 134 | + |
| 135 | +El mismo cliente puede recibir escenarios distintos. |
| 136 | + |
| 137 | +--- |
| 138 | + |
| 139 | +## ✔ 4. Dynamic Channel Rotation (DCR) |
| 140 | +La rotación puede dispararse por: |
| 141 | +- intentos fallidos |
| 142 | +- métricas de entropía |
| 143 | +- ruido |
| 144 | +- tiempo |
| 145 | + |
| 146 | +Una rotación invalida: |
| 147 | +- tokens |
| 148 | +- headers válidos |
| 149 | +- disposición interna del canal |
| 150 | + |
| 151 | +--- |
| 152 | + |
| 153 | +## ✔ 5. Entropía multifactor |
| 154 | +| Factor | Origen | |
| 155 | +|--------|--------| |
| 156 | +| Encabezados válidos | Rotados dinámicamente | |
| 157 | +| Tokens | Longitud variable | |
| 158 | +| Decoys | Ruido estadístico | |
| 159 | +| Ruido útil | Dispersión | |
| 160 | +| Distribución | Anti-correlación | |
| 161 | +| Filtro adaptativo | Contextual | |
| 162 | + |
| 163 | +El atacante NO puede crear correlación estable. |
| 164 | + |
| 165 | +--- |
| 166 | + |
| 167 | +## ✔ 6. Reacción autónoma (Defense Reflex) |
| 168 | +### PoC: |
| 169 | +- decoys fijos |
| 170 | +- longitudes dinámicas |
| 171 | +- headers válidos fijos |
| 172 | +- dispersión fija |
| 173 | + |
| 174 | +### Implementación real: |
| 175 | +- aumentar decoys ante sospecha |
| 176 | +- modificar longitudes de token |
| 177 | +- reducir headers válidos |
| 178 | +- aumentar dispersión |
| 179 | +- posible: cerrar canal temporalmente |
| 180 | + |
| 181 | +--- |
| 182 | + |
| 183 | +### **Ejemplo HTTP** |
| 184 | +```http |
| 185 | +POST /v1/identity/update |
| 186 | +X-RHC-H1: Cf9Gx2A7tPqLs91kZb3uQm4NsyW86Rhv ← decoy |
| 187 | +X-RHC-H4: TmQ8yLr29FvS13KpWg5aXb7cN0HqD4Mt ← token real (ciclo actual) |
| 188 | +X-RHC-H6: qP4fA1wZ9kT7mB3sJ2uR8hX0VyM5nLgC ← decoy |
| 189 | +X-RHC-H2: mD73sPq18YvHr52WbKx9Rf0tJgA4cLzE ← decoy |
| 190 | +X-RHC-H5: R9tK0wLh6BfP2uS3nQ7vX1cZpM4eD8Yr ← token real (ciclo actual) |
| 191 | +X-RHC-H7: Zk5Pq1Nf8GyA7uT4wE9bC3hL0sV6mJdR ← decoy |
| 192 | +X-RHC-H3: Hc8Lx4Vw1SgD9pQ2tR3mF6aYkB0uZ7Jn ← decoy |
| 193 | +X-RHC-H8: F2aQp8Vx3WnL7rC1bS9uH4kD0M5tJ6Gz ← token real (ciclo actual) |
| 194 | +X-RHC-H9: yN1rT5mP8bQ4vS2kJ6aW9gF3D0xH7LzC ← decoy |
| 195 | +Content-Type: application/json |
| 196 | +``` |
| 197 | + |
| 198 | +--- |
| 199 | + |
| 200 | +# 📊 Diagrams |
| 201 | +Consulta los diagramas completos en: |
| 202 | +- `/docs/architecture.md` |
| 203 | +- `/docs/conceptual/marco_conceptual_rhc.md` |
| 204 | + |
| 205 | +--- |
| 206 | + |
| 207 | +# 📦 Additional Examples |
| 208 | +### **PSR‑15 Middleware** |
| 209 | +Validación automática del header + token + timestamp. |
| 210 | + |
| 211 | +### **Node.js Microservice Adapter** |
| 212 | +Implementación para entornos distribuidos. |
| 213 | + |
| 214 | +### **Header Fuzzing Test Cases** |
| 215 | +Pruebas de: |
| 216 | +- colisiones |
| 217 | +- predicción adversaria |
| 218 | +- entropía efectiva |
| 219 | +- canales paralelos |
| 220 | + |
| 221 | +--- |
0 commit comments