Home | History | Annotate | Download | only in enhancements
      1 <html devsite>
      2   <head>
      3     <title>Security Enhancements in Android 4.2</title>
      4     <meta name="project_path" value="/_project.yaml" />
      5     <meta name="book_path" value="/_book.yaml" />
      6   </head>
      7   <body>
      8   <!--
      9       Copyright 2017 The Android Open Source Project
     10 
     11       Licensed under the Apache License, Version 2.0 (the "License");
     12       you may not use this file except in compliance with the License.
     13       You may obtain a copy of the License at
     14 
     15           http://www.apache.org/licenses/LICENSE-2.0
     16 
     17       Unless required by applicable law or agreed to in writing, software
     18       distributed under the License is distributed on an "AS IS" BASIS,
     19       WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     20       See the License for the specific language governing permissions and
     21       limitations under the License.
     22   -->
     23 
     24 
     25 
     26 <p>
     27 Android provides a multi-layered security model described in the <a href="/security/index.html">Android
     28 Security Overview</a>. Each update to Android includes dozens of
     29 security enhancements to protect users.  The following are some of the security
     30 enhancements introduced in Android 4.2:</p>
     31 
     32 <ul>
     33 <li><strong>Application verification</strong> - Users can choose to enable Verify Apps" and
     34 have applications screened by an application verifier, prior to installation.
     35 App verification can alert the user if they try to install an app that might be
     36 harmful; if an application is especially bad, it can block installation.</li>
     37 <li><strong>More control of premium SMS</strong> - Android will provide a notification if an
     38 application attempts to send SMS to a short code that uses premium services
     39 which might cause additional charges.  The user can choose whether to allow the
     40 application to send the message or block it.</li>
     41 
     42 <li><strong>Always-on VPN</strong> - VPN can be configured so that applications will not have
     43 access to the network until a VPN connection is established.  This prevents
     44 applications from sending data across other networks.</li>
     45 
     46 <li><strong>Certificate Pinning</strong> - The Android core libraries now support
     47 <a href="https://developer.android.com/reference/android/net/http/X509TrustManagerExtensions.html">certificate pinning</a>.
     48 Pinned domains will receive a certificate validation
     49 failure if the certificate does not chain to a set of expected certificates.
     50 This protects against possible compromise of Certificate Authorities.</li>
     51 
     52 <li><strong>Improved display of Android permissions</strong> - Permissions have been organized
     53 into groups that are more easily understood by users. During review of the
     54 permissions, the user can click on the permission to see more detailed
     55 information about the permission.</li>
     56 
     57 <li><strong>installd hardening</strong> - The <code>installd</code> daemon does not run as the root user,
     58 reducing potential attack surface for root privilege escalation.</li>
     59 
     60 <li><strong>init script hardening</strong> - init scripts now apply <code>O_NOFOLLOW</code> semantics to
     61 prevent symlink related attacks.</li>
     62 
     63 <li><strong>FORTIFY_SOURCE</strong> -  Android now implements <code>FORTIFY_SOURCE</code>. This is used by
     64 system libraries and applications to prevent memory corruption.</li>
     65 
     66 <li><strong>ContentProvider default configuration</strong> -  Applications which target API
     67 level 17 will have "export" set to "false" by default for each
     68 <a href="https://developer.android.com/reference/android/content/ContentProvider.html">Content 
     69 Provider</a>, reducing default attack surface for applications.</li>
     70 
     71 <li><strong>Cryptography</strong> - Modified the default implementations of SecureRandom and
     72 Cipher.RSA to use OpenSSL.  Added SSL Socket support for TLSv1.1 and TLSv1.2
     73 using OpenSSL 1.0.1</li>
     74 
     75 <li><strong>Security Fixes</strong> - Upgraded open source libraries with security fixes include
     76 WebKit, libpng, OpenSSL, and LibXML. Android 4.2 also includes fixes for
     77 Android-specific vulnerabilities. Information about these vulnerabilities has
     78 been provided to Open Handset Alliance members and fixes are available in
     79 Android Open Source Project.  To improve security, some devices with earlier
     80 versions of Android may also include these fixes.</li>
     81 
     82 </ul>
     83 
     84   </body>
     85 </html>
     86