Baton: certificate agility for android's decentralized signing infrastructure

Android's trust-on-first-use application signing model associates developers with a fixed code signing certificate, but lacks a mechanism to enable transparent key updates or certificate renewals. The model allows application updates to be recognized as authorized by a party with access to the original signing key. However, changing keys or certificates requires that end users manually uninstall/reinstall apps, losing all non-backed up user data. In this paper, we show that with appropriate OS support, developers can securely and without user intervention transfer signing authority to a new signing key. Our proposal, Baton, modifies Android's app installation framework enabling key agility while preserving backwards compatibility with current apps and current Android releases. Baton is designed to work consistently with current UID sharing and signature permission requirements. We discuss technical details of the Android-specific implementation, as well as the applicability of the Baton protocol to other decentralized environments.

[1]  Apu Kapadia,et al.  Soundcomber: A Stealthy and Context-Aware Sound Trojan for Smartphones , 2011, NDSS.

[2]  Jeremy Clark,et al.  Baton: Key Agility for Android without a Centralized Certificate Infrastructure , 2013 .

[3]  Ahmad-Reza Sadeghi,et al.  Towards Taming Privilege-Escalation Attacks on Android , 2012, NDSS.

[4]  Elaine B. Barker,et al.  Recommendation for Key Management - Part 2: Best Practices for Key Management Organization , 2014 .

[5]  Steve Hanna,et al.  Android permissions demystified , 2011, CCS '11.

[6]  Helen J. Wang,et al.  Permission Re-Delegation: Attacks and Defenses , 2011, USENIX Security Symposium.

[7]  Eric Wustrow,et al.  Mining Your Ps and Qs: Detection of Widespread Weak Keys in Network Devices , 2012, USENIX Security Symposium.

[8]  Yajin Zhou,et al.  Dissecting Android Malware: Characterization and Evolution , 2012, 2012 IEEE Symposium on Security and Privacy.

[9]  Zhen Huang,et al.  PScout: analyzing the Android permission specification , 2012, CCS.

[10]  Jeremy Clark,et al.  Usability of anonymous web browsing: an examination of Tor interfaces and deployability , 2007, SOUPS '07.

[11]  Steve Hanna,et al.  A survey of mobile malware in the wild , 2011, SPSM '11.

[12]  Chris Palmer,et al.  Public Key Pinning Extension for HTTP , 2015, RFC.

[13]  Elaine B. Barker,et al.  SP 800-131A. Transitions: Recommendation for Transitioning the Use of Cryptographic Algorithms and Key Lengths , 2011 .

[14]  Jakob Nielsen,et al.  Usability inspection methods , 1994, CHI 95 Conference Companion.

[15]  Victor Shoup,et al.  Practical Threshold Signatures , 2000, EUROCRYPT.

[16]  Jeremy Clark,et al.  Understanding and improving app installation security mechanisms through empirical analysis of android , 2012, SPSM '12.

[17]  Paul C. van Oorschot,et al.  Self-Signed Executables: Restricting Replacement of Program Binaries by Malware , 2007, HotSec.

[18]  Nick Mathewson,et al.  Survivable key compromise in software update systems , 2010, CCS '10.

[19]  Swarat Chaudhuri,et al.  A Study of Android Application Security , 2011, USENIX Security Symposium.

[20]  Elaine B. Barker,et al.  Transitions: Recommendation for Transitioning the Use of Cryptographic Algorithms and Key Lengths , 2011 .

[21]  Adrian Perrig,et al.  Perspectives: Improving SSH-style Host Authentication with Multi-Path Probing , 2008, USENIX Annual Technical Conference.

[22]  Justin Cappos,et al.  A look in the mirror: attacks on package managers , 2008, CCS.

[23]  Cathleen Wharton,et al.  The cognitive walkthrough method: a practitioner's guide , 1994 .

[24]  Paul C. van Oorschot,et al.  Reducing Unauthorized Modification of Digital Objects , 2012, IEEE Transactions on Software Engineering.

[25]  William Enck,et al.  Meteor: Seeding a Security-Enhancing Infrastructure for Multi-market Application Ecosystems , 2012 .

[26]  J. Doug Tygar,et al.  Why Johnny Can't Encrypt: A Usability Evaluation of PGP 5.0 , 1999, USENIX Security Symposium.