SlideShare a Scribd company logo
Android Widevine on OP-TEE
David Brown
ENGINEERS
AND DEVICES
WORKING
TOGETHER
Agenda
● Motivations
● How not to do it
● OP-TEE
● General solutions
● Overview of Widevine
ENGINEERS AND DEVICES
WORKING TOGETHER
Motivation
ENGINEERS AND DEVICES
WORKING TOGETHER
Motivation
● Software playback
● Red arrow, bad!
● Creators sad, no HD
ENGINEERS
AND DEVICES
WORKING
TOGETHER
Agenda
● Motivations
● How not to do it
● OP-TEE
● General solutions
● Overview of Widevine
ENGINEERS AND DEVICES
WORKING TOGETHER
How not to do it?
● Plaintext video passes through userspace
● Find exploit in player, or many other things
● Root makes it trivial to get
● Notice the key is also in userspace
● This is bad
ENGINEERS AND DEVICES
WORKING TOGETHER
Can we do better?
ENGINEERS AND DEVICES
WORKING TOGETHER
● Less is accessible
● Plaintext still in userspace
● Creators still sad
Can we do better?
ENGINEERS AND DEVICES
WORKING TOGETHER
All plaintext in kernel?
ENGINEERS AND DEVICES
WORKING TOGETHER
All plaintext in kernel?
● Better, no plaintext in userspace
● Key still there
● Kernel is vulnerable
ENGINEERS AND DEVICES
WORKING TOGETHER
Key in kernel
ENGINEERS AND DEVICES
WORKING TOGETHER
Key in kernel
● All key/plaintext now in kernel
● Content protected from userspace
● Kernel exploits possible
● Creators still sad
ENGINEERS
AND DEVICES
WORKING
TOGETHER
OP-TEE
● ARM®
TrustZone®
○ Trustable through boot into secure OS
○ Runs alongside Kernel
● GlobalPlatform TEE Specification
○ OP-TEE is our implementation
○ Allows trusted apps, and clients
ENGINEERS AND DEVICES
WORKING TOGETHER
OP-TEE
ENGINEERS AND DEVICES
WORKING TOGETHER
DRM in TEE
ENGINEERS AND DEVICES
WORKING TOGETHER
DRM in TEE
● Almost there, key is in TEE
● Plaintext video still available at end
● Providers still sad
ENGINEERS AND DEVICES
WORKING TOGETHER
One more thing
● We need a weird buffer
○ Accessible to secure side
○ Not readable by unsecure (even kernel)
○ Accessible by HW decoder
● SMAF
○ Secure memory allocator
○ TEE can decode into this memory
○ HW can play it back
● It’s tricky to get right, only certain HW should have access
ENGINEERS
AND DEVICES
WORKING
TOGETHER
Agenda
● Motivations
● How not to do it
● OP-TEE
● General solution
● Overview of Widevine
ENGINEERS AND DEVICES
WORKING TOGETHER
Keybox
ENGINEERS AND DEVICES
WORKING TOGETHER
Keybox
ENGINEERS AND DEVICES
WORKING TOGETHER
Content Key
ENGINEERS AND DEVICES
WORKING TOGETHER
Content Key
ENGINEERS AND DEVICES
WORKING TOGETHER
Content Key
ENGINEERS AND DEVICES
WORKING TOGETHER
Content Key
ENGINEERS
AND DEVICES
WORKING
TOGETHER
Agenda
● Motivations
● How not to do it
● OP-TEE
● General solution
● Overview of Widevine
ENGINEERS AND DEVICES
WORKING TOGETHER
Widevine
● CDM (content decryption module) for Android
● Specifics are for partners only
● Plugin based, we implement oemcrypto.so using our client lib and TA
ENGINEERS AND DEVICES
WORKING TOGETHER
Status
● Working on HiKey board
● OP-TEE available for Android AOSP
● We have a liboemcrypto.so and TA for Widevine CDM
● Several security things missing
○ No trusted boot chain, TEE could be modified (HiKey issue)
○ SMAF not yet supported (patches in progress)
https://lkml.org/lkml/2016/9/7/133
○ No HW video playback, buffers still need to be visible to software (HiKey work in progress)
Thank You
#LAS16
For further information: www.linaro.org
LAS16 keynotes and videos on: connect.linaro.org

More Related Content

PDF
BKK16-110 A Gentle Introduction to Trusted Execution and OP-TEE
Linaro
 
ODP
Introduction to Optee (26 may 2016)
Yannick Gicquel
 
PDF
HKG18-203 - Overview of Linaro DRM
Linaro
 
PDF
BKK16-201 Play Ready OPTEE Integration with Secure Video Path lhg-1
Linaro
 
PDF
Lcu14 107- op-tee on ar mv8
Linaro
 
PDF
LCU14 302- How to port OP-TEE to another platform
Linaro
 
PDF
TEE - kernel support is now upstream. What this means for open source security
Linaro
 
PDF
LCA14: LCA14-502: The way to a generic TrustZone® solution
Linaro
 
BKK16-110 A Gentle Introduction to Trusted Execution and OP-TEE
Linaro
 
Introduction to Optee (26 may 2016)
Yannick Gicquel
 
HKG18-203 - Overview of Linaro DRM
Linaro
 
BKK16-201 Play Ready OPTEE Integration with Secure Video Path lhg-1
Linaro
 
Lcu14 107- op-tee on ar mv8
Linaro
 
LCU14 302- How to port OP-TEE to another platform
Linaro
 
TEE - kernel support is now upstream. What this means for open source security
Linaro
 
LCA14: LCA14-502: The way to a generic TrustZone® solution
Linaro
 

What's hot (20)

PDF
HKG18-113- Secure Data Path work with i.MX8M
Linaro
 
PDF
LCU14-103: How to create and run Trusted Applications on OP-TEE
Linaro
 
PDF
SFO15-503: Secure storage in OP-TEE
Linaro
 
PDF
HKG15-311: OP-TEE for Beginners and Porting Review
Linaro
 
PDF
HKG18-402 - Build secure key management services in OP-TEE
Linaro
 
PDF
Embedded Android : System Development - Part IV
Emertxe Information Technologies Pvt Ltd
 
PDF
Lcu14 306 - OP-TEE Future Enhancements
Linaro
 
PDF
Embedded Linux Kernel - Build your custom kernel
Emertxe Information Technologies Pvt Ltd
 
PDF
Embedded Android : System Development - Part II (Linux device drivers)
Emertxe Information Technologies Pvt Ltd
 
PDF
U-Boot - An universal bootloader
Emertxe Information Technologies Pvt Ltd
 
PDF
Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...
Linaro
 
PDF
LAS16-111: Easing Access to ARM TrustZone – OP-TEE and Raspberry Pi 3
Linaro
 
PDF
U boot-boot-flow
BabuSubashChandar Chandra Mohan
 
ODP
Q4.11: Porting Android to new Platforms
Linaro
 
PDF
SFO15-200: Linux kernel generic TEE driver
Linaro
 
PDF
LCA14: LCA14-418: Testing a secure framework
Linaro
 
PDF
BUD17-416: Benchmark and profiling in OP-TEE
Linaro
 
PDF
SFO15-205: OP-TEE Content Decryption with Microsoft PlayReady on ARM
Linaro
 
PDF
Secure storage updates - SFO17-309
Linaro
 
PDF
LAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
Linaro
 
HKG18-113- Secure Data Path work with i.MX8M
Linaro
 
LCU14-103: How to create and run Trusted Applications on OP-TEE
Linaro
 
SFO15-503: Secure storage in OP-TEE
Linaro
 
HKG15-311: OP-TEE for Beginners and Porting Review
Linaro
 
HKG18-402 - Build secure key management services in OP-TEE
Linaro
 
Embedded Android : System Development - Part IV
Emertxe Information Technologies Pvt Ltd
 
Lcu14 306 - OP-TEE Future Enhancements
Linaro
 
Embedded Linux Kernel - Build your custom kernel
Emertxe Information Technologies Pvt Ltd
 
Embedded Android : System Development - Part II (Linux device drivers)
Emertxe Information Technologies Pvt Ltd
 
U-Boot - An universal bootloader
Emertxe Information Technologies Pvt Ltd
 
Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...
Linaro
 
LAS16-111: Easing Access to ARM TrustZone – OP-TEE and Raspberry Pi 3
Linaro
 
Q4.11: Porting Android to new Platforms
Linaro
 
SFO15-200: Linux kernel generic TEE driver
Linaro
 
LCA14: LCA14-418: Testing a secure framework
Linaro
 
BUD17-416: Benchmark and profiling in OP-TEE
Linaro
 
SFO15-205: OP-TEE Content Decryption with Microsoft PlayReady on ARM
Linaro
 
Secure storage updates - SFO17-309
Linaro
 
LAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
Linaro
 
Ad

Viewers also liked (19)

PDF
LAS16-504: Secure Storage updates in OP-TEE
Linaro
 
PDF
[Nemus]All About Chromecast
Nemus
 
PDF
Q4.11: Using GCC Auto-Vectorizer
Linaro
 
PDF
Q4.11: NEON Intrinsics
Linaro
 
PDF
Moving NEON to 64 bits
Chiou-Nan Chen
 
PDF
64-bit Android
Chiou-Nan Chen
 
PPTX
GCC for ARMv8 Aarch64
Yi-Hsiu Hsu
 
PDF
Software, Over the Air (SOTA) for Automotive Grade Linux (AGL)
Leon Anavi
 
PPTX
Introduction to armv8 aarch64
Yi-Hsiu Hsu
 
PDF
LAS16-407: Internet of Tiny Linux (IoTL): the sequel.
Linaro
 
PDF
LAS16-TR04: Using tracing to tune and optimize EAS (English)
Linaro
 
PDF
LAS16-306: Exploring the Open Trusted Protocol
Linaro
 
PPTX
Arm v8 instruction overview android 64 bit briefing
Merck Hung
 
PDF
LAS16-307: Benchmarking Schedutil in Android
Linaro
 
PDF
HKG15-409: ARM Hibernation enablement on SoCs - a case study
Linaro
 
PDF
BUD17-DF15 - Optimized Android N MR1 + 4.9 Kernel
Linaro
 
PDF
XPDS16: Porting Xen on ARM to a new SOC - Julien Grall, ARM
The Linux Foundation
 
PDF
LAS16-403: GDB Linux Kernel Awareness
Linaro
 
PDF
LAS16-500: The Rise and Fall of Assembler and the VGIC from Hell
Linaro
 
LAS16-504: Secure Storage updates in OP-TEE
Linaro
 
[Nemus]All About Chromecast
Nemus
 
Q4.11: Using GCC Auto-Vectorizer
Linaro
 
Q4.11: NEON Intrinsics
Linaro
 
Moving NEON to 64 bits
Chiou-Nan Chen
 
64-bit Android
Chiou-Nan Chen
 
GCC for ARMv8 Aarch64
Yi-Hsiu Hsu
 
Software, Over the Air (SOTA) for Automotive Grade Linux (AGL)
Leon Anavi
 
Introduction to armv8 aarch64
Yi-Hsiu Hsu
 
LAS16-407: Internet of Tiny Linux (IoTL): the sequel.
Linaro
 
LAS16-TR04: Using tracing to tune and optimize EAS (English)
Linaro
 
LAS16-306: Exploring the Open Trusted Protocol
Linaro
 
Arm v8 instruction overview android 64 bit briefing
Merck Hung
 
LAS16-307: Benchmarking Schedutil in Android
Linaro
 
HKG15-409: ARM Hibernation enablement on SoCs - a case study
Linaro
 
BUD17-DF15 - Optimized Android N MR1 + 4.9 Kernel
Linaro
 
XPDS16: Porting Xen on ARM to a new SOC - Julien Grall, ARM
The Linux Foundation
 
LAS16-403: GDB Linux Kernel Awareness
Linaro
 
LAS16-500: The Rise and Fall of Assembler and the VGIC from Hell
Linaro
 
Ad

More from Linaro (20)

PDF
Deep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Linaro
 
PDF
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
Linaro
 
PDF
Huawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
Linaro
 
PDF
Bud17 113: distribution ci using qemu and open qa
Linaro
 
PDF
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
Linaro
 
PDF
HPC network stack on ARM - Linaro HPC Workshop 2018
Linaro
 
PDF
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
Linaro
 
PDF
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Linaro
 
PDF
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Linaro
 
PDF
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Linaro
 
PDF
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
Linaro
 
PDF
HKG18-100K1 - George Grey: Opening Keynote
Linaro
 
PDF
HKG18-318 - OpenAMP Workshop
Linaro
 
PDF
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
Linaro
 
PDF
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
Linaro
 
PDF
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
Linaro
 
PDF
HKG18-TR08 - Upstreaming SVE in QEMU
Linaro
 
PPTX
HKG18-120 - Devicetree Schema Documentation and Validation
Linaro
 
PPTX
HKG18-223 - Trusted FirmwareM: Trusted boot
Linaro
 
PDF
HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...
Linaro
 
Deep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Linaro
 
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
Linaro
 
Huawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
Linaro
 
Bud17 113: distribution ci using qemu and open qa
Linaro
 
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
Linaro
 
HPC network stack on ARM - Linaro HPC Workshop 2018
Linaro
 
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
Linaro
 
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Linaro
 
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...
Linaro
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
Linaro
 
HKG18-100K1 - George Grey: Opening Keynote
Linaro
 
HKG18-318 - OpenAMP Workshop
Linaro
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
Linaro
 
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
Linaro
 
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
Linaro
 
HKG18-TR08 - Upstreaming SVE in QEMU
Linaro
 
HKG18-120 - Devicetree Schema Documentation and Validation
Linaro
 
HKG18-223 - Trusted FirmwareM: Trusted boot
Linaro
 
HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...
Linaro
 

Recently uploaded (20)

PDF
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
 
PDF
Software Development Methodologies in 2025
KodekX
 
PDF
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
PPTX
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
PDF
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
PDF
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
PPTX
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
PDF
Orbitly Pitch Deck|A Mission-Driven Platform for Side Project Collaboration (...
zz41354899
 
PDF
The Future of Artificial Intelligence (AI)
Mukul
 
PDF
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
PDF
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
PDF
Get More from Fiori Automation - What’s New, What Works, and What’s Next.pdf
Precisely
 
PDF
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
PDF
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
PDF
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
PDF
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
PDF
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Safe Software
 
PDF
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
PDF
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
PDF
AI-Cloud-Business-Management-Platforms-The-Key-to-Efficiency-Growth.pdf
Artjoker Software Development Company
 
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
 
Software Development Methodologies in 2025
KodekX
 
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
Orbitly Pitch Deck|A Mission-Driven Platform for Side Project Collaboration (...
zz41354899
 
The Future of Artificial Intelligence (AI)
Mukul
 
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
Get More from Fiori Automation - What’s New, What Works, and What’s Next.pdf
Precisely
 
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Safe Software
 
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
AI-Cloud-Business-Management-Platforms-The-Key-to-Efficiency-Growth.pdf
Artjoker Software Development Company
 

LAS16-406: Android Widevine on OP-TEE