Zoals zovelen nu wel weten is FTD over een paar weken verdwenen. De discussies over Brein, FTD, uitspraak van rechter,enz hebben me aan het denken gezet. Niet zozeer of het stoppen van FTD terecht is of niet, maar meer om het feit dat een forum (niet alleen FTD) zo kwetsbaar is. Een server plat en weg is het forum. Voorgoed of voorlopig. Als de eigenaar niet meer wil of kan hosten, dan verdwijnt het forum (meegemaakt met een leuk en gezellig fotografie-forum). Zonde, want veel mensen zijn misschien nog wel graag op dat forum.
Daarom heb ik op een avond een vluchtig concept bedacht wat ik graag met anderen verder uit wil werken. Een gedistribueerd discussieforum (genaamd D2P). Wat houdt dat in? In het kort komt het op het volgende neer:
- Geen centrale server;
- Iedereen draait een client;
- Forums kunnen door iedereen aangemaakt worden;
- Forums kunnen publiek of private zijn;
- Iedereen kan topics maken en posten van berichten;
- Speciale moderators zijn er niet, iedereen is moderator;
- Binaries (plaatjes, video, NZB's, enz) kunnen niet direct geplaatst worden. Deze kunnen alleen extern gehost worden (dit om snelheid van netwerk te vergroten en issues te voorkomen);
- Het heeft niet als doel beschermde communicatie te bieden. Encryptie van berichten is er dus niet (technisch wel, maar aanvaller kan deze makkelijk decrypten met de bijgeleverde public-key);
- Dmv majority votes en vertrouwen kunnen berichten, topics en forums verwijderd worden;
- Concept bestaat uit drie lagen: p2p-laag, D2P protocollaag en een applicatielaag;
- (deels?) Open-source (uiteindelijk) en iedereen kan dan gebruik maken van de API om een eigen applicatie te maken met eigen functionaliteit);
- Users hebben een unieke key welke niet nagemaakt kunnen worden door andere gebruikers. Een gebruiker is dus uniek;
- Degene die een forum aanmaakt is hoofd moderator en kan dus zelfstandig het forum, een topic of post verwijderen (majority vote is dan niet nodig);
- Users kunnen kuddo's krijgen als ze dit willen (kan per forum/topic aangegeven worden);
- Andere users kunnen mensen, forums, topics en berichten raten. Teveel negatief en ze verdwijnen uit het overzicht. Ze worden dan ook niet door de client geforward naar andere clients;
- Lokale database voor de opslag en voor het management van p2p;
- Clients werken met public, private en symmetrical keys;
- Berichten kunnen maar enkele kilobytes zijn;
- Communicatie is niet veilig. Dit kan eventueel in een latere versie van de client;
- Clients werken op basis van p2p en kunnen bootstrappen via nieuwsgroepen, emule bestandje, kad, torrent, enz;'
Nogmaals, ik heb dit op een avond bedacht maar kon zo snel geen ernstige valkuilen bedenken. Het bevat nog wel een erg vervelende valkuil. Oa:
- Een aanvaller zou onder 100.000 verschillende namen nieuwe forums, topics of posts aan kunnen maken. Ook zou hij een user, topic of post negatief kunnen raten waardoor andere clients deze niet meer forwarden. Omdat het elke keer een andere user is, kan je hier niet op blokken of negeren.
Enkele oplossingen zouden kunnen zijn (nog steeds niet ideaal):
- Die clients de een connectie met de aanvaller hebben, kunnen detecteren dat deze aan het spammen is;
- Iedereen die nieuw is, wordt niet vertrouwd. Vertrouwde mensen kunnen aangeven dat die persoon wel te vertrouwen is. Pas na x vertrouwende mensen verschijnt deze nieuwe user bij alle clients in beeld. Een client kan wel een optie hebben om bv onvertrouwde berichten te processen;
- Mensen die nog niet vertrouwd zijn, kunnen altijd lezen van publieke forums, topics of posts;
- Een vertrouwd iemand kan maar een x aantal users per dag vertrouwen;
- ...
Het doel is iig niet het vervangen van FTD maar voor het maken van distributed forums API zodat je nooit een single point of failure hebt. Dat FTD mogelijk is, is bijzaak.
Ik heb een aardig idee om dit aan te pakken en zou het fijn vinden als er meer mensen zijn die mee willen helpen om dit concept verder uit te werken. Als alles bekent is en het concept zou levensvatbaar zijn, dan zouden we het werk kunnen verdelen (p2p laag, distr. forums protocol laag, applicatie) en aan de slag gaan om een client te ontwikkelen. Mijn voorkeur zou java zijn, omdat dat multi-platform is.
Daarom heb ik op een avond een vluchtig concept bedacht wat ik graag met anderen verder uit wil werken. Een gedistribueerd discussieforum (genaamd D2P). Wat houdt dat in? In het kort komt het op het volgende neer:
- Geen centrale server;
- Iedereen draait een client;
- Forums kunnen door iedereen aangemaakt worden;
- Forums kunnen publiek of private zijn;
- Iedereen kan topics maken en posten van berichten;
- Speciale moderators zijn er niet, iedereen is moderator;
- Binaries (plaatjes, video, NZB's, enz) kunnen niet direct geplaatst worden. Deze kunnen alleen extern gehost worden (dit om snelheid van netwerk te vergroten en issues te voorkomen);
- Het heeft niet als doel beschermde communicatie te bieden. Encryptie van berichten is er dus niet (technisch wel, maar aanvaller kan deze makkelijk decrypten met de bijgeleverde public-key);
- Dmv majority votes en vertrouwen kunnen berichten, topics en forums verwijderd worden;
- Concept bestaat uit drie lagen: p2p-laag, D2P protocollaag en een applicatielaag;
- (deels?) Open-source (uiteindelijk) en iedereen kan dan gebruik maken van de API om een eigen applicatie te maken met eigen functionaliteit);
- Users hebben een unieke key welke niet nagemaakt kunnen worden door andere gebruikers. Een gebruiker is dus uniek;
- Degene die een forum aanmaakt is hoofd moderator en kan dus zelfstandig het forum, een topic of post verwijderen (majority vote is dan niet nodig);
- Users kunnen kuddo's krijgen als ze dit willen (kan per forum/topic aangegeven worden);
- Andere users kunnen mensen, forums, topics en berichten raten. Teveel negatief en ze verdwijnen uit het overzicht. Ze worden dan ook niet door de client geforward naar andere clients;
- Lokale database voor de opslag en voor het management van p2p;
- Clients werken met public, private en symmetrical keys;
- Berichten kunnen maar enkele kilobytes zijn;
- Communicatie is niet veilig. Dit kan eventueel in een latere versie van de client;
- Clients werken op basis van p2p en kunnen bootstrappen via nieuwsgroepen, emule bestandje, kad, torrent, enz;'
Nogmaals, ik heb dit op een avond bedacht maar kon zo snel geen ernstige valkuilen bedenken. Het bevat nog wel een erg vervelende valkuil. Oa:
- Een aanvaller zou onder 100.000 verschillende namen nieuwe forums, topics of posts aan kunnen maken. Ook zou hij een user, topic of post negatief kunnen raten waardoor andere clients deze niet meer forwarden. Omdat het elke keer een andere user is, kan je hier niet op blokken of negeren.
Enkele oplossingen zouden kunnen zijn (nog steeds niet ideaal):
- Die clients de een connectie met de aanvaller hebben, kunnen detecteren dat deze aan het spammen is;
- Iedereen die nieuw is, wordt niet vertrouwd. Vertrouwde mensen kunnen aangeven dat die persoon wel te vertrouwen is. Pas na x vertrouwende mensen verschijnt deze nieuwe user bij alle clients in beeld. Een client kan wel een optie hebben om bv onvertrouwde berichten te processen;
- Mensen die nog niet vertrouwd zijn, kunnen altijd lezen van publieke forums, topics of posts;
- Een vertrouwd iemand kan maar een x aantal users per dag vertrouwen;
- ...
Het doel is iig niet het vervangen van FTD maar voor het maken van distributed forums API zodat je nooit een single point of failure hebt. Dat FTD mogelijk is, is bijzaak.
Ik heb een aardig idee om dit aan te pakken en zou het fijn vinden als er meer mensen zijn die mee willen helpen om dit concept verder uit te werken. Als alles bekent is en het concept zou levensvatbaar zijn, dan zouden we het werk kunnen verdelen (p2p laag, distr. forums protocol laag, applicatie) en aan de slag gaan om een client te ontwikkelen. Mijn voorkeur zou java zijn, omdat dat multi-platform is.