Potresti aver visto il termine keeLoq® rolling code o hopping code in riferimento a trasmettitori e ricevitori. Ma cosa significa e come funziona?
Scorri per saperne di più
Il rolling code KeeLoq, a volte noto anche come hopping code, è comunemente usato come misura di sicurezza per crittografare la trasmissione in radiofrequenza. Può essere trovato in un’ampia varietà di contesti come gli apriporta del garage, i sistemi di controllo degli accessi, l’ingresso in auto senza chiave, i grilletti automatici dei cancelli e altro ancora. Il rolling code funziona impedendo che la trasmissione venga registrata e salvata, quindi riprodotta successivamente per indurre il ricevitore ad aprire la porta o la barriera.
Il codice trasmesso funziona come una password. Quando attivato, un trasmettitore genera e invia un segnale contenente la password al suo ricevitore associato. Il ricevitore analizza la password per vedere se è accettabile. Se accettato, il ricevitore attiva quindi un relè, consentendo lo sblocco e l’apertura della porta o della barriera. In un sistema a codice fisso, la password non cambia mai. Ciò lascia il sistema vulnerabile agli attacchi, in quanto se qualcuno riuscisse a scoprire la password, potrebbe utilizzarla per accedere senza autorizzazione. Il rolling code riduce significativamente il rischio di accessi non autorizzati perché la password cambia ogni volta che viene utilizzata.
I sistemi di trasmissione a codice variabile utilizzano metodi di crittografia dei dati che consentono al trasmettitore e al destinatario di condividere le password, ma che rendono notevolmente più difficile la loro scoperta da parte di un utente malintenzionato. KeeLoq® è un cifrario a blocchi proprietario che è uno dei metodi di crittografia più comunemente utilizzati per la trasmissione in radiofrequenza. Il codice di hopping KeeLoq® utilizza un codice di trasmissione a 66 bit, di cui 32 bit sono crittografati. Nella sola sezione crittografata, ci sono quasi 4 miliardi di possibili combinazioni di codice, che richiederebbero circa 17 anni per una scansione completa. Le password trasmesse non possono essere riutilizzate regolarmente, per evitare intercettazioni e accessi illeciti. Una volta che un passcode è stato utilizzato, non sarà più valido fino a quando non saranno stati utilizzati circa 65.000 altri codici validi. In normali scenari di utilizzo, occorrerebbero più di 20 anni prima che un codice diventi nuovamente valido.
Affinché il rolling code funzioni, il trasmettitore e il ricevitore devono sincronizzare la generazione del codice. In caso contrario, la password casuale inviata dal trasmettitore non corrisponderebbe alla password casuale prevista dal ricevitore. In quanto tale, il termine casuale è leggermente fuorviante qui. In realtà, il trasmettitore e il ricevitore utilizzano Pseudo Random Number Generators (PRNG) per produrre una serie di passcode apparentemente casuali per gli estranei e quindi imprevedibili per gli aggressori. Il PRNG è un algoritmo che garantisce che la serie di numeri generati sia dal trasmettitore che dal ricevitore sia identica. In questo modo, ogni volta che viene prodotto un passcode dal trasmettitore, corrisponderà a quello generato dal ricevitore e consentirà l’accesso. La sequenza dei codici non è quindi veramente casuale; sia il trasmettitore che il ricevitore devono partire dallo stesso codice seme per sincronizzarsi correttamente.
Viene generato un passcode ogni volta che si preme il pulsante sul trasmettitore, anche se è fuori dalla portata del ricevitore. Se è fuori portata, il ricevitore non genera un codice, lasciando quindi il trasmettitore e il ricevitore non sincronizzati. Per superare questa limitazione, il ricevitore memorizza un elenco delle prossime password predeterminate dal PRNG. Nel codice di salto KeeLoq, l’elenco comprende fino a 1.000 password future. Una volta che il trasmettitore rientra nel raggio d’azione del ricevitore e viene premuto il pulsante, il ricevitore può ancora identificare il codice come una delle password imminenti e consentire l’accesso. I codici “mancati” che sono stati generati dal trasmettitore mentre era fuori portata vengono semplicemente invalidati e i codici vengono sincronizzati ancora una volta. KeeLoq beneficia anche di ulteriori misure di sicurezza per la sincronizzazione. Se il pulsante del trasmettitore viene premuto 16 o più volte mentre si è fuori portata del ricevitore, il ricevitore non sbloccherà la porta o la barriera alla prima pressione del pulsante una volta rientrato nel raggio d’azione. La risincronizzazione avverrà solo quando al ricevitore vengono inviati due codici corrispondenti consecutivi dall’elenco dei codici futuri validi. In un sistema tipico, se il pulsante del trasmettitore viene premuto alcune migliaia di volte mentre è fuori portata, verrà bloccato in modo permanente fuori dal ricevitore e dovrà essere risincronizzato manualmente.