TPM, TEE, SGX Technologies

Slides:



Advertisements
Similar presentations
1 GP Confidential © GlobalPlatform’s Value Proposition for Mobile Point of Sale (mPOS)
Advertisements

 Alexandra Constantin  James Cook  Anindya De Computer Science, UC Berkeley.
Securing. Agenda  Hard Drive Encryption  User Account Permissions  Root Level Access  Firewall Protection  Malware Protection.
Hardware Security: Trusted Platform Module Amir Houmansadr CS660: Advanced Information Assurance Spring 2015 Content may be borrowed from other resources.
Trusted Computing Initiative Beyond trustworthy. Trusted Computing  Five Key Concepts >Endorsement Key >Secure Input and Output >Memory Curtain / Protected.
Copyright © Clifford Neuman - UNIVERSITY OF SOUTHERN CALIFORNIA - INFORMATION SCIENCES INSTITUTE USC CSci599 Trusted Computing Lecture Three.
All Your Droid Are Belong To Us: A Survey of Current Android Attacks 단국대학교 컴퓨터 보안 및 OS 연구실 김낙영
Protection and the Kernel: Mode, Space, and Context.
Trusted Computing BY: Sam Ranjbari Billy J. Garcia.
Chapter 6 Operating System Support. This chapter describes how middleware is supported by the operating system facilities at the nodes of a distributed.
Architecture for Protecting Critical Secrets in Microprocessors Ruby Lee Peter Kwan Patrick McGregor Jeffrey Dwoskin Zhenghong Wang Princeton Architecture.
Composition and Evolution of Operating Systems Introduction to Operating Systems: Module 2.
Trusted Computing Or How I Learned to Stop Worrying and Love the MPAA.
1 NEW GENERATION SECURE COMPUTING BASE. 2 INTRODUCTION  Next Generation Secure Computing Base,formerly known as Palladium.  The aim for palladium is.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
 Virtual machine systems: simulators for multiple copies of a machine on itself.  Virtual machine (VM): the simulated machine.  Virtual machine monitor.
Operating Systems Security
Wireless and Mobile Security
Trusted Computing and the Trusted Platform Module Bruce Maggs (with some slides from Bryan Parno)
Lecture 5 Rootkits Hoglund/Butler (Chapters 1-3).
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
Computer Security: Chapter 5 Operating Systems Security.
INTRODUCTION TO COMPUTERS. A computer system is an electronic device used to input data, process data, store data for later use and produce output in.
CMSC 818J: Privacy enhancing technologies Lecture 2.
BY S.S.SUDHEER VARMA (13NT1D5816)
Introduction to Operating Systems Concepts
Computer System Structures
Securing Network Servers
Chapter 6: Securing the Cloud
Hardware-rooted Trust for Secure Key Management & Transient Trust
Modularity Most useful abstractions an OS wants to offer can’t be directly realized by hardware Modularity is one technique the OS uses to provide better.
Module 3: Operating-System Structures
Trusted Computing and the Trusted Platform Module
Protecting Memory What is there to protect in memory?
Operating System Review
2. OPERATING SYSTEM 2.1 Operating System Function
Chapter 2: Computer-System Structures
Credits: 3 CIE: 50 Marks SEE:100 Marks Lab: Embedded and IOT Lab
Secure Software Confidentiality Integrity Data Security Authentication
Trusted Computing and the Trusted Platform Module
Outline What does the OS protect? Authentication for operating systems
Chapter 2: System Structures
Operating System Structure
Introduction to Operating System (OS)
Outline What does the OS protect? Authentication for operating systems
Operating System Review
Building hardware-based security with a Trusted Platform Module (TPM)
Chapter 2: System Structures
Chapter 3: Operating-System Structures
Computer-System Architecture
User-mode Secret Protection (SP) architecture
Chapter 2: Operating-System Structures
Operating Systems Lecture 3.
Introduction to Operating Systems
Prof. Leonardo Mostarda University of Camerino
Sai Krishna Deepak Maram, CS 6410
SCONE: Secure Linux Containers Environments with Intel SGX
ONLINE SECURE DATA SERVICE
Slalom: Fast, Verifiable and Private Execution of Neural Networks in Trusted Hardware Kriti shreshtha.
Shielding applications from an untrusted cloud with Haven
TPM, UEFI, Trusted Boot, Secure Boot
Aimee Coughlin, Greg Cusack, Jack Wampler, Eric Keller, Eric Wustrow
Erica Burch Jesse Forrest
The bios.
Chapter 2: Operating-System Structures
Preventing Privilege Escalation
Bruce Maggs (with some slides from Bryan Parno)
Bruce Maggs (with some slides from Bryan Parno)
An Introduction to Operating Systems
Stefano Tempesta Secure Machine Learning with SQL Server Always Encrypted with Secure Enclaves.
Presentation transcript:

TPM, TEE, SGX Technologies

Trusted Platform Module

TPM(Trusted Platform Module) technology is designed to provide hardware-based, security-related functions. A TPM chip is a secure crypto-processor that is designed to carry out cryptographic operations. The most common TPM functions are used for system integrity measurements and for key creation and use.

The TPM specification by the Trusted Computing Group’s (TPG’s) was aimed at addressing the following major issues in the industry: Identification of devices: Prior to the release of the TPM specification, devices were mostly identified by MAC addresses or IP addresses—not security identifiers. Secure generation of keys: Having a hardware random-number generator is a big advantage when creating keys. A number of security solutions have been broken due to poor key generation. Secure storage of keys: Keeping good keys secure, particularly from software attacks, is a big advantage that the TPM design brings to a device. NVRAM(Non Volatile Random Access Memory) storage: When an IT organization acquires a new device, it often wipes the hard disk and rewrites the disk with the organization’s standard load. Having NVRAM allows a TPM to maintain a certificate store. Device health attestation: Prior to systems having TPMs, IT organizations used software to attest to system health. But if a system was compromised, it might report it was healthy, even when it wasn’t.

Rootkit attack A rootkit is a special type of malware (malicious software). Rootkits are special because you don't know what they're doing. Rootkits are nearly undetectable and they're almost impossible to remove. Although detection tools are proliferating, malware developers are constantly finding new ways to cover their tracks. A rootkit's purpose is to hide itself and other software from view. This is done to prevent a user from identifying and potentially removing an attacker's software. A rootkit can hide almost any software, including file servers, keyloggers, botnets, and remailers. Many rootkits can even hide large collections of files and thus enable an attacker to store many files on your computer invisibly.

Disk encryption with BitLocker and TPM BitLocker - is a full disk encryption feature included with Windows Vista and later. Encryption Modes: TPM only(vulnerable to a cold boot attack) TPM + PIN TPM + USB

TPM chip was hacked by Christopher Tarnovsky in 2010, but in ’near impossible’ way. Tarnovsky needed six months to figure out his attack, which requires skill in modifying the tiny parts of the chip without destroying it. He required lab equipment represents an investment of about $200,000. In 2015, as part of the Snowden revelations, it was revealed that in 2010 a US CIA team claimed at an internal conference to have carried out a differential power analysis attack against TPMs that was able to extract secrets.

Anonymity with TPM.

Trusted Execution Environment

Trusted Execution Environment (TEE) device security technology offers a secure operating system that is isolated from the device OS (e.g. Android), making it, and trusted applications residing in it, highly protected from software threats and hacking. Trusted Execution Environment: a safe place for cryptographic operations, storing sensitive data (keys, private data, etc.), and executing sensitive operations all running alongside the main operating system. This functionality is invisible to the end users but to application developers it is an ideal area for security critical operations.

Trusted User Interface The Trusted User Interface feature allows a Trusted Application to interact directly with the user via a common display and touch screen. It protects the confidentiality and integrity of the information exchanged between a Trusted Application and the user from the Rich OS by use of hardware isolation built in to most modern smartphones.

Secure Input: The information entered by the user to a Trusted Application cannot be derived or modified by any software within the Rich OS or by another unauthorized Trusted Application. Secure Display: The information displayed by the Trusted Application cannot be accessed, modified, or obscured by any software within the Rich OS or by another unauthorized Trusted Application.

BOOMERANG: a class of vulnerabilities that arises due to this semantic separation between the TEE and the untrusted environment. These vulnerabilities permit untrusted user-level applications to read and write any memory location in the untrusted environment, including security-sensitive kernel memory, by leveraging the TEE’s privileged position to perform the operations on its behalf. BOOMERANG can be used to steal sensitive data from other applications, bypass security checks, or even gain full control of the untrusted OS. 2017 year.

Intel SGX(Software Guard Extensions)

This Intel technology is for application developers who are seeking to protect select code and data from disclosure or modification. Intel® SGX makes such protections possible through the use of enclaves, which are protected areas of execution in memory. Application code can be put into an enclave by special instructions and software made available to developers via the Intel SGX SDK. The SDK is a collection of APIs, libraries, documentation, sample source code, and tools that allows software developers to create and debug applications enabled for Intel SGX in C and C++.

Intel SGX offers the following protections from known hardware and software attacks: Enclave memory cannot be read or written from outside the enclave regardless of the current privilege level and CPU mode. Production enclaves cannot be debugged by software or hardware debuggers. (An enclave can be created with a debug attribute that allows a special debugger—the Intel SGX debugger—to view its content like a standard debugger. This is intended to aid the software development cycle.) The enclave environment cannot be entered through classic function calls, jumps, register manipulation, or stack manipulation. The only way to call an enclave function is through a new instruction that performs several protection checks. Enclave memory is encrypted using industry-standard encryption algorithms with replay protection. Tapping the memory or connecting the DRAM modules to another system will yield only encrypted data. The memory encryption key randomly changes every power cycle (for example, at boot time, and when resuming from sleep and hibernation states). The key is stored within the CPU and is not accessible. Data isolated within enclaves can only be accessed by code that shares the enclave.

Application design with Intel SGX requires that the application be divided into two components (see Figure 3): Trusted component. This is the enclave. The code that resides in the trusted code is the code that accesses an application’s secrets. An application can have more than one trusted component/enclave. Untrusted component. This is the rest of the application and any of its modules. It is important to note that, from the standpoint of an enclave, the OS and the VMM are considered untrusted components.

In the Intel SGX architecture, attestation refers to the process of demonstrating that a specific enclave was established on a platform. There are two attestation mechanisms: Local attestation occurs when two enclaves on the same platform authenticate to each other. Remote attestation occurs when an enclave gains the trust of a remote provider.

Local Attestation Local attestation is useful when applications have more than one enclave that need to work together to accomplish a task or when two separate applications must communicate data between enclaves. Each enclave must verify the other in order to confirm that they are both trustworthy. Once that is done, they establish a protected session and use an ECDH Key Exchange to share a session key. That session key can be used to encrypt the data that must be shared between the two enclaves. Because one enclave cannot access another enclave’s protected memory space, even when running under the same application, all pointers must be dereferenced to their values and copied, and the complete data set must be marshaled from one enclave to the other.

Remote Attestation With remote attestation, a combination of Intel SGX software and platform hardware is used to generate a quote that is sent to a third-party server to establish trust. The software includes the application’s enclave, and the Quoting Enclave (QE) and Provisioning Enclave (PvE), both of which are provided by Intel. The attestation hardware is the Intel SGX-enabled CPU. A digest of the software information is combined with a platform-unique asymmetric key from the hardware to generate the quote, which is sent to a remote server over an authenticated channel. If the remote server determines that the enclave was properly instantiated and is running on a genuine Intel SGX-capable processor, it can now trust the enclave and choose to provision secrets to it over the authenticated channel.

https://rd.springer.com/chapter/10.1007/978-1-4302-6584-9_3