An extensible, resilient and private peer-to-peer online social network

Ruben De Smet
Online sociale netwerken hebben vaak last van veiligheids- en privacyproblemen. Door gebruikersgegevens niet op te slaan op een server, maar bij je vrienden en familie, kan Big Brother niet meer meekijken. Jammer genoeg is het maken van zo'n sociaal netwerk erg moeilijk. Deze thesis presenteert een platform om dit erg te vergemakkelijken.

Privacy op online sociale netwerken - het kan

Als je niets te verbergen hebt, hoef je niet om privacy te geven, toch? Edward Snowden, de bekende Amerikaanse klokkenluider, denkt daar anders over. Met dezelfde logica zou je kunnen zeggen dat je niet geeft om vrije meningsuiting, omdat je niets te zeggen hebt.

Privacy gaat niet over het verbergen van geheimen en criminele activiteiten. Waarom zou Facebook mogen weten waar je vandaag was, en waarom zou Google mogen weten met wie je mailt? Zij hebben daar toch geen zaken mee!

Hoe is het zo ver kunnen komen?

Eigenlijk is het maken van een website als Facebook niet heel erg ingewikkeld. Net zoals een loodgieter een gereedschapskist heeft om waterleidingen te leggen, heeft een web designer een digitale gereedschapskist om websites te ontwerpen.

Programmeurs hebben gereedschappen om hun werk te doen, net zoals loodgieters.

De allereerste websites waren statische, niet-interactieve pagina's. Maar er zijn de voorbije decennia veel gereedschappen bijgekomen in de gereedschapskist van de web designer. Een aantal van die nieuwe gereedschappen dienen voor het zogenaamde Web 2.0 en maken websites interactief en dynamisch.

Databanken en function creep

Een van de gereedschappen waarmee je interactieve websites bouwt, zijn databanken. Hierin kan de ontwikkelaar erg eenvoudig gegevens van gebruikers opslaan en later terug opvragen. In die databank staat dus je naam en wat je deelt met je vrienden.

Waarom iemand data wil bijhouden kan veranderen over de tijd.
Toen Facebook eerst je data bijhield, was dat om die te kunnen delen met je vrienden. Als Facebook nu je data bijhoudt, is dat onder andere om je advertenties voor te schotelen. Dit fenomeen noemt men function creep: het opstapelen van functionaliteit. De opgeslagen gegevens zelf veranderen niet, maar wat ermee gebeurt, verandert - soms ten goede, vaak ten slechte.

Gereedschap voor privacy

Net zoals er gereedschap bestaat om websites te bouwen, bestaat er gereedschap om je gegevens te beschermen. De belangrijkste techniek hiervoor is de cryptografie, waarbij gegevens onleesbaar worden gemaakt voor onbevoegden.

In 2013 werd Heartbleed ontdekt: een programmeerfout die plots 17% van alle beveiligde webservers onveilig maakte.

Het cryptografische gereedschap vereist jammer genoeg een zeer specifieke expertise. Zelfs de experten hebben het vaak mis. Zo ontdekten onderzoekers bijvoorbeeld in 2013 een programmeerfout waardoor ongeveer 17% van alle beveiligde webservers plots data lekten.

Gegevens opslaan...

Facebook en Google slaan met veel plezier jouw data op, op voorwaarde dat ze die mogen gebruiken voor commerciële doeleinden, zoals bijvoorbeeld gerichte advertenties. Als die data onleesbaar worden gemaakt door middel van cryptografie, zijn deze bedrijven vanzelfsprekend minder happig om je gegevens bij te houden; ze missen namelijk een commercieel motief en het opslaan en bijhouden van data kost handenvol geld.

...zonder Big Brother!

De structuur van het internet is eigenlijk erg opmerkelijk. Behalve een erg snel (en prijzig) abonnement, is de internetverbinding van Facebook en Google gelijk aan die van jou thuis; er is niets fundamenteels dat hun verbinding speciaal maakt. Eigenlijk hebben we dus geen servers nodig: in plaats van je data op te slaan op een centrale server, stuur je die rechtstreeks door naar je familie of vrienden.

Servergebaseerd netwerk

Peer-to-peer (letterlijk "gelijke-naar-gelijke") netwerk

(afbeeldingen Mauro Bieg 2007)

In praktijk brengt dat enkele problemen met zich mee. Wat doe je als je offline bent? Hoe weet je hoe je moet verbinden met je vrienden; zitten ze op 4G, op hun laptop, zijn ze verbonden via WiFi? Deze problemen zijn niet onoverkomelijk en er zijn alweer uitgewerkte gereedschappen om zulke systemen te maken.

Het schoolvoorbeeld van een oplossing zijn de zogenaamde overlay netwerken, waar iedere deelnemer een virtueel adres krijgt en men elkaar vertelt wat de kortste weg is naar een gegeven adres. Als bijkomend voordeel kan je je gegevens opslaan op naburige adressen, zodat wanneer jij niet thuis bent, je virtuele buren je gegevens aan je vrienden doorgeven.

Toegangscontrole

Nu hebben we natuurlijk een ander probleem: je potentieel onbekende buren verdelen je gegevens onder je vrienden. Enerzijds wil je niet dat je buren in je gegevens zitten, en anderzijds wil je wel dat je vrienden je gegevens kunnen lezen. Met andere woorden, we moeten een vorm van toegangscontrole inbouwen.

Cryptografie kan ons ook hier helpen! We kunnen het digitale equivalent van een kluis gebruiken en onze vrienden een kopie van de sleutel geven - deze techniek heet "encryptie". Als nu onze buren zo vriendelijk zijn om onze gegevens bij te houden, zijn we zeker dat enkel onze vrienden in de digitale kluis kunnen.

Gereedschap voor private online sociale netwerken

Dit idee is niet nieuw. Onderzoekers aan de Zweedse technische universiteit van Stockholm (KTH) presenteren in 2009 al "PeerSoN'", gebaseerd op bovenstaande ideeën.

Het grote probleem is nu nog de nood aan experten. Het versleutelen van gegevens is nog steeds een lastige taak en telkens ons netwerk iets nieuws wil maken voor zijn gebruikers, dient de programmeur data te versleutelen. Ook heeft de programmeur geen databank in zijn gereedschapskist die de privacy van zijn gebruikers garandeert.

We kunnen de resterende problemen gelijktijdig aanpakken, door een databank te bouwen bovenop het overlay netwerk, die rekening houdt met onze vooropgestelde toegangscontroleregels. Zo kan die databank automatisch beslissen bij welke buren welke gegevens worden opgeslagen en wordt automatisch rekening gehouden met het doorgeven van de sleutels voor de kluis.

En dat is precies wat we het voorbije jaar ontworpen hebben: een gereedschap waarmee een programmeur een sociale "app" kan maken. Die app-ontwikkelaar hoeft je data niet op te slaan; hij hoeft dus ook niet te betalen voor al je data, en hij kan je gegevens niet lezen of verkopen.

Zo heb jij je privacy terug en kan de ontwikkelaar zonder zorgen nuttige applicaties bouwen.

 

Bibliografie

Abe, M., Ohkubo, M., & Suzuki, K. (2002). 1-out-of-n signatures from a variety of keys. Advances in Cryptology—Asiacrypt 2002, 639–645.

Agre, P. E. (2003). P2P and the Promise of Internet Equality. Commun. ACM, 46(2), 39–42.

Angles, R., & Gutierrez, C. (2008). Survey of graph database models. ACM Comput. Surv. 40(1), 1:1–1:39.

Aparicio, J., & Heisler, B. (2014–2018). criterion.rs: Statistics-driven micro-benchmarking library. Retrieved June 17, 2018, from https://github.com/japaric/criterion.rs

Balakrishnan, H., Kaashoek, M. F., Karger, D., Morris, R., & Stoica, I. (2003). Looking up data in P2P systems. Communications of the ACM, 46(2), 43–48.

Bellare, M., & Namprempre, C. (2000). Authenticated encryption: Relations among notions and analysis of the generic composition paradigm. Advances in Cryptology—ASIACRYPT 2000, 531–545.

Bellare, M., Namprempre, C., & Neven, G. (2009). Security proofs for identity-based identification and signature schemes. Journal of Cryptology, 22(1), 1–61.

Bernstein, D. J. (2006). Curve25519: new Diffie-Hellman speed records. In M. Yung, Y. Dodis, A. Kiayias, & T. Malkin (Eds.), International workshop on public key cryptography (pp. 207–228). Berlin, Heidelberg: Springer Berlin Heidelberg.

Bernstein, D. J., Duif, N., Lange, T., Schwabe, P., & Yang, B.-Y. (2012). High-speed high-security signatures. Journal of Cryptographic Engineering, 1–13.

Bertoni, G., Daemen, J., Peeters, M., & Van Assche, G. (2009). Keccak sponge function family main document. Submission to NIST (Round 2), 3, 30.

Boneh, D. (1998). The Decision Diffie-Hellman problem. In J. P. Buhler (Ed.), Algorithmic number theory (pp. 48–63). Berlin, Heidelberg: Springer Berlin Heidelberg.

Borisov, N., Goldberg, I., & Brewer, E. (2004). Off-the-Record Communication, or, Why Not To Use PGP. In Proceedings of the 2004 acm workshop on privacy in the electronic society (pp. 77–
84). WPES ’04. Washington DC, USA: ACM.

Brickley, D., & Miller, L. (2014). FOAF vocabulary specification 0.99. FOAF Project. Retrieved from http://xmlns.com/foaf/spec/20140114.html

Buchegger, S., Schiöberg, D., Vu, L. H., & Datta, A. (2009). PeerSoN: P2P social networking - early experiences and insights. In Proceedings of the Second ACM Workshop on Social Network
Systems Social Network Systems 2009, co-located with Eurosys 2009 (pp. 46–52). Nürnberg, Germany.

Carothers, G., & Prud’hommeaux, E. (2014). RDF 1.1 turtle. W3C. Retrieved from http://www.w3.org/TR/2014/REC-turtle-20140225/

Courtois, N. T., & Mercer, R. (2017). Stealth Address and Key Management Techniques in Blockchain Systems. In Proceedings of the 3rd international conference on information systems security and privacy - volume 1: Icissp (pp. 559–566). INSTICC. SciTePress.

Crichton, A., Lerche, C., Roman, & et al., A. T. (2016–2018). Tokio: A runtime for writing reliable, asynchronous, and slim applications with the rust programming language. Retrieved June 17, 2018, from https://tokio.rs/

Cukier, K., & Mayer-Schoenberger, V. (2013). The Rise of Big Data: How It’s Changing the Way We Think About the World. Foreign Affairs, 92, 28–40.

danah boyd, & Hargittai, E. (2010). Facebook privacy settings: Who cares? First Monday, 15(8). Retrieved May 28, 2018, from http://journals.uic.edu/ojs/index.php/fm/article/view/
3086

Datanyze. (2018, June 12). Email hosting market share report.

Datanyze. Retrieved June 14, 2018, from https://www.datanyze.com/market-share/email-hosting

de Valence, H., & Lovecruft, I. (2016–2018). curve25519-dalek: A pure-Rust implementation of group operations on Ristretto and Curve25519. Retrieved June 17, 2018, from https : / /
github.com/dalek-cryptography/curve25519-dalek

Demers, A., Greene, D., Hauser, C., Irish, W., Larson, J., Shenker, S., ... Terry, D. (1987). Epidemic algorithms for replicated database maintenance. In Proceedings of the sixth annual acm symposium on principles of distributed computing (pp. 1–12). PODC ’87. Vancouver, British Columbia, Canada: ACM.

Diaz, C., & Gürses, S. (2012). Understanding the landscape of privacy technologies. Extended abstract of invited talk in proceedings of the Information Security Summit, 58–63.

Diffie, W., & Hellman, M. (1976). New directions in cryptography. IEEE Transactions on Information Theory, 22(6), 644–654.

Douceur, J. R. (2002). The Sybil Attack. In P. Druschel, F. Kaashoek, & A. Rowstron (Eds.), Peer-to-peer systems (pp. 251–260). Berlin, Heidelberg: Springer Berlin Heidelberg.

Dworkin, M. J. (2015). SHA-3 standard: Permutation-based hash and extendable-output functions. Federal Inf. Process. Stds.(NIST FIPS)-202.

Facebook. (n.d.). Facebook’s Privacy Principles. Retrieved May 30, 2018, from https://www.facebook.com/about/basics/privacy-principles

Fairchild, J. (2015, December 30). RetroShare – Documentation: Forums. Retrieved May 31, 2018, from https://github.com/RetroShare/documentation/wiki/Documentation:-Forums

Fielding, R. T., & Taylor, R. N. (2000). Architectural styles and the design of network-based software architectures (Doctoral dissertation, University of California).

Friedman, D. P., & Wise, D. S. (1976). The impact of applicative programming on multiprocessing. Indiana University, Computer Science Department.

Fujisaki, E., & Suzuki, K. (2007). Traceable ring signature. In Public key cryptography (Vol. 4450, pp. 181–200). Springer.

Graham-Harrison, E., & Cadwalladr, C. (2018). Revealed: 50 million facebook profiles harvested for cambridge analytica in major data breach. The Guardian. Retrieved from https://www.
theguardian.com/news/2018/mar/17/cambridge-analytica-facebook-influence-us-election

Guha, R., & Brickley, D. (2014). RDF schema 1.1. W3C. http://www.w3.org/TR/2014/REC-rdf-schema-20140225/.

Gürses, S. (2010). Multilateral privacy requirements analysis in online social network services (Doctoral dissertation, KU Leuven, Heverlee).

Haber, S., & Stornetta, W. S. (1991, January). How to time-stamp a digital document. Journal of Cryptology, 3(2), 99–111.

Hoepman, J.-H., & van Lieshout, M. (2012). Cyber Safety: An Introduction. (Chap. Privacy, pp. 75–87). The Hague: Eleven International Publishing.

Irvine, D. (2010). MaidSafe Distributed File System.

Jefferys, K., Harman, S., Ross, J., & McLean, P. (2018, March 1). Loki: Private transactions, decentralised communication. Retrieved from https://loki.network/

Kelsey, J. (2016). SHA-3 Derived Functions: cSHAKE, KMAC, TupleHash, and ParallelHash. NIST Special Publication, 800, 185. Khan, O. (2015, July 15). Major Email Provider Trends in 2015: Gmail’s Lead Increases. Mailchimp. Retrieved from https://blog.mailchimp.com/major- email- provider- trends- in- 2015-gmail-takes-a-really-big-lead/

Kleeman, S. (2015, May 29). In One Quote, Snowden Just Destroyed the Biggest Myth About Privacy. Retrieved June 14, 2018, from https://mic.com/articles/119602/in-one-quote-
edward-snowden-summed-up-why-our-privacy-is-worth-fighting-for

Koblitz, N. (1987). Elliptic curve cryptosystems. Mathematics of computation, 48(177), 203–209.

Kumar, A., Fischer, C., Tople, S., & Saxena, P. (2017). A Traceability Analysis of Monero’s Blockchain. IACR Cryptology ePrint Archive, 2017, 338.

Lambert, N., Ma, Q., & Irvine, D. (2015). Safecoin: The Decentralised Network Token. MaidSafe, Tech. Rep.

Lamport, L. (1978). Time, Clocks and the Ordering of Events in a Distributed System. Communications of the ACM, 21(7), 558–565.

Lanthaler, M., Cyganiak, R., & Wood, D. (2014). RDF 1.1 concepts and abstract syntax. W3C. Retrieved October 9, 2017, from http://www.w3.org/TR/2014/REC-rdf11-concepts-20140225/

Lassila, O., & Swick, R. R. (1997). Resource Description Framework (RDF): Model and syntax. W3C. Retrieved October 20, 2017, from https://www.w3.org/TR/WD-rdf-syntax-971002/

Law, L., Menezes, A., Qu, M., Solinas, J., & Vanstone, S. (2003). An efficient protocol for authenticated key agreement. Designs, Codes and Cryptography, 28(2), 119–134.

Levien, R., & Aiken, A. (1998). Attack-resistant trust metrics for public key certification. In Usenix security symposium (pp. 229–242).

Lewkowicz, K. (2017, March 21). Here’s What We Learned After Tracking 17 Billion Email Opens [Infographic]. Retrieved June 14, 2018, from https://litmus.com/blog/2016-email-client-market-share-infographic

Locher, T., Mysicka, D., Schmid, S., & Wattenhofer, R. (2010). Poisoning the Kad Network. ICDCN, 10, 195–206.

Marlinspike, M. (2013, November 26). Advanced cryptographic ratcheting. Retrieved May 30, 2018, from https://signal.org/blog/advanced-ratcheting/

Marlinspike, M. (2017, September 26). Technology preview: Private contact discovery for Signal. Retrieved May 30, 2018, from https://signal.org/blog/private-contact-discovery/

Maurer, U. M. (1994). Towards the equivalence of breaking the Diffie-Hellman protocol and computing discrete logarithms. In Annual international cryptology conference (pp. 271–281). Springer.

Maymounkov, P., & Mazieres, D. (2002). Kademlia: A peer-to-peer information system based on the XOR metric. In P. Druschel, F. Kaashoek, & A. Rowstron (Eds.), Peer-to-peer systems (Vol. 2429, pp. 53–65). Lecture notes in Computer Science. 1st International Workshop on Peer-to-Peer Systems, Cambridge, Massachusetts, Mar 07-08, 2002. Microsoft Res. Heidelberger Platz 3, D-14197 Berlin, Germany: Springer-Verlag Berlin Heidelberg.

MIL-HDBK-232A. (1987). Red/Black Engineering – Installation Guidelines.

Miller, V. S. (1986). Use of elliptic curves in cryptography. In H. C. Williams (Ed.), Advances in cryptology — crypto ’85 proceedings (pp. 417–426). Berlin, Heidelberg: Springer Berlin Heidelberg.

Montgomery, P. L. (1987). Speeding the pollard and elliptic curve methods of factorization. Mathematics of computation, 48(177), 243–264.

Nakamoto, S. (2008). Bitcoin: A peer-to-peer electronic cash system.

Noether, S., Mackenzie, A. et al. (2016). Ring confidential transactions. Ledger, 1, 1–18.

Nystrom, B. (2015, February 1). What Color is Your Function? Retrieved June 16, 2018, from http://journal.stuffwithstuff.com/2015/02/01/what-color-is-your-functio…

Okamoto, T., & Ohta, K. (1991). Universal electronic cash. In Annual international cryptology conference (pp. 324–337). Springer.

Opsahl, K. (2013, June 7). Why Metadata Matters. Electronic Frontier Foundation. Retrieved May 30, 2018, from https://www.eff.org/deeplinks/2013/06/why-metadata-matters

Ratnasamy, S., Francis, P., Handley, M., Karp, R., & Shenker, S. (2001). A scalable content-addressable network. SIGCOMM Comput. Commun. Rev. 31(4), 161–172.

Rivest, R., Shamir, A., & Tauman, Y. (2001). How to leak a secret. Advances in Cryptology ASIACRYPT 2001, 552–565.

Rowstron, A., & Druschel, P. (2001). Pastry: Scalable, decentralized object location, and routing for large-scale peer-to-peer systems. In IFIP/ACM International Conference on Distributed Systems Platforms and Open Distributed Processing (pp. 329–350). Springer.

Ryssdal, K. (2014, November 18). Uber’s data makes a creepy point about the company. Marketplace. Retrieved May 19, 2018, from https://www.marketplace.org/2014/11/18/business/final-note/ubers-data-m…

San Martı́n, M., & Gutierrez, C. (2009). Representing, querying and transforming social networks with RDF/SPARQL. In European semantic web conference (pp. 293–307). Springer.

Schnorr, C.-P. (1991a). Efficient signature generation by smart cards. Journal of cryptology, 4(3), 161–174.

Schnorr, C.-P. (1991b). Method for identifying subscribers and for generating and verifying electronic signatures in a data exchange system. 4995082.

Shen, X., Yu, H., Buford, J., & Akon, M. (2010). Handbook of Peer-to-Peer Networking. Springer Science & Business Media.

Shor, P. (1999). Polynomial-time algorithms for prime factorization and discrete logarithms on a quantum computer. SIAM Review, 41(2), 303–332.

Signal. (2018). Signal – Privacy Policy. Retrieved May 30, 2018, from https://signal.org/signal/privacy/

Smith, B. (2014–2018). ring: Safe, fast, small crypto using Rust. Retrieved June 17, 2018, from https://github.com/briansmith/ring

Snowden, E. (2015, May 21). Reddit – Just days left to kill mass surveillance under Section 215 of the Patriot Act. We are Edward Snowden and the ACLU’s Jameel Jaffer. AUA. Retrieved May 29, 2018, from https://www.reddit.com/r/IAmA/comments/36ru89/just_days_left_to_kill_ma…

Soler, C. (2017). A generic data exchange system for friend-to-friend networks. INRIA Grenoble-Rhone-Alpes.

Tinker, B. (2018, April 11). How Facebook ‘likes’ predict race, religion and sexual orientation.

CNN. Retrieved May 30, 2018, from https://edition.cnn.com/2018/04/10/health/facebook-likes-psychographics…

Todd, P. (2014). [bitcoin-development] Stealth addresses. Retrieved December 2, 2017, from https://www.mail-archive.com/bitcoin-development@lists.sourceforge.net/…

Troncoso, C., Isaakidis, M., Danezis, G., & Halpin, H. (2017). Systematizing decentralization and privacy: Lessons from 15 years of research and deployments. Proceedings on Privacy Enhancing Technologies, 2017(4), 404–426.

user ‘bytecoin’. (2011). Untraceable transactions which can contain a secure message are inevitable. Retrieved December 2, 2017, from https://bitcointalk.org/index.php?topic=5965.0

Van Cutsem, T., Mostinckx, S., Gonzalez Boix, E., Dedecker, J., & De Meuter, W. (2007). AmbientTalk: Object-oriented Event-driven Programming in Mobile Ad hoc Networks. (pp. 3–12).

van Saberhagen, N. (2013). Cryptonote v2.0.

Wang, L., & Kangasharju, J. (2013). Measuring large-scale distributed systems: case of BitTorrent Mainline DHT. In Peer-to-Peer Computing (P2P), 2013 IEEE Thirteenth International Conference on (pp. 1–10). IEEE.

Warren, S. D., & Brandeis, L. D. (1890). The right to privacy. Harvard law review, 193–220.

Wilson, S. (2016, May 3). Blockchain: Almost everything you read is wrong. Retrieved October 9, 2017, from https://www.constellationr.com/blog-news/blockchain-almost-everything-y…

Zhao, B. Y., Huang, L., Stribling, J., Rhea, S. C., Joseph, A. D., & Kubiatowicz, J. D. (2004).

Tapestry: A resilient global-scale overlay for service deployment. IEEE Journal on selected areas in communications, 22(1), 41–53.

Zureik, E., Stalker, L. H., & Smith, E. (2010). Surveillance, Privacy, and the Globalization of Personal Information: International Comparisons. McGill-Queen’s Press-MQUP.

Universiteit of Hogeschool
Master in de ingenieurswetenschappen: computerwetenschappen
Publicatiejaar
2018
Promotor(en)
Ann Dooms, Jo Pierson
Kernwoorden
@rubdos
Share this on: