B3st Posted August 8, 2012 Report Posted August 8, 2012 (edited) Ma tot gandesc la o metoda de im safe.Cred ca as putea sa vorbesc cu cei de la tor, iar server ul trebuie configurat sa stearga detallile despre user.Toate serviciile im functioneaza cam asa:1. Clientul incearca sa se conecteze la server ul im principal.2. Serverul primeste de la client: ip ul, portul ascultat, nick name ul si lista de contacte.3. Daca conexiunea sa stabilit atunci server ul creaza un fisier cu informatiile tale, dupa aceea server ul verifica statut ul contactelor tale > offline/online/invisible ..4. Apoi conexiunea este ip to ip, nu mai este nevoie de server ul principal pentru a comunica.Teoretic server ul principal intervine doar in situatii de offline/online/invisible, iar server ul nu stocheaza informatii sau log uri despre utlizatori.Majoritatea serviilor im salveaza toate ip urile si chat urile care le-ai avut.Chiar daca uni spun ca nu o fac, altfel conexiunea n-ar fi posibila, sau probabil ar putea doar sa stearga detaliile tale dupa ce ai dat log out.Veniti cu idei de functionare a protocolului, fara sa fie nevoie de ascultarea unui port, ceea ce implica trimiterea ip ului si portului catre server ul principal. Edited August 8, 2012 by B3st Quote
caramea Posted August 8, 2012 Report Posted August 8, 2012 Nu poti implementa acea functie de online/offline direct in client? adica sa faci clientul si un fel de server. Just thinking.. Quote
Sim Master Posted August 8, 2012 Report Posted August 8, 2012 N-ar fi chiar bun ip to ip din cauza port forwardului. Eu de exemplu ma conectez la un wireless al vecinilor si nu stiu parola panoului de control ca sa pot face port forward. Probabil mai sunt si altii in aceeasi situatie.Eventual sa verifice daca merge o conectare directa la ip-ul celeilalte persoane, iar daca nu atunci sa se faca prin server. Quote
B3st Posted August 8, 2012 Author Report Posted August 8, 2012 (edited) @carameaSi de unde stie client ul ce ip:port are fiecare contact din lista pentru a incepe conexiunea, doar sa il suni inainte si sa ii zici ip ul Cred ca s-ar putea face ceva de genuNick name ul sa fie in urmator ul format: <nume la alegere> + ip cryptatatIar client ul sa desparta id/ip si sa inceapa conexiuneaDoar ca asta ar insemna ca id ul fiecarui utilizator sa fie mereu schimbat.Se poate implementa un server principal pentru id uri, iar tu cand adaugi/vorbesti cu cineva server ul sa returneze nickname + ip cryptat. Edited August 8, 2012 by B3st Quote
Nytro Posted August 8, 2012 Report Posted August 8, 2012 "4. Apoi conexiunea este ip to ip" -Naspa. Quote
crs12decoder Posted August 8, 2012 Report Posted August 8, 2012 De 10 ori mai simplu si mai bun este un SSL AJAX chat. Quote
ZeroCold Posted August 8, 2012 Report Posted August 8, 2012 Nu poti face in asa fel incat sa se conecteze la baza de date rst?Sa te conectezi cu user + pass de pe rst si sa ai undeva ceva gen member list unde sa iti listeze toti utilizatorii? Sa se foloseasca de mesajele private? Quote
M2G Posted August 8, 2012 Report Posted August 8, 2012 Why in the world would you use ip to ip?Ai un server acolo, cel mai bine faci trimiterea mesajelor prin intermediul lor. Serverul stie cui sa trimita mesajul atat timp cat acesta vine cu aceasta informatie.Poti face ca serverul sa foloseasca un set de chei asimetrice si sa hardcodezi cheia publica in aplicatia client. Astfel stii ca doar serverul poate sa citeasca mesajele pe care le trimiti. (ca sa scapi de MITM)In momentul in care mesajul ajunge la server acesta trebuie sa stie ce sa faca cu el. Eventul e nevoie de un sistem de managmenet al cheilor(cheile clientilor) pe server.Nickname-ul e unic pentru fiecare client deci folosesti asta pentru a identifica clientii si constrangi ca actiunile sa poata avea loc doar cand clientul este autentificat.Retii intr-un DB si frecventa incercarilor de autentificare si blochezi accestul pe un anumit User in momentul in care se fac prea multe requesturi de autentificare intr-un anumit interval de timp. Asta pentru a opri atacurile bruteforce.etc etc etc Quote
Paul4games Posted August 8, 2012 Report Posted August 8, 2012 (edited) Nu este mai simplu sa folosesti Pidgin+TOR+OTR? Edited August 8, 2012 by Paul4games Quote
B3st Posted August 8, 2012 Author Report Posted August 8, 2012 @M2G Ce zici tu este ip <> server <> ip, nu se poate chema IM.@Paul4games Normal, doar ca romani mai au pana ajung la nivelul ala. Quote
adi003user Posted August 8, 2012 Report Posted August 8, 2012 nu reinventa roata exista foarte multe metode de encrypted im. daca vrei sa dezv una beton (ceea ce e de apreciat) invata intai criptografie si networking. Quote
M2G Posted August 8, 2012 Report Posted August 8, 2012 @M2G Ce zici tu este ip <> server <> ip, nu se poate chema IM.@Paul4games Normal, doar ca romani mai au pana ajung la nivelul ala.Argumenteaza!Si conversatiile din Y! trec prin server si raman chiar retinute acolo.Se fac probabil si monitorizari de cuvinte cheie pe retelele de IM. Pentru asta e nevoie ca mesajele sa ajunga intr-un server.De ce zici ca nu e ok client - server -client? Quote
B3st Posted August 8, 2012 Author Report Posted August 8, 2012 @M2G Daca proiectul o sa fie destul de mare, autoritatile se pot implica pentru a lua anumite conversati.Dar daca conversatia este doar ip to ip, iar traficul este cryptat atunci nu au ce sa mai faca. Quote
Sim Master Posted August 8, 2012 Report Posted August 8, 2012 Pot lua conversatii doar daca le salvezi pe server. Quote
nedo Posted August 8, 2012 Report Posted August 8, 2012 Si eu m-am gandit la o chestie de genul asta. Din pacate are inconvenientul ca trebuie sa faci port forwarding.Ideea mea ar fi urmatoarea. Pe server stochezi userul, parola criptata , si cheia publica a userului de asemenea criptata cu parola userului. In acest fel nu ai cum sa accesezi cheia publica a userilor. Cand acesta se logheaza salvezi parola intr-o sesiune, decriptezi cheia publica si o trimiti celui cu care doreste sa vorbeasca. Serverul va mai stoca si o lista cu contactele fiecaruia (ip, port). Cand se initiaza convorbirea cheia publica este trimisa catre cei 2 interlocutori, iar restul se face strict intre cele 2 persoane. De asemenea aplicatia are hard coded o cheie publica(a serverului) si cheia ei proprie privata. In felul asta eviti atacul de tip mitm si te speli si pe maini deoarece nu poti obtine informatiile utilizatorilor. Quote
B3st Posted August 8, 2012 Author Report Posted August 8, 2012 (edited) Normal, doar ca implicarea serverului implica folosirea de prea multe resurse din partea serverului si din partea clientului..Cred ca cel mai simplu fac protocol normal, doar ca infomatiile despre utilizatori sa fie sterse dupa log out. Edited August 8, 2012 by B3st Quote
begood Posted August 8, 2012 Report Posted August 8, 2012 I2P Anonymous Network - I2PIntroducing I2P - I2P Quote