Perché le porte inferiori a 1024 plasmano ancora Internet dopo quattro decenni
Una riconfigurazione della rete domestica mette in luce la storia profonda delle porte riservate e perché il DNS potrebbe essere l'ultimo servizio che non potrà mai sfuggire alla porta 53.
Se hai mai riconfigurato un router domestico o impostato una regola del firewall, probabilmente hai visto elenchi di numeri di porta con etichette come 22, 25, 80, 443 e 53. Queste sono le porte 'riservate' o 'ben note' di Internet, e provengono da un'epoca in cui i servizi di rete giravano su grandi computer condivisi decenni fa. George Michaelson si è recentemente imbattuto in questa eredità mentre riconfigurava la sua rete domestica. Ha scoperto che la lista di controllo degli accessi (ACL) del suo router e le regole del firewall imponevano ancora un confine di protocolli consentiti radicato in decisioni di progettazione prese più di quattro decenni fa. Un'ACL è semplicemente un insieme di regole che decide quale traffico di rete è consentito in entrata o in uscita, e un firewall è l'hardware o il software che applica tali regole. Le restrizioni sulle porte con numeri bassi non sono solo una vecchia convenzione; sono ancora incorporate nei sistemi operativi e nelle apparecchiature di rete di oggi.
Le porte riservate sono numeri usati dal Transmission Control Protocol (TCP) e dall'User Datagram Protocol (UDP) per identificare il servizio a cui un computer remoto vuole accedere quando apre una connessione. TCP e UDP sono due modi fondamentali con cui i dati si muovono su Internet, con TCP che verifica che tutti i dati arrivino e UDP che invia dati rapidamente senza tali controlli. La porta 22 è usata per SSH, un modo sicuro per accedere a un computer remoto. La porta 25 è usata per SMTP, il protocollo che consegna la posta elettronica. La porta 80 è per il traffico web non crittografato, e la porta 443 è per il traffico web HTTPS crittografato. Il DNS, il Domain Name System che traduce i nomi di siti web in indirizzi IP numerici, usa la porta 53 sia in TCP che in UDP. La porta 123 è usata dal Network Time Protocol (NTP) per mantenere sincronizzati gli orologi. Questi numeri bassi riflettono la loro assegnazione molto precoce. La porta 23 è stata assegnata a Telnet, un modo molto antico e insicuro per accedere a un computer remoto. Quando SSH fu introdotto a metà degli anni '90 come sostituto sicuro, gli fu assegnata la porta 22, una scelta deliberata per posizionarlo accanto a Telnet piuttosto che sostituire direttamente quel numero.
Una caratteristica chiave di questi protocolli più vecchi è che richiedono un programma dedicato, chiamato demone, che si sieda e ascolti le connessioni in arrivo. Un demone SSH parla solo SSH, un demone SMTP parla solo SMTP, e un demone DNS parla solo DNS. Tradizionalmente un demone non poteva cambiare ruolo e parlare un protocollo diverso. Un demone SMTP non poteva gestire il traffico SSH, e un demone DNS non era previsto per servire HTTPS. Queste distinzioni si sono recentemente offuscate, ma il modello originale era rigido. Un'altra caratteristica condivisa era che l'esecuzione di questi servizi era considerata una responsabilità a livello di sistema piuttosto che un'attività dell'utente comune. Nei primi sistemi, i servizi spesso giravano sotto l'account superutente, noto come root sui sistemi Unix con ID utente 0. Un modello più sicuro emerse infine in cui un servizio partiva con privilegi elevati, eseguiva le azioni amministrative necessarie, e poi passava a un account utente meno privilegiato. Ma spostare un processo da uno stato ad alta privilegio a uno più basso, o specialmente nella direzione inversa, richiede permessi speciali del sistema operativo. Quindi i demoni rimanevano sotto il controllo di un piccolo insieme di account privilegiati, rafforzando l'idea che i servizi rivolti alla rete facessero parte del dominio amministrativo, non del software utente ordinario.
La conseguenza pratica di questa storia è che gli utenti ordinari non possono semplicemente avviare un programma che ascolti sulla porta 25 o sulla porta 53. Se potessero, qualcuno potrebbe accidentalmente o maliziosamente ricevere tutta la posta elettronica per una macchina, o dirottare il servizio DNS e intercettare le query e le risposte DNS. Una query DNS è ciò che il tuo dispositivo invia quando ha bisogno di trasformare un nome di sito web in un indirizzo IP, e intercettare tali query permetterebbe a un attaccante di reindirizzarti verso siti web falsi. Pertanto le porte riservate non erano solo una tabella di consultazione. Un utente ordinario non poteva associare un processo alla porta 25 a meno che non fosse stato concesso un permesso speciale. L'intervallo delle porte riservate è tutto ciò che è inferiore a 1024, quindi esattamente un migliaio binario di esse esiste sia in TCP che in UDP. Questa restrizione persiste anche se i moderni metodi basati sui nomi rendono le assegnazioni fisse delle porte meno necessarie. Il DNS stesso supporta i record SRV, che consentono a un amministratore di dominio di specificare la porta e il protocollo per un servizio nominato. La crescita del Network Address Translation (NAT), che consente a molti dispositivi di condividere un singolo indirizzo IP pubblico, ha anche portato all'uso diffuso di servizi di rendezvous intermedi per aiutare a stabilire comunicazioni end-to-end. Voice over IP, WebRTC, piattaforme di conferenza e giochi online si affidano tutti a questi meccanismi quando necessario. Tecnologie come Apple Bonjour, Avahi e l'ascesa dell'Internet of Things e dei dispositivi smart home hanno reso sempre più comune che i servizi vengano scoperti tramite sistemi di lookup nome-indirizzo-e-porta che non impongono restrizioni su quali numeri di porta usare.
In pratica, tuttavia, le vecchie restrizioni sulle porte mordono ancora. Mentre riconfigurava i servizi DNS e di blocco spam sulla sua rete domestica, Michaelson si è trovato vincolato dal suo fornitore di router, dai sistemi operativi e da una serie di dispositivi domestici a seguire la convenzione che il DNS opera sulla porta 53. Dietro le quinte, stava usando servizi ausiliari su porte alte, non riservate, come la 5443 per incollare i componenti insieme. Un server DNS è generalmente felice di ascoltare sulla porta 5443 o su quasi qualsiasi altra porta se configurato per farlo. Ma una volta che si va oltre una rete domestica e si interagisce con l'infrastruttura DNS globale, bisogna essere pronti a usare la porta 53. Oggi, tuttavia, puoi incollare il tuo servizio DNS domestico a un risolutore a monte usando DNS over HTTPS (DoH), DNS over TLS (DoT) e DNS over QUIC (DoQ). Questi protocolli 'over' avvolgono le query DNS in connessioni web o di trasporto crittografate, quindi il tuo traffico DNS è nascosto a chiunque osservi la rete. Questo solleva una nuova domanda: come si scopre quale porta usano questi servizi crittografati? Una risposta sono i record SRV, che possono pubblicizzare sia la posizione che la porta. Ma SRV è esso stesso un tipo di record DNS. Il DNS è l'unico protocollo per il quale è difficile sostenere che possa usare qualsiasi porta gli piaccia per scoprire quale porta dovrebbe usare. A un certo punto, devi conoscere abbastanza DNS per chiedere al DNS come funziona il DNS. È possibile che, anche se spostiamo la maggior parte degli altri servizi di rete verso meccanismi di scoperta come multicast DNS, record SRV e modelli simili, la porta 53 possa rivelarsi l'ultima porta veramente indispensabile, riservata in pratica, se non per necessità, per sempre.
La persistenza della porta 53 è un promemoria che le fondamenta di Internet portano decisioni prese decenni fa. Per i lettori che gestiscono siti web o reti aziendali, questa eredità conta in modo diretto. Un servizio DNS crittografato e attento alla privacy come AEU DNS ti consente di mantenere l'interoperabilità richiesta sulla porta 53 con il DNS globale, ma avvolge ogni query DNS in crittografia, quindi la porta riservata legacy non espone più la tua attività di navigazione in chiaro. Puoi leggere il registro ufficiale delle porte IANA su https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml per vedere come queste prime assegnazioni sono diventate permanenti.
Termini spiegati
- DNS
- Il Domain Name System, che trasforma i nomi di siti web come example.com in indirizzi IP numerici che i computer usano per trovarsi.
- port
- Un endpoint numerato su un dispositivo di rete che consente a un computer di indirizzare i dati in arrivo al programma giusto, come una porta etichettata per ogni tipo di servizio.
- ACL
- Access Control List, un insieme di regole in un router o firewall che decide quale traffico di rete è consentito e quale è bloccato.
- daemon
- Un programma che gira in background e attende di rispondere alle richieste di rete per un servizio specifico, come email o SSH.
- root
- L'account superutente sui sistemi Unix-like che ha il permesso completo di modificare qualsiasi file o eseguire qualsiasi comando, spesso identificato come utente ID 0.
- SRV record
- Un tipo di voce DNS che dice ad altri computer quale porta e protocollo usare quando contattano un servizio specifico.
- DoH
- DNS over HTTPS, un modo per inviare query DNS all'interno della stessa connessione crittografata usata per i siti web sicuri, così nessuno sulla rete può leggerle.
Come proteggerti
- Se hai un router domestico, controlla le impostazioni del firewall o del port forwarding e chiudi eventuali porte basse non utilizzate al di sotto della 1024, soprattutto la 23 per Telnet, che è vecchia e insicura.
- Cambia la password predefinita sul tuo router e su qualsiasi dispositivo che offra un servizio di rete, perché credenziali deboli potrebbero permettere a un attaccante remoto di associarsi a una porta bassa e impersonare un servizio legitti
- Attiva il DNS crittografato sui tuoi dispositivi o router, usando un provider come AEU DNS, così anche quando il traffico DNS deve usare la porta 53, le tue query non vengono inviate in chiaro e leggibili da chiunque sulla rete.
- Mantieni aggiornati il firmware del router e il sistema operativo del computer, perché i vecchi demoni in ascolto su porte riservate possono contenere falle di sicurezza note.
- Se gestisci un server o un'istanza cloud, usa un firewall per consentire solo le specifiche porte basse di cui hai bisogno e blocca tutte le altre, piuttosto che affidarti al fatto che gli utenti non privilegiati normalmente non possono ass
