1、翻译部分 外文原文 Understand android security the next generation of open operating systems wont be on desktops or mainframes but on the small mobile devices we carry every day. The openness of these new environments will lead to new applications and markets and will enable greater integration with existing
2、 online services. However, as the importance of the data and services our cell phones support increases, so too do the opportunities for vulnerability. Its essential that this next generation of platforms provide a comprehensive and usable security infrastructure.Developed by the Open Handset Allian
3、ce (visibly led by Google), Android is a widely anticipated open source operating system for mobile devices that provides a base operating system, an application middleware layer, a Java software development kit (SDK), and a collection of system applications. Although the Android SDK has been availa
4、ble since late 2007, the first publicly available Android-ready “G1” phone debuted in late October 2008. Since then, Androids growth has been phenomenal: TMobiles G1 manufacturer HTC estimates shipment volumes of more than 1 million phones by the end of 2008, and industry insiders expect public adop
5、tion to increase steeply in 2009. Many other cell phone providers have either promised or plan to support it in the near future. A large community of developers has organized around Android, and many new products and applications are now available for it. One of Androids chief selling points is that
6、 it lets developers seamlessly . extend online services to phones. The most visible example of this feature isunsurprisinglythe tight integration of Googles Gmail, Calendar, and Contacts Web applications with system utilities. Android users simply supply a username and password, and their phones aut
7、omatically synchronize with Google services. Other vendors are rapidly adapting their existing instant messaging, social networks, and gaming services to Android, and many enterprises are looking for ways to integrate their own internal operations (such as inventory management, purchasing, receiving
8、, and so forth) into it as well.Traditional desktop and server operating systems have struggled to securely integrate such personal and business applications and services on a single platform; although doing so on a mobile platform such as Android remains nontrivial, many researchers hope it provide
9、s a clean slate devoid of the complications that legacy software can cause. Android doesnt officialsupport applications eloped for other platforms: applications execute on top of a Java middleware layer running on an embedded Linux kernel, so developers wishing to port their application to Android m
10、ust use its custom user interface environment. Additionally, Android restricts application interaction to its special APIs by running each application as its own user identity. Although this controlled interaction has several beneficial security features, our experiences developing Android applicati
11、ons have revealed that designing secure forward. Android uses a simple permission label assignment model to restrict access to resources and other applications, but for reasons of necessity and convenience, its designers have added several potentially confusing refinements as the system has evolved.
12、 This article attempts to unmask the complexity of Android security and note some possible development pitfalls that occur when defining an applications security. We conclude by attempting to draw some lessons and identify opportunities for future enhancements that should aid in clarity and correctn
13、ess. Android Applications The Android application framework forces a structure on developers. It doesnt have a main() function or single entry point for executioninstead, developers must design applications in terms of components. Example Application. We developed a pair of applications to help desc
14、ribe how Android applications operate. Interested readers candownload the source code from our we bsitepttp:/siis.cse.psu.edu/android_sec_tutorial.html). Lets consider a location-sensitive social networking application for mobile phones in which users can discover their friends locations. We split t
15、he functionality into two applications: one for tracking friends and one for viewing them. As Figure 1 shows, the FriendTracker application consists of components specific to tracking friend locations (for example, via a Web service), storing geographic coordinates, and sharing those coordinates wit
16、h other applications. The user then uses the FriendViewer application to retrieve the stored geographic coordinates and view friends on a map. Both applications contain multiple components for performing their respective tasks; the components themselves are classified by their component types. An An
17、droid developer chooses from predefined component types depending on the components purpose (such as interfacing with a user or storing data).Component Types Android defines four component types: Activity components define an applications user interface. Typically, an application developer defines o
18、ne activity per “screen.” Activities start each other, possibly passing and returning values. Only one activity on the system has keyboard and accessing focus at a time; all others are suspended. Service components perform background processing. When an activity needs to perform some operation that
19、must continue after the user interface disappears (such as download a file or play music), it commonly starts a service specifically designed for that action. The developer can also use services as application-specific daemons, possibly starting on boot. Services often define an interface for Remote
20、 Procedure Call (RPC) that other system components can use to send commands and retrieve data, as well as register callbacks. Content providercomponents store and share data using a relational database interface. Each content provider has an associated “authority” describing the content it contains.
21、 Other components use the authority name as a handle to perform SQL queries (such as SELECT, INSERT, or DELETE) to read and write content. Although content providers typically store values in databaserecords, data retrieval is implementation-specificfor example, flees are also shared through content
22、 provider interfaces. Broadcast receiver components act as mailboxes for messages from other applications. Commonly, application code broadcasts messages to an implicit destination. Broadcast receivers thus sub-scribe to such destinations to receive the messages sent to it. Application code can also
23、 address a broadcast receiver explicitly by including the namespace assigned to its containing application. Figure 1 shows the FriendTrack-er and FriendViewer applications containing the different component types. The developer specifies components using a manifest file (also used to defend policy a
24、s described later). There are no restrictions on the number of components an application defines for each type, but as a convention, one component has the same name as the application. Frequently, this is an activity, as in the FriendViewer application. This activity usually indicates the primary ac
25、tivity that the system application launcher uses to start the user interface; however, the specific activity chosen on launch is marked by meta information in the manifest. In the FriendTracker application, for example, the FriendTrackerControl activity is marked as the main user interface entry poi
26、nt. In this case, we reserved the name “FriendTracker” for the service component performing the core application logic. The FriendTracker application contains each of the four component types. The FriendTracker service polls an external service to discover friends locations. In our example code, we
27、generate local FriendTracker application BootReceiver Broadcast receiver ActivityFriendTrackerFriendProvider Content provider Service FriendTracker control FriendViewer application Friend Receiver Broadcast receiver Activity FriendTracker Activity FriendViewer Figure 1. Example Android application. The FriendTracker and FriendViewer applications consist of multiple components of different types, each of which provides a different