際際滷

際際滷Share a Scribd company logo
Secure Distributed Open  Social  Networks Henry Story Senior Staff Engineer Semantic Web Evangelist http://blogs.sun.com/bblfish Sun Microsystem photo by prakharevich
Overview Description of the Social Networking problem Why this is no longer  somebody else's problem : a hyper address book The functioning of the Address Book How to add distributed decentralized security A final thought: how this changes the desktop paradigm
Too many Social Networks? ...are there too many web servers?
The Problem: data silos SN don't link up: Information can't be moved easily  (see:  Data Portability the video ) Users have to create and maintain accounts on each SN they have friends on, or loose contacts Growing number of social networks (SN) because there are a lot of $$$ to be made because there are many needs there will never be one SN to rule them all.
Scoble gets thrown off Facebook! In early January 2008 Scoble, the developer who got blogging going at Microsoft, got thrown off Facebook for extracting information too agressively from his social network on Facebook. This is the Facebook who asked users for their gmail password to extract all their contacts from their email! see  his video
An (evolving) Social Graph relates many different things people to information about them name address phone number relations between people:  who knows who who worked with who relations with external things blogs companies
Two social Networks how can Tim and Henry link up ?
Solution 1: minimal na誰ve approach but within each SN queries are very limited: e.g.: in Network A, nobody can query for Tim's address
Solution 2: copy some information how to copy the data? Data Portability? (DRY principle?) how to keep the relations up to date?! Twice as much work. queries still limited: what are the friends of Tim's friends?
Solution 3: copy all technically impossible: does not scale as networks grow in size and number:  how to keep information up to date? amount of synchronization grows exponentially politically impossible: S.N. are very protective of their data + privacy issues + oligopoly issues
The pull to one network Due to  Metcalf's law : the larger the network the more valuable it becomes. But why does it have to be in one database?  Because each database has its own LOCAL POINTER mechanism, just like every Java virtual Machine has a local pointer mechanism. You cannot easily point from one JVM/DB into another. What if we had one big world wide database? we would need universal names for things. URIs?
The Solution: linking across social networks requires a global namespace
The Solution: a closer look objects and documents have URLs Relations also have URLs:  foaf:knows ,  foaf:name The Self Describing Web
A hyperdata Address Book
1. first launch of jnlp
2. drag and drop a foaf file url
3. click on the first name in the first column
4. explore the second column
5. press the space bar on the keyboard...
6. positioning with NASA's World Wind
7.  Sun Intranet Foaf experiment
Foaf: Friend of a Friend
Advantages  Open Social Network  no data silos Information about people is always up to date  (an HTTP GET away) this could be used to keep up to date on where friends are It is easy to publish a foaf file: one click away Drag and drop friends security: some ideas at the end of the talk
Two foaf files on the internet
Well, what we really have is
Well, what we really have is in graph view
The graphs inside the Beatnik Database
Networked graphs: A merged view
SPARQL: semantic query lang PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT ?p WHERE { ?p foaf:knows ?q . }
SPARQL construct query PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> CONSTRUCT { ?subject  ?relation ?object . } WHERE { GRAPH ?g {  ?subject  ?relation ?object . } ?g :fetched-at ?date . FILTER { ?date < 2008-03-30^^xsd:date } }  This CONSTRUCT query can be used to construct a graph that is a union of all graphs that were fetched after march 2008.
Networked Graphs: SPARQL Rules PREFIX owl: < http://www.w3.org/2002/07/owl #> CONSTRUCT { ?b owl:sameAs ?a . }  WHERE {  ?a owl:sameAs ?b .  FILTER ( ! SAMETERM(?a , ?b) )  }  CONSTRUCT queries can also be thought of as rules. Here is the well known rule of symmetry of identity. Simon Schenk's  Networked Graphs  can have a number of rules expressed as SPARQL CONSTRUCT queries, which works nicely with the Sesame semantic engine.
merging identities PREFIX owl: < http://www.w3.org/2002/07/owl #> PREFIX foaf: < http://xmlns.com/foaf/0.1/ > CONSTRUCT { ?a owl:sameAs ?b .  }  WHERE {  ?a foaf:homepage ?pg . ?b foaf:homepage ?pg . FILTER ( ! SAMETERM (?a , ?b))  }  The rule that if we have two names for people that have the same homepage, then the two names refer to the same person. There are more general ways of stating this btw.
Security: 3 approaches Simple Firewall based security OpenId based Security Even simpler SSL based security
Firewall protection
Protecting resources with OpenId
Protected Resources :me a foaf:Person; foaf:name Henry Story; rdfs:seeAlso  </protected/henry>  . </protected/henry> openid:login </openidAuth.cgi> . This is trying to say that in order to access the protected resource one needs to login with openid first. This is a sketch of such a vocabulary
OpenId continued
foaf+ssl: even simpler
Protected Resources :me a foaf:Person; foaf:name Henry Story; rdfs:seeAlso  <https://.../protected/henry>  . notice the seeAlso is now an https url
foaf+ssl: even simpler
X509 certificate Certificate: Data: Version: 3 (0x2) Serial Number: 1 (0x1) Signature Algorithm: dsaWithSHA1 Issuer: O=OpenPGP to X.509 Bridge, OU=RDFauth Test, CN=Henry Story <henry.story@bblfish.net> Validity Not Before: Dec 12 21:49:50 2007 GMT Not After : Dec  6 21:49:50 2008 GMT Subject: O=OpenPGP to X.509 Bridge, OU=RDFauth Test, CN=Henry Story <henry.story@bblfish.net> Subject Public Key Info: Public Key Algorithm: dsaEncryption DSA Public Key: pub:  33:41:...
X509 certificate with id X509v3 extensions: X509v3 Basic Constraints: critical CA:TRUE X509v3 Key Usage: critical Digital Signature, Non Repudiation, Key Encipherment, Key Agreement, Certificate Sign Netscape Cert Type:  SSL Client, S/MIME X509v3 Subject Key Identifier:  45:DC:F9:10:33:C0:45:28:EA:90:6E:83:73:06:6F:51:21:89:13:DD X509v3 Authority Key Identifier:  keyid:45:DC:F9:10:33:C0:45:28:EA:90:6E:83:73:06:6F:51:21:89:13:DD X509v3 Subject Alternative Name:  URI:http://bblfish.net/people/henry/card#me Signature Algorithm: dsaWithSHA1 30:2c:02:14:78:69:1e:4f:7d:37:36:a5:8f:37:30:58:18:5a: f6:10:e9:13:a4:ec:02:14:03:93:42:3b:c0:d4:33:63:ae:2f: eb:8c:11:08:1c:aa:93:7d:71:01
Very Simple Authentication
The Semantic Desktop
some references Getting Started With RDF The Semantic Address Book web site

More Related Content

Building Secure Open & Distributed Social Networks

  • 1. Secure Distributed Open Social Networks Henry Story Senior Staff Engineer Semantic Web Evangelist http://blogs.sun.com/bblfish Sun Microsystem photo by prakharevich
  • 2. Overview Description of the Social Networking problem Why this is no longer somebody else's problem : a hyper address book The functioning of the Address Book How to add distributed decentralized security A final thought: how this changes the desktop paradigm
  • 3. Too many Social Networks? ...are there too many web servers?
  • 4. The Problem: data silos SN don't link up: Information can't be moved easily (see: Data Portability the video ) Users have to create and maintain accounts on each SN they have friends on, or loose contacts Growing number of social networks (SN) because there are a lot of $$$ to be made because there are many needs there will never be one SN to rule them all.
  • 5. Scoble gets thrown off Facebook! In early January 2008 Scoble, the developer who got blogging going at Microsoft, got thrown off Facebook for extracting information too agressively from his social network on Facebook. This is the Facebook who asked users for their gmail password to extract all their contacts from their email! see his video
  • 6. An (evolving) Social Graph relates many different things people to information about them name address phone number relations between people: who knows who who worked with who relations with external things blogs companies
  • 7. Two social Networks how can Tim and Henry link up ?
  • 8. Solution 1: minimal na誰ve approach but within each SN queries are very limited: e.g.: in Network A, nobody can query for Tim's address
  • 9. Solution 2: copy some information how to copy the data? Data Portability? (DRY principle?) how to keep the relations up to date?! Twice as much work. queries still limited: what are the friends of Tim's friends?
  • 10. Solution 3: copy all technically impossible: does not scale as networks grow in size and number: how to keep information up to date? amount of synchronization grows exponentially politically impossible: S.N. are very protective of their data + privacy issues + oligopoly issues
  • 11. The pull to one network Due to Metcalf's law : the larger the network the more valuable it becomes. But why does it have to be in one database? Because each database has its own LOCAL POINTER mechanism, just like every Java virtual Machine has a local pointer mechanism. You cannot easily point from one JVM/DB into another. What if we had one big world wide database? we would need universal names for things. URIs?
  • 12. The Solution: linking across social networks requires a global namespace
  • 13. The Solution: a closer look objects and documents have URLs Relations also have URLs: foaf:knows , foaf:name The Self Describing Web
  • 15. 1. first launch of jnlp
  • 16. 2. drag and drop a foaf file url
  • 17. 3. click on the first name in the first column
  • 18. 4. explore the second column
  • 19. 5. press the space bar on the keyboard...
  • 20. 6. positioning with NASA's World Wind
  • 21. 7. Sun Intranet Foaf experiment
  • 22. Foaf: Friend of a Friend
  • 23. Advantages Open Social Network no data silos Information about people is always up to date (an HTTP GET away) this could be used to keep up to date on where friends are It is easy to publish a foaf file: one click away Drag and drop friends security: some ideas at the end of the talk
  • 24. Two foaf files on the internet
  • 25. Well, what we really have is
  • 26. Well, what we really have is in graph view
  • 27. The graphs inside the Beatnik Database
  • 28. Networked graphs: A merged view
  • 29. SPARQL: semantic query lang PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT ?p WHERE { ?p foaf:knows ?q . }
  • 30. SPARQL construct query PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> CONSTRUCT { ?subject ?relation ?object . } WHERE { GRAPH ?g { ?subject ?relation ?object . } ?g :fetched-at ?date . FILTER { ?date < 2008-03-30^^xsd:date } } This CONSTRUCT query can be used to construct a graph that is a union of all graphs that were fetched after march 2008.
  • 31. Networked Graphs: SPARQL Rules PREFIX owl: < http://www.w3.org/2002/07/owl #> CONSTRUCT { ?b owl:sameAs ?a . } WHERE { ?a owl:sameAs ?b . FILTER ( ! SAMETERM(?a , ?b) ) } CONSTRUCT queries can also be thought of as rules. Here is the well known rule of symmetry of identity. Simon Schenk's Networked Graphs can have a number of rules expressed as SPARQL CONSTRUCT queries, which works nicely with the Sesame semantic engine.
  • 32. merging identities PREFIX owl: < http://www.w3.org/2002/07/owl #> PREFIX foaf: < http://xmlns.com/foaf/0.1/ > CONSTRUCT { ?a owl:sameAs ?b . } WHERE { ?a foaf:homepage ?pg . ?b foaf:homepage ?pg . FILTER ( ! SAMETERM (?a , ?b)) } The rule that if we have two names for people that have the same homepage, then the two names refer to the same person. There are more general ways of stating this btw.
  • 33. Security: 3 approaches Simple Firewall based security OpenId based Security Even simpler SSL based security
  • 36. Protected Resources :me a foaf:Person; foaf:name Henry Story; rdfs:seeAlso </protected/henry> . </protected/henry> openid:login </openidAuth.cgi> . This is trying to say that in order to access the protected resource one needs to login with openid first. This is a sketch of such a vocabulary
  • 39. Protected Resources :me a foaf:Person; foaf:name Henry Story; rdfs:seeAlso <https://.../protected/henry> . notice the seeAlso is now an https url
  • 41. X509 certificate Certificate: Data: Version: 3 (0x2) Serial Number: 1 (0x1) Signature Algorithm: dsaWithSHA1 Issuer: O=OpenPGP to X.509 Bridge, OU=RDFauth Test, CN=Henry Story <henry.story@bblfish.net> Validity Not Before: Dec 12 21:49:50 2007 GMT Not After : Dec 6 21:49:50 2008 GMT Subject: O=OpenPGP to X.509 Bridge, OU=RDFauth Test, CN=Henry Story <henry.story@bblfish.net> Subject Public Key Info: Public Key Algorithm: dsaEncryption DSA Public Key: pub: 33:41:...
  • 42. X509 certificate with id X509v3 extensions: X509v3 Basic Constraints: critical CA:TRUE X509v3 Key Usage: critical Digital Signature, Non Repudiation, Key Encipherment, Key Agreement, Certificate Sign Netscape Cert Type: SSL Client, S/MIME X509v3 Subject Key Identifier: 45:DC:F9:10:33:C0:45:28:EA:90:6E:83:73:06:6F:51:21:89:13:DD X509v3 Authority Key Identifier: keyid:45:DC:F9:10:33:C0:45:28:EA:90:6E:83:73:06:6F:51:21:89:13:DD X509v3 Subject Alternative Name: URI:http://bblfish.net/people/henry/card#me Signature Algorithm: dsaWithSHA1 30:2c:02:14:78:69:1e:4f:7d:37:36:a5:8f:37:30:58:18:5a: f6:10:e9:13:a4:ec:02:14:03:93:42:3b:c0:d4:33:63:ae:2f: eb:8c:11:08:1c:aa:93:7d:71:01
  • 45. some references Getting Started With RDF The Semantic Address Book web site

Editor's Notes

  • #2: Hello, my name is Henry Story. I work for Sun Microsystems where I research on the Semantic Web. I am tasked with finding ways to get people excited about what is happening in this space, which at first may seem very abstract. So I have been looking for problems that would affect people directly, have some real immediate business value, clearly demonstrate the power of the semantic web, and that is small enough that I don&apos;t need a big budget to get things done. After all I am in the business of convincing people. Once they are convinced I hope they will help out one way or another. Social Networking is big. It affects everyone in very personal ways. It is useful. It is what we are all about. Here I wish to show how one can build an secure, open, distributed global social network with no center of control. The only way to do this is using the semantic web....