Sperimentazione della carta regionale dei servizi per l'autenticazione su un dominio active directory

1,617 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,617
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
26
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Sperimentazione della carta regionale dei servizi per l'autenticazione su un dominio active directory

  1. 1. UNIVERSITÀ DEGLI STUDI DI TRIESTE ____________________ FACOLTÀ DI INGEGNERIA Laurea in Ingegneria Informatica SPERIMENTAZIONE DELLA CARTA  REGIONALE DEI SERVIZI PER  LAUTENTICAZIONE SU UN DOMINIO  ACTIVE DIRECTORYRelatore: Laureando:Prof. Fulvio Sbroiavacca Andrea Ramani ____________________ Anno Accademico 2009-2010
  2. 2. Indice1 Introduzione..............................................................................................1 1.1 Progetto Carta Regionale dei Servizi (Friuli Venezia Giulia).............1 1.1.1 Cosè la CRS...................................................................................1 1.1.2 Come nasce la CRS.......................................................................1 1.2 Obiettivo ...............................................................................................22 LDAP – Active Directory (Microsoft)...................................................3 2.1 Active Directory....................................................................................3 2.1.1 LDAP.............................................................................................3 2.1.2 Perché usare Active Directory......................................................4 2.1.3 Single­Sign On..............................................................................4 2.1.4 Riassumendo: concetti chiave di Active Directory.......................5 2.2 Autenticazione......................................................................................5 2.2.1 Complessità, non ripudiabilità, identificazione e autorizzazione ................................................................................................................ 6 2.2.2 Fattori di autenticazione..............................................................6 2.2.3 Metodi di autenticazione..............................................................7 2.2.4 Fattori di scelta.............................................................................8 2.2.5 Vulnerabilità.................................................................................9 2.3 Utenti di Active Directory..................................................................10 2.3.1 Primary Domain Controller........................................................103 Autenticazione con Smart Card su dominio Active Directory.....11 3.1 Smart Card.........................................................................................11 3.1.1 Utilizzi.........................................................................................12 3.1.2 Struttura e caratteristiche .........................................................12 3.1.3 Classificazione.............................................................................13 3.1.4 Memory Card...............................................................................14 3.1.5 Microprocessor Smart Card........................................................15 3.1.6 Modalità di lettura......................................................................15 3.2 Integrazione client­server attraverso la Smart  Card.......................16 i
  3. 3. 3.2.1 Smart Card Subsystem...............................................................16 3.2.2 Smart Card Setup Tool...............................................................17 3.2.3 Metodologie di connessione.........................................................17 3.2.4 Interfaccia Smart Card...............................................................18 3.2.5 Resource Manager.......................................................................18 3.3 Identificare lutente............................................................................19 3.3.1 Tipi di autenticazione.................................................................20 3.3.2 Autenticazione ad un dominio Windows....................................204 La Carta Regionale dei Servizi...........................................................22 4.1 La Carta Nazionale dei Servizi..........................................................22 4.1.1 Gli standard CNS........................................................................22 4.2 La Carta Regionale dei Servizi .........................................................26 4.2.1 Finalità........................................................................................26 4.2.2 Struttura e caratteristiche.........................................................27 4.3 I certificati digitali.............................................................................28 4.3.1 I certificati nella CRS.................................................................28 4.4 Autenticazione sul Web......................................................................305 Autenticazione con CRS su Active Directory...................................31 5.1 Specificità dei certificati CRS............................................................31 5.1.1 Lestensione Extensions..............................................................34 5.2 I problemi............................................................................................34 5.3 La soluzione .......................................................................................35 5.4 Casi duso............................................................................................366 Transitività dellautenticazione: da dominio a Web.......................38 6.1 Avvicinandosi al problema.................................................................38 6.1.1 Strumenti....................................................................................39 6.1.2 Prerequisiti..................................................................................39 6.1.3 Passaggi concettuali....................................................................40 6.2 Funzionamento dellapplicazione.......................................................40 6.3 Sviluppo dellapplicazione..................................................................41 6.3.1 web.config....................................................................................41 6.3.2 Default.aspx.cs............................................................................42 6.3.3 Possibili comportamenti.............................................................457 Conclusioni..............................................................................................478 Ringraziamenti.......................................................................................50Bibliografia.................................................................................................51 ii
  4. 4. 1 Introduzione1.1 Progetto   Carta   Regionale   dei   Servizi   (Friuli Venezia Giulia) La Carta Regionale dei Servizi (CRS) è un progetto la cui finalità èquella di realizzare e distribuire ai cittadini un unico strumento perlaccesso ai pubblici servizi sia regionali che nazionali.1.1.1 Cosè la CRS La Carta Regionale dei Servizi è una carta strettamente personale,valida come tessera sanitaria, tessera Europea di Assicurazione malattia eCodice Fiscale.Con essa è, inoltre, possibile usufruire di alcuni servizi digitali offerti dallapubblica amministrazione regionale attraverso Internet. Questi serviziriguardano principalmente la Sanità, gli Enti Locali, la scuola, la fiscalitàlocale e la mobilità.1.1.2 Come nasce la CRS Nel 2004 la Regione Friuli Venezia Giulia firmava con il ministerodellEconomia e Finanze lAccordo di Programma Quadro. In tale accordofigurava anche il progetto SMART, intervento che prevedeva lavviosperimentale della nuova Carta Regionale dei Servizi.Agganciandosi a tale progetto, per evitare duplicazioni di strumenti con lemedesime potenziali finalità, il Presidente della Regione, dintesa conlAgenzia delle Entrate del Friuli Venezia Giulia, propose un adeguamentoagli standard CNS della tessera sanitaria. In questo modo, invece di avere 1
  5. 5. due tessere indipendenti, la CRS e la tessera sanitaria, era possibilemettere a disposizione del cittadino ununica soluzione che svolgesseentrambi i ruoli.In seguito a tale proposta, e con laccordo di Regione, ministerodellEconomia e Finanze, Istituto Poligrafico e Zecca dello Stato, si riuscìad ideare un unico strumento per laccesso a pubblici servizi sia regionaliche nazionali: la Carta Regionale dei Servizi.La realizzazione del progetto è stata possibile grazie alla cooperazionecongiunta del servizio per lE-government della Regione, lAgenziaregionale della Sanità e Insiel.1.2 Obiettivo Lobiettivo del mio progetto, svolto presso lInsiel, è quello di studiarelautenticazione tramite la CRS su di un dominio Active Directory e ditrasporla anche nellambito del Web. Lintento finale è quello di creareunapplicazione Web che permetta di autenticarsi su un server, sfruttandoil meccanismo di Single-Sign On, tramite il certificato digitale presentenella Carta Regionale dei Servizi. 2
  6. 6. 2 LDAP – Active Directory (Microsoft)2.1 Active Directory Active Directory, nome utilizzato da Microsoft per riferirsiallimplementazione della sicurezza in una rete distribuita di computer, èun insieme di servizi di rete, meglio noto come directory service, che sibasa sui concetti di dominio e di directory. Il directory service di ActiveDirectory fornisce uno strato di astrazione fra le risorse e gli utenti:organizza e memorizza informazioni su reti di computer e su risorsecondivise, disponibili tramite la rete, facilitando così, notevolmente, illavoro di monitoraggio dellamministratore del sistema. Taleorganizzazione avviene grazie ad uno dei protocolli utilizzati da ActiveDirectory: il LDAP.2.1.1 LDAP LDAP (Lightweight Directory Access Protocol) è un protocolloapplicativo standard per linterrogazione e la modifica dei servizi didirectory che agisce nello strato appena superiore ai protocolli TCP ed IP;viene implementato in network di tipo IP (Internet Protocol) e si basa sulmodello client-server: la sua funzione principale è quella di abilitarelaccesso ad una directory pre-esistente.Nello specifico, in Active Directory, LDAP viene usato come una base didati che memorizza in forma centralizzata tutte le informazioni di undominio di rete, relativamente ad autenticazioni ed accesso ai servizi. Ilvantaggio più evidente del suo utilizzo è quello di riuscire a mantenere taliinformazioni sincronizzate tra i vari server di autenticazione di accessoalla rete. 3
  7. 7. 2.1.2 Perché usare Active Directory Le reti, cui Active Directory ha accesso, possono variare da una singolainstallazione, con poche centinaia di oggetti, a grandi installazioni, conmilioni di oggetti. Una struttura Active Directory si può definire, dunque,come un framework gerarchico di oggetti: include, infatti, in un unicosistema di monitoraggio, tutte le risorse (stampanti, etc...), tutti i servizi(e-mail, etc...) e tutti gli utenti (account utenti e gruppi). In una rete,quindi, Active Directory fornisce informazioni sugli oggetti, li organizza,controlla gli accessi e ne imposta le security, garantendo così che laccessoad ogni risorsa possa venire effettuato solo dagli utenti che ne hannoeffettivamente il diritto.Inoltre, una delle peculiarità più evidenti ed importanti che rende lutilizzodei servizi di rete di Active Directory particolarmente vantaggioso, è ilmeccanismo di Single-Sign On.2.1.3 Single­Sign On Tramite il Single-Sign On un utente, una volta entrato nel dominio edeffettuato il logon ad esso da una qualsiasi delle macchine di dominio, puòaccedere alle risorse disponibili in rete (condivisioni, mailbox, intranet,etc...) senza dover rieffettuare, fino alla fine della sessione, una nuovaautenticazione. Questa politica facilita di molto la gestione degli utenti. Gliobiettivi sono multipli: • Semplificare la gestione delle password (più grande è il numero delle password che un utente deve gestire, maggiore è la possibilità che, per facilitarne la memorizzazione, utilizzi delle password simili le une alle altre; il livello di sicurezza, in questo modo, si abbassa notevolmente) • Semplificare la gestione degli accessi ai vari servizi • Semplificare la definizione e la gestione delle politiche di sicurezzaQuando si parla di Single-Sign On, esistono tre diversi approcci possibiliattraverso i quali è possibile creare un sistema che si basa sul meccanismodi autenticazione appena descritto: lapproccio centralizzato, lapprocciofederativo e lapproccio cooperativo. 1. Approccio centralizzato Il principio è di disporre di un database globale e centralizzato di tutti gli utenti e di centralizzare allo stesso modo la politica di sicurezza. Questo approccio è destinato principalmente ai servizi 4
  8. 8. che dipendono tutti dalla stessa entità (per esempio allinterno di unazienda). 2. Approccio federativo Con questo approccio, differenti gestori ("federati" tra loro) gestiscono dati di uno stesso utente. Laccesso ad uno dei sistemi federati permette automaticamente laccesso a tutti gli altri sistemi. Questo approccio è stato sviluppato per rispondere ad un bisogno di gestione decentralizzata degli utenti: ogni gestore federato mantiene il controllo della propria politica di sicurezza. 3. Approccio cooperativo Lapproccio cooperativo parte dal principio che ciascun utente dipenda, per ciascun servizio, da uno solo dei gestori cooperanti. In questa maniera ciascun gestore gestisce in modo indipendente la propria politica di sicurezza. Lapproccio cooperativo risponde ai bisogni di strutture istituzionali nelle quali gli utenti sono dipendenti da unentità (università, laboratori di ricerca, amministrazioni, etc...).2.1.4 Riassumendo: concetti chiave di Active Directory In conclusione, si può dire che Active Directory si basa su tre concettichiave: LDAP (gestione), le reti (condivisibilità) e Single-Sign On(sicurezza). Inoltre, fra le altre caratteristiche vi è piena integrazione fraActive Directory e DNS in quanto, entrambi, condividono la stessastruttura gerarchica e, quindi, gli stessi nomi.2.2 Autenticazione Col termine autenticazione si indica, nel caso più frequente, un metodoattraverso il quale si prova lidentità di qualcuno, allo scopo di consentirnelaccesso a risorse di qualsiasi genere. Le tecniche di autenticazione sonoestremamente differenziate, sia come metodo che come efficacia, infunzione di diversi fattori. In termini semplici, si può dire che una tecnicadi autenticazione è efficace quando garantisce, con ottima probabilità, cheil richiedente laccesso sia effettivamente il titolare del diritto. Uno deiconcetti fondamentali che si fanno strada quando si parla di autenticazioneè la complessità della tecnica di autenticazione. 5
  9. 9. 2.2.1 Complessità,   non   ripudiabilità,  identificazione   e   autorizzazione La complessità dipende, essenzialmente, dalla criticitàdellidentificazione, dai fattori che la possono limitare, e dal valore delleinformazioni cui si garantisce laccesso dopo loperazione di autenticazione:maggiore è il valore delle informazioni, o delle risorse in generale, piùcomplessa sarà la tecnica di autenticazione.Con laumentare della complessità della tecnica di autenticazione si fastrada un altro concetto fondamentale, oltre a quello dellidentità: la nonripudiabilità. In altri termini, se la tecnica di autenticazione èsufficientemente sicura, allora, oltre a garantire lidentità di colui cheaccede, impedisce a chi ha effettuato lautenticazione di poter negare diaver avuto accesso alle risorse che lautenticazione gli garantiva. Perquanto la tecnica di autenticazione possa essere complessa, nessun sistemadi autenticazione può dirsi realmente efficace se non con la strettacollaborazione dellutente: è a cura dellutente stesso ricordarsi leventualepassword, conservare la Smart Card o i dispositivi di memorizzazione enon comunicare ad altri gli estremi del proprio sistema di autenticazione,etc...Lautenticazione non va confusa con lidentificazione che determina se unutente è conosciuto o meno dal sistema, o con lautorizzazione con cui siconferisce allutente il diritto di accedere a specifiche risorse o a servizi.2.2.2 Fattori di autenticazione Un buon processo di autenticazione ricorre, normalmente, ai seguentitre fattori chiave: 1. Qualcosa che solo lutente conosce Ad esempio, il cognome della nonna da nubile o una parola chiave. 2. Qualcosa che solo lutente possiede Ad esempio, una tessera di riconoscimento o una scheda magnetica o una chiave hardware. 3. Qualcosa che solo lutente è Ad esempio, un aspetto fisiologico o comportamentale; si parla, in questo caso, di biometria. 6
  10. 10. 2.2.3 Metodi di autenticazione Da un punto di vista squisitamente pratico, i metodi maggiormenteutilizzati per lautenticazione in ambito informatico si possono sintetizzarenei tre seguenti: 1. Username e password statiche o dinamiche Lutilizzo di username e password statiche, ossia che non vengono modificate in tempo reale durante il processo di autenticazione, è quello più diffuso ed è sostanzialmente il più semplice da implementare. In questo caso, lutente deve ricordare il proprio username e la password ad esso associato (che, ovviamente, sono anche memorizzate sul sistema di accesso). Tale metodo, se non è associato ad altri meccanismi, può risultare piuttosto debole in quanto si presta a diversi tipi di attacchi. Attacchi che però possono essere ridotti in misura considerevole utilizzando una password sicura (lunghezza estesa ed utilizzo di caratteri speciali oltre a quelli alfanumerici) e modificandola periodicamente. Cè anche da sottolineare che, con le opportune precauzioni e unitamente al tracciamento del computer dal quale ci si autentica, il metodo basato su password statiche è sufficiente per un gran numero di casi pratici, a meno di non pretendere la validità legale inoppugnabile per lintero processo di autenticazione. In questo caso può essere necessario ricorrere a sistemi che, pur basandosi su metodi statici, coinvolgano un certificato digitale conforme allattuale normativa (documento elettronico che attesta, con una firma digitale, lassociazione tra una chiave pubblica e lidentità di un soggetto). 2. Dispositivi di memorizzazione di chiavi o certificati Le password dinamiche, invece, sono generate automaticamente mediante sistemi automatici: la generazione avviene soltanto alloccorrenza. Inoltre, la validità di tali “password” è estremamente limitata nel tempo. Non è, in senso stretto, un sistema di autenticazione rivolto allindividuo, ma può essere utilizzato congiuntamente al sistema delle password statiche per realizzare sistemi estremamente robusti di autenticazione e di trasmissione. 3. Dispositivi biometrici In questa categoria rientrano i meccanismi di autenticazione basati su sistemi fisici, come le Smart Card, le carte magnetiche, le chiavi di memoria, etc... Su tali dispositivi è memorizzato un certificato digitale che garantisce, unitamente a una password statica, lidentificazione del possessore (il meccanismo, se si vuole, è analogo a quello del bancomat ma molto più robusto in quanto il PIN, ossia 7
  11. 11. la password statica, può essere modificato dal possessore e, inoltre, può essere associato ad un certificato per altri scopi, tra cui la crittografica del canale di comunicazione). Si tratta, però, di un sistema più costoso e che richiede il possesso costante di un dispositivo fisico che, in caso di smarrimento, deve essere rigenerato provocando linterruzione del servizio per un periodo di tempo non sempre accettabile. In questa categoria rientrano i dispositivi di riconoscimento automatico della persona sulla base di alcune caratteristiche fisiche, come le impronte digitali, limpronta retinica o quella vocale, etc... Sono nati per garantire il massimo livello di sicurezza nellautenticazione individuale, a partire da caratteristiche singolari della persona fisica. Purtroppo, i sistemi di riconoscimento sono soggetti ad errori statistici che non possono essere eliminati. Inoltre, le caratteristiche fisiche possono essere imitate in qualche modo. Ad ogni modo, allo stato attuale, tali sistemi hanno senso solo in situazioni di alta richiesta di sicurezza nellidentificazione della persona fisica “a vista” e sono sempre associati a sistemi ulteriori di controllo e di emergenza. Sono assolutamente da scartare in caso di autenticazione remota, non assistita, e implicano un costo notevole per la loro implementazione.2.2.4 Fattori di scelta Per poter scegliere quale tipologia di dispositivo di autenticazioneutilizzare bisogna tener conto, fondamentalmente, di alcuni aspetti:accuratezza, costi, invasività, identificazione o verifica. 1. Accuratezza Un sistema viene ritenuto tanto più accurato quanto maggiormente garantisce lefficienza nellautenticazione. Ad esempio, mentre un sistema basato su password testuali fornisce il massimo di accuratezza nellautenticazione (se si fornisce la password esatta) un sistema biometrico può essere, a causa di problemi del sensore o di uno stato di “alterazione” biometrica dellutente, meno accurato. 2. Costi Maggiore è laffidabilità e la precisione del sistema, maggiori sono i costi necessari per lacquisto dei dispositivi di autenticazione. Inoltre, per quelle specifiche applicazioni nelle quali non è possibile far ricorso a dispositivi di grandi dimensioni, tanto maggiore è la miniaturizzazione del dispositivo, tanto più onerosi saranno i costi per lacquisto del dispositivo stesso. Quindi, è importante valutare 8
  12. 12. un buon compromesso tra affidabilità e prestazioni del sistema, alla luce dei costi delle diverse soluzioni. 3. Invasività Si parla di invasività solo ed esclusivamente nellambito dellautenticazione mediante parametri biometrici. Infatti, la lettura di parametri biometrici da parte di una macchina richiede allutente che si vuole autenticare comportamenti che possono essere considerati invasivi. La scansione oculare o il riconoscimento mediante impronta digitale implicano il trattamento di dati che possono essere considerati sensibili: in questo caso, si rischia, addirittura, di andare a violare la Privacy dellindividuo (ad esempio, difficilmente i clienti di una banca accetterebbero un sistema di bancomat che richieda loro di avvicinare un occhio ad uno scanner di retina o di iride. Un bancomat di questo tipo difficilmente potrebbe avere successo). 4. Identificazione o verifica Sono due meccanismi di controllo che vengono usati durante il processo di autenticazione. • Lidentificazione è un processo di tipo “uno-a-molti”: confronta i dati dellautenticazione (siano essi una password o unimpronta biometrica) con moltissimi altri presenti in un database, al fine di stabilire unidentità • La verifica è un processo di tipo “uno-a-uno”: confronta i dati di autenticazione con i dati che sono memorizzati, per esempio, su una Smart Card. Questo processo è molto più veloce, dato che non serve fare ricerche complesse su una base di dati2.2.5 Vulnerabilità Tutti i sistemi hanno un certo livello di vulnerabilità: le password, leimmagini delle impronte digitali e tutti gli altri dati che viaggiano su unarete possono essere intercettati e, come tali, copiati, alterati e, in unaparola, violati. Inoltre è possibile “attaccare” un sistema con vari metodi, alfine di scoprire le password in esso memorizzate. Cè, poi, il rischiodellaccesso fisico alle macchine: occorre sempre considerare il caso chelaccesso fisico da parte di terzi alla propria macchina o, peggio, al server diautenticazione, possa inficiare lintera infrastruttura. 9
  13. 13. 2.3 Utenti di Active Directory In una rete di computer si hanno due fondamentali possibilità dioperare: 1. In gruppo di lavoro Ogni computer ha la stessa importanza e gli utenti eseguono un logon locale potendo, così, condividere risorse e cartelle. 2. In dominio di rete In questa configurazione cè almeno un computer, denominato server, che svolge attività speciali.Mentre in un gruppo di lavoro non esistono vere e proprie distinzioni fra levarie persone che utilizzano i PC della rete e si possono considerare,quindi, tutti degli utenti di pari livello, in un dominio di rete, un suoutente è solo chi è abilitato ad accedere ai servizi del dominio stesso. Ilcompito di gestire gli utenti di un dominio è del PDC.2.3.1 Primary Domain Controller Il PDC (Primary Domain Controller) è un server che ha il particolareonere di attribuire gli accessi al dominio. Ogni utente appartenente ad uncerto dominio, può accedere ad un qualunque PC della rete (nella propriaazienda), svolgere il proprio lavoro e salvarlo in locale sulla macchina sucui sta lavorando. Ora lutente, sia che il PC a cui si collegherà la prossimavolta sia sempre lo stesso, sia che ne usi uno diverso (appartenente semprealla medesima rete aziendale) avrà la possibilità, attraversolautenticazione al suo dominio, di poter accedere ai propri dati salvati eriuscire, così, a continuare lattività iniziata nella sessione precedente.Lidea, quindi, è quella di poter usufruire di un dominio di rete per avereaccesso univoco e protetto verso le risorse. In questa situazione il PDCgestisce gli accessi determinando le autorizzazioni per operare in rete.Nello specifico, in una rete aziendale, Active Directory si pone lobiettivo dimemorizzare le informazioni di autorizzazione e autenticazione richiesteper assicurare che solo gli utenti appropriati accedano alle risorse di rete. 10
  14. 14. 3 Autenticazione  con   Smart   Card   su   dominio Active Directory3.1 Smart Card La Smart Card è un dispositivo hardware delle dimensioni di una cartadi credito, che possiede potenzialità di elaborazione e memorizzazione datiad alta sicurezza. É unevoluzione della tradizionale carta magnetica ed ècostituita da un supporto di plastica nel quale è incastonato un microchip,o Circuito Integrato (IC). Questultimo fornisce funzionalità di calcolo ememorizzazione dati maggiori rispetto a quelli permessi dalla tecnologiamagnetica e può essere sia una semplice memoria sia un microprocessore. Figura 3.1: Struttura fisica di una Smart Card 11
  15. 15. 3.1.1 Utilizzi Le Smart Card rendono più convenienti e sicure moltissime operazioni:offrono sicurezza nei sistemi a scambio virtuale di dati, sia da una parteche dall’altra della rete; proteggono da una serie di minacce per lasicurezza (dall’incauta memorizzazione di password utenti alluso disistemi sofisticati di attacco); possono servire come accesso al sistema direte, a depositi bancari o ad altri tipi di dati. Generalmente, quindi, glistandard di sicurezza ed affidabilità dei microchip offrono la possibilità diutilizzare le Smart Card in una grande varietà di campi, quali ad esempio: • Affidabilità e salvataggio valori • Informazioni di sicurezza • Commercio elettronico • Economia personale • Assistenza sanitaria • Telecomunicazione e sicurezza sociale su rete • Identificativi e accesso all’Università3.1.2 Struttura e caratteristiche  I microchip che si trovano sulle Smart Card possono essere moltodiversi fra loro e, sebbene la struttura sia solitamente la stessa, le loroprestazioni possono variare considerevolmente; tutto dipende dallutilizzodella Smart Card e dal lavoro che essa è chiamata ad adempiere (adesempio, è inutile che si usino Smart Card con una memoria RAM capienteo con una CPU se il loro utilizzo resta, poi, limitato a quello di schedetelefoniche). Normalmente, la struttura e la composizione di una SmartCard è di questo tipo: 1. Parte plastica Tipicamente resistente, elastica ed economica; fatta di PVC, ABS, Melinex. 2. CPU A 8, 16 o 32 bit; con clock a 5Mhz. 3. ROM (Read Only Memory) Da 2k a 64k; contiene il sistema operativo e programmi fissi. Dopo la scrittura non è modificabile. 12
  16. 16. 4. PROM (Programmable Read Only Memory) A 32 o 64 byte; contiene il numero seriale della Smart Card. 5. EEPROM (Electrically Erasable Read Only Memory) Circa 128k; memorizza informazioni variabili; tipicamente contiene le applicazioni e i dati. 6. RAM (Read Only Memory) Da 128 a 1024 byte utilizzata per memorizzazioni temporanee; si cancella quando si sfila la Smart Card (power off). 7. Porta di I/O Utilizzata per linterscambio fisico delle informazioni.3.1.3 Classificazione Le Smart Card possono essere classificate in base a diversi criteri.Sulla base delle potenzialità e delle caratteristiche del microchip, sidistinguono Smart Card a sola memoria (Memory Card) e Smart Card amicroprocessore (Microprocessor Card). Invece, in base al tipo diinterfaccia di collegamento, si distinguono Smart Card con Contattiera(Contact), Smart Card con antenna (Contactless Smart Card) e SmartCard con antenna e contattiera (Dual Interface Card). Le caratteristichedel microchip determinano sia il costo della Smart Card, sia lambito diapplicazione. Le caratteristiche del supporto di plastica e dellinterfaccia dicomunicazione determinano invece il ciclo di vita della Smart Card. Figura 3.2: Struttura gerarchica, diversificazione delle Smart Card 13
  17. 17. 3.1.4 Memory Card Le Smart Card a sola memoria (o Memory Card) tecnologicamente piùsemplici, sono più economiche ma offrono un livello di sicurezza più bassorispetto alle Smart Card a microprocessore. Infatti, la Memory Card haunicamente funzionalità di memorizzazione sicura dei dati, non ha poteredi elaborazione e non può modificare dinamicamente i file. Essa comunicacon i lettori attraverso protocolli sincroni. Il microchip contiene unacomponente di memoria permanente, nella quale si può leggere e scrivereattraverso un insieme di funzioni cablate in un circuito logico pre-programmato, stampato nel microchip durante la fase di produzione. Ilcircuito logico, a sua volta, comprende un meccanismo di protezione chesalvaguarda laccesso ai dati memorizzati, basandosi tipicamente su uninsieme di permessi di accesso. Di solito, le Memory Card offrono da 1 a 4Kbyte di memoria e sono usate principalmente per applicazioni semplici(carte prepagate, carte per la raccolta punti, etc... in questi casi ilmeccanismo di protezione consente di evitare lincremento fraudolento delcredito). I comandi per la lettura e scrittura in memoria sono tipicamentesequenze di byte incapsulate in un protocollo seriale. Il vantaggio delleMemory Card sta nel loro basso costo dovuto alla semplicità dellatecnologia adottata. Tuttavia, per applicazioni più complesse, cherichiedono un livello di sicurezza maggiore, si preferisce usare Smart Carda microprocessore.Ci sono principalmente tre tipi di Memory Card: 1. Straight Memory Card Schede che immagazzinano solo dati e non hanno capacità di elaborazione. Non possono identificarsi, per cui il nostro PC deve sapere che tipo di scheda è stata inserita nel lettore. 2. Protected / Segmented Memory Card Hanno incorporata la logica per controllare laccesso alla memoria della scheda stessa. Alcune di queste schede possono essere configurate per restringere l’accesso sia in lettura che in scrittura. Questo, di solito, è fatto attraverso una password o chiave di sistema. 3. Stored Value Memory Card Queste schede sono progettate per lo specifico scopo di immagazzinare valori o scatti (telefonici). Le schede sono usa e getta o ricaricabili. La maggior parte di queste schede incorpora misure di sicurezza permanenti già al momento della loro produzione (ad esempio, una password inserita direttamente nel chip dal fabbricante). 14
  18. 18. 3.1.5 Microprocessor Smart Card Per quanto riguarda la Smart Card a microprocessore, grazie allapotenza di calcolo fornita dal microprocessore incluso nel microchip, essapuò essere paragonata ad un piccolo computer portatile, altamenteaffidabile ed inattaccabile, in grado di elaborare e memorizzareinformazioni, salvaguardandone la riservatezza. Questo tipo di SmartCard possiede un vero e proprio sistema operativo di scheda (COS), che larende idonea ad elaborare informazioni in maniera indipendente. Inparticolare, il sistema operativo si occupa della gestione interna dellamemoria e fornisce varie funzioni, tra le quali: lettura e scrittura inmemoria, funzioni di programmazione dei permessi di accesso, funzionicrittografiche, etc... La programmabilità del microchip, conseguente allapresenza di un sistema operativo, consente di ottimizzare e personalizzarela Smart Card per una particolare applicazione, o di integrare sullo stessodispositivo più applicazioni (eventualmente interagenti tra loro). Lunicolimite a tale flessibilità è rappresentato dalla disponibilità di risorse dimemoria. Il set di comandi di una Smart Card a microprocessore è moltopiù vasto di quello di una Smart Card a sola memoria. Logicamente,aumentando la potenza di calcolo, lievitano anche i costi. Oltre ai comandidi lettura e scrittura, le Smart Card a microprocessore forniscono comandidi gestione dellaccesso alla memoria (ad esempio, comandi di verifica delPIN) e comandi di gestione del file system interno; tali comandi vengonochiamati APDU (Application Protocol Data Unit). Grazie alla capacità dimemorizzare informazioni in maniera estremamente sicura ed inviolabile ealla possibilità di elaborare dati al suo interno, la Smart Card amicroprocessore si propone, in primo luogo, come strumento informatico diidentificazione sicura e certificata degli individui e, in secondo luogo, comedispositivo di elaborazione a supporto della crittografia, in grado dimemorizzare e proteggere le chiavi crittografiche private e di eseguire iprincipali algoritmi crittografici.3.1.6 Modalità di lettura Possiamo distinguere due diverse modalità di lettura delle SmartCard: Contact e Contactless. La differenza sta nel tipo di interfaccia dicollegamento esistente tra il microchip e il mondo esterno: le prime hannouna contattiera mediante la quale ricevono lalimentazione e, una voltainserite in un apposito dispositivo terminale, detto lettore di Smart Card,dialogano con lesterno; le seconde hanno unantenna che reagisce allapresenza di un campo elettromagnetico emesso da uno speciale dispositivodi lettura/scrittura nella banda delle radio-frequenze (con tecnologiaRFID), consentendo così al microchip di scambiare dati con lesterno 15
  19. 19. (purché lantenna si trovi entro una distanza minima dal dispositivo dilettura/scrittura). Le Smart Card Dual Interface, invece, offrono entrambele interfacce (Contact e Contacless) e pertanto la comunicazione con ilmicrochip può avvenire indifferentemente attraverso uno o laltro metodo.Tale caratteristica consente di integrare sulla stessa Smart Card siaapplicazioni complesse, come quelle di firma digitale tipiche delle SmartCard contact, sia applicazioni più semplici e veloci, come quelle di controllodellaccesso ad aree riservate, che richiedono esclusivamente accessi allamemoria wireless.3.2 Integrazione   client­server  attraverso  la  Smart   Card Per poter utilizzare una Smart Card, e, quindi, rendere attivalintegrazione client-server tramite Smart Card, è necessario possedere unlettore: ununità hardware che, per funzionare, deve essere collegata econfigurata direttamente con un PC. I lettori di Smart Card vengonocontrollati mediante i driver e sono inseriti e rimossi dal sistemaattraverso il meccanismo di “Plug and Play”, o tramite lutilizzo delPannello di Controllo. Una volta collegato il lettore al PC, un driver diperiferica specifico associa le funzionalità del lettore ai servizi da essoofferti. Così, essi diventano fruibili allutente, grazie allintegrazione che sicrea fra il sistema operativo Windows e linfrastruttura della Smart Card:il driver del lettore comunica linserimento e la rimozione della Smart Cardal gestore di risorse e, quindi, rende disponibili le funzioni dicomunicazione delle informazioni da e verso la Smart Card stessa.3.2.1 Smart Card Subsystem Una volta che il lettore di Smart Card è stato collegato al PC ericonosciuto dal sistema operativo, entra in gioco lo Smart CardSubsystem: il suo compito è quello di provvedere alla creazione di uncollegamento tra il lettore e le applicazioni che lo utilizzano (lo Smart CardSubsystem può funzionare solamente se il lettore è già statopreventivamente riconosciuto). A seconda della tipologia del dispositivo edel tipo di servizi offerti, i lettori di Smart Card possono essere suddivisi incategorie, o gruppi logici, chiamati Reader Groups. Questi gruppi possonoessere definiti di default dal Smart Card Subsystem, oppure, allo stessomodo, venire scelti sia dagli amministratori che dagli utenti del sistema. Aquesto punto il sistema operativo è pronto e resta in attesadellinserimento della Smart Card nel lettore. Avvenuto ciò, la procedura di 16
  20. 20. riconoscimento fra la card ed il sistema avviene, di solito, attraverso unoSmart Card Setup Tool, fornito dal produttore del lettore.3.2.2 Smart Card Setup Tool Il Setup Tool deve fornire le seguenti informazioni sulla card: • La sua ATR String (una sequenza di byte ritornata dalla Smart Card quando viene accesa. Questi byte vengono usati per far identificare la card nel sistema) • Una lista di Smart Card interface supportate dalla card (COM, etc...) • Un nome per la card, utile per far identificare la card allutente (altresì, lutente può utilizzare per il riconoscimento direttamente il Setup Tool) • Il primary service provider associato alla card (opzionale), usato per poter accedere alla card direttamente attraverso linterfaccia (COM, etc...)3.2.3 Metodologie di connessione Una volta identificata la card, lo Smart Card Subsystem utilizzadiversi metodi per connettersi ad essa. Principalmente, ciò avvieneattraverso luso di unapplicazione o di un service provider: • Unapplicazione può usare SCardConnect per connettersi ad una card presente in un lettore specificato (la funzione SCardConnect stabilisce una connessione, usando uno specifico Resource Manager Context, fra lapplicazione chiamante e una Smart Card contenuta in uno specifico lettore. Se non trova nessuna card viene restituito un errore). Questo è il metodo più semplice per stabilire una comunicazione con una Smart Card • Unapplicazione può ricercare una specifica Smart Card dentro ad un determinato insieme di lettori. Lapplicazione identifica la card dal suo nome, e specifica una lista di lettori nei quali si potrebbe trovare. Il Resource Manager ricerca la lista di lettori per ciascuna card attraverso una ATR String che corrisponda al suo nome, e trasferisce linformazione allapplicazione. Lo Smart Card Subsystem non visualizza mai uninterfaccia nè interagisce con la card prima di aver ottenuto la ATR string 17
  21. 21. • Unapplicazione può richiedere una lista di card che abbiano le specifiche tecniche adatte a supportare un determinato insieme di interfacce. Successivamente, lapplicazione può usare la lista di lettori del caso precedente. Questo permette allapplicazione di connettersi alle card in base alle loro capacità, senza considerare i loro nomi3.2.4 Interfaccia Smart Card Una volta che la Smart Card è connessa e viene riconosciuta dalsistema, si presenta allutente unapposita interfaccia; linterfaccia SmartCard è composta da un predefinito insieme di servizi fruibili direttamentedallutente (prestabiliti a priori dallazienda emettitrice e già disponibilidentro la Smart Card stessa), dai protocolli necessari per invocare i servizie da qualunque oggetto riguardante il contesto e il funzionamento deiservizi stessi. Ciascuna interfaccia di Smart Card è identificata da unGUID (Globally Unique Identifier, identificatore unico globale), un numeropseudo-casuale usato per poter distinguere i vari oggetti che lacompongono. Utilizzando un determinato identificatore GUIDunapplicazione può ricercare, quindi, una particolare interfaccia(combinazione interfaccia grafica, protocolli, servizi - sempre secompatibile con la Smart Card in questione). La sua implementazione,però, potrebbe variare a seconda della Smart Card utilizzata: ogni GUID,in base alla card che si sta utilizzando, può avere diversi tipi diimplementazione; essi, però, non influiscono in alcun modo sullinterazionefra lapplicazone e la Smart Card. Linsieme di interfacce supportate dauna certa Smart Card viene definito dal sistema dopo aver inserito lastessa nellapposito lettore (ad esempio, se una Smart Card ha comeprimary service provider uninterfaccia di tipo COM, i servizi della cartastessa diventano fruibili in una grande varietà di ambienti diprogrammazione, inclusi Java e lambiente di sviluppo Microsoft VisualBasic).3.2.5 Resource Manager Dopo che è stata scelta linterfaccia, i servizi offerti dalla Smart Cardvengono resi disponibili al sistema tramite il gestore di risorse, o ResourceManager, della Smart Card; il gestore viene riconosciuto dal sistemaoperativo e, poi, viene eseguito come servizio attendibile (trusted). Tutte lerichieste di accesso con Smart Card vengono indirizzate, mediante ilgestore di risorse, al lettore che contiene la card. Pertanto, il gestore di 18
  22. 22. risorse è responsabile della gestione e del controllo dellaccesso di tutte leapplicazioni a qualsiasi Smart Card, indipendentemente dal lettore in cuivenga inserita. In pratica, il Resource Manager rende disponibile, ad unadeterminata applicazione, una connessione virtuale diretta alla SmartCard richiesta. Si può dire, dunque, che lo Smart Card Resource Managergestisce laccesso ai lettori e alle Smart Card. Per poterlo fare, esso utilizzale seguenti funzioni: • Identifica e tiene traccia delle risorse • Alloca i lettori e le risorse attraverso luso di più applicazioni • Supporta lo spostamento delle risorse basilari (primitives) per accedere ai servizi disponibili su una determinata card Nota: questo è un punto importante perché le card correnti sono dispositivi single-threaded (un processo alla volta) che spesso richiedono lesecuzione di più comandi per completare una singola operazione. La transazione permette che comandi multipli possano venire eseguiti senza interruzione, assicurando che linformazione di stato intermedia non sia corrottaNel caso siano presenti più lettori contemporaneamente ed unapplicazionecerchi una card, lo Smart Card Subsystem fornisce una lista di nomi dilettori, conosciuti dal sistema, in cui guardare. Per ciascun lettore nellalista, il Resource Manager dà le seguenti informazioni: • Se il lettore è disponibile per essere usato da questa applicazione • Se cè una card inserita in questo lettore, e, se è così, qual è la sua ATR string • Se la ATR string della card corrisponde ad una qualunque delle ATR string delle card richiesteLapplicazione, quindi, usa le informazioni che vengono restituite per poterapplicare ulteriori filtri alle card, oppure per suggerire allutente discegliere la card desiderata.3.3 Identificare lutente Nel momento in cui la Smart Card viene inserita nel lettore ed èriconosciuta dal sistema, si pone il problema dellautenticazione.Lautenticazione tramite Smart Card rientra nel fattore “qualcosa che sololutente possiede”; principalmente la card opera il riconoscimento traSmart Card e mondo esterno. 19
  23. 23. 3.3.1 Tipi di autenticazione Lo standard ISO definisce tre tipi di autenticazione, in base a chieffettivamente effettua la verifica dell’identità (la card, il mondo esterno oentrambi): 1. Interna Verifica dellidentità della card da parte del terminale. 2. Esterna Verifica dellidentità del terminale da parte del mondo esterno. 3. Reciproca Sia interna che esterna; verifica dellidentità della card da parte del terminale e verifica dellidentità del terminale da parte del mondo esterno.Il principio generale su cui si basa lautenticazione è il seguente: i duesoggetti o subjects si scambiano le proprie chiavi pubbliche e delle semi-chiavi casuali, crittografate tramite la propria chiave privata e valide solonellambito di quella determinata sessione (autenticazione dinamica);ognuno dei due subject, dopo aver verificato lidentità dellaltro, unisce ledue semi-chiavi formando, così, ununica chiave (conosciuta solo dai duesoggetti); la chiave viene, poi, utilizzata per crittografare il trafficoscambiato dai due soggetti.3.3.2 Autenticazione ad un dominio Windows Parlando di autenticazione su un sistema operativo Microsoft, unaSmart Card può autenticarsi ad un dominio Windows (da Windows 2000 inpoi) in tre modi: 1. Logon interattivo L’utente, inserendo il PIN, si autentica alla macchina utilizzando la Smart Card. Dopo che l’utente inserisce il PIN nella finestra di logon, il sistema operativo inizia una sequenza di azioni per determinare se l’utente può essere identificato e autenticato. 2. Autenticazione client In generale, lautenticazione client implica lidentificazione e la convalida di un client ad un server per stabilire un canale di comunicazione protetto. In genere, vengono utilizzati protocolli 20
  24. 24. protetti quali SSL (Secure Sockets Layer) o TLS (Transport Layer Security), di solito insieme ad un certificato con chiave pubblica attendibile, che viene fornito dal client. TLS e SSL sono protocolli crittografici, adottati per garantire la sicurezza delle transazioni on-line, che permettono una comunicazione sicura su reti TCP/IP attraverso un processo di cifratura a livello di trasporto TCP/UDP; impediscono la manomissione, la falsificazione e lintercettazione dei dati e ne garantiscono lintegrità. Grazie allimpiego del SSL, infatti, si abilitano due fondamentali servizi di sicurezza: a) Secure channel Tutti i dati trasferiti tra il sito Web e lutente finale sono cifrati. b) Server authentication Lutente può verificare lidentità ed autenticità del sito Web al quale si è collegato. La sessione protetta viene stabilita utilizzando lautenticazione con chiave pubblica con scambio di chiavi, per ricavare una chiave di sessione univoca che può essere, quindi, adoperata per garantire lintegrità e la riservatezza dei dati durante la sessione. La Smart Card è utilizzata durante la generazione di una sessione sicura con SSL o TLS: il ruolo della Smart Card nell’autenticazione client è quello di firmare una parte del protocollo durante la sessione iniziale di negoziazione SSL; la chiave privata, corrispondente al certificato a chiave pubblica, è memorizzata sulla Smart Card e quindi il metodo di autenticazione è “forte”. L’operazione che coinvolge la chiave privata è fatta sulla card: in tal modo la chiave privata non è mai esposta al computer host o alla rete. Quindi nellautenticazione tramite Smart Card si migliora il processo di autenticazione con chiave pubblica e ciò avviene poiché la card stessa viene utilizzata come archivio protetto della chiave privata e, allo stesso tempo, anche come motore crittografico per lesecuzione di una firma digitale o di uno scambio di chiavi.3. Logon remoto Utilizza certificati a chiave pubblica tramite TLS per autenticare uno user remoto ad un account memorizzato in Active Directory. Windows 2000 include un modulo incorporato per Smart Card che serve ad abilitare lautenticazione forte per utenti remoti; ciò avviene tramite luso di protocolli ad autenticazione reciproca: il client ed il server devono entrambi dimostrare le proprie identità. Se il server a cui si è connessi non fornisce alcuna prova della propria identità, la connessione verrà terminata. 21
  25. 25. 4 La Carta Regionale dei Servizi4.1 La Carta Nazionale dei Servizi La Carta Nazionale dei Servizi (CNS) è un documento informatico,rilasciato da una Pubblica Amministrazione, con la finalità di identificarein rete il titolare della carta. Utilizza una Smart Card a microprocessore ingrado di registrare in modo protetto le informazioni necessarie perl’autenticazione in rete. La CNS può venire emessa da tutte leamministrazioni purché si attengano alle restrizioni indicate dal decretointerministeriale siglato (fra il Ministero dellInterno, il Ministero perlInnovazione e le Tecnologie e il Ministero dellEconomia e delle Finanze)il 9 dicembre 2004 sulle regole tecniche e di sicurezza per la diffusione elutilizzo della CNS.4.1.1 Gli standard CNS Per quanto riguarda la struttura del supporto fisico, la CNS nonpresenta particolari restrizioni. Va comunque rilevato che devono esserefatti salvi i vincoli imposti dagli standard internazionali sulle Smart Card(dimensione, posizionamento chip e banda magnetica, struttura antenna,etc...). A proposito del layout, sulla carta devono essere presenti la scritta“Carta Nazionale dei Servizi” ed il nome della Pubblica Amministrazioneche l’ha emessa. Inoltre i dati da stampare sulla CNS e l’eventuale loromemorizzazione sul microchip sono decisi e disposti dall’Ente emettitoreche la rilascia: lEnte emettitore è, in generale, la PubblicaAmministrazione che rilascia la CNS e ne garantisce la corretta gestionedel ciclo di vita. Sulla CNS non devono essere presenti dei dati utilizzabiliin alcun modo per il riconoscimento a vista del titolare, come ad esempio lafotografia.A livello strutturale il microprocessore deve rispettare le specifiche 22
  26. 26. pubblicate sul sito del Centro Nazionale per l’Informatica nella PubblicaAmministrazione (CNIPA) e sul sito della Carta d’Identità Elettronica(CIE), in conformità agli standard ISO 7816 e 14443: viene utilizzata latecnologia CMOS 0,18μ, una CPU da 24 bit, una frequenza di clock esternada 1 a 10 Mhz, 500000 cicli di lettura/scrittura (minimo), 160KB di ROM e72 KB di EEPROM. Figura 4.1: Organizzazione del File System della carta CNS, in base alle direttive del CNIPALa struttura dei dati registrati nella memoria riscrivibile (EEPROM) del 23
  27. 27. microcircuito può essere descritta dalla tabella 4.1:Legenda • Fornito da: indica il soggetto che fornisce l’informazione (proprietario del dato) • Predisposto da: indica il soggetto responsabile della predisposizione della struttura nel File System della carta destinata a contenere il dato • Scritto da: indica il soggetto responsabile dell’inserimento del dato nella CNS.ELEMENTO FORNITO PREDISPOSTO SCRITTO DA DESCRIZIONE DA DAMF - Produttore - È il Master File della struttura di memorizzazione. Corrisponde alla directory radice di un ordinario sistema operativoDF0 - Produttore - Dedicated File (directory) dove vengono memorizzate le informazioni prodotte durante la fase di inizializzazione della cartaDF1 - Produttore - Dedicated File (directory) dove vengono memorizzate le informazioni raccolte durante la fase di personalizzazione della cartaDF2 - Produttore/ - Dedicated File (directory) dove Ente Emettitore vengono installati i servizi che necessitano, per il loro funzionamento, di una struttura dati riservata nella memoria riscrivibile (EEPROM) del microcircuitoPIN Ente Ente Emettitore Ente Emettitore È il PIN utente richiesto per usare la Emettitore chiave privata Kpri per le operazioni di autenticazione in rete. Questo codice deve essere consegnato dallEnte Emettitore o centro servizi di rilascio, con garanzia di segretezza, al titolare della CNSPUK Ente Ente Emettitore Ente Emettitore È il PUK utente richiesto per Emettitore sbloccare la carta nel caso non si disponga del PIN. Questo codice deve essere consegnato dallEnte Emettitore, con garanzia di segretezza, al titolare della CNSKpri - Ente Emettitore - Chiave presente internamente alla carta, congiuntamente al Kpub. Essa è invisibile allesterno, ma utilizzabile per le operazioni di cifra richieste durante loperazione di strong authentication (autenticazione forte). Il microcircuito deve essere provvisto di un motore crittografico interno (crypto-engine), al fine di rendere più rapide tali operazioni 24
  28. 28. ELEMENTO FORNITO PREDISPOSTO SCRITTO DA DESCRIZIONE DA DAId_Carta - Ente Emettitore/ Ente Emettitore/ È il numero identificativo della carta Certification Certification che contiene informazioni sullEnte Authority Authority Emettitore e il numero progressivo dellemissione presso tale EnteCda Certification Ente Emettitore Ente Emettitore È il certificato, rilasciato da una Authority Certification Authority iscritta allalbo, che garantisce la validità del legame tra la componente pubblica Kpub ed il titolare della CNSFirma digitale Produttore Certification Certification È il Dedicated file destinato ad Authority Authority ospitare le informazioni per la firma digitaleCarta sanitaria Produttore Regione/ Regione/ È lo spazio dedicato ad ospitare la Ministero Salute Ministero Salute carta sanitaria. Fornito dal produttore, viene predisposto e scritto dalle regioni o dal Ministero della SalutePIN_SO Ente Ente Emettitore Ente Emettitore È il PIN di Security Officer che può Emettitore essere utilizzato per linstallazione della firma digitale eventualmente rilasciato dallEnte Emettitore allutente per poter installare tale servizioDati_personali Ente Ente Emettitore Ente Emettitore È un file elementare che contiene i Emettitore dati personali dellindividuoMemoria_residua Ente Ente Emettitore Ente Emettitore È lammontare dello spazio totale Emettitore previsto per i servizi decurtato dello spazio utilizzato da quelli già installati Tabella 4.1: Struttura dati e matrice delle responsabilitàIl file elementare dei dati personali è codificato con le definizioni specifichedescritte nella tabella 4.2:DATO TIPO DI DATO DIMENSIONE MAX DESCRIZIONEEmettitore Obbligatorio 4 Indicazione dellemittenteData di emissione del Obbligatorio 8 Formato GGMMAAAAdocumentoData di scadenza del documento Obbligatorio 8 Formato GGMMAAAACognome Obbligatorio 26Nome Obbligatorio 26Data di nascita Obbligatorio 8 FORMATO GGMMAAAASesso Obbligatorio 1 M maschile, F femminileStatura (cm) Opzionale 0 Presente per compatibilità CIECodice fiscale Obbligatorio 16 25
  29. 29. DATO TIPO DI DATO DIMENSIONE MAX DESCRIZIONECittadinanza (codice) Opzionale 0 Presente per compatibilità CIEComune di Nascita Obbligatorio 4Stato estero di Nascita Opzionale 0 Presente per compatibilità CIEEstremi atto di Nascita Opzionale 0 Presente per compatibilità CIEComune di residenza al Obbligatorio 4momento dellemissioneIndirizzo di residenza Opzionale 80Eventuale annotazione in caso Vuoto 0 Presente per compatibilitàdi non validità del documento CIEper lespatrio Tabella 4.2: Definizione dati personali4.2 La Carta Regionale dei Servizi  La Carta Nazionale dei Servizi della Regione Friuli Venezia Giulia (oCarta Regionale dei Servizi - CRS) rappresenta il nuovo libretto sanitariodel cittadino. La nuova tessera sanitaria (TS) è utilizzabile come mezzo: • Di riconoscimento e di utilizzo di servizi socio-sanitari in rete (servizi di e-government fruibili via Internet) • Di memorizzazione di dati sanitari aggiuntivi (ASS, medico, esenzioni, etc...) in luogo di adesivi nello “spazio a disposizione dei dati sanitari regionali” per consentire labolizione del cosiddetto “libretto sanitario”La CRS diventa, così, lo strumento tecnico utilizzato dal cittadino pergodere di vari servizi, sanitari e non solo, presenti su un portale dedicato.4.2.1 Finalità La nuova tessera sanitaria del Friuli Venezia Giulia consente allaRegione di mantenere integre le finalità e gli obiettivi previsti per unatessera sanitaria elettronica (prevista dallarticolo 50 del decreto legge 30settembre 2003, n° 269), di avviare ulteriori servizi basati sullutilizzo diuna carta a microprocessore con possibilità di accesso in rete e diottimizzare i costi per i cittadini evitando lemissione a breve distanza di 26
  30. 30. più carte con finalità analoghe.La definizione della soluzione individuata è suffragata dai seguentielementi: • La carta prodotta è la TS prevista dallart, 50, ma integrata dalla componente CNS • Le carte sono prodotte a partire dai dati dellanagrafe dellAgenzia delle Entrate/Sogei validate, nella fase di produzione massiva, dalla Regione Friuli Venezia Giulia • Il layout dei dati visibili sulla carta è uguale a quello della tessera sanitaria, ed il verso è quello definito dalla normativa europea della TEAM • La struttura ed i contenuti del microprocessore sono quelli definiti dalle specifiche CNIPA per le Carte Nazionali dei Servizi4.2.2 Struttura e caratteristiche Tutte le CNS sono personalizzate con i caratteri braille (combinazionedi 3 lettere del codice fiscale: le prime due che identificano il nome e ilsedicesimo carattere del codice fiscale), per agevolare i cittadini nonvedenti nel riconoscimento tra più tessere in possesso della stessa persona,nonché la direzione di utilizzo della stessa; nello specifico è stato inserito ilmicrochip in posizione tale da non inficiare i dati presenti sul fronte dellaTS ed è stato utilizzato, per il simbolo della Regione, lo spazio adisposizione delle Regioni per i dati sanitari. Tale scelta è coerente conlimpostazione della TS in quanto i dati sanitari verranno poi registratidalla Regione direttamente sul microprocessore, allatto dellattivazionedella CNS.Le caratteristiche fisiche delle TS, il tipo di microchip, la crittografia usataper la Firma Digitale e la banda magnetica (solo la terza traccia èriservata ad uso futuro per fini regionali) rispettano gli standard previstiper le CNS. Anche lorganizzazione del File System, come definita dallespecifiche CNIPA, è la stessa delle CNS. Le informazioni da inserire nelFile System della CNS Regione Friuli Venezia Giulia, invece, sono: • Anagrafica come da specifiche CNS • Certificato carta • Predisposizione firma digitale • Struttura NetLink completa in cui saranno creati vuoti i file relativi a: 27
  31. 31. ◦ Dati amministrativi protetti ◦ Dati di emergenza a lettura libera ◦ Dati di emergenza protetti ◦ Puntatori a eventi sanitari Figura 4.2: Esempio di Carta Regionale dei Servizi4.3 I certificati digitali Un certificato digitale è un documento elettronico che attesta,attraverso una firma digitale, lassociazione tra una chiave pubblica e undeterminato soggetto (una persona, una società, un computer, etc...). Ognimessaggio crittografato con una data chiave pubblica può essere decrittatosolo da chi possiede la relativa chiave privata. Vale anche viceversa: sepossiamo decrittare un messaggio con una determinata chiave pubblicaallora siamo sicuri che quel messaggio è stato crittato da una precisachiave privata. Lutilizzo del certificato digitale non garantisce, però, chechi si autentica sia effettivamente chi viene descritto dal certificato: il suoscopo è, infatti, garantire che lautenticante sia il proprietario delcertificato ma nulla si può dire sulla sua reale identità; ci si può solo fidaredella veridicità del certificato in base alla “fama” e allaffidabilità dellaCertification Authority che lo ha emesso. Inoltre, nel certificato digitalesono presenti dei campi attributo, ovvero dettagli identificativi edescrittivi, che specificano informazioni riguardo il documento stesso, chilo ha emesso (Certification Authority) e il proprietario.4.3.1 I certificati nella CRS La CRS contiene un Certificato di Autenticazione della carta, emessodalla Certification Authority, che viene utilizzato per tutte le funzioni di 28
  32. 32. riconoscimento in rete e che, in combinazione con il PIN utente, permettel’utilizzo dei servizi in rete da parte del titolare. Fattore molto importanteè il formato: conditio sine qua non, nellambito della CNS e della CRS, èche i certificati debbano essere nel formato Codificato Base64 X.509. Tra leinformazioni, il certificato contiene anche il codice fiscale del titolarestesso.A tale proposito i Certificati di Autenticazione CRS emessi dallaCertification Authority sono rilasciati su dispositivo sicuro di firma (SmartCard) ed attivati su richiesta diretta del titolare, successivamenteall’identificazione fisica dello stesso da parte dellEnte Emettitore (nel casospecifico la Regione Autonoma Friuli Venezia Giulia) o di altro soggetto daquesti delegato.Per procedere all’emissione del Certificato di Autenticazione per la CRS ènecessario eseguire una procedura di registrazione, durante la quale i datidei titolari vengono memorizzati negli archivi del Certificatore; alla faseiniziale di registrazione, quindi, segue quella della personalizzazione dellacarta, sempre ad opera dellEnte Certificatore: le informazioni anagraficheottenute in fase di registrazione, congiuntamente alle informazionigenerate in fase di personalizzazione, vengono utilizzate per generare ilCertificato di Autenticazione per la CRS. Nel corso della fase dipersonalizzazione, vengono inserite nella CRS le informazioni necessarieper l’identificazione in rete del titolare della carta; in particolare, vienegenerato il codice PIN, da inserire al momento dell’autenticazione in rete,ed il codice PUK, da utilizzare per lo sblocco della carta a seguito di iteratadigitazione errata del codice PIN. I codici PIN e PUK vengono inviati inbusta chiusa internografata ad opera della Regione Autonoma FriuliVenezia Giulia, a seguito della richiesta di attivazione della CRS da partedel titolare.Il certificato ha una validità di cinque anni a partire dalla data diemissione, ovvero fino alla data di pubblicazione della sua revoca osospensione, se precedentemente effettuate. In prossimità di scadenza, puòvenire rinnovato con l’emissione di un nuovo certificato; la richiesta di unnuovo certificato, però, deve essere avviata prima della scadenza dellostesso. La procedura di rinnovo richiede la generazione di una nuovacoppia di chiavi e nella conseguente certificazione della nuova chiavepubblica.Il profilo minimo (caratteristiche, campi e dettagli) del certificato dellaCarta Regionale dei Servizi è quello stabilito dal CNIPA. 29
  33. 33. 4.4 Autenticazione sul Web La CNS dispone di certificati che permettono l’autenticazione Web.Normalmente, i dati scambiati via internet sono “in chiaro” e un intrusopotrebbe indebitamente accedere a informazioni confidenziali. È possibile,tramite il protocollo SSL, stabilire un canale di comunicazione criptato esicuro. [VEDI Capitolo 3, Paragrafo: ”3.3 Identificare lutente”]Oltre a questo primo livello di sicurezza, l’autenticazione Web è unmeccanismo che, grazie alla Smart Card CNS, permette al server Web diassicurarsi dell’identità dell’utente che cerca di connettersi. Leinformazioni riservate comunicate dal server Web saranno protette per dueragioni: • Sono criptate e firmate, quindi nessuno può né leggerle né modificarle • Sono trasmesse solo se l’utente è stato validamente identificatoDi fondamentale importanza, nellutilizzo del protocollo SSL a livello dibrowser Web, è la presenza dei certificati digitali delle CertificationAuthority, che hanno emesso il proprio certificato CNS, fra quelli ROOTdel sistema operativo: infatti, senza di essi, il browser impedirebbe lusodei certificati di tipo SSL client.Invece, a livello di server, il gestore del server Web deve necessariamenteinstallare su questultimo un idoneo certificato SSL server, rilasciato dauna terza parte fidata (Certification Authority). 30
  34. 34. 5 Autenticazione   con   CRS   su   Active   Directory5.1 Specificità dei certificati CRS Come visto nel capitolo precedente, i certificati digitali contengono deicampi compilati con i relativi dettagli [VEDI Capitolo 4, Paragrafo “4.3.1 Icertificati nella CRS”]. Un tipico certificato associato ad una Smart CardCRS contiene i seguenti attributi: • VERSION: indica versione dello standard X.509 utilizzato; può essere 1, 2 o 3 • SERIAL: indica il numero seriale univoco del certificato; impostato dalla CA • INNER SIGNATURE: ◦ ALG. ID: (Esempio: id-sha1-with-rsa-encryption) ◦ PARAMETER: (Esempio: 0) • ISSUER: indica la Certification Authority; contiene informazioni relative alla CA ◦ Common Name: nome identificativo (Esempio: Certification Authority Cittadini) ◦ Organizational Unit Name: tipo di servizio erogato (Esempio: Servizi di certificazione) ◦ Organization Name: nome del Certificatore accreditato (Esempio: Actalis S.p.A.) ◦ Country Name: nome della nazione della Certification Authority (Esempio: IT) • VALIDITY: indica il periodo di validità del certificato 31
  35. 35. ◦ Not Before: Oct 28, 03 09:59:55 GMT ◦ Not After: Oct 27, 09 09:58:42 GMT• SUBJECT: indica chi ha commissionato il certificato digitale ◦ Common Name: nome identificativo. Deve contenere il codice fiscale del titolare, l’identificativo univoco del dispositivo e il valore dell’hash calcolato sul file elementare contenente i dati personali del titolare (Esempio: LGRDNT63H14H501T/1234567890123456.hRfo7thkjYF45tF40 v0t8DkgiIG=) ◦ Organizational Unit Name: nome dell’amministrazione (Esempio: Ministero della Salute) ◦ Organization Name: nome convenzionale di progetto (Esempio: CNS) ◦ Country Name: nome della nazione del Subject (Esempio: IT)• PUBLIC KEY: informazioni sulla chiave pubblica utilizzata (Esempio: 1024 bit)• ALGORITHM: tipo di algoritmo di crittografia usato ◦ ALG. ID: identificativo dellalgoritmo (Esempio: id-rsa- encryption) ◦ PARAMETER: parametro dellalgoritmo (Esempio: 0)• MODULUS: chiave pubblica (Esempio: 0x00a209b4 65f57559 1f699938 e29a27b3 13a30893 7379cb22 37a6380e 9dd48c4d c9057d01 1039dd56 a55e9940 76c68c50 069a25b5 d777ffc4 d8c56ca2 fc3163e0 279d919f 0bb1d22d bb07d923 9e972ff3 252ed27a 4781bccd 99d7b76d 149d08cd 057f4b9d 9b04ddcb 76e1029e 16e0067f f7407553 01aa513e 126ae6b1 2977ea16 b3)• EXPONENT: (Esempio: 0x010001)• EXTENSIONS: informazioni e politiche proprie del certificato digitale (verranno trattate in maniera più approfondita al termine del certificato di esempio) ◦ Authority Information Access: ▪ Method: (Esempio: id-ad-ocsp) ▪ Location: • Uniform Resource ID: (Esempio: http://www.capki.it/OCSP/ResponderOne) ◦ Certificate Policies: 32
  36. 36. ▪ Policy 1: ▪ ID: (Esempio: 1.3.76.16.2.1) ▪ Qualifier 1: (Esempio: unotice (id-qt-unotice)) ▪ userNotice: • explicitText: (Esempio: Identifies X.509 authentication certificates issued for the italian National Service Card (CNS) project in according to the italian regulation) ▪ Policy 2: ▪ ID: (Esempio: OID del Certificatore) ▪ Qualifier 1: cps (id-qt-cps) ▪ CPS uri: (Esempio: https://www.capki.it/PrivateCA/CNSCPS) ◦ Key Usage: ◦ Extended Key Usage: ◦ Authority Key Identifier: (Esempio: 0xea3e2ce0 c724083f 97563685 e8b85cbd 4bba9e30) ◦ CRL Distribution Points: indirizzi dei Certificate Revocation List ◦ Distribution Point 1: indirizzi Internet che contengono la lista dei certificati digitali che sono stati revocati prima della data di fine validità ▪ Uniform Resource ID: (Esempio: https://www.capki.it/Certificatore/CRL3) ◦ Subject Key Identifier: (Esempio: 0x44a0ff7c f5592ca6 63da6059 490ac1ce 337ecc2a) • SIGNATURE: firma digitale ◦ ALG. ID: identificativo algoritmo di crittografia (Esempio: id- sha1-with-rsa-encryption) ◦ PARAMETER: (Esempio: 0) ◦ VALUE: firma digitale (Esempio: 0x6c3e208d 1d9bea97 31757b54 b752678f 1002426b a5e403d5 f5368d51 fce72a97 4040731e e0601ead e1e34a46 a7d0c305)Alcuni campi devono essere presenti obbligatoriamente, mentre altri sono 33
  37. 37. facoltativi. Lestensione che risulta essere fondamentale, in quantocontiene dati addizionali che un emittente può voler aggiungere alcertificato, si chiama “Extensions” (se presente, secondo lo standard X.509la versione del certificato è la terza).5.1.1 Lestensione Extensions I campi che devono essere presenti allinterno di questa estensionesono Key Usage, Extended Key Usage, Certificate Policies, CRL(Certificate Revocation List – liste presenti in rete che contengono lelencodei certificati digitali revocati prima della loro naturale data di scadenza)Distribuition Points, Authority Key Identifier e Subject Key Identifier. • Key Usage e Extended Key Usage Indicano delle informazioni riguardo lutilizzo della chiave privata; nello specifico, il primo campo indica l’utilizzo principale previsto della chiave del Titolare (Digital Signature, etc...), mentre il secondo ne indica ulteriori utilizzi di tipo secondario (Client Authorization, Smart Card Logon, etc...). • Certificate Policies Indica informazioni relative alla Policy usata nel certificato; è presente un identificatore. • CRL Distribuition Points Indicano gli indirizzi internet delle CRL. • Authority Key Identifier e Subject Key Identifier Indicano gli identificatori della chiave privata, rispettivamente della Certification Authority e dellutente.Invece, leventuale aggiunta di altre estensioni, anche private, è opzionale.5.2 I problemi Nellambito dei sistemi Windows, i certificati che vengono utilizzati,affinché possano essere considerati validi, devono contenere determinatechiavi attributo. Il problema che si è riscontrato nellutilizzo della CNS suisistemi Windows è dovuto, appunto, alla mancanza di alcuni attributi nelcertificato. La problematica nasce dal fatto che le CNS non sono native pertali sistemi e, quindi, i relativi certificati non sottostanno ai requisitiimposti dalle normative Microsoft: i campi e gli attributi che devono essere 34
  38. 38. presenti nel certificato associato alla CNS non sono gli stessi che, invece,debbono essere presenti nei certificati utilizzati sotto Windows. In pratica,i certificati digitali associati alle CNS non vengono riconosciuti dal sistemaoperativo come validi. Nello specifico, mancano: • Un attributo associato al campo di tipo EKU (Extended Key Usage), lo “Smart Card Logon”, ovvero una possibile modalità di autenticazione tramite Smart Card • Il campo UPN (User Principal Name), cioè il nome utente associato al certificatoMentre il campo EKU è previsto dal certificato associato alla CNS ma èsprovvisto del giusto attributo, il campo UPN non esiste.5.3 La soluzione  Ipoteticamente esisterebbero due condizioni particolari in cuilautenticazione tramite Smart Card, su domini Active Directory, sarebbecomunque garantita, a prescindere dal sistema operativo usato; lideasarebbe quella di andare ad agire direttamente sui certificati digitaliassociati alla card stessa: • Il certificato della Smart Card utilizzata contiene tra le varie EKU quella nota come “Smart Card Logon” • Il certificato non contiene alcuna EKUIn ogni caso, queste non sono scelte accettabili, in quanto tutti i certificatidigitali associati alle Smart Card già emesse non si possono più modificare.Un’alternativa, a livello client, sarebbe quella di aggiungere nella SmartCard un nuovo certificato digitale contenente le specifiche corrette. Inrealtà ciò non è possibile: oltre al fatto che non verrebbe riconosciuto inrete nei processi di autenticazione, il certificato non avrebbe neanchealcuna validità legale, in quanto non emesso dalla Certification Authorityche gestisce la CRS.Per quanto riguarda il problema dellassenza dellEKU “Smart CardLogon”, è stato risolto andando ad agire direttamente a livello software, sulsistema operativo: si è fatta una scelta di mercato, preferendo studiare larisoluzione della problematica solamente sui sistemi più recenti, qualiWindows Vista, Windows Server 2008 e Windows 7. Infatti, non esisteancora alcuna risoluzione dell’inconveniente sui sistemi Windowsprecedenti (come ad esempio Windows XP e Windows Server 2003). Taleoperazione è stata effettuata in due modi diversi a seconda della versionedel sistema operativo. 35
  39. 39. Per Windows Vista Service Pack 1 e Windows Server 2008 (senza ServicePack) è possibile eliminare il bug mediante lapplicazione di due hotfixdirettamente sul sistema operativo: una patch, installata a livello client, sioccupa di risolvere la mancanza dell’EKU nel certificato della Smart Card,aggiungendone uno fittizio; laltra patch, invece, viene installata a livelloserver ed ha il compito di forzare la validazione del certificato sprovvistodellEKU.Per le versioni più aggiornate di Windows Vista (successive a Service Pack1) e per Windows 7 la risoluzione del bug avviene in maniera nativa.Per superare, invece, il problema dellassenza del campo di tipo UPN ènecessario aggiungere nel profilo utente (in Active Directory) la partepubblica del certificato permettendo, così, di bypassare la sua assenza nelcertificato stesso; in questo caso sarebbe necessaria, però, unoperazioneamministrativa preliminare che associ utente e certificato direttamente inActive Directory. Sarà poi cura di Windows Server trovare il certificato inAD e, quindi, l’UPN dell’utente cui è associato questo certificato.5.4 Casi duso Sintetizzando, quindi, si può dire che lautenticazione, tramite lutilizzodella CRS, su un dominio Active Directory può avvenire in tre modidifferenti: 1. Autenticazione forte tramite certificato su Smart Card Nei domini di rete Microsoft è possibile utilizzare funzioni di autenticazione forte basate su Smart Card. Lautenticazione univoca dellutente avviene grazie alla combinazione dellinserimento delle credenziali di accesso e del certificato associato alla CRS utilizzata. Per tale utilizzo, oltre alle informazioni base identificative del Titolare, nel certificato possono essere inserite informazioni di controllo tipiche dell’ambiente Microsoft necessarie ad abilitare certi servizi. 2. Autenticazione forte tramite certificato privo delle estensioni Microsoft Procedimento del tutto identico a quello precedente; lunica differenza sta nella mancanza di alcuni attributi (EKU di tipo “Smart Card Logon” e campo UPN) nel certificato associato alla Smart Card utilizzata. Per sopperire a ciò, permettendo quindi la piena funzionalità del procedimento di autenticazione, entrano in gioco le due patch descritte nel paragrafo precedente. 36
  40. 40. 3. Riconoscimento dellidentità di un cittadino tramite CRS Lo strumento necessario per poter effettuare le principali attività legate alla Carta Regionale dei Servizi si chiama Card Management System (CMS). Il sistema viene utilizzato per seguire lintero ciclo di vita delle carte dallemissione, passando per la gestione dellanagrafica e labilitazione di servizi on-line, fino alla scadenza o alla revoca del certificato ad esse associato. Grazie alla combinazione dellanagrafica del CMS regionale e della CRS è, dunque, possibile identificare univocamente lutente: basta associare un account di Active Directory ai dati anagrafici del possessore della Carta Regionale dei Servizi.Affinchè i metodi di autenticazione descritti nei punti 2 e 3 possanofunzionare è inoltre necessario, come già descritto nel paragrafoprecedente [VEDI Capitolo 5, Paragrafo “5.3 La soluzione”], che avvengaunoperazione amministrativa preliminare il cui compito è quello diassociare utente e certificato direttamente in Active Directory. 37
  41. 41. 6 Transitività   dellautenticazione:   da   dominio a Web6.1 Avvicinandosi al problema Lidea che sta alla base di questo progetto è quella di potersperimentare uno dei possibili utilizzi della CRS: oltre ai servizi offerti sulportale della Regione Friuli Venezia Giulia, la Carta Regionale dei Servizipuò essere adoperata anche per autenticarsi su di un dominio [VEDICapitolo 5, Paragrafo “5.4 Casi duso”]. È possibile effettuare il login ad unsito Web, con la CRS, accedendo a delle risorse protette tramite ilmeccanismo di Single-Sign On? Il problema è capire come ciò possa essererealizzato.Una valida ipotesi di risoluzione si basa sulla possibilità di provare a"trasportare" il sistema di autenticazione locale direttamente in rete: sicerca, infatti, di sfruttare lautenticazione su di un dominio tramite ActiveDirectory. A questo sistema di autenticazione si vorrebbe però aggiungerela possibilità di utilizzare il meccanismo di Single-Sign On, in modo tale dapermettere allutente di autenticarsi sul Web senza inserire nuovamente lecredenziali: si sfruttano, cioè, i dati precedentemente inseriti per poteraccedere al sistema operativo del proprio computer. Inoltre, invece diutilizzare il binomio username e password, si vorrebbe poter usufruiredella possibilità di potersi autenticare su Active Directory tramite luso diuna Smart Card con il relativo PIN [Logon interattivo, VEDI Capitolo 3,Paragrafo “3.3.2 Autenticazione ad un dominio Windows”]. Ecco che,quindi, sfruttando il certificato digitale presente nella Carta Regionale deiServizi sarebbe teoricamente possibile autenticarsi sul Web, con Single-Sign On, tramite la CRS.Lobiettivo di questo capitolo, dunque, è quello di spiegare minuziosamenteil modo in cui si è arrivati alla realizzazione di unapplicazione Web cheverifichi tali ipotesi. 38
  42. 42. 6.1.1 Strumenti Per i motivi descritti precedentemente [VEDI Capitolo 5, Paragrafo“5.2 I problemi”], legati allincompatibilità (nativa) dei certificati digitaliWindows con quelli CRS, si è scelto di utilizzare, come sistema operativo,Windows 7. Siccome il linguaggio di programmazione più appropriato perpoter gestire la CRS è C#, lambiente di sviluppo su cui è stata sviluppatalapplicazione è Visual Web Developer 2008 Express Edition. Riassumendo,quindi, si è utilizzato: • Visual Web developer 2008 Express Edition ◦ Progetto ASP.NET Web Site ▪ Linguaggio Visual C#Lato client • Sistema operativo: Microsoft Windows 7 • Browser Web: Internet Explorer 8Lato server • Applicazioni e servizi Internet: IIS (Internet Information Service) • ADSI (Active Directory Server Interfaces) • .NET Framework 2.06.1.2 Prerequisiti Affinché ci si possa autenticare tramite CRS sul Web è necessario siverifichino una serie di situazioni particolari studiate ed impostate "adhoc". 1. Lato client • Deve essere possibile autenticarsi tramite Smart Card sul proprio sistema operativo • Per accedere al proprio sistema operativo deve essere necessario inserire le credenziali: non deve essere possibile lautenticazione di tipo anonima • Su Internet Explorer si deve impostare, come tipo di autenticazione, "windows authentication" 2. Lato server • Nel server non deve essere possibile autenticarsi in maniera 39
  43. 43. anonima; si deve, invece, poter usare la “windows authentication” (tali impostazioni vanno modificate nel IIS del server) • Bisogna impostare lattributo dellutente SMARTCARD_REQUIRED, obbligando, così, lutente ad autenticarsi tramite Smart Card6.1.3 Passaggi concettuali Riassumendo, i passaggi concettuali principali si possono suddividerein 3 fasi distinte: 1. Introduzione Dopo aver studiato in che modo avviene lautenticazione su un dominio Active Directory tramite la CRS, si vuole tentare di espandere questo concetto anche allautenticazione sul Web. Si cerca, quindi, di verificare se è possibile autenticarsi attraverso luso della Smart Card CRS e Single-Sign On in rete: per fare ciò, si è deciso, quindi, di sviluppare unapplicazione lato server. 2. Scenario Il client vuole accedere ad una specifica pagina Internet. Le risorse presenti nella pagina sono protette: affinché la pagina richiesta possa essere visualizzata è necessario vengano passate le credenziali di accesso del client. Solamente se esse risultano corrette, il client può avere accesso alla pagina richiesta. 3. Nello specifico La Carta Regionale dei Servizi contiene un certificato digitale che certifica lidentità del possessore della stessa. Di conseguenza, quando la pagina Web richiesta dallutente necessita di credenziali, viene passato, oltre allo username e alla password di dominio del server, anche il certificato digitale presente nella CRS.6.2 Funzionamento dellapplicazione Quando lutente tenta di accedere alla pagina Web, cioè dopo avernedigitato nella barra degli indirizzi il relativo URL, entra in esecuzione sulserver lapplicazione scritta in C# associata alla pagina richiesta. Lo scopodellapplicazione è: 40
  44. 44. 1. Verificare il tipo di autenticazione dellutente (deve essere di tipo "windows authentication") 2. Controllare che lutente sia autenticato (non deve esserci autenticazione anonima nel sistema operativo del pc in uso) 3. Assicurarsi che lutente abbia le credenziali di accesso ad un dominio sul server (quello in cui “si trova” la pagina Web richiesta) 4. Se lutente ha accesso ad un dominio sul server verificare se possiede un certificato digitale per autenticarsi 5. Nel caso in cui il certificato sia presente testare se è un certificato standard CRS X.509Se questi passaggi hanno dato tutti esito positivo lutente può visualizzarela pagina Web richiesta. Altrimenti viene visualizzato a schermo un erroredel server in quanto lutente non ha “i diritti” necessari per effettuarelazione desiderata.6.3 Sviluppo dellapplicazione Lapplicazione sviluppata comprende una pagina Web molto sempliceed il codice necessario per testare se lutente ha “il diritto” di poterlavisualizzare. In realtà, il server che è stato utilizzato ha un indirizzo IPprivato di tipo statico e si trova in una Intranet Locale e non in rete ( lasostanza e la funzionalità del progetto resta comunque la stessa di un veroe proprio server Web).Il codice si snoda in tre parti distinte: 1. La parte scritta in XML (file web.config), che contiene le impostazioni che controllano la modalità di utilizzo del sito Web 2. La parte scritta in C# (file Default.aspx.cs), che contiene lalgoritmo necessario per poter verificare se lutente si sta autenticando con una CRS 3. La pagina Web (file Default.aspx), composta da una TextBox ed un pulsante6.3.1 web.config Il file web.config è quello di default proposto da Visual Web Developer2008, tranne per laggiunta della modalità di autenticazione di tipoWindows e limpedimento, da parte dellutente, di effettuare il logon di tipo 41
  45. 45. anonimo (Figura 6.1). Figura 6.1: Particolare file web.config6.3.2 Default.aspx.cs Il file Default.aspx.cs si divide in due parti distinte: 1. La procedura Page_Load, che va in esecuzione appena viene richiesta la pagina Web 2. La procedura Button1_Click, che va in esecuzione se si clicca sul pulsante della pagina WebLa prima azione che si effettua nella procedura Page_Load è quella diricavare il nome dell’utente che ha effettuato il logon (Figura 6.2); dopo diche, viene effettuata in Active Directory una ricerca per poter ricavare gliattributi legati ad esso (Figura 6.3). Figura 6.2: Procedura Page_Load (parte 1) Figura 6.3: Procedura Page_Load (parte 2) 42
  46. 46. Fra questi attributi, sono di particolare interesse “altSecurityIdentities” e“userAccountControl”: con il primo si può verificare se all’utente èassociato un certificato digitale e se esso è di tipo CRS; con il secondo sipuò accertare se l’utente sia effettivamente obbligato ad autenticarsiattraverso l’uso di una Smart Card.Procedendo con l’analisi del codice, viene verificato se all’utente è associatoalmeno un certificato digitale. Come detto precedentemente, ciò accadegrazie all’attributo “altSecurityIdentities”, la cui funzione è quella difornire un array di stringhe, dove ogni stringa contiene la descrizione diuno dei certificati associati all’utente. Per ogni certificato digitale trovato,si verifica se la sua descrizione corrisponde a quella presente sul certificatodella Carta Regionale dei Servizi: ciò avviene confrontando la stringarestituita dall’attributo “altSecurityIdentities,” compresa fra <I> (il subjectdel certificato dell’issuer) e <S> (il subject del certificato dell’utente), con lastringa identificativa di una CRS (<I> C=IT,O=Actalis S.p.A.,OU=Servizidi certificazione,CN=Regione Autonoma Friuli Venezia Giulia - CACittadini) (Figura 6.4). Figura 6.4: Procedura Page_Load (parte 3)Nel caso in cui si trovi almeno un certificato di tipo CRS entra in giocol’attributo “userAccountControl”: tale attributo altro non è che unabitmask. Per sapere se l’utente è costretto ad autenticarsi con la CRSbisogna verificare che fra le opzioni della bitmask sia attivaSMARTCARD_REQUIRED (associata al numero 262144) (Figura 6.5). 43
  47. 47. Figura 6.5: Page_Load (parte 4)In caso positivo si può, quasi certamente, concludere che l’utente si stiaautenticando tramite l’utilizzo di una CRS.La procedura Button1_Click, invece, una volta caricata la pagina Web, sioccupa solo ed esclusivamente di stampare nellapposita TextBox, dopoaver cliccato sul pulsante, il dominio in cui è avvenuto il logon e lutenteche lo ha effettuato (Figura 6.6). 44

×