Dos salts de VPN seguits: qui veu realment el vostre trànsit?
Els salts en sèrie desxifren i tornen a xifrar a la primera porta; els salts imbricats només treuen la capa exterior. Recorreu els dos dissenys i vegeu quin operador llegeix què.
Cada perfil de client anomena un servidor, així que des de la cadira de l’usuari hi ha un túnel i un lloc on acaba la protecció. El que passa després d’aquesta primera porta és una decisió de disseny que el client mai no veu, i els dos dissenys habituals es comporten molt diferentment sota inspecció. En una cadena en sèrie, la primera porta desxifra i torna a xifrar. En una cadena imbricada, treu una capa exterior i reenvia un túnel interior que no pot obrir. El recompte de salts és idèntic en tots dos, i per això la diferència s’ha de dibuixar, no comptar.
Comenceu pel client i anomeneu tots dos extrems
Comenceu on comença l’usuari, al perfil de connexió. Conté una adreça remota, un mètode d’autenticació i, quan el disseny ho admet, una llista de rutes. Etiqueteu aquest túnel exterior del client a la porta A i doneu-li adreces d’exemple: l’adreça del túnel del client 10.77.0.2, la de A 10.77.0.1 i el punt final públic de A 198.51.100.10, presos del rang de documentació TEST-NET-2 perquè res de l’exemple no pugui coincidir amb un amfitrió real.
Res d’aquest perfil no esmenta la porta B, i això no és cap defecte. El segon salt pertany a A, i l’única obligació del client és lliurar el trànsit a A i acceptar el que torna. Si A acaba el túnel, el reenvia o n’obre un de nou és la pregunta que respon la resta d’aquest recorregut, i decideix què pot llegir A.
En sèrie: A desxifra i després torna a xifrar
En el disseny en sèrie, A acaba el trànsit dues vegades. Treu la protecció del client, obté el paquet IP de l’aplicació i després envia aquest paquet per un segon túnel que A origina cap a B. Entre aquestes dues operacions, el paquet és al camí de reenviament d’A com un paquet IP ordinari adreçat a una destinació privada.
Això produeix dues conseqüències que val la pena dir clarament. A pot aplicar política al paquet interior, en forma de rutes, regles de filtratge i registre d’origen i destinació, i A ha de mantenir dos jocs de credencials: un com a servidor per al client i un com a client de B. La protecció existeix en cada instant, però l’objecte protegit canvia d’identitat a A.
No se’n segueix que A llegeixi el text pla de l’aplicació. Quan el client i el servei fan servir TLS i verifiquen els certificats de l’altre, A veu un flux de registres TLS i no una petició llegible. Confirmar on acaba aquesta protecció requereix mirar la cadena de certificats del servei, no el diagrama del túnel.
Imbricat: A només treu la capa exterior
En el disseny imbricat, el client construeix primer un túnel interior cap a B i després porta aquest túnel dins de l’exterior fins a A. A treu la capçalera exterior, troba un túnel interior i el reenvia sense tenir-ne les claus, així que la protecció interior encara acaba a B.
L’enllaç ascendent del client porta llavors dues capes, mentre que el camí entre A i B en porta una. A veu les adreces exteriors del túnel interior, cosa que n’hi ha prou per saber que hi ha trànsit i aproximadament cap on va, i no n’hi ha prou per llegir la càrrega. Aquesta és tota la diferència respecte del cas en sèrie, i cap comptador de salts no la mostra. El que A encara pot fer és negar-se a reenviar allò que no pot llegir, i això sempre és a l’abast de l’operador d’aquesta porta.
La imbricació es cobra aquesta propietat. Cada capa afegeix sobrecàrrega de capçalera, així que la planificació d’MTU i MSS es torna obligatòria i no només ordenada, i un camí que funciona amb una capa pot deixar caure en silenci paquets grans amb dues. Cada capa també necessita el seu propi comportament de reconnexió i de manteniment, i una fallada en una capa sembla una interrupció parcial a través de l’altra.
Dibuixeu els observadors, no només els túnels
Els túnels són la part fàcil del dibuix. Els observadors són el tema del disseny, així que escriviu una fila per punt de vista i ompliu què pot llegir realment cadascun.
| Vantage point | Serial chain | Nested chain |
|---|---|---|
| Client's access network | Outer tunnel only | Outer tunnel only |
| Operator of A | Inner IP packet between A and B | Outer addresses of the inner tunnel, not its payload |
| Path between A and B | Second tunnel | Second tunnel |
| Operator of B | Inner packet re-originated by A | Payload after the inner layer is removed |
| Service edge | Traffic from the exit address | Traffic from the exit address |
Hi ha dues files que es confonen constantment: l’operador de A i el proveïdor del túnel del client. Poden ser una sola entitat, i noms de porta separats no els fan independents. Una propietat independent necessita control administratiu separat, credencials separades i registre separat.
Les metadades sobreviuen als dos dissenys. El temps, les mides de paquet i el nombre de connexions continuen sent observables a cada salt, així que dos salts apugen el cost de la correlació en lloc d’eliminar el senyal. Un disseny que promet invisibilitat s’hauria de contrastar amb aquesta llista abans que ningú hi confiï.
Recorreu els camins de fallada abans de triar
Trenqueu coses a propòsit des del client, en l’ordre en què un usuari les trobaria. Comenceu per la interfície i la seva MTU, perquè la imbricació falla per mida de paquet molt abans de fallar per autenticació.
ip -4 addr show dev tun0
ip link show dev tun0 | grep mtu
ping -M do -s 1380 -c 2 10.77.1.1
Després confirmeu els punts finals de protecció en lloc de suposar-los. Demaneu al servei el seu certificat des de dins del túnel que estigui aixecat, i compareu la cadena que veu el client amb la cadena que el servei presenta realment. Una porta que torna a signar o intercepta canvia aquest certificat, i la inspecció es fa visible amb una sola ordre.
openssl s_client -connect intranet.example.com:443 -brief < /dev/null
Acabeu amb la matriu de reconnexió: cau el túnel del client, cau el túnel de B, canvia el camí entre A i B. Anoteu què torna i què no, i si alguna connexió interior cau mai cap a una ruta fora del seu portador previst. Registreu les adreces que va fer servir cada prova, perquè repetir-la en una altra xarxa d’accés respon una altra pregunta. Repetiu també la prova d’MTU després de cada reconnexió, perquè un camí canviat pot baixar la mida útil sense que es mogui ni una línia de configuració.
Trieu en sèrie quan A hagi d’aplicar política al paquet interior, o quan el client no pugui executar dos túnels apilats. Trieu la imbricació quan la càrrega interior hagi de romandre il·legible a A. Escriviu la tria amb els seus observadors i les seves xifres d’MTU, i la propera persona no haurà de tornar a dibuixar tot el quadre per respondre una pregunta.