SlideShare a Scribd company logo
Self-Enforcing Access Control for Encrypted RDF
Javier D. Fernández,Sabrina Kirrane, Axel Polleres,Simon Steyskal
ESWC 2017– Portorož
Publishing Linked Open Data
Motivation
“Open data and content can be freely used, modified,
and shared by anyone for any purpose” - http://opendefinition.org/
RDB2RDF
RDB2RDF
RDB2RDF
Interface
RDF Store
RDF(a) Document
What about Linked Closed Data?
Motivation
§ What are the incentives for data owners to publish their
data as Closed Data?
§ financial considerations, compliance with institutional/community
norms, privacy requirements, …
Publishing Linked Closed Data
Motivation
§ In order to also cater for Linked Closed Data, existing
infrastructure needs to be extended with suitable
security mechanisms:
Encryption
Selectively grant or
revoke access to data.
Protect data against
unauthorized access.
Access control
Allow Multiple Users Access to Encrypted Data
Concrete example
Alice
Admin
„What‘s my ex:salary?“
„Show me all triples!“
Multiple Users Encryption Granularity
Scenario 1: a key for everything
Encryption is coarse-grained
S P O
ex:Alice foaf:pastProject ex:Project1
ex:Alice ex:salary 30000
ex:Alice foaf:mbox "alice@example.org"  
ex:Bob foaf:pastProject ex:Project1
ex:Bob ex:salary 20000
ex:Bob foaf:mbox "bob@example.org"  
Alice
Admin
ex:Bob earns
less than me!
What‘s my
ex:salary?
Show me all
triples!
Alice shouldn’t have access
to that information!
Scenario 2: a key for each triple
Encryption is coarse-grained
PAGE 7
S P O
ex:Alice foaf:pastProject ex:Project1
ex:Alice ex:salary 30000
ex:Alice ex:salary 30000
ex:Alice foaf:mbox "alice@example.org"  
ex:Bob foaf:pastProject ex:Project1
ex:Bob ex:salary 20000
ex:Bob foaf:mbox "bob@example.org"  
Alice
Admin
I don‘t want
all those
keys..
What‘s my
ex:salary?
Show me all
triples!
Admin has to manage
a lot of keys!
Scenario 3: a key for each user
Encryption is coarse-grained
PAGE 8
S P O
ex:Alice foaf:pastProject ex:Project1
ex:Alice ex:salary 30000
ex:Alice foaf:mbox "alice@example.org"  
ex:Bob foaf:pastProject ex:Project1
ex:Bob ex:salary 20000
ex:Bob foaf:mbox "bob@example.org"  
Alice
Admin
I don‘t want
all those
keys..
What‘s my
ex:salary?
Show me all
triples!
Admin has to manage
a lot of keys!
Scenario 4: one key opens multiple locks
Encryption based on patterns
S P O
ex:Alice foaf:pastProject ex:Project1
ex:Alice ex:salary 30000
ex:Alice foaf:mbox "alice@example.org"  
ex:Bob foaf:pastProject ex:Project1
ex:Bob ex:salary 20000
ex:Bob foaf:mbox "bob@example.org"  
Alice
Admin
Only 1 key,
that‘s much
better
What‘s my
ex:salary?
Show me all
triples! =  (ex:Alice,  ex:salary,  ?)
=  (?,  ?,  ?)
one key can open
multiple locks
1. Compute the triple vector using a  mapping  function  to  map  the    subject,  
predicate,  and  object  value  to  elements  in  ℤ 𝑁
2. Functionally encrypt a randomly generated seed using the triple vector
3. Derive an encryption key from our previously generated seed and use AES to
encrypt the triple with an encryption key
4. Return the triple cipher and the decryption key
Encryption of RDF Triples
A Functional Encryption Scheme for RDF
triple vector
key
triple cipher
1)
2) 3)
4)
jpbc http://gas.dia.unisa.it/projects/jpbc/#.WS73m_exW7M
Encryption of RDF Triples
A Functional Encryption Scheme for RDF
triple vector
triple cipher
𝜎 denotes  a  mapping  function  that  maps  a  triple’s
subject,  predicate,  and  object  value  to  elements  in  ℤ 𝑁
key
Decryption of RDF Triples
A Functional Encryption Scheme for RDF
𝒚 𝒔 𝒕
𝒚′ 𝒔 𝒕
𝒚 𝒑 𝒕
𝒚′ 𝒑 𝒕
𝒚 𝒐 𝒕
𝒚′ 𝒐 𝒕
−𝑟+ ∗ 	
   𝜎(𝐴𝑙𝑖𝑐𝑒) 𝑟+ −𝑟5 ∗ 	
   𝜎(𝑝𝑎𝑠𝑡𝑃) 𝑟5 −𝑟; ∗ 	
   𝜎(𝑃𝑟𝑜1) 𝑟;
tp  =  (ex:Alice,  foaf:pastProject,  ?)
t  =  (ex:Alice,  foaf:pastProject,  ex:Project1)
𝐱 𝒔 𝒕𝐩
𝐱′ 𝒔 𝒕𝐩
𝐱 𝒑 𝒕𝐩
𝐱′ 𝒑 𝒕𝐩
𝐱 𝒐 𝒕𝐩
𝐱′ 𝒐 𝒕𝐩
1 𝜎(𝐴𝑙𝑖𝑐𝑒) 1 𝜎(𝑝𝑎𝑠𝑡𝑃) 0 0
−𝑟+ ∗ 	
   𝜎 𝐴𝑙𝑖𝑐𝑒 + 𝑟+ ∗ 	
   𝜎 𝐴𝑙𝑖𝑐𝑒 + −𝑟5 ∗ 	
   𝜎 𝑝𝑎𝑠𝑡𝑃 + 𝑟5 ∗ 	
   𝜎 𝑝𝑎𝑠𝑡𝑃 + 0 + 0 = 0
compute the inner-product of their
corresponding triple vector
Decryption of RDF Triples
Optimising Query Execution
S P O
ex:Alice foaf:pastProject ex:Project1
ex:Alice ex:salary 30000
ex:Alice foaf:mbox "alice@example.org"  
ex:Bob foaf:pastProject ex:Project1
ex:Bob ex:salary 20000
ex:Bob foaf:mbox "bob@example.org"  
=  (ex:Alice,  ?,  ?)
She has to always check
each and every triple
O S P
ex:Alice foaf:pastProject ex:Project1
ex:Alice ex:salary 30000
ex:Alice foaf:mbox "alice@example.org"  
ex:Bob foaf:pastProject ex:Project1
ex:Bob ex:salary 20000
ex:Bob foaf:mbox "bob@example.org"  
P O S
ex:Alice foaf:pastProject ex:Project1
ex:Alice ex:salary 30000
ex:Alice foaf:mbox "alice@example.org"  
ex:Bob foaf:pastProject ex:Project1
ex:Bob ex:salary 20000
ex:Bob foaf:mbox "bob@example.org"  
3-Index
Optimising Query Execution
S P O
ex:Alice foaf:pastProject ex:Project1
ex:Alice ex:salary 30000
ex:Alice foaf:mbox "alice@example.org"  
ex:Bob foaf:pastProject ex:Project1
ex:Bob ex:salary 20000
ex:Bob foaf:mbox "bob@example.org"  
=  (ex:Alice,  ?,  ?)
S P O
ex:Alice foaf:pastProject ex:Project1
ex:Alice ex:salary 30000
ex:Alice foaf:mbox "alice@example.org"  
We use three key-
value B-Trees and data
is encrypted using a
strong hash function
O S P
ex:Alice foaf:pastProject ex:Project1
ex:Alice ex:salary 30000
ex:Alice foaf:mbox "alice@example.org"  
ex:Bob foaf:pastProject ex:Project1
ex:Bob ex:salary 20000
ex:Bob foaf:mbox "bob@example.org"  
3-Index
Optimising Query Execution
S P O
ex:Alice foaf:pastProject ex:Project1
ex:Alice ex:salary 30000
ex:Alice foaf:mbox "alice@example.org"  
ex:Bob foaf:pastProject ex:Project1
ex:Bob ex:salary 20000
ex:Bob foaf:mbox "bob@example.org"  
S P O
ex:Alice foaf:pastProject ex:Project1
ex:Alice ex:salary 30000
ex:Alice foaf:mbox "alice@example.org"  
=  (?,  foaf:pastProject,  ex:Project1)
P O S
ex:salary 30000 ex:Alice
ex:salary 20000 ex:Bob
foaf:mbox
"alice@example.or
g"  
ex:Alice
foaf:mbox "bob@example.org"   ex:Bob
foaf:pastProject ex:Project1 ex:Alice
foaf:pastProject ex:Project1 ex:Bob
We use three key-
value B-Trees and data
is encrypted using a
strong hash function
S O
ex:Alice ex:Project1
ex:Bob ex:Project1
S O
ex:Alice 30000
ex:Bob 20000
S O
ex:Alice "alice@example.org"  
ex:Bob "bob@example.org"  
Vertical Partitioning
Optimising Query Execution
foaf:mbox
ex:salary
foaf:pastProject
S
ex:Alice foaf:pastPro
ex:Alice ex:salar
ex:Alice foaf:mbo
ex:Bob foaf:pastPro
ex:Bob ex:salar
ex:Bob foaf:mbo
=  (?,  foaf:pastProject,  ex:Project1)
We use three key-
value B-Trees and data
is encrypted using a
strong hash function
S O
ex:Alice ex:Project1
ex:Bob ex:Project1
S O
ex:Alice 30000
ex:Bob 20000
S O
ex:Alice "alice@example.org"  
ex:Bob "bob@example.org"  
Vertical Partitioning
Optimising Query Execution
foaf:mbox
ex:salary
foaf:pastProject
=  (ex:Alice,  ?,  ?)
S
ex:Alice foaf:pastPro
ex:Alice ex:salar
ex:Alice foaf:mbo
ex:Bob foaf:pastPro
ex:Bob ex:salar
ex:Bob foaf:mbo
We use three key-
value B-Trees and data
is encrypted using a
strong hash function
Experiment Setup
Evaluation
§ Real-world datasets from different domains:
§ Census represents the 2010 Australian census
§ Jamendo lists music records and artists
§ AEMET includes sensor data from weather stations in Spain
§ Lehigh University Benchmark (LUBM) data generator to obtain synthetic
datasets
Encrypting and Indexing
Evaluation
§ Both strategies report similar performance results
Ø VP is slightly faster for loading given that only the subject and object is
used to index each triple
§ Encryption overhead
Ø can be of one order of magnitude greater for the smaller datasets
Ø this is greatly reduced for larger datasets
B-Tree
indexes
become
slower the
more triples
are added
(due to
rebalancing)
Query Resolution
Evaluation
§ 3-Index is better than VP for queries with unbound predicates as VP
has to iterate though all predicate tables in this case
§ There is minimum overhead between the plain and encrypted
indexes if a look-up returns only a small amount of results
LUBM Jamendo
if you have
to decrypt
more triples,
it takes
more time
overall
Scalability
Evaluation
§ Our approach allows for parallel encryption/decryption of
triples
Ø scales with the system’s supported level of parallelization
§ Encrypting and indexing (3-Index) 10,000 LUBM triples takes
about:
Ø 76s with 16 available cores
Ø 133s with 8 available cores
Ø 262s with 4 available cores
Ø 497s with 2 available cores
§ Each result triple can be returned as soon as its decryption
has finished!
Results
Conclusion
§ Practical realisation of a functional encryption scheme for
RDF
§ generate decryption keys based on (triple-)patterns
§ a decryption key can decrypt all triples that match its associated triple
pattern
Ø provides a high degree of flexibility and enables controlled access to
encrypted RDF data
§ Evaluation
§ reasonable loading and query performance overheads with respect to
traditional, non-encrypted data retrieval
§ relatively slow for batch decryption, but it is suitable for serving
incremental results
https://aic.ai.wu.ac.at/comcrypt/sld/
Future Work
Conclusion
Evaluate different indexing strategies
Ø optimise the loading time and query performance of large queries
Cater for named graphs
Ø encrypting quads instead of triples and generating keys based on quad
patterns
Triple store for compressed encrypted data
Ø Current implementation uses an offtheshelf key value store
Ø Build a custom triple store based on HDT
Add a “policy” tier
Ø manages the access/revocation of query keys and serve as fully fledged
security framework for Linked Data
Self-Enforcing Access Control
for Encrypted RDF
S P O
ex:Alice foaf:pastProject ex:Project1
ex:Alice ex:salary 30000
ex:Alice foaf:mbox "alice@example.org"  
ex:Bob foaf:pastProject ex:Project1
ex:Bob ex:salary 20000
ex:Bob foaf:mbox "bob@example.org"  
Alice
Admin
Only 1 key,
that‘s much
better
Show me
ex:salary?
Show me all
triples!
=  (ex:Alice,  ex:salary,  ?)
=  (?,  ?,  ?)
Backup Slides
PAGE 25
Overview
Public Key Encryption
data owner will encrypt data to
the public key of a specific user
only a user possessing the corresponding
private key can decrypt the ciphertext
§ Encryption is targeted towards a specific user
§ Decryption is an all or nothing operation; either:
a) a ciphertext is fully decrypted and the original data is recovered
b) it fails and nothing is learned.
Figure taken from http://www.infosectoday.com/Articles/Intro_to_Cryptography
Functional Encryption to the Rescue!
More fine-grained control over access to encrypted data
§ Functional Encryption
§ secret keys correspond to functions in some class 𝐹
§ each ciphertext is associated with a (secret) attribute of some
attribute space 𝛴
§ a ciphertext associated with 𝐼 ∈ 𝛴 can be decrypted by a secret
key 𝑠𝑘G corresponding to the function 𝑓 ∈ 𝐹 iff 𝑓(𝐼) = 1.
§ Inner-product Functional Encryption
§ Each ciphertext is associated with a (secret) attribute vector 𝒚
§ Each secret key corresponds to a vector 𝒙 that is incorporated into
its respective boolean function 𝑓 𝒙
𝑓 𝒙(𝒚) = 1 iff 𝒙 J 𝒚 = 0
J. Katz et al.: “Predicate Encryption Supporting Disjunctions,Polynomial
Equations, and Inner Products”. J. Cryptology,26(2): 191–224, 2013.
Generating Decryption Keys
A Functional Encryption Scheme for RDF
serves as a wildcard
Query Resolution (cold)
Evaluation
§ 3-Index reports a noticeable better performance than VP
for queries with unbound predicates
§ VP has to iterate though all predicate tables in this case.
§ 3-Index and VP remain competitive wrt. their non-secure
counterparts, if a look-up returns only a small amount of
results
§ Decrypting Jamendo entirely took about 2256s using VP
and 2808s using 3-Index
§ Leading to triple decryption rates of 465 triples/sec and
374 triples/sec respectively Each result triple can be
returned as soon as its
decryption has finished!
Query Resolution (cold)
Evaluation
§ 3-Index reports a noticeable better performance than VP
for queries with unbound predicates
§ VP has to iterate though all predicate tables in this case.
§ 3-Index and VP remain competitive wrt. their non-secure
counterparts, if a look-up returns only a small amount of
results
§ Decrypting Jamendo entirely took about 2256s using VP
and 2808s using 3-Index
§ Leading to triple decryption rates of 465 triples/s and
374 triples/s respectively
Each result triple can be
returned as soon as its
decryption has finished!
5M LUBM triples Jamendo
Decryption of RDF Triples
A Functional Encryption Scheme for RDF
𝒚 𝒔 𝒕
𝒚′ 𝒔 𝒕
𝒚 𝒑 𝒕
𝒚′ 𝒑 𝒕
𝒚 𝒐 𝒕
𝒚′ 𝒐 𝒕
−𝑟+ ∗ 	
   𝜎(𝐴𝑙𝑖𝑐𝑒) 𝑟+ −𝑟5 ∗ 	
   𝜎(𝑝𝑎𝑠𝑡𝑃) 𝑟5 −𝑟; ∗ 	
   𝜎(𝑃𝑟𝑜1) 𝑟;
tp  =  (ex:Alice,  ex:salary,  ?)
t  =  (ex:Alice,  foaf:pastProject,  ex:Project1)
𝐱 𝒔 𝒕𝐩
𝐱′ 𝒔 𝒕𝐩
𝐱 𝒑 𝒕𝐩
𝐱′ 𝒑 𝒕𝐩
𝐱 𝒐 𝒕𝐩
𝐱′ 𝒐 𝒕𝐩
1 𝜎(𝐴𝑙𝑖𝑐𝑒) 1 𝜎(𝑠𝑎𝑙𝑎𝑟𝑦) 0 0
−𝑟+ ∗ 	
   𝜎 𝐴𝑙𝑖𝑐𝑒 + 𝑟+ ∗ 	
   𝜎 𝐴𝑙𝑖𝑐𝑒 + −𝑟5 ∗ 	
   𝜎 𝑝𝑎𝑠𝑡𝑃 + 𝑟5 ∗ 	
   𝜎 𝑠𝑎𝑙𝑎𝑟𝑦 + 0 + 0	
   ≠ 0
3-Index
Optimising Query Execution
Vertical Partitioning
Optimising Query Execution

More Related Content

PDF
Kibana: Real-World Examples
Salvatore Cordiano
 
ODP
SPARQL 1.1 Update (2013-03-05)
andyseaborne
 
PDF
RDF Stream Processing Models (RSP2014)
Daniele Dell'Aglio
 
PDF
Querying Linked Data with SPARQL
Olaf Hartig
 
PDF
Linking the world with Python and Semantics
Tatiana Al-Chueyr
 
PPTX
SPARQL Cheat Sheet
LeeFeigenbaum
 
PPTX
Semantic web meetup – sparql tutorial
AdonisDamian
 
PDF
WebTech Tutorial Querying DBPedia
Katrien Verbert
 
Kibana: Real-World Examples
Salvatore Cordiano
 
SPARQL 1.1 Update (2013-03-05)
andyseaborne
 
RDF Stream Processing Models (RSP2014)
Daniele Dell'Aglio
 
Querying Linked Data with SPARQL
Olaf Hartig
 
Linking the world with Python and Semantics
Tatiana Al-Chueyr
 
SPARQL Cheat Sheet
LeeFeigenbaum
 
Semantic web meetup – sparql tutorial
AdonisDamian
 
WebTech Tutorial Querying DBPedia
Katrien Verbert
 

What's hot (14)

PPTX
Hadoop with Python
Donald Miner
 
PDF
IPython Notebook as a Unified Data Science Interface for Hadoop
DataWorks Summit
 
PDF
TinkerPop: a story of graphs, DBs, and graph DBs
Joshua Shinavier
 
KEY
Cascalog at Strange Loop
nathanmarz
 
PDF
Zero-Knowledge Query Planning for an Iterator Implementation of Link Traversa...
Olaf Hartig
 
ZIP
The design, architecture, and tradeoffs of FluidDB
Terry Jones
 
PDF
Bigdive 2014 - RDF, principles and case studies
Diego Valerio Camarda
 
PPT
Twinkle: A SPARQL Query Tool
Leigh Dodds
 
PDF
Intro to Neo4j 2.0
Peter Neubauer
 
PDF
Querying the Web of Data with XSPARQL 1.1
Daniele Dell'Aglio
 
PPTX
R meetup talk
Joseph Adler
 
PPTX
Creating an Open Source Genealogical Search Engine with Apache Solr
Brooke Ganz
 
PDF
Getting started with Apache Spark in Python - PyLadies Toronto 2016
Holden Karau
 
PDF
Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 2 (...
Olaf Hartig
 
Hadoop with Python
Donald Miner
 
IPython Notebook as a Unified Data Science Interface for Hadoop
DataWorks Summit
 
TinkerPop: a story of graphs, DBs, and graph DBs
Joshua Shinavier
 
Cascalog at Strange Loop
nathanmarz
 
Zero-Knowledge Query Planning for an Iterator Implementation of Link Traversa...
Olaf Hartig
 
The design, architecture, and tradeoffs of FluidDB
Terry Jones
 
Bigdive 2014 - RDF, principles and case studies
Diego Valerio Camarda
 
Twinkle: A SPARQL Query Tool
Leigh Dodds
 
Intro to Neo4j 2.0
Peter Neubauer
 
Querying the Web of Data with XSPARQL 1.1
Daniele Dell'Aglio
 
R meetup talk
Joseph Adler
 
Creating an Open Source Genealogical Search Engine with Apache Solr
Brooke Ganz
 
Getting started with Apache Spark in Python - PyLadies Toronto 2016
Holden Karau
 
Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 2 (...
Olaf Hartig
 
Ad

Viewers also liked (8)

PDF
Privacy & innovation digital enterprise
Sabrina Kirrane
 
PDF
Society, Privacy and the Semantic Web - Policy and Technology PrivOn 2017
Sabrina Kirrane
 
PPTX
Sabrina Kirrane INSIGHT Viva Presentation
Sabrina Kirrane
 
PDF
Transparent Personal Data Processing: The Road Ahead
Sabrina Kirrane
 
PDF
Modelling the General Data Protection Regulation
Sabrina Kirrane
 
PPTX
Access Control for Linked Data: Past, Present and Future
Sabrina Kirrane
 
PDF
Data License Clearance Center
Sabrina Kirrane
 
PDF
Scalable policy-aware Linked Data architecture for prIvacy, transparency and ...
Sabrina Kirrane
 
Privacy & innovation digital enterprise
Sabrina Kirrane
 
Society, Privacy and the Semantic Web - Policy and Technology PrivOn 2017
Sabrina Kirrane
 
Sabrina Kirrane INSIGHT Viva Presentation
Sabrina Kirrane
 
Transparent Personal Data Processing: The Road Ahead
Sabrina Kirrane
 
Modelling the General Data Protection Regulation
Sabrina Kirrane
 
Access Control for Linked Data: Past, Present and Future
Sabrina Kirrane
 
Data License Clearance Center
Sabrina Kirrane
 
Scalable policy-aware Linked Data architecture for prIvacy, transparency and ...
Sabrina Kirrane
 
Ad

Similar to Self-Enforcing Access Control for Encrypted RDF (20)

PPT
Aidan's PhD Viva
Aidan Hogan
 
PPTX
ShEx by Example
Jose Emilio Labra Gayo
 
PDF
Two graph data models : RDF and Property Graphs
andyseaborne
 
PDF
ESWC SS 2013 - Tuesday Keynote Steffen Staab: Programming the Semantic Web
eswcsummerschool
 
PDF
Staab programming thesemanticweb
Aneta Tu
 
PPTX
Programming the Semantic Web
Steffen Staab
 
PDF
Linked Data Fragments
Ruben Verborgh
 
PPTX
Sending a for ahuh. win32 exploit development old school
Nahidul Kibria
 
PPTX
Challenges and applications of RDF shapes
Jose Emilio Labra Gayo
 
PDF
Querying Heterogeneous Linked Date Interfaces through Reasoning
Joachim Van Herwegen
 
PDF
Spark Summit EU talk by Shay Nativ and Dvir Volk
Spark Summit
 
PDF
Halogen: Past, Present, and Future
John De Goes
 
ODP
Graph Data -- RDF and Property Graphs
andyseaborne
 
PPTX
Wi2015 - Clustering of Linked Open Data - the LODeX tool
Laura Po
 
PPTX
The Internet Is Your New Database: An Introduction To The Semantic Web
Will Strinz
 
PDF
Monitoring Oracle Database Instances with Zabbix
Gerger
 
PDF
HyperGraphQL
Szymon Klarman
 
PDF
Streams of information - Chicago crystal language monthly meetup
Brian Cardiff
 
ODP
NoSQL and Triple Stores
andyseaborne
 
PPTX
Emerging technologies /frameworks in Big Data
Rahul Jain
 
Aidan's PhD Viva
Aidan Hogan
 
ShEx by Example
Jose Emilio Labra Gayo
 
Two graph data models : RDF and Property Graphs
andyseaborne
 
ESWC SS 2013 - Tuesday Keynote Steffen Staab: Programming the Semantic Web
eswcsummerschool
 
Staab programming thesemanticweb
Aneta Tu
 
Programming the Semantic Web
Steffen Staab
 
Linked Data Fragments
Ruben Verborgh
 
Sending a for ahuh. win32 exploit development old school
Nahidul Kibria
 
Challenges and applications of RDF shapes
Jose Emilio Labra Gayo
 
Querying Heterogeneous Linked Date Interfaces through Reasoning
Joachim Van Herwegen
 
Spark Summit EU talk by Shay Nativ and Dvir Volk
Spark Summit
 
Halogen: Past, Present, and Future
John De Goes
 
Graph Data -- RDF and Property Graphs
andyseaborne
 
Wi2015 - Clustering of Linked Open Data - the LODeX tool
Laura Po
 
The Internet Is Your New Database: An Introduction To The Semantic Web
Will Strinz
 
Monitoring Oracle Database Instances with Zabbix
Gerger
 
HyperGraphQL
Szymon Klarman
 
Streams of information - Chicago crystal language monthly meetup
Brian Cardiff
 
NoSQL and Triple Stores
andyseaborne
 
Emerging technologies /frameworks in Big Data
Rahul Jain
 

More from Sabrina Kirrane (8)

PDF
Different perspectives on data science
Sabrina Kirrane
 
PDF
Intelligent agents the vision revisited
Sabrina Kirrane
 
PDF
SPECIAL ESWC project networking
Sabrina Kirrane
 
PDF
DALICC ESWC Project Networking 2018
Sabrina Kirrane
 
PDF
Digital Rights Management
Sabrina Kirrane
 
PDF
W3C Data Privacy Vocabularies and Controls Community Group
Sabrina Kirrane
 
PPTX
Propelling the Potential of Linked Data in Enterprises
Sabrina Kirrane
 
PDF
Cryptocurrencies and Blockchain technology
Sabrina Kirrane
 
Different perspectives on data science
Sabrina Kirrane
 
Intelligent agents the vision revisited
Sabrina Kirrane
 
SPECIAL ESWC project networking
Sabrina Kirrane
 
DALICC ESWC Project Networking 2018
Sabrina Kirrane
 
Digital Rights Management
Sabrina Kirrane
 
W3C Data Privacy Vocabularies and Controls Community Group
Sabrina Kirrane
 
Propelling the Potential of Linked Data in Enterprises
Sabrina Kirrane
 
Cryptocurrencies and Blockchain technology
Sabrina Kirrane
 

Recently uploaded (20)

PDF
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
PDF
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
PDF
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
PDF
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
PDF
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
PPTX
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
PDF
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
PDF
Get More from Fiori Automation - What’s New, What Works, and What’s Next.pdf
Precisely
 
PPTX
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
PPTX
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
PDF
Doc9.....................................
SofiaCollazos
 
PPTX
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
PDF
OFFOFFBOX™ – A New Era for African Film | Startup Presentation
ambaicciwalkerbrian
 
PPTX
Agile Chennai 18-19 July 2025 | Emerging patterns in Agentic AI by Bharani Su...
AgileNetwork
 
PDF
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 
PPTX
Introduction to Flutter by Ayush Desai.pptx
ayushdesai204
 
PDF
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
PDF
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
PPTX
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
PDF
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
Get More from Fiori Automation - What’s New, What Works, and What’s Next.pdf
Precisely
 
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
Doc9.....................................
SofiaCollazos
 
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
OFFOFFBOX™ – A New Era for African Film | Startup Presentation
ambaicciwalkerbrian
 
Agile Chennai 18-19 July 2025 | Emerging patterns in Agentic AI by Bharani Su...
AgileNetwork
 
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 
Introduction to Flutter by Ayush Desai.pptx
ayushdesai204
 
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 

Self-Enforcing Access Control for Encrypted RDF

  • 1. Self-Enforcing Access Control for Encrypted RDF Javier D. Fernández,Sabrina Kirrane, Axel Polleres,Simon Steyskal ESWC 2017– Portorož
  • 2. Publishing Linked Open Data Motivation “Open data and content can be freely used, modified, and shared by anyone for any purpose” - http://opendefinition.org/ RDB2RDF RDB2RDF RDB2RDF Interface RDF Store RDF(a) Document
  • 3. What about Linked Closed Data? Motivation § What are the incentives for data owners to publish their data as Closed Data? § financial considerations, compliance with institutional/community norms, privacy requirements, …
  • 4. Publishing Linked Closed Data Motivation § In order to also cater for Linked Closed Data, existing infrastructure needs to be extended with suitable security mechanisms: Encryption Selectively grant or revoke access to data. Protect data against unauthorized access. Access control
  • 5. Allow Multiple Users Access to Encrypted Data Concrete example Alice Admin „What‘s my ex:salary?“ „Show me all triples!“ Multiple Users Encryption Granularity
  • 6. Scenario 1: a key for everything Encryption is coarse-grained S P O ex:Alice foaf:pastProject ex:Project1 ex:Alice ex:salary 30000 ex:Alice foaf:mbox "[email protected]"   ex:Bob foaf:pastProject ex:Project1 ex:Bob ex:salary 20000 ex:Bob foaf:mbox "[email protected]"   Alice Admin ex:Bob earns less than me! What‘s my ex:salary? Show me all triples! Alice shouldn’t have access to that information!
  • 7. Scenario 2: a key for each triple Encryption is coarse-grained PAGE 7 S P O ex:Alice foaf:pastProject ex:Project1 ex:Alice ex:salary 30000 ex:Alice ex:salary 30000 ex:Alice foaf:mbox "[email protected]"   ex:Bob foaf:pastProject ex:Project1 ex:Bob ex:salary 20000 ex:Bob foaf:mbox "[email protected]"   Alice Admin I don‘t want all those keys.. What‘s my ex:salary? Show me all triples! Admin has to manage a lot of keys!
  • 8. Scenario 3: a key for each user Encryption is coarse-grained PAGE 8 S P O ex:Alice foaf:pastProject ex:Project1 ex:Alice ex:salary 30000 ex:Alice foaf:mbox "[email protected]"   ex:Bob foaf:pastProject ex:Project1 ex:Bob ex:salary 20000 ex:Bob foaf:mbox "[email protected]"   Alice Admin I don‘t want all those keys.. What‘s my ex:salary? Show me all triples! Admin has to manage a lot of keys!
  • 9. Scenario 4: one key opens multiple locks Encryption based on patterns S P O ex:Alice foaf:pastProject ex:Project1 ex:Alice ex:salary 30000 ex:Alice foaf:mbox "[email protected]"   ex:Bob foaf:pastProject ex:Project1 ex:Bob ex:salary 20000 ex:Bob foaf:mbox "[email protected]"   Alice Admin Only 1 key, that‘s much better What‘s my ex:salary? Show me all triples! =  (ex:Alice,  ex:salary,  ?) =  (?,  ?,  ?) one key can open multiple locks
  • 10. 1. Compute the triple vector using a  mapping  function  to  map  the    subject,   predicate,  and  object  value  to  elements  in  ℤ 𝑁 2. Functionally encrypt a randomly generated seed using the triple vector 3. Derive an encryption key from our previously generated seed and use AES to encrypt the triple with an encryption key 4. Return the triple cipher and the decryption key Encryption of RDF Triples A Functional Encryption Scheme for RDF triple vector key triple cipher 1) 2) 3) 4) jpbc http://gas.dia.unisa.it/projects/jpbc/#.WS73m_exW7M
  • 11. Encryption of RDF Triples A Functional Encryption Scheme for RDF triple vector triple cipher 𝜎 denotes  a  mapping  function  that  maps  a  triple’s subject,  predicate,  and  object  value  to  elements  in  ℤ 𝑁 key
  • 12. Decryption of RDF Triples A Functional Encryption Scheme for RDF 𝒚 𝒔 𝒕 𝒚′ 𝒔 𝒕 𝒚 𝒑 𝒕 𝒚′ 𝒑 𝒕 𝒚 𝒐 𝒕 𝒚′ 𝒐 𝒕 −𝑟+ ∗   𝜎(𝐴𝑙𝑖𝑐𝑒) 𝑟+ −𝑟5 ∗   𝜎(𝑝𝑎𝑠𝑡𝑃) 𝑟5 −𝑟; ∗   𝜎(𝑃𝑟𝑜1) 𝑟; tp  =  (ex:Alice,  foaf:pastProject,  ?) t  =  (ex:Alice,  foaf:pastProject,  ex:Project1) 𝐱 𝒔 𝒕𝐩 𝐱′ 𝒔 𝒕𝐩 𝐱 𝒑 𝒕𝐩 𝐱′ 𝒑 𝒕𝐩 𝐱 𝒐 𝒕𝐩 𝐱′ 𝒐 𝒕𝐩 1 𝜎(𝐴𝑙𝑖𝑐𝑒) 1 𝜎(𝑝𝑎𝑠𝑡𝑃) 0 0 −𝑟+ ∗   𝜎 𝐴𝑙𝑖𝑐𝑒 + 𝑟+ ∗   𝜎 𝐴𝑙𝑖𝑐𝑒 + −𝑟5 ∗   𝜎 𝑝𝑎𝑠𝑡𝑃 + 𝑟5 ∗   𝜎 𝑝𝑎𝑠𝑡𝑃 + 0 + 0 = 0 compute the inner-product of their corresponding triple vector
  • 13. Decryption of RDF Triples Optimising Query Execution S P O ex:Alice foaf:pastProject ex:Project1 ex:Alice ex:salary 30000 ex:Alice foaf:mbox "[email protected]"   ex:Bob foaf:pastProject ex:Project1 ex:Bob ex:salary 20000 ex:Bob foaf:mbox "[email protected]"   =  (ex:Alice,  ?,  ?) She has to always check each and every triple
  • 14. O S P ex:Alice foaf:pastProject ex:Project1 ex:Alice ex:salary 30000 ex:Alice foaf:mbox "[email protected]"   ex:Bob foaf:pastProject ex:Project1 ex:Bob ex:salary 20000 ex:Bob foaf:mbox "[email protected]"   P O S ex:Alice foaf:pastProject ex:Project1 ex:Alice ex:salary 30000 ex:Alice foaf:mbox "[email protected]"   ex:Bob foaf:pastProject ex:Project1 ex:Bob ex:salary 20000 ex:Bob foaf:mbox "[email protected]"   3-Index Optimising Query Execution S P O ex:Alice foaf:pastProject ex:Project1 ex:Alice ex:salary 30000 ex:Alice foaf:mbox "[email protected]"   ex:Bob foaf:pastProject ex:Project1 ex:Bob ex:salary 20000 ex:Bob foaf:mbox "[email protected]"   =  (ex:Alice,  ?,  ?) S P O ex:Alice foaf:pastProject ex:Project1 ex:Alice ex:salary 30000 ex:Alice foaf:mbox "[email protected]"   We use three key- value B-Trees and data is encrypted using a strong hash function
  • 15. O S P ex:Alice foaf:pastProject ex:Project1 ex:Alice ex:salary 30000 ex:Alice foaf:mbox "[email protected]"   ex:Bob foaf:pastProject ex:Project1 ex:Bob ex:salary 20000 ex:Bob foaf:mbox "[email protected]"   3-Index Optimising Query Execution S P O ex:Alice foaf:pastProject ex:Project1 ex:Alice ex:salary 30000 ex:Alice foaf:mbox "[email protected]"   ex:Bob foaf:pastProject ex:Project1 ex:Bob ex:salary 20000 ex:Bob foaf:mbox "[email protected]"   S P O ex:Alice foaf:pastProject ex:Project1 ex:Alice ex:salary 30000 ex:Alice foaf:mbox "[email protected]"   =  (?,  foaf:pastProject,  ex:Project1) P O S ex:salary 30000 ex:Alice ex:salary 20000 ex:Bob foaf:mbox "[email protected] g"   ex:Alice foaf:mbox "[email protected]"   ex:Bob foaf:pastProject ex:Project1 ex:Alice foaf:pastProject ex:Project1 ex:Bob We use three key- value B-Trees and data is encrypted using a strong hash function
  • 16. S O ex:Alice ex:Project1 ex:Bob ex:Project1 S O ex:Alice 30000 ex:Bob 20000 S O ex:Alice "[email protected]"   ex:Bob "[email protected]"   Vertical Partitioning Optimising Query Execution foaf:mbox ex:salary foaf:pastProject S ex:Alice foaf:pastPro ex:Alice ex:salar ex:Alice foaf:mbo ex:Bob foaf:pastPro ex:Bob ex:salar ex:Bob foaf:mbo =  (?,  foaf:pastProject,  ex:Project1) We use three key- value B-Trees and data is encrypted using a strong hash function
  • 17. S O ex:Alice ex:Project1 ex:Bob ex:Project1 S O ex:Alice 30000 ex:Bob 20000 S O ex:Alice "[email protected]"   ex:Bob "[email protected]"   Vertical Partitioning Optimising Query Execution foaf:mbox ex:salary foaf:pastProject =  (ex:Alice,  ?,  ?) S ex:Alice foaf:pastPro ex:Alice ex:salar ex:Alice foaf:mbo ex:Bob foaf:pastPro ex:Bob ex:salar ex:Bob foaf:mbo We use three key- value B-Trees and data is encrypted using a strong hash function
  • 18. Experiment Setup Evaluation § Real-world datasets from different domains: § Census represents the 2010 Australian census § Jamendo lists music records and artists § AEMET includes sensor data from weather stations in Spain § Lehigh University Benchmark (LUBM) data generator to obtain synthetic datasets
  • 19. Encrypting and Indexing Evaluation § Both strategies report similar performance results Ø VP is slightly faster for loading given that only the subject and object is used to index each triple § Encryption overhead Ø can be of one order of magnitude greater for the smaller datasets Ø this is greatly reduced for larger datasets B-Tree indexes become slower the more triples are added (due to rebalancing)
  • 20. Query Resolution Evaluation § 3-Index is better than VP for queries with unbound predicates as VP has to iterate though all predicate tables in this case § There is minimum overhead between the plain and encrypted indexes if a look-up returns only a small amount of results LUBM Jamendo if you have to decrypt more triples, it takes more time overall
  • 21. Scalability Evaluation § Our approach allows for parallel encryption/decryption of triples Ø scales with the system’s supported level of parallelization § Encrypting and indexing (3-Index) 10,000 LUBM triples takes about: Ø 76s with 16 available cores Ø 133s with 8 available cores Ø 262s with 4 available cores Ø 497s with 2 available cores § Each result triple can be returned as soon as its decryption has finished!
  • 22. Results Conclusion § Practical realisation of a functional encryption scheme for RDF § generate decryption keys based on (triple-)patterns § a decryption key can decrypt all triples that match its associated triple pattern Ø provides a high degree of flexibility and enables controlled access to encrypted RDF data § Evaluation § reasonable loading and query performance overheads with respect to traditional, non-encrypted data retrieval § relatively slow for batch decryption, but it is suitable for serving incremental results https://aic.ai.wu.ac.at/comcrypt/sld/
  • 23. Future Work Conclusion Evaluate different indexing strategies Ø optimise the loading time and query performance of large queries Cater for named graphs Ø encrypting quads instead of triples and generating keys based on quad patterns Triple store for compressed encrypted data Ø Current implementation uses an offtheshelf key value store Ø Build a custom triple store based on HDT Add a “policy” tier Ø manages the access/revocation of query keys and serve as fully fledged security framework for Linked Data
  • 24. Self-Enforcing Access Control for Encrypted RDF S P O ex:Alice foaf:pastProject ex:Project1 ex:Alice ex:salary 30000 ex:Alice foaf:mbox "[email protected]"   ex:Bob foaf:pastProject ex:Project1 ex:Bob ex:salary 20000 ex:Bob foaf:mbox "[email protected]"   Alice Admin Only 1 key, that‘s much better Show me ex:salary? Show me all triples! =  (ex:Alice,  ex:salary,  ?) =  (?,  ?,  ?)
  • 26. Overview Public Key Encryption data owner will encrypt data to the public key of a specific user only a user possessing the corresponding private key can decrypt the ciphertext § Encryption is targeted towards a specific user § Decryption is an all or nothing operation; either: a) a ciphertext is fully decrypted and the original data is recovered b) it fails and nothing is learned. Figure taken from http://www.infosectoday.com/Articles/Intro_to_Cryptography
  • 27. Functional Encryption to the Rescue! More fine-grained control over access to encrypted data § Functional Encryption § secret keys correspond to functions in some class 𝐹 § each ciphertext is associated with a (secret) attribute of some attribute space 𝛴 § a ciphertext associated with 𝐼 ∈ 𝛴 can be decrypted by a secret key 𝑠𝑘G corresponding to the function 𝑓 ∈ 𝐹 iff 𝑓(𝐼) = 1. § Inner-product Functional Encryption § Each ciphertext is associated with a (secret) attribute vector 𝒚 § Each secret key corresponds to a vector 𝒙 that is incorporated into its respective boolean function 𝑓 𝒙 𝑓 𝒙(𝒚) = 1 iff 𝒙 J 𝒚 = 0 J. Katz et al.: “Predicate Encryption Supporting Disjunctions,Polynomial Equations, and Inner Products”. J. Cryptology,26(2): 191–224, 2013.
  • 28. Generating Decryption Keys A Functional Encryption Scheme for RDF serves as a wildcard
  • 29. Query Resolution (cold) Evaluation § 3-Index reports a noticeable better performance than VP for queries with unbound predicates § VP has to iterate though all predicate tables in this case. § 3-Index and VP remain competitive wrt. their non-secure counterparts, if a look-up returns only a small amount of results § Decrypting Jamendo entirely took about 2256s using VP and 2808s using 3-Index § Leading to triple decryption rates of 465 triples/sec and 374 triples/sec respectively Each result triple can be returned as soon as its decryption has finished!
  • 30. Query Resolution (cold) Evaluation § 3-Index reports a noticeable better performance than VP for queries with unbound predicates § VP has to iterate though all predicate tables in this case. § 3-Index and VP remain competitive wrt. their non-secure counterparts, if a look-up returns only a small amount of results § Decrypting Jamendo entirely took about 2256s using VP and 2808s using 3-Index § Leading to triple decryption rates of 465 triples/s and 374 triples/s respectively Each result triple can be returned as soon as its decryption has finished! 5M LUBM triples Jamendo
  • 31. Decryption of RDF Triples A Functional Encryption Scheme for RDF 𝒚 𝒔 𝒕 𝒚′ 𝒔 𝒕 𝒚 𝒑 𝒕 𝒚′ 𝒑 𝒕 𝒚 𝒐 𝒕 𝒚′ 𝒐 𝒕 −𝑟+ ∗   𝜎(𝐴𝑙𝑖𝑐𝑒) 𝑟+ −𝑟5 ∗   𝜎(𝑝𝑎𝑠𝑡𝑃) 𝑟5 −𝑟; ∗   𝜎(𝑃𝑟𝑜1) 𝑟; tp  =  (ex:Alice,  ex:salary,  ?) t  =  (ex:Alice,  foaf:pastProject,  ex:Project1) 𝐱 𝒔 𝒕𝐩 𝐱′ 𝒔 𝒕𝐩 𝐱 𝒑 𝒕𝐩 𝐱′ 𝒑 𝒕𝐩 𝐱 𝒐 𝒕𝐩 𝐱′ 𝒐 𝒕𝐩 1 𝜎(𝐴𝑙𝑖𝑐𝑒) 1 𝜎(𝑠𝑎𝑙𝑎𝑟𝑦) 0 0 −𝑟+ ∗   𝜎 𝐴𝑙𝑖𝑐𝑒 + 𝑟+ ∗   𝜎 𝐴𝑙𝑖𝑐𝑒 + −𝑟5 ∗   𝜎 𝑝𝑎𝑠𝑡𝑃 + 𝑟5 ∗   𝜎 𝑠𝑎𝑙𝑎𝑟𝑦 + 0 + 0   ≠ 0