SlideShare ist ein Scribd-Unternehmen logo
1 von 36
Downloaden Sie, um offline zu lesen
Decentralized Enforcement
of Artifact Lifecycles
Sylvain Hallé, Raphaël Khoury,
Yliès Falcone and Antoine El-Hokayem
Université du Québec à Chicoutimi, Canada
Université Grenoble Alpes, France
September 9th, 2016
BEST
PAPER
$
$
DOCTOR
PATIENT
INSURANCE
COMPANY
PHARMACIST
NURSE
$
DOCTOR
PATIENT
INSURANCE
COMPANY
PHARMACIST
NURSE
DOCUMENT
$
The doctor fills in
the results of a
test
1
$
Based on the results,
the doctor adds a
prescrip�on for a drug
2
$
The pharmacist writes
the cost of the drug3 =
$$
$
The insurance company
approves the expense4
$
The pa�ent
acknowledges5
$
The nurse writes the
moment she gave the drug6
$$
Patient's
address
Insurance
policy #
Test results
Prescription
Cost
Insurance
approval
Timestamps
Observa�ons
The document follows a lifecycle
A test result cannot be changed once wri�en
X
An expensive drug must be approved by
the insurance company
$$
"Lifecycle
constraints"
Observa�ons
The document has condi�ons on its integrity
The pharmacologist
cannot write test results
The nurse cannot
prescribe drugs
X
X "Write
permissions"
Observa�ons
The document is subject to privacy concerns
The insurance company should
not access test results
The doctor should not know the pa�ent's
policy number
X
X "Read
permissions"
How can I be sure that these
rules are being followed?
$
Solu�on A
Centralized access to the document
All accesses and modifica�ons
are filtered and verified
$
Solu�on A
Centralized access to the document
Single point of failure
Must be trusted
Solu�on B
A�ach metadata to the document...
+
Use it to ensure confiden�ality and integrity
of its contents
and its history
Ingredients
Set of peersP { , , , , }
G Set of groups
M : P × G → {⊤,⊥} Membership func�on
A Set of ac�ons. Each ac�on is a func�on
a : D → D
D Set of documents
𝔹 Set of binary strings (e.g. hash values)
A document lifecycle specifies what ac�ons peers
are allowed to make on a document and
in which order
δ Lifecycle func�on for group g ∈ Gg
δ : S* → {⊤,⊥}g
For a peer-ac�on sequence s ∈ S*,
δ (s) = ⊤g ⇔
s complies with the lifecycle constraints
To ensure confiden�ality, ac�ons in the sequence
will be encrypted.
ħ Hash func�on
Public-key encryp�on/decryp�on func�onsD,E
Each group and each peer has a pair of
public-private keys.
KU, KV, KU, KV,
, ...,,,
To ensure confiden�ality, ac�ons in the sequence
will be encrypted.
An ac�on a ∈ A will actually be recorded as:
⟨E[K , a],p,g,b⟩U,g
All peers can see that some ac�on was
executed
Only members of g can know exactly
which one (by decryp�ng with K )
The set S is actually 𝔹 × P × G × 𝔹
V,g
⇒
?
The contents of a peer-ac�on are protected
by a digest
⟨a,p,g,b⟩ ∈ 𝔹 × P × G × 𝔹
Encrypted
ac�on Who is doing it
On behalf of which group
Digest
How is it computed?
⟨a',p',g',b'⟩.Suppose that the last peer ac�on is
Peer p now wants to perform ac�on a
on behalf of group g.
The peer ac�on to append to the sequence is:
where
⟨E[K , a],p,g,b⟩U,g
b = E[K , ħ(b' ⋅ E[K , a] ⋅ g)]V,p U,g
When receiving a peer-ac�on sequence, each
peer can check its validity, star�ng from the end.
... , ⟨a',p',g',b'⟩, ⟨a,p,g,b⟩
Step 1. Check that M(p,g) = ⊤.
Step 2. Check that D[K , b] = ħ(b' ⋅ a ⋅ g)U,p
This makes sure that:
p has done the last ac�on
on behalf of group g (to which he belongs)
the last digest was indeed b'
Once the sequence is deemed valid, a peer can
check the lifecycle func�on of a group g that
he belongs to.
Step 1. For every peer ac�on ⟨a',p',g',b'⟩ where
g = g', compute a = D[K , a'].
This yields a peer-ac�on sequence s where the
ac�ons of group g appear in clear.
Step 2. Check that δ (s) = ⊤.
V,g
g
?
X
Tampering with the sequence
can be detected by any peer
Replacing an ac�on/peer by another
Dele�ng/inser�ng an ac�on
Even without knowing the ac�on
Compliance with the lifecycle
can be checked by any peer (of
the same group)
Can choose to reject a document that
violates the spec
The amount of work on each new ac�on is
constant
Two encryp�ons, one hash
Applied on a string of constant length
Checking the sequence is linear
The lifecycle func�on is arbitrary
Considered as a "black box" throughout
Can use LTL, FSM, BPMN, ...
What about read/write permissions?
Suppose the exchange starts with an empty
document. Replaying the sequence of ac�ons
reconstructs the document up to its current state.
But you can only replay the ac�ons of the groups
you belong to!
$$$$$$
Groups control the parts of the document that
peers can read and write
The "document" is not necessary; the peer-
ac�on sequence is sufficient
ARTICHOKE
Implementa�on of these concepts in PHP for
PDF forms
Uses hidden form fields to store peer-ac�on
sequence (encoded as base-64)
MD5 for hashing, RSA for encryp�on
ARTICHOKE
$ artichoke Form.pdf fill
-k private_key_Alice.pem
-p Alice
-o Form-filled.pdf
F1 foo
ARTICHOKE
$ artichoke Form.pdf dump
Form fields
-----------
F1 foo
F2 bar
Peer-action sequence
--------------------
Alice W|F1|foo Rm/MRSzK...
Bob W|F2|for kEvrkC+e...
ARTICHOKE
$ artichoke Form.pdf check *.pem
The lifecycle func�on can be any user-defined
PHP code
50000
100000
150000
200000
250000
300000
350000
400000
450000
500000
100 150 200 250 300 350 400 450 500
Time(ms)
Operations
200
250
300
350
400
450
500
550
600
650
100 150 200 250 300 350 400 450 500
Time(ms)
Operations
14000
16000
18000
20000
22000
24000
26000
28000
30000
100 150 200 250 300 350 400 450 500
Filesize(B)
Operations
...wri�ng the sequence ...checking the sequence
Sequence size
Running �me for...
The complete trace must be kept forever
Could we trim a prefix a�er some �me?
Can detect viola�ons, but not prevent them
A peer can choose to accept a tampered document
Documents can be copied
Divergent histories can be created
Invent sufficient condi�ons to prevent this?
Ac�ons can be guessed
Try them all un�l you find the one that works
Mi�gated by the size of A
Thank you!
Ques�ons?
http://slideshare.net/sylvainhalle
http://leduotang.ca/sylvain
http://liflab.ca

Weitere ähnliche Inhalte

Andere mochten auch

Andere mochten auch (9)

Runtime monitoring de propriétés temporelles par (streaming) XML
Runtime monitoring de propriétés temporelles par (streaming) XMLRuntime monitoring de propriétés temporelles par (streaming) XML
Runtime monitoring de propriétés temporelles par (streaming) XML
 
A Case for "Piggyback" Runtime Monitoring
A Case for "Piggyback" Runtime MonitoringA Case for "Piggyback" Runtime Monitoring
A Case for "Piggyback" Runtime Monitoring
 
Graph Methods for Generating Test Cases with Universal and Existential Constr...
Graph Methods for Generating Test Cases with Universal and Existential Constr...Graph Methods for Generating Test Cases with Universal and Existential Constr...
Graph Methods for Generating Test Cases with Universal and Existential Constr...
 
Causality in Message-Based Interface Contracts: A Temporal Logic "Whodunit"
Causality in Message-Based Interface Contracts: A Temporal Logic "Whodunit"Causality in Message-Based Interface Contracts: A Temporal Logic "Whodunit"
Causality in Message-Based Interface Contracts: A Temporal Logic "Whodunit"
 
When RV Meets CEP (RV 2016 Tutorial)
When RV Meets CEP (RV 2016 Tutorial)When RV Meets CEP (RV 2016 Tutorial)
When RV Meets CEP (RV 2016 Tutorial)
 
MapReduce for Parallel Trace Validation of LTL Properties
MapReduce for Parallel Trace Validation of LTL PropertiesMapReduce for Parallel Trace Validation of LTL Properties
MapReduce for Parallel Trace Validation of LTL Properties
 
Testing Web Applications Through User Interface Constraints (CASCON 2015 Talk)
Testing Web Applications Through User Interface Constraints (CASCON 2015 Talk)Testing Web Applications Through User Interface Constraints (CASCON 2015 Talk)
Testing Web Applications Through User Interface Constraints (CASCON 2015 Talk)
 
À la chasse aux bugs avec la Laboratoire d'informatique formelle
À la chasse aux bugs avec la Laboratoire d'informatique formelleÀ la chasse aux bugs avec la Laboratoire d'informatique formelle
À la chasse aux bugs avec la Laboratoire d'informatique formelle
 
Qui gardera les gardiens? (Présentation FUQAC 2012)
Qui gardera les gardiens? (Présentation FUQAC 2012)Qui gardera les gardiens? (Présentation FUQAC 2012)
Qui gardera les gardiens? (Présentation FUQAC 2012)
 

Ähnlich wie Decentralized Enforcement of Artifact Lifecycles

FORECAST: Fast Generation of Accurate Context-Aware Signatures of Control-Hij...
FORECAST: Fast Generation of Accurate Context-Aware Signatures of Control-Hij...FORECAST: Fast Generation of Accurate Context-Aware Signatures of Control-Hij...
FORECAST: Fast Generation of Accurate Context-Aware Signatures of Control-Hij...
Alexey Smirnov
 
Main Task Submit the Following 1. Calculate the sample size.docx
Main Task Submit the Following 1. Calculate the sample size.docxMain Task Submit the Following 1. Calculate the sample size.docx
Main Task Submit the Following 1. Calculate the sample size.docx
infantsuk
 
BC-Cancer ChimeraScan Presentation
BC-Cancer ChimeraScan PresentationBC-Cancer ChimeraScan Presentation
BC-Cancer ChimeraScan Presentation
Elijah Willie
 

Ähnlich wie Decentralized Enforcement of Artifact Lifecycles (6)

Dgaston dec-06-2012
Dgaston dec-06-2012Dgaston dec-06-2012
Dgaston dec-06-2012
 
FORECAST: Fast Generation of Accurate Context-Aware Signatures of Control-Hij...
FORECAST: Fast Generation of Accurate Context-Aware Signatures of Control-Hij...FORECAST: Fast Generation of Accurate Context-Aware Signatures of Control-Hij...
FORECAST: Fast Generation of Accurate Context-Aware Signatures of Control-Hij...
 
Main Task Submit the Following 1. Calculate the sample size.docx
Main Task Submit the Following 1. Calculate the sample size.docxMain Task Submit the Following 1. Calculate the sample size.docx
Main Task Submit the Following 1. Calculate the sample size.docx
 
Using peer-to-peer technologies to record the exchange of RO packages.
Using peer-to-peer technologies to record the exchange of RO packages. 	Using peer-to-peer technologies to record the exchange of RO packages.
Using peer-to-peer technologies to record the exchange of RO packages.
 
BC-Cancer ChimeraScan Presentation
BC-Cancer ChimeraScan PresentationBC-Cancer ChimeraScan Presentation
BC-Cancer ChimeraScan Presentation
 
2015 ohsu-metagenome
2015 ohsu-metagenome2015 ohsu-metagenome
2015 ohsu-metagenome
 

Mehr von Sylvain Hallé

A Stream-Based Approach to Intrusion Detection
A Stream-Based Approach to Intrusion DetectionA Stream-Based Approach to Intrusion Detection
A Stream-Based Approach to Intrusion Detection
Sylvain Hallé
 

Mehr von Sylvain Hallé (20)

Monitoring Business Process Compliance Across Multiple Executions with Stream...
Monitoring Business Process Compliance Across Multiple Executions with Stream...Monitoring Business Process Compliance Across Multiple Executions with Stream...
Monitoring Business Process Compliance Across Multiple Executions with Stream...
 
A Stream-Based Approach to Intrusion Detection
A Stream-Based Approach to Intrusion DetectionA Stream-Based Approach to Intrusion Detection
A Stream-Based Approach to Intrusion Detection
 
Event Stream Processing with BeepBeep 3
Event Stream Processing with BeepBeep 3Event Stream Processing with BeepBeep 3
Event Stream Processing with BeepBeep 3
 
Smart Contracts-Enabled Simulation for Hyperconnected Logistics
Smart Contracts-Enabled Simulation for Hyperconnected LogisticsSmart Contracts-Enabled Simulation for Hyperconnected Logistics
Smart Contracts-Enabled Simulation for Hyperconnected Logistics
 
Test Suite Generation for Boolean Conditions with Equivalence Class Partitioning
Test Suite Generation for Boolean Conditions with Equivalence Class PartitioningTest Suite Generation for Boolean Conditions with Equivalence Class Partitioning
Test Suite Generation for Boolean Conditions with Equivalence Class Partitioning
 
Synthia: a Generic and Flexible Data Structure Generator (Long Version)
Synthia: a Generic and Flexible Data Structure Generator (Long Version)Synthia: a Generic and Flexible Data Structure Generator (Long Version)
Synthia: a Generic and Flexible Data Structure Generator (Long Version)
 
Test Sequence Generation with Cayley Graphs (Talk @ A-MOST 2021)
Test Sequence Generation with Cayley Graphs (Talk @ A-MOST 2021)Test Sequence Generation with Cayley Graphs (Talk @ A-MOST 2021)
Test Sequence Generation with Cayley Graphs (Talk @ A-MOST 2021)
 
Efficient Offline Monitoring of LTL with Bit Vectors (Talk at SAC 2021)
Efficient Offline Monitoring of LTL with Bit Vectors (Talk at SAC 2021)Efficient Offline Monitoring of LTL with Bit Vectors (Talk at SAC 2021)
Efficient Offline Monitoring of LTL with Bit Vectors (Talk at SAC 2021)
 
A Generic Explainability Framework for Function Circuits
A Generic Explainability Framework for Function CircuitsA Generic Explainability Framework for Function Circuits
A Generic Explainability Framework for Function Circuits
 
Detecting Responsive Web Design Bugs with Declarative Specifications
Detecting Responsive Web Design Bugs with Declarative SpecificationsDetecting Responsive Web Design Bugs with Declarative Specifications
Detecting Responsive Web Design Bugs with Declarative Specifications
 
Streamlining the Inclusion of Computer Experiments in Research Papers
Streamlining the Inclusion of Computer Experiments in Research PapersStreamlining the Inclusion of Computer Experiments in Research Papers
Streamlining the Inclusion of Computer Experiments in Research Papers
 
Writing Domain-Specific Languages for BeepBeep
Writing Domain-Specific Languages for BeepBeepWriting Domain-Specific Languages for BeepBeep
Writing Domain-Specific Languages for BeepBeep
 
Real-Time Data Mining for Event Streams
Real-Time Data Mining for Event StreamsReal-Time Data Mining for Event Streams
Real-Time Data Mining for Event Streams
 
Technologies intelligentes d'aide au développement d'applications web (WAQ 2018)
Technologies intelligentes d'aide au développement d'applications web (WAQ 2018)Technologies intelligentes d'aide au développement d'applications web (WAQ 2018)
Technologies intelligentes d'aide au développement d'applications web (WAQ 2018)
 
Mining event streams with BeepBeep 3
Mining event streams with BeepBeep 3Mining event streams with BeepBeep 3
Mining event streams with BeepBeep 3
 
LabPal: Repeatable Computer Experiments Made Easy (ACM Workshop Talk)
LabPal: Repeatable Computer Experiments Made Easy (ACM Workshop Talk)LabPal: Repeatable Computer Experiments Made Easy (ACM Workshop Talk)
LabPal: Repeatable Computer Experiments Made Easy (ACM Workshop Talk)
 
A "Do-It-Yourself" Specification Language with BeepBeep 3 (Talk @ Dagstuhl 2017)
A "Do-It-Yourself" Specification Language with BeepBeep 3 (Talk @ Dagstuhl 2017)A "Do-It-Yourself" Specification Language with BeepBeep 3 (Talk @ Dagstuhl 2017)
A "Do-It-Yourself" Specification Language with BeepBeep 3 (Talk @ Dagstuhl 2017)
 
Event Stream Processing with Multiple Threads
Event Stream Processing with Multiple ThreadsEvent Stream Processing with Multiple Threads
Event Stream Processing with Multiple Threads
 
A Few Things We Heard About RV Tools (Position Paper)
A Few Things We Heard About RV Tools (Position Paper)A Few Things We Heard About RV Tools (Position Paper)
A Few Things We Heard About RV Tools (Position Paper)
 
La quantification du premier ordre en logique temporelle
La quantification du premier ordre en logique temporelleLa quantification du premier ordre en logique temporelle
La quantification du premier ordre en logique temporelle
 

Kürzlich hochgeladen

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Kürzlich hochgeladen (20)

Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 

Decentralized Enforcement of Artifact Lifecycles

  • 1. Decentralized Enforcement of Artifact Lifecycles Sylvain Hallé, Raphaël Khoury, Yliès Falcone and Antoine El-Hokayem Université du Québec à Chicoutimi, Canada Université Grenoble Alpes, France September 9th, 2016 BEST PAPER
  • 2. $
  • 5. $ The doctor fills in the results of a test 1
  • 6. $ Based on the results, the doctor adds a prescrip�on for a drug 2
  • 7. $ The pharmacist writes the cost of the drug3 = $$
  • 10. $ The nurse writes the moment she gave the drug6
  • 12. Observa�ons The document follows a lifecycle A test result cannot be changed once wri�en X An expensive drug must be approved by the insurance company $$ "Lifecycle constraints"
  • 13. Observa�ons The document has condi�ons on its integrity The pharmacologist cannot write test results The nurse cannot prescribe drugs X X "Write permissions"
  • 14. Observa�ons The document is subject to privacy concerns The insurance company should not access test results The doctor should not know the pa�ent's policy number X X "Read permissions"
  • 15. How can I be sure that these rules are being followed?
  • 16. $ Solu�on A Centralized access to the document All accesses and modifica�ons are filtered and verified
  • 17. $ Solu�on A Centralized access to the document Single point of failure Must be trusted
  • 18. Solu�on B A�ach metadata to the document... + Use it to ensure confiden�ality and integrity of its contents and its history
  • 19. Ingredients Set of peersP { , , , , } G Set of groups M : P × G → {⊤,⊥} Membership func�on A Set of ac�ons. Each ac�on is a func�on a : D → D D Set of documents 𝔹 Set of binary strings (e.g. hash values)
  • 20. A document lifecycle specifies what ac�ons peers are allowed to make on a document and in which order δ Lifecycle func�on for group g ∈ Gg δ : S* → {⊤,⊥}g For a peer-ac�on sequence s ∈ S*, δ (s) = ⊤g ⇔ s complies with the lifecycle constraints
  • 21. To ensure confiden�ality, ac�ons in the sequence will be encrypted. ħ Hash func�on Public-key encryp�on/decryp�on func�onsD,E Each group and each peer has a pair of public-private keys. KU, KV, KU, KV, , ...,,,
  • 22. To ensure confiden�ality, ac�ons in the sequence will be encrypted. An ac�on a ∈ A will actually be recorded as: ⟨E[K , a],p,g,b⟩U,g All peers can see that some ac�on was executed Only members of g can know exactly which one (by decryp�ng with K ) The set S is actually 𝔹 × P × G × 𝔹 V,g ⇒ ?
  • 23. The contents of a peer-ac�on are protected by a digest ⟨a,p,g,b⟩ ∈ 𝔹 × P × G × 𝔹 Encrypted ac�on Who is doing it On behalf of which group Digest How is it computed?
  • 24. ⟨a',p',g',b'⟩.Suppose that the last peer ac�on is Peer p now wants to perform ac�on a on behalf of group g. The peer ac�on to append to the sequence is: where ⟨E[K , a],p,g,b⟩U,g b = E[K , ħ(b' ⋅ E[K , a] ⋅ g)]V,p U,g
  • 25. When receiving a peer-ac�on sequence, each peer can check its validity, star�ng from the end. ... , ⟨a',p',g',b'⟩, ⟨a,p,g,b⟩ Step 1. Check that M(p,g) = ⊤. Step 2. Check that D[K , b] = ħ(b' ⋅ a ⋅ g)U,p This makes sure that: p has done the last ac�on on behalf of group g (to which he belongs) the last digest was indeed b'
  • 26. Once the sequence is deemed valid, a peer can check the lifecycle func�on of a group g that he belongs to. Step 1. For every peer ac�on ⟨a',p',g',b'⟩ where g = g', compute a = D[K , a']. This yields a peer-ac�on sequence s where the ac�ons of group g appear in clear. Step 2. Check that δ (s) = ⊤. V,g g
  • 27. ? X Tampering with the sequence can be detected by any peer Replacing an ac�on/peer by another Dele�ng/inser�ng an ac�on Even without knowing the ac�on Compliance with the lifecycle can be checked by any peer (of the same group) Can choose to reject a document that violates the spec
  • 28. The amount of work on each new ac�on is constant Two encryp�ons, one hash Applied on a string of constant length Checking the sequence is linear The lifecycle func�on is arbitrary Considered as a "black box" throughout Can use LTL, FSM, BPMN, ... What about read/write permissions?
  • 29. Suppose the exchange starts with an empty document. Replaying the sequence of ac�ons reconstructs the document up to its current state. But you can only replay the ac�ons of the groups you belong to! $$$$$$ Groups control the parts of the document that peers can read and write The "document" is not necessary; the peer- ac�on sequence is sufficient
  • 30. ARTICHOKE Implementa�on of these concepts in PHP for PDF forms Uses hidden form fields to store peer-ac�on sequence (encoded as base-64) MD5 for hashing, RSA for encryp�on
  • 31. ARTICHOKE $ artichoke Form.pdf fill -k private_key_Alice.pem -p Alice -o Form-filled.pdf F1 foo
  • 32. ARTICHOKE $ artichoke Form.pdf dump Form fields ----------- F1 foo F2 bar Peer-action sequence -------------------- Alice W|F1|foo Rm/MRSzK... Bob W|F2|for kEvrkC+e...
  • 33. ARTICHOKE $ artichoke Form.pdf check *.pem The lifecycle func�on can be any user-defined PHP code
  • 34. 50000 100000 150000 200000 250000 300000 350000 400000 450000 500000 100 150 200 250 300 350 400 450 500 Time(ms) Operations 200 250 300 350 400 450 500 550 600 650 100 150 200 250 300 350 400 450 500 Time(ms) Operations 14000 16000 18000 20000 22000 24000 26000 28000 30000 100 150 200 250 300 350 400 450 500 Filesize(B) Operations ...wri�ng the sequence ...checking the sequence Sequence size Running �me for...
  • 35. The complete trace must be kept forever Could we trim a prefix a�er some �me? Can detect viola�ons, but not prevent them A peer can choose to accept a tampered document Documents can be copied Divergent histories can be created Invent sufficient condi�ons to prevent this? Ac�ons can be guessed Try them all un�l you find the one that works Mi�gated by the size of A