|
1 | | ---- |
2 | | -title: Example |
3 | | -layout: null |
4 | | -tab: true |
5 | | -order: 1 |
6 | | -tags: architecture diagrams examples |
7 | | ---- |
8 | | - |
9 | | -# Architecture & Examples |
10 | | - |
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 | | ---- |
| 1 | +--- |
| 2 | +title: Example |
| 3 | +layout: null |
| 4 | +tab: true |
| 5 | +order: 1 |
| 6 | +tags: example-tag |
| 7 | +--- |
| 8 | + |
| 9 | +## Example |
| 10 | + |
| 11 | +Put whatever you like here: news, screenshots, features, supporters, or remove this file and don't use tabs at all. |
0 commit comments