Download presentation
Presentation is loading. Please wait.
Published byArchibald Blake Modified over 9 years ago
1
slide 1 Justin Brickell Donald E. Porter Vitaly Shmatikov Emmett Witchel The University of Texas at Austin Secure Remote Diagnostics
2
slide 2 Error messages are cryptic What is this and how do I fix it?
3
slide 3 Troubleshooting is no longer local I can diagnose this fault online
4
slide 4 Software diagnostic scenario Local state [v] Diagnosis [T(v)] Program faults Evaluation v T(v) T Diagnostic program Detailed problem description and solution guide
5
slide 5 Our goal: Protect user privacy Local state [v] Program memory File snippets Other running programs Confidential information “If you are concerned that a report might contain personal or confidential information, you should not send the report.” Problem: Users with privacy concerns cannot participate
6
slide 6 Talk outline uTwo unsatisfactory approaches uOverview of our approach uBuilding blocks uProtocol walkthrough uApplications uPerformance uConclusion
7
slide 7 User-side evaluation Program faults Evaluation v T(v) T T Diagnostic Proprietary ($) Reveals vulnerabilities Helps reverse engineer Problem: Vendor also has privacy concerns
8
slide 8 Secure multiparty computation Program faults Evaluation v T(v) T Problem: circuit is too large to be practical Eval(T,v) T Circuit to apply T to v Description of T
9
slide 9 Our approach: Securing T Program faults Secure T (offline) TT’ Evaluation v T(v) T’ Reveals nothing about T Valid for a single evaluation T’ Secure diagnostic Goal: Build a practical system for real problems
10
slide 10 Local state uA snapshot of the user’s local state uA vector of attribute values, such as Function call counts Function return values Contents of memory locations …
11
slide 11 Diagnostic branching program uDecision nodes compare an attribute value to a threshold Control flows to either the left or right branch uClassification nodes specify a label Diagnostic branching program for mpg321
12
slide 12 Aside: Creation of diagnostics uDiagnostic programs are built in several ways Hand-designed using expert knowledge Automatically generated by data mining and analyzing user error reports –For example, Microsoft’s Dr. Watson uClarify [PLDI ‘07] Project at UT Austin to automatically build “black- box” classifiers for anomalous program behavior
13
slide 13 Hiding the diagnostic program Property to hideTechnique Per node: thresholds and attributes Global: subset of attributes that are used Private integer comparison (Yao’s method) Global: program topology Unevaluated nodes are hidden by encryption Homomorphic encryption Blinding Hide everything about T
14
slide 14 Private integer comparison uWe use Yao’s method for integer comparison IF (v i > threshold) THEN k l ELSE k r Evaluator learns one of two keys conditional on comparison result Evaluator doesn’t learn comparison result or the threshold vivi >t klkl krkr Yao circuit Encoded input
15
slide 15 Protocol walkthrough 1.User encrypts attribute values using an instance of additively homomorphic encryption v1v1 v2v2 v3v3 v4v4 v5v5 v1v1 v2v2 v3v3 v4v4 v5v5 Allows addition under encryption 1 2 3 4 5 6 7 plaintext encrypted Hiding subset of attributes that are used
16
slide 16 Protocol walkthrough 2.Vendor blinds attribute values under encryption for each decision node v1v1 v2v2 v3v3 v4v4 v5v5 v 3 +b 1 v 3 +b 2 v 4 +b 3 v 3 +b 1 v 3 +b 2 v 4 +b 3 random blinding hides attribute index 1 2 3 4 5 6 7 plaintext encrypted Hiding subset of attributes that are used
17
slide 17 Protocol walkthrough 3.Blinded attribute values are converted to Yao circuit inputs using oblivious transfer v 3 +b 1 v 3 +b 2 v 4 +b 3 OT User learns Yao representation of inputs Vendor learns nothing plaintext encrypted Yao-encoded
18
slide 18 Protocol walkthrough 4.Vendor replaces decision nodes with secure integer comparison circuits (offline) 1 2 3 4 5 6 7 v 3 +b 1 >t 1 k2k2 k3k3 Output of comparison is key k 2 or k 3 -b 1 plaintext encrypted Yao-encoded
19
slide 19 Protocol walkthrough 5.Vendor encrypts each node k1k1 k2k2 k3k3 k4k4 k5k5 k6k6 k7k7 v 3 +b 1 >t 1 k2k2 k3k3 -b 1 Hiding topology of T plaintext encrypted Yao-encoded
20
slide 20 Protocol walkthrough 6.User evaluates encrypted branching program k1k1 k2k2 k3k3 k4k4 k5k5 k6k6 k7k7 v 3 +b 1 >t 1 -b 1 1 2 3 4 5 6 7 plaintext encrypted Yao-encoded K3K3
21
slide 21 Protocol walkthrough 6.User evaluates encrypted branching program k1k1 k2k2 k3k3 k4k4 k5k5 k6k6 k7k7 v 4 +b 3 >t 3 -b 3 1 2 3 4 5 6 7 plaintext encrypted Yao-encoded k6k6
22
slide 22 Protocol walkthrough 6.User evaluates encrypted branching program k1k1 k2k2 k3k3 k4k4 k5k5 k6k6 k7k7 Detailed problem description and solution guide 1 2 3 4 5 6 7 plaintext encrypted Yao-encoded
23
slide 23 Protocol generality This is a general protocol Any branching program, any attribute vector Let’s look at some specific applications
24
slide 24 Application: Software diagnostics uClarify [PLDI ‘07] automatically builds branching programs to classify anomalous program behaviors uWe have a working system to evaluate these branching programs securely uThe system is practical For example, classifier for 4 cryptic gcc errors –37 nodes, 2920 attributes –CPU: 5 seconds vendor, 7 seconds user –Bandwidth: 656kB vendor, 707kB user
25
slide 25 Application: Medical diagnostics When the diagnostic T and the data v are both private, our tool can securely compute T(v) My symptoms and history are personal Diagnose.com My diagnostic is proprietary and valuable Patient
26
slide 26 Server performance: Size of T
27
slide 27 Server performance: Size of v
28
slide 28 User performance: Size of T
29
slide 29 User performance: Size of v
30
slide 30 Conclusions uNovel solution for secure branching program evaluation uProvably secure uMuch more efficient than generic techniques uWell-suited to software diagnostics Online computation is independent of the size of local state uPerformance acceptable for real-world applications
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.