350 likes | 598 Views
Carta Nazionale dei Servizi: aspetti tecnici. ing. Luigi Barella FORMEZ - INTEGRA Sistemi srl luigi.barella@integrasistemi.it. Sommario. Tecnologia Standard File system Protocollo applicativo Il processo di autenticazione. Tecnologie utilizzate.
E N D
Carta Nazionale dei Servizi: aspetti tecnici ing. Luigi Barella FORMEZ - INTEGRA Sistemi srl luigi.barella@integrasistemi.it
Sommario • Tecnologia • Standard • File system • Protocollo applicativo • Il processo di autenticazione Luigi Barella - CNS: aspetti tecnologici
Tecnologie utilizzate • La Carta Nazionale dei Servizi utilizza una carta a microprocessore (smart card). • E’ prevista una memoria interna di almeno 32K. • (fonte: www.cnipa.gov.it) Luigi Barella - CNS: aspetti tecnologici
Architettura della smart card Luigi Barella - CNS: aspetti tecnologici
Componenti delle smart card (1) • CPU: Central Process Unit • Il processore è di tipo CISC • Il clock è tipicamente di 5 MHz • ROM: Read Only Memory • Contiene il sistema operativo della smart card e programmi “fissi” • Dimensione variabile tra 2k e 64k • Dopo la scrittura non è modificabile • PROM: Programmable Read Only Memory • Contiene il numero seriale della smart card • Molto piccola. Generalmente appena 32/64 byte Luigi Barella - CNS: aspetti tecnologici
Componenti delle smart card • EEPROM: Electrically Erasable Read Only Memory • Memorizza informazioni variabili (tipo hard disk) • Capacità verso i 128k • Contiene le applicazioni e i dati • RAM: Random Access Memory • Utilizzata per memorizzazioni temporanee • Si cancella quando si sfila la smart card (power off) • Varia in genere tra i 128 byte e i 1024 byte • Interfaccia per Input/Output • Spesso la velocità del flusso dati è 9600 bit/sec • Vengono utilizzati due protocolli: T=0 e T=1 • Vengono raggiunte velocità di 115200 bit/sec Luigi Barella - CNS: aspetti tecnologici
Sommario • Tecnologia • Standard • File system • Protocollo applicativo • Il processo di autenticazione Luigi Barella - CNS: aspetti tecnologici
Gli standard principali • Gli standard più importanti relativi alle smart card sono: • ISO 7816 • EMV (Europay Mastercard Visa) • GSM (Global System for Mobile communication) • OCF (Open Card Framework), una infrastruttura software di tipo object oriented per l’accesso alle smart card. Luigi Barella - CNS: aspetti tecnologici
Gli standard delle smart card (1) • ISO 7816 Parte I • Definisce le caratteristiche fisiche di una smart card: • dimensioni fisiche • risposte ai raggi X e alla luce UV • resistenza meccanica • caratteristiche dei contatti elettrici • risposte ai campi elettromagnetici e alla elettricità statica Luigi Barella - CNS: aspetti tecnologici
Gli standard delle smart card (2) • ISO 7816 Parte II • Descrive: • le dimensioni dei contatti • il posizionamento dei contatti • il posizionamento dell’embossing (scritte in rilievo) • il posizionamento della banda magnetica • la struttura del chip Luigi Barella - CNS: aspetti tecnologici
Gli standard delle smart card (3) • ISO 7816 Parte III • Descrive: • i protocolli di comunicazione • le funzioni dei vari contatti sulle smart card • le caratteristiche elettriche di base. • struttura di ATR (Answer to Reset) Luigi Barella - CNS: aspetti tecnologici
Gli standard delle smart card (4) • ISO 7816 Parte IV • Comandi per l’intercambiabilità • Descrive: • i comandi, i messaggi e le risposte tra la smart card e il terminale • la struttura logica dei file e dei dati memorizzati • i meccanismi di protezione dell’accesso agli stessi • il secure messaging Luigi Barella - CNS: aspetti tecnologici
Gli standard delle smart card (5) • ISO 7816 Parte V, VI e VII • Procedure di registrazione e sistemi di numerazione • Definizione dei dati • formato dei dati e le regole di costruzione dei dati memorizzati sulla smart card e scambiati con il terminale • Comandi per interrogazioni strutturate • definizione del SCQL (Structured Card Query Language) Luigi Barella - CNS: aspetti tecnologici
Gli standard delle smart card (6) • ISO 7816 Parte VIII, IX e X • Comandi relativi alla sicurezza • Comandi addizionali e attributi di sicurezza • descrive il ciclo di vita della smart card con i relativi attributi di sicurezza • Segnali elettrici e “Answer to Reset”. Luigi Barella - CNS: aspetti tecnologici
Gli altri standard • ISO 7816 Parte VIII, IX e X • Comandi relativi alla sicurezza • Comandi addizionali e attributi di sicurezza • descrive il ciclo di vita della smart card con i relativi attributi di sicurezza • Segnali elettrici e “Answer to Reset”. Luigi Barella - CNS: aspetti tecnologici
Altri tipi di card • Carte con lettori senza contatto (contactless). • Utilizzate per situazioni di “transito” (skipass, trasporti, ecc.). • La distanza carta-lettore può variare da pochi centimetri (carta di prossimità) a qualche metro. Luigi Barella - CNS: aspetti tecnologici
Principali contesti di utilizzo • Telefonia • Carte debito / credito • Salute • Trasporti • Controllo di accesso Luigi Barella - CNS: aspetti tecnologici
Principali contesti di utilizzo nella PA • Carta d’Identità Elettronica (CIE) • Permesso di Soggiorno Elettronico (PSE) • Carta Nazionale dei Servizi (CNS) • Carta multiservizi del dipendente (CMD) • Tessera Sanitaria (TS) • Codice Fiscale (CF) Luigi Barella - CNS: aspetti tecnologici
Sommario • Tecnologia • Standard • File system • Protocollo applicativo • Il processo di autenticazione Luigi Barella - CNS: aspetti tecnologici
Strutture di dati delle smart card • La CNS gestisce due tipi di strutture di dati: files e oggetti. • I files sono organizzati in file system gerarchici; per accedere a un file è necessario selezionarlo. • Gli oggetti sono referenziati da comandi dedicati, non hanno bisogno di essere preventivamente selezionati. Luigi Barella - CNS: aspetti tecnologici
Il file system delle smart card • Il file system della CNS si basa su tre componenti: • la “root” del file system (Master File MF) • le directories (Dedicated Files DF) • i files di dati generici (Elementary Files EF): • struttura “trasparente”: sono visti come una sequenza di bytes (detti anche files binari) • struttura a “record”: sono visti come una sequenza di record identificabili (max 254 record) Luigi Barella - CNS: aspetti tecnologici
Il file system delle smart card • Il Master File è il punto d’ingresso iniziale del file system; dopo ogni reset della carta è sempre l’elemento selezionato. • I Dedicated Files sono simili alle directory dei file system tradizionali. Essi possono contenere altri DF e/o EF. • Gli Elementary Files sono utilizzati per memorizzare dati e l’accesso ad essi è simile a quello dei file system tradizionali. Per accedere a un EF questo deve essere preventivamente selezionato. Luigi Barella - CNS: aspetti tecnologici
Navigazione del file system • Tutti i comandi di gestione dei file agiscono sul “file corrente”. • Dopo ogni reset, il file corrente è il MF: quando viene selezionato un DF (o un EF) questo diventa il file il DF (o l’EF) corrente. • Esiste sempre un DF corrente; questo non è vero per gli EF, in quanto dopo la selezione di un DF, l’EF corrente non è definito. • Quando è selezionato un EF con struttura a record, allora i comandi per gestire i record agiscono sul record corrente. Luigi Barella - CNS: aspetti tecnologici
Sommario • Tecnologia • Standard • File system • Protocollo applicativo • Il processo di autenticazione Luigi Barella - CNS: aspetti tecnologici
Application Protocol Data Unit (APDU) • E’ definito un protocollo che permette di accedere alle funzionalità delle smart card. Luigi Barella - CNS: aspetti tecnologici
Comandi APDU • PUT DATA • Permette la creazione e la gestione di oggetti. • Permette la gestione di attributi dei file. • CREATE FILE • Crea un file, DF o EF, all’interno del DF corrente. Dopo la creazione il file diventa il file corrente • SELECT FILE • Permette la selezione di un file, DF o EF. Luigi Barella - CNS: aspetti tecnologici
Comandi APDU • READ BINARY • Legge i dati contenuti in un EF trasparente. E’ possibile leggere tutti i dati o solo parte di essi. • Il numero di caratteri restituiti non può eccedere 256: se il numero richiesto è maggiore, è necessario invocare più volte la funzione. • UPDATE BINARY • Aggiorna i dati di un EF trasparente. E’ possibile specificarfe l’intervallo di dati da modificare e il nuovo valore. • Il numero di caratteri modificabili non può eccedere 255: se il numero richiesto è maggiore, è necessario invocare più volte la funzione. Luigi Barella - CNS: aspetti tecnologici
Comandi APDU • APPEND RECORD • Crea un nuovo record in un EF con struttura a record. Il record creato diventa il record corrente. • READ RECORD • Legge il contenuto di un record nell’EF con struttura a record selezionato. • UPDATE RECORD • Aggiorna il contenuto di un record nell’EF con struttura a record selezionato. Luigi Barella - CNS: aspetti tecnologici
Comandi APDU • VERIFY • Confronta i dati spediti all’interfaccia con i dati contenuti nella smart card (e.g. PIN) e inizializza i meccanismi di sicurezza in accordo al risultato ottenuto. • CHANGE REFERENCE DATA e CHANGE KEY DATA • Modificano i dati di un oggetto (e.g. PIN). Luigi Barella - CNS: aspetti tecnologici
Comandi APDU • EXTERNAL AUTHENTICATE • Permette alla card di autenticare una entità esterna dopo un GET CHALLENGE. • GET CHALLENGE • Crea e spedisce un numero random. Il numero generato è valido solo per il prossimo EXTERNAL AUTHENTICATE. • Non è necessario invocare un EXTERNAL AUTHENTICATE subito dopo un GET CHALLENGE. • RESET RETRY COUNTER • Inizializza il contatore di errori al numero massimo possibile. • MANAGE SECURITY ENVIRONMENT • Utilizzato per gestire le politiche di sicurezza della card. Luigi Barella - CNS: aspetti tecnologici
Comandi APDU • GENERATE KEY PAIR • Genera una coppia di chiavi. • PSO_DEC • Decifra i dati in ingresso con un chiave. • PSO_ENC • Cifra i dati in ingresso con un chiave. • PSO_CDS • Calcola la firma digitale dei dati in ingresso. Luigi Barella - CNS: aspetti tecnologici
Sommario • Tecnologia • Standard • File system • Protocollo applicativo • Il processo di autenticazione Luigi Barella - CNS: aspetti tecnologici
Emissione di una card • Generazione in locale, internamente alla card, di una coppia di chiavi • Invio della richiesta di certificato (ID della card, chiave pubblica, hash dei dati personali) al gestore del servizio • La richiesta viene firmata dal gestore; questo certificato è rispedito al richiedente e quindi memorizzato sulla card Luigi Barella - CNS: aspetti tecnologici
Identificazione e autenticazione in rete (1) • Il client richiede la connessione con il server del servizio • Il server chiede al client il certificato della carta (C_Carta) • Il client chiede alla CIE C_Carta attraverso i comandi standard select binary e read binary Luigi Barella - CNS: aspetti tecnologici
Identificazione e autenticazione in rete (2) • Il client fornisce al server C_Carta • Il server verifica la validità di C_Carta, estrae Kpub_CIE e genera un challenge che invia al client • Il client esegue la cifratura del challenge: Kpri_CIE(challenge) inviandolo al server. • Il server esegue Kpub_CIE(Kpri_CIE(challenge)) e confronta il challenge decriptato con quello inviato. Se l'esito è OK la carta è valida. Luigi Barella - CNS: aspetti tecnologici