Software Sovrano
Standard Aperti, Software Libero, ed Internet
Presidente della Free Software Foundation Europe (FSFE)
scritto per contributi sostanziali al primo IGF
Introduzione
Le questioni del software sono questioni di potere e delineano fondamentalmente la società dove viviamo. Perfino per quelli che non hanno seguito le questioni sulle politiche digitali prima che queste diventassero sempre di più manifeste nel Summit Mondiale delle Nazioni Unite sulla Società dell'Informazione (WSIS). Due questioni fondamentali caratterizzano il campo di discussione: Chi controlla i vostri dati? Chi controlla il vostro computer?
La prima questione riguarda generalmente gli Standard Aperti, ed in particolare come dovrebbero essere definiti e sostenuti. Tutti gli attori in gioco parlano a favore degli standard aperti, ma alcuni vorrebbero che questo termine fosse inteso in maniera tale da poter controllare ancora i vostri dati e mantenere il potere di escludere i concorrenti a loro piacimento.
La seconda questione è stata una delle controversie chiave nel WSIS, è stata altamente dibattuta durante il WGIG, e rimane controversa al Forum sul Governo di Internet (IGF). Questa questione riguarda i modelli di software, software proprietario contro software libero, ed è stata stranamente polarizzata tra profitto e non-profit nel contesto del WSIS.
Ciò potrebbe essere dovuto al fatto che solo la più grande multinazionale del software proprietario ha seguito intensamente il WSIS, mentre i maggiori fornitori di Software Libero non hanno generalmente partecipato e non sono stati quindi rappresentati nel CCBI [1].
Standard aperti
Pur essendo un luogo comune nell'industria tecnologica dell'informazione già da molti anni, gli standard aperti solo recentemente hanno fatto ingresso nella scena centrale della politica pubblica. Uno dei luoghi dove questo è avvenuto è stato durante il WSIS, e sarà di maggior importanza per il Forum sul Governo di Internet (IGF). Ma perché gli standard aperti sono così importanti?
Cosa sono i formati
Tutti i computer immagazzinano e trasmettono informazioni in forme codificate. Queste sono rappresentazioni molto semplici dove alcuni valori numerici rappresentano un certo carattere, per esempio. E mentre la loro complessità è andata aumentando costantemente con la potenza e complessità dei computer, alcune regole di base sono sempre valide.
La prima importante regola è che qualsiasi scelta di codifica è una scelta arbitraria, e non naturale. Il numero 33 può rappresentare la lettera "a" o "z" a seconda della convenzione per questo standard. Non c'è nessun metodo corretto per fare questo, ci sono solo metodi possibili.
La seconda regola importante è che una volta che i dati sono stati codificati in un certo formato, questo può essere letto solamente da software che implementa questo formato, e lo implementa esattamente. Perfino piccole deviazioni dalle convenzioni del formato possono portare facilmente ad una corruzione massiccia dei dati. Una forma comune, e nella maggior parte dei casi innocua, di questo fenomeno è la perdita o il danneggiamento della formattazione da parte di programmi di elaborazione testi. Nei casi peggiori i dati saranno irrecuperabili.
I formati ed il fallimento del mercato
Da un punto di vista di mercato, una tal situazione porta generalmente al fallimento del mercato: i clienti che hanno salvato i propri dati in un formato si trovano subito impossibilitati a scegliere un altro fornitore non in grado di implementare lo stesso formato, o di implementarlo sufficientemente bene. Se l'unica strada per migrare consiste nel perdere anni di dati, si verifica una reale dipendenza dal fornitore, che rende praticamente impossibile scegliere il software secondo i suoi meriti.
In più, forti effetti di rete dominano oggi il mondo dei computer. Se un'azienda ha investito pesantemente nel passato in un'infrastruttura di computer che usa certi protocolli di comunicazione, si trova davanti a due alternative: prendere solo il software che implementa questi protocolli perfettamente o cancellare l'investimento e rimpiazzare l'intera infrastruttura, ovviamente con un alto investimento addizionale.
Un fornitore terzo che volesse entrare nel mercato si troverebbe di fronte ad una situazione simile a quando ci si trova in una stanza con persone che parlano una lingua straniera, senza alcun vocabolario o altri aiuti a disposizione. Le lingue umane sono collezioni di decisioni arbitrarie, proprio come i formati e protocolli dei computer. Non c'è nessuna ragione intrinsecamente naturale per chiamare "tavolo" un tavolo, o "sedia" una sedia. Per qualcuno che non parla quella lingua e senza un dizionario, o almeno qualche volenteroso che gli spieghi la lingua, diventa molto difficile comunicare.
Nella tecnologia dell'informazione, alcune persone sono riuscite ad indovinare le informazioni su questi protocolli e formati di file solamente guardando altri che usavano quel linguaggio. Questo modo di procedere è chiamato analisi del protocollo, ed ha aiutato a mitigare gli effetti negativi descritti in precedenza [2]. É anche la ragione per cui alcuni fornitori dominanti cominciano ad inserire la crittografia nei propri protocolli, impedendone così l'analisi.
Implicazioni di politica pubblica
Tutto questo è ovviamente di grande interesse per la politica pubblica per varie ragioni, ed è stato discusso in varie sedi, ad esempio nel parlamento danese nella mozione B 103[3], nella quale sono state elaborate le seguenti ragioni.
Politica sana di fornitura
Non è ovviamente sostenibile fare investimenti che saranno soggetti agli effetti spiegati sopra. Non c'è di fatto nessun mercato ed un unico fornitore è nella posizione di viziare l'intero investimento. Dato che ciò non è in linea con i principi della fornitura efficiente e sostenibile da parte del settore pubblico, queste situazioni devono essere evitate.
Proteggere la democrazia dagli effetti di rete
Gli stessi effetti di rete che sono stati descritti sopra hanno luogo quando il software deve comunicare con i cittadini. Solo i cittadini che scelgono quell'unico fornitore che implementa quel protocollo proprietario riusciranno a comunicare con l'amministrazione pubblica, violando il principio base che i cittadini devono essere in grado di comunicare liberamente con i loro governi. Usare formati e protocolli proprietari li costringerebbe invece nello stesso circolo vizioso di investimento e rilanci sempre più alti spiegato prima.
Assicurare una concorrenza aperta
Una tal situazione è ovviamente contraria ai principi della concorrenza e dei mercati aperti e porterà velocemente problemi di concentrazione di mercato e soffocamento dell'innovazione. Dato che questo è contrario agli obiettivi di ogni governo, la fornitura governativa dovrebbe sostenere i mercati aperti e concorrenziali.
Effetti della collaborazione, garanzia dell'accessibilità
Per avere un'amministrazione più efficiente, molte municipalità e diverse parti dell'amministrazione pubblica stanno cominciando ad unire le proprie risorse software. Se si tenta di fare questo con formati proprietari, ciò significa che, a meno che tutte le parti non stiano già usando lo stesso software, andrebbero perduti significativi investimenti di una o alcune delle amministrazioni.
Inoltre occorre prendere in considerazione i diritti delle persone con disabilità, che potrebbero avere speciali esigenze per il software, che l'implementazione di quel formato proprietario potrebbe non soddisfare. In questa situazione non ci sarà alcuna possibilità per le persone con disabilità di comunicare con i servizi governativi.
Prospettive commerciali-politiche
Infine ci sono forti problemi politici con l'immagazzinamento di dati in formati proprietari. Cosa succederebbe se questi dati divenissero inaccessibili in futuro a causa di problemi con quel particolare fornitore? Può un governo fidarsi veramente in maniera cieca e senza alternative della buona volontà di qualsiasi singola entità commerciale?
Aspetti commerciali di lungo termine
Inoltre, con quanto detto sopra, aumentare le possibilità di scelta in un mercato aperto porterà ulteriori benefici commerciali di lungo termine.
Cos'è uno standard aperto?
Ci sono varie definizioni per cosa dovrebbe o non dovrebbe essere considerato uno standard aperto. La citata mozione danese lo descrive come:
- ben documentato con tutte le sue specifiche disponibili pubblicamente
- liberamente implementabile senza limitazioni economiche, politiche o legali sull'implementazione ed uso, e
- standardizzato e mantenuto in un forum aperto (un cosiddetto ente di standardizzazione) attraverso un processo pubblico.
Questa definizione è relativamente simile a quella data dalla Commissione Europea nel suo European Interoperability Framework [4].
Entrambe queste definizioni sono state criticate dai fornitori che traggono profitto dai circoli di dipendenza spiegati sopra, così come dalle organizzazioni che rappresentano i loro interessi. L'argomentazione usuale per queste critiche si basa sul fatto che su certi formati o protocolli sono stati rilasciati dei brevetti, il detentore deve avere la possibilità di conseguire guadagni cedendo in licenza questi brevetti. L'eufemismo del giorno usato in questi casi è la concessione di licenze "Ragionevoli e Non Discriminatorie" (RAND).
Questo non è altro che un eufemismo poiché i brevetti sono per loro natura monopoli limitati concessi per legge ad una singola entità. Questa entità avrà sempre il coltello dalla parte del manico in ogni disputa, ed infatti ci sono molte storie su formati e protocolli che sono teoricamente noti, ma rimangono proprietari per questioni di brevetto.
Che tutti gli altri fornitori che non detengono il brevetto siano messi in una identica posizione svantaggiosa, potrebbe sembrare in effetti non discriminatorio, ma ciò non cambia fondamentalmente l'equilibrio dei poteri della situazione.
Tutti i formati e protocolli sono fondamentalmente arbitrari per natura, ma devono essere seguiti precisamente affinché i dati ad essi affidati siano sempre recuperabili.
Gli standard aperti in pratica
In teoria, le definizioni dell'Unione Europea e del Parlamento danese sarebbero sufficienti a definire uno standard aperto. In pratica le cose si sono dimostrate più complicate, dato che la situazione dei formati proprietari descritta sopra è immensamente profittevole per il fornitore che controlla il software.
Così in definitiva, un fornitore di software proprietario con una certa penetrazione di mercato ha un incentivo economico a violare lo standard aperto ed a trasformarlo in uno di fatto proprietario. Questo è avvenuto ripetutamente nella storia. L'inchiesta antitrust della Commissione Europea nei riguardi di Microsoft fornisce una testimonianza su come la deviazione da uno standard aperto (il CIFS, "Common Internet File System") ha permesso a Microsoft di far leva sul suo monopolio sui desktop per arrivare al quasi totale dominio del mercato dei workgroup server Questo s'è dimostrato così profittevole che Microsoft sembra più incline a pagare miliardi in multe che cessare questa pratica[5].
Spesso questo risultato si ottiene anche modificando leggermente l'implementazione in maniera tale che sia difficile notarlo, o si possa dibatterlo nei limiti dell'umana interpretazione, ma facendo in modo che l'implementazione degli altri fornitori non sia più integrata perfettamente. L'incentivo economico per agire in questo modo è enorme per attori del software proprietario che oltrepassano una certa soglia di dimensione.
Come mantenere uno standard aperto
L'unico metodo per impedire questo tipo di cose sembra essere quello di aggiungere un ulteriore criterio alle definizioni viste sopra: "Lo standard deve avere almeno un'implementazione di Software Libero e tutte le implementazioni che cercano di conformarsi allo standard aperto devono essere testate regolarmente in confronto con la/le implementazioni di Software Libero, che agiscono come base di riferimento comune.''
Dato che il Software Libero[6] è, tra le altre cose, definito dalla libertà di studiare la sua implementazione, questo permette agli attori nel mercato di studiare la base comune di riferimento non solo dal punto di vista delle specifiche, ma anche dello stesso linguaggio; inoltre test regolari in confronto con questa base possono aiutare a contenere le deviazioni dallo standard aperto.
Il Software Libero dà anche la libertà d'uso, modifica e distribuzione, perciò la maggior parte dei fornitori possono includere semplicemente quell'implementazione nel proprio software, riducendo ulteriormente le barriere all'interoperabilità.
Così mentre non c'è in teoria alcuna connessione tra gli standard aperti ed il Software Libero, in pratica il Software Libero diventa un componente necessario per mantenere uno standard aperto contro l'incentivo economico a rendere proprietario o deviare dallo standard aperto.
Gli standard aperti ed il WSIS/IGF
Un buon esempio per questo è internet. Prima che internet diventasse quello che è oggi ci sono stati vari tentativi diversi di costruire qualcosa di simile. Perché internet ebbe successo? Perché le implementazioni dei protocolli base di internet come il TCP/IP erano Software Libero e perciò egualmente disponibili per tutti.
Col World Wide Web la storia si ripetè quando Tim Berners-Lee rinunciò a tutti i brevetti sui protocolli e formati, e questi furono implementati tramite Software Libero. Più del 60% dei siti web del mondo girano su Apache, uno dei vari web server disponibili come Software Libero.
Sfortunatamente ciò non è abbastanza, le formulazioni sugli standard aperti adottate nel WSIS e successivamente in adozione nell'IGF potrebbe non essere sufficiente a costruire qualcosa come internet. I formati e protocolli che si comportano secondo quella definizione saranno soggetti a tutti gli effetti esaminati prima.
Così è importante che il Forum sul Governo di Internet (IGF) vada ora oltre questo linguaggio insufficiente e lavori su un consenso internazionale reale che proteggerà Internet dalla "deriva della proprietarizzazione" in tutti i suoi protocolli e formati. Gli standard aperti sono un essenziale blocco di fondamento di internet -- devono essere mantenuti perché internet non cada vittima di una sindrome da torre di Babele.
Il Software Libero
La connessione pratica tra il Software Libero e gli standard aperti è già stata discussa, ma ci sono altri temi riguardanti Software Libero che non hanno alcuna connessione diretta con gli standard aperti. Questi sono i temi del modello di software ed in definitiva del controllo sul proprio computer.
Il Software Libero è il software che dà a tutti gli utilizzatori e sviluppatori le seguenti quattro libertà:
- La libertà di eseguire il programma, per qualsiasi scopo.
- La libertà di studiare come funziona il programma, ed adattarlo ai propri bisogni.
- La libertà di fare e redistribuire copie di esso.
- La libertà di migliorare il programma, e rilasciare i miglioramenti.
É importante notare che ciascuna di queste attività può essere commerciale, infatti ci sono grandi aziende internazionali per le quali il Software Libero è un business molto profittevole, IBM, SUN, HP ed altre fra di esse.[7]
La differenza dei modelli di software
Così la commerciabilità non è la linea divisoria tra il software proprietario e Libero. In ultima astrazione il tema dei modelli di software giunge ad una questione fondamentale: chi ha il controllo sul software che gira sul tuo computer?
Col software proprietario, questi è sempre ed esclusivamente il proprietario del software. Il proprietario del computer ottiene generalmente alcuni permessi d'uso per certi scopi, ma questi possono solitamente essere revocati e l'utente non detiene mai il controllo sul software in qualsiasi modo significativo. Col Software Libero, all'utilizzatore è posta la responsabilità ed il controllo del suo software.
Questo slittamento nel potere da "uno sopra tutti gli altri" a "uno sopra se stesso" incide fondamentalmente sul modo in cui l'economia nazionale, le aziende, la scienza, l'insegnamento, la politica e la società nel suo complesso funzionano. Una trattazione completa di questi temi sarebbe oltre lo scopo di questo scritto, perciò ci si focalizzerà solo su alcuni punti riguardanti il governo e la sovranità.
Una questione di controllo
Sebbene questa possa sembrare un'idea ovviamente errata, c'è una diffusa credenza comune che l'utente controlli il proprio computer. In realtà, è solo il software che controlla veramente il computer, prendendo alcune indicazioni dall'utente, se è programmato per farlo. Questa è un'importante distinzione fondamentale, perché rende chiaro che solo controllando il software gli utenti possono controllare quello che il computer fa veramente.
Ci sono molti esempi di software che fanno cose segretamente, e senza la consapevolezza dell'utente. Un esempio recente include un programma che proviene dai CD della SONY ed informa la SONY ogni volta che il CD gira, e su quale macchina. Tutto questo avviene senza segni visibili sul computer, e senza alcuna informazione al riguardo o accordo dell'utente. Al contrario, la SONY informava falsamente l'utente, dichiarando che tutto ciò non avveniva, finché qualcuno non riuscì a dimostrare la falsità di quest'affermazione [8].
Storie simili esistono per varie altre soluzioni di software proprietario, tra cui il software collaborativo e per comunicazione che era dichiarato come sicuro grazie a tecniche crittografiche, usato da molti governi di tutto il mondo per attività confidenziali.
Dato che non c'è nessun modo per conoscere con sicurezza cosa fa il tuo software se non hai il pieno controllo su esso, l'Agenzia Tedesca per la Sicurezza nella Tecnologia dell'Informazione (BSI) ha emesso una raccomandazione per il Software Libero [9]. In effetti, le ambasciate tedesche in giro per il mondo sono collegate in rete col governo tedesco grazie al Software Libero, usando il SINA box basato su GNU/Linux [10].
Questioni di mandato politico
Nonostante ci sia stato un considerevole movimento sulla questione, gli standard aperti nella pubblica amministrazione sono ancora l'eccezione rara. E nel mondo del software proprietario, che è ancora la norma in molti governi, generalmente solo un fornitore può fornire software capace di accedere a quei dati e processi. Così effettivamente molti processi della pubblica amministrazione e governativi sono controllati da software che a sua volta è controllato da un unico fornitore sul quale il governo non ha alcun significativo controllo.
Il Software Libero è l'unico modo per assicurare che i governi controllino veramente i propri dati e processi, incluse le infrastrutture critiche. Il Software libero evita anche la citata "deriva di proprietarizzazione" sugli standard aperti: non c'è alcun profitto in questa, dato che generalmente ogni fornitore ha la libertà di distribuire soluzioni basate sullo standard.
Solo il Software Libero è il vero Software Sovrano.Il Software Libero ed il WSIS/WGIG/IGF
Il Software Libero ed internet vanno avanti di pari passo. Il Software Libero è stato un fattore critico per rendere Internet possibile, ed infatti il Software Libero continua a dare forma e far funzionare Internet. Allo stesso tempo, il Software Libero ed i suoi rappresentanti sono sati nient'altro che esclusi dai processi del WGIG e dell'IGF finora.
Se il Forum sul Governo di Internet deve diventare un forum veramente complessivo per discutere sui temi relativi ad Internet, il Software Libero ed i suoi rappresentanti dovrebbero essere inclusi in tutte le più rilevanti sedi di discussione ed in tutti i livelli politici dell'IGF. Altrimenti c'è la possibilità che le persone che continuano a costruire effettivamente internet portino semplicemente le loro discussioni da qualche altra parte.
[1] Alcuni vedono queste due questioni correlate, altri sostengono che dovrebbero essere trattate separatamente. Come diventerà chiaro in seguito, i due temi sono in effetti non connessi dal punto di vista teorico, ma hanno una connessione nella pratica. Per capire questo, è importante considerarli inizialmente in modo isolato.
[2] Questo è il modo in cui OpenOffice (http://www.openoffice.org) è arrivato a poter leggere generalmente la maggior parte dei documenti scritti con Microsoft Word, per esempio, o come il software Samba (http://www.samba.org) è riuscito a rimpiazzare ampie parti della funzionalità dei Microsoft workgroup server.
[3] http://www.ft.dk/Samling/20051/beslutningsforslag/B103/index.htm
[4] http://ec.europa.eu/idabc/en/document/7728.html
[5] https://fsfe.org/activities/ms-vs-eu/
[6] Per una definizione completa e concisa di Software Libero consultare la "Guida agli elementi essenziali del Software Libero" fornita anche nei contributi sostanziali all'IGF.
[7] Una definizione più completa ed elaborata del Software Libero ed una chiarificazione dei più comuni equivoci è disponibile nella "Guida agli elementi essenziali del Software Libero" che si trova anche nei contributi sostanziali all'IGF.
[8] http://www.wired.com/news/privacy/0,1848,69601,00.html