social-discuss
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Social-discuss] The Simplest Secure Distributed Social Architecture


From: Melvin Carvalho
Subject: [Social-discuss] The Simplest Secure Distributed Social Architecture
Date: Thu, 18 Mar 2010 15:16:35 +0100

I'd like to examine a very simple secure social architecture.

1. A Distributed Network implies N servers
==================================

By definition a distributed architecture implies that there are N servers on the network.

For simplicity sake, I am going to describe a system where each user has a SHARED folder on a server.

In that shared folder they can have:
- Activity Text
- Photos
- Other Media

Next we want to look at secure connections.


2. Secure communication
======================

Anyone that's used a GNU/Linux server will probably know the very standard pattern for secure, namely SSH

The principle is that everyone has a key pair, and when you put a trusted friend's, key in your shared file, they can access your shared content.

However note that PKI works not only with the SSH protocol, it can operate with almost any transport mechanism out there the most common being https

So far so good, now let's make it social.


3. Adding a Social Web
====================

The above procedure works, but is quite manual.  How do you find a friend, how do you refer to them, how do you find out more about them, how do you extend the system?

This is the magic sauce that allows scalability.  Give each user a global identifier.  The best way to do this is FOAF, imho, because once you have a FOAF you get extensibility for free,  to find friends, groups, interests and all that other good stuff.

Follow these 3 simple steps and I think we're more or less done.


4. Putting it all together
====================

Using the very simple logic above, through public key infrastructure it's is conceptually straight forward way to build an N node secure Global Social architecture that scales, and is extensible. 

- Use Distributed Servers
- Secure it with PKI (or the equivalent, you can fall back to a lower authentication method such as username/password as SSH does)
- Make the identifiers Global

You can tweak certain aspects, but I would say something along those lines has to be a rough idea of what the 'kernel' of the network should look like.

- By the same argument, you can have several users on a single node (which is an easier problem than the one we're solving). 

- Add drivers/bridges to the other networks with social apis so that you can pull in all your data, and share it etc.

- Reuse push/pull/IM/dyndns/UpnP technology for realtime access, there's a few to choose from.  Leverage notifications e.g. with UDP and/or Multicast

- Add things like encrypted file stores (e.g. tahoe), secure transport, one way hashes for anonymity, zero knowledge proofs etc.

- Plugins / Search / Private Messaging / Groups / Mashups / Applications can all reuse the base architecture


This is the simplest system I can think of to solve the basic architecture questions of building a Secure Distributed Social Network.  It should work to support a large number of nodes, or equally single nodes with a large number of users.  I would suggest starting with HTTP(S) and then extending to other protocols. 

I think something like this is the way to go with the base architecture, unless someone can think of something simpler?

reply via email to

[Prev in Thread] Current Thread [Next in Thread]