SlideShare une entreprise Scribd logo
1  sur  36
Télécharger pour lire hors ligne
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

Contenu connexe

En vedette

En vedette (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)
 

Similaire à 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
 

Similaire à 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
 

Plus de 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é
 

Plus de 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
 

Dernier

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Dernier (20)

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
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
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
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...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 

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