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
HKG18-203 - Overview of Linaro DRM
PDF
SFO15-503: Secure storage in OP-TEE
PDF
Lcu14 107- op-tee on ar mv8
PDF
BKK16-110 A Gentle Introduction to Trusted Execution and OP-TEE
PDF
Secure storage updates - SFO17-309
PDF
Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...
PDF
HKG15-311: OP-TEE for Beginners and Porting Review
PDF
SFO15-200: Linux kernel generic TEE driver
HKG18-203 - Overview of Linaro DRM
SFO15-503: Secure storage in OP-TEE
Lcu14 107- op-tee on ar mv8
BKK16-110 A Gentle Introduction to Trusted Execution and OP-TEE
Secure storage updates - SFO17-309
Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...
HKG15-311: OP-TEE for Beginners and Porting Review
SFO15-200: Linux kernel generic TEE driver

What's hot (20)

PDF
BKK16-201 Play Ready OPTEE Integration with Secure Video Path lhg-1
PDF
LCA14: LCA14-502: The way to a generic TrustZone® solution
PDF
Lcu14 306 - OP-TEE Future Enhancements
PDF
HKG18-113- Secure Data Path work with i.MX8M
PDF
LCU14 500 ARM Trusted Firmware
PDF
HKG18-402 - Build secure key management services in OP-TEE
PDF
XPDDS19: [ARM] OP-TEE Mediator in Xen - Volodymyr Babchuk, EPAM Systems
PDF
Trusted firmware deep_dive_v1.0_
PDF
OpenWrt From Top to Bottom
PPT
U Boot or Universal Bootloader
PDF
LAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
PDF
BUD17-400: Secure Data Path with OPTEE
ODP
Embedded Android : System Development - Part III
PDF
LCU13: An Introduction to ARM Trusted Firmware
PDF
PDF
LAS16 111 - Raspberry pi3, op-tee and jtag debugging
PDF
A Journey to Boot Linux on Raspberry Pi
PDF
LCU14-103: How to create and run Trusted Applications on OP-TEE
PDF
Linux Internals - Interview essentials 4.0
BKK16-201 Play Ready OPTEE Integration with Secure Video Path lhg-1
LCA14: LCA14-502: The way to a generic TrustZone® solution
Lcu14 306 - OP-TEE Future Enhancements
HKG18-113- Secure Data Path work with i.MX8M
LCU14 500 ARM Trusted Firmware
HKG18-402 - Build secure key management services in OP-TEE
XPDDS19: [ARM] OP-TEE Mediator in Xen - Volodymyr Babchuk, EPAM Systems
Trusted firmware deep_dive_v1.0_
OpenWrt From Top to Bottom
U Boot or Universal Bootloader
LAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
BUD17-400: Secure Data Path with OPTEE
Embedded Android : System Development - Part III
LCU13: An Introduction to ARM Trusted Firmware
LAS16 111 - Raspberry pi3, op-tee and jtag debugging
A Journey to Boot Linux on Raspberry Pi
LCU14-103: How to create and run Trusted Applications on OP-TEE
Linux Internals - Interview essentials 4.0
Ad

Viewers also liked (20)

PDF
LAS16-504: Secure Storage updates in OP-TEE
PDF
LAS16-111: Easing Access to ARM TrustZone – OP-TEE and Raspberry Pi 3
ODP
Introduction to Optee (26 may 2016)
PDF
[Nemus]All About Chromecast
PDF
Q4.11: Using GCC Auto-Vectorizer
PDF
Q4.11: NEON Intrinsics
PDF
Moving NEON to 64 bits
PDF
64-bit Android
PPTX
GCC for ARMv8 Aarch64
PDF
Software, Over the Air (SOTA) for Automotive Grade Linux (AGL)
PPTX
Introduction to armv8 aarch64
PDF
LAS16-407: Internet of Tiny Linux (IoTL): the sequel.
PDF
LAS16-TR04: Using tracing to tune and optimize EAS (English)
PDF
LAS16-306: Exploring the Open Trusted Protocol
PPTX
Arm v8 instruction overview android 64 bit briefing
PDF
LAS16-307: Benchmarking Schedutil in Android
PDF
HKG15-409: ARM Hibernation enablement on SoCs - a case study
PDF
BUD17-DF15 - Optimized Android N MR1 + 4.9 Kernel
PDF
XPDS16: Porting Xen on ARM to a new SOC - Julien Grall, ARM
PDF
LAS16-403: GDB Linux Kernel Awareness
LAS16-504: Secure Storage updates in OP-TEE
LAS16-111: Easing Access to ARM TrustZone – OP-TEE and Raspberry Pi 3
Introduction to Optee (26 may 2016)
[Nemus]All About Chromecast
Q4.11: Using GCC Auto-Vectorizer
Q4.11: NEON Intrinsics
Moving NEON to 64 bits
64-bit Android
GCC for ARMv8 Aarch64
Software, Over the Air (SOTA) for Automotive Grade Linux (AGL)
Introduction to armv8 aarch64
LAS16-407: Internet of Tiny Linux (IoTL): the sequel.
LAS16-TR04: Using tracing to tune and optimize EAS (English)
LAS16-306: Exploring the Open Trusted Protocol
Arm v8 instruction overview android 64 bit briefing
LAS16-307: Benchmarking Schedutil in Android
HKG15-409: ARM Hibernation enablement on SoCs - a case study
BUD17-DF15 - Optimized Android N MR1 + 4.9 Kernel
XPDS16: Porting Xen on ARM to a new SOC - Julien Grall, ARM
LAS16-403: GDB Linux Kernel Awareness
Ad

More from Linaro (20)

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

Recently uploaded (20)

PPTX
Chapter 5: Probability Theory and Statistics
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PPTX
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
A novel scalable deep ensemble learning framework for big data classification...
PPTX
Final SEM Unit 1 for mit wpu at pune .pptx
PDF
TrustArc Webinar - Click, Consent, Trust: Winning the Privacy Game
PDF
August Patch Tuesday
PDF
DP Operators-handbook-extract for the Mautical Institute
PDF
Getting Started with Data Integration: FME Form 101
PDF
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
PPT
What is a Computer? Input Devices /output devices
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
PPTX
OMC Textile Division Presentation 2021.pptx
PDF
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
PDF
WOOl fibre morphology and structure.pdf for textiles
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PPTX
1. Introduction to Computer Programming.pptx
PDF
A comparative study of natural language inference in Swahili using monolingua...
Chapter 5: Probability Theory and Statistics
NewMind AI Weekly Chronicles - August'25-Week II
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
Group 1 Presentation -Planning and Decision Making .pptx
A novel scalable deep ensemble learning framework for big data classification...
Final SEM Unit 1 for mit wpu at pune .pptx
TrustArc Webinar - Click, Consent, Trust: Winning the Privacy Game
August Patch Tuesday
DP Operators-handbook-extract for the Mautical Institute
Getting Started with Data Integration: FME Form 101
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
What is a Computer? Input Devices /output devices
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
OMC Textile Division Presentation 2021.pptx
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
WOOl fibre morphology and structure.pdf for textiles
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
1. Introduction to Computer Programming.pptx
A comparative study of natural language inference in Swahili using monolingua...

LAS16-406: Android Widevine on OP-TEE