STYX: Stream Processing with Trustworthy Cloud-based Execution
Julian Stephen, Savvas Savvides, Vinaitheerthan Sundaram, Masoud Saeida Ardekani, Patrick Eugster October 6, 2016
Purdue University
STYX: Stream Processing with Trustworthy Cloud-based Execution - - PowerPoint PPT Presentation
STYX: Stream Processing with Trustworthy Cloud-based Execution Julian Stephen, Savvas Savvides, Vinaitheerthan Sundaram, Masoud Saeida Ardekani, Patrick Eugster October 6, 2016 Purdue University Table of contents 1. Overview 2. Ensuring
Julian Stephen, Savvas Savvides, Vinaitheerthan Sundaram, Masoud Saeida Ardekani, Patrick Eugster October 6, 2016
Purdue University
Table of contents
2
Introduction
Compute clouds
IoT
monetize user experience Stream processing
Spark, Apache Flink, Apache Samza, Amazon Kinesis
4
Vulnerabilities - 1
5
Vulnerabilities - 1
5
Vulnerabilities - 1
A
5
Vulnerabilities - 1
A f(A)
5
Vulnerabilities - 1
A f(A)
5
Vulnerabilities - 1
A f(A) A
5
Vulnerabilities - 2
Real problems
6
Confidentiality in the cloud
Fully homomorphic encryption (FHE)
A f f(A)
8
Confidentiality in the cloud
Fully homomorphic encryption (FHE)
A f f(A)
8
Confidentiality in the cloud
Fully homomorphic encryption (FHE)
A f f(A) k E(A, k)
8
Confidentiality in the cloud
Fully homomorphic encryption (FHE)
A f f(A) k E(A, k) f ′ f ′(E(A, k))
8
Confidentiality in the cloud
Fully homomorphic encryption (FHE)
A f f(A) k E(A, k) f ′ f ′(E(A, k)) D(f ′(E(A, k)))
8
Confidentiality in the cloud
Fully homomorphic encryption (FHE)
8
Confidentiality in the cloud
Fully homomorphic encryption (FHE)
Partially homomorphic encryption (PHE)
Conjecture Many data analytics jobs can be performed securely using a combination
8
Vulnerabilities - 3
9
Vulnerabilities - 3
A → E(A, k)
9
Vulnerabilities - 3
A → E(A, k) f ′(E(A, k))
9
Vulnerabilities - 3
A → E(A, k) f ′(E(A, k))
9
Vulnerabilities - 3
A → E(A, k) f ′(E(A, k)) E(A, k) ❆ k → ❅ A
9
Challenges in encrypted stream processing
perform cryptographic equivalent of required operation
return; else ...
11
Challenges in encrypted stream processing
with same key
11
Challenges in encrypted stream processing
11
Challenges in encrypted stream processing
perform cryptographic equivalent of required operation
with same key
11
Challenges in encrypted stream processing
perform cryptographic equivalent of required operation
with same key
nodes to perform remaining computation
11
Challenges in encrypted stream processing
perform cryptographic equivalent of required operation
with same key
nodes to perform remaining computation
initialization constant
11
Challenges in encrypted stream processing
perform cryptographic equivalent of required operation
with same key
nodes to perform remaining computation
initialization constant
11
STYX architecture
Program (STYX API, Annotations) Homomorphism Analysis Topology scheduling Topology execution
Trusted Tier Untrusted Cloud
Analytical Model
Execution flow
execute the graph
13
STYX abstraction
Group sum in a sliding window
1 /** Track sum of values per group per time slot */ 2 public
class SlotBasedSum <T> {
3
...
4
public void updateSum(T group , int slot , SecField val) {
5
SecField [] sums = objGroupSum.get(group);
6
if (sums == null) {
7
sums = new SecField[this.numSlots ];
8
init(sums , val);
9
10
}
11
sums[slot] = SecureOper
12
.add(sums[slot], val);
13
}
14 }
15
STYX abstraction
Group sum in a sliding window
1 /** Track sum of values per group per time slot */ 2 public
class SlotBasedSum <T> {
3
...
4
public void updateSum(T group , int slot , SecField val) {
5
SecField [] sums = objGroupSum.get(group);
6
if (sums == null) {
7
sums = new SecField[this.numSlots ];
8
init(sums , val);
9
10
}
11
sums[slot] = SecureOper
12
.add(sums[slot], val);
13
}
14 }
15
Without STYX abstractions
Group sum in a sliding window (Storm)
1 public
class SlotBasedSum <T> {
2
BigInteger publicKey = readPubKey ();
3
public void updateSum(T group , int slot , BigInteger value) {
4
BigInteger [] sums = objGroupSum.get(group);
5
if (sums == null) {
6
sums = new BigInteger[this.numSlots ];
7
init(sums , "AHE");
8
9
}
10
sums[slot] = sums[slot ]. multiply(value)
11
.mod(publicKey.multiply(publicKey));
12
}
13 } 14
16
Without STYX abstractions
Group sum in a sliding window (Storm)
1 public
class SlotBasedSum <T> {
2
BigInteger publicKey = readPubKey ();
3
public void updateSum(T group , int slot , BigInteger value) {
4
BigInteger [] sums = objGroupSum.get(group);
5
if (sums == null) {
6
sums = new BigInteger[this.numSlots ];
7
init(sums , "AHE");
8
9
}
10
sums[slot] = sums[slot ]. multiply(value)
11
.mod(publicKey.multiply(publicKey));
12
}
13 } 14
16
Without STYX abstractions
Group sum in a sliding window (Storm)
1 public
class SlotBasedSum <T> {
2
BigInteger publicKey = readPubKey ();
3
public void updateSum(T group , int slot , BigInteger value) {
4
BigInteger [] sums = objGroupSum.get(group);
5
if (sums == null) {
6
sums = new BigInteger[this.numSlots ];
7
init(sums , "AHE");
8
9
}
10
sums[slot] = sums[slot ]. multiply(value)
11
.mod(publicKey.multiply(publicKey));
12
}
13 } 14
16
Key change
Challenges
impossible to change the encryption key without disrupting output Problem
17
Key change
Challenges
impossible to change the encryption key without disrupting output Problem
17
Key change
Challenges
impossible to change the encryption key without disrupting output Problem
17
Key change
Challenges
impossible to change the encryption key without disrupting output Problem
17
Key change
Challenges
makes it impossible to change the encryption key without disrupting
Solution
18
Key change
Challenges
makes it impossible to change the encryption key without disrupting
Solution
18
Key change
Challenges
makes it impossible to change the encryption key without disrupting
Solution
18
Key change
Challenges
makes it impossible to change the encryption key without disrupting
Solution
18
Key change
Challenges
makes it impossible to change the encryption key without disrupting
Solution
18
Evaluation - 1
IoT Bench
reading per minute from 443 unique homes, totaling 637526 records
2000 4000 6000 8000 10000 12000 14000 16000 18000 Q1 Q2 Q3 Q4 Q5 Q6 Throughput (#tuples/sec) STYX Storm
20
Evaluation - 2
Performance when keys change
minutes of taxi servicing
200 400 600 800 1000 1200 1400 2000 4000 6000 8000 10000 Response Time (ms) Time (s)
21
Related work
Prior work on encrypted computaion
Other approaches
23
Conclusion
Conclusion
utilization of cloud resources
parameters
24
25