sabato, 22 settembre 2018

Articoli

Controllo accessi: l’interfaccia wiegand

25/02/2017

della Redazione

Uno dei componenti chiave del sistema elettronico di controllo accessi è il lettore, il dispositivo che “legge” le credenziali di accesso dell’utente. I lettori sono connessi all’unità di gestione (Controller) via cavo o wireless. L’interfaccia Wiegand (fisica e logica) è il sistema wired più semplice e diffuso per collegare tra loro i due dispositivi. Com’è fatta e come funziona? Quante varianti esistono? Davvero è così semplice come si dice? a&s Italy cerca di far luce su un’interfaccia all’apparenza elementare ma che nasconde molti segreti...

MagStripe, Clock & Data, ABA, Omron, RS232, RS422-485… Le interfacce fra i lettori di credenziali (badge, transponder, impronta biometrica ecc.) e le unità elettroniche di gestione (Controller) sono molteplici e largamente diffuse. A conquistare il primo gradino del podio, tuttavia, è la cosiddetta interfaccia Wiegand. Wiegand è un nome registrato di proprietà della Sensor Engineering, ora HID Corp. (Gruppo Assa Abloy). Di fatto è uno standard industriale aperto, usato in tutto il mondo. Questo sistema di connessione, nato circa mezzo secolo fa, è prediletto dai progettisti e dagli installatori per la sua semplicità ed economicità. Con il passare degli anni, tuttavia, forse proprio perché facile da comprendere e semplice da integrare, in molti hanno pensato bene di lavorarci su. Risultato: una Torre di Babele. Oggi sono centinaia le interfacce che portano questo nome. Quella che all’origine era una soluzione elementare è diventata col tempo complicata e confusa. Cerchiamo quindi di fare un po’ di chiarezza partendo dall’inizio.

LA WIEGAND 26

L’interfaccia Wiegand DOC è quella cosiddetta “26 bit”. Che cosa significa? Che il formato dei dati è caratterizzato da una struttura a 26 bit, di cui 24 rappresentano il dato vero e proprio e due sono di controllo (bit di parità). Essendo il dato espresso su 24 bit, il valore utile è compreso tra uno e 224 ovvero 16.777.215 (conversione da binario a decimale). Per dirla in esadecimale, invece, dividendo i 24 bit per gruppi di quattro, il valore varia da 000001 a FFFFFF. La stringa di 26 bit è organizzata in modo molto semplice, secondo la convenzione classica di assegnazione dei pesi dei bit (da destra a sinistra a valori crescenti). Il primo, a partire da destra, è il bit di parità (dispari) riferito al primo gruppo di 12 bit di dati (posizioni 2-13); se il numero di bit di valore uno presente sui 12 bit è pari, il bit di parità è uno (viceversa è zero). L’ultimo bit a sinistra è la parità (questa volta pari) del secondo gruppo di 12 bit di dati che lo precedono (posizioni 14-25); se il numero di bit di valore uno presente sul secondo gruppo di 12 bit è pari, il bit di parità è zero (viceversa è uno). La notazione completa, quindi, è del tipo eyyyxxxo, dove: “o” è la parità dispari (odd) dei primi tre gruppi di quattro bit ciascuno (xxx) ed “e” è la parità pari (even) del secondo gruppo (yyy). Questo tipo di organizzazione serviva, a suo tempo, per codificare individualmente una linea di badge di elevata sicurezza basati sull’effetto Wiegand (vedi box). Ogni badge era contraddistinto da un codice univoco. Il volume di produzione poteva raggiungere circa 17 milioni di esemplari, ottenibili combinando i 24 bit. È poco, è tanto? Dipende. Non essendo quel tipo di badge destinato a identificare i cittadini bensì il personale d’imprese pubbliche e private (dipendenti, collaboratori, visitatori ecc.), il numero era ritenuto allora più che sufficiente.

E FISICAMENTE?

Dal punto di vista fisico, l’interfaccia Wiegand fra un lettore di credenziali e la rispettiva unità elettronica di controllo è costituita semplicemente da due segnali (DATA0 e DATA1). Ciascun segnale è rappresentato fisicamente da un filo di diverso colore: verde (DATA0) e bianco (DATA1). I due segnali sono normalmente a livello alto (tipicamente 5 Vdc); ogni bit viene inviato dal lettore tramite un impulso sul segnale DATA1 (se il bit letto è di valore uno) e sul segnale DATA0 (se il bit letto è zero). La durata dell’impulso (Tpw) è generalmente compresa fra 20 e 100 μs (tipica 40 μs), indipendentemente dal valore zero o uno, mentre l’intervallo tra un impulso e il successivo (Tpi) è compreso tra 200 μs e 20 ms (in genere 2,5 ms). I 26 bit vengono trasmessi in sequenza dal più significativo (bit 26, parità pari) al meno significativo (bit 1, parità dispari). La durata della trasmissione varia da un minimo di 5,72 ms a un massimo di 0,53 sec., tipicamente è di circa 66 ms. A completare l’interfaccia elettrica sono poi previsti altri tre conduttori: 0 Volt (polo negativo dell’alimentazione e massa di riferimento dei segnali) di colore nero, polo positivo (5, 12 o 24 Vcc) di colore rosso, pilotaggio del led per segnalare l’avvenuta lettura o l’autorizzazione ad accedere (colore marrone). La distanza massima consigliata per collegare il lettore al rispettivo Controller è (storicamente) di 90 metri.

CRESCETE E MOLTIPLICATEVI

L’interfaccia Wiegand dovrebbe essere tutta qui. E, invece, non è così. Una prima variazione sul tema riguarda il modo di intendere il valore dei 24 bit. Perché non pesarli al contrario? – si è chiesto qualche giovane leva. Risultato: in alcune interfacce il peso dei bit risulta capovolto rispetto alla tradizione ossia il più significativo (MSb) è a destra e non a sinistra. Altra variante: perché convertire semplicemente i 24 bit da binario a decimale per ottenere i codici? L’intera stringa, ad esempio, potrebbe essere divisa in sei gruppi da quattro bit ciascuno e operare in BCD. In questo caso FFFFFF, convertito in BCD, potrebbe rappresentare un valore compreso tra uno e 999.999. Ma, allora, perché non lavorare direttamente in esadecimale puro? Avremo così che un dipendente abituato ad avere da sempre una matricola aziendale composta di sole cifre, dovrà farsene una ragione ed essere contraddistinto da un valore esadecimale: tipo BC614E invece di 12345678. Già, ma nell’adottare questo metodo, come assegniamo il peso dei bit a ogni nibble (semibyte): tradizionale o invertito? E così, tanto per cambiare, c’è chi ha scelto il primo e chi il secondo. E ancora: chi da detto che il primo bit da trasmettere in serie deve essere il ventiseiesimo, il più significativo? Meglio il contrario! Un’altra organizzazione della stringa di 24 bit, molto diffusa, prevede una divisione in due campi. La prima parte a destra (user code), costituita da due byte (16 bit), è destinata al codice utente (spesso uguale alla matricola aziendale), quindi con un valore compreso tra uno e 65.535 (se convertita in decimale), 9999 (se convertita in BCD) oppure FFFF (se trattata in esadecimale). La seconda parte a sinistra (factory code), costituita da un byte, è destinata al codice comune a tutti i badge di un gruppo. Anche in questo caso si è preferito moltiplicare le soluzioni non solo giocando sul peso dei bit, ma anche sulla posizione dei semibyte nell’ambito della stringa di 24 bit e su un tipo di trattamento diverso per i due gruppi. Esempio: il factory code trattato in binario per poter gestire almeno 255 aziende e lo user code trattato in binario oppure in BCD o, ancora, in esadecimale.

PERICOLO DOPPIONI

Fino a quanto lo standard Wiegand veniva usato per attribuire un codice a un badge di elevata sicurezza, rilasciato da un unico produttore, il pericolo dei doppioni (cioè che sul mercato fossero presenti due tessere con lo stesso codice) non si è posto. Al momento in cui lo standard ha preso il volo e ha iniziato a conquistare i lettori di badge magnetici, apriti cielo. I 24 bit erano troppo pochi (si pensi che solo sulla traccia 2 ABA di bit ce ne sono a disposizione 200). E così lo standard Wiegand 26 si è, per così dire, allungato a dismisura. Il primo passo è stato quello di portarlo a 28 bit (26+2), il secondo a 30, poi 34 e così via. Per farla breve, in alcuni casi, la stringa ha ormai superato i 64 bit. Se con 24 bit la tecnica di controllo dell’integrità del dato basata su due bit di parità (VRC) poteva essere suffi- ciente, aumentando la lunghezza sarebbe stata poco efficace. E da qui, altre variazioni sul tema. C’è chi ha continuato imperterrito a utilizzare il sistema di parità originario dividendo la stringa in due e operando sui bit estremi, chi ha raddoppiato o triplicato i bit di parità e chi ha implementato altre tecniche di controllo.

È IL FISICO CHE CONTA

Un’ultima annotazione riguarda la parte fisica dell’interfaccia. Sostanzialmente il tipo di connessione è rimasto immutato, anche se alcuni produttori di lettori hanno aggiunto altri fili per gestire alcune funzioni supplementari (segnalazioni, monitoraggio ecc.), hanno cambiato i colori del rivestimento esterno previsti all’origine, oppure hanno migliorato i driver di linea per aumentare la distanza del collegamento (in alcuni prodotti arriva a 150 metri). Per elevare il livello di sicurezza (per un esperto catturare il codice intercettando i segnali sarebbe un gioco da ragazzi), c’è chi ha lanciato sul mercato dispositivi di cifratura, pur utilizzando lo stesso mezzo fisico di trasmissione. Così come sono disponibili in commercio convertitori che traducono il protocollo Wiegand in RS232 oppure RS422-485.

UNA GUIDA SICURA

Nel corso di questo mezzo secolo, come abbiamo visto, l’interfaccia Wiegand ha subito una notevole metamorfosi. Per chi opera nel settore del controllo accessi, che si tratti di un progettista incallito o di un installatore provetto, non è facile districarsi in questa giungla di varianti. Anche il Controller per accessi più avanzato, per quanto personalizzabile possa essere verso i lettori, diffi cilmente riuscirà a essere compatibile con le centinaia di interfacce disponibili sul mercato. L’unica pietra miliare di riferimento resta il documento rilasciato nel 1996 dalla SIA (Security Industry Association) in collaborazione con alcune aziende del settore sicurezza, dal titolo “Access Control Standard, Protocol for the 26 bit Wiegand Reader Interface”. 

La versione integrale dell’articolo riporta tabelle, box o figure, per visualizzarle apri il pdf allegato.



pagina precedente