移动互联网应用编程:第8章 安全和用户管理_第1页
移动互联网应用编程:第8章 安全和用户管理_第2页
移动互联网应用编程:第8章 安全和用户管理_第3页
移动互联网应用编程:第8章 安全和用户管理_第4页
移动互联网应用编程:第8章 安全和用户管理_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

8.1Android安全框架8.2应用程序签名8.3Android权限模型8.4Oauth2认证协议8安全和用户管理8.1Android安全架构安全OS(LinuxKernel)应用程序沙箱Android权限机制安全的进程间通信(IPC)应用程序签名8.2Linux安全机制基于用户,组的访问控制每个Linux进程都会分配两组ID:实际用户ID,组ID:(RUID,RGID)创建该进程的用户ID有效用户ID,组ID:(EUID,EGID)用于访问资源时的权限检查文件权限drwxr-xr-x2rootroot409611月2808:32bin8.3Android的权限模型每个程序在安装时都会分配唯一的用户ID,用以保护数据不被其它应用获取。Android根据不同的用户和组,分配不同权限,比如访问SD卡,访问网络等等应用程序对应的进程使用分配的用户ID作为进程的RUID,EUID运行。具有相同UID的应用程序可以运行在同一个进程内。应用程序沙箱(sandbox)沙箱:受限的程序运行环境每个Android程序都在一个沙箱中运行程序只能访问所属沙箱内的资源,而不能直接访问其他沙箱内的资源对操作系统资源的访问控制内核之上所有程序都处于AndroidSandbox中不同ID的APP运行在相互独立的沙箱中具有相同UID的APP运行在同一沙箱内Android定义的用户和组#defineAID_ROOT0/*traditionalunixrootuser*/#defineAID_SYSTEM1000/*systemserver*/#defineAID_RADIO1001/*telephonysubsystem,RIL*/#defineAID_BLUETOOTH1002/*bluetoothsubsystem*/#defineAID_GRAPHICS1003/*graphicsdevices*/#defineAID_INPUT1004/*inputdevices*/#defineAID_AUDIO1005/*audiodevices*/#defineAID_CAMERA1006/*cameradevices*/#defineAID_LOG1007/*logdevices*/#defineAID_COMPASS1008/*compassdevice*/#defineAID_MOUNT1009/*mountdsocket*/#defineAID_WIFI1010/*wifisubsystem*/#defineAID_ADB1011/*androiddebugbridge(adbd)举例:查看当前SHELL登陆用户shell@mako:/$ididuid=2000(shell)gid=2000(shell)groups=1003(graphics),1004(input),1007(log),1009(mount),1011(adb),1015(sdcard_rw),1028(sdcard_r),3001(net_bt_admin),3002(net_bt),3003(inet),3006(net_bw_stats)context=u:r:shell:s0ls-al/mnt/drwxr-xr-xrootsystem2014-05-2900:11asecdrwxr-xr-xrootsystem2014-05-2900:11obbd---rwxr-xsystemsdcard_rw1970-01-0100:00sdcar使用共享UID在多个APK间实现数据互访多个APK可以在AndroidMenifiest.xml中指定相同的SharedUserid来实现应用程序间的互访在配置相同UID的条件下,多个APK可以共享同一进程APK必须拥有相同的证书或签名举例:以下两个APK指定了相同的sharedUserIdAPK1:<manifestxmlns:android="/apk/res/android"package="com.example.note"

android:sharedUserId="com.example">APK2:<manifestxmlns:android="/apk/res/android"package="com.example.reader"

android:sharedUserId="com.example">8.4Android权限模型Android应用程序在访问系统敏感信息时需要向系统申请权限,并得到用户批准后才可以访问这些资源未授权的访问将触发运行时安全异常常见的敏感信息类型CamerafunctionsLocationdata(GPS)BluetoothfunctionsTelephonyfunctionsSMS/MMSfunctionsNetwork/dataconnections这些API只能由OS来访问,应用程序如果要访问这些接口,必须通过Menifest文件申请授权权限:<uses-permission/><?xmlversion="1.0"encoding="utf-8"?><manifestxmlns:android="/apk/res/android"

package="com.example.note"

android:versionCode="1"

android:versionName="1.0"><uses-permissionandroid:name="android.permission.INTERNET"/>

<uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"/>

<uses-permissionandroid:name="android.permission.WRITE_APN_SETTINGS"/>

<uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/>权限的底层映射Android权限在框架层映射到相应的组ID,当用户授权后,应用程序进程获取对应的GID,从而获取对应组的权限例如一个READ_EXTERNAL_STORAGE的权限会对应到一个sdcard_r组ID<permissionname="android.permission.READ_EXTERNAL_STORAGE"><groupgid="sdcard_r"/></permission>自定义权限:<permission/>在Menifext文件中使用<permission/>声明自定义权限,外部应用必须使用<uses-permission/>申请该权限后,才能访问该APP中的组件语法:举例:<permissionandroid:name="com.example.note.RECEIVE"/>………………..<receiverandroid:name=".NetworkReceiver"android:permission="com.example.note.RECEIVE">><intent-filter><actionandroid:name=".conn.CONNECTIVITY_CHANGE"/><actionandroid:name=".wifi.WIFI_STATE_CHANGED"/></intent-filter></receiver>8.3应用程序签名Android系统要求所以安装的程序必须有应用程序开发者认证的数字签名的私人密钥。Android系统用这个证书来识别作者并建立与应用程序的信用关系。所有的应用程序必须签名。如果应用程序没有签名,系统将无法安装此程序。可以使用自签名证书来签名,不需要官方机构的认证。正式发布产品时,必须有一个合适的密钥来签名它,不能发布一个用调试密钥签名的应用程序。使用Keytool创建自己的秘钥keytool-genkey-v-keystoremy-release-key.keystore-aliasalias_name-keyalgRSA-keysize2048-validity10000建议有效周期为25年或者更多,如果密钥的有效期过期,用户将无法无缝更新应用程序的新版本。如果计划在Google商店发布应用程序。你密钥的有效周期到2033年10月22日,商店强制要求这个属性确保用户可以无缝更新应用程序的新版本。使用jarsigner对应用程序签名jarsigner-verbose-sigalgMD5withRSA-digestalgSHA1-keystoremy-release-key.keystoremy_application.apkalias_name验证签名jarsigner-verifymy_signed.apk8.5OAuth2认证与授权什么是OAuth?

OAuth(开放授权)是一个开放标准。允许第三方网站在用户授权的前提下访问在用户在服务商那里存储的各种信息。而这种授权无需将用户提供用户名和密码提供给该第三方网站。OAuth2OAuth2.0是从2006年开始设计OAuth协议的下一个版本,OAuth2.0同时提供Web,桌面和移动应用程序的支持,并较1.0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论