在当今科技发达的世界,我们越来越多的生活正在走向数字化,所有这些信息都可以通过移动设备随时随地访问。有成千上万的应用可供用户下载和使用。使用移动设备上的应用可以轻松访问如此多的信息,最大的挑战是保护用户的隐私信息并尊重他们的隐私。
第一部安卓手机于 2009 年问世。从那以后,移动生态系统就不一样了。平台的开放性和限制少得多的应用模型在开发人员社区中引起了兴奋,也促进了创新和实验。但是正如每个硬币都有两面一样,开放也是如此。安卓平台惹恼了所谓的坏人的想象力。安卓为他们提供了一个完美的测试平台来尝试他们的想法。因此,不仅作为开发人员,而且作为消费者,了解安卓的安全模型以及如何明智地使用它来保护自己和消费者都非常重要。
安卓应用安全精要是从内核级到应用级对安卓安全的深度钻研,有实际动手的例子、插图和日常使用案例。这本书将向您展示如何保护您的安卓应用和数据。它将为您提供技巧和提示,在您开发应用时会派上用场。
您将了解安卓堆栈的整体安全架构。还详细讨论了使用权限保护组件、在清单文件中定义安全性、加密算法和安卓堆栈上的协议、安全存储、安全集中测试以及保护设备上的企业数据。您还将学习如何在将 NFC 和移动支付等新技术和用例集成到您的安卓应用中时提高安全性。
第 1 章安卓安全模型——大局观,从平台安全到应用安全,一路关注安卓栈的整体安全。本章将成为后续章节的基础。
第 2 章、应用构建模块,从安全角度介绍应用组件、权限、清单文件和应用签名。这些都是安卓应用的基本组件,了解这些组件对于构建我们的安全知识非常重要。
第三章、权限,讲述安卓平台中已有的权限,如何定义新的权限,如何用权限保护应用组件,并提供何时定义新权限的分析。
第 4 章、定义应用的策略文件,深入到清单文件的机制,即应用的策略文件。我们谈论收紧政策文件的技巧和诀窍。
第 5 章、尊重你的用户,涵盖了正确处理用户数据的最佳实践。这一点很重要,因为开发者的声誉取决于用户评论和评级。开发者还应该小心谨慎地处理用户隐私信息,以免落入法律陷阱。
第 6 章你的工具–加密 API,讨论安卓平台提供的加密功能。其中包括对称加密、非对称加密、哈希、密码模式和密钥管理。
第 7 章、保护应用数据是关于静态和传输中应用数据的安全存储。我们讨论如何用应用沙箱保护私有数据,如何在设备、外部存储卡、驱动器和数据库上安全地存储数据。
第 8 章企业中的安卓讲述了安卓平台提供的设备安全工件,以及它们对应用开发者的意义。企业应用开发人员对本章特别感兴趣。
第 9 章、安全测试,重点设计和开发以安全为中心的测试用例。
第 10 章、展望未来,讨论了移动领域即将出现的用例及其对安卓的影响,尤其是从安全角度。
如果你设置了一个安卓环境,并且可以使用本书中讨论的概念和例子,这本书就更有价值了。关于如何设置环境和开始安卓开发的详细说明,请参考developer.android.com。如果您对内核开发感兴趣,请参考source.android.com。
在写这本书的时候,果冻豆(Android 4.2,API 等级 17)是最新发布的。我已经在这个平台上测试了我所有的代码片段。自 2009 年第一次发布纸杯蛋糕以来,谷歌一直在通过连续发布来不断增强安卓的安全性。例如,在 Android 2.2 (API 级别 8)中添加了远程擦除和设备管理 API,以使 Android 对商业社区更具吸引力。只要相关,我都引用了开始支持特定功能的版本。
对于任何对移动安全感兴趣的人来说,这本书都是一个极好的资源。开发人员、测试工程师、工程经理、产品经理和架构师在设计和编写他们的应用时,可以将这本书作为参考。高级管理人员和技术人员可能会利用这本书获得关于移动安全的更广阔的视角。一些安卓系统开发的先验知识是需要的,但不是必需的。
在这本书里,你会发现许多区分不同种类信息的文本风格。以下是这些风格的一些例子,以及对它们的含义的解释。
文本中的码字如下所示:PackageManager类处理安装和卸载应用的任务
代码块设置如下:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>当我们希望将您的注意力吸引到代码块的特定部分时,相关的行或项目以粗体显示:
意向意向=新意向(“我的-本地-广播”);
Intent.putExtra(“消息”,“你好,世界!”);
LocalBroadCastManager . GetInstance(此处)。发送广播(意图);
任何命令行输入或输出都编写如下:
dexdump –d –f –h data@app@com.example.example1-1.apk@classes .dex > dump新名词和重要词语以粗体显示。你在屏幕上看到的单词,例如在菜单或对话框中,出现在如下文本中:“点击下一步按钮,进入下一个屏幕”。
警告或重要提示会出现在这样的框中。
提示和技巧是这样出现的。
我们随时欢迎读者的反馈。让我们知道你对这本书的看法——你喜欢或可能不喜欢什么。读者反馈对我们开发您真正能从中获得最大收益的标题非常重要。
要给我们发送一般反馈,只需向<[feedback@packtpub.com](mailto:feedback@packtpub.com)>发送电子邮件,并通过您的消息主题提及书名。
如果你对某个主题有专业知识,并且对写作或投稿感兴趣,请参阅我们在www.packtpub.com/authors上的作者指南。
现在,您已经自豪地拥有了一本书,我们有许多东西可以帮助您从购买中获得最大收益。
尽管我们尽了最大努力来确保我们内容的准确性,但错误还是会发生。如果你在我们的某本书里发现了错误——可能是文本或代码中的错误——如果你能向我们报告,我们将不胜感激。通过这样做,你可以让其他读者免受挫折,并帮助我们改进这本书的后续版本。如果您发现任何勘误表,请访问http://www.packtpub.com/submit-errata,选择您的书籍,点击勘误表 提交 表格链接,并输入您的勘误表详情。一旦您的勘误表得到验证,您的提交将被接受,勘误表将上传到我们的网站上,或添加到该标题的勘误表部分下的任何现有勘误表列表中。通过从http://www.packtpub.com/support中选择您的标题,可以查看任何现有的勘误表。
互联网上版权材质的盗版是所有媒体的一个持续问题。在 Packt,我们非常重视版权和许可证的保护。如果您在互联网上遇到任何形式的我们作品的非法拷贝,请立即向我们提供位置地址或网站名称,以便我们寻求补救。
请通过<[copyright@packtpub.com](mailto:copyright@packtpub.com)>联系我们,获取疑似盗版资料的链接。
我们感谢您在保护我们作者方面的帮助,以及我们为您带来有价值内容的能力。
如果您对本书的任何方面有问题,可以在<[questions@packtpub.com](mailto:questions@packtpub.com)>联系我们,我们将尽最大努力解决。