记录黑客技术中优秀的内容, 传播黑客文化,分享黑客技术精华

Baton: Key Agility for Android Without a Centralized Certificate Infrastructure

2016-06-04 04:10

论文下载

Abstract & Introduction

IOS等手机OS对于开发者签名都有一个centralized authority,而Android没有,开发者自己来提供签名,只有具有相同的签名和证书的两个APP才能更新。如果Android上app更换签名,就需要卸载或重装。

Baton—-通过修改系统app installation framework,使开发者可以在不需要用户干涉的情况下安全的更换签名。(提高 key agility)

几个需要更换签名的情况:

  1. 为了让两个签名不同的APP share UID或一个APP申请另一个APP的自定义的signature permission
  2. 签名过期了
  3. app转让给其他开发者

Detail

Delegation token:

Sign(KeyA){Hash(pkg name,version code,Cert A,Cert B fingerprint,previous token hash)}

  1. pkgName
  2. version code
  3. a set of previous certificates
  4. a set of current certificates
  5. a hash of the previous delegation token in the certificate chain
  6. 最后用之前的私钥来上述的hash作为token。

certificate chain

a sequence of delegation tokens

AOSP

  1. android.content.pm.PackageParser 识别Baton XML
  2. com.android.server.pm.SignatureChain 新增的class,用来处理 certificate chain
  3. com.android.server.pm.PackageManagerService 修改签名认证的逻辑和app更新的过程

新的认证流程:

> if(A's set of signing certificates matches B's) 
>     update    
> else
>     if(B has a token with a correct version transition signed by A's
> certificate set)   
>          update and change key          
>     else   
>          reject

Developer Tools a third party Eclipse plugin

Evaluation

  1. 影响Android原有的机制,兼容性好,没有Baton系统安装带有Baton修改的app也可以正常运行。
  2. 功能正常
  3. 安全方面:1)有完整性检验 2)无法重放 3)更换签名升级时,用户不用卸载,避免一些攻击 4)不影响原有的签名保护机制
知识来源: www.securitygossip.com/blog/2016/06/03/2016-06-03

阅读:85432 | 评论:0 | 标签:Android

想收藏或者和大家分享这篇好文章→复制链接地址

“Baton: Key Agility for Android Without a Centralized Certificate Infrastructure”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

九层之台,起于垒土;黑客之术,始于阅读

推广

工具

标签云