SlideShare ist ein Scribd-Unternehmen logo
1 von 11
Downloaden Sie, um offline zu lesen
BUD17-400 Secure Data Path with OP-TEE
Mark Gregotski, Director LHG
ENGINEERS
AND DEVICES
WORKING
TOGETHER
Overview
● Move to ION-based Secure data path Memory Allocator
(SMA)
● OP-TEE/SDP extensions of the GlobalPlatform TEE APIs
● ION SMA implementation for Android and Linux-based
media framework solutions
● Focus on the Android Media Framework
● Secure buffer reference using dma-buf
ENGINEERS AND DEVICES
WORKING TOGETHER
Migration to ION-based SDP Memory Allocator
● OP-TEE integration with ION is being driven by the Security Working Group
(SWG)
○ Extensive work done by Etienne Carriere to define the OP-TEE/SDP integration
● LHG plan is to use ION SMA as the underlying secure buffer mechanism for
both Android and Linux-based secure media framework implementation
● The Security Working Group has proposed OP-TEE/SDP extensions to the
GlobalPlatform APIs
● SWG has proposed extensions to the ION memory pools (“heaps”) types
ENGINEERS AND DEVICES
WORKING TOGETHER
Highlights of Secure Data Path Support in OP-TEE (1)
● A set of OP-TEE/SDP extensions extend the
GlobalPlatform APIs
● One important extension allows non-secure REE to
allocate secure memory
○ A Trusted Application can access secure memory
references provided as invocation parameters
● REE is responsible for the allocation of Secure
Data Path (SDP) buffers
● TEE is responsible for providing a TA clear & safe
memory references to both non-secure shared
memory and SDP secure memory buffers
● SDP memory buffers are secure; Client App cannot
access the buffer Source: SDP Support in OP-TEE - Etienne
Carriere
ENGINEERS AND DEVICES
WORKING TOGETHER
Highlights of SDP Support in OP-TEE (2)
● OP-TEE/SDP extensions provided for:
○ TEE Client APIs to register a SDP memory buffer into the TEE framework
○ OP-TEE Linux Driver: creates a ‘shared memory’ instance of each memory reference used as
invocation parameters
○ OP-TEE Core: extension to GP TEE specification for a TA to be ‘SDP aware’
○ Trusted Application: extension allows TA to be invoked with a SDP memory buffer as invocation
parameters; virtual memory range (base addr, size) passed as an argument to the TA entry point
● SDP Aware Trusted Applications
○ For a TA to be invoked with SDP memory reference parameters, the TA requires support from
the OP-TEE core
■ OP-TEE/SDP extension allows a TA to check memory reference as being either non-secure (shared) or
secure
ENGINEERS AND DEVICES
WORKING TOGETHER
SDP Memory Allocator (SMA)
● SMA mechanism assume non-secure world manipulates the secure memory
reference in clear form (physical base addr + byte size)
○ ION implements the Secure Shared Memory Allocator agent in non-secure world
● ION Memory Allocator framework registers specific memory pools (“heaps”)
and gets allocation support from both kernel- and user-space
● The defined ION secure heap type allocation algorithm
○ None of the natively supported ION heaps offer the service expected by a secure memory
allocator
○ Need to allocate a physical region of memory the allocator cannot access
○ Borrowed the concept of a “secure heap” originally created by Allwinner Technology
○ Renamed to “unmapped heap” since it is basically an “unmapped memory allocator”
driver for ION
ENGINEERS AND DEVICES
WORKING TOGETHER
SDP Memory References in Non-secure World
● OP-TEE chose the Linux kernel native “dma-buf” framework to reference SDP
memory buffers:
○ Linux user-space, SDP buffer referred to by a dma-buf file descriptor
○ Linux kernel-space, SDP buffer referred to by a dma-buf handle
● OP-TEE/SDP extension of the TEE Client API provides an API to allow any
“dma-buf” file descriptor to be registered as a “shared memory instance” in
order to invoke a TA through the generic TEE Client API
ENGINEERS AND DEVICES
WORKING TOGETHER
Android Media Framework Hardening
● Look at how Media and DRM processes
are defined in Android 7.0
● Reconcile the Android native buffer
handle implementation with the ION-SMA
framework using dma-buf file descriptors
and with IPC
● With MediaDrm and MediaCrypto stacks
in the new mediadrmserver process,
buffers are allocated differently
● Vendors must update the secure buffer
handles so they can be transported
across binder when MediaCodec invokes
a decrypt operation on MediaCrypto
In Android 7.0 and higher, buffer allocation in mediaserver.
https://source.android.com/devices/media/framework-hardening.html
ENGINEERS AND DEVICES
WORKING TOGETHER
Secure Buffers using Native Handles
● In Android 7.0, the OMX:: allocateBuffer() must return a pointer to a
native_handle struct
○ Contains File Descriptors (FDs) and additional data
● A new OMX extension (OMX.google.android.index.allocateNativeHandle) can
be queried for this support and an OMX_SetParameter call that notifies the
OMX implementation it should use native handles
● SoC vendors who use FDs to represent secure buffers can populate the FD in
the native_handle
● Use dma-buf FDs in the native_handle struct
ENGINEERS AND DEVICES
WORKING TOGETHER
Secure Buffer Allocation by OP-TEE/SDP
MediaServer
OP-TEE
MediaCodecServiceMediaDrmServer
ION allocate
Binder Binder
Secure Buffer
NativeHandle NativeHandle
decrypt
OEM CRYPTO(Host)
OEM CRYPTO(TA)
Codec(Host)
Codec(TA)Decode
The proposal for OP-TEE/SDP with ION. MediaServer allocates secure buffer initially and passes the
ION FDs to MediaDrmServer and MediaCodecService via Native Handle via Binder. In secure world the
decryption and decoding are performed by the respective TAs. Output to display, e.g. HDMI output,
protected by HDCP.
Thank You
#BUD17
For further information: www.linaro.org
BUD17 keynotes and videos on: connect.linaro.org

Weitere ähnliche Inhalte

Was ist angesagt?

LCU14-103: How to create and run Trusted Applications on OP-TEE
LCU14-103: How to create and run Trusted Applications on OP-TEELCU14-103: How to create and run Trusted Applications on OP-TEE
LCU14-103: How to create and run Trusted Applications on OP-TEE
Linaro
 
TEE - kernel support is now upstream. What this means for open source security
TEE - kernel support is now upstream. What this means for open source securityTEE - kernel support is now upstream. What this means for open source security
TEE - kernel support is now upstream. What this means for open source security
Linaro
 
LAS16-111: Easing Access to ARM TrustZone – OP-TEE and Raspberry Pi 3
LAS16-111: Easing Access to ARM TrustZone – OP-TEE and Raspberry Pi 3LAS16-111: Easing Access to ARM TrustZone – OP-TEE and Raspberry Pi 3
LAS16-111: Easing Access to ARM TrustZone – OP-TEE and Raspberry Pi 3
Linaro
 

Was ist angesagt? (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
 
Introduction to Optee (26 may 2016)
Introduction to Optee (26 may 2016)Introduction to Optee (26 may 2016)
Introduction to Optee (26 may 2016)
 
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
 
LCU14-103: How to create and run Trusted Applications on OP-TEE
LCU14-103: How to create and run Trusted Applications on OP-TEELCU14-103: How to create and run Trusted Applications on OP-TEE
LCU14-103: How to create and run Trusted Applications on OP-TEE
 
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
 
TEE - kernel support is now upstream. What this means for open source security
TEE - kernel support is now upstream. What this means for open source securityTEE - kernel support is now upstream. What this means for open source security
TEE - kernel support is now upstream. What this means for open source security
 
Lcu14 306 - OP-TEE Future Enhancements
Lcu14 306 - OP-TEE Future EnhancementsLcu14 306 - OP-TEE Future Enhancements
Lcu14 306 - OP-TEE Future Enhancements
 
U-Boot presentation 2013
U-Boot presentation  2013U-Boot presentation  2013
U-Boot presentation 2013
 
LAS16-111: Easing Access to ARM TrustZone – OP-TEE and Raspberry Pi 3
LAS16-111: Easing Access to ARM TrustZone – OP-TEE and Raspberry Pi 3LAS16-111: Easing Access to ARM TrustZone – OP-TEE and Raspberry Pi 3
LAS16-111: Easing Access to ARM TrustZone – OP-TEE and Raspberry Pi 3
 
SFO15-205: OP-TEE Content Decryption with Microsoft PlayReady on ARM
SFO15-205: OP-TEE Content Decryption with Microsoft PlayReady on ARMSFO15-205: OP-TEE Content Decryption with Microsoft PlayReady on ARM
SFO15-205: OP-TEE Content Decryption with Microsoft PlayReady on ARM
 
Android open source project build system phi innovations - android summit 2015
Android open source project build system   phi innovations - android summit 2015Android open source project build system   phi innovations - android summit 2015
Android open source project build system phi innovations - android summit 2015
 
Trusted firmware deep_dive_v1.0_
Trusted firmware deep_dive_v1.0_Trusted firmware deep_dive_v1.0_
Trusted firmware deep_dive_v1.0_
 
OPTEE on QEMU - Build Tutorial
OPTEE on QEMU - Build TutorialOPTEE on QEMU - Build Tutorial
OPTEE on QEMU - Build Tutorial
 
U Boot or Universal Bootloader
U Boot or Universal BootloaderU Boot or Universal Bootloader
U Boot or Universal Bootloader
 
Embedded Android : System Development - Part III (Audio / Video HAL)
Embedded Android : System Development - Part III (Audio / Video HAL)Embedded Android : System Development - Part III (Audio / Video HAL)
Embedded Android : System Development - Part III (Audio / Video HAL)
 
HKG15-505: Power Management interactions with OP-TEE and Trusted Firmware
HKG15-505: Power Management interactions with OP-TEE and Trusted FirmwareHKG15-505: Power Management interactions with OP-TEE and Trusted Firmware
HKG15-505: Power Management interactions with OP-TEE and Trusted Firmware
 
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
 
LCA13: Power State Coordination Interface
LCA13: Power State Coordination InterfaceLCA13: Power State Coordination Interface
LCA13: Power State Coordination Interface
 
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
 
Linux Audio Drivers. ALSA
Linux Audio Drivers. ALSALinux Audio Drivers. ALSA
Linux Audio Drivers. ALSA
 

Andere mochten auch

BUD17-510: Power management in Linux together with secure firmware
BUD17-510: Power management in Linux together with secure firmwareBUD17-510: Power management in Linux together with secure firmware
BUD17-510: Power management in Linux together with secure firmware
Linaro
 
BUD17-405: Building a reference IoT product with Zephyr
BUD17-405: Building a reference IoT product with Zephyr BUD17-405: Building a reference IoT product with Zephyr
BUD17-405: Building a reference IoT product with Zephyr
Linaro
 
BUD17-309: IRQ prediction
BUD17-309: IRQ prediction BUD17-309: IRQ prediction
BUD17-309: IRQ prediction
Linaro
 

Andere mochten auch (7)

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
 
BUD17-510: Power management in Linux together with secure firmware
BUD17-510: Power management in Linux together with secure firmwareBUD17-510: Power management in Linux together with secure firmware
BUD17-510: Power management in Linux together with secure firmware
 
BUD17-405: Building a reference IoT product with Zephyr
BUD17-405: Building a reference IoT product with Zephyr BUD17-405: Building a reference IoT product with Zephyr
BUD17-405: Building a reference IoT product with Zephyr
 
BUD17-309: IRQ prediction
BUD17-309: IRQ prediction BUD17-309: IRQ prediction
BUD17-309: IRQ prediction
 
BUD17-104: Scripting Languages in IoT: Challenges and Approaches
BUD17-104: Scripting Languages in IoT: Challenges and ApproachesBUD17-104: Scripting Languages in IoT: Challenges and Approaches
BUD17-104: Scripting Languages in IoT: Challenges and Approaches
 
George Grey Welcome Keynote - BUD17-100K1
George Grey Welcome Keynote - BUD17-100K1George Grey Welcome Keynote - BUD17-100K1
George Grey Welcome Keynote - BUD17-100K1
 
BUD17-310: Introducing LLDB for linux on Arm and AArch64
BUD17-310: Introducing LLDB for linux on Arm and AArch64 BUD17-310: Introducing LLDB for linux on Arm and AArch64
BUD17-310: Introducing LLDB for linux on Arm and AArch64
 

Ähnlich wie BUD17-400: Secure Data Path with OPTEE

Evaluating Wavelet Tranforms for Video Conferencing Applications
Evaluating Wavelet Tranforms for Video Conferencing ApplicationsEvaluating Wavelet Tranforms for Video Conferencing Applications
Evaluating Wavelet Tranforms for Video Conferencing Applications
Videoguy
 
Scalable deployment options in WSO2 API Manager
Scalable deployment options in WSO2 API ManagerScalable deployment options in WSO2 API Manager
Scalable deployment options in WSO2 API Manager
WSO2
 

Ähnlich wie BUD17-400: Secure Data Path with OPTEE (20)

Video Server
Video ServerVideo Server
Video Server
 
HKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP WorkshopHKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP Workshop
 
Enabling accelerated networking - seminar by Enea at the Embedded Conference ...
Enabling accelerated networking - seminar by Enea at the Embedded Conference ...Enabling accelerated networking - seminar by Enea at the Embedded Conference ...
Enabling accelerated networking - seminar by Enea at the Embedded Conference ...
 
A distributed video management cloud platform using hadoop
A distributed video management cloud platform using hadoopA distributed video management cloud platform using hadoop
A distributed video management cloud platform using hadoop
 
How to integrate OpenStack Swift to your "legacy" system
How to integrate OpenStack Swift to your "legacy" systemHow to integrate OpenStack Swift to your "legacy" system
How to integrate OpenStack Swift to your "legacy" system
 
Evaluating Wavelet Tranforms for Video Conferencing Applications
Evaluating Wavelet Tranforms for Video Conferencing ApplicationsEvaluating Wavelet Tranforms for Video Conferencing Applications
Evaluating Wavelet Tranforms for Video Conferencing Applications
 
Android - Application Framework
Android - Application FrameworkAndroid - Application Framework
Android - Application Framework
 
MIPI DevCon Bangalore 2017: Emulation of DUT Using MIPI RMMI (M-PHY Module In...
MIPI DevCon Bangalore 2017: Emulation of DUT Using MIPI RMMI (M-PHY Module In...MIPI DevCon Bangalore 2017: Emulation of DUT Using MIPI RMMI (M-PHY Module In...
MIPI DevCon Bangalore 2017: Emulation of DUT Using MIPI RMMI (M-PHY Module In...
 
KIRANKUMAR_MV
KIRANKUMAR_MVKIRANKUMAR_MV
KIRANKUMAR_MV
 
DRM Basics With Irdeto and Bitmovin
DRM Basics With Irdeto and BitmovinDRM Basics With Irdeto and Bitmovin
DRM Basics With Irdeto and Bitmovin
 
HPE Solutions for Challenges in AI and Big Data
HPE Solutions for Challenges in AI and Big DataHPE Solutions for Challenges in AI and Big Data
HPE Solutions for Challenges in AI and Big Data
 
Saviak lviv ai-2019-e-mail (1)
Saviak lviv ai-2019-e-mail (1)Saviak lviv ai-2019-e-mail (1)
Saviak lviv ai-2019-e-mail (1)
 
Ufs whitepaper
Ufs whitepaperUfs whitepaper
Ufs whitepaper
 
Hybrid Cryptography Algorithm Based Secured Storage Android App
Hybrid Cryptography Algorithm Based Secured Storage Android AppHybrid Cryptography Algorithm Based Secured Storage Android App
Hybrid Cryptography Algorithm Based Secured Storage Android App
 
9. PA DIM presentation.pdf
9. PA DIM presentation.pdf9. PA DIM presentation.pdf
9. PA DIM presentation.pdf
 
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
 
Ceph Day Shanghai - Hyper Converged PLCloud with Ceph
Ceph Day Shanghai - Hyper Converged PLCloud with Ceph Ceph Day Shanghai - Hyper Converged PLCloud with Ceph
Ceph Day Shanghai - Hyper Converged PLCloud with Ceph
 
[OpenStack Day in Korea 2015] Keynote 2 - Leveraging OpenStack to Realize the...
[OpenStack Day in Korea 2015] Keynote 2 - Leveraging OpenStack to Realize the...[OpenStack Day in Korea 2015] Keynote 2 - Leveraging OpenStack to Realize the...
[OpenStack Day in Korea 2015] Keynote 2 - Leveraging OpenStack to Realize the...
 
Open Channel SSD Controller
Open Channel SSD ControllerOpen Channel SSD Controller
Open Channel SSD Controller
 
Scalable deployment options in WSO2 API Manager
Scalable deployment options in WSO2 API ManagerScalable deployment options in WSO2 API Manager
Scalable deployment options in WSO2 API Manager
 

Mehr von 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 Gallo
Linaro
 
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
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
 
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 mainline
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 mainline
Linaro
 
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
Linaro
 
HKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMUHKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMU
Linaro
 
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 boot
Linaro
 
HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...
HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...
HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...
Linaro
 
HKG18-317 - Arm Server Ready Program
HKG18-317 - Arm Server Ready ProgramHKG18-317 - Arm Server Ready Program
HKG18-317 - Arm Server Ready Program
Linaro
 

Mehr von 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-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-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
 
HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...
HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...
HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...
 
HKG18-317 - Arm Server Ready Program
HKG18-317 - Arm Server Ready ProgramHKG18-317 - Arm Server Ready Program
HKG18-317 - Arm Server Ready Program
 

Kürzlich hochgeladen

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Kürzlich hochgeladen (20)

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 

BUD17-400: Secure Data Path with OPTEE

  • 1. BUD17-400 Secure Data Path with OP-TEE Mark Gregotski, Director LHG
  • 2. ENGINEERS AND DEVICES WORKING TOGETHER Overview ● Move to ION-based Secure data path Memory Allocator (SMA) ● OP-TEE/SDP extensions of the GlobalPlatform TEE APIs ● ION SMA implementation for Android and Linux-based media framework solutions ● Focus on the Android Media Framework ● Secure buffer reference using dma-buf
  • 3. ENGINEERS AND DEVICES WORKING TOGETHER Migration to ION-based SDP Memory Allocator ● OP-TEE integration with ION is being driven by the Security Working Group (SWG) ○ Extensive work done by Etienne Carriere to define the OP-TEE/SDP integration ● LHG plan is to use ION SMA as the underlying secure buffer mechanism for both Android and Linux-based secure media framework implementation ● The Security Working Group has proposed OP-TEE/SDP extensions to the GlobalPlatform APIs ● SWG has proposed extensions to the ION memory pools (“heaps”) types
  • 4. ENGINEERS AND DEVICES WORKING TOGETHER Highlights of Secure Data Path Support in OP-TEE (1) ● A set of OP-TEE/SDP extensions extend the GlobalPlatform APIs ● One important extension allows non-secure REE to allocate secure memory ○ A Trusted Application can access secure memory references provided as invocation parameters ● REE is responsible for the allocation of Secure Data Path (SDP) buffers ● TEE is responsible for providing a TA clear & safe memory references to both non-secure shared memory and SDP secure memory buffers ● SDP memory buffers are secure; Client App cannot access the buffer Source: SDP Support in OP-TEE - Etienne Carriere
  • 5. ENGINEERS AND DEVICES WORKING TOGETHER Highlights of SDP Support in OP-TEE (2) ● OP-TEE/SDP extensions provided for: ○ TEE Client APIs to register a SDP memory buffer into the TEE framework ○ OP-TEE Linux Driver: creates a ‘shared memory’ instance of each memory reference used as invocation parameters ○ OP-TEE Core: extension to GP TEE specification for a TA to be ‘SDP aware’ ○ Trusted Application: extension allows TA to be invoked with a SDP memory buffer as invocation parameters; virtual memory range (base addr, size) passed as an argument to the TA entry point ● SDP Aware Trusted Applications ○ For a TA to be invoked with SDP memory reference parameters, the TA requires support from the OP-TEE core ■ OP-TEE/SDP extension allows a TA to check memory reference as being either non-secure (shared) or secure
  • 6. ENGINEERS AND DEVICES WORKING TOGETHER SDP Memory Allocator (SMA) ● SMA mechanism assume non-secure world manipulates the secure memory reference in clear form (physical base addr + byte size) ○ ION implements the Secure Shared Memory Allocator agent in non-secure world ● ION Memory Allocator framework registers specific memory pools (“heaps”) and gets allocation support from both kernel- and user-space ● The defined ION secure heap type allocation algorithm ○ None of the natively supported ION heaps offer the service expected by a secure memory allocator ○ Need to allocate a physical region of memory the allocator cannot access ○ Borrowed the concept of a “secure heap” originally created by Allwinner Technology ○ Renamed to “unmapped heap” since it is basically an “unmapped memory allocator” driver for ION
  • 7. ENGINEERS AND DEVICES WORKING TOGETHER SDP Memory References in Non-secure World ● OP-TEE chose the Linux kernel native “dma-buf” framework to reference SDP memory buffers: ○ Linux user-space, SDP buffer referred to by a dma-buf file descriptor ○ Linux kernel-space, SDP buffer referred to by a dma-buf handle ● OP-TEE/SDP extension of the TEE Client API provides an API to allow any “dma-buf” file descriptor to be registered as a “shared memory instance” in order to invoke a TA through the generic TEE Client API
  • 8. ENGINEERS AND DEVICES WORKING TOGETHER Android Media Framework Hardening ● Look at how Media and DRM processes are defined in Android 7.0 ● Reconcile the Android native buffer handle implementation with the ION-SMA framework using dma-buf file descriptors and with IPC ● With MediaDrm and MediaCrypto stacks in the new mediadrmserver process, buffers are allocated differently ● Vendors must update the secure buffer handles so they can be transported across binder when MediaCodec invokes a decrypt operation on MediaCrypto In Android 7.0 and higher, buffer allocation in mediaserver. https://source.android.com/devices/media/framework-hardening.html
  • 9. ENGINEERS AND DEVICES WORKING TOGETHER Secure Buffers using Native Handles ● In Android 7.0, the OMX:: allocateBuffer() must return a pointer to a native_handle struct ○ Contains File Descriptors (FDs) and additional data ● A new OMX extension (OMX.google.android.index.allocateNativeHandle) can be queried for this support and an OMX_SetParameter call that notifies the OMX implementation it should use native handles ● SoC vendors who use FDs to represent secure buffers can populate the FD in the native_handle ● Use dma-buf FDs in the native_handle struct
  • 10. ENGINEERS AND DEVICES WORKING TOGETHER Secure Buffer Allocation by OP-TEE/SDP MediaServer OP-TEE MediaCodecServiceMediaDrmServer ION allocate Binder Binder Secure Buffer NativeHandle NativeHandle decrypt OEM CRYPTO(Host) OEM CRYPTO(TA) Codec(Host) Codec(TA)Decode The proposal for OP-TEE/SDP with ION. MediaServer allocates secure buffer initially and passes the ION FDs to MediaDrmServer and MediaCodecService via Native Handle via Binder. In secure world the decryption and decoding are performed by the respective TAs. Output to display, e.g. HDMI output, protected by HDCP.
  • 11. Thank You #BUD17 For further information: www.linaro.org BUD17 keynotes and videos on: connect.linaro.org