Programmare telecomando Key Rolling Code

C’è un momento preciso in cui ogni proprietario di cancello automatico scopre di non sapere come funziona il proprio impianto: quando il telecomando smette di aprire. La reazione istintiva è cercare un negozio che “copia i telecomandi”, come si fa con le chiavi. E lì arriva la risposta che spiazza: il tuo è rolling code, non si copia.

Non è una scusa commerciale. È esattamente ciò che il dispositivo è stato progettato per fare.

Cosa c’è dentro: 66 bit, e nessuno uguale all’altro

Il cuore della quasi totalità dei telecomandi a codice variabile in circolazione è la tecnologia KeeLoq, sviluppata originariamente in Sudafrica e acquisita da Microchip Technology. Il chip di riferimento, l’HCS301, è documentato pubblicamente e i suoi numeri sono verificabili sul datasheet ufficiale.

Ogni volta che premi un tasto, il telecomando combina un codice hopping a 32 bit, generato da un algoritmo di cifratura non lineare, con un numero seriale a 28 bit e 6 bit informativi, formando una parola di codice da 66 bit. La struttura è divisa in due:

  • Parte fissa (34 bit): 2 bit di stato, 4 bit di pulsante e il numero seriale a 28 bit. È l’identità del telecomando, e non cambia mai.
  • Parte cifrata (32 bit): generata da 4 bit di pulsante, 12 bit di discriminazione e un valore di sincronizzazione a 16 bit.

Quel contatore a 16 bit è il vero protagonista. Si incrementa dopo ogni trasmissione, e viene dato in pasto all’algoritmo insieme a una chiave di cifratura a 64 bit che non lascia mai il chip: nel datasheet le chiavi sono dichiarate protette in lettura.

Risultato: la stringa che vola nell’aria a 433,92 MHz è diversa a ogni pressione. Il che spiega perché la classica cattura-e-riproduci non funzioni — la lunghezza della parola di codice elimina la minaccia dello scanning e il meccanismo di hopping rende ogni trasmissione unica, vanificando gli schemi di cattura e ritrasmissione. Con 66 bit lo spazio dei codici sfiora i 7,4 × 10^19 valori possibili.

Il dettaglio che quasi nessuno racconta: la finestra di sincronizzazione

Qui casca l’asino di metà delle chiamate all’assistenza. Se il contatore avanza a ogni pressione, cosa succede quando i bambini giocano col telecomando in tasca, lontano dal cancello?

Microchip lo ha previsto. La nota applicativa AN642 descrive due finestre distinte: la “finestra aperta” accetta una trasmissione il cui contatore sia da 1 a 16 valori più avanti rispetto all’ultimo ricevuto, con aggiornamento immediato e attivazione delle uscite. Se il trasmettitore viene premuto più di 16 volte fuori portata, serve una risincronizzazione: la finestra di risincronizzazione copre metà dell’intero intervallo del contatore, cioè 32K. In quel caso il decoder attende due trasmissioni consecutive prima di risincronizzare.

Tradotto in linguaggio da cortile: se il telecomando “non apre più al primo colpo ma al secondo”, non è rotto. Si sta risincronizzando. Ed è normale.

Programmare non è copiare

La distinzione è tutta qui, e vale la pena fissarla. Copiare un telecomando significa duplicarne il segnale senza toccare l’impianto: possibile con i vecchi codici fissi, impossibile per progetto con il rolling code. Programmare significa invece andare alla ricevente e insegnarle a riconoscere un nuovo trasmettitore.

Prendiamo un caso concreto e ben documentato, il sistema Key Automation (azienda di Noventa di Piave, in provincia di Venezia), le cui riceventi radio della famiglia XR sono largamente diffuse in Italia. I dati che seguono vengono dal manuale ufficiale 580ISRXX.

Le riceventi RX4X e RX4U sono a innesto con 4 uscite a 433,92 MHz e memoria massima di 1000 codici; RXI23X è a innesto con 2 uscite, RXM23X è esterna con 2 uscite. Un dettaglio decisivo: il primo radiocomando inserito decide il tipo di codifica, fissa o variabile. Non si mescolano. E all’accensione la ricevente lo dichiara lampeggiando: 1 lampeggio lungo indica memoria vuota, 2 lampeggi veloci codice fisso, 3 lampeggi veloci codice variabile.

La procedura di memorizzazione, secondo manuale:

  1. Premere e rilasciare il pulsante della ricevente un numero di volte pari all’uscita da attivare: 1 volta per l’uscita 1, 2 per l’uscita 2, e così via, 5 volte per l’uscita preimpostata (tasto 1 = uscita 1, tasto 2 = uscita 2…)
  2. Il LED lampeggia un numero di volte corrispondente all’uscita scelta, con pause di 1 secondo
  3. Entro 7 secondi premere per almeno 2 secondi il tasto del radiocomando da memorizzare
  4. Se l’operazione riesce, la ricevente emette un lampeggio lungo

E qui arriva l’avvertenza che il manuale mette in maiuscolo, e che nessun venditore ti ripete: attivando la fase di memorizzazione, qualsiasi trasmettitore nel campo di ricezione può essere memorizzato. Per ridurre la portata della ricevente si consiglia di scollegare temporaneamente l’antenna. Se programmi con l’antenna collegata in un condominio, stai tenendo la porta aperta a chiunque stia premendo un tasto nel raggio d’azione in quei sette secondi.

Cancellare un singolo telecomando: premere il pulsante della ricevente finché si accende il LED (circa 3 secondi), poi entro 7 secondi premere un tasto del radiocomando da cancellare finché il LED si spegne; dopo circa 1 secondo dal rilascio il LED inizia a lampeggiare e si conferma premendo il pulsante della ricevente.

Azzerare tutta la memoria (la mossa da fare quando si perde un telecomando): tenere premuto il pulsante finché il LED si accende — circa 3 secondi — e poi si spegne, altri 3 secondi; rilasciare, e al terzo lampeggio premere di nuovo il tasto. Attenzione: cancella tutto. Vanno riprogrammati tutti i telecomandi della famiglia.

Il trucco legale: memorizzare senza aprire il quadro

Qui sta la parte che interessa a chi vive in condominio o non ha accesso alla centralina. È possibile memorizzare un trasmettitore senza accedere al ricevitore: serve disporre di un trasmettitore precedentemente memorizzato, e la procedura di copia a distanza va eseguita nell’area servita dalla ricevente. La sequenza da manuale è: premere almeno 5 secondi il tasto del nuovo radiocomando; premere almeno 3 secondi il tasto del vecchio (se la fase 1 è riuscita, l’automazione non si muove); ripetere 3 secondi sul nuovo; confermare con altri 3 secondi sul vecchio.

Il produttore ha poi codificato la cosa nell’hardware. I trasmettitori Key si distinguono per colore del LED: la serie R con LED blu è il rolling code standard a 4 canali; la serie F con LED ambra permette di aggiungere un nuovo trasmettitore a un impianto esistente senza accedere alla ricevente, purché si abbia un trasmettitore già programmato; la serie N con LED verde è a codice fisso.

La procedura ufficiale di “passaggio certificato” tra due telecomandi della serie XR, dal manuale 580ISSUBF: avvicinare i due trasmettitori a circa 5 cm; premere e tenere premuti i pulsanti 1 e 2 del nuovo finché il LED ambra lampeggia; rilasciare, si hanno 8 secondi per trasmettere con quello da copiare; premere un pulsante del trasmettitore già memorizzato finché il LED del nuovo resta acceso fisso per 3 secondi. E il vincolo che rende il tutto una funzione e non un buco: il nuovo trasmettitore potrà trasmettere il certificato ricevuto ed essere riconosciuto e memorizzato dalla ricevente solo per le prime 15 trasmissioni.

Quindici colpi. Poi la finestra si chiude.

Quando invece il problema è banale

Prima di smontare la centralina, tre controlli che risolvono la maggior parte dei casi. Il telecomando SUB monta una batteria al litio CR2032 da 3V; se la batteria è scarica il trasmettitore riduce sensibilmente la portata. E la portata dipende dall’antenna: senza antenna il raggio d’azione si riduce a pochi metri; va installata più in alto possibile e sopra eventuali strutture metalliche o in cemento armato, con cavo tipo RG58 di lunghezza massima 10 metri. Terzo: dopo 7 secondi di inattività la ricevente esce automaticamente dalla programmazione. Se ci si mette troppo a capire quale tasto premere, la procedura è già finita.

Il rolling code è inviolabile? No. È solo un’altra categoria di problema

Va detto con onestà, perché il marketing tende a raccontare l’assoluto. Il rolling code chiude il replay attack banale, non tutto il resto.

La letteratura accademica su KeeLoq è pubblica da quasi vent’anni. Nel 2007 Andrey Bogdanov presenta a RFIDSec un lavoro di crittanalisi del cifrario; nel 2008 un gruppo tra Ruhr-Universität Bochum e Sharif University di Teheran pubblica a CRYPTO On the Power of Power Analysis in the Real World: A Complete Break of the KeeLoq Code Hopping Scheme, basato su analisi di potenza — e gli autori verificano gli attacchi proposti su diversi prodotti KeeLoq commerciali, includendo anche un attacco denial of service su un sistema di controllo accessi. Nel 2015 Samy Kamkar porta al DEF CON 23 il lavoro sui sistemi keyless delle auto.

La differenza pratica è però enorme: sono attacchi che richiedono competenze specialistiche, strumentazione e spesso accesso fisico al dispositivo. Non sono la copisteria sotto casa. Per un cancello residenziale il rolling code resta una scelta sensata — a patto di non usarlo come alibi per trascurare tutto il resto.

Il contesto che conta più del telecomando

Un promemoria che vale più di qualsiasi procedura: in Italia un cancello motorizzato è, ai sensi della Direttiva Macchine, una macchina a tutti gli effetti, e la norma tecnica di riferimento per la sicurezza in uso è la UNI EN 12453, affiancata dalla UNI EN 12604 per i requisiti meccanici. Fotocellule, bordi sensibili, limitazione delle forze, sblocco manuale e documentazione dell’impianto non sono optional retorici.

Programmare un telecomando è un’operazione da cinque minuti che chiunque può fare sul proprio impianto, manuale alla mano. Mettere le mani nel quadro elettrico di un’automazione che pesa quintali e si muove da sola è un altro mestiere.

Lascia un commento