Archivi tag: codice sorgente

Dei rischi del Cloud Computing

chrys via Flickr

chrys via Flickr

Trovo (colpevolmente) tempo solo oggi di leggere questo articolo di Luca Annunziata che su Punto Informatico riprende le posizioni di Richard Stallman riguardo al Cloud Computing.
Vale forse la pena, prima di inoltrarci nella discussione, di spiegare brevemente ed in termini facilmente comprensibili il concetto: si parla di Cloud Computing riferendosi al diffondersi delle “Web Application”, della disponibilità di dati in remoto ed accessibili da device diverse; l’esempio più lampante è sicuramente costituito dal sistema delle Google Apps: posta elettronica, rubrica, calendario, feed reader, suite per l’ufficio e storage documentale accessibili da qualsiasi pc, telefonino, smartphone dotato di connessione ad internet, con analogo accentramento di tutte le funzionalità e configurazioni delle varie applicazioni (filtri antispam, regole di catalogazione di posta ed eventi, dettagli dei contatti, indirizzi degli appuntamenti…)

I rischi che Stallman sottolinea nell’intervento ripreso dall’articolo di Luca sono indubbiamente rischi concreti (e non tengono conto del non indifferente fattore privacy!): nell’ottica del software libero, spostare dati e computazione lato server significa perdere il controllo su codice sorgente e dati, segnando una importante vittoria per il software proprietario. Purtroppo quello che ci troviamo ad affrontare, è un problema ben più complesso di quello del semplice controllo del software che gira sul nostro computer: in un’ottica non più di “uno a uno” (io ed il mio portatile) ma di “uno a molti” (un “application provider” ed i suoi innumerevoli utenti), anche l’uso di tecnologie “libere” lato server è difficilmente verificabile e controllabile. Su questo fronte, la differenza tra software libero e software proprietario decade (a favore del software proprietario) in quanto l’utente non ha più la possibilità di verifica.

In un mondo dell’informatica che passa sempre più dall’elaborazione locale all’elaborazione online, è questo un problema che va analizzato, compreso ed affrontato, non negato o “ignorato” come Stallman propone di fare. Il guru del software libero infatti suggerisce: “fate il vostro lavoro con il vostro computer usando software libero”.
Bello, figo, ma se non ho il computer con me? Se volessi davvero non dover accendere il portatile, magari in auto, per recuperare l’indirizzo di un contatto con il quale ho appuntamento per poterlo impostare nel navigatore satellitare? Rinunciare ai progressi della tecnologia non credo sia la risposta giusta al problema.

Quando Stallman si trovò di fronte al dominio dei sistemi operativi proprietari, suggerì forse di ricorrere all’uso di carta e penna? No.
Ho l’impressione che con gli anni Stallman si stia arrugginendo ed arroccando su posizioni non difendibili, e questo fa molto, molto male al movimento dell’opensource…

HTTP Cache-Control user tracing exploited

dscf1673.jpg Nel pomeriggio di ieri, a seguito del post di commento all’articolo del Corriere su come “aggirare Google”, ho messo su un piccolo script php che vorrebbe dimostrare quanto rapido e veloce sia tracciare gli utenti di un sito web senza dover usare i cookies (sui quali si concentrano molti dei sistemi per migliorare la “privacy” degli utenti).

Tanto per rendere l’idea di quanto semplice sia lo script, qui ne trovate il codice sorgente, che vedo di commentare nelle prossime righe.

Il concetto sul quale si basa questo breve script, è che il sistema di gestione dei files in cache può essere agevolmente utilizzato per correlare tra loro le sessioni di uno stesso utente, anche dopo che questi ha chiuso ed riaperto il browser (magari a distanza di tempo) e senza dover necessariamente mantenere in memoria un cookie, facilmente identificato per altro da una serie di strumenti, o disabilitabile da parte dell’utente in questione (che può per l’appunto rifiutarlo al momento di caricare la pagina).

Lo script php quindi, comunica (inviando un apposito header di sessione HTTP) al browser che la pagina che sta caricando deve essere mantenuta in cache, e che questi dovrà perciò provvedere a validare nuovamente la pagina (alla quale viene per questo motivo associato un codice univoco, l’ETag) alla prossima visita. Il meccanismo della cache è utile perché nel caso in cui la pagina non venga modificata tra le due visite, al browser potrà essere inviato solamente un header con codice 302 (Pagina non modificata), evitando che questi debba andare a ricaricare tutti i componenti della pagina, sprecando tempo e banda. Come tutte le umane cose però, l’ETag (o la data di modifica, o qualsiasi altro parametro della pagina) può essere utilizzato (come nel nostro esempio) per correlare le sessioni, impostandolo ad un valore univoco e differente utente per utente (nel nostro caso impostato banalmente ad un valore casuale di 4 cifre).

Se volete verificare che il sistema effettivamente funzioni, non dovete far altro che cancellare i vostri cookie, chiudere e riaprire il browser, e tornare alla pagina in questione.

Inutile dire che esistono molti altri modi per tenere traccia delle sessioni degli utenti senza dover ricorrere ai cookies, ma ho voluto esplorare in pratica questa possibilità perché l’unico sistema che conosco che rimuova e sostituisca l’ETag è Privoxy (o l’uso di altri proxy appositamente configurati) ed è allo stesso tempo particolarmente semplice da attuare.

E dopo SCO, Microsoft!

Dopo la pesante batosta raccolta da SCO nella causa sulla “proprietà intellettuale” relativa al codice sorgente di Linux, ora è Microsoft stessa a lanciarsi nella battaglia (dopo essere stata una tra le maggiori spinte di SCO durante gli ultimi anni).

Dopo aver di decente stipulato degli accordi con Novell (ai quali ha poi aderito anche Dell) secondi i quali i clienti di Novell che acquistano SuSE Linux possono avvantaggiarsi della clausula di “non belligeranza” sui brevetti che Microsoft vanterebbe sul codice di Linux (e che di fatto danno credito a queste millantazioni), ora l’azienda di Redmond ha deciso di venire allo scoperto, comunicando che il codice sorgente di alcuni dei maggiori applicativi opensource violano un totale di oltre 235 brevetti software ad essa riconducibili. Di questi, circa 42 sarebbero inclusi nel kernel Linux, 65 nel server grafico Xorg ed altri 45 sarebbero invece da imputare alla nota suite per l’ufficio OpenOffice.org.

Al di la delle considerazioni in merito all’accordo stipulato tra Novell e Microsoft (sul quale si sta ancora largamente dibattendo e sul quale la nuova versione 3 della licenza GPL dovrebbe mettere un punto definitivo che molto male potrebbe fare proprio a Novell), una pronta ed interessante risposta legale sull’argomento viene dall’avvocato Carlo Piana, vicino alla Free Software Foundation, che fa notare come sia ancora tutto da dimostrare che i brevetti si possano applicare al software (in Europa c’è già stato un no chiaro della Commissione qualche anno fa, negli Stati Uniti la questione è ancora aperta) e come soprattutto molti di questi brevetti non siano altro che ricombinazioni di tecniche già note (quelle che vengono chiamate, in “legalese”, prior-art) e come questa pratica sia stata recentemente rigettata dalla Corte Suprema degli Stati Uniti.

Microsoft non è nuova a dichiarazioni avventate, come quando nel 1996 disse che internet non avrebbe avuto futuro e che sarebbe invece stata sostituita dalla loro rete MSN (salvo poi fare una brusca inversione di rotta pochi mesi dopo). Purtroppo sembra che a Redmond facciano fatica ad imparare dai propri errori, e Microsoft sembra avere sempre piu paura della concorrenza del Pinguino…

SCO contro Linux – Ultimo atto?

Dopo anni di querelle tra SCO ed IBM in materia di codice sorgente, la situazione comincia a chiarirsi, anche grazie all’emergere dei primi numeri reali.

SCO, per chi non fosse al corrente, aveva qualche anno fa dichiarato di possedere parte della “proprietà intellettuale” (orribile terminologia) del kernel di Linux e pretendeva per questo il pagamento di una licenza da parte di ogni utilizzatore del famoso kernel opensource. SCO, forte anche degli oltre 50 milioni di dollari che Microsoft avrebbe versato nelle casse del fondo d’investimento BayStar Capital nel 2003, è riuscita a tenere aperta la causa fino ad oggi, asserendo da un lato di possedere una “montagna” di codice sorgente che proverebbe la violazione da parte dei programmatori di Linux, dall’altra di non poter rivelare il contenuto di questo codice sorgente per motivi di proprietà intellettuale.

Secondario il fatto che SCO stessa abbia per anni distribuito sotto licenza GPL la propria distribuzione GNU/Linux chiamata Caldera.
Oggi emerge che il codice su cui SCO potrebbe vantare effettivamente qualche diritto, è composto da “ben” 326 righe di codice, essenzialmente composto da commenti (eh già, nel codice sorgente si inseriscono, per semplicità, anche commenti, anche se questi non vengono poi inclusi nell’applicativo compilato) e da semplici “header files” (files di definizioni), mentre la stessa SCO violerebbe il copyright di IBM, principale attore della querelle in quanto detentrice di numerosi diritti sullo Unix di cui SCO è proprietaria, per un totale di circa 700.000 righe dello stesso codice.

Sembrerebbe quindi volgere al termine questa vicenda, che inizialmente aveva preoccupato alcune delle grandi aziende che hanno investito in GNU/Linux (non ultima la stessa IBM) prima di rivelarsi un bluff, confermato dalla conferma di oggi.

Non tutto il male vien per nuocere però: questa esperienza è stata utile per verificare la solidità giuridica della licenza GPLv2. Il fatto che ne esca vincente, da maggiore forza alla licenza stessa ed a tutto il movimento software a cui da origine.