
FIPS è un progetto open source che punta a costruire qualcosa di molto diverso rispetto alle classiche VPN mesh o ai software peer-to-peer tradizionali. Il progetto combina routing distribuito, identità Nostr e supporto multi-trasporto per creare una rete capace di funzionare praticamente ovunque, anche in assenza di Internet tradizionale.
Ogni nodo FIPS genera automaticamente una coppia di chiavi crittografiche basata su Nostr e diventa parte integrante della mesh. Questo approccio elimina registrazioni, server di autenticazione e dipendenze da provider centrali. L’identità stessa del nodo coincide con la chiave pubblica crittografica, rendendo il sistema completamente permissionless.
Uno degli aspetti più interessanti riguarda la doppia modalità operativa. FIPS può funzionare sopra reti IP già esistenti oppure creare una rete completa partendo direttamente da Ethernet, WiFi o Bluetooth. In pratica, due computer vicini potrebbero costruire una rete IPv6 cifrata senza router, ISP o DNS tradizionali.
Il progetto rimane ancora in piena evoluzione e gli sviluppatori specificano chiaramente che API e protocollo non sono stabili. Nonostante questo, le funzionalità già presenti mostrano un’architettura molto avanzata per un software ancora giovane.
Routing mesh, trasporti multipli e cifratura a due livelli
FIPS utilizza un sistema di routing mesh auto-organizzato che evita tabelle globali gigantesche e riduce il traffico inutile. La scoperta dei peer sfrutta bloom filter e strutture spanning-tree per mantenere efficiente la propagazione delle informazioni nella rete.
La compatibilità multi-trasporto rappresenta uno dei punti più forti del progetto.
Attualmente FIPS supporta:
- UDP
- TCP
- Ethernet
- Tor
- Bluetooth BLE L2CAP
Questi trasporti possono convivere contemporaneamente sulla stessa mesh. Un nodo potrebbe quindi raggiungere altri peer usando Ethernet locale, inoltrare dati tramite Tor e sfruttare Bluetooth per dispositivi vicini, tutto nello stesso ambiente operativo.
Dal punto di vista della sicurezza, FIPS implementa due livelli separati di cifratura. La comunicazione hop-by-hop usa Noise IK tra peer diretti, mentre il traffico end-to-end impiega Noise XK tra i nodi finali della mesh. Questo approccio garantisce forward secrecy grazie a rekey periodici e mantiene isolati i singoli collegamenti.
Molto interessante anche il sistema di attraversamento NAT. I peer pubblicano annunci tramite relay Nostr pubblici e scambiano offerte cifrate usando NIP-59. Per stabilire connessioni dirette vengono utilizzate tecniche di hole punching assistite da STUN.
IPv6 automatico, gateway LAN e strumenti di monitoraggio
FIPS integra un adattatore IPv6 tramite interfaccia TUN che assegna indirizzi fd00::/8 ai nodi remoti. Questo consente di usare software standard senza modifiche: SSH, server HTTP, trasferimenti file e altri servizi IPv6 funzionano normalmente sopra la mesh.
Ogni nodo può essere raggiunto usando nomi in formato .fips, grazie al resolver DNS integrato. È disponibile anche una mappatura statica attraverso /etc/fips/hosts, utile per ambienti amministrati manualmente.
Una funzione particolarmente utile è fips-gateway, che permette di collegare intere reti LAN alla mesh senza modificare i dispositivi interni. I client della rete locale possono raggiungere destinazioni FIPS tramite NAT IPv6 e regole nftables, mentre servizi locali possono essere pubblicati verso la mesh tramite port forwarding dedicati.
FIPS include inoltre strumenti completi per monitoraggio e amministrazione. fipsctl consente di interrogare statistiche e controllare la rete tramite CLI, mentre fipstop offre un’interfaccia TUI con grafici sparkline in tempo reale. Sono disponibili metriche dettagliate come RTT, perdita pacchetti, jitter e throughput per ogni collegamento.
Sul piano della sicurezza operativa, il progetto fornisce anche un set opzionale di regole nftables dedicato esclusivamente all’interfaccia mesh fips0. Questo evita interferenze con Docker, Tor o firewall già presenti nel sistema Linux.
Per chi segue il mondo networking open source, FIPS rappresenta uno dei tentativi più ambiziosi nel creare una rete realmente distribuita, cifrata e indipendente da infrastrutture centrali, mantenendo allo stesso tempo compatibilità totale con il software IPv6 tradizionale.
Installare FIPS
FIPS viene distribuito per Linux attraverso pacchetti deb, binari precompilati oppure compilando il tool da codice sorgente. Al termine dell’installazione è importante abilitare il servizio fips da systemd