SlideShare a Scribd company logo
1 of 16
Download to read offline
Secure Storage Updates in OP-TEE:
What’s new since SFO15 and what’s left to do?
Jerome Forissier, Huawei Technologies/HiSilicon
ENGINEERS
AND DEVICES
WORKING
TOGETHER
Agenda
● What is secure storage?
● OP-TEE timeline
● What’s new?
○ Framework for multiple storage backends
○ RPMB (Replay-Protected Memory Block)
○ SQLite
○ Encryption
○ xtest updates
● Next steps
ENGINEERS AND DEVICES
WORKING TOGETHER
What is Secure Storage?
● Persistent data store for crypto keys or other application-specific data
● Accessible to Trusted Applications only
○ Each TA has its own storage (TA isolation)
● Isolated from the non-secure world
○ Secure Storage data be read, modified or deleted by user applications or the OS kernel
● OP-TEE implements the GlobalPlatform™ TEE Internal Core API v1.1
○ Chapter 5: Trusted Storage API for Data and Keys ; Persistent Object [Enumeration] Functions
and Data Stream Access Functions
TEE_OpenPersistentObject() TEE_AllocatePersistentObjectEnumerator()
TEE_CreatePersistentObject() TEE_FreePersistentObjectEnumerator()
TEE_CloseAndDeletePersistentObject1() TEE_ResetPersistentObjectEnumerator()
TEE_RenamePersistentObject() TEE_StartPersistentObjectEnumerator()
TEE_ReadObjectData() TEE_GetNextPersistentObject()
TEE_WriteObjectData()
TEE_TruncateObjectData()
TEE_SeekObjectData()
ENGINEERS AND DEVICES
WORKING TOGETHER
OP-TEE Timeline
Secure
Storage
Improvements
0.1.0 0.2.0 0.3.0 1.0.0 1.1.0 2.0.0 2.1.0 (next)
struct
tee_file_operations
Encryption
Atomicity
LCU14
xtest 20000
(corruption
tests)
RPMB
Multiple storage
support Better TA isolation
SQLite storage
HKG15 SFO15 BKK16 LAS16
ENGINEERS AND DEVICES
WORKING TOGETHER
● OP-TEE < 2.0.0
○ Secure storage is implemented on top of the Rich OS filesystem. We call it the “REE FS”
○ Trusted Application may only use TEE_STORAGE_PRIVATE as the storageID parameter
● OP-TEE = 2.0.0
○ Replay Protected Memory Block (RPMB) storage is introduced. It is a compile-time option to
replace the REE FS (CFG_RPMB_FS=y).
● OP-TEE = 2.1.0
○ Code is refactored to allow for compile time and runtime selection of the storage backend
○ Compile time options (both may be enabled simultaneously):
CFG_REE_FS ?= y ; CFG_RPMB_FS ?= n
○ Runtime flags used by Trusted Applications:
#define TEE_STORAGE_PRIVATE 0x00000001
#define TEE_STORAGE_PRIVATE_REE 0x80000000
#define TEE_STORAGE_PRIVATE_RPMB 0x80000100
● OP-TEE > 2.1.0 (next)
○ SQLite storage is introduced: CFG_SQL_FS ?= n
#define TEE_STORAGE_PRIVATE_SQL 0x80000200
Multiple storage support
ENGINEERS AND DEVICES
WORKING TOGETHER
Replay Protected Memory Block support (1)
● Added in 2.0.0
● OP-TEE had some legacy RPMB code which was re-worked recently
● Main source files:
core/tee/tee_svc_storage.c
core/tee/tee_rpmb_fs.c
core/tee/tee_fs_key_manager.c
● FS layout is as follows:
[ Partition data (512 bytes) | FAT entries -> … <- File blocks ]
● File Allocation Table entries are dynamically allocated from the bottom while file
blocks are allocated from the top
● The allocator is tee_mm_alloc() / tee_mm_alloc2()
ENGINEERS AND DEVICES
WORKING TOGETHER
Replay Protected Memory Block support (2)
● eMMC device ID is selected at compile time
○ CFG_RPMB_FS_DEV_ID ?= 0 in mk/config.mk
○ Will use /dev/mmcblk0rpmb
● Device is accessed through Normal World (tee-supplicant)
○ There is no MMC driver inside OP-TEE
● tee-supplicant contains emulation code so it’s easy to test without a real
device
○ RPMB_EMU := 1 in tee-supplicant/Makefile
○ Comment out to access the real device
● RPMB key is programmed on first use
○ SHA256(HUK) or a predefined test key if CFG_RPMB_TESTKEY = y
○ /! possible attack: replace the eMMC with a new one (or simulate the same) and the key will leak
out. We’ll fix that.
ENGINEERS AND DEVICES
WORKING TOGETHER
Replay Protected Memory Block support (3)
● Atomicity: read/write/rename etc. can’t leave objects in a partially modified
state
○ FAT block is updated only after data blocks have been written successfully
○ RPMB spec ensures atomic write of rel_wr_blkcnt blocks or less (at least 1), this is enough for our
need
○ Data writes larger than rel_wr_blkcnt cannot be updated in-place ;
allocate/read/update/write/commit to FAT instead
● HiKey can access the onboard eMMC since kernel 4.8-rc1
○ Commit af63762 (“mmc: dw_mmc: k3: add MMC_CAP_CMD23”)
○ An external eMMC module with a microSD adapter can also be used
ENGINEERS AND DEVICES
WORKING TOGETHER
Replay Protected Memory Block support (4)
REE File
Operations
Interface
TEE Supplicant
TEE
Driver
REE
FileSystem REE-
based FS
TEE File Operation Interface
TEE Trusted Storage Service
TATATA
GP Trusted Storage API
Normal World Secure WorldUserSpaceKernelSpace
RPMB
FS
RPMB
(block)
Interface
Key
Manager
eMMC
Driver
ioctl()
read(), write()...
ENGINEERS AND DEVICES
WORKING TOGETHER
SQLite (1)
● A SQLite backend is proposed as a simpler and more robust alternative to the
REE FS
● Based on SQLite3 (public domain) and libsqlfs (LGPLv2 or later)
● Moves the complexity of handling atomic updates from secure world to normal
world (tee-supplicant). Indeed, libsqlfs provides:
sqlfs_begin_transaction(fs);
sqlfs_complete_transaction(fs, rollback);
● TA data are stored in a single file in the Normal World filesystem:
/data/tee/sstore.db
ENGINEERS AND DEVICES
WORKING TOGETHER
SQLite (2)
REE File
Operations
Interface
TEE Supplicant
TEE
Driver
REE
FileSystem REE_FS
TEE File Operation Interface
TEE Trusted Storage Service
TATATA
GP Trusted Storage API
Normal World Secure WorldUserSpaceKernelSpace
SQL_FS
Key
Manager
libsqlfs
SQLite
ENGINEERS AND DEVICES
WORKING TOGETHER
Encryption (1)
● Data Encryption is turned on with CFG_ENC_FS=y (default y).
○ Useful even for RPMB, since the device is accessed through the Normal World
● Authenticated block encryption, 1 key per file (File Encryption Key).
● FEK is AES-encrypted using a 256-bit Trusted app Storage Key (TSK) then
stored in the file’s metadata
● The TSK is derived from the SSK and the TA UUID using HMAC_SHA256
○ Prevents TA2 from accessing data owned by TA1 when REE FS files are moved from storage
area of TA1 to TA2
● The SSK is derived from a Hardware Unique Key (HUK) and a constant string
using HMAC_SHA256
ENGINEERS AND DEVICES
WORKING TOGETHER
Encryption (2)
● REE FS, SQL FS:
○ Metadata are always authenticated and encrypted
○ Data may or may not be authenticated and encrypted depending on CFG_ENC_FS (default: y)
○ Algorithm is AES-GCM
● RPMB FS:
○ Metadata are never encrypted
○ Data may or may not be encrypted depending on CFG_ENC_FS.
○ Data and metadata are always authenticated (RPMB protocol)
○ Data encryption algorithm is AES-CBC with ESSIV (no need for GCM as above because
authentication is handled by RPMB)
ENGINEERS AND DEVICES
WORKING TOGETHER
xtest updates
● Test all supported backends
○ Client application automatically includes conf.h generated during OP-TEE build, so all CFG_*
settings may be used
○ xtest 6xxx loops on all supported storage IDs
● Test TA storage isolation
○ xtest 6015
○ Checks that two TAs won’t share data
○ Checks that REE FS can’t be fooled into opening data storage belonging to another TA
● Concurrency test
○ xtest 6016
○ 4 threads (pthread) run a loop, invoking the storage TA to perform create/write/verify/delete on
distinct objects. TA has TA_FLAG_MULTI_SESSION.
ENGINEERS AND DEVICES
WORKING TOGETHER
What’s next?
● RPMB: don’t program key unless some debug/testing CFG_ is set
● Improve derivation of SSK from HUK
○ Should be done by the hardware crypto module. HUK should never be read by software.
○ Unfortunately, we have no such driver upstream :(
● Anti-rollback protection and controlled rollback for storage owned by
non-secure OS: how?
● Prevent TA impersonation
○ Per-TA signing keys and use root key to sign key pairs only (not the TA itself)
○ Not only restricted to storage
● Further code simplifications?
● Is SQL FS useful? Should it replace REE FS? When?
Thank You
#LAS16
For further information: www.linaro.org
LAS16 keynotes and videos on: connect.linaro.org

More Related Content

What's hot

HKG15-311: OP-TEE for Beginners and Porting Review
HKG15-311: OP-TEE for Beginners and Porting ReviewHKG15-311: OP-TEE for Beginners and Porting Review
HKG15-311: OP-TEE for Beginners and Porting ReviewLinaro
 
OPTEE on QEMU - Build Tutorial
OPTEE on QEMU - Build TutorialOPTEE on QEMU - Build Tutorial
OPTEE on QEMU - Build TutorialDalton Valadares
 
SFO15-200: Linux kernel generic TEE driver
SFO15-200: Linux kernel generic TEE driverSFO15-200: Linux kernel generic TEE driver
SFO15-200: Linux kernel generic TEE driverLinaro
 
LAS16 111 - Raspberry pi3, op-tee and jtag debugging
LAS16 111 - Raspberry pi3, op-tee and jtag debuggingLAS16 111 - Raspberry pi3, op-tee and jtag debugging
LAS16 111 - Raspberry pi3, op-tee and jtag debugging96Boards
 
LAS16-406: Android Widevine on OP-TEE
LAS16-406: Android Widevine on OP-TEELAS16-406: Android Widevine on OP-TEE
LAS16-406: Android Widevine on OP-TEELinaro
 
Lcu14 306 - OP-TEE Future Enhancements
Lcu14 306 - OP-TEE Future EnhancementsLcu14 306 - OP-TEE Future Enhancements
Lcu14 306 - OP-TEE Future EnhancementsLinaro
 
LCA14: LCA14-502: The way to a generic TrustZone® solution
LCA14: LCA14-502: The way to a generic TrustZone® solutionLCA14: LCA14-502: The way to a generic TrustZone® solution
LCA14: LCA14-502: The way to a generic TrustZone® solutionLinaro
 
GCC for ARMv8 Aarch64
GCC for ARMv8 Aarch64GCC for ARMv8 Aarch64
GCC for ARMv8 Aarch64Yi-Hsiu Hsu
 
Kernel Recipes 2018 - Overview of SD/eMMC, their high speed modes and Linux s...
Kernel Recipes 2018 - Overview of SD/eMMC, their high speed modes and Linux s...Kernel Recipes 2018 - Overview of SD/eMMC, their high speed modes and Linux s...
Kernel Recipes 2018 - Overview of SD/eMMC, their high speed modes and Linux s...Anne Nicolas
 
Q4.11: Introduction to eMMC
Q4.11: Introduction to eMMCQ4.11: Introduction to eMMC
Q4.11: Introduction to eMMCLinaro
 
Yocto Project introduction
Yocto Project introductionYocto Project introduction
Yocto Project introductionYi-Hsiu Hsu
 
BKK16-110 A Gentle Introduction to Trusted Execution and OP-TEE
BKK16-110 A Gentle Introduction to Trusted Execution and OP-TEEBKK16-110 A Gentle Introduction to Trusted Execution and OP-TEE
BKK16-110 A Gentle Introduction to Trusted Execution and OP-TEELinaro
 
BKK16-201 Play Ready OPTEE Integration with Secure Video Path lhg-1
BKK16-201 Play Ready OPTEE Integration with Secure Video Path lhg-1BKK16-201 Play Ready OPTEE Integration with Secure Video Path lhg-1
BKK16-201 Play Ready OPTEE Integration with Secure Video Path lhg-1Linaro
 
LAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
LAS16-402: ARM Trusted Firmware – from Enterprise to EmbeddedLAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
LAS16-402: ARM Trusted Firmware – from Enterprise to EmbeddedLinaro
 
Linux Kernel MMC Storage driver Overview
Linux Kernel MMC Storage driver OverviewLinux Kernel MMC Storage driver Overview
Linux Kernel MMC Storage driver OverviewRajKumar Rampelli
 
Booting Android: bootloaders, fastboot and boot images
Booting Android: bootloaders, fastboot and boot imagesBooting Android: bootloaders, fastboot and boot images
Booting Android: bootloaders, fastboot and boot imagesChris Simmonds
 
BUD17-416: Benchmark and profiling in OP-TEE
BUD17-416: Benchmark and profiling in OP-TEE BUD17-416: Benchmark and profiling in OP-TEE
BUD17-416: Benchmark and profiling in OP-TEE Linaro
 
Embedded_Linux_Booting
Embedded_Linux_BootingEmbedded_Linux_Booting
Embedded_Linux_BootingRashila Rr
 
LCU14 302- How to port OP-TEE to another platform
LCU14 302- How to port OP-TEE to another platformLCU14 302- How to port OP-TEE to another platform
LCU14 302- How to port OP-TEE to another platformLinaro
 

What's hot (20)

HKG15-311: OP-TEE for Beginners and Porting Review
HKG15-311: OP-TEE for Beginners and Porting ReviewHKG15-311: OP-TEE for Beginners and Porting Review
HKG15-311: OP-TEE for Beginners and Porting Review
 
OPTEE on QEMU - Build Tutorial
OPTEE on QEMU - Build TutorialOPTEE on QEMU - Build Tutorial
OPTEE on QEMU - Build Tutorial
 
SFO15-200: Linux kernel generic TEE driver
SFO15-200: Linux kernel generic TEE driverSFO15-200: Linux kernel generic TEE driver
SFO15-200: Linux kernel generic TEE driver
 
LAS16 111 - Raspberry pi3, op-tee and jtag debugging
LAS16 111 - Raspberry pi3, op-tee and jtag debuggingLAS16 111 - Raspberry pi3, op-tee and jtag debugging
LAS16 111 - Raspberry pi3, op-tee and jtag debugging
 
Embedded Linux on ARM
Embedded Linux on ARMEmbedded Linux on ARM
Embedded Linux on ARM
 
LAS16-406: Android Widevine on OP-TEE
LAS16-406: Android Widevine on OP-TEELAS16-406: Android Widevine on OP-TEE
LAS16-406: Android Widevine on OP-TEE
 
Lcu14 306 - OP-TEE Future Enhancements
Lcu14 306 - OP-TEE Future EnhancementsLcu14 306 - OP-TEE Future Enhancements
Lcu14 306 - OP-TEE Future Enhancements
 
LCA14: LCA14-502: The way to a generic TrustZone® solution
LCA14: LCA14-502: The way to a generic TrustZone® solutionLCA14: LCA14-502: The way to a generic TrustZone® solution
LCA14: LCA14-502: The way to a generic TrustZone® solution
 
GCC for ARMv8 Aarch64
GCC for ARMv8 Aarch64GCC for ARMv8 Aarch64
GCC for ARMv8 Aarch64
 
Kernel Recipes 2018 - Overview of SD/eMMC, their high speed modes and Linux s...
Kernel Recipes 2018 - Overview of SD/eMMC, their high speed modes and Linux s...Kernel Recipes 2018 - Overview of SD/eMMC, their high speed modes and Linux s...
Kernel Recipes 2018 - Overview of SD/eMMC, their high speed modes and Linux s...
 
Q4.11: Introduction to eMMC
Q4.11: Introduction to eMMCQ4.11: Introduction to eMMC
Q4.11: Introduction to eMMC
 
Yocto Project introduction
Yocto Project introductionYocto Project introduction
Yocto Project introduction
 
BKK16-110 A Gentle Introduction to Trusted Execution and OP-TEE
BKK16-110 A Gentle Introduction to Trusted Execution and OP-TEEBKK16-110 A Gentle Introduction to Trusted Execution and OP-TEE
BKK16-110 A Gentle Introduction to Trusted Execution and OP-TEE
 
BKK16-201 Play Ready OPTEE Integration with Secure Video Path lhg-1
BKK16-201 Play Ready OPTEE Integration with Secure Video Path lhg-1BKK16-201 Play Ready OPTEE Integration with Secure Video Path lhg-1
BKK16-201 Play Ready OPTEE Integration with Secure Video Path lhg-1
 
LAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
LAS16-402: ARM Trusted Firmware – from Enterprise to EmbeddedLAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
LAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
 
Linux Kernel MMC Storage driver Overview
Linux Kernel MMC Storage driver OverviewLinux Kernel MMC Storage driver Overview
Linux Kernel MMC Storage driver Overview
 
Booting Android: bootloaders, fastboot and boot images
Booting Android: bootloaders, fastboot and boot imagesBooting Android: bootloaders, fastboot and boot images
Booting Android: bootloaders, fastboot and boot images
 
BUD17-416: Benchmark and profiling in OP-TEE
BUD17-416: Benchmark and profiling in OP-TEE BUD17-416: Benchmark and profiling in OP-TEE
BUD17-416: Benchmark and profiling in OP-TEE
 
Embedded_Linux_Booting
Embedded_Linux_BootingEmbedded_Linux_Booting
Embedded_Linux_Booting
 
LCU14 302- How to port OP-TEE to another platform
LCU14 302- How to port OP-TEE to another platformLCU14 302- How to port OP-TEE to another platform
LCU14 302- How to port OP-TEE to another platform
 

Similar to LAS16-504: Secure Storage updates in OP-TEE

HKG18-110 - net_mdev: Fast path user space I/O
HKG18-110 - net_mdev: Fast path user space I/OHKG18-110 - net_mdev: Fast path user space I/O
HKG18-110 - net_mdev: Fast path user space I/OLinaro
 
BKK16-103 OpenCSD - Open for Business!
BKK16-103 OpenCSD - Open for Business!BKK16-103 OpenCSD - Open for Business!
BKK16-103 OpenCSD - Open for Business!Linaro
 
LAS16-300: Mini Conference 2 Cortex-M Software - Device Configuration
LAS16-300: Mini Conference 2 Cortex-M Software - Device ConfigurationLAS16-300: Mini Conference 2 Cortex-M Software - Device Configuration
LAS16-300: Mini Conference 2 Cortex-M Software - Device ConfigurationLinaro
 
Linux Kernel Platform Development: Challenges and Insights
 Linux Kernel Platform Development: Challenges and Insights Linux Kernel Platform Development: Challenges and Insights
Linux Kernel Platform Development: Challenges and InsightsGlobalLogic Ukraine
 
Hardware-assisted Isolated Execution Environment to run trusted OS and applic...
Hardware-assisted Isolated Execution Environment to run trusted OS and applic...Hardware-assisted Isolated Execution Environment to run trusted OS and applic...
Hardware-assisted Isolated Execution Environment to run trusted OS and applic...Kuniyasu Suzaki
 
In-memory OLTP storage with persistence and transaction support
In-memory OLTP storage with persistence and transaction supportIn-memory OLTP storage with persistence and transaction support
In-memory OLTP storage with persistence and transaction supportAlexander Korotkov
 
Gpu and The Brick Wall
Gpu and The Brick WallGpu and The Brick Wall
Gpu and The Brick Wallugur candan
 
My First 100 days with an Exadata (PPT)
My First 100 days with an Exadata (PPT)My First 100 days with an Exadata (PPT)
My First 100 days with an Exadata (PPT)Gustavo Rene Antunez
 
Building an open memory-centric computing architecture using intel optane
Building an open memory-centric computing architecture using intel optaneBuilding an open memory-centric computing architecture using intel optane
Building an open memory-centric computing architecture using intel optaneUniFabric
 
Lec 10-linux-review
Lec 10-linux-reviewLec 10-linux-review
Lec 10-linux-reviewabinaya m
 
Linux Stammtisch Munich: Ceph - Overview, Experiences and Outlook
Linux Stammtisch Munich: Ceph - Overview, Experiences and OutlookLinux Stammtisch Munich: Ceph - Overview, Experiences and Outlook
Linux Stammtisch Munich: Ceph - Overview, Experiences and OutlookDanny Al-Gaaf
 
958 and 959 sales exam prep
958 and 959 sales exam prep958 and 959 sales exam prep
958 and 959 sales exam prepJason Wong
 
Ceph Day Shanghai - On the Productization Practice of Ceph
Ceph Day Shanghai - On the Productization Practice of Ceph Ceph Day Shanghai - On the Productization Practice of Ceph
Ceph Day Shanghai - On the Productization Practice of Ceph Ceph Community
 
RISC-V-Day-Tokyo2018-suzaki
RISC-V-Day-Tokyo2018-suzakiRISC-V-Day-Tokyo2018-suzaki
RISC-V-Day-Tokyo2018-suzakiKuniyasu Suzaki
 
FIPS 140-2 Validations in a Secure Enclave
FIPS 140-2 Validations in a Secure EnclaveFIPS 140-2 Validations in a Secure Enclave
FIPS 140-2 Validations in a Secure EnclavewolfSSL
 
VTU 5TH SEM CSE OPERATING SYSTEMS SOLVED PAPERS
VTU 5TH SEM CSE OPERATING SYSTEMS SOLVED PAPERSVTU 5TH SEM CSE OPERATING SYSTEMS SOLVED PAPERS
VTU 5TH SEM CSE OPERATING SYSTEMS SOLVED PAPERSvtunotesbysree
 
04_Module 4.pptx,,,,,,,,,,,,,,,,,,,,,,,,,,,,,mm
04_Module 4.pptx,,,,,,,,,,,,,,,,,,,,,,,,,,,,,mm04_Module 4.pptx,,,,,,,,,,,,,,,,,,,,,,,,,,,,,mm
04_Module 4.pptx,,,,,,,,,,,,,,,,,,,,,,,,,,,,,mmabdulrahmaanwalid
 
OpenEBS hangout #4
OpenEBS hangout #4OpenEBS hangout #4
OpenEBS hangout #4OpenEBS
 

Similar to LAS16-504: Secure Storage updates in OP-TEE (20)

HKG18-110 - net_mdev: Fast path user space I/O
HKG18-110 - net_mdev: Fast path user space I/OHKG18-110 - net_mdev: Fast path user space I/O
HKG18-110 - net_mdev: Fast path user space I/O
 
BKK16-103 OpenCSD - Open for Business!
BKK16-103 OpenCSD - Open for Business!BKK16-103 OpenCSD - Open for Business!
BKK16-103 OpenCSD - Open for Business!
 
LAS16-300: Mini Conference 2 Cortex-M Software - Device Configuration
LAS16-300: Mini Conference 2 Cortex-M Software - Device ConfigurationLAS16-300: Mini Conference 2 Cortex-M Software - Device Configuration
LAS16-300: Mini Conference 2 Cortex-M Software - Device Configuration
 
Linux Kernel Platform Development: Challenges and Insights
 Linux Kernel Platform Development: Challenges and Insights Linux Kernel Platform Development: Challenges and Insights
Linux Kernel Platform Development: Challenges and Insights
 
Hardware-assisted Isolated Execution Environment to run trusted OS and applic...
Hardware-assisted Isolated Execution Environment to run trusted OS and applic...Hardware-assisted Isolated Execution Environment to run trusted OS and applic...
Hardware-assisted Isolated Execution Environment to run trusted OS and applic...
 
In-memory OLTP storage with persistence and transaction support
In-memory OLTP storage with persistence and transaction supportIn-memory OLTP storage with persistence and transaction support
In-memory OLTP storage with persistence and transaction support
 
Gpu and The Brick Wall
Gpu and The Brick WallGpu and The Brick Wall
Gpu and The Brick Wall
 
My First 100 days with an Exadata (PPT)
My First 100 days with an Exadata (PPT)My First 100 days with an Exadata (PPT)
My First 100 days with an Exadata (PPT)
 
Building an open memory-centric computing architecture using intel optane
Building an open memory-centric computing architecture using intel optaneBuilding an open memory-centric computing architecture using intel optane
Building an open memory-centric computing architecture using intel optane
 
Lec 10-linux-review
Lec 10-linux-reviewLec 10-linux-review
Lec 10-linux-review
 
Introducing PMDK into PostgreSQL
Introducing PMDK into PostgreSQLIntroducing PMDK into PostgreSQL
Introducing PMDK into PostgreSQL
 
Linux Stammtisch Munich: Ceph - Overview, Experiences and Outlook
Linux Stammtisch Munich: Ceph - Overview, Experiences and OutlookLinux Stammtisch Munich: Ceph - Overview, Experiences and Outlook
Linux Stammtisch Munich: Ceph - Overview, Experiences and Outlook
 
958 and 959 sales exam prep
958 and 959 sales exam prep958 and 959 sales exam prep
958 and 959 sales exam prep
 
LSA2 - 02 Namespaces
LSA2 - 02  NamespacesLSA2 - 02  Namespaces
LSA2 - 02 Namespaces
 
Ceph Day Shanghai - On the Productization Practice of Ceph
Ceph Day Shanghai - On the Productization Practice of Ceph Ceph Day Shanghai - On the Productization Practice of Ceph
Ceph Day Shanghai - On the Productization Practice of Ceph
 
RISC-V-Day-Tokyo2018-suzaki
RISC-V-Day-Tokyo2018-suzakiRISC-V-Day-Tokyo2018-suzaki
RISC-V-Day-Tokyo2018-suzaki
 
FIPS 140-2 Validations in a Secure Enclave
FIPS 140-2 Validations in a Secure EnclaveFIPS 140-2 Validations in a Secure Enclave
FIPS 140-2 Validations in a Secure Enclave
 
VTU 5TH SEM CSE OPERATING SYSTEMS SOLVED PAPERS
VTU 5TH SEM CSE OPERATING SYSTEMS SOLVED PAPERSVTU 5TH SEM CSE OPERATING SYSTEMS SOLVED PAPERS
VTU 5TH SEM CSE OPERATING SYSTEMS SOLVED PAPERS
 
04_Module 4.pptx,,,,,,,,,,,,,,,,,,,,,,,,,,,,,mm
04_Module 4.pptx,,,,,,,,,,,,,,,,,,,,,,,,,,,,,mm04_Module 4.pptx,,,,,,,,,,,,,,,,,,,,,,,,,,,,,mm
04_Module 4.pptx,,,,,,,,,,,,,,,,,,,,,,,,,,,,,mm
 
OpenEBS hangout #4
OpenEBS hangout #4OpenEBS hangout #4
OpenEBS hangout #4
 

More from Linaro

Deep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Deep Learning Neural Network Acceleration at the Edge - Andrea GalloDeep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Deep Learning Neural Network Acceleration at the Edge - Andrea GalloLinaro
 
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta VekariaArm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta VekariaLinaro
 
Huawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
Huawei’s requirements for the ARM based HPC solution readiness - Joshua MoraHuawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
Huawei’s requirements for the ARM based HPC solution readiness - Joshua MoraLinaro
 
Bud17 113: distribution ci using qemu and open qa
Bud17 113: distribution ci using qemu and open qaBud17 113: distribution ci using qemu and open qa
Bud17 113: distribution ci using qemu and open qaLinaro
 
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018Linaro
 
HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018Linaro
 
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...Linaro
 
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...Linaro
 
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...Linaro
 
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...Linaro
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineLinaro
 
HKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening KeynoteHKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening KeynoteLinaro
 
HKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP WorkshopHKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP WorkshopLinaro
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineLinaro
 
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and allHKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and allLinaro
 
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse HypervisorHKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse HypervisorLinaro
 
HKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMUHKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMULinaro
 
HKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8MHKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8MLinaro
 
HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation Linaro
 
HKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted bootHKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted bootLinaro
 

More from Linaro (20)

Deep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Deep Learning Neural Network Acceleration at the Edge - Andrea GalloDeep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Deep Learning Neural Network Acceleration at the Edge - Andrea Gallo
 
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta VekariaArm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
 
Huawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
Huawei’s requirements for the ARM based HPC solution readiness - Joshua MoraHuawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
Huawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
 
Bud17 113: distribution ci using qemu and open qa
Bud17 113: distribution ci using qemu and open qaBud17 113: distribution ci using qemu and open qa
Bud17 113: distribution ci using qemu and open qa
 
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
 
HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018
 
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
 
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
 
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
 
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
 
HKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening KeynoteHKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening Keynote
 
HKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP WorkshopHKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP Workshop
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
 
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and allHKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
 
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse HypervisorHKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
 
HKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMUHKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMU
 
HKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8MHKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8M
 
HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation
 
HKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted bootHKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted boot
 

Recently uploaded

Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAnitaRaj43
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKJago de Vreede
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Zilliz
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)Samir Dash
 

Recently uploaded (20)

Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
 

LAS16-504: Secure Storage updates in OP-TEE

  • 1. Secure Storage Updates in OP-TEE: What’s new since SFO15 and what’s left to do? Jerome Forissier, Huawei Technologies/HiSilicon
  • 2. ENGINEERS AND DEVICES WORKING TOGETHER Agenda ● What is secure storage? ● OP-TEE timeline ● What’s new? ○ Framework for multiple storage backends ○ RPMB (Replay-Protected Memory Block) ○ SQLite ○ Encryption ○ xtest updates ● Next steps
  • 3. ENGINEERS AND DEVICES WORKING TOGETHER What is Secure Storage? ● Persistent data store for crypto keys or other application-specific data ● Accessible to Trusted Applications only ○ Each TA has its own storage (TA isolation) ● Isolated from the non-secure world ○ Secure Storage data be read, modified or deleted by user applications or the OS kernel ● OP-TEE implements the GlobalPlatform™ TEE Internal Core API v1.1 ○ Chapter 5: Trusted Storage API for Data and Keys ; Persistent Object [Enumeration] Functions and Data Stream Access Functions TEE_OpenPersistentObject() TEE_AllocatePersistentObjectEnumerator() TEE_CreatePersistentObject() TEE_FreePersistentObjectEnumerator() TEE_CloseAndDeletePersistentObject1() TEE_ResetPersistentObjectEnumerator() TEE_RenamePersistentObject() TEE_StartPersistentObjectEnumerator() TEE_ReadObjectData() TEE_GetNextPersistentObject() TEE_WriteObjectData() TEE_TruncateObjectData() TEE_SeekObjectData()
  • 4. ENGINEERS AND DEVICES WORKING TOGETHER OP-TEE Timeline Secure Storage Improvements 0.1.0 0.2.0 0.3.0 1.0.0 1.1.0 2.0.0 2.1.0 (next) struct tee_file_operations Encryption Atomicity LCU14 xtest 20000 (corruption tests) RPMB Multiple storage support Better TA isolation SQLite storage HKG15 SFO15 BKK16 LAS16
  • 5. ENGINEERS AND DEVICES WORKING TOGETHER ● OP-TEE < 2.0.0 ○ Secure storage is implemented on top of the Rich OS filesystem. We call it the “REE FS” ○ Trusted Application may only use TEE_STORAGE_PRIVATE as the storageID parameter ● OP-TEE = 2.0.0 ○ Replay Protected Memory Block (RPMB) storage is introduced. It is a compile-time option to replace the REE FS (CFG_RPMB_FS=y). ● OP-TEE = 2.1.0 ○ Code is refactored to allow for compile time and runtime selection of the storage backend ○ Compile time options (both may be enabled simultaneously): CFG_REE_FS ?= y ; CFG_RPMB_FS ?= n ○ Runtime flags used by Trusted Applications: #define TEE_STORAGE_PRIVATE 0x00000001 #define TEE_STORAGE_PRIVATE_REE 0x80000000 #define TEE_STORAGE_PRIVATE_RPMB 0x80000100 ● OP-TEE > 2.1.0 (next) ○ SQLite storage is introduced: CFG_SQL_FS ?= n #define TEE_STORAGE_PRIVATE_SQL 0x80000200 Multiple storage support
  • 6. ENGINEERS AND DEVICES WORKING TOGETHER Replay Protected Memory Block support (1) ● Added in 2.0.0 ● OP-TEE had some legacy RPMB code which was re-worked recently ● Main source files: core/tee/tee_svc_storage.c core/tee/tee_rpmb_fs.c core/tee/tee_fs_key_manager.c ● FS layout is as follows: [ Partition data (512 bytes) | FAT entries -> … <- File blocks ] ● File Allocation Table entries are dynamically allocated from the bottom while file blocks are allocated from the top ● The allocator is tee_mm_alloc() / tee_mm_alloc2()
  • 7. ENGINEERS AND DEVICES WORKING TOGETHER Replay Protected Memory Block support (2) ● eMMC device ID is selected at compile time ○ CFG_RPMB_FS_DEV_ID ?= 0 in mk/config.mk ○ Will use /dev/mmcblk0rpmb ● Device is accessed through Normal World (tee-supplicant) ○ There is no MMC driver inside OP-TEE ● tee-supplicant contains emulation code so it’s easy to test without a real device ○ RPMB_EMU := 1 in tee-supplicant/Makefile ○ Comment out to access the real device ● RPMB key is programmed on first use ○ SHA256(HUK) or a predefined test key if CFG_RPMB_TESTKEY = y ○ /! possible attack: replace the eMMC with a new one (or simulate the same) and the key will leak out. We’ll fix that.
  • 8. ENGINEERS AND DEVICES WORKING TOGETHER Replay Protected Memory Block support (3) ● Atomicity: read/write/rename etc. can’t leave objects in a partially modified state ○ FAT block is updated only after data blocks have been written successfully ○ RPMB spec ensures atomic write of rel_wr_blkcnt blocks or less (at least 1), this is enough for our need ○ Data writes larger than rel_wr_blkcnt cannot be updated in-place ; allocate/read/update/write/commit to FAT instead ● HiKey can access the onboard eMMC since kernel 4.8-rc1 ○ Commit af63762 (“mmc: dw_mmc: k3: add MMC_CAP_CMD23”) ○ An external eMMC module with a microSD adapter can also be used
  • 9. ENGINEERS AND DEVICES WORKING TOGETHER Replay Protected Memory Block support (4) REE File Operations Interface TEE Supplicant TEE Driver REE FileSystem REE- based FS TEE File Operation Interface TEE Trusted Storage Service TATATA GP Trusted Storage API Normal World Secure WorldUserSpaceKernelSpace RPMB FS RPMB (block) Interface Key Manager eMMC Driver ioctl() read(), write()...
  • 10. ENGINEERS AND DEVICES WORKING TOGETHER SQLite (1) ● A SQLite backend is proposed as a simpler and more robust alternative to the REE FS ● Based on SQLite3 (public domain) and libsqlfs (LGPLv2 or later) ● Moves the complexity of handling atomic updates from secure world to normal world (tee-supplicant). Indeed, libsqlfs provides: sqlfs_begin_transaction(fs); sqlfs_complete_transaction(fs, rollback); ● TA data are stored in a single file in the Normal World filesystem: /data/tee/sstore.db
  • 11. ENGINEERS AND DEVICES WORKING TOGETHER SQLite (2) REE File Operations Interface TEE Supplicant TEE Driver REE FileSystem REE_FS TEE File Operation Interface TEE Trusted Storage Service TATATA GP Trusted Storage API Normal World Secure WorldUserSpaceKernelSpace SQL_FS Key Manager libsqlfs SQLite
  • 12. ENGINEERS AND DEVICES WORKING TOGETHER Encryption (1) ● Data Encryption is turned on with CFG_ENC_FS=y (default y). ○ Useful even for RPMB, since the device is accessed through the Normal World ● Authenticated block encryption, 1 key per file (File Encryption Key). ● FEK is AES-encrypted using a 256-bit Trusted app Storage Key (TSK) then stored in the file’s metadata ● The TSK is derived from the SSK and the TA UUID using HMAC_SHA256 ○ Prevents TA2 from accessing data owned by TA1 when REE FS files are moved from storage area of TA1 to TA2 ● The SSK is derived from a Hardware Unique Key (HUK) and a constant string using HMAC_SHA256
  • 13. ENGINEERS AND DEVICES WORKING TOGETHER Encryption (2) ● REE FS, SQL FS: ○ Metadata are always authenticated and encrypted ○ Data may or may not be authenticated and encrypted depending on CFG_ENC_FS (default: y) ○ Algorithm is AES-GCM ● RPMB FS: ○ Metadata are never encrypted ○ Data may or may not be encrypted depending on CFG_ENC_FS. ○ Data and metadata are always authenticated (RPMB protocol) ○ Data encryption algorithm is AES-CBC with ESSIV (no need for GCM as above because authentication is handled by RPMB)
  • 14. ENGINEERS AND DEVICES WORKING TOGETHER xtest updates ● Test all supported backends ○ Client application automatically includes conf.h generated during OP-TEE build, so all CFG_* settings may be used ○ xtest 6xxx loops on all supported storage IDs ● Test TA storage isolation ○ xtest 6015 ○ Checks that two TAs won’t share data ○ Checks that REE FS can’t be fooled into opening data storage belonging to another TA ● Concurrency test ○ xtest 6016 ○ 4 threads (pthread) run a loop, invoking the storage TA to perform create/write/verify/delete on distinct objects. TA has TA_FLAG_MULTI_SESSION.
  • 15. ENGINEERS AND DEVICES WORKING TOGETHER What’s next? ● RPMB: don’t program key unless some debug/testing CFG_ is set ● Improve derivation of SSK from HUK ○ Should be done by the hardware crypto module. HUK should never be read by software. ○ Unfortunately, we have no such driver upstream :( ● Anti-rollback protection and controlled rollback for storage owned by non-secure OS: how? ● Prevent TA impersonation ○ Per-TA signing keys and use root key to sign key pairs only (not the TA itself) ○ Not only restricted to storage ● Further code simplifications? ● Is SQL FS useful? Should it replace REE FS? When?
  • 16. Thank You #LAS16 For further information: www.linaro.org LAS16 keynotes and videos on: connect.linaro.org