PDA

View Full Version : NextGen Peer to Peer - Progetto per un P2P anonimo


Rhapsodyan [ITA]
22-08-2006, 02:17
Premesso che posto questo "annuncio" sotto consenso del mod di sezione.

NextGen Peer To Peer
Ovvero come sopravvivere a Golia

Introduzione
Posso definirmi un Old User di eMule, in quanto, quando è arrivato da me l’ADSL (2003) ho scoperto questo straordinario software ed ho incominciato ad utilizzarlo e modificarlo per venire incontro alle mie esigenze. Lentamente le reti eDonkey sono divenute le reti su cui circolava più materiale in assoluto e di pari passo è cresciuto l’interesse dei controllori dei contenuti che hanno dichiarato guerra a tutti i P2P, ai forum e soprattutto agli utenti. Per questo motivo il mio interesse per questa straordinaria tecnologia è calato nel tempo, soprattutto dopo la legge Urbani, e per questo motivo ho deciso di non voler aver più nulla a che fare con la programmazione di eMule e con la partecipazione attiva alla comunità di supporto. Durante questo periodo tuttavia si sono affermati alcuni network anonimi, come MUTE, Ants, Tor e I2P che stanno di fatto mettendo le basi per la terza generazione del P2P, cioè la condivisione anonima.

Obiettivo
Il nostro obiettivo sarà ottenere un’applicazione di condivisione files anonima retrocompatibile con le reti Ed2k e Kad, sfruttando network anonimi già esistenti e sicuri.

La proposta
Per avere una rete P2P sicura ed efficiente bisogna rivolgersi a qualcuno che ci ha pensato per molto tempo, con studi, ricerche e un’implementazione funzionante. La mia idea è di utilizzare una rete tipo I2P che faccia da layer sicuro e non rintracciabile tra un’applicazione di file sharing e internet. Sopra a questa rete (sicura e già testata) funzionerebbe il nostro nuovo client P2P. Questa soluzione avrebbe i seguenti effetti:
• Velocità relativamente elevata
• Overhead relativamente basso
• Sicurezza già comprovata
• Diffusione della rete I2P (ogni client farebbe anche da router I2P)
• Non identificabilità del traffico P2P rispetto al traffico generato da altri protocolli (visto che la rete è all-purpose)
Inoltre ci sarà il supporto alle reti Ed2k e Kad in modalità legacy, ovvero una modalità diretta e non sicura.
I files condivisi saranno visibili su tutte le reti attive al momento, ma l’anonimità si otterrà utilizzando solamente la rete I2P. Quindi si prospetta una soluzione per chi vuole rimanere nell’abbondanza di files del muletto, mettendo in secondo piano la sicurezza ma anche per chi vorrebbe scaricare in sicurezza, mettendo – almeno per i primi tempi – in secondo piano l’abbondanza di files.

Di cosa abbiamo bisogno?
Per lo sviluppo abbiamo bisogno delle seguenti cose (in ordine cronologico):
1. Generare una libreria che possa connettersi alla rete I2P
2. Implementazione delle reti Ed2k e Kad (per la gran parte di ed2k basta pescare dai sorgenti di lphant, per kad direi di utilizzare il codice scritto per eMule)
3. Implementazione del nuovo protocollo utilizzato solo tra nodi I2P

Di chi abbiamo bisogno?
Abbiamo bisogno di:
• Programmatori C# meglio se con conoscenza Java e C++
• Betatesters (in futuro)

La cosa più importante è che le persone coinvolte siano motivate e disposte a mettere subito le mani sul progetto. Ho già avuto esperienze di questo tipo e quasi tutte sono fallite, quindi chiedo ai programmatori interessati un contatto, possibilmente MSN o via MP, per fare qualche riunione preliminare.

Per ora ho provato il funzionamento della rete I2P ed ho cominciato la traduzione dei sorgenti da Java a C# in modo da avere un prodotto coerente. Quando ci sarà un gruppo di programmatori pronti ad affrontare questa sfida decideremo definitivamente l’architettura di tutto il progetto, quindi, almeno per ora, considerate quello che ho scritto come bozza

franksisca
22-08-2006, 08:43
Guarda, progetto interessantissimo.
Unica nota dolente, c#.

Perchè non in java, così è utilizzabile anche su altre piattaforme, tipo mac e unix???
sarebbe una gran bella botta.

interessatissimo, ma al momento sto facendo la tesi e dovrei finire entro settembre, se ci riesco ti faccio un fischio;)

aldonation
22-08-2006, 09:43
Guarda, progetto interessantissimo.
Unica nota dolente, c#.

Perchè non in java, così è utilizzabile anche su altre piattaforme, tipo mac e unix???
sarebbe una gran bella botta.

interessatissimo, ma al momento sto facendo la tesi e dovrei finire entro settembre, se ci riesco ti faccio un fischio;)

Posso rispondere io brevemente...
C# è stato scelto principalmente per una ragione: è il linguaggio con cui ho più dimestichezza e quindi riesco ad esprimermi meglio. Inoltre è utilizzabile anche su altri sistemi operativi tramite mono, e poichè la piattaforma .NET sarà integrata in windows vista non sarà necessario effettuare il download della vm come per java (e ciò si riconduce alla maggiore immediatezza di utilizzo, sempre in ottica di raggiungere un vasto pubblico)...

Per il resto il progetto dovrebbe cominciare entro fine settembre, quindi non c'è problema...grazie comunque per l'interessamento ;)

Ciao :)

franksisca
22-08-2006, 10:19
Posso rispondere io brevemente...
C# è stato scelto principalmente per una ragione: è il linguaggio con cui ho più dimestichezza e quindi riesco ad esprimermi meglio. Inoltre è utilizzabile anche su altri sistemi operativi tramite mono, e poichè la piattaforma .NET sarà integrata in windows vista non sarà necessario effettuare il download della vm come per java (e ciò si riconduce alla maggiore immediatezza di utilizzo, sempre in ottica di raggiungere un vasto pubblico)...

Per il resto il progetto dovrebbe cominciare entro fine settembre, quindi non c'è problema...grazie comunque per l'interessamento ;)

Ciao :)
Diciamo che il primo impatto con C# è stato traumatico, magari lavorando con gente che lo conosce molto meglio, e magari appassionandomi un pò di più, riesco anche a farlo diventare simpatico.

Comunque poi mi faccio vivo, e grazie per le delucidazioni.

71104
22-08-2006, 10:39
']Premesso che posto questo "annuncio" sotto consenso del mod di sezione.

NextGen Peer To Peer
Ovvero come sopravvivere a Golia

Introduzione
Posso definirmi un Old User di eMule, in quanto, quando è arrivato da me l’ADSL (2003) ho scoperto questo straordinario software ed ho incominciato ad utilizzarlo e modificarlo per venire incontro alle mie esigenze. Lentamente le reti eDonkey sono divenute le reti su cui circolava più materiale in assoluto e di pari passo è cresciuto l’interesse dei controllori dei contenuti che hanno dichiarato guerra a tutti i P2P, ai forum e soprattutto agli utenti. Per questo motivo il mio interesse per questa straordinaria tecnologia è calato nel tempo, soprattutto dopo la legge Urbani, e per questo motivo ho deciso di non voler aver più nulla a che fare con la programmazione di eMule e con la partecipazione attiva alla comunità di supporto. Durante questo periodo tuttavia si sono affermati alcuni network anonimi, come MUTE, Ants, Tor e I2P che stanno di fatto mettendo le basi per la terza generazione del P2P, cioè la condivisione anonima.

Obiettivo
Il nostro obiettivo sarà ottenere un’applicazione di condivisione files anonima retrocompatibile con le reti Ed2k e Kad, sfruttando network anonimi già esistenti e sicuri.

La proposta
Per avere una rete P2P sicura ed efficiente bisogna rivolgersi a qualcuno che ci ha pensato per molto tempo, con studi, ricerche e un’implementazione funzionante. La mia idea è di utilizzare una rete tipo I2P che faccia da layer sicuro e non rintracciabile tra un’applicazione di file sharing e internet. Sopra a questa rete (sicura e già testata) funzionerebbe il nostro nuovo client P2P. Questa soluzione avrebbe i seguenti effetti:
• Velocità relativamente elevata
• Overhead relativamente basso
• Sicurezza già comprovata
• Diffusione della rete I2P (ogni client farebbe anche da router I2P)
• Non identificabilità del traffico P2P rispetto al traffico generato da altri protocolli (visto che la rete è all-purpose)
Inoltre ci sarà il supporto alle reti Ed2k e Kad in modalità legacy, ovvero una modalità diretta e non sicura.
I files condivisi saranno visibili su tutte le reti attive al momento, ma l’anonimità si otterrà utilizzando solamente la rete I2P. Quindi si prospetta una soluzione per chi vuole rimanere nell’abbondanza di files del muletto, mettendo in secondo piano la sicurezza ma anche per chi vorrebbe scaricare in sicurezza, mettendo – almeno per i primi tempi – in secondo piano l’abbondanza di files.

Di cosa abbiamo bisogno?
Per lo sviluppo abbiamo bisogno delle seguenti cose (in ordine cronologico):
1. Generare una libreria che possa connettersi alla rete I2P
2. Implementazione delle reti Ed2k e Kad (per la gran parte di ed2k basta pescare dai sorgenti di lphant, per kad direi di utilizzare il codice scritto per eMule)
3. Implementazione del nuovo protocollo utilizzato solo tra nodi I2P

Di chi abbiamo bisogno?
Abbiamo bisogno di:
• Programmatori C# meglio se con conoscenza Java e C++
• Betatesters (in futuro)

La cosa più importante è che le persone coinvolte siano motivate e disposte a mettere subito le mani sul progetto. Ho già avuto esperienze di questo tipo e quasi tutte sono fallite, quindi chiedo ai programmatori interessati un contatto, possibilmente MSN o via MP, per fare qualche riunione preliminare.

Per ora ho provato il funzionamento della rete I2P ed ho cominciato la traduzione dei sorgenti da Java a C# in modo da avere un prodotto coerente. Quando ci sarà un gruppo di programmatori pronti ad affrontare questa sfida decideremo definitivamente l’architettura di tutto il progetto, quindi, almeno per ora, considerate quello che ho scritto come bozza il solito postone sborone scritto elegante e ben formattato che però alla fine non se lo fila nessuno :fagiano:

io ho un'idea decisamente migliore: programma per nascondere files o intere directory. e li nasconde steganografandoli nel filesystem, in modo tale da renderli inaccessibili anche se si smontasse l'hard disk e lo si rimontasse su un altro PC (magari con Linux, o comunque senza il programma installato).

la forma più semplice di steganografia che posso immaginare sarebbe aggiungere un NULL di troppo alla fine del nome del file: se un file si chiama "pippo", io lo rinomino "pippo\0", e così quando un qualsiasi layer user mode tenta di accedere a "pippo\0" (cioè "pippo") non trova nulla perché "pippo" non esiste, esiste solo "pippo\0".

su Windows è fattibilissimo tramite API ZwXxx, totalmente user mode, sicurissimo e affidabilissimo. un giorno lo faccio.

aldonation
22-08-2006, 10:55
il solito postone sborone scritto elegante e ben formattato che però alla fine non se lo fila nessuno :fagiano:

io ho un'idea decisamente migliore: programma per nascondere files o intere directory. e li nasconde steganografandoli nel filesystem, in modo tale da renderli inaccessibili anche se si smontasse l'hard disk e lo si rimontasse su un altro PC (magari con Linux, o comunque senza il programma installato).

la forma più semplice di steganografia che posso immaginare sarebbe aggiungere un NULL di troppo alla fine del nome del file: se un file si chiama "pippo", io lo rinomino "pippo\0", e così quando un qualsiasi layer user mode tenta di accedere a "pippo\0" (cioè "pippo") non trova nulla perché "pippo" non esiste, esiste solo "pippo\0".

su Windows è fattibilissimo tramite API ZwXxx, totalmente user mode, sicurissimo e affidabilissimo. un giorno lo faccio.

Se è per questo esiste già TrueCrypt che fa qualcosa di simile...comunque sei OT :p

71104
22-08-2006, 12:12
Se è per questo esiste già TrueCrypt che fa qualcosa di simile... non c'entra niente :fagiano:

comunque sei OT :p non è OT: se i files sono nascosti sai che privacy?

potrei ad esempio fare un programma che permette di selezionare i processi a cui i files sono invisibilizzati e che si disattiva (invisibilizzando a tutti i processi) quando io premo una combinazione di tasti o stacco una chiavetta USB o do qualche altro input speciale.

in questo modo l'utente può rendere i files visibili solo ad eMule o ai programmi P2P; poi può anche entrarmi la finanza in casa, ma se io premo la combinazione segreta o stacco la chiavetta che mi fanno? :rolleyes:

aldonation
22-08-2006, 12:31
non c'entra niente :fagiano:

non è OT: se i files sono nascosti sai che privacy?

potrei ad esempio fare un programma che permette di selezionare i processi a cui i files sono invisibilizzati e che si disattiva (invisibilizzando a tutti i processi) quando io premo una combinazione di tasti o stacco una chiavetta USB o do qualche altro input speciale.

in questo modo l'utente può rendere i files visibili solo ad eMule o ai programmi P2P; poi può anche entrarmi la finanza in casa, ma se io premo la combinazione segreta o stacco la chiavetta che mi fanno? :rolleyes:

Se la finanza ti arriva in casa la prima cosa che fa è portarti via hard disk e se ti va male tutto il computer...la tua sarebbe una soluzione a posteriori, quando ti hanno individuato in questo modo potresti salvarti, anche se avrai comunque grossi casini, soprattutto perchè non vengono dei deficienti a casa, ti fanno un bel dd con knoppix e analizzano tutti i dati che sono effettivamente sul disco, non quelli visibili da windows...la finanza a casa non piace a nessuno...se poi a te non importa rimane una faccenda personale...quello che vorremmo progettare invece si pone davanti al problema...rende irrintracciabile sia chi condivide che chi scarica in modo da non avere problemi a prescindere...

In ogni caso, se vuoi parlare del tuo progetto ti prego di aprire un altro topic poichè vorremmo che questo rimanesse dedicato al nostro...grazie :)

Ciao :)

recoil
22-08-2006, 13:54
il progetto mi piace!
peccato che il tempo è quello che è, ovvero poco considerando che oltre al lavoro nel tempo libero ho da portare avanti un altro progetto sempre in ambito informatico... è lo stesso motivo per il quale ho dovuto rinunciare a collaborare nel progetto di Ian Clarke (freenet) che mi interessava moltissimo è che ha finalità simili a questo.

i tempi quali sarebbero? magari tra 2 o 3 mesi quando mi trasferirò eliminando il viaggio in treno riuscirò ad avere tempo per un progetto del genere :)

per quanto riguarda C# non credo sia un problema, si impara in poco tempo

aldonation
22-08-2006, 14:05
il progetto mi piace!
peccato che il tempo è quello che è, ovvero poco considerando che oltre al lavoro nel tempo libero ho da portare avanti un altro progetto sempre in ambito informatico... è lo stesso motivo per il quale ho dovuto rinunciare a collaborare nel progetto di Ian Clarke (freenet) che mi interessava moltissimo è che ha finalità simili a questo.

i tempi quali sarebbero? magari tra 2 o 3 mesi quando mi trasferirò eliminando il viaggio in treno riuscirò ad avere tempo per un progetto del genere :)

per quanto riguarda C# non credo sia un problema, si impara in poco tempo

Beh, di sicuro in 2-3 mesi non sarà "pronto"...c'è molto lavoro da fare, soprattutto sul versante network sicuro e sul versante protocolli di comunicazione...

Non c'è problema quindi se vorrai unirti al team tra qualche mese...un aiuto è sempre ben accetto :)

71104
22-08-2006, 14:23
Se la finanza ti arriva in casa la prima cosa che fa è portarti via hard disk e se ti va male tutto il computer...la tua sarebbe una soluzione a posteriori, quando ti hanno individuato in questo modo potresti salvarti, anche se avrai comunque grossi casini, soprattutto perchè non vengono dei deficienti a casa, ti fanno un bel dd con knoppix e analizzano tutti i dati che sono effettivamente sul disco, non quelli visibili da windows... lo so, ma non funzionerebbe; se vuoi te lo spiego in PVT.

aldonation
22-08-2006, 22:12
lo so, ma non funzionerebbe; se vuoi te lo spiego in PVT.

Hai un MP :)

ianaz
22-08-2006, 22:33
lo so, ma non funzionerebbe; se vuoi te lo spiego in PVT.
spiega anche a me pf

71104
22-08-2006, 22:38
vabbè, apriamo un nuovo thread

franksisca
23-08-2006, 00:09
vabbè, apriamo un nuovo thread
dov'è??

Rhapsodyan [ITA]
24-08-2006, 16:15
UP! Forza ragazzi..fatevi avanti!

magix2003
25-08-2006, 11:55
Ciao,
io sarei disponibile a darvi una mano. Le mie conoscenze di C# non sono così avanzante ma sto cercando di migliorarle. Quindi se vedo di potervi aiutare sarò ben felice di farlo...
Aspetto ulteriori info
:D

71104
25-08-2006, 11:58
seee, tanto non ce la farete :asd:
rischiamo di non farcela nemmeno noi di Diamond Crush guidati dal migliore dei Coach, come pensate di farcela voi? :asd:

(e io gufo :D)

dimostratemi che mi sbaglio :Prrr:

aldonation
25-08-2006, 13:07
seee, tanto non ce la farete :asd:
rischiamo di non farcela nemmeno noi di Diamond Crush guidati dal migliore dei Coach, come pensate di farcela voi? :asd:

(e io gufo :D)

dimostratemi che mi sbaglio :Prrr:

Anche il brasile aveva i giocatori migliori al mondo all'ultimo mondiale :Prrr: :ciapet:

Per il resto noi speriamo di farcela, anche perchè se ce la facciamo non ne guadagneremo solo noi ma tutti gli utenti delle reti di condivisione (compreso te che gufi :D )

71104
25-08-2006, 15:16
non ne guadagneremo solo noi ma tutti gli utenti delle reti di condivisione (compreso te che gufi :D ) prima dovete riuscire a farmi capire qual'è il vantaggio nell'usare questo programma anziché eMule o DC++ perché vi giuro che leggendo il postone sborone (il primo) non l'ho capito :huh:

spv42
25-08-2006, 15:16
Io conosco poco C#, ma mi piacerebbe imparare!

Imparare sempre e comunque!

aldonation
25-08-2006, 15:24
prima dovete riuscire a farmi capire qual'è il vantaggio nell'usare questo programma anziché eMule o DC++ perché vi giuro che leggendo il postone sborone (il primo) non l'ho capito :huh:

Il vantaggio è che le comunicazioni sono anonime...si utilizzerebbe I2P come layer anonimo sopra al quale costruire un P2P emule-like...dentro I2P invece di mandare messaggi ad un IP si mandano ad un ID crittograficamente sicuro passando attraverso altri computer...quindi diventa indistinguibile un semplice router da un client P2P, anche perchè I2P è una rete su cui passano anche richieste HTTP, SMTP, ecc...

aldonation
25-08-2006, 15:26
Io conosco poco C#, ma mi piacerebbe imparare!

Imparare sempre e comunque!

In questo progetto cose da imparare ce ne sono moltissime...siamo sempre in cerca di gente disposta ad imparare e lavorare con noi...se sei disponibile manda un PM ;)

spv42
25-08-2006, 16:19
Scusa l'ignoranza, ma cosa è un PM?

aldonation
25-08-2006, 16:22
Scusa l'ignoranza, ma cosa è un PM?

Private Message -> Messaggio Privato

Oppure contattami su MSN... :)

71104
25-08-2006, 18:46
Il vantaggio è che le comunicazioni sono anonime...si utilizzerebbe I2P come layer anonimo sopra al quale costruire un P2P emule-like...dentro I2P invece di mandare messaggi ad un IP si mandano ad un ID crittograficamente sicuro passando attraverso altri computer...quindi diventa indistinguibile un semplice router da un client P2P, anche perchè I2P è una rete su cui passano anche richieste HTTP, SMTP, ecc... aldilà di ogni cosa ricordati che il router a cui sei direttamente collegato quando ti connetti ad Internet (il primo della rete del tuo provider) invia e riceve esattamente quello che invii e ricevi tu; e se anziché un semplice router fosse un computer vero e proprio dotato di uno stack TCP/IP completo e con su il software necessario per interpretare tutti i protocolli necessari a ricostruire le tue operazioni di filesharing? il provider sa tutto di te, non c'è niente da fare.

l'unica cosa veramente utile a rendere mooolto difficile la ricostruzione del tuo "raw stream" di dati sarebbe un network driver che permette al pc di comunicare con l'esterno attraverso connessioni multiple contemporaneamente; non so se la cosa è teoricamente possibile in base all'attuale architettura TCP/IP, ma essere collegato a più router già al primo "livello di connessione" (chiamiamolo così) vorrebbe dire che per effettuare la ricostruzione sarebbe necessario analizzare N raw streams e fonderli in base ai timestamp dei singoli pacchetti, ed è una cosa praticamente impossibile perché farebbe nascere una marea di "e se..." :D

esempi:

e se il network driver di cui sopra scrive timestamp a cavolo? :D
(i router loggano aggiungendo i loro timestamp)

e se i router hanno gli orologi di sistema non perfettamente sincronizzati? :D
(si sincronizzano con un server del provider)

e se il network driver di cui sopra sfrutta connessioni a providers diversi? :D
(e mo te ce voglio :D :D :D)

c'è da dire che connessioni multiple significherebbero N accounts presso uno o più providers, e che non si può certo pretendere che l'utente abbia risorse finanziarie illimitate; ma si potrebbe organizzare il sistema in modo da condividere spese e connessioni tra N utenti. in tal caso tutta la questione assumerebbe la seguente forma: suddividere il flusso di dati in entrata e uscita con la connessione di un altro utente.

aldonation
25-08-2006, 18:59
aldilà di ogni cosa ricordati che il router a cui sei direttamente collegato quando ti connetti ad Internet (il primo della rete del tuo provider) invia e riceve esattamente quello che invii e ricevi tu; e se anziché un semplice router fosse un computer vero e proprio dotato di uno stack TCP/IP completo e con su il software necessario per interpretare tutti i protocolli necessari a ricostruire le tue operazioni di filesharing? il provider sa tutto di te, non c'è niente da fare.

l'unica cosa veramente utile a rendere mooolto difficile la ricostruzione del tuo "raw stream" di dati sarebbe un network driver che permette al pc di comunicare con l'esterno attraverso connessioni multiple contemporaneamente; ma non so se è teoricamente possibile in base all'attuale architettura TCP/IP

Beh...chiaramente tutto il traffico viene crittografato proprio per questo motivo...dopo il key agreement non si vede + nulla...il provider se il traffico è crittografato non sa nulla...altrimenti basterebbe che qualche furbo dentro ad un ISP si mettesse a sniffare i numeri di carta di credito delle transazioni che vengono fatte online per racimolare milioni di euro...

Se vuoi documentarti sulla rete che useremo trovi tutto qua: http://www.i2p.net/how

71104
25-08-2006, 20:02
Beh...chiaramente tutto il traffico viene crittografato proprio per questo motivo...dopo il key agreement non si vede + nulla...il provider se il traffico è crittografato non sa nulla... è tutta una questione di protocolli e loro interpretazione: se il tuo computer può decifrare quella roba può farlo anche il "router" attraverso il quale passa quella roba. "dopo il key agreement non si vede più nulla"? e perché, il tuo provider non lo vede il key agreement? :D

altrimenti basterebbe che qualche furbo dentro ad un ISP si mettesse a sniffare i numeri di carta di credito delle transazioni che vengono fatte online per racimolare milioni di euro... mazza come la fai facile :asd: sai che una volta io sono entrato nei computers della NASA e della CIA e sono riuscito ad ottenere informazioni segretissime e hanno pagato fior di miliardi il mio silenzio? :asd:
infatti sono ricco :sofico:

Se vuoi documentarti sulla rete che useremo trovi tutto qua: http://www.i2p.net/how ti ringrazio, ci ero già arrivato tramite Wikipedia :p

aldonation
25-08-2006, 20:51
è tutta una questione di protocolli e loro interpretazione: se il tuo computer può decifrare quella roba può farlo anche il "router" attraverso il quale passa quella roba. "dopo il key agreement non si vede più nulla"? e perché, il tuo provider non lo vede il key agreement? :D

Se ti metto un link per favore leggilo prima di postare di nuovo...

TCP connections are currently negotiated with a 2048 Diffie-Hellman implementation, using the router's identity to proceed with a station to station agreement, followed by some encrypted protocol specific fields, with all subsequent data encrypted with AES (as above).

Cmq non vedo come mai - visto che continui a ridicolizzare questo network - non vai sul loro forum a dir loro di cambiar mestiere. Una persona non dovrebbe mai ridicolizzare il lavoro altrui...


mazza come la fai facile :asd: sai che una volta io sono entrato nei computers della NASA e della CIA e sono riuscito ad ottenere informazioni segretissime e hanno pagato fior di miliardi il mio silenzio? :asd:
infatti sono ricco :sofico:

Certo, ma questo non vuol dire che tu sia capace di craccare una connessione SSL... :cool:

ti ringrazio, ci ero già arrivato tramite Wikipedia :p

Ok...la prossima volta non mi sforzo...

Se poi devi postare tanto per il piacere di dare addosso a qualcuno, senza prima documentarti e senza la necessaria serietà e apertura mentale, ti invito a cambiare atteggiamento...sono disposto a discutere solo con persone civili ed educate che non mi guardino dall'alto in basso...grazie...

Ciao

71104
25-08-2006, 23:11
Se ti metto un link per favore leggilo prima di postare di nuovo... bla bla bla... hai presente il nostro fatidico router, quello che sta dall'altra parte della tua linea telefonica, quello che viene subito dopo di te, quello che si interpone tra te e la rete del provider, qualunque esso sia? fai finta che al posto suo ci sei tu: non cambia nulla.

il tuo programma può usare gli algoritmi più intelligenti della Terra progettati di fresco da John Nash, ma finché si appoggia su TCP/IP e finché si suppone che un'altra stazione debba essere in grado di interpretare la comunicazione non esisterà modo di impossibilitare in maniera assoluta l'interpretazione da parte del provider.

sai contraddirmi nei miei stessi termini? i tuoi link no.

- visto che continui a ridicolizzare questo network - ma io non ridicolizzo nulla, sei tu che ti fai i film; io suppongo che gli autori sappiano bene cosa hanno fatto, il dubbio è se lo sai anche tu (o se non capisci cosa sto dicendo)

Cmq non vedo come mai non vai sul loro forum a dir loro di cambiar mestiere. nel tuo film lo farò

Una persona non dovrebbe mai ridicolizzare il lavoro altrui... nel tuo film si, altrimenti non viene a crearsi lo spannung

Certo, ma questo non vuol dire che tu sia capace di craccare una connessione SSL... :cool: come no, non te l'ho detto? le informazioni segrete sono riuscito ad ottenerle perché un loro agente che si trovava in Asia le stava comunicando al server centrale tramite SSL; solo che non sapevano che io avrei assistito anche all'handshaking :asd:

Se poi devi postare tanto per il piacere di dare addosso a qualcuno, senza prima documentarti e senza la necessaria serietà e apertura mentale, ti invito a cambiare atteggiamento... sono disposto a discutere solo con persone civili ed educate che non mi guardino dall'alto in basso... abbè, sto film ha rotto dai, è un trionfo di luoghi comuni...

grazie... quando vuoi

71104
25-08-2006, 23:19
di solito adesso arriva la parte in cui perdo io la flamewar perché l'altro si decide finalmente a rispondermi nei miei termini; vediamo che succede stavolta... http://forums.nsn3.net/style_emoticons/default/55.gif

VICIUS
25-08-2006, 23:24
Se dovete discutere fatelo da persone civili. Niente flame per favore o sospendo qualcuno :mad:

ciao ;)

aldonation
25-08-2006, 23:41
Quindi stai dicendo che se io faccio una transazione https il provider può vedere che cosa sto mandando - in chiaro - al server? Se hanno un bel computer quantistico lo possono fare...ma per ora non mi sembra così semplice rompere AES...se invece stai sostenendo che il provider può leggere i dati grezzi che passano tramite i loro router hai ragione...ma che può fare se è tutto criptato? un attacco man-in-the-middle durante il key agreement? La rete è fatta apposta per non soffrire di questi problemi...il provider si troverà solo un sacco di dati completamente inutili...
E poi se devi dire che il provider può fare un attacco, dì almeno di che tipo...se sei troppo vago non ci si capisce...

71104
26-08-2006, 14:05
Quindi stai dicendo che se io faccio una transazione https il provider può vedere che cosa sto mandando - in chiaro - al server? no; ma può decifrarlo perché conosce tutti i metodi di cifratura e le chiavi che state usando; li conosce perché li ha letti in chiaro quando ve li siete spediti (e perché conosce i protocolli che state usando).

Se hanno un bel computer quantistico lo possono fare... sempre nel tuo film, che però ormai ha assunto tutto l'aspetto di uno di quei filmetti americani di serie B coi ragazzini undicenni geniali che programmano sistemi operativi grafici in Assembly e gli danno i nomi più sboroni

se invece stai sostenendo che il provider può leggere i dati grezzi che passano tramite i loro router hai ragione...ma che può fare se è tutto criptato? decriptare?

un attacco man-in-the-middle durante il key agreement? La rete è fatta apposta per non soffrire di questi problemi... e come farebbe?

E poi se devi dire che il provider può fare un attacco, dì almeno di che tipo...se sei troppo vago non ci si capisce... secondo me tu non leggi quello che scrivo... avrò anche omesso la denominazione tecnica del tipo di attacco, ma a che ti serve quando te l'ho descritto per intero?

PS: sei un maniaco dei puntini di sospensione: sei peggio di cionci quando scrivi :D

roby1483
26-08-2006, 15:57
no; ma può decifrarlo perché conosce tutti i metodi di cifratura e le chiavi che state usando; li conosce perché li ha letti in chiaro quando ve li siete spediti (e perché conosce i protocolli che state usando).

Il provider non conosce le chiavi, quando viene fatto l'handshake il client codifica la chiave simmetrica scelta per tutta la sessione con la chiave pubblica del server così che solo il server con la sua chiave privata possa decifrarla. Il provider può conoscere la chiave pubblica del server, come tutti del resto, ma non non può usarla per decifrare il messaggio.

Il progetto non mi sembra niente male anche se al momento non so se potrò unirmi, seguo comunque il thread ed eventualmente mi aggregherò in seguito se posso.

71104
26-08-2006, 16:30
Il provider non conosce le chiavi, quando viene fatto l'handshake il client codifica la chiave simmetrica scelta per tutta la sessione con la chiave pubblica del server così che solo il server con la sua chiave privata possa decifrarla. Il provider può conoscere la chiave pubblica del server, come tutti del resto, ma non non può usarla per decifrare il messaggio. in che modo il client crea una chiave di codifica e di decodifica partendo dalla chiave pubblica fornita dal server? la stessa cosa che fa lui non può farla il software del provider?

roby1483
26-08-2006, 16:58
in che modo il client crea una chiave di codifica e di decodifica partendo dalla chiave pubblica fornita dal server? la stessa cosa che fa lui non può farla il software del provider?
Si ma visto che il processo è basato su numeri "casuali" è molto improbabile che il provider generi la stessa chiave che genera il client.

71104
26-08-2006, 18:12
Si ma visto che il processo è basato su numeri "casuali" è molto improbabile che il provider generi la stessa chiave che genera il client. e l'altra parte in comunicazione invece 'sti numeri casuali come fa a saperli? non deve generare anch'esso una chiave per codificare e decodificare?

k0nt3
26-08-2006, 19:51
secondo me ha ragione 71104 (stavolta :asd: ) il provider può benissimo intercettare tutte richieste di connessioni cifrate e fare da ponte tra il server e il client (facendo da client per il server e da server per il client). e con i tempi che corrono può essere che già lo fanno :mbe:
l'unica speranza che avete per essere certi dell'anonimità è utilizzare una rete che non passa dal provider.. come potrebbe essere una grossa rete wifi decentralizzata (al momento poco proponibile) e/o una rete appositamente creata come può essere questa (http://www.netsukuku.org/index.php?pag=about) (forse ancora meno proponibile :muro: ma spero che verrà proposta :D )

pisto
26-08-2006, 20:07
so che esistono algoritmi che usano il concetto di chiavi pubbliche e private, e algritmi di codifica/decodifica asimmetrici (primo fra tutti rsa). quindi un client genera chiavi private, che servono a decrittare, e una chiave pubblica, per crittare. quindi il provider trasmetterà all'altro client la chiave pubblica, ma nè lui ne l'altro client potranno decrittare ciò che hanno crittato conla chive pubblica, finchè le chiavi private non le sanno.

[SOFFIARE_SUL_FUOCO_MODE_ON]
nervosetto eh, 71104?
[SOFFIARE_SUL_FUOCO_MODE_OFF]

71104
26-08-2006, 21:44
so che esistono algoritmi che usano il concetto di chiavi pubbliche e private, e algritmi di codifica/decodifica asimmetrici (primo fra tutti rsa). quindi un client genera chiavi private, che servono a decrittare, e una chiave pubblica, per crittare. quindi il provider trasmetterà all'altro client la chiave pubblica, ma nè lui ne l'altro client potranno decrittare ciò che hanno crittato conla chive pubblica, finchè le chiavi private non le sanno. e come faranno infine a saperle? mi sa tanto che devono passarsele attraverso entrambe le rete dei rispettivi provider :rolleyes:

[SOFFIARE_SUL_FUOCO_MODE_ON]
nervosetto eh, 71104?
[SOFFIARE_SUL_FUOCO_MODE_OFF] nel suo film

Rhapsodyan [ITA]
26-08-2006, 22:04
nel suo film
Fattelo dire: hai veramente stracciato le palle.
Dal momento in cui ho postato questo annuncio (che è ancora valido, nonostante le tue insinuazioni) hai cominciato dapprima a proporre idee (sempre condite da una generosa dose di arroganza) che con questo progetto non c'entravano un cippa; poi, invitato ad andare a discuterne in un altro thread, riluttante e non senza polemiche finalmente hai aperto il tuo thread.
Poi, quando la gente ha cominciato a farsi avanti perchè interessata al progetto, hai iniziato a "gufare" contro di noi sfottendo senza alcuna ragione, se non per vantarti di far parte di un altro progetto (ah, sai che queste cose non le fanno nemmeno più i bambini di 6 anni?). Ancora devo capire la frase seee, tanto non ce la farete
rischiamo di non farcela nemmeno noi di Diamond Crush guidati dal migliore dei Coach, come pensate di farcela voi? Non sta nè in cielo nè in terra.
Infine hai continuato a mettere in ridicolo il nostro progetto e, quando messo alle strette dal mio "collega" (che ha risposto sempre in modo estremamente gentile nonostante la tua arroganza), rispondi infantilmente "nel tuo film".
Allora, la vogliamo finire o vuoi far chiudere a tutti i costi il thread?

71104
26-08-2006, 22:50
passo :P

aldonation
26-08-2006, 23:30
Tanto per chiudere la questione rispondo all'ultima domanda quotando un messaggio preso dal sito di I2P:
Man in the Middle

A common attack to many secure systems is called the Man in the Middle attack.
Basically someone pretends to be the person that you are trying to connect
to, and then relays what you say to that person pretending to be you. This
attack does not work against I2P. This is because in I2P you don't know the
actual IP of the person you are connecting to. You only know their public
key. You can use this key to lookup the IP of the node that you can contact
them through in the network database. Because this message is signed it
cannot be forged. This means an attacker would have no way to fool you into
connecting to them. Also even if a third party intercepted the traffic,
because you know their public key from the start, they would have no way of
being able to decrypt any of what was sent.
Per il key agreement vengono usati numeri primi sicuri (raccomandati dai documenti ufficiali IETF) e come generatore viene usato il valore della chiave pubblica del peer da contattare. Non c'è quindi scambio di questi dati poichè sono noti a priori. Un provider che tenti di intercettare la sessione e cerchi di farsi autenticare dal nostro client non avrà successo poichè ogni messaggio è firmato digitalmente dal client che lo invia...la finta risposta del provider quindi non potrà contenere una firma valida poichè solamente il vero client potrà generarne una funzionante tramite la sua chiave privata...

Spero di essere stato chiaro questa volta... :)

mcardini
26-08-2006, 23:50
Non capisco questi flame inutili.
Conosco aldonation e Rhapsodyan [ITA], sono persone estremamente competenti e serie.
Il progetto e' interessante e, secondo la mia opinione, molto innovativo.
Invito tutti a postare cose utili al progetto ed a collaborare numerosi, come sicuramente faro' io in un futuro porting su sistemi linux.
Vi auguro buona fortuna, so che non ci deluderete ;)

roby1483
26-08-2006, 23:56
e l'altra parte in comunicazione invece 'sti numeri casuali come fa a saperli? non deve generare anch'esso una chiave per codificare e decodificare?
Per farla molto semplificata quando un client si vuole connettere ad un server via SSL il client fa la richiesta ed il server invia la sua chiave pubblica in chiaro, il client genera una chiave simmetrica che codifica con la chiave pubblica del server prima di spedirla così che solo il server con la sua chiave privata sia in grado di decodificarla (il server la sua chiave privata se la tiene ben stretta). A questo punto sia il client che il server hanno una chiave simmetrica da usare per tutte le comunicazioni della sessione e se ne guardano bene dal comunicare questa chiave a terzi, provider compreso.
Se funzionasse come dici tu SSL non avrebbe alcun senso perchè chiunque faccia un attacco di tipo man in the middle potrebbe recuperare la chiave ma questo non è possibile perchè viene usata appunto la cifratura asimmetrica (chiave pubblica e privata) per scambiarsi la chiave simmetrica usata per la cifratura dei messaggi successivi all'handshake.

71104
27-08-2006, 01:00
Per farla molto semplificata quando un client si vuole connettere ad un server via SSL il client fa la richiesta ed il server invia la sua chiave pubblica in chiaro, il client genera una chiave simmetrica che codifica con la chiave pubblica del server prima di spedirla così che solo il server con la sua chiave privata sia in grado di decodificarla (il server la sua chiave privata se la tiene ben stretta). ma come fa il client a creare una codifica che possa essere decifrata solo con una chiave che non conosce, cioè quella privata del server? significa che la chiave privata è deducibile da quella pubblica; quantomeno la parte di essa usata per la decodifica.

il_luridone
27-08-2006, 01:43
71104, per come la vedi tu ssh non potrebbe esistere.

La crittografia asimmetrica (http://it.wikipedia.org/wiki/Crittografia_asimmetrica) si basa su due semplici concetti:

la chiave pubblica può essere allegramente distribuita a cani e porci e serve a crittografare
la chiave privata va tenuta gelosamente nascosta e serve a decriptare


Ora, segui la seguente comunicazione tra me e Bob. Tu fai da fattorino e vedi tutto quello che ci passiamo:


Io mando a Bob la mia chiave pubblica. Tu vedi la mia chiave pubblica (ci puoi criptare dei dati che posso decriptare con la mia chiave privata).
Bob usa la mia chiave pubblica per crittografare un numero casuale che mi manda indietro. Tu vedi dei dati crittografati che non puoi decriptare: tu hai visto solo la chiave pubblica mia, solo io con la mia chiave privata posso decriptarli. A dirla tutta, una volta che Bob cripta il numero casuale, non lo può recuperare neppure lui, se lo deve tenere a mente.
Io decripto i dati di Bob con la mia chiave privata, e inizio a mandare messaggi crittografati con altri algoritmi usando il numero casuale come seed (chiavi pubbliche e private non servono più). Tu non vedi più nulla di utile.


Tutti i tuoi dubbi si fondano sulla supposizione che chiave pubblica e privata siano correlate in qualche modo. Non ho le basi matematiche o le fonti per dimostrarti che non è così, ma solo argomenti pragmatici: ssh e ssl sono usati ovunque mica per l'anima del cazzo.

Se le basi matematiche mi mancano, provo comunque a cercarti qualche fonte, tieni(lo) duro.

PhantomX
27-08-2006, 09:45
nel RSA le 2 chiavi, pubblica e privata, sono si legate matematicamente tra loro, ma non deducibili a posteriori partendo solo da una di esse.

per calcolare queste chiavi:
prendendo 2 numeri P e Q grandi e primi,
N=(P x Q)
Z=(P-1)(Q-1)
ora scelgo D primo con Z
ed infine calcolo E x D = 1(mod Z)

ora la chiave pubblica è (E,N) e la privata è (D,N)

L' RSA si basa sulla fattorizzazione di numeri grandi e quindi attacchi semplici sono difficili da fare.

roby1483
27-08-2006, 10:01
ma come fa il client a creare una codifica che possa essere decifrata solo con una chiave che non conosce, cioè quella privata del server? significa che la chiave privata è deducibile da quella pubblica; quantomeno la parte di essa usata per la decodifica.
Mi sa che i tuoi dubbi derivano dal fatto che non conosci bene la crittografia a chiave pubblica e privata, altrimenti conosciuta anche come crittografia asimmetrica. il_luridone ha messo un buon link per iniziare a leggere qualcosa sull'argomento.

k0nt3
27-08-2006, 10:06
LOL!! adesso è tutto davvero più chiaro :D allora cambio schieramento.. 71104 ha sbagliato anche questa volta :asd:
comunque sia questo progetto a me interesserebbe parecchio, conosco più o meno C# (anche se java/C++ rulez) purtroppo non ho abbastanza tempo adesso.. vi tengo d'occhio nella speranza di poter contribuire :fagiano:
se non volete fare la fine di Diamond Crush dovete documentare bene il codice in modo che una persona in qualsiasi momento possa entrare a far parte del progetto (anche quando è in fase avanzata) e non debba impiegarci per forza 5 anni a capire a cosa serve il codice che hanno scritto gli altri ;) (so che voi saprete meglio di me)

pisto
27-08-2006, 21:38
bene, adesso che abbiamo tolto di mezzo (leggasi sm****to :D ) il flamer, premettendo che non voglio e non posso (non so il c# :D ) partecipare, spiegatemi una cosa: da quello che ho capito il protocollo i2p prevede che un certo messaggio per essere recapitato al destinatario debba essere reinstradato + volte, quindi rispetto al viaggio normale di un pacchetto da un clint ad un altro il passaggio di un pacchetto con il protocollo i2p fa un viaggio di lunghezza (n+1)*lunghezzaViaggioNormale no (con n numero di client traverso cui si fa passare il msg)? beh, non è una cosa estremamente lenta? quindi già il mulo è lento di suo, figurarsi ad usarne una versione i2p! (per la stessa ragione sconsigliano di usare un proxy con emule)

mi sfugge qualcosa?

aldonation
28-08-2006, 08:40
bene, adesso che abbiamo tolto di mezzo (leggasi sm****to :D ) il flamer, premettendo che non voglio e non posso (non so il c# :D ) partecipare, spiegatemi una cosa: da quello che ho capito il protocollo i2p prevede che un certo messaggio per essere recapitato al destinatario debba essere reinstradato + volte, quindi rispetto al viaggio normale di un pacchetto da un clint ad un altro il passaggio di un pacchetto con il protocollo i2p fa un viaggio di lunghezza (n+1)*lunghezzaViaggioNormale no (con n numero di client traverso cui si fa passare il msg)? beh, non è una cosa estremamente lenta? quindi già il mulo è lento di suo, figurarsi ad usarne una versione i2p! (per la stessa ragione sconsigliano di usare un proxy con emule)

mi sfugge qualcosa?

Per avere un sistema sicuro e "relativamente" veloce bisognerà trovare il numero giusto di hop che il pacchetto dovrà fare...chiaramente darà velocità inferiori a quelle di una rete normale, ma se si vuole rimanere anonimi è l'unica strada da prendere...per quanto riguarda il procollo vogliamo basarci su quello di eMule, possibilmente migliorandolo e velocizzandolo, sopratutto per quanto riguarda la gestione dei crediti, delle code e utilizzando in maniera intelligente il download multipath...per il resto quando la prima parte sarà funzionante cominceremo a fare un po' di benchmarking e quindi decidere come comportarci in base al feedback che riceveremo...

cisc
28-08-2006, 11:48
il progetto è molto interessante, non conosco minimamenteo il C#, mentre conosco abbastanza bene Java e C++....perchè non farlo in C++!?:D:D

wisher
28-08-2006, 11:54
progetto interessante...
purtroppo non conosco C++, potrebbe essere l'occasione per impararlo...
per ora inizio a seguire gli sviluppi

aldonation
28-08-2006, 12:54
Per quanto riguarda il linguaggio verrà usato C# e non il C++ per alcuni motivi:

- E' il linguaggio con cui mi esprimo meglio e uso anche per lavoro
- E' simile a java e quindi rende facile il porting di I2P
- E' cross platform se compilato tramite mono (non servono librerie speciali)
- Ha una produttività migliore rispetto al C++

I motivi per non usare java li ho già scritti all'inizio del thread...il fatto che io sappia programmare in C# incide notevolmente sulla scelta del linguaggio, anche perchè i programmatori tendono ad avere un loro linguaggio preferito...detto questo però esiste la possibilità di creare parti di codice in C++ .NET cioè la versione di C++ compatibile con la piattaforma .NET. Penso che una migrazione in questo senso richieda più o meno lo stesso tempo che non imparare a usare le wxWidgets...se volete quindi fare qualche prova si può fare...

AngeL)
29-08-2006, 10:10
vorrei contribuire ma purtroppo conosco solo il C++ e un po' di java...
vuol dire che farò il betatester :D

Rhapsodyan [ITA]
29-08-2006, 17:48
Approfitto dell'Up quotidiano per annunciare che un nuovo programmatore (uliss3) con ottima esperienza alle spalle è entrato nel team. Per ora quindi siamo in 4 e il progetto è avviato ;)

pisto
29-08-2006, 18:10
farete di questo il "thread ufficiale" del progetto?

Rhapsodyan [ITA]
29-08-2006, 18:46
farete di questo il "thread ufficiale" del progetto?
Per quanto riguarda hwupgrade sì; considera che l'annuncio è stato postato anche altrove..Quindi appena avremo uno spazio su sourceforge avremo anche un forum dedicato, ma questo thread rimarrà sempre aggiornato con le ultime news ;)

71104
02-09-2006, 13:04
il figliuol prodigo è tornato e, fedele, è pronto a mettere in atto i vostri inegnamenti :D

http://www.hwupgrade.it/forum/showthread.php?p=13649519#post13649519

:fiufiu:


che la chiave privata fosse impossibile da trovare per il solo fatto che è un problema matematico ancora non risolto, sinceramente non me l'aspettavo :huh:

dato un numero prodotto di numeri primi esistono soltanto due numeri primi il cui prodotto corrisponde al numero iniziale; :read: a trovarli... :huh:


penitenza --> :muro: <-- dura lex sed lex

un giorno rideremo di tutto questo :cry:

71104
05-09-2006, 13:07
bah, non ne valeva la pena, è un trollazzo di pessima categoria (e un coglione) -.-'

ah, perdonate la mia grevità: volevo dire "di infima categoria" :asd:

cionci
05-09-2006, 18:50
bah, non ne valeva la pena, è un trollazzo di pessima categoria (e un coglione) -.-'

ah, perdonate la mia grevità: volevo dire "di infima categoria" :asd:
Mi sembra che tu abbia esagerato...mi rammarico solo di non aver visto prima la discussione, ma per il "coglione" una sospensione di 3 gg te la prendi.

71104
08-09-2006, 19:06
Mi sembra che tu abbia esagerato... mi ha dato del nerd frigido e non è la prima volta (un'altra volta mi ha dato del segaiolo, se vuoi provo a cercare la discussione)

mi rammarico solo di non aver visto prima la discussione, ma per il "coglione" una sospensione di 3 gg te la prendi. se l'avessi detto in maniera meno diretta come ha fatto lui con me sarei stato sospeso ugualmente?

PS: a voler mettere i puntini sulle i ha cominciato lui

aldonation
09-09-2006, 08:58
mi ha dato del nerd frigido e non è la prima volta (un'altra volta mi ha dato del segaiolo, se vuoi provo a cercare la discussione)

se l'avessi detto in maniera meno diretta come ha fatto lui con me sarei stato sospeso ugualmente?

PS: a voler mettere i puntini sulle i ha cominciato lui

Con chi ce l'hai? :eek:

EDIT: Sono un po' tardo...ho visto adesso :fagiano:

71104
11-09-2006, 10:40
mi ha dato del nerd frigido e non è la prima volta (un'altra volta mi ha dato del segaiolo, se vuoi provo a cercare la discussione)

se l'avessi detto in maniera meno diretta come ha fatto lui con me sarei stato sospeso ugualmente? up

71104
11-09-2006, 15:09
comunque a dire il vero c'è ancora una cosetta che non mi convince nella storia della crittografia asimmetrica :huh:

allora, io prendo due numeri grandi e primi e li moltiplico, e così ottengo un bel numeraccio che tutti sanno; però nessuno sa i due numeri primi. il problema è che i due numeri primi che io ho elaborato devono essere si grandi, ma piccoli abbastanza da poterli elaborare in un tempo ragionevole; e allora cosa impedisce al "man in the middle" di enumerare tutti i numeri primi fino a trovarne uno per cui il numeraccio è divisibile...? ci mette troppo tempo? no!! perché ci mette praticamente lo stesso tempo che ci ho messo io a trovarlo; anzi, ce ne mette di meno perché io di numeri primi ne ho dovuti trovare due, lui ne deve trovare uno solo...

o no? :wtf:

71104
11-09-2006, 15:12
e aggiungo che è anche possibile sapere fin dove dovrà arrivare al massimo il "man in the middle" nell'enumerazione dei primi: la radice quadrata del numeraccio. oltre quel limite è inutile andare avanti, se non hai trovato almeno un fattore non ne troverai nessun altro.

d'accordo che il numeraccio è numeraccio, ma tenete presente che più i numeri sono grandi meno ci mette la radice a farli tornare piccoli... :D

aldonation
11-09-2006, 15:28
I laboratori RSA offrono ricchi premi per chi riesce a fattorizzare i numeri che sono presenti sul loro sito...l'ultimo successo è stato su un numero di 640bit...per farlo è stato necessario un tempo-cpu di 30 anni...normalmente per operazioni sicure si usano chiavi da 2048bit...

Qua trovi il link http://www.rsasecurity.com/rsalabs/node.asp?id=2092

71104
11-09-2006, 15:31
I laboratori RSA offrono ricchi premi per chi riesce a fattorizzare i numeri che sono presenti sul loro sito...l'ultimo successo è stato su un numero di 640bit...per farlo è stato necessario un tempo-cpu di 30 anni...normalmente per operazioni sicure si usano chiavi da 2048bit...

Qua trovi il link http://www.rsasecurity.com/rsalabs/node.asp?id=2092 si ok... ma non hai capito la mia domanda ^^
colui che genera i primi, come fa a generarli abbastanza grossi in tempo utile? li prende online da questi laboratori RSA? e come mai non può prenderli anche il man in the middle?

aldonation
11-09-2006, 16:04
I numeri primi vengono calcolati al momento...si prende il numero generato da un PRNG sicuro e si fa in modo che possa essere un numero primo (deve essere dispari), quindi ci sono alcuni test di primalità che ti dicono se è un numero primo oppure no...se non è primo aggiungi 2 e continua fino a che non trovi un numero primo...l'operazione è piuttosto macchinosa, ma nulla in confronto a trovare i 2 primi che generano la chiave...

71104
11-09-2006, 16:14
I numeri primi vengono calcolati al momento...si prende il numero generato da un PRNG sicuro e si fa in modo che possa essere un numero primo (deve essere dispari), quindi ci sono alcuni test di primalità che ti dicono se è un numero primo oppure no...se non è primo aggiungi 2 e continua fino a che non trovi un numero primo... tutto ok, ma se c'è riuscito qualcun altro a fare un test di primalità in un tempo ragionevole ci può riuscire anche l'"uomo in mezzo".

l'operazione è piuttosto macchinosa, ma nulla in confronto a trovare i 2 primi che generano la chiave... ma l'uomo in mezzo non li deve mica trovare tutti e due: basta che ne trova uno per cui il "numeraccio" è divisibile (il numeraccio sarebbe una parte della chiave pubblica, come spiegato da PhantomX alla pagina precedente).

è ovvio che l'altro lo trova dividendo il numeraccio per quello che ha trovato.

aldonation
11-09-2006, 16:22
tutto ok, ma se c'è riuscito qualcun altro a fare un test di primalità in un tempo ragionevole ci può riuscire anche l'"uomo in mezzo". e per velocizzare l'operazione penso che sia possibile incrementare non solo di 2 ma anche di 2 * 3 * 5 * qualsiasi altro numero primo. infatti se incrementi di 2 un numero che non è multiplo di 2 ottieni un altro non-multiplo, ma la stessa cosa vale non solo per 2 ma per qualsiasi altro fattore primo.


Per questo motivo c'è un PRNG che deve soddisfare alcuni requisti di robustezza tipo non ripetibilità delle sequenze di numeri...per trovare il numero giusto il man in the middle deve avere lo stesso nostro risultato, cosa statisticamente impossibile...

dupa
11-09-2006, 16:31
Cosa intendete per P2P anonimo?
nel momento in cui si scarica un file, conosci l'IP della persona che te lo sta mandando

71104
11-09-2006, 16:33
Per questo motivo c'è un PRNG che deve soddisfare alcuni requisti di robustezza tipo non ripetibilità delle sequenze di numeri...per trovare il numero giusto il man in the middle deve avere lo stesso nostro risultato, cosa statisticamente impossibile... si ma l'algoritmo che lui segue è il seguente:

- genero un numero a caso
- faccio un test di primalità, che si può fare in due modi:
- ricerca di tutti i numeri primi finché non raggiungo o supero quello trovato a random: se lo supero allora non è primo
- "crivello di eratostene", impossibile perché nel caso di numeri così grandi richiede una quantità di memoria inaccettabile
- (esistono altri algoritmi per il test di primalità? non credo...)
- se questo numero non è primo incremento di 2 e vedo il prossimo

stando a quanto dici quindi l'uomo in mezzo deve fare molto di meno! infatti mentre chi genera i numeracci potrebbe essere costretto a ripetere i suoi lungherrimi test di primalità un numero potenzialmente elevato di volte, il man in the middle deve fare un solo test di primalità; e ad ogni numero primo che trova controlla se il numeraccio è divisibile per il primo trovato.

a meno che ripeto, non esistano algoritmi per i test di primalità che non richiedono di trovare tutti i numeri primi precedenti.

71104
11-09-2006, 16:34
Cosa intendete per P2P anonimo?
nel momento in cui si scarica un file, conosci l'IP della persona che te lo sta mandando ma il vantaggio sarebbe che solo voi due conoscete i vostri IP, e nessun altro

aldonation
11-09-2006, 16:35
Cosa intendete per P2P anonimo?
nel momento in cui si scarica un file, conosci l'IP della persona che te lo sta mandando

Se passi attraverso altri client che instradano il trasferimento per te non sai chi è che te lo manda effettivamente...

aldonation
11-09-2006, 16:45
a meno che ripeto, non esistano algoritmi per i test di primalità che non richiedono di trovare tutti i numeri primi precedenti.

Esistono...uno dei più conosciuti è il Miller-Rabin che controlla se un numero è probabilmente primo...
http://en.wikipedia.org/wiki/Miller-Rabin_primality_test

Per il resto se vuoi imparare come funziona la crittografia asimmetrica in dettaglio penso ti serva un buon libro oppure una lettura approfondita di qualche articolo su internet (per cominciare basta fare una ricerca su wikipedia)...per capirla poi in maniera profonda ci vogliono conoscenze matematiche fuori dalla norma...non è un argomento "da forum"...

dupa
11-09-2006, 16:48
Se passi attraverso altri client che instradano il trasferimento per te non sai chi è che te lo manda effettivamente...

ma in un pacchetto IP metti l'IP di destinazione independentemente dal percorso che sto pacchetto farà..

aldonation
11-09-2006, 16:56
ma in un pacchetto IP metti l'IP di destinazione independentemente dal percorso che sto pacchetto farà..

Se all'interno del network I2P vuoi mandare un pacchetto ad un client non glielo mandi direttamente, ma lo invii a degli intermediari che si incaricheranno di consegnare il pacchetto al destinatario. Non si manipola il pacchetto IP, ma si costruisce un nuovo protocollo al di sopra di questo. Se vuoi capire come funziona questo network nel dettaglio trovi tutto qua: http://dev.i2p.net/cgi-bin/cvsweb.cgi/i2p/router/doc/techintro.html?rev=HEAD

cionci
11-09-2006, 17:03
ma in un pacchetto IP metti l'IP di destinazione independentemente dal percorso che sto pacchetto farà..
Non necessariamente...volendo ogni macchina che instrada il pacchetto può conoscere solo l'hop successivo e quello precedente... In pratica si tratta di creare una specie di circuito virtuale sul quale far arrivare il pacchetto a destinazione... Ad un certo punto di questo percorso il pacchetto si fermerà, ma l'host precedente questo non lo sa... Lo stesso protocollo di routing potrebbe essere cifrato con le chiavi pubbliche dei vari host...

cionci
11-09-2006, 17:15
ma l'uomo in mezzo non li deve mica trovare tutti e due: basta che ne trova uno per cui il "numeraccio" è divisibile (il numeraccio sarebbe una parte della chiave pubblica, come spiegato da PhantomX alla pagina precedente).
Volendo al "man in the middle" si può non far conoscere il "numeraccio"...vedi l'algortmo Diffie-Hellman: http://en.wikipedia.org/wiki/Diffie-Hellman_key_exchange

-fidel-
11-09-2006, 17:40
Volendo al "man in the middle" si può non far conoscere il "numeraccio"...vedi l'algortmo Diffie-Hellman: http://en.wikipedia.org/wiki/Diffie-Hellman_key_exchange

Veramente Diffie Helmann soffre anch'esso dell'attacco Man in the Middle.

Comunque non ho letto tutti i post, vorrei però ricordarvi che la nuova versione di amule supporta l'"offuscamento". La nuova versione mi pare sia uscita proprio oggi...
Date prima un'occhiata alle nuove features di emule prima di buttarvi in un progetto così oneroso (leggendo brevemente le caratteristiche del programma da implementare non è che sia banale, personalmente di queste problematiche me ne occupo da più di un anno per progetti di sicurezza, e fare un progetto di quel tipo "from scratch" è piuttosto difficile: poi farlo in C# è un'impresa... troppo di alto livello)

71104
11-09-2006, 17:45
poi farlo in C# è un'impresa... troppo di alto livello) quali operazioni a basso livello sarebbero richieste che in C# non si possono fare per un progetto simile?

-fidel-
11-09-2006, 18:00
quali operazioni a basso livello sarebbero richieste che in C# non si possono fare per un progetto simile?

Garantire un vero anonimato della comunicazione (autenticazione + autorizzazione + integrità + segretezza) significa scendere in basso nello stack OSI (quantomeno per proteggersi il più possibile da eventuali intrusioni indesiderate). Con C# non so se puoi scendere più in basso del livello 7. In più, MS ha disabilitato con il SP2 l'uso dei raw socket, quindi...

EDIT: se poi vuoi solo cifrare solo la comunicazione, non è difficile, per quanto oneroso in termini di calcolo su host e di trasporto dei pacchetti cifrati su rete (almeno se usi cifratura asimmetrica).

71104
11-09-2006, 18:15
Garantire un vero anonimato della comunicazione (autenticazione + autorizzazione + integrità + segretezza) significa scendere in basso nello stack OSI (quantomeno per proteggersi il più possibile da eventuali intrusioni indesiderate). Con C# non so se puoi scendere più in basso del livello 7. In più, MS ha disabilitato con il SP2 l'uso dei raw socket, quindi... a parte che su Windows non esiste stack OSI, non è questo ciò che vogliono fare loro. loro vogliono creare un nuovo protocollo con nuovi algoritmi di routing, e le informazioni di routing nei pacchetti sono cifrate.

-fidel-
11-09-2006, 18:45
a parte che su Windows non esiste stack OSI

Come scusa? Non dire amenità, senza offesa.

non è questo ciò che vogliono fare loro. loro vogliono creare un nuovo protocollo con nuovi algoritmi di routing, e le informazioni di routing nei pacchetti sono cifrate.

Un nuovo protocollo applicativo ok, ma per implementare un algoritmo di routing nuovo devi modificare il pacchetto al livello 2 dello stack. Sono due cose ben diverse.

EDIT: nel caso di Windows, per lavorare al livello 2, hai bisogno di un nuovo driver per la scheda di rete, o (più ragionevolmente) un virtual driver che si interfacci con il driver esistente (in modalità promiscua se permesso dal sistema).

roby1483
11-09-2006, 19:07
Comunque non ho letto tutti i post, vorrei però ricordarvi che la nuova versione di amule supporta l'"offuscamento". La nuova versione mi pare sia uscita proprio oggi...
Se non mi sbaglio l'offuscamento inserito nella nuova versione di eMule (non so se anche aMule lo ha già implementato) non serve a garantire l'anonimato ma ad aggirare i filtri che i provider applicano al traffico P2P.

71104
11-09-2006, 19:14
Come scusa? Non dire amenità, senza offesa. a me puoi non credere, ma a MSDN?
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/NetXP_d/hh/NetXp_d/102gen_4d5061ed-f8ee-468b-9b77-babddf576ad0.xml.asp?frame=true
In Windows 2000 and later, network drivers implement the bottom four layers of the OSI Reference Model
Windows non ha uno stack OSI: ha solo i 4 livelli inferiori, che equivalgono a uno stack TCP/IP. mancano i livelli Presentazione e Sessione. prima hai parlato di livello 7, che su Windows non esiste.

Un nuovo protocollo applicativo ok, ma per implementare un algoritmo di routing nuovo devi modificare il pacchetto al livello 2 dello stack. e perché dovresti? non è necessario che un algoritmo di routing acquisisca dati di link state. sai cos'è il routing?

EDIT: nel caso di Windows, per lavorare al livello 2, hai bisogno di un nuovo driver per la scheda di rete, si chiama NDIS Miniport ed è una pessima idea: un NDIS Miniport fatto come Cristo comanda non trasmette informazioni di link state dell'altro capo del canale ad applicazioni user mode. senza contare che neanche servono: a che ti serve sapere lo stato del link di un solo router? il routing avviene a livello 3, non 2.

o (più ragionevolmente) un virtual driver questo sconosciuto :fagiano:

che si interfacci con il driver esistente non si può, e cosa sia la modalità promiscua lo sai solo te... intendevi "raw mode" per caso?

-fidel-
11-09-2006, 19:15
Se non mi sbaglio l'offuscamento inserito nella nuova versione di eMule (non so se anche aMule lo ha già implementato) non serve a garantire l'anonimato ma ad aggirare i filtri che i provider applicano al traffico P2P.

Per amule ancora nulla al momento mi sembra.
Cmq stavo leggendo anch'io di questa nuova features, ed è come dici, ma il modo in cui è implementata può essere però interessante per un progetto di questo tipo.
Per la serie, come li aggirano? Magari si trova qualche spunto interessante.

aldonation
11-09-2006, 19:32
Per amule ancora nulla al momento mi sembra.
Cmq stavo leggendo anch'io di questa nuova features, ed è come dici, ma il modo in cui è implementata può essere però interessante per un progetto di questo tipo.
Per la serie, come li aggirano? Magari si trova qualche spunto interessante.

Non ho idea di come sia fatta ma conoscendo i tentativi precedenti penso sia qualcosa che crittografa il traffico tra utenti...questo è lontano dal concetto di un p2p anonimo e serve solo per evitare che i provider filtrino il traffico...è quindi giusta l'idea degli sviluppatori di chiamare questa feature protocol obfuscation e non protocol encryption, che avrebbe fuorviato gli utenti dando loro una falsa sicurezza...un p2p anonimo è una cosa totalmente diversa...

-fidel-
11-09-2006, 19:36
a me puoi non credere, ma a MSDN?
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/NetXP_d/hh/NetXp_d/102gen_4d5061ed-f8ee-468b-9b77-babddf576ad0.xml.asp?frame=true

Windows non ha uno stack OSI: ha solo i 4 livelli inferiori, che equivalgono a uno stack TCP/IP. mancano i livelli Presentazione e Sessione. prima hai parlato di livello 7, che su Windows non esiste.

Ci credo all'MSDN, ma evidentemente non hai letto bene o non hai capito bene.
Microsoft Windows 2000 and later operating systems use a network architecture based on the seven-layer networking model developed by the International Standards Organization (ISO).
e

In Windows 2000 and later, network drivers implement the bottom four layers of the OSI Reference Model:

i primi 4 livelli sono gestiti dai drivers, il 5 ed il 6 da Winsock, il 7 sono i dati del pacchetto (forniti sempre da Winsock in modo trasparente), che esiste e come (se no come fai a leggere i dati)? Dire che il livello 7 in Windows non esiste è grossa. Ti consiglio un ripasso dello stack osi, della sua implementazione in Windows, e delle winsock.

e perché dovresti? non è necessario che un algoritmo di routing acquisisca dati di link state. sai cos'è il routing?
Credo di saperlo sufficientemente bene stai tranquillo. Evidentemente mi sono espresso male se ho fatto capire (almeno come hai capito tu) che quello sia l'unico metodo. Nello specifico, possiamo differenziare gli algoritmi di routing in
Routed protocols (quelli a livello 3) e Routing protocols (quelli di cui tu parli). Dipende da quello che si deve fare. Un progetto mi pare preveda anche riflessioni su questi argomenti.
si chiama NDIS Miniport ed è una pessima idea: un NDIS Miniport fatto come Cristo comanda non trasmette informazioni di link state dell'altro capo del canale ad applicazioni user mode. senza contare che neanche servono: a che ti serve sapere lo stato del link di un solo router? il routing avviene a livello 3, non 2.

questo sconosciuto :fagiano:

non si può, e cosa sia la modalità promiscua lo sai solo te... intendevi "raw mode" per caso?

Peccato, mi sa che invece sei tu a non conoscere... Cerca "modalità promiscua" o "promiscuous mode" su google. In particolare, questa modalità si realizza con i raw socket, semmai.
Ma sono sottigliezze terminologiche, ci siamo capiti mi pare.
Ah, tra l'altro non avevo neanche voglia di fare polemiche...

EDIT: corretto livello 2 con livello 3

-fidel-
11-09-2006, 19:40
Non ho idea di come sia fatta ma conoscendo i tentativi precedenti penso sia qualcosa che crittografa il traffico tra utenti...questo è lontano dal concetto di un p2p anonimo e serve solo per evitare che i provider filtrino il traffico...è quindi giusta l'idea degli sviluppatori di chiamare questa feature protocol obfuscation e non protocol encryption, che avrebbe fuorviato gli utenti dando loro una falsa sicurezza...un p2p anonimo è una cosa totalmente diversa...

Beh, allora niente spunti interessanti ;)

71104
11-09-2006, 19:51
il 5 ed il 6 da Winsock, controlla meglio

il 7 sono i dati del pacchetto ed esiste in TCP/IP come livello 5

Routed protocols (quelli a livello 2) a livello 2? e come mai qui (http://en.wikipedia.org/wiki/Routed_Protocols) come primo esempio di routed protocol ne appare uno di livello 3?

Peccato, mi sa che invece sei tu a non conoscere... Cerca "modalità promiscua" o "promiscuous mode" su google. ho dato una letta all'articolo di Wikipedia ma non è che abbia capito bene; sembra che sia una modalità di funzionamento che non fa uso di DMA... e per quanto riguarda i "virtual drivers"?

71104
11-09-2006, 19:52
EDIT: corretto livello 2 con livello 3 ah ecco ^^
comunque sia loro non hanno intenzione di reimplementare funzionalità di livello 2

-fidel-
11-09-2006, 20:17
controlla meglio[/QUOTE
Controllato, sia sui testi che su internet. Non potendoti passare il libro (:)) puoi leggere questo link (il primo che ho trovato), in particolare lo schema a fondo pagina:

http://telemat.die.unifi.it/book/1997/winsock_prg/wsk_doc1.html

[QUOTE=71104]ed esiste in TCP/IP come livello 5
Certo, e mi pare che Windows lo implementi il TCP/IP, quindi ha anche il livello 7 (cosa che tu dicevi essere addirittura non esistente in Windows...).

a livello 2? e come mai qui (http://en.wikipedia.org/wiki/Routed_Protocols) come primo esempio di routed protocol ne appare uno di livello 3?
Ho corretto per tempo un errore di digitazione (a fine giornata non sono al massimo della lucidità... :( pensavo al livello network e sono andato a finire al data-link...),

ho dato una letta all'articolo di Wikipedia ma non è che abbia capito bene; sembra che sia una modalità di funzionamento che non fa uso di DMA... e per quanto riguarda i "virtual drivers"?

Il modo promiscuo è una modalità della scheda di rete. Permette di far processare alla CPU l'intero pacchetto, senza alcun filtro: in questo modo puoi sapere tutto sul pacchetto. Ovviamente, la scheda di rete deve essere progettata per supportare questa modalità (non tutte le schede lo fanno, soprattutto per motivi di sicurezza), ed il driver deve permetteri di abilitare questa modalità. Purtroppo con WinXP SP2 i network drivers, che si occupano proprio dei primi 4 livelli dello stack OSI implementato da MS, non ti permettono più di attivare la modalità promiscua (ovvero non si possono più avere i raw socket), quindi i primi 4 livelli dello stack non sono più accessibili (lo hanno fatto, a detta di MS, perchè i raw socket erano usati solo dagli hackers...). Infatti alcune funzioni di Nmap su Windows XP SP2 non funzionano più.
Per quanto riguarda il "virtual driver": è un mio modo (noi lo usiamo spesso questo termine, mi sa che non è standard :)) per intendere l'interfacciamento con i network drivers di Windows (per accedere ai primi 4 livelli insomma).

EDIT: :mano: ?

EDIT 2: in effetti l'edit del mio post #92 è precedente come tempo al tuo post successivo di correzione :)

cionci
11-09-2006, 20:26
-fidel-: sicuro che non si possa più operare in raw mode in XP SP2 ? Allora roba tipo Ethereal e tutti i programmi che usano libpcap hanno smesso di funzionare ?

Comunque qui non si tratta di realizzare nessun driver: deve essere un protocollo sopra UDP...

71104
11-09-2006, 20:34
controlla meglio
Controllato, sia sui testi che su internet. Non potendoti passare il libro (:)) puoi leggere questo link (il primo che ho trovato), in particolare lo schema a fondo pagina:

http://telemat.die.unifi.it/book/1997/winsock_prg/wsk_doc1.html cioè i Windows Sockets 1.1 implementavano funzionalità di MIME Encoding, compressione, crittografia, adjournment, checkpointing e restarting?? che fissa!! :eek:
chissà perché l'hanno tolta tutta quella roba nella versione 2 :huh:

guarda, anche se fosse che Winsock ha tutte quelle funzionalità, già che stanno in Winsock significa che non stanno più nel network stack.

Certo, e mi pare che Windows lo implementi il TCP/IP, quindi ha anche il livello 7 (cosa che tu dicevi essere addirittura non esistente in Windows...). mi sfugge il ragionamento "Windows implementa TCP/IP" -> IMPLICA -> "il network stack ha 7 livelli" :wtf:

Per quanto riguarda il "virtual driver": è un mio modo (noi lo usiamo spesso questo termine, mi sa che non è standard :)) per intendere l'interfacciamento con i network drivers di Windows (per accedere ai primi 4 livelli insomma). il kernel si interfaccia coi network drivers; il kernel è un virtual driver? :wtf:

EDIT: :mano: ? c'è differenza tra litigare e precisare (fastidiosamente o meno); per me litigare attraverso Internet non ha senso, io preciso soltanto.
e precisare dal vivo invece non lo faccio perché dal vivo non sono così stronzo :D :D :D

considerami amico se ti farà sentire meglio; sappi solo che è un amico che potrebbe precisare :Prrr:

-fidel-
11-09-2006, 21:07
Intanto preciso subito una cosa:
c'è differenza tra litigare e precisare (fastidiosamente o meno); per me litigare attraverso Internet non ha senso, io preciso soltanto.
e precisare dal vivo invece non lo faccio perché dal vivo non sono così stronzo :D :D :D

considerami amico se ti farà sentire meglio; sappi solo che è un amico che potrebbe precisare :Prrr:
Mi era sembrato che la discussione stesse lentamente "scivolando", dopo che ho letto frasi del tipo:
sai cos'è il routing?
o
non si può, e cosa sia la modalità promiscua lo sai solo te...
poi ho visto che ti sei "ammorbidito", quindi l'iconcina era un tentativo (nota il punto interrogativo) per "suggellare" la mancata degenerazione del discorso.
Come penso hai notato, anche a me piace la precisione, quindi finchè precisi vai tranquillo con me, quando una cosa non ti è chiara/non ti torna è lecito fare domande. Mi pare del resto di averti fatto notare alcuni tuoi errori in modo sì diretto, ma non offensivo.

Per tutto il resto, continuiamo domani se per te va bene (o apriamo un altro thread, a questo punto :)) dal momento che sto uscendo per svagarmi un po' dopo una giornata di lavoro asfissiante, e davvero non ho più testa per approfondire ulteriormente il discorso al momento.

ka0s
11-09-2006, 21:09
Al di là delle tante chiacchiere che sono state fatte il progetto va avanti o no?

Io potrei essere interessato, anche se il C# non l'ho mai visto... però conoscendo java e c++ magari non è difficile nè oneroso da imparare...

la cosa mi interessa, fatemi sapere, magari con un pm! ;)

-fidel-
11-09-2006, 21:16
-fidel-: sicuro che non si possa più operare in raw mode in XP SP2 ? Allora roba tipo Ethereal e tutti i programmi che usano libpcap hanno smesso di funzionare ?

Comunque qui non si tratta di realizzare nessun driver: deve essere un protocollo sopra UDP...

Purtroppo sì. Devo dirti che non so fino a che punto gli hanno oscurati, ma in rete troverai facilmente molti forum di gente indignata per tale comportamento (molti software non funzionano più, o non possono fornire più tutte le loro funzionalità, dal momento che sono stati catalogati come "strumenti di hacking" da MS). NMap ne è sfortunatamente un esempio.

EDIT: tornando brevemente in topic (poi vado ;)) il discorso è andato poi da un'altra parte per altri motivi, ma mi è stato subito detto cosa si voleva precisamente fare (ho infatti esordito nel mio primo post con la frase "Premetto che non ho letto tutti i post").

71104
11-09-2006, 21:32
Per tutto il resto, continuiamo domani se per te va bene (o apriamo un altro thread, a questo punto :)) dal momento che sto uscendo per svagarmi un po' dopo una giornata di lavoro asfissiante, e davvero non ho più testa per approfondire ulteriormente il discorso al momento. come vuoi, mica ti obbligo :)

Rhapsodyan [ITA]
11-09-2006, 21:40
Al di là delle tante chiacchiere che sono state fatte il progetto va avanti o no?

Io potrei essere interessato, anche se il C# non l'ho mai visto... però conoscendo java e c++ magari non è difficile nè oneroso da imparare...

la cosa mi interessa, fatemi sapere, magari con un pm! ;)

Certo che il progetto va avanti. Abbiamo terminato di tradurre il client I2P in C# giusto in questi giorni.
Se conosci approfonditamente il java non dovresti avere problemi col C#..
Se hai un contatto MSN è meglio..puoi aggiungermi ai contatti! ;)

-fidel-
11-09-2006, 21:53
Giusto una cosa e vado (mi stanno strattonando :)):
cioè i Windows Sockets 1.1 implementavano funzionalità di MIME Encoding, compressione, crittografia, adjournment, checkpointing e restarting?? che fissa!! :eek:
chissà perché l'hanno tolta tutta quella roba nella versione 2 :huh:
guarda, anche se fosse che Winsock ha tutte quelle funzionalità, già che stanno in Winsock significa che non stanno più nel network stack.
Argh... Winsock implementa il livello 5 e 6: NON è comunque mica detto che l'implementazione dello stack OSI debba prevedere TUTTE le funzionalità previste dallo standard...
OSI è solo un modello, ciò che implementi nel dettaglio di ogni livello dipende da come implementi tutto lo stack di rete.
Stai facendo parecchia confusione mi pare, se dici che WinSock non sta nel network stack di Windows. Non confondere lo standard OSI con l'implementazione (realizzazione) dello stack OSI da parte del SO (è il modello/concetto che viene seguito: fondamentalmente la stratificazione delle varie funzionalità fornite).

EDIT: uff, se continuo così dovrò aprire un altro thread per forza, invece di fare flood in questo thread :doh:

dupa
11-09-2006, 22:27
Se all'interno del network I2P vuoi mandare un pacchetto ad un client non glielo mandi direttamente, ma lo invii a degli intermediari che si incaricheranno di consegnare il pacchetto al destinatario. Non si manipola il pacchetto IP, ma si costruisce un nuovo protocollo al di sopra di questo. Se vuoi capire come funziona questo network nel dettaglio trovi tutto qua: http://dev.i2p.net/cgi-bin/cvsweb.cgi/i2p/router/doc/techintro.html?rev=HEAD

secondo me è in sostanza una scarica di traffico generata per nulla, e un sacco di banda inutilmente utilizzata sugli hop che fanno da intermediari.

k0nt3
11-09-2006, 22:33
secondo me è in sostanza una scarica di traffico generata per nulla, e un sacco di banda inutilmente utilizzata sugli hop che fanno da intermediari.
non inutilmente! per l'anonimato

cionci
11-09-2006, 22:33
secondo me è in sostanza una scarica di traffico generata per nulla, e un sacco di banda inutilmente utilizzata sugli hop che fanno da intermediari.
Se vuoi che il peer-to-peer sia anonimo è l'unica soluzione...

dupa
11-09-2006, 22:34
i livelli iso/osi son una cosa che sta giusto sui libri di scuola, per il resto la realtà è ben diversa.

dupa
11-09-2006, 22:36
Se vuoi che il peer-to-peer sia anonimo è l'unica soluzione...
sì ma in sostanza allora fate come freenet, una persona che partecipa al network potrebbe trasmettere/hostare a sua insaputa, dati pedo-pornografici o altra robaccia simile.

cionci
11-09-2006, 22:40
Fate ? Fanno :D

-fidel-
12-09-2006, 07:43
sì ma in sostanza allora fate come freenet, una persona che partecipa al network potrebbe trasmettere/hostare a sua insaputa, dati pedo-pornografici o altra robaccia simile.

Sarebbe possibile una qualche forma di controllo da parte dei singoli partecipanti alla rete?

aldonation
12-09-2006, 08:06
Diciamo che nessuna rete è inviolabile, basta conoscere tutto di essa...le forze dell'ordine in caso di scambio di dati pedopornografici o informazioni terroristiche (i luoghi comuni dell'anonimità) possono risalire a chi sono gli effettivi colpevoli...ci vorrà sicuramente + tempo ma non è una cosa impossibile...impossibile invece sarebbe per una casa discografica sapere chi denunciare, senza ricorrere alle forze dell'ordine per ogni file condiviso, cosa che penso sarà difficile...in tal caso basterà aumentare il numero di hop per avere una maggiore sicurezza, con buona pace dei criminali veri...

cisc
12-09-2006, 11:36
Diciamo che nessuna rete è inviolabile, basta conoscere tutto di essa...le forze dell'ordine in caso di scambio di dati pedopornografici o informazioni terroristiche (i luoghi comuni dell'anonimità) possono risalire a chi sono gli effettivi colpevoli...ci vorrà sicuramente + tempo ma non è una cosa impossibile...impossibile invece sarebbe per una casa discografica sapere chi denunciare, senza ricorrere alle forze dell'ordine per ogni file condiviso, cosa che penso sarà difficile...in tal caso basterà aumentare il numero di hop per avere una maggiore sicurezza, con buona pace dei criminali veri...

tu dici, partendo dal pc destinazione, è possibile per le forze dell'ordine risalire al pc sorgente !? O anche decriptare i msg e analizzare quindi anche il traffico di rete in un particolare nodo!?(cosa alquanto difficile, se si utilizzando chiavi con un numero considerevole di bit...) penso che la questione etica nelle reti anonime debba essere considerata, partendo dal preosupposto che il vostro software utilizza una rete già esistente, è abbastanza facile giungere alla conclusione che chi non abbia nulla da nascondere possa benissimo utilizzare software quali emule, e che quindi i potenziali usufruitori di tale software siano persone che vogliano scaricare musica illegalmente, ma anche scambiarsi come già detto dati pedopornografici o informazioni terroristiche, ed indubbiamente tale software facilità queste attività, e rende più difficile, come hai appunto già detto, il lavoro delle forze dell'ordine......

71104
12-09-2006, 12:17
Argh... Winsock implementa il livello 5 e 6: NON è comunque mica detto che l'implementazione dello stack OSI debba prevedere TUTTE le funzionalità previste dallo standard... e Winsock quali prevede invece?

Stai facendo parecchia confusione mi pare, se dici che WinSock non sta nel network stack di Windows. il network stack include solo i drivers; i Windows Sockets non stanno in un driver. e, per quanto se ne possa sapere, non fanno nulla che rientri nelle funzionalità di un network stack.

vuoi sapere come si chiama il driver che implementa il network stack?

aldonation
12-09-2006, 13:51
tu dici, partendo dal pc destinazione, è possibile per le forze dell'ordine risalire al pc sorgente !? O anche decriptare i msg e analizzare quindi anche il traffico di rete in un particolare nodo!?(cosa alquanto difficile, se si utilizzando chiavi con un numero considerevole di bit...) penso che la questione etica nelle reti anonime debba essere considerata, partendo dal preosupposto che il vostro software utilizza una rete già esistente, è abbastanza facile giungere alla conclusione che chi non abbia nulla da nascondere possa benissimo utilizzare software quali emule, e che quindi i potenziali usufruitori di tale software siano persone che vogliano scaricare musica illegalmente, ma anche scambiarsi come già detto dati pedopornografici o informazioni terroristiche, ed indubbiamente tale software facilità queste attività, e rende più difficile, come hai appunto già detto, il lavoro delle forze dell'ordine......

Ci sono molti modi in cui le forze dell'ordine possono agire, anche se il motivo per cui esiste questo software è rendere difficile la persecuzione dell'utente comune, come succede negli stati uniti...se vengono commesse infrazioni gravi gli utenti possono essere individuati, mentre per infrazioni lievi non è conveniente andare alla caccia dei colpevoli...è un gioco al rialzo con chi in questi anni ha cominciato a colpire la gente comune, i loro stessi clienti, per ricavarne ancora più denaro e per difendere la propria esistenza, che viene messa in crisi dalla diffusione di internet...la gente che invece lucra su quello che scarica non usa emule perchè è troppo lento, figurarsi il nostro client...esistono ring ftp, server irc che sono molto + aggiornati e soprattutto sono privati...ci sono quindi modi migliori per non essere individuabili e la nostra applicazione non cambierà certo questo stato di cose...

Riassumendo: i criminali veri possono essere individuati comunque, mentre i ragazzini che scaricano qualche canzone perchè non hanno un soldo in tasca possono farlo senza aver paura di beccarsi una denuncia...

71104
12-09-2006, 14:01
Riassumendo: i criminali veri possono essere individuati comunque, mentre i ragazzini che scaricano qualche canzone perchè non hanno un soldo in tasca possono farlo senza aver paura di beccarsi una denuncia... ma è comunque un reato: il fatto che abbiano finito la loro paghetta settimanale non li giustifica, aldilà di tutti i discorsi circa la (dubbia IMHO) moralità del modo in cui agisce la SIAE.

voi non state creando uno strumento per commettere infrazioni, ma per difendere la sacrosanta privacy. al di là di questo, condividere materiale protetto da copyright è un reato.

aldonation
12-09-2006, 14:15
ma è comunque un reato: il fatto che abbiano finito la loro paghetta settimanale non li giustifica, aldilà di tutti i discorsi circa la (dubbia IMHO) moralità del modo in cui agisce la SIAE.

voi non state creando uno strumento per commettere infrazioni, ma per difendere la sacrosanta privacy. al di là di questo, condividere materiale protetto da copyright è un reato.

Attualmente è un reato, almeno da noi...questo non vuol dire che questo software non possa far capire alle multinazionali del contenuto che stanno perseguendo la via sbagliata...e magari far tornare qui da noi le sanzioni amministrative, com'erano prima di urbani (d'accordo, sarebbe troppo bello cambiare il mondo con un programma)...poi se uno ha la ferrari e infrange i limiti di velocità sono affari suoi, nessuno però lo limita nella sua decisione di fare i 300 in autostrada (è legale vendere automobili che vanno oltre ai limiti)...ne gli dice che la ferrari si usa solo per andare a 300, mentre per rimanere sotto ai limiti dovrebbe prendersi una panda...

cionci
12-09-2006, 14:39
voi non state creando uno strumento per commettere infrazioni, ma per difendere la sacrosanta privacy. al di là di questo, condividere materiale protetto da copyright è un reato.
Ribadisco il concetto espresso da 71104 che deve essere ban chiaro a tutti i partecipanti di questa discussione...

-fidel-
12-09-2006, 15:24
il network stack include solo i drivers; i Windows Sockets non stanno in un driver. e, per quanto se ne possa sapere, non fanno nulla che rientri nelle funzionalità di un network stack.

Dai non ci attacchiamo alla singola parola: mi sembra chiaro che ho detto che Winsock implementa i livelli 5 e 6 del modello OSI, mentre i network drivers si occupano dei primi 4 livelli del modello....... Se vogliamo chiamare "network stack" i primi 4 livelli va pure bene, ma non prendiamoci in giro: mi pareva di aver spiegato abbastanza bene la cosa fin dai post #92 e #95 :rolleyes:
Comunque per quanto mi riguarda la finisco qui :)

-fidel-
12-09-2006, 15:25
Attualmente è un reato, almeno da noi...questo non vuol dire che questo software non possa far capire alle multinazionali del contenuto che stanno perseguendo la via sbagliata...e magari far tornare qui da noi le sanzioni amministrative, com'erano prima di urbani (d'accordo, sarebbe troppo bello cambiare il mondo con un programma)...poi se uno ha la ferrari e infrange i limiti di velocità sono affari suoi, nessuno però lo limita nella sua decisione di fare i 300 in autostrada (è legale vendere automobili che vanno oltre ai limiti)...ne gli dice che la ferrari si usa solo per andare a 300, mentre per rimanere sotto ai limiti dovrebbe prendersi una panda...

Mmhhh, come detto da 71104 e da cionci, rimane pur sempre un reato, e non sempre la via per cambiare una regola è quella di infrangerla...

PhantomX
12-09-2006, 17:13
sperando di essere utile vi segnalo un altro progetto analogo al vostro, si chiama mute, anche se non l ho mai provato.

http://en.wikipedia.org/wiki/MUTE

magari vi serve per trarre qualche idea utile

bye!

71104
12-09-2006, 17:46
Ribadisco il concetto espresso da 71104 che deve essere ban chiaro a tutti i partecipanti di questa discussione... messaggio subliminale per suggerire le possibili conseguenze? :D :D :D

aldonation
12-09-2006, 19:02
sperando di essere utile vi segnalo un altro progetto analogo al vostro, si chiama mute, anche se non l ho mai provato.

http://en.wikipedia.org/wiki/MUTE

magari vi serve per trarre qualche idea utile

bye!

Grazie per la segnalazione...
Quel progetto è stato uno dei primi (se non il primo) ad implementare il modello di routing basato sul comportamento delle formiche in cerca di cibo...contiene alcune falle di sicurezza che sono state corrette da gwren nella realizzazione del suo client anonimo Ants, che è un altro progetto molto interessante (anche perchè il dev è italiano ;))
Penso che prenderemo qualche spunto da questo client, visto che ci sono parecchie idee valide...

dupa
21-09-2006, 18:47
dove posso scaricare l'ultima release del vostro codice? mi è venuta la curiosità di buttarci un occhio.

aldonation
24-09-2006, 21:23
dove posso scaricare l'ultima release del vostro codice? mi è venuta la curiosità di buttarci un occhio.

Ti mando un MP con il link...c'è solo la parte client I2P per ora...

stex21
27-09-2006, 16:30
complimenti, ottimo progetto, vorrei dare una mano solo ke nn conosco il linguaggio in quanto so solo c++ e visual basic. cmq mi propongo come betatester molto volentieri. :)

blackbit
13-12-2006, 13:46
il progetto è ottimo, ma avrebbe non poche implicazioni legali... nn piacerà a nessuno!!! le major discografiche scateneranno il putiferio e ti faranno chiudere.

In ogni caso nn mi è chiara una cosa...

ammettiamo che io usi emule... se lo impostassi su una porta non convenzionale tipo la 59426, se crittografassi i dati in entrata e uscita e permettessi la connessione soltanto a client crittografati, non sarei al sicuro? è una cosa che si può già fare tramitite 2 caselline

cmq c'è già un progetto simile, si chiama mute... è un programma, da parecchio tempo. il trasferimento avviene in charo ma gli ip sono completamente camuffati

pisto
13-12-2006, 14:46
in emule non vengono cifrati i dati, ma messi solo perché gli isp non possano analizzare e quindi rallentare il traffico. non c'è nessun scambio di chiavi o similari. almeno, questo è quello che ho letto.
ho notato però che emule con l'offuscamento crea una connessione con ssl, probabilmente al server :confused:

blackbit
13-12-2006, 22:40
e non sarebbe già sicuro così?

se l'isp non 'sa' che stai usando emule xkè è offuscato dalla crittografia e gira su un'altra porta (e non sa quale)... qual'è il problema? non penso ke ki di dovere si metta a sniffare tutto il traffico su tutte le porte di un certo range di ip, di decifrare ciò che passa e di dedurne in tempo utile la presenza o meno di licenze valide..

e ripeto, in tempo utile... visto ke già dopo 24 ore è 'passato' tanto di quel traffico sullo stesso ip che magari ha girato altre 30-40 persone... e magari dopo 1 settimana il tuo isp cancella anke i log... nessuno saprà più ki era quell'ip

per non parlare della potenza di calcolo necessaria a sniffare il traffico su ogni porta su un decente numero di pc! e non è possibile senza autorizzazioni specifiche (xkè si lederebbe la privacy)

e poi? magari l'ip è di un computer di un'ufficio... o magari l'ip di uno studio dentistico con rete wireless che utilizza comodamente un ragazzo della cooperativa accanto... e mò vallo a trovare! :sofico:

aldonation
14-12-2006, 08:56
Il problema non è l'ISP...sono gli altri componenti del network P2P...
Quando hai accesso ad un server (spia) con una connessione offuscata questo può fare comunque un bel po' di datamining sulle abitudini degli utenti, conoscere i tuoi files condivisi, quello che stai cercando e se sei un lowid sanno anche quando cominci a scaricare qualcosa...l'offuscamento serve solo ad evitare i filtri degli ISP...

blackbit
14-12-2006, 13:44
Quando hai accesso ad un server (spia) con una connessione offuscata questo può fare comunque un bel po' di datamining sulle abitudini degli utenti, conoscere i tuoi files condivisi, quello che stai cercando e se sei un lowid sanno anche quando cominci a scaricare qualcosa

e chi mi dice che nella rete anonima che creerete nn si inseriscano dei server spia?!

cionci
14-12-2006, 16:53
e chi mi dice che nella rete anonima che creerete nn si inseriscano dei server spia?!
Infatti...bastano anche dei client spia ;)

blackbit
15-12-2006, 13:26
Infatti...bastano anche dei client spia ;)

nn risponde più nessuno? mi sa che abbiam centrato un problema di impossibile soluzione... alla fine, senza server spia, anche emule sarebbe sicuro.

pisto
15-12-2006, 16:56
per me è un problema che non ha soluzione in nessun campo (vedi spie nelle guerre e fai un confronto...) cmq credo che il progetto mira rendere difficile il compito di "spie" che si propongano di controllare il traffico di più utenti (vedi isp o i server di emule) quindi in linea di massima questo nuovo client sarebbe + sicuro.

naturalmente non c'è problema se non scarichi file illegalmente :ciapet:

stex21
08-01-2007, 20:19
naturalmente non c'è problema se non scarichi file illegalmente :ciapet:
:D :D :D :D :D

71104
08-01-2007, 23:19
nn risponde più nessuno? mi sa che abbiam centrato un problema di impossibile soluzione... alla fine, senza server spia, anche emule sarebbe sicuro. provo a rispondere io... :p

la risposta per il server spia è: chissenefrega. il server non vede il contenuto dei files, quindi non può essere sicuro che contengano materiale protetto da copyright e non può condannarmi per nulla.

la risposta per il client spia invece è: non esiste soluzione. se permetti a chiunque di scaricare i tuoi files a contenuto protetto, vuol dire che lo stai permettendo anche alla legge. di conseguenza a chi ti vuole perseguire basta scaricare uno dei tuoi files a contenuto presumibilmente protetto.