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

More Related Content

PDF
Solving Equations on Words with Morphisms and Antimorphisms
PDF
Runtime Monitoring of Stream Logic Formulae (Talk @ FPS 2015)
PDF
Chasing Bugs with the BeepBeep Event Stream Processor
PDF
A Runtime Monitoring Framework for Event Streams with Non-Primitive Arguments
PDF
Activity Recognition Through Complex Event Processing: First Findings
PDF
BeepBeep 3: A declarative event stream query engine (EDOC 2015)
PDF
Distributed Firewall Anomaly Detection Through LTL Model Checking
PDF
A formalization of complex event stream processing
Solving Equations on Words with Morphisms and Antimorphisms
Runtime Monitoring of Stream Logic Formulae (Talk @ FPS 2015)
Chasing Bugs with the BeepBeep Event Stream Processor
A Runtime Monitoring Framework for Event Streams with Non-Primitive Arguments
Activity Recognition Through Complex Event Processing: First Findings
BeepBeep 3: A declarative event stream query engine (EDOC 2015)
Distributed Firewall Anomaly Detection Through LTL Model Checking
A formalization of complex event stream processing

Viewers also liked (9)

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

Similar to Decentralized Enforcement of Artifact Lifecycles (6)

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

More from Sylvain Hallé (20)

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

Recently uploaded (20)

PPTX
Build automations faster and more reliably with UiPath ScreenPlay
PDF
Early detection and classification of bone marrow changes in lumbar vertebrae...
PDF
A hybrid framework for wild animal classification using fine-tuned DenseNet12...
PPTX
Module 1 Introduction to Web Programming .pptx
PDF
Altius execution marketplace concept.pdf
PDF
Lung cancer patients survival prediction using outlier detection and optimize...
PDF
Build Real-Time ML Apps with Python, Feast & NoSQL
PDF
IT-ITes Industry bjjbnkmkhkhknbmhkhmjhjkhj
PDF
Transform-Your-Streaming-Platform-with-AI-Driven-Quality-Engineering.pdf
PDF
The-2025-Engineering-Revolution-AI-Quality-and-DevOps-Convergence.pdf
PDF
Planning-an-Audit-A-How-To-Guide-Checklist-WP.pdf
PDF
Introduction to MCP and A2A Protocols: Enabling Agent Communication
PDF
Electrocardiogram sequences data analytics and classification using unsupervi...
PDF
AI.gov: A Trojan Horse in the Age of Artificial Intelligence
PDF
Connector Corner: Transform Unstructured Documents with Agentic Automation
PDF
giants, standing on the shoulders of - by Daniel Stenberg
PDF
Rapid Prototyping: A lecture on prototyping techniques for interface design
PDF
A symptom-driven medical diagnosis support model based on machine learning te...
PDF
Auditboard EB SOX Playbook 2023 edition.
PDF
CXOs-Are-you-still-doing-manual-DevOps-in-the-age-of-AI.pdf
Build automations faster and more reliably with UiPath ScreenPlay
Early detection and classification of bone marrow changes in lumbar vertebrae...
A hybrid framework for wild animal classification using fine-tuned DenseNet12...
Module 1 Introduction to Web Programming .pptx
Altius execution marketplace concept.pdf
Lung cancer patients survival prediction using outlier detection and optimize...
Build Real-Time ML Apps with Python, Feast & NoSQL
IT-ITes Industry bjjbnkmkhkhknbmhkhmjhjkhj
Transform-Your-Streaming-Platform-with-AI-Driven-Quality-Engineering.pdf
The-2025-Engineering-Revolution-AI-Quality-and-DevOps-Convergence.pdf
Planning-an-Audit-A-How-To-Guide-Checklist-WP.pdf
Introduction to MCP and A2A Protocols: Enabling Agent Communication
Electrocardiogram sequences data analytics and classification using unsupervi...
AI.gov: A Trojan Horse in the Age of Artificial Intelligence
Connector Corner: Transform Unstructured Documents with Agentic Automation
giants, standing on the shoulders of - by Daniel Stenberg
Rapid Prototyping: A lecture on prototyping techniques for interface design
A symptom-driven medical diagnosis support model based on machine learning te...
Auditboard EB SOX Playbook 2023 edition.
CXOs-Are-you-still-doing-manual-DevOps-in-the-age-of-AI.pdf

Decentralized Enforcement of Artifact Lifecycles