Sicurezza: il ruolo del software libero e del software open source
1. Software libero e software open source
Il software libero nasce tra il finire degli anni settanta ed il cominciare degli ottanta come una reazione ad un mutato quadro giuridico che vede, sostanzialmente, l'inserimento del software tra le categorie di opere tutelate dal diritto d'autore ai sensi della Convenzione di Berna.1
Tale mutamento snatura quello che era stato precedentemente il modo di concepire le scienze informatiche le quali, all'interno delle comunità accademica, in modo particolare dei grandi centri di ricerca nord americani, erano caratterizzate da una forma tipica, nella ricerca scientifica, di condivisione del sapere. Era quindi pratica comune, tra i ricercatori e gli scienziati che affollavano prestigiose università come il MIT o Berkeley, scambiare il software cosí come, in altri ambiti scientifici, ci si scambiano articoli, pareri e quant'altro.
Il mutato quadro giuridico ed il contestuale svilupparsi di una vera e propria industria del software, la quale si accompagna alla nascita di un mercato dell'informatica di massa a seguito della produzione dei primi modelli di personal computer a partire dalla seconda metà degli anni settanta, hanno l'effetto di modificare la percezione che, nell'ambito di questa comunità scientifica, si ha del software.
Non è quindi un caso che sia un ricercatore del MIT, Richard Stallman, ha maturare la convinzione che, per preservare le idealità che avevano caratterizzato l'informatica come una disciplina accademica in cui si mescolano ricerca di base e ricerca applicata, fosse necessario, visto il mutato assetto istituzionale, predisporre un framework, mediante l'uso di una licenza d'uso e, quindi, un contratto, la GNU General Public License, che fosse in grado di perpetuare il principio della condivisione del sapere che aveva in precedenza connotato la produzione del software.
L'idea di Stallman è molto ambiziosa. Egli si propone di creare un intero sistema operativo che consenta all'utente l'utilizzo di un computer con software interamente libero, caratterizzato, cioè, da un modello distributivo che conferisca, e allo sviluppatore e all'utilizzatore, un insieme minimo di libertà sul sistema stesso, libertà che consentano loro di studiare, modificare, condividere e distribuire, senza ulteriori limiti, il programma in questione. In ultima analisi si tratta di concedere all'utilizzatore del computer la possibilità di modificarne il funzionamento, mediante il conferimento della facoltà di apportare migliorie al software senza il consenso del suo autore, il tutto nel quadro di legalità posto in essere dal contratto di licenza d'uso. Tale licenza, proprio in virtú del mutato assetto giuridico che conferisce all'autore i diritti esclusivi derivanti dal copyright, è quindi un atto in grado di porre in essere una relazione giuridica, caratterizzata da una certa reciprocità in quanto a facoltà, obblighi e soggezioni, il cui scopo principale è garantire alle parti in causa un ammontare minimo di libertà irrinunciabili. L'elemento centrale che caratterizza il progetto GNU, l'acronimo ricorsivo (GNU's not Unix) che lo identifica, è quindi, nell'accezione di Stallman, la libertà del fruitore di software.
Il progetto, concepito nei primi anni '80, reso pubblico nel 1984, è coronato da successo solo nei primi anni '90: il 1991 vede la nascita di Linux, un kernel utilizzabile nell'ambito del sistema GNU, che ormai comprendeva quasi tutti gli elementi che caratterizzano un sistema operativo, ad eccezione dell'ultimo rappresentato appunto da Linux. Nel 1995 una transazione extragiudiziale pone fine ad una controversia tra la University of California at Berkeley ed AT&T prima, Novel poi. Tale transazione consentirà alla prima la distribuzione di un sistema operativo, anch'esso interamente libero, derivato dal sistema Unix e denominato BSD (acronimo di Berkeley Software Distribution), dal quale traggono origine sistemi operativi Unix-like come FreeBSD?, OpenBSD? e NetBSD?.
Giunti a metà degli anni '90, pertanto, la comunità degli sviluppatori che si era radunata attorno al progetto di Stallman, ed ad altri progetti nati in ambito accademico come nel caso di BSD, è in grado di offrire al pubblico degli utilizzatori di software un sistema operativo interamente libero, distribuito, cioè, con licenze che garantiscono al fruitore quel nucleo di libertà cui sopra si accennava.
È sull'onda di questo successo che, nel 1998, nasce la locuzione software open-source.2 Questa nuova etichetta, che starebbe ad indicare ciò che prima si conosceva con il nome di free software, viene adottata con l'esplicito scopo di fare del proselitismo, in favore di questa categoria di programmi per elaboratore, nell'ambito del settore commerciale. Ed è nel tentativo di rendere questa tipologia di software appetibile anche al settore commerciale ed industriale che si fa appello ad una presunta superiorità tecnica del software libero, ora open-source, su quello proprietario – cosí vengono chiamati quei programmi la cui distribuzione avvenga mediante il ricorso a licenze che pongano forti limiti alle attività che l'utilizzatore può con essi compiere -, superiorità derivante dalla diversa modalità di sviluppo che caratterizza il primo.
Il software libero/open-source è spesso, ma non necessariamente, caratterizzato da un sistema collaborativo decentrato e distribuito di produzione. Inoltre, essendo il codice sorgente liberamente visionabile – questo è un requisito necessario affinché le libertà a cui sopra si accennava siano effettive e non meramente declamate -, esso può essere sottoposto ad una revisione critica da un numero di persone estremamente elevato, a differenza di quanto possa accadere se un programma viene sviluppato nell'ambito di un'organizzazione imprenditoriale chiusa che voglia mantenere su di esso i diritti esclusivi e le prerogative che nascono dal diritto d'autore e dal segreto industriale. I sostenitori del software open-source affermano quindi che questo modello di sviluppo ha il vantaggio di rendere il software piú robusto e sicuro, attingendo argomenti retorici da discipline quali l'economia, che mostra la superiore efficienza di istituzioni decentralizzate su quelle rigidamente centralizzate e gerarchiche – si pensi al dibattito mercato/pianificazione.3
Si può incidentalmente notare come, se sul piano teorico simili argomenti esercitino il loro fascino, sul quello pratico essi rischino di divenire petizioni di principio. Se è infatti corrispondente al vero che vi sono progetti dotati di elevata visibilità e che attirano un numero molto elevato di ricercatori e programmatori esperti, vero è che ciò rappresenta maggiormente l'eccezione che non la regola. Non mancano infatti, sono invero il numero maggiore, programmi creati da una cerchia estremamente ristretta di individui, i quali prestano la loro opera gratuitamente e, quindi, saltuariamente. Che costoro possano competere con imprese, anche di piccole dimensioni, che possono investire nella ricerca e sviluppo risorse certamente maggiori, ci par invero di poterlo dubitare.
2. Software libero come modello di governance
Se si prescinde dal dibattito sul miglior sistema di sviluppo, e se si prescinde anche dalla contrapposizione, dal vago sapore ideologico, tra i sostenitori della superiorità etica e tecnica del software libero e di quello open-source su quello proprietario, si può forse analizzare il problema delle relazioni tra software libero e proprietario a partire dalle conseguenze pratiche delle idealità che caratterizzano il primo. In tal caso il software libero si verrebbe caratterizzando come un modello di governance delle risorse informatiche, un modello decentralizzato ove all'utente finale è dato pieno potere sulla configurazione del sistema da costui utilizzato.
Una tale impostazione del problema, credo, potrà risultare utile nell'affrontare lo specifico tema della sicurezza informatica e delle modalità con le quali essa debba essere perseguita.
L'appello alla libertà, e non alla superiorità tecnica, si configura infatti come un discorso relativo alla relazione tra l'utilizzatore e la risorsa informatica. Il software libero è volto a fornire a costui pieno accesso, e, quindi, pieno potere sulla singola risorsa. Quello che nelle pagine che seguono si vuole analizzare è, pertanto, come un tale modello possa essere generalizzato per affrontare il problema della governance globale delle risorse informatiche, a maggior ragione se connesse in rete. In altri termini, non intendo entrare nel merito del dibattito sulla maggior o minor sicurezza intrinseca del software libero. Voglio invece cercare di comprendere come la questioni relative alla sicurezza entrino nel dibattito sulla governance delle risorse informatiche, al fine di analizzare quale contributo il software libero, che, si è detto, rappresenta un sistema di governance locale, possa offrire. Una tale impostazione si fonda sulla constatazione di come la governance delle risorse informatiche abbia la capacità di plasmare lo spazio digitale, determinandone lo sviluppo.4
3. Globale e locale
Introdurrò questo argomento raccontando una vicenda che, un paio di anni fa, destò un certo clamore animando un interessante dibattito sulle relazioni tra le politiche commerciali e quelle di sicurezza. Nel 2004 si era sparsa la voce, sui mezzi di informazione, che Microsoft intendesse cambiare la propria posizione relativamente alla distribuzione degli aggiornamenti ai propri sistemi operativi. Dopo la pubblicazione di Windows XP, il primo grosso pacchetto di aggiornamento, denominato Service Pack 1, era stato reso liberamente disponibile ai soli utenti che avessero installato sul proprio computer una copia legittimamente acquistata del noto sistema operativo. Tutti coloro che ne avessero una copia abusivamente duplicata sarebbero stati esclusi. Secondo indiscrezioni di stampa, invece, il Service Pack 2 sarebbe stato distribuito a chiunque avesse una copia installata di Windows XP, fosse stata questa munita o meno di regolare licenza d'uso.5 La notizia era però priva di fondamento e, dopo qualche giorno, fu smentita dalla diretta interessata.6
Le ragioni per le quali Microsoft abbia deciso di non rendere disponibile gli aggiornamenti a chi non fosse titolare di una licenza d'uso sono evidenti e possono essere facilmente catalogate tra le attività di “massimizzazione del profitto” cui un'impresa si deve necessariamente dedicare. Se è pertanto ovvio che essa decida di prendere questo corso di azioni, quel che ci si deve domandare è quali siano le conseguenze di carattere globale di una simile decisione. Per dirla con un noto esperto di sicurezza informatica, «[t]he security of your computer and your network depends on two things: what you do to secure your computer and network, and what everyone else does to secure their computers and networks. It's not enough for you to maintain a secure network. If everybody else doesn't maintain their security, we're all more vulnerable to attack.»7 Pertanto, negare gli aggiornamenti, in specie quelli legati alla sicurezza, agli utenti di versioni “pirata” di Windows significa aumentare l'insicurezza anche degli utenti legittimi del sistema operativo, per via del fatto che l'ambiente nel quale il loro sistema si trova è meno sicuro.
La decisione di Microsoft, adottata in risposta ad incentivi che agiscono localmente, ha conseguenze di carattere globale. Potremmo definire queste conseguenze una forma di esternalità, ma non intendo soffermarmi troppo, in questa sede, sulla loro natura.
Si potrebbe argomentare, contro le osservazioni or ora fatte, che casi di esternalità di questo genere sono evenienza comune e che, talvolta, in particolar modo nell'eventualità di esternalità negative, il diritto interviene con una qualche forma di regolamentazione. Ma ciò non considera ancora una peculiarità specifica di reti informatiche come Internet.
Si è soliti intendere Internet come la rete globale. Una tale definizione è però estremamente forviante nel descrivere e qualificare la natura di Internet. Se volessimo tentare di coglierne l'aspetto piú sostanziale, dovremmo dire invece che essa è la globalità delle reti locali interconnesse. Internet, infatti è un'architettura di interconnessione. Ma ciascuna rete interconnessa ha, in verità, un suo proprietario, nel senso che le apparecchiature che la esprimono sono beni sui quali una qualche persona, o ente, vanta un diritto esclusivo di proprietà, e costei avrà la facoltà di decidere come quelle apparecchiature dovranno comportarsi.
Da ciò, per quel che concerne il ragionamento che andavo tessendo, deriva la constatazione di come la governance globale di Internet altro non sia che la sommatoria di governance locali.
Una tale modalità di governo di un sistema complesso discende ovviamente dalle scelte operate in sede di progettazione del sistema stesso. E, d'altro canto, le scelte operate, nel caso specifico in questione, furono volte proprio a creare quello specifico sistema di governance, per ragioni che vale la pena, seppur brevemente, analizzare.
4. End-to-end
Internet si configura come un'architettura di rete aperta, il che sta a significare che la sua struttura è quella di una rete di reti, ciascuna delle quali possa essere progettata, sviluppata ed implementata con tecnologie scelte arbitrariamente. Per la comunicazione tra le varie reti si decise l'adozione di un meta-livello di comunicazione, definibile come un'architettura di interconnessione (Iternetworking Architeture), una serie di protocolli che consentissero il transito dei pacchetti dati attraverso le singole reti di cui Internet sarebbe stata formata, mediante interfacce, denominate gateway, poste ai loro limiti.8 Una tale soluzione fu proposta da Vinton Cerf e Robert Kahn in un celebre lavoro del 1974 nel quale si delineavano le modalità di funzionamento di una simile architettura e se ne proponevano gli elementi basilari: il sistema dei gateway ed i protocolli necessari.9
I protocolli che esprimono Internet furono definitivamente codificati nel 1981,10 molto tempo prima che questa divenisse un fenomeno di massa. In essi si faceva applicazione di un principio, poi conosciuto come argomento end-to-end,11 in base al quale un sistema informatico deve implementare le funzionalità piú complesse ai sui punti terminali, nel nostro caso le singole risorse informatiche, i singoli computer o le singole reti di cui Internet si compone. In tal modo l'architettura di interconnessione, lo spazio che separa i punti terminali, può essere estremamente semplice, svolgendo quante meno funzioni fosse possibile, con ovvi vantaggi in sede di implementazione, lasciando, al contempo, impregiudicati tutti gli usi futuri ed eventuali dell'architettura stessa. Detto altrimenti, negli anni settanta non si sapeva come i protocolli da cui era destinata a nascere Internet sarebbero stati utilizzati. Nessuno, molto probabilmente, immaginava che vi sarebbe stata, un giorno, una struttura come la World Wide Web fruibile mediante un browser, ed in grado di portare nelle nostre case testi, immagini, suoni, ecc. Se invece l'architettura di connessione fosse stata progettata per uno specifico uso, in tal caso i protocolli si sarebbe potuti configurare in modo tale da renderli estremamente efficienti per quel determinato uso, probabilmente a discapito di altri usi possibili.
Si comprende allora come l'argomento end-to-end, il mantenere, cioè, le funzionalità piú avanzate, anche di sicurezza, quanto piú possibile nei punti terminali dell'architettura, vicino all'utilizzatore, sia in ultima analisi anche una forma di governance, nel senso che a ciascuna rete locale e a ciascuna risorsa sarebbe stata lasciata la facoltà di decidere autonomamente quali funzioni implementare. In secondo luogo, un tale argomento garantiva che non si ponessero discriminazioni tra usi possibili, e che non si operassero distinzione tra usi buoni o cattivi, adeguati o meno, dell'architettura, lasciando che emergessero spontaneamente una pluralità eterogenea di usi possibili.
È stata questa scelta di design che ha garantito la possibilità di un'evoluzione inattesa e prolifica di Internet, e che l'ha portata all'attuale livello di popolarità.12
5. Governance e sicurezza
Il problema della governance, in riferimento a quello della sicurezza, può quindi essere formulato, in relazione al principio di design in base al quale Internet fu progettata, come il problema delle modalità attraverso cui le politiche di sicurezza debbano essere implementate. Piú specificamente, è necessario far sí che ciascuna risorsa connessa ad Internet implementi delle politiche, autonome, di sicurezza?
O è forse necessario che tali politiche di sicurezza siano attuate a livello di accesso ad una rete locale, dal momento che i singoli utenti non sono, troppo spesso, consapevoli dei costi connessi alla gestione del rischio? In altri termini, non potendo fare affidamento sulle capacità, e sugli incentivi – mancando delle informazioni rilevanti -, dell'utilizzatore medio di un computer, dobbiamo decidere che esso sia esonerato da una tale responsabilità in favore di soggetti piú competenti?
Ma in tal caso si potrebbe obiettare che la competenza e la diligenza degli amministratori delle singole reti locali non è un dato acquisito, e sarebbe quindi preferibile implementare forme di gestione del rischio già a livello di architettura di interconnessione.
Ovviamente una decisione in merito ha un impatto sulla configurazione dell'architettura di interconnessione. Generalizzando, lo spazio digitale che una rete esprime è connotato anche dalla modalità mediante cui una politica di sicurezza viene implementata. Firewall, mascheramenti di rete, controllo degli accessi, attività di logging, tutto ciò ha un impatto sulla struttura dello spazio digitale e ne determina, pregiudicandone talune, le linee di sviluppo ed evoluzione possibili. Se è stata la deliberata assenza di scelte centralizzate, incorporate nelle strutture piú profonde dello spazio digitale, a connotare la progettazione di Internet, assenza deliberata per via della consapevolezza, propria degli studiosi che diedero vita a quella costruzione intellettuale che oggi si esprime nello spazio digitale, dell'incompletezza delle informazioni al tempo disponibili circa gli sviluppi possibili che avrebbero caratterizzato la loro creatura; se è stata quell'assenza, dicevo, a consentirne la crescita costante sino a renderla ciò che oggi appare ai nostri occhi, si comprende allora come il problema della governance, nei termini proposti, debba essere affrontato con la medesima prudenza che meritano quelle decisioni che possono avere un effetto di lungo periodo che molto spesso non viene considerato nel momento in cui vengono adottate.
Ma, ancor piú rilevante per un giurista, è il fatto che una tale decisione ha un effetto regolatore del comportamento degli individui che quello spazio si trovino a dover frequentare. Se il primo è infatti un problema di natura tecnica, sebbene con risvolti di scelte pubbliche, per usare un'efficace espressione coniata su di un modello anglosassone, pur tuttavia dobbiamo domandarci se chi tali decisioni si trovi a dover adottare sia dotato degli incentivi adeguati per operare scelte ottimali. Ottimali in due sensi distinti: adeguate alle circostanze ed in grado di operare quel bilanciamento degli interessi che sempre scelte in tema di sicurezza impongono.
Quel che mi domando, in altri termini, è se, scartata l'idea di incorporare direttamente nei protocolli sistemi di sicurezza, ma permanendo la sfiducia nei confronti dell'utente finale, chi si sente delegato ad operare tali scelte abbia tutte le informazioni rilevanti e sia dotato di un sistema di incentivi tale per cui le proprie scelte siano ottimali non solo localmente, ma anche globalmente.
Nell'esempio del caso Microsoft sopra proposto si comprende facilmente come la risposta debba essere negativa.
Ciò non deve invero stupire. Se si analizza quanto accade nello spazio fisico, allora si deve procedere dalla constatazione che le scelte in tema di sicurezza sono propriamente scelte pubbliche, e che esse sono in gran parte sottratte persino alla volontà del legislatore. Si pensi a quanto del nostro diritto costituzionale è svolto al fine di operare un contemperamento tra esigenze di sicurezza ed esigenze di libertà individuale, contemperamento sottratto al Parlamento in quanto, si ritiene, esso potrebbe agire sulla spinta di interessi e preferenze contingenti che rischierebbero di sconvolgere il delicato rapporto tra sicurezza e liberà che il costituente ha sancito.
Per cercare di chiarire questo punto ritengo utile la metafora del mercato. In esso ciascuno di noi compie scelte locali che hanno conseguenze globali, per quanto ridotta possa essere la loro portata, mediante l'allocazione del proprio reddito. Riferendosi ad un pensatore come Hayek si può ricostruire il sistema dei prezzi come una modalità di computazione del valore delle risorse a partire dalle preferenze di ciascuno, oltre che dalla scarsità relativa delle stesse.13 Il mercato, allora, è un'istituzione dotata di un insieme di regole per la determinazione di quel valore.
Il problema è che il mercato è un'istituzione estremamente efficiente, o comunque piú efficiente di altre, per la determinazione del valore dello stagno, o delle carote, in relazione al valore di una moneta, ma diventa inadeguata nella determinazione del valore relativo di altri beni, dalla privacy alla libertà. E ciò, si badi, non per via di una sua intrinseca malvagità, ma per il piú semplice fatto che il mercato, come ogni altra istituzione, soffre di limiti propri, che vanno dai costi di transazione, alle esternalità, dall'incompletezza dei contratti all'incompletezza degli stessi mercati. Tanto che, storicamente, vediamo che al mercato si affiancano altre istituzioni per compensarne le deficienze. Si pensi alla ricostruzione dell'impresa fornitaci da Ronald Coase.14 O si pensi allo Stato per quel che concerne la fornitura di quei beni che il mercato non è in grado di garantire, dai beni pubblici ai diritti individuali.
Tornando allora al contributo che il software libero può offrire al dibattito sulla sicurezza, ritengo che le questioni che esso pone relativamente alle risorse locali si possano generalizzare al problema della gestione globale dello spazio digitale. Non è infatti togliendo facoltà, e responsabilità, all'utente finale che si riuscirà a costruire uno spazio digitale piú sicuro ed al contempo strutturato in maniera tale da essere portatore dei medesimi principi di libertà che, nello spazio fisico, ci sono garantiti dalla presenza di una istituzione, come quella statuale, obbligata a contemperare esigenze di sicurezza con esigenze di libertà in base a ciò che riteniamo essere a fondamento della sua stessa legittimità, la Costituzione.
Quel che invece abbiamo visto, particolarmente agli albori dell'era digitale, è stato il fiorire di una letteratura che ha visto nello Stato un nemico da tenere distante dal cyberspazio.15 Se l'era digitale rappresenta una sfida per questa istituzione, che talvolta ci appare canuta ed inadeguata all'impresa,16 pur tuttavia dobbiamo considerare che essa è stata, negli ultimi secoli, la principale paladina delle libertà individuali, mediante la predisposizione di norme generali ed astratte, il monopolio della forza, e l'allocazione a sé di tutte quelle scelte di carattere regolamentare che incidono sul comportamento degli individui.
Concludo allora ricordando che il dibattito sulla sicurezza è un dibattito politico e che, accanto a temi squisitamente tecnici, rimane, sullo sfondo, il problema della libertà. Senza quest'ultima, il valore intrinseco della sicurezza è assai ben poca cosa.