[Hackmeeting] Primavera

Delete this message

Reply to this message
Author: bakunin
Date:  
To: hackmeeting
Subject: [Hackmeeting] Primavera
Salve a tutti.

Quello che vi sto per annunciare e' nato un giorno quando, gironzolando
per vie poco battute del web, scoprii questo:
@mozilla.org/network/server-socket;1.

Piaciuto l'inizio dell'email? La mia idea era di raccontarmi una storia.
Ma sono stato costretto dal Babau ad arrivare subito al dunque.

Facendola breve volevo raccontarvi che a Parigi il tempo non e' stato
dei migliori ultimamente. La Primavera a Palermo e' durata + o - 15
minuti. Poi e' arrivata l'Estate. Qui invece la primavera sembra non
finire mai. Piove. Sarkosi' che va in giro con l'accetta a tagliare
collegamenti ad internet. C'e' la Senna. Non c'e' il mare. Si va in giro
in bici con o senza freni. Insomma... una vita diversa.

In questo contesto e' nata Bproxy (O BProxeaux, non so ancora), una
giovane estensione per firefox abbastanza instabile che accetta visite a
questo URI: http://www.autistici.org/bakunin/bproxy/

Provo a dirvi qualcosa in piu'.
Partiamo con un esempio:

Un giovane e' al lavoro in un ufficio con notevoli restrizioni a livello
di rete. Infatti non lo fanno andare su facebook, non puo' caricare
immagini su flickr, gli impediscono di usare chat varie, etc. E' quindi
molto triste.

Quindi installa bproxy sul suo computer di casa. Smanetta sul router
ADSL seguendo le stesse indicazioni che gli hanno persmesso di diventare
un virtuoso di EMule (PortForwarding &C) e va al lavoro. Al lavoro
installa pure li' bproxy e aggiunge tra gli amici del suo bproxy in
ufficio, il computer suo di casa.

Ora configura il suo computer per usare come SOCKS4 localhost:8080 e
magicamente inizia ad andare ovunque su Internet. E' felice e non si fa
domande.

<Dubbioso>Si', ma... cioe'... che ca**o dici?</Dubbioso>

Sono un nerd anche io almeno quanto voi quindi so bene che ci sono mille
modi per bloccare tutto e mille cose che non tornano, ma andiamo step by
step.

Cosa e' successo? Semplice. BProxy e' un SOCKS4 proxy server per il suo
computer al lavoro. Questo SOCKS4 proxa verso un server HTTP che guarda
caso e' il suo computer a casa. Tra il suo computer in ufficio e quello
a casa c'e' standard HTTP: oggettini JSON che viaggiano per internet.

BProxy a casa apre X socket... fa un tot di cose e fa si' che tutto funzica.

<Dubbiosa>See... non torna.</Dubbiosa>

Per fare tutto cio' serve avere un IP fisso, oppure un host valido. Per
questo BProxy gestire DynDns. Basta dargli un tot di info e BProxy
gestisce il proprio host tramite protocollo dyndns2.

Altro punto: BProxy funziona via P2P nel senso che per usare il
meccanismo serve che Bproxy conosca una lista di nodi attivi. Questi
nodi sono persone che hanno Bproxy installato dentro firefox, sono
collegati ad internet con il browser aperto. BProxy fara' tutti i
controlli del caso per testare se sono raggiungibili, se sono
disponibili, etc etc. Si crea quindi una rete tra le persone che hanno
bproxy in funzione.

<Dubbioso>Come faccio avere nodi?<Dubbioso>

Li aggiungi. Appena installata la sidebar di bproxy e' vuota. Si possono
aggiungere nodi facilmente. Se uno di questi e' online lo vedra' attivo.
E' possibile chiedere a questo se vuole condividere la sua lista di
nodi. Se lui accetta, la sua lista sara' integrata in quella di bproxy.
E cosi' via.

Non ci sono quindi nodi centrali.

<Dubbiosi>Ma potrebbero esserci nodi non cosi' instabili? o nodi che
stanno solo nel mezzo?<Dubbiosi>

Certo. Anzi, meglio. Facciamolo! Per ora si e' tutti un po' come "end
Point TOR", per intenderci. Ma si possono fare in poco tempo server che
girino senza firefox e magari sempre disponibili. Si possono anche
implementare migliorie che permettono di stare solo "nel mezzo" delle
comunicazioni.

Per chi non capisce perche' e' meglio una architettura distributa, vale
sempre la risposta: va di moda.

Quindi, tecnicamente parlando:

BProxy trasforma il vostro Mozilla Firefox 3 in un server. Questo server
e' sia un SOCKS4 e sia un HTTP. Si puo' usare il SOCKS4 per proxare
comunicazioni verso un server HTTP Bproxy remoto.

Quando il SOCKS4 riceve una richiesta di proxy, BProxy sceglie uno dei
nodi avviabili nella sua lista e invia una richiesta di proxy tramite
protocollo HTTP.
Se la richiesta dall'altra parte e' accettata, si ottiene un ID che
verra' usato in seguito. Il protocollo RESTful e' spiegato sul sito.

Si possono incapsulare ogni tipologia di protocollo. Io leggo/spedisco
la posta da una settimana tramite bproxy imaps e pop3s.

Ah.. dimenticavo. E' possibile chattare fra nodi. Bannare nodi e
regolare molti parametri di configurazione.

<Dobbuoso>Tecnologie? Stabilita'? Altro?</Dubbioso>

Tecnologia: Tutto il codice e' Javascript e XUL. Gira quindi su tutti
gli OS supportati da firefox 3.x

Stabilita': E' una estensione molto giovane. Quindi non si puo'
pretendere molto :) Ci sono alcuni bug conosciuti. Saranno sistemati.

Altro: Si'. Questo e' un esperimento. Non e' da considerarsi una
alternativa a TOR o altro ancora. L'esperimento e' cosistito in tante cose:

. far diventare un browser qualcosa di drammaticamente diverso: un server.

. giocare con i socket dentro firefox 3

. sfida personale

. stimolare ed essere stimolati

Per chiunque voglia saperne di piu', c'e' il sito internet, la mia email
etc etc. Feedback sono molto graditi. Meglio ancora se qualcuno vuole
collaborare.

b