Share via Share via... Twitter LinkedIn Facebook Telegram WhatsAppUltime modificheSend via e-MailStampaPermalink × KeycardAccess KeycardAccess è il sistema di apertura porte / autenticazione di Mittelab. È basato sulle seguenti tecnologie: FreeIPA (per Identity management) MIFARE DESfire EV1 (per le card NFC) PN532 (Lettore RFID/NFC) OrangePi Nano Il sistema è pensato per essere ragionevolmente: Sicuro Non clonabile Robusto (resistente a perdita di rete e di corrente elettrica) Low cost Modifica Il sistema di apertura Ogni porta avrà una OrangePi Zero con lettore basato sull'integrato PN532. Ogni Pi avrà una replica di FreeIPA (il nostro sistema di autenticazione centrale) e quindi una copia completa del database di utenti. Ogni Pi controlla il proprio motore che aprirà la porta. Il sistema meccanico di apertura è stato già progettato e realizzato da wifasoi e glavermi. Modifica La tessera La tessera socio è già stata realizzata, e si basa sul sistema MIFARE DESfire EV2. Queste tessere sono equiparate a smart card, e possono utilizzare gli stessi protocolli delle carte contactless. Modifica Come funziona la DESfire? La carta è divisa in applicazioni, che corrispondono vagamente a cartelle di un file system. Ogni applicazione può contenere file e chiavi. I file possono essere di vari tipi, tra i quali: File standard File standard con backup (mantiene n copie) File strutturato (record) ciclico File strutturato (record) lineare File di valore (supporta operazioni di credito/debito) Le chiavi specificano permessi per leggere determinati file. Modifica Come gestiamo autenticazione e autorizzazione Le idee di base sono due, una più facile e una più difficile (ma più sicura) 1. Ogni tessera ha un file con dentro scritto il nome utente e una stringa segreta. Il lettore legge il file in questione e controlla nel database utenti se l'utente è autorizzato ad aprire. Questo sistema dovrebbe essere molto semplice da implementare, ma non è molto sicuro, infatti se qualcuno ottiene il file, può autenticarsi come quell'utente. 2. Ogni tessera genera una coppia di chiavi asimmetriche, e la chiave pubblica viene trasferita nel sistema di autenticazione. Il lettore quindi chiede alla tessera di firmare una stringa di challenge e poi verifica da chi è stata firmata. Questo sistema è molto più sicuro in quanto la chiave privata non lascia mai la tessera (è letteralmente impossibile trasferirla mediante il protocollo) ma è un po' più complesso da fare. Modifica Software Esistono già librerie FOSS per parlare con le tessere, principalmente libnfc con libfreefare e liblogicalaccess. Le prime due sono documentate un po' male, ma le ho testate e funzionano con il nostro lettore e la tessera. La seconda è da testare. Sarebbero quindi da sviluppare due software: Uno che parte da una tessera vuota, e imposta la chiave master (PICC key), crea l'applicazione e il layout necessario Una che legge la tessera e fa l'autenticazione Modifica Materiali Librerie utilizzate: https://github.com/nfc-tools https://desfire.readthedocs.io/ Modifica Applicazione pratica Laser cutter: TODO link a git → disegni TODO note aggiuntive Modifica Progetti simili https://github.com/RandomWireTechnologies https://www.codeproject.com/Articles/1096861/DIY-electronic-RFID-Door-Lock-with-Battery-Backup?msg=5304529 Modifica Link utili * https://www.olimex.com/Products/Modules/RFID/MOD-RFID1356MIFARE/ KeycardAccess Responsabile: g5pw Membri: g5pw, wifasoi, glavermi Data inizio: 1/1/2017 Data fine: in corso Modifica Modifica progetti/keycardaccess.txt Ultima modifica: 2018/09/22 08:38da g5pw