Pulser_G2 · Nov 2, 2013 at 02:30 pm

Android 4.4 KitKat Security Enhancements

In addition to the many user-facing improvements in the latest incarnation of Android announced yesterday, there are a number of interesting security improvements, which seem to indicate that Google have not totally neglected platform security in this new release. This article will run through what’s new, and what it means for you.

SELinux in Enforce Mode

In Android 4.4, SELinux has moved from running in permissive mode (which simply logs failures), into enforcing mode. SELinux, which was introduced in Android 4.3, is a mandatory access control system built into the Linux kernel, in order to help enforce the existing access control rights (i.e. permissions), and to attempt to prevent privilege escalation attacks (i.e. an app trying to gain root access on your device).

Support for Elliptic Curve Cryptography (ECDSA) Signing keys in AndroidKeyStore

The integrated Android keystore provider now includes support for Eliptic Curve signing keys. While Eliptic Curve Cryptography may have received some (unwarranted) bad publicity lately, ECC is a viable form of public key cryptography that can provide a good alternative to RSA and other such algorithms. While asymmetric cryptography will not withstand quantum computing developments, it is good to see that Android 4.4 is introducing more options for developers. For long-term data storage, symmetric encryption remains the best method.

SSL CA Certificate Warnings

Many corporate IT environments include SSL monitoring software, which adds a Certificate Authority (CA) to your computer and/or browser, to permit the corporate web filtering software to carry out a “man in the middle” attack on your HTTPS sessions for security and monitoring purposes. This has been possible with Android by adding an additional CA key to the device (which permits your company’s gateway server to “pretend” to be any website it chooses). Android 4.4 will warn users if their device has had such a CA certificate added, such that they are aware of the possibility of this happening.

Automated Buffer Overflow Detection

Android 4.4 now compiles with FORTIFY_SOURCE running at level 2, and ensures all C code is compiled with this protection. Code compiled with clang is also covered by this. FORTIFY_SOURCE is a security feature of the compiler, which attempts to identify some buffer overflow opportunities (which can be exploited by malicious software or users to gain arbitrary code execution on a device). While FORTIFY_SOURCE doesn’t eliminate all possibilities of buffer overflows, it certainly is better used than unused, to avoid any obvious oversights when allocating buffers.

Google Certificate Pinning

Expanding on the support for certificate pinning in earlier versions of Jellybean, Android 4.4 adds protection against certificate substitution for Google certificates. Certificate Pinning is the act of permitting only certain whitelisted SSL certificates to be used against a certain domain. This protects you from your provider substituting (for example) a certificate provided to it under an order by the government of your country. Without certificate pinning, your device would accept this valid SSL certificate (as SSL allows any trusted CA to issue any certificate). With certificate pinning, only the hard-coded valid certificate will be accepted by your phone, protecting you from a man-in-the-middle attack.

It certainly appears that Google have not been resting on their laurels with Android security. This is in addition to the inclusion of dm-verity, which could possibly have serious consequences for people who like to root and modify their devices with locked bootloaders (i.e. which enforce kernel signatures).

Want something on the XDA Portal? Send us a tip!


Pulser_G2 is an editor on XDA-Developers, the largest community for Android users. Developer Admin at xda-developers, interested in everything in mobile and security. A developer and engineer, who would re-write everything in C or Assembler if the time was there. View Pulser_G2's posts and articles here.
Emil Kako · Apr 20, 2015 at 05:39 pm · 4 comments

Do You Use Recents as a Task Switcher?

Google introduced a revamped Recents interface with Lollipop in the hopes of making it easier for users to jump between tasks. But is Recents the best method of switching tasks? Let us know if you actually use the Recents button as a task switcher and why.

Mario Tomás Serrafero · Apr 20, 2015 at 03:16 pm · 2 comments

Dual Boot on Android: A Power User’s Holy Grail?

Many of you probably dual-boot your personal computers, be it to run Linux alongside Windows or because you have a Mac and hate OS X. On a computer platform, the process can be a life-saver for a variety of reasons, particularly software compatibility/integration. It’s not rare to see computer programmers with Linux partitions or Mac gamers that use bootcamp for their videogames. On computers, the process has gotten relatively simpler over time, with Microsoft and Apple typically supporting the notion....

GermainZ · Apr 20, 2015 at 03:02 pm · 2 comments

Chrome 42: Narrowing the Gap Between Web & Native Apps

Websites have typically been less desirable than native apps, due to being unoptimized for mobile screens, responsiveness issues or simply not being able to provide all the features you might desire. New web standards aim to change that, and Chrome 42 will bring several of them to you. Push Notifications You'll be able to receive notifications from supported websites even after you've closed the page. Naturally, you'll have to grant permission to websites to do so: have no worries about...

Share This