verena end to end integrity protection for web
play

Verena: End-to-End Integrity Protection for Web Applications IEEE - PowerPoint PPT Presentation

Verena: End-to-End Integrity Protection for Web Applications IEEE Security & Privacy 2016 Nikos Karapanos, Alexandros Filios, Raluca Ada Popa, Srdjan Capkun Information Integrity is Critical for Decision Making EKG, EKG, heart rate,


  1. Verena: 
 End-to-End Integrity Protection for Web Applications IEEE Security & Privacy 2016 Nikos Karapanos, Alexandros Filios, Raluca Ada Popa, Srdjan Capkun

  2. Information Integrity is Critical for Decision Making EKG, EKG, heart rate, avg heart rate, … … Remote monitoring 
 View false data Submit data View data medical web app Patient with 
 Physician implant Take wrong action, or erroneously omit action Take action if necessary 2 / 15

  3. Problem Definition • How can we provide integrity guarantees in web applications? • Example: Mean heart rate of a patient over a period of time Correctness • avg heart rate? Completeness • 71 Freshness • 3 / 15

  4. 
 Threat Model • Full server compromise (front-/back- end) • Corrupted server responses False ( correctness ) • Incomplete ( completeness ) • Stale ( freshness ) 
 • • Clients are not fully trusted either 4 / 15

  5. Related Work • Filesystem integrity SUNDR (OSDI’04),… • • Database integrity IntegriDB (CCS’15),… • • Authenticated data structures Balanced Merkle hash trees • Skip lists • … • 5 / 15

  6. Challenges • Multiple users in a dynamic environment No single data owner • • Stateless clients, not always on • How can the developer express the integrity policy? Don’t change coding patterns • 6 / 15

  7. Our Contribution Verena 
 Framework for providing end-to-end integrity guarantees in web applications 7 / 15

  8. Verena Architecture: Setup hash server Code signing • Users [Mylar, NSDI’14] Key pair • Sign write operations 
 • <script language=javascript> document.write("Hello World!"); </script> <script language=javascript> window.alert("Welcome to my si </script> <script language=javascript> window.prompt("please ente </script> static code • Client-side web application dynamic data Code & data separation • Dynamic page rendering on the client • • Hash server Ensure freshness • Simple logic, narrow interface • 8 / 15

  9. Verena Architecture • Is the result correct and complete ? hash server id • Is the result fresh ? • Was the result affected by authorized users? main server heart rate id proof proof avg heart rate between mon-wed? 71 bpm proof proof 9 / 15

  10. Trust Contexts hash server write heart rate main server Trust Context avg heart rate between mon-wed? 71 bpm 10 / 15

  11. Verena API • Each query runs within a trust context Ability to run over multiple trust contexts and still • ensure completeness • API to manage trust contexts • Annotate using Integrity Query Prototypes Queries 11 / 15

  12. 
 Implementation • Platform of choice: Meteor framework (Node.js) 
 • Main server/client: Meteor package Chrome Native Client for PK crypto in browser • ~5100 LOC • • Hash server in Golang/OpenSSL RocksDB key/value store • ~650 LOC • 12 / 15

  13. Some Evaluation Results - Remote Monitoring Medical Application • Vanilla Meteor • Page loading time for various views An order of magnitude faster ( 3-10ms ) Patient list ( ~66ms ) • • Patient for review ( ~82ms ) • VS Patient profile ( ~14ms ) • Patient EKG ( ~23ms ) • Mean heart rate ( ~13ms ) • User experience is not affected 13 / 15

  14. Takeaway Verena provides end-to-end integrity protection to web applications Under web server compromise With acceptable overhead 14 / 15

  15. Thank you for your attention! Any Questions? knikos@inf.ethz.ch Some of the icons used in this presentation were taken and adapted from opensecurityarchitecture.org

Recommend


More recommend