TRASMISSIONE DI DATI VIA INTERNET 2.0 1 11
Sommario SOMMARIO...2 1. STORIA DELLE MODIFICHE...3 2. TRASMISSIONE DATI VIA INTERNET...4 2.1 SCOPO DEL DOCUMENTO...4 2.2 INTRODUZIONE...4 3. FORMATO DEI DOCUMENTI...5 3.1 INTRODUZIONE...5 3.2 GENERALITÀ SUL FORMATO XML...5 3.3 RIFERIMENTI TECNICI...6 4. SICUREZZA...7 4.1 GENERALITÀ...7 4.2 CRITTOGRAFIA...7 4.3 LA CERTIFICAZIONE DELLE CHIAVI PUBBLICHE...10 4.4 IL PROTOCOLLO SSL...11 4.5 RIFERIMENTI TECNICI...11 2.0 2 11
1. STORIA DELLE MODIFICHE Data Versione Descrizione cambiamenti Riferimento Aprile 2001 1.0 Versione iniziale Fulvio Spelta 2.0 3 11
2. TRASMISSIONE DATI VIA INTERNET 2.1 Scopo del documento Il presente documento ha lo scopo di illustrare le tecnologie utilizzate da Enel per la realizzazione del sistema di scambio documentale via Internet. 2.2 Introduzione Nella realizzazione di un sistema automatico di scambio documentale fra partner utilizzante Internet quale canale di veicolazione delle informazioni è necessario indirizzare due categorie di problemi: Il formato delle informazioni/documenti scambiati La sicurezza e riservatezza della comunicazione Recentemente gli ingenti sforzi di sviluppo legati all espansione della rete Internet hanno prodotto interessanti tecnologie in grado di dare risposta ai problemi suindicati. 2.0 4 11
3. FORMATO DEI DOCUMENTI 3.1 Introduzione Perché i partner possano scambiarsi efficacemente documenti è necessario, innanzi tutto, che si accordino sul formato e sul significato delle informazioni trasmesse. Lo standard più famoso e largamente adottato è lo standard EDIFACT (Electronic Data Interchange For Administration Commerce and Transport). Lo standard EDIFACT è stato proposto e viene tuttora mantenuto da UN/CEFACT (United Nations Centre for Trade Facilitation and Electronic Business), un organizzazione che sviluppa le regole delle Nazioni Unite per l Interscambio Elettronico di Dati (http://www.unece.org/cefact/). Queste regole fanno parte di un set di standard internazionalmente concordati, di un dizionario e di linee guida per l interscambio elettronico di dati strutturati fra sistemi informativi indipendenti. Questa metodologia è usata, per esempio, fra costruttori, grossisti, distributori, rivenditori, spedizionieri, destinatari, corrieri, banche, assicuratori ed agenzie governative. L avvento delle tecnologie legate alla rete Internet ha però portato alla creazione di nuovi e più flessibili formati di interscambio dati. Quello che viene universalmente definito come lingua franca della rete è oggi il formato XML. 3.2 Generalità sul formato XML In questo paragrafo si intende fornire un approccio di base al linguaggio XML. Le informazioni non devono essere considerate esaustive. Il linguaggio XML è un insieme di regole atte alla definizione di parole chiave dette tag utilizzate per descrivere i dati. Un elemento del linguaggio XML è composto da un tag iniziale ed un tag finale delimitanti il dato. Ad esempio l elemento XML: <direttore>giovanni Rossi</direttore> è un elemento di tipo direttore avente il valore Giovanni Rossi. L elemento di tipo direttore permette di riferire semanticamente il valore Giovanni Rossi in modo tale da differenziare le informazioni le une rispetto alle altre. Ad esempio potrebbe esistere un altro elemento XML di valore Giovanni Rossi : <attore>giovanni Rossi</attore> ma poiché gli elementi XML sono di tipo diverso sono univocamente identificabili il Giovanni Rossi direttore ed il Giovanni Rossi attore. Più elementi XML possono essere aggregati fra loro, eventualmente evidenziando rapporti gerarchici, a formare un documento XML. Ad esempio l insieme dei tag seguenti: <libri> <libro> <titolo>la gita a Tindari</titolo> <autore>andrea Camilleri</autore> 2.0 5 11
</libro> <libro> <titolo>un indovino mi disse</titolo> <autore>tiziano Terzani</autore> </libro> </libri> è un documento XML contenente la descrizione (titolo ed autore) di due libri. WebEDI Scambio elettronico documenti La struttura dei documenti XML, ovvero le informazioni contenute in un documento, viene descritta utilizzando una apposita sintassi, anch essa di derivazione XML e prende il nome di schema. Non si ritiene opportuno in questa sede approfondire ulteriormente la sintassi del linguaggio XML, gli interessati possono fare riferimento ai numerosi libri ormai disponibili sull argomento. I recenti sviluppi della tecnologia XML hanno portato alla definizione di un insieme di standard e di strumenti di supporto di notevole potenzialità che rendono l utilizzo del linguaggio molto semplice e poco costoso, in contrapposizione allo standard EDIFACT che normalmente richiede l utilizzo di mappatori molto costosi. Per garantire la massima aderenza alle tecnologie emergenti e leader di mercato Enel ha deciso di utilizzare il linguaggio XML quale piattaforma per gli scambi documentali con i propri partner. 3.3 Riferimenti tecnici Nell interscambio di documenti via Internet verranno utilizzati gli standard definiti dal consorzio W3C, ovvero l organizzazione che sovrintende allo sviluppo ad alla standardizzazione delle tecnologie legate alla rete Internet. Gli standard sono reperibili tramite le url nel seguito indicate: Linguaggio XML http://www.w3.org/tr/2000/rec-xml-20001006 Schemi XML http://www.w3.org/tr/2001/pr-xmlschema-0-20010330 http://www.w3.org/tr/2001/pr-xmlschema-1-20010330 http://www.w3.org/tr/2001/pr-xmlschema-2-20010330 2.0 6 11
4. SICUREZZA 4.1 Generalità La trasmissione dei messaggi avviene in forma leggibile, quindi è ipotizzabile l esistenza di intercettazioni. Questo, nel caso della rete Internet, viene aggravato dal fatto che le informazioni viaggiano sulla rete utilizzando linee e server di più provider. In base alle normative di legge ed alle esigenze tipiche della trasmissione di dati tra aziende è possibile individuare un livello minimo di sicurezza al di sotto del quale non sarebbe possibile alcuna transazione commerciale. Ad un sistema di sicurezza vengono. al minimo, richieste funzioni finalizzate a garantire: la confidenzialità dei messaggi in ingresso/uscita dall azienda l integrità dei messaggi trasmessi l autenticazione (o identificazione certa) del mittente dei messaggi la non ripudiabilità di invio/ricezione dei messaggi da parte del mittente/destinatario. Questi requisiti vengono soddisfatti adottando opportuni criteri di crittografia. 4.2 Crittografia Criptare un testo significa applicare ad esso un algoritmo che, in relazione ad una certa variabile (chiave di criptazione), lo trasforma in un altro testo incomprensibile ed indecifrabile da parte di chi non possiede la chiave. La funzione è reversibile, per cui l applicazione dello stesso algoritmo e della chiave al testo cifrato (ciphertext) restituisce il testo originale (plaintext). Quando la stessa chiave di criptazione è usata prima per criptare e poi per decriptare si parla di crittografia simmetrica o chiave segreta (ad esempio DES). I sistemi a chiave simmetrica possono essere utilizzati per implementare servizi di sicurezza quali: Riservatezza, che protegge l informazione da visione non autorizzata. Integrità, che garantisce che l informazione non venga alterata e che il messaggio arrivi esattamente come è stato spedito. Autenticazione, consente al mittente di includere nel messaggio informazioni che lo identifichino con certezza. 2.0 7 11
WebEDI Scambio elettronico documenti Questi sistemi presentano però alcuni notevoli inconvenienti: @ Due corrispondenti devono essere in possesso della stessa chiave che deve essere consegnata telematicamente ad entrambi prima che possa iniziare una comunicazione tra i due. @ Inoltre al crescere degli utenti di servizio il numero di chiavi aumenta rendendo problematica la loro gestione e distribuzione. @ Poiché utenti condividono chiavi segrete, non è possibile provare la paternità di un messaggio. Questi problemi sono stati risolti dalla crittografia asimmetrica o a chiave pubblica. Il metodo si basa su due concetti fondamentali: @ un messaggio codificato con una delle 2 chiavi può essere decodificato solo con l altra; @ non è matematicamente possibile ricavare una chiave dall altra, infatti è stato stimato che impiegando 1024 bit, per ricavare una chiave segreta da una pubblica sia necessaria una rete di milioni di computer e 1010 anni. Ogni utente diffonde una chiave che prende quindi il nome di chiave pubblica e mantiene segreta l altra che prende il nome di chiave privata. Quando Rossi vuole trasmettere il proprio messaggio a Bianchi, lo cifrerà con la chiave pubblica di Bianchi e lo invierà ad esso. Bianchi, a sua volta, ricevuto il messaggio procederà alla decriptazione tramite la sua chiave segreta. Dal momento che solo Bianchi dispone della seconda chiave della coppia in grado di decifrare il messaggio, questo potrà essere trasmesso in rete garantendo le opportune sicurezze. Il concetto fondamentale è quindi che, un messaggio cifrato dal mittente, potrà essere letto solo dal destinatario. Utilizzando tecniche derivate da quelle di crittografia è possibile realizzare sistema di firma elettronica che vengono utilizzate per autenticare il contenuto del messaggio ed identificare con certezza il mittente. L aggiunta della firma elettronica ad un messaggio avviene attraverso due passi; innanzi tutto viene calcolato il digest del messaggio da inviare utilizzando una particolare funzione detta di Hashing che genera un insieme limitato di informazioni, in modo tale per cui una qualsiasi modifica al messaggio generi certamente un diverso digest, il quale viene successivamente criptato utilizzando la chiave privata del mittente ed inviato insieme al messaggio. Bianchi alla ricezione di un messaggio spedito da Rossi, potrà verificarne l autenticità e l integrità eseguendo le seguenti operazioni: Decriptazione del digest del messaggio utilizzando la chiave pubblica di Rossi Generazione di un digest del messaggio ricevuto utilizzando lo stesso algoritmo di hashing utilizzato da Bianchi Tipologia Titolo Identificativo Versione e Data Allegato TRASMISSIONE DI DATI VIA INTERNET TRASMISSIONE DATI VIA 2.0 Pag. di 8 11
Confronto fra i due digest ottenuti dalle operazioni precedenti; se sono identici significa che i dati non sono stati alterati e che il mittente del messaggio è Bianchi. L applicazione di questi metodi è però onerosa dal punto di vista computazionale; al fine di contenere i tempi di calcolo necessari alle varie elaborazioni vengono utilizzati entrambi i metodi di crittografia presentati. Invio di un messaggio utilizzando entrambi i metodi di crittografia: Ogni utente ha una coppia di chiavi; la chiave pubblica e la chiave privata Viene generata casualmente una chiave simmetrica (DES) con cui viene cifrato il messaggio Viene criptata la chiave di cifratura con la chiave pubblica del destinatario Viene calcolato il "digest" del messaggio da inviare usando un algoritmo di "Hash" Il "digest" viene criptato con la chiave privata del mittente (firma elettronica) Viene trasferito il messaggio completo di firma elettronica Ricezione di un messaggio utilizzando entrambi i metodi di crittografia: Decripta la firma elettronica del messaggio arrivato verificando l autenticità e l integrità del messaggio stesso Decripta la chiave con cui è stato cifrato il messaggio con la sua chiave privata 2.0 9 11
Decifra il messaggio con la chiave di cifratura 4.3 La certificazione delle chiavi pubbliche Per verificare una firma digitale, il verificatore deve ottenere una chiave pubblica ed avere la garanzia che questa chiave pubblica corrisponda alla chiave privata del firmatario. Tuttavia, una coppia di chiavi pubblica e privata non ha una associazione intrinseca con una specifica persona; si tratta di una coppia di numeri. Per garantire che ogni controparte sia effettivamente identificabile ed associabile ad una specifica coppia di chiavi, uno o più terzi, che godono della fiducia di entrambe le parti coinvolte nella transazione, devono associare una persona identificata da un lato della transazione, con la coppia di chiavi che crea la firma digitale, ricevuta all'altro estremo, e viceversa. Questa parte fiduciaria terza è chiamata "autorità di certificazione" dalla maggior parte delle normative oggi già sviluppate. Per associare una coppia di chiavi con un firmatario, una autorità di certificazione emette un certificato, vale a dire un documento elettronico che indica una chiave pubblica e prova che il firmatario identificato nel certificato detiene la corrispondente chiave privata. Questo firmatario è chiamato il "sottoscrittore". La funzione principale di un certificato è quindi quella di associare una coppia di chiavi con un sottoscrittore, in modo che la persona che verifica la firma digitale con la chiave pubblica elencata nel certificato può avere la garanzia che la corrispondente chiave privata è effettivamente detenuta dal sottoscrittore, che è indicato nel certificato. Pertanto un certificato, emesso dalla "C.A." (Certification Authority) tipicamente contiene le seguenti informazioni: La chiave pubblica del possessore Il nome del possessore, se il possessore è una persona fisica si tratterà di nome e cognome, data di nascita ecc. se invece è un server "WWW" sarà presente l indirizzo "WWW" ed il nome della compagnia proprietaria del server La data di scadenza della chiave pubblica Il nome della "C.A." che ha emesso il certificato La firma digitale della "C.A." che ha emesso il certificato 2.0 10 11
4.4 Il protocollo SSL 4.5 Riferimenti tecnici La soluzione adottata è stata acquisita e messa in opera da Enel.it allo scopo di rendere disponibile un sistema di trasmissione sicura su Internet. Gli standard di sicurezza adottati sono pienamente conformi alle direttive imposte dal D.P.R Nov. 1997 n. 513 che regola i criteri e le modalità per la formazione, l archiviazione e la trasmissione di documenti con strumenti informatici. La soluzione si basa sull utilizzo della piattaforma di sicurezza a chiave asimmetrica di Entrust Technologies. Sarà cura di Enel fornire la dotazione software e i certificati di identificazione ai partne 2.0 11 11