Xander Posted December 22, 2010 Report Posted December 22, 2010 chiar daca e chat room tot poti sa il faci ... cu putina gandire (un chat room intre zece persoane poate fi gandit ca 10 oameni fiecare avand sesiune de mesaje cu fiecare... deci nu mai face serverul broadcast-ul ... ci face doar forward la mesajele primite de la un client pentru toti ceilalti Quote
xpt1 Posted December 24, 2010 Report Posted December 24, 2010 Si cum se face cu diferenta dintre privatekey si publickey? privatekey este publickey cryptat sau invers, ori este alta legatura? sau publckek e pentru cryptarea mesajelor, iar privatekey este pentru autentificare?Dar nu, mai bine, fiecare user sa primeasca de la celalalt o cheie de decryptare, criptata (folosind mai multi algoritmi + un algoritm care, la logare, sa selecteze o ordine aleatorie, pentru algoritmii folositi si numarul lor >3), si cheia de decryptare sa fie obtinuta conform cheii de criptare a parolei, trimisa de celalalt?Adica:A este un user, iar B, celalalt. In fiecare pas, B si A sunt comutativi.1. A se logheaza.2. A genereaza o cheie (privatekeyA)3. A genereaza o (alta) cheie (publickeyA)4. A trimite publickeyA lui B (direct, prin IP, bineinteles, cryptata intr-un alt algoritm, identic in toti clientii)5. B foloseste publickeyA pentru a crypta privatekeyB, obtinand recureekyB6. B trimite securekeyB lui A.7. A decrypteaza securekeyB, cu ajutorul publickeyA, obtinand privatekeyB8. A trimite mesaje cryptate cu privatekeyA.9. A primeste mesaje si le afiseaza (pe ecran) decriptate conform privateketB Daca nu ma inteles, corect, ceva, va rog sa ma luminati!O zi buna! Quote
Xander Posted December 25, 2010 Report Posted December 25, 2010 ai cautat si tu pe google public key cryptography?pe scurt:public key=cheie publica (vizibila si altora)private key=cheie privata (vizibila doar celui caruia ii apartine)cum se creaza cheile:e destul de complicat ideea e ca sunt generate pe baza unor numere prime foarte mari si sunt construite in asa fel incat cu cheia publica poti doar sa encriptezi datele si cu cea privata doar sa decriptezi si cheia privata nu poate fi computata(usor) stiind cheia publica Quote
phreak Posted December 25, 2010 Report Posted December 25, 2010 Pe scurt:- se creeaza private key-u care e folosit NUMAI pentru decriptare si.. este privata.- din private key se formeaza public key care e folosita NUMAI pentru encriptare.Pentru mai multe detalii citeste atent RSA - Wikipedia, the free encyclopedia Quote
nightkhaos Posted January 14, 2011 Author Report Posted January 14, 2011 Poti face un chat open source foarte secure . Criptezi conversatiile cu RSA. Fiecare user isi face frumos o cheie publica RSA , la logare o trimite la server iar serverul o retine pentru sesiunea respectiva.Fiecare user intr-un chat room va cripta mesajele cu cheia publica a serverului , mesajele cand ajung la server sunt decriptate cu cheia privata si trimise recriptate la fiecare user in parte ( cu cheia lui ) .In modul asta tot chatul e securizat, prin sniffing e imposibil sa decriptezi conversatiileRSA se sparge relativ usor cu wiener sau CRT(teorema chineza a resturilor) pentru securitate propun un vpn (sau un tcp/ip stack construit de la 0 de noi)REVIN CU EDIT Parerea mea e ca RSA e de domeniul trecutului iar criptografia cu cheie publica de care vorbesc toti aici deja e depasita:) ... cel mai bine e ca pe partea de securitate sa incercam sa stabilim o conexiune privata si criptata (SSL/TSL) de tipul point 2 point intre noi si server fiecare dintre noi primeste un certificat sau o semnatura digitala.(imi pare rau ca raspund cu intarziere dar am avut alte prioritati momentan)In primul rand ne gandim pe ce tip de OS se indreapta clientul nostru!;1.Windows2.UNIX BASED(aici intra tot ce inseamna linux si mac os)In caz de se aleg ambele recomand JAVA Quote
phreak Posted January 14, 2011 Report Posted January 14, 2011 Parerea mea e ca RSA e de domeniul trecutului iar criptografia cu cheie publica de care vorbesc toti aici deja e depasita stabilim o conexiune privata si criptata (SSL/TSL) De ce te bagi in seama daca nu stii despre ce vorbesti? SSL/TLS folosesc RSA , daca e stricat RSA-ul e stricat si SSL-u.De ce sa recomanzi java cand ai c++? Quote
nightkhaos Posted January 14, 2011 Author Report Posted January 14, 2011 Stiu ce vorbesc tu ai spus clar sa folosim RSA pentru comunicatie si ti-am explicat ca nu are nici un rost sa faci o comunicatie client- server in care mesajele sunt criptate cu RSA ... criptografia cu cheie publica asta FACE e un schimb de mesaje criptate iar (SSL/TSL) e un layer criptat:| si nu implica RSA neaparat e un protocol peste comunicatie care este criptat(SECURE SOCKET LAYER) poate foloseste RSA ce folosesti sau ce stii tu dar el e conceput in asa fel incat sa foloseasca ce criptosistem vrei tu eu recomand BLOWFISH care parerea mea e cel mai smecher la ora actuala.Ba mai mult ca sa faci o conexiune cum ai spus tu cu cheie publica iti trebuie un Checksum/Hash pentru a verifica integritatea datelor,iar acest lucrul iti lasa o vulnerabilitate destul de mare de rezolvat Quote
wvw Posted January 14, 2011 Report Posted January 14, 2011 (edited) Stiu ce vorbesc tu ai spus clar sa folosim RSA pentru comunicatie si ti-am explicat ca nu are nici un rost sa faci o comunicatie client- server in care mesajele sunt criptate cu RSA ... criptografia cu cheie publica asta FACE e un schimb de mesaje criptate iar (SSL/TSL) e un layer criptat:| si nu implica RSA neaparat e un protocol peste comunicatie care este criptat(SECURE SOCKET LAYER) poate foloseste RSA ce folosesti sau ce stii tu dar el e conceput in asa fel incat sa foloseasca ce criptosistem vrei tu Folsim un algoritm asimetric (gen RSA sau ceva bazat pe problema logaritmului discret - ElGamal, Diffie-Hellman sau chiar ?i ceva bazat pe curbe eliptice) pentru schimbul de chei. ?i apoi un cifru bloc (AES sau Serpent; restul nu mai conteaz?) pentru a cripta/decripta comunica?ia. Nota bene: pentru un volum mare de date nu se folosesc algoritmii asimetrici. Sunt prea len?i. eu recomand BLOWFISH care parerea mea e cel mai smecher la ora actuala.Huh? Dac? spuneai Twofish (care este un Blowfish îmbun?t??it), aveai un "mmkay" din partea mea. AES-ul ce are? Sau Serpent? Ba mai mult ca sa faci o conexiune cum ai spus tu cu cheie publica iti trebuie un Checksum/Hash pentru a verifica integritatea datelor,iar acest lucrul iti lasa o vulnerabilitate destul de mare de rezolvatOK, aici m-ai pierdut.Apropo, http://en.wikipedia.org/wiki/Skype_security A?i auzit de Skype, nu? Edited January 14, 2011 by wvw Quote
johnny5 Posted January 14, 2011 Report Posted January 14, 2011 (edited) Eu zic ca sunt multe pareri nimic concret ... mai bine sa inceapa cineva ... ca e in java sau c++ sau VB sau CSHARP ... egal... impoartant e sa fie mai multi care stiu programare in limbajul in care se incepe proiectul ... si pe langa designeri care sa ii dea o forma ... un aspect placut ... Daca am timp sa vad daca reusesc sa fac ceva ... ca idee ... am sa incerv in VB ... si daca e k am sa va pun la dispozitie sursa ...P.S. nu ma intereseaza banii in proectul asta doar sa invat daca se realizeaza in VB ar fi putin mai simplu desi nu stiu nici VB foarte bine ... dar nu strica ... merita incercat ... ... parerea mea ... Edited January 14, 2011 by johnny5 Quote
phreak Posted January 15, 2011 Report Posted January 15, 2011 Stiu ce vorbesc tu ai spus clar sa folosim RSA pentru comunicatie si ti-am explicat ca nu are nici un rost sa faci o comunicatie client- server in care mesajele sunt criptate cu RSA ... criptografia cu cheie publica asta FACE e un schimb de mesaje criptate iar (SSL/TSL) e un layer criptat:| si nu implica RSA neaparat e un protocol peste comunicatie care este criptat(SECURE SOCKET LAYER) poate foloseste RSA ce folosesti sau ce stii tu dar el e conceput in asa fel incat sa foloseasca ce criptosistem vrei tu eu recomand BLOWFISH care parerea mea e cel mai smecher la ora actuala.Ba mai mult ca sa faci o conexiune cum ai spus tu cu cheie publica iti trebuie un Checksum/Hash pentru a verifica integritatea datelor,iar acest lucrul iti lasa o vulnerabilitate destul de mare de rezolvatTransport Layer Security - Wikipedia, the free encyclopedia Implica NEAPARAT public key cryptography si daca nu e securizat sistemul de cheie publica atunci se duce tot layeru securizat . Daca-ti poate decripta ce ai trimis tu criptat cu cheia publica adica-ti afla cheia simetrica poate decripta orice mesaj trimis/primit de tine de-acum incolo. Quote
nightkhaos Posted January 15, 2011 Author Report Posted January 15, 2011 Folsim un algoritm asimetric (gen RSA sau ceva bazat pe problema logaritmului discret - ElGamal, Diffie-Hellman sau chiar ?i ceva bazat pe curbe eliptice) pentru schimbul de chei. ?i apoi un cifru bloc (AES sau Serpent; restul nu mai conteaz?) pentru a cripta/decripta comunica?ia. Nota bene: pentru un volum mare de date nu se folosesc algoritmii asimetrici. Sunt prea len?i. Huh? Dac? spuneai Twofish (care este un Blowfish îmbun?t??it), aveai un "mmkay" din partea mea. AES-ul ce are? Sau Serpent? OK, aici m-ai pierdut.Apropo, Skype security - Wikipedia, the free encyclopedia A?i auzit de Skype, nu?Daca te uiti atent e ceea ce am spus eu .... el foloseste criptografie publica cu RSA pentru autentificare iar la autentificare se trimite un hash al parolei(pentru a verifica integritatea). deci serverul are 2 perechi de chei de forma (n,e)(cheia publica) si (n,d) cheia privata iar clientul la fel (n,e),(n,d) in momentul in care clientul vrea sa trimita un mesaj cripteaza mesajul cu cheia lui publica dupa un padding scheme(care se gasesc o droaie pe google) pentru autentificare. Pentru comunicatie se stabileste o conexiune (SSL/TSL) criptata cu AES....NU inteleg cu ce e asa diferit fata de ce am spus eu:) ...Probabil sunt multi programatori ce cunosc multe limbaje de programare ca sa putem lucra toti la acelasi proiect folosind mai multe limbaje de programare, vreau ca fiecare dintre voi care vreti sa va implicati sa spuneti ce limbaj stiti , in ce masura, care e cel mai amplu program facut de voi.Pentru cei care se cred prea buni pentru asa ceva ii rog frumos sa nu comenteze sa nu posteze aiurea samd.Va multumesc!http://en.wikipedia.org/wiki/Blowfish_(cipher)Poate cititi si va documentati inainte sa comentati POATE VEDETI DIFERENTA DINTRE BLOWFISH SI AES (NU EXISTA O CRIPTANALIZA CARE SA SPARGA UN BLOWFISH IN FULL ROUND) ... SCHIMBUL DE KEY CU BLOWFISH ARE 4 KB DE DATE,FOOTPRINTUL CONSUMA 4KB RAM....e un mod de a cripta mult superior AES/SERPENT Quote
cmiN Posted January 15, 2011 Report Posted January 15, 2011 Pana la partea de encriptie faceti macar serverul / clientul care comunica asa in plain. Din curiozitate ar iesi ceva gen chat (adica fiecare se logheaza la sv si vorbeste cu fiecare) sau ceva bazat pe conturi, o baza de date si lista de contacte ? Quote
nightkhaos Posted January 15, 2011 Author Report Posted January 15, 2011 Transport Layer Security - Wikipedia, the free encyclopedia Implica NEAPARAT public key cryptography si daca nu e securizat sistemul de cheie publica atunci se duce tot layeru securizat . Daca-ti poate decripta ce ai trimis tu criptat cu cheia publica adica-ti afla cheia simetrica poate decripta orice mesaj trimis/primit de tine de-acum incolo.VORBEAM DE RSA nu de public key cryptographycmiN ,poate binedispune un admin de a ne furniza un DLL cu un API de logare in cazul in care e ok sa returneza 1 sau true in caz de nu e ok sa returneze 0 sau false , sa se poata loga doar userii comunitatii... Quote
wvw Posted January 15, 2011 Report Posted January 15, 2011 http://en.wikipedia.org/wiki/Blowfish_(cipher)Poate cititi si va documentati inainte sa comentati POATE VEDETI DIFERENTA DINTRE BLOWFISH SI AES (NU EXISTA O CRIPTANALIZA CARE SA SPARGA UN BLOWFISH IN FULL ROUND) ... SCHIMBUL DE KEY CU BLOWFISH ARE 4 KB DE DATE,FOOTPRINTUL CONSUMA 4KB RAM....e un mod de a cripta mult superior AES/SERPENTMul?umesc pentru linkul cu Blowfish de pe Wikipedia. Îmi erau necunoscute aceste detalii. Poate cândva ne explici într-un tutorial în ce mod este superior Blowfish fa?? de AES/Serpent/Twofish (cu expcep?ia vitezei, acolo sunt de acord). Mai ales c? ai dovedit c? ?tii mai multe lucruri decât Bruce Schneier, ceea ce este impresionant. Continua?i, v? rog Quote
begood Posted January 15, 2011 Report Posted January 15, 2011 intai un chat in plain text. apoi adaugati setari de proxy. apoi criptare. programul ar trebui sa poata juca si rolul de server, astfel nu aveti nevoie de un server extern.parca a facut temp un chat de genul ? ii las un offline cu link catre thread. Quote
nightkhaos Posted January 16, 2011 Author Report Posted January 16, 2011 Mul?umesc pentru linkul cu Blowfish de pe Wikipedia. Îmi erau necunoscute aceste detalii. Poate cândva ne explici într-un tutorial în ce mod este superior Blowfish fa?? de AES/Serpent/Twofish (cu expcep?ia vitezei, acolo sunt de acord). Mai ales c? ai dovedit c? ?tii mai multe lucruri decât Bruce Schneier, ceea ce este impresionant. Continua?i, v? rogIti explic pe exemplul nostru pentru ca asta ne intereseaza!Blowfish are cheia pe max 488 bits si lucreaza cu blocks de 64 bits in timp ce AES foloseste 256 bits.Ideea este ca la fisiere mari sau la transferuri de informatie mari AES E MAI BUN DECAT BLOWFISH dar pentru un chat pentru transferuri ff mici tinand cont de cheia de 448 bits ..BLOWFISH OWNS AES si la viteza si ca mod criptare...NIMENI nu scrie mai mult de 512 bytes intr-un mesaj pe messenger si chiar daca vrea sa scrie mai mult de atat o sa limitam noi. In 512*8/64 block's de BLOWFISH e imposibil sa afli o cheie de 488 de bits sa decriptezi mesajul...Acum sper ca intelegi dc am zic ca BLOWFISH e mai bun ca AES Quote
wvw Posted January 16, 2011 Report Posted January 16, 2011 (edited) parca a facut temp un chat de genul ?Da, jasech @ sourceforge. Iti explic pe exemplul nostru pentru ca asta ne intereseaza!Blowfish are cheia pe max 488 bits si lucreaza cu blocks de 64 bits in timp ce AES foloseste 256 bits.Ideea este ca la fisiere mari sau la transferuri de informatie mari AES E MAI BUN DECAT BLOWFISH dar pentru un chat pentru transferuri ff mici tinand cont de cheia de 448 bits ..BLOWFISH OWNS AES si la viteza si ca mod criptare...NIMENI nu scrie mai mult de 512 bytes intr-un mesaj pe messenger si chiar daca vrea sa scrie mai mult de atat o sa limitam noi. In 512*8/64 block's de BLOWFISH e imposibil sa afli o cheie de 488 de bits sa decriptezi mesajul...Acum sper ca intelegi dc am zic ca BLOWFISH e mai bun ca AESOK. Dar aspectul ?sta conteaz? mai pu?in în stadiul curent. La fel de bine putem s? ne apuc?m s? facem un cifru bloc de la 0. ?i s? discut?m înc? 10 pagini de acum încolo. Ideea este s? îni?iem un proiect din care s? înv???m ceva ?i care s? mobilizeze comunitatea (sau, m? rog, o parte; oricum comunitate este mult spus). S? punem de un roadmap. Care sunt cerin?ele pentru versiunea alpha? Windows-only, cross-platform, cu sau f?r? criptare (aici a? merge pe sugestia lui begood), cum s? arate interfa?a clientului? Dar înainte de asta: cine se bag? ?i ce ?tie fiecare? Chiar dac? nu ?ti?i o tehnologie/un limbaj de programare bine, nu-i bai, cap ?i voin?? s? ave?i. Ce a?i vrea s? înv??a?i lucrând la proiectul ?sta? Pute?i spune aici sau aici. Edited January 16, 2011 by wvw Quote
nightkhaos Posted January 16, 2011 Author Report Posted January 16, 2011 Am facut partea de comunicatie ... Un SSLSocket, si am nevoie de un certificat valid daca se poate dar sa fie semnat de o autoritate cunoscuta!Ms ...Daca in 15 minute nu primesc reply(oricum stiu ca nu voi primi) voi genera propriul certificat,si voi pune in client un delegate sa nu valideze certificatul... Quote