Secure File System - Final Meeting Industrial Project (234313) Prof. Michael Elad Students Noam Hershtig Yuri Bronshtein 04.02.13 Supervisors Boris Dolgunov.

Slides:



Advertisements
Similar presentations
NetServ Dynamic in-network service deployment Henning Schulzrinne (Columbia University) Srinivasan Seetharaman (Georgia Tech) Volker Hilt (Bell Labs)
Advertisements

Eclipse, M2M and the Internet of Things
Cross Platform UI testing using Sikuli
INTRODUCTION TO SIMULATION WITH OMNET++ José Daniel García Sánchez ARCOS Group – University Carlos III of Madrid.
October Dyalog File Server Version 2.0 Morten Kromberg CTO, Dyalog LTD Dyalog’13.
Environmental Council of States Network Authentication and Authorization Services The Shared Security Component February 28, 2005.
PROJECT IN DISTRIBUTED SYSTEMS IPERF FOR ANDROID Developers: Shir Degani, Yuval Degani Supervisors: Prof. Roy Friedman, Alex Kogan.
Mobile Mobile OS and Application Team: Kwok Tak Chi Law Tsz Hin So Ting Wai.
Notes to the presenter. I would like to thank Jim Waldo, Jon Bostrom, and Dennis Govoni. They helped me put this presentation together for the field.
CS-3013 & CS-502, Summer 2006 Virtual Machine Systems1 CS-502 Operating Systems Slides excerpted from Silbershatz, Ch. 2.
Contiki A Lightweight and Flexible Operating System for Tiny Networked Sensors Presented by: Jeremy Schiff.
Android: Hello World Frank Xu Gannon University. Steps Configuration ▫Android SDK ▫Android Development Tools (ADT)  Eclipse plug-in ▫Android SDK and.
D-OSDi + Android Progress Presentation Xinyi Dong Long Qiu.
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 2: Operating-System Structures.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Chapter 2: Operating-System Structures Modified from the text book.
Android An open handset alliance project Janice Garcia September 18, 2008 MIS 304.
ANDROID PROGRAMMING MODULE 1 – GETTING STARTED
Case study 2 Android – Mobile OS.
INTERNATIONAL SUMMER ACADEMIC COURSE UNIVESITY OF NIS ISAC – Android programming.
Intelligent Tutoring System Mobile Communication Team Drew Boatwright Nakul Dureja Richard Liou.
Włodzimierz Funika, Filip Szura Automation of decision making for monitoring systems.
Abdullah Alshalan Garrett Drown Team 3 CSE591: Virtualization and Cloud Computing.
Framework for Automated Builds Natalia Ratnikova CHEP’03.
Department of Electrical Engineering Electronics Computers Communications Technion Israel Institute of Technology High Speed Digital Systems Lab. High.
Smart Phone Laboratory ECEN 489 Srinivas Shakkottai.
M i SMob i S Mob i Store - Mobile i nternet File Storage Platform Chetna Kaur.
50mm Telescope ACS Course Garching, 15 th to 19 th January 2007 January 2007Garching.
Eric Keller, Evan Green Princeton University PRESTO /22/08 Virtualizing the Data Plane Through Source Code Merging.
Pegasus Status Update April April 2001 Karl Schopmeyer.
#gsa2012 Android Basics By: Amr Mohsen
Protecting Data on Smartphones and Tablets from Memory Attacks
Presentation seminar on   Google Chrome OS is Linux based OS  Google Chrome is an open source, lightweight OS.  It is based.
Breno de MedeirosFlorida State University Fall 2005 Windows servers The NT security model.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Android Security Model that Provide a Base Operating System Presented: Hayder Abdulhameed.
07/09/04 Johan Muskens ( TU/e Computer Science, System Architecture and Networking.
Operating Systems Structure what is the organizational principle?
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
A. Frank - P. Weisberg Operating Systems Structure of Operating Systems.
Operating-System Structures
Centroute, Tenet and EmStar: Development and Integration Karen Chandler Centre for Embedded Network Systems University of California, Los Angeles.
2.1 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition System Programs (p73) System programs provide a convenient environment.
TCS Internal Security. 2 TCS Internal Objective Objective :  Android Platform Security Architecture.
LINUX Presented By Parvathy Subramanian. April 23, 2008LINUX, By Parvathy Subramanian2 Agenda ► Introduction ► Standard design for security systems ►
By: Collin Molnar. Overview  Intro to Android  Security basics  Android architecture  Application isolation  Application permissions  Physical access.
IP Security (IPSec) Matt Hermanson. What is IPSec? It is an extension to the Internet Protocol (IP) suite that creates an encrypted and secure conversation.
Java & The Android Stack: A Security Analysis Pragati Ogal Rai Mobile Technology Evangelist PayPal, eBay Java.
APACHE Apache is generally recognized as the world's most popular Web server (HTTP server). Originally designed for Unix servers, the Apache Web server.
Android. Android An Open Handset Alliance Project A software platform and operating system for mobile devices Based on the Linux kernel Developed by Google.
Virtualization Neependra Khare
Computer System Structures
Android Mobile Application Development
Operating System Structures
ultrasound digital pen
What is Apertis? Apertis is a versatile open source infrastructure tailored to the automotive needs and fit for a wide variety of electronic devices.
Android.
CMPE419 Mobile Application Development
Chapter 3: Windows7 Part 1.
מרכז אימות לפלטפורמת מתן שירותים
Chapter 2: System Structures
Android Developer Fundamentals V2
Outline Chapter 2 (cont) OS Design OS structure
A GUI Based Aid for Generation of Code-Frameworks of TMOs
Open Automation Software
SCONE: Secure Linux Containers Environments with Intel SGX
System calls….. C-program->POSIX call
CMPE419 Mobile Application Development
Presentation transcript:

Secure File System - Final Meeting Industrial Project (234313) Prof. Michael Elad Students Noam Hershtig Yuri Bronshtein Supervisors Boris Dolgunov Constantine Elster

Agenda  Goals  Problem Description  High Level solution  Demo  Methodology  Technical  Team Work  Protocol  Conclusions

Motivation

Motivation (cont.)  Defcon 20 (July 2012): “Into The Droid” by Thomas Cannon  Shows how easy is to crack the Android Encryption “Into The Droid” DEFCON20 Slides from:

Goal: Prevent Brute Forcing Encryption Key  Solution: 2 Stage Authentication  Store Key in TrustZone™ (KeyDB)  KeyDB Throttles key retrieval attempts  Key management is transparent to user & applications.

Solution Components OS kernelTrustZone dm-crypt- skm KeyDB Key Manager SFS Kernel Modules (skm, skm-udp) User mode Screen lock application SFS configuration application dm-crypt Unmodified Optional Changes Original

Demo

Our Process  Study Android & Linux Encryption mechanisms:  Device-mapper, dm-crypt  LUKS (key management alternative)  Create “proof of concept” encryption key manager  Create modular design  Define protocol  Implement Separate components:  Divide labor by platform: Android Apps / Linux Kernel  Use TDD principles:  Unit Tests before code (where applicable)  Use “simulation” (python test scripts) to test interfaces in early stages.  Integration  Verify separate modules work as expected together

Key Management  Runs in TrustZone  Login Attempt Throttling:  Different Locking Schemes available  Long Term Locking  “Burst Mode”  User Management:  Multiple PIN/Key pairs  Useful for Tablets  Administrative Rights  Recovery Options

Kernel Modules  Implemented as part of the device-mapper framework  /drivers/md  dm-crypt-skm:  device-mapper target.  Wraps dm-crypt, the original crypto device service.  skm (secure key management)  Implements the protocol generically.  Uses “pluggable” modules for communication with KeyDB in TrustZone.  Managed from usermode via ioctls. Creates “/dev/skm” device.  skm-udp  Uses netpoll API to communicate with KeyDB via UDP packets. TrustZone (KeyDB)skm-udpskm /dev/skmUser: Settingsdm-cryptdm-crypt-skmdm (dmsetup)User: Lock Screen

Development Platform and Languages  Android TrustZone Simulator  Java + Android SDK (Eclipse)  Testing: jUnit for Android, python for network simulation  Linux kernel modules (dm-crypt-skm, skm, skm-udp)  ANSI C  Run on GNU/Debian as vmware guest  Tested on kernel, compatible with 3.3 kernel API.  Testing: python for network simulation  Configuration Application  ANSI C  Lock Screen Demo  Python and wxPython  Source Control  git (assembla private repository)

Kernel  TrustZone Protocol  Key Retrieval  getKey  getStatus  loadKey  unloadKey  Misc.  getVersion (For backward compatibility)  User Management  addID  removeID  changePIN  setParams  getParams  unlockID HW Support

Challenges  Minimal Architectural Changes  An early goal was to minimize changes to Android OS & Apps.  After studying the linux crypto services, dm-crypt was chosen as the best subsystem to modify  Kernel  Usermode Communications  Unorthodox model (simulate ‘CPU mode’ as usermode process)  Usually communication is initiated from usermode  Options which were considered:  polling (easy to implement, breaks design for actual ARM chips)  sysfs/proc (not secure enough)  sockets (incompatible with dm)  netpoll (modern API in kernel, used primarily for low level debugging)

Conclusions  Design  Good design simplifies code stage  Allows modularization  Modularization  Very important for team based coding  Allows easy testing & relatively smooth integration  Helps minimizing changes in porting to another platform  Minimizing Kernel Code  Debugging kernel code is non-trivial and time consuming  Linux APIs are changing all the time:  No current documentation available  Version dependent code  Automatic testing is nearly impossible  Early Testing (Test Driven Development)  Quick development  Easy regression testing

Thank You!