SlideShare a Scribd company logo
6
Most read
10
Most read
13
Most read
ANDROID RECOVERABLE
KEYSTORE
Nikolay Elenkov
Dec 2019
AGENDA
• ANDROID KEYSTORE
• RECOVERABLE KEYSTORE
• IMPLEMENTATION
• WHO USES IT?
• SUMMARY
1
ANDROID KEYSTORE QUICK INTRO
• PROTECTS KEYS WITH HARDWARE
• IMPLEMENTED USING TEE OR HARDWARE (TITAN CHIP ON PIXELS)
• KEYS ARE NOT EXPORTABLE
• INTEGRATES WITH LOCK SCREEN AND BIOMETRICS
• KEYS MIGHT REQUIRE AUTHENTICATION TO USE
• PROVIDES KEY ATTESTATION
• VERIFIABLE INFO ABOUT DEVICE THAT GENERATED KEY
2
KEYSTORE IMPLEMENTATION
Source: https://source.android.com/security/authentication/
3
RECOVERABLE KEYSTORE?
• RECOVERABLE == EXPORTABLE?
• IS THIS SAFE?
• WHY IS IT NEEDED?
•
4
BRIEF SPECS
• ONLY SYMMETRIC KEYS ARE SUPPORTED (AES)
• LOCAL KEYS ARE WRAPPED USING AES-GCM PLATFORM KEY
• KEYSTORE SNAPSHOTS ENCRYPTED WITH CLOUD PUBLIC KEY AND KEY BASED ON PIN
• AKA: ‘LOCK SCREEN KNOWLEDGE FACTOR’ (LSKF)
• ONLY SYSTEM APPS CAN GENERATE AND RESTORE RECOVERABLE KEYS
• REQUIRES RECOVER_KEYSTORE (SYSTEM|PRIVILEGED) PERMISSION
• KEYS ARE BACKED UP TO GOOGLE CLOUD KEY VAULT SERVICE (CKV)
• HTTPS://DEVELOPER.ANDROID.COM/ABOUT/VERSIONS/PIE/SECURITY/CKV-WHITEPAPER
5
RECOVERABLE KEY GENERATION
6
RECOVERABLE KEYSTORE INITIALIZATION
7
RECOVERABLE KEYSTORE SNAPSHOT
8
CRYPTO DETAILS -- SECURE BOX
• byte[] SecureBox.encrypt(theirPublicKey,sharedSecret, header,payload)
• byte[] SecureBox.decrypt(ourPrivateKey, sharedSecret, header, encryptedPayload)
• Key agreement: ECDH with NIST P-256/secp256r1
• Key derivation: HKDF
• Encryption: AES-GCM
byte[] randNonce = genRandomNonce();
byte[] keyingMaterial = concat(dhSecret, sharedSecret);
SecretKey encryptionKey = hkdfDeriveKey(keyingMaterial, HKDF_SALT, hkdfInfo);
byte[] ciphertext = aesGcmEncrypt(encryptionKey, randNonce, payload, header);
9
USERS OF RECOVERABLE KEYSTORE
• CURRENTLY ONLY GOOGLE PLAY SERVICE (GMS)
• HAS RECOVER_KEYSTORE PERMISSION
• CAN KICK OFF KEYSTORE SNAPSHOT AND RECOVERY
• GMS.AUTH.FOLSOM.START_RECOVERY
• ACTION.RECOVERABLE_KEYSTORE_SNAPSHOT
• PACKAGE COM.GOOGLE.ANDROID.GMS.AUTH.FOLSOM/*
• FOLSOMGCMTASKCHIMERASERVICE
• FOLSOMPUBLICKEYUPDATESERVICE
• FOLSOMMODULEINITINTENTOPERATION
• KEYSYNCINTENTOPERATION
• KEYRECOVERYINTENTOPERATION 10
SUMMARY
• ANDROID 9-10 HAVE RECOVERABLE KEYSTORE PROTECTED BY LOCKSCREEN PIN
• CAN BE MIGRATED TO NEW DEVICE
• LINKED TO GOOGLE ACCOUNT
• ONLY SYMMETRIC KEYS SUPPORTED ATM
• GOOGLE PLAY SERVICES ACTS AS A RECOVERY AGENT
• RECOVERABLE KEY ALLOWS SECURE RECOVERY OF ARBITRARY DATA
• FULL DEVICE BACKUP, ETC.
11
REFERENCES
• INSIDER ATTACK RESISTANCE IN THE ANDROID ECOSYSTEM, ENIGMA 2019
• HTTPS://SECURITY.GOOGLEBLOG.COM/2018/10/GOOGLE-AND-ANDROID-HAVE-YOUR-BACK-BY.HTML
• HTTPS://DEVELOPER.ANDROID.COM/GUIDE/TOPICS/DATA/BACKUP
• HTTPS://WWW.NCCGROUP.TRUST/US/OUR-RESEARCH/ANDROID-CLOUD-BACKUPRESTORE/
12

More Related Content

PPT
Cloud Testing: The Future of software Testing
PDF
DevSecOps Jenkins Pipeline -Security
PDF
Suricata ile siber tehdit avcılığı
PPTX
Testing Microservices
PPTX
Session: A Reference Architecture for Running Modern APIs with NGINX Unit and...
PPTX
NGINX: High Performance Load Balancing
PDF
A Study in Borderless Over Perimeter
PPTX
Docker Container Security
Cloud Testing: The Future of software Testing
DevSecOps Jenkins Pipeline -Security
Suricata ile siber tehdit avcılığı
Testing Microservices
Session: A Reference Architecture for Running Modern APIs with NGINX Unit and...
NGINX: High Performance Load Balancing
A Study in Borderless Over Perimeter
Docker Container Security

What's hot (20)

PDF
Practical DevSecOps - Arief Karfianto
PDF
DevSecOps in Baby Steps
PPTX
MTLS - Securing Microservice Architecture with Mutual TLS Authentication
PDF
Container Security
PDF
WaTZ: A Trusted WebAssembly Runtime Environment with Remote Attestation for T...
PPTX
REST Service Authetication with TLS & JWTs
PPTX
Kubernetes and container security
PPTX
DevSecOps
PPTX
How to Get Started with DevSecOps
PDF
Api observability
PPTX
DEVSECOPS.pptx
PDF
DevSecOps: Minimizing Risk, Improving Security
PDF
Shift Left Security - The What, Why and How
DOCX
GÜVENLİK SİSTEMLERİNİ ATLATMA
PPTX
Data Obfuscation in Splunk Enterprise
PDF
RSA SecurID Access
PDF
CNCF Online - Data Protection Guardrails using Open Policy Agent (OPA).pdf
PDF
Deep Dive into Kubernetes - Part 1
ODP
SELinux for Everyday Users
PPTX
OpenID Connect: An Overview
Practical DevSecOps - Arief Karfianto
DevSecOps in Baby Steps
MTLS - Securing Microservice Architecture with Mutual TLS Authentication
Container Security
WaTZ: A Trusted WebAssembly Runtime Environment with Remote Attestation for T...
REST Service Authetication with TLS & JWTs
Kubernetes and container security
DevSecOps
How to Get Started with DevSecOps
Api observability
DEVSECOPS.pptx
DevSecOps: Minimizing Risk, Improving Security
Shift Left Security - The What, Why and How
GÜVENLİK SİSTEMLERİNİ ATLATMA
Data Obfuscation in Splunk Enterprise
RSA SecurID Access
CNCF Online - Data Protection Guardrails using Open Policy Agent (OPA).pdf
Deep Dive into Kubernetes - Part 1
SELinux for Everyday Users
OpenID Connect: An Overview
Ad

Recently uploaded (20)

PDF
NewMind AI Monthly Chronicles - July 2025
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
cuic standard and advanced reporting.pdf
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Modernizing your data center with Dell and AMD
PDF
Machine learning based COVID-19 study performance prediction
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
KodekX | Application Modernization Development
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Empathic Computing: Creating Shared Understanding
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
NewMind AI Monthly Chronicles - July 2025
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Chapter 3 Spatial Domain Image Processing.pdf
cuic standard and advanced reporting.pdf
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Modernizing your data center with Dell and AMD
Machine learning based COVID-19 study performance prediction
Network Security Unit 5.pdf for BCA BBA.
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Understanding_Digital_Forensics_Presentation.pptx
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
KodekX | Application Modernization Development
Encapsulation_ Review paper, used for researhc scholars
Mobile App Security Testing_ A Comprehensive Guide.pdf
NewMind AI Weekly Chronicles - August'25 Week I
Empathic Computing: Creating Shared Understanding
Advanced methodologies resolving dimensionality complications for autism neur...
Digital-Transformation-Roadmap-for-Companies.pptx
Ad

Android Recoverable Keystore

  • 2. AGENDA • ANDROID KEYSTORE • RECOVERABLE KEYSTORE • IMPLEMENTATION • WHO USES IT? • SUMMARY 1
  • 3. ANDROID KEYSTORE QUICK INTRO • PROTECTS KEYS WITH HARDWARE • IMPLEMENTED USING TEE OR HARDWARE (TITAN CHIP ON PIXELS) • KEYS ARE NOT EXPORTABLE • INTEGRATES WITH LOCK SCREEN AND BIOMETRICS • KEYS MIGHT REQUIRE AUTHENTICATION TO USE • PROVIDES KEY ATTESTATION • VERIFIABLE INFO ABOUT DEVICE THAT GENERATED KEY 2
  • 5. RECOVERABLE KEYSTORE? • RECOVERABLE == EXPORTABLE? • IS THIS SAFE? • WHY IS IT NEEDED? • 4
  • 6. BRIEF SPECS • ONLY SYMMETRIC KEYS ARE SUPPORTED (AES) • LOCAL KEYS ARE WRAPPED USING AES-GCM PLATFORM KEY • KEYSTORE SNAPSHOTS ENCRYPTED WITH CLOUD PUBLIC KEY AND KEY BASED ON PIN • AKA: ‘LOCK SCREEN KNOWLEDGE FACTOR’ (LSKF) • ONLY SYSTEM APPS CAN GENERATE AND RESTORE RECOVERABLE KEYS • REQUIRES RECOVER_KEYSTORE (SYSTEM|PRIVILEGED) PERMISSION • KEYS ARE BACKED UP TO GOOGLE CLOUD KEY VAULT SERVICE (CKV) • HTTPS://DEVELOPER.ANDROID.COM/ABOUT/VERSIONS/PIE/SECURITY/CKV-WHITEPAPER 5
  • 10. CRYPTO DETAILS -- SECURE BOX • byte[] SecureBox.encrypt(theirPublicKey,sharedSecret, header,payload) • byte[] SecureBox.decrypt(ourPrivateKey, sharedSecret, header, encryptedPayload) • Key agreement: ECDH with NIST P-256/secp256r1 • Key derivation: HKDF • Encryption: AES-GCM byte[] randNonce = genRandomNonce(); byte[] keyingMaterial = concat(dhSecret, sharedSecret); SecretKey encryptionKey = hkdfDeriveKey(keyingMaterial, HKDF_SALT, hkdfInfo); byte[] ciphertext = aesGcmEncrypt(encryptionKey, randNonce, payload, header); 9
  • 11. USERS OF RECOVERABLE KEYSTORE • CURRENTLY ONLY GOOGLE PLAY SERVICE (GMS) • HAS RECOVER_KEYSTORE PERMISSION • CAN KICK OFF KEYSTORE SNAPSHOT AND RECOVERY • GMS.AUTH.FOLSOM.START_RECOVERY • ACTION.RECOVERABLE_KEYSTORE_SNAPSHOT • PACKAGE COM.GOOGLE.ANDROID.GMS.AUTH.FOLSOM/* • FOLSOMGCMTASKCHIMERASERVICE • FOLSOMPUBLICKEYUPDATESERVICE • FOLSOMMODULEINITINTENTOPERATION • KEYSYNCINTENTOPERATION • KEYRECOVERYINTENTOPERATION 10
  • 12. SUMMARY • ANDROID 9-10 HAVE RECOVERABLE KEYSTORE PROTECTED BY LOCKSCREEN PIN • CAN BE MIGRATED TO NEW DEVICE • LINKED TO GOOGLE ACCOUNT • ONLY SYMMETRIC KEYS SUPPORTED ATM • GOOGLE PLAY SERVICES ACTS AS A RECOVERY AGENT • RECOVERABLE KEY ALLOWS SECURE RECOVERY OF ARBITRARY DATA • FULL DEVICE BACKUP, ETC. 11
  • 13. REFERENCES • INSIDER ATTACK RESISTANCE IN THE ANDROID ECOSYSTEM, ENIGMA 2019 • HTTPS://SECURITY.GOOGLEBLOG.COM/2018/10/GOOGLE-AND-ANDROID-HAVE-YOUR-BACK-BY.HTML • HTTPS://DEVELOPER.ANDROID.COM/GUIDE/TOPICS/DATA/BACKUP • HTTPS://WWW.NCCGROUP.TRUST/US/OUR-RESEARCH/ANDROID-CLOUD-BACKUPRESTORE/ 12