基于电子签名的安卓APP应用可信生态体系建设方案
2018-12-28王杰勋
王杰勋
(江苏智慧数字认证有限公司,江苏南京210012)
1 引言
移动互联网的发展促使移动APP数量也得到爆发式地增长,截至2018年5月底,我国市场上监测到的移动APP应用为415万款。大量的移动APP应用在提高人们生活水平和便利程度的同时,也隐藏着资费消耗、诱骗欺诈、信息窃取、恶意扣费等恶意行为,严重损害人民群众的切身利益。为了维护移动互联网信息安全,净化移动互联网环境,保护用户合法权益,工业和信息化部、公安部、工商总局联合印发了《打击治理移动互联网恶意程序专项行动工作方案》,其中要求开展移动互联网应用程序开发者第三方数字证书签名与验证试点工作。为支持移动互联网应用程序开发者利用第三方数字证书进行签名、验证,以及在应用商店、移动安全软件、手机终端等对利用第三方数字证书签名的APP进行验证和标识展示,特提出基于电子签名的移动APP应用可信生态体系建设方案。
2 基于电子签名的安卓APP应用可信生态体系
图1 系统整体流程图
2.1 整体流程
整体流程涉及开发者、应用市场、CA机构、用户、安全软件、终端操作系统(OS)等不同角色,包括代码签名证书申请、应用签名、应用上架、标识展示、应用下载安装等多个环节。系统整体流程如图1所示。
2.2 开发者申请证书流程
参与试点的开发者需要向依法设立的电子认证服务机构申请数字证书。开发者可以直接提交身份信息给第三方CA机构申请代码签名证书,也可以向第三方CA机构的证书受理点(应用商店可以作为CA机构的证书受理点)申请代码签名证书。
用户通过计算机或其它智能移动终端首次登录远程证书发放系统网站,根据页面提示进行身份识别,身份识别通过后,证书受理点后台制作证书,并以快递等方式交付给用户。
个人用户证书申请:
(1)用户通过电脑或手机等智能终端登录远程证书发放系统。
(2)通过各家CA采用技术方式鉴别验证用户身份。
(3)用户身份验证通过后,将信息上送CA的证书系统。
(4)通过快递方式将证书介质USB Key交付给用户。
(5)将证书下载密码通过短信方式发送给用户。
(6)用户收到USB Key后,登录证书下载系统,根据短信中的密码下载证书,写入USB Key内。
(7)用户将身份证明材料、申请表快递给服务受理点。
机构用户证书申请:
(1)申请代办人将单位证明材料、申请表快递给服务受理点。
(2)申请代办人通过电脑或手机等智能终端登录远程证书发放系统。
(3)通过人脸识别、身份数据库比对等方式鉴别验证代办人身份,并要求用户提交单位联系电话。
(4)代办人身份验证通过后,填写机构信息上送CA的证书系统。
(5)通过快递方式将证书介质USB Key交付给代办人。
(6)将证书下载密码通过短信方式发送给代办人。
(7)代办人收到USB Key后,登录证书下载系统,根据短信中的密码下载证书,写入USB Key内。
此外,还可以采取现场受理审核的方式向申请人发放数字证书。各应用商店可以作为CA的证书受理点,负责审核申请人身份,制作发放数字证书。受理点可以用远程和现场方式发放数字证书。
2.3 安卓应用签名流程
2.3.1 代码签名证书使用准备
一般情况下,第三方CA机构会将USBKey的驱动程序或客户端软件连同证书一起提供给Android应用开发者。开发者在电脑上安装USB Key驱动程序后,将USB Key插入到电脑上,代码签名证书将自动导入到系统证书库中。
开发者打开IE->IE右上角的配置图标->选择菜单中的[Internet选项]->选择对话框中的[内容]页->点击内容页里面的[证书]按钮,就可以看到自己的代码签名证书,如图2所示。代码签名证书使用准备工作结束。
图2 查看代码签名证书
2.3.2 使用APKsign工具对Android应用签名
APKsign是一个运行在PC平台上的命令行程序,使用APKsign可以简单方便地对开发者已经打包好的APK进行签名,APK的签名不受次数限制。开发者可以到进行免费下载APKsign工具。
3 安卓应用签名展示方案
在以下情况下,需对应用程序的签名进行验证:应用商店上架前、安全应用软件下载时、手机终端安装时,在应用程序安装后,用户可以使用安全软件或专用软件随时验证应用签名并查看结果。对应用程序签名验证后,需要以统一的标识进行展示,以提醒用户该应用开发者身份是否经过CA认证。对于经过签名的应用,展示信息至少应包括开发者、CA机构和签名时间。
3.1 应用商店展示
3.1.1 应用商店上架时验证流程
应用商店上架APP时,应验证开发者提交APP的签名信息,若APP的开发者是经第三方CA认证的开发者,应用商店须向用户提示该APP的开发者经由第三方认证,并向用户显示APP签名信息,并将统一标识放在应用商店醒目位置。若APP的开发者不是经第三方认证的开发者,应用商店不向用户提示信息。
3.1.2 应用商店展示规范
应用商店APP应支持用户查看应用软件开发者是否经过第三方认证,并在软件列表和软件详情页,对经过开发者认证的APP进行标识,标识方式可参考图3,可增加“开发者经合法CA机构实名认证”等描述文字,并具备向用户显示APP详细签名信息的功能。
此外,两文献虽在地位上对等,但实际内容和文体风格都存在较大的差别,按本文分析结果,可以大致分属政府文件和备稿演讲两个类别,并不能因其相似的地位而混为一谈。作为《政府工作报告》英译本,其语体风格应与原文看齐一致。政治翻译必须紧扣原文,不得任意增删。[6](P20)而我国《政府工作报告》本身就具有政府文件至高无上的严肃性和正式性,而接近于备稿演讲的《美国国情咨文》则需要有一定的演讲特质,这也反映了中美两国不同的政治文化。一味地强调通过翻译上的策略来拉近二者的语体风格,缩小差异,笔者认为这将使得译文脱离原文文本特征,从而丢失本应传达的严肃性和正式性,以及中国特色的政治文化色彩。
图3 应用商店标识展示
3.1.3 应用商店网站显示规范
应用商店网站须在软件列表和软件详情页对第三方认证过的开发者的APP进行标识。应用程序在应用商店上架后,应用商店网站应支持用户查看应用开发者是否通过第三方认证,并在软件列表和软件详情页,对经过开发者认证的APP进行标识,标识方式可参考图4,可增加“开发者经合法CA机构实名认证”等描述文字,并具备向用户显示APP详细签名信息的功能。
图4 应用商店网站标识展示
3.2 手机终端展示
用户在安装APP时,手机终端应验证APP的签名信息,若APP的开发者是经第三方CA认证的开发者,且在安装过程中APP的签名验证正确、APP可正常安装的情况下,手机终端须向用户提示该APP的开发者经由第三方认证,并向用户显示APP签名信息。若APP的开发者不是经第三方认证的开发者,手机终端不向用户提示信息。移动智能终端需在应用安装前和安装后都能对应用进行验签,并显示应用签名信息。
3.2.1 应用安装前终端验签要求(包含首次安装及后续更新)
若应用未包含经第三方认证的签名信息,且终端可成功读取应用已有的自签名信息,终端需将应用签名信息明示用户,并明确告知用户该签名未经CA认证(建议提示语:开发者未经合法CA机构实名认证),询问用户是否继续安装。
若应用包含经第三方认证的签名信息,且终端可成功验签,终端需将应用签名信息明示用户,并提示用户该签名信息经由第三方认证(建议提示语:开发者经合法CA机构实名认证)。应用验签明示信息至少包含应用开发者、CA机构、签名时间,如果签名信息中包含该应用的流通渠道名称/检测机构名称,也需明示给用户查看。
若应用包含经第三方认证的签名信息,在线验签得知该开发者证书已被吊销,终端验签失败,终端需提示用户该应用存在风险(建议提示语:开发者证书已吊销),询问用户是否继续安装。
终端应支持用户查看每个已安装的应用的签名和相应的认证状态,应用验签结果可分为已认证、未经认证和证书被吊销。
终端向用户明示已安装应用的签名信息,并以显著方式提示用户该应用开发者是否经由第三方认证,并告知相应认证结果。其中未经认证的开发者自签名信息至少包含应用开发者名称及证书有效期;经第三方认证的开发者的签名信息至少包含开发者、CA机构、签名时间,如果签名信息中包含该应用的流通渠道名称/检测机构名称,也需明示给用户查看;开发者证书被吊销应用的签名信息至少包含开发者,签名时间及证书吊销时间。
3.3 移动安全软件
3.3.1 安全软件验证流程
用户在下载APP时,安全软件须验证APP的签名信息,若APP的开发者是经第三方CA认证的开发者,安全软件须向用户提示该APP的开发者经由第三方认证,并具备向用户显示APP详细签名的功能。若APP的开发者不是经第三方认证的开发者,安全软件不向用户提示信息。
3.3.2 安全软件展示规范
安全软件在检测到应用软件下载或软件安装时,须对软件开发者是否经过第三方开发者认证过的APP进行显示。
若APP的开发者是经第三方认证的开发者,且在安装过程中APP的签名验证正确、APP可正常安装的情况下,安全软件须向用户提示该APP的开发者经由第三方认证,并具备向用户显示APP详细签名信息的功能。
若APP的开发者不是经第三方认证的开发者,安全软件不向用户提示信息。
显示方式可通过“通知栏”方式完成,如图5。当APP的开发者经过第三方认证时,该APP安装成功后,安全软件可在“通知栏”显示“某APP开发者经合法CA机构实名认证”,用户点击该通知栏后可显示该APP的具体签名信息,并显示认证该开发者的CA机构信息。
图5 通知栏提示信息
安装完应用程序后,安全软件应支持用户查看每个已安装应用的签名和应用开发者是否通过第三方认证,并在安全软件的软件列表页面,如软件管理、安全扫描等功能的页面,对经过第三方认证的开发者的APP进行标识,标识方式可参考图6,并具备向用户显示APP详细签名信息的功能。安全软件应向用户明示已安装应用的签名信息,其中未经认证的开发者自签名信息至少包含应用开发者名称及证书有效期;经第三方认证的签名信息至少包含开发者、CA机构、签名时间,如果签名信息中包含该应用的流通渠道名称/检测机构名称,也需明示给用户查看;开发者证书被吊销应用的签名信息至少包含开发者,签名时间及证书吊销时间。
3.4 专用软件
除上述几个环节可以验证APP签名信息外,普通Android终端用户还可以使用Trust Tracker追溯和验证Android终端已经安装的APP的签名。Trust Tracker是一个免费的Android应用,能够追溯并验证Android应用签名,使用它可以方便快速地查看用户Android终端中已安装应用的签名情况。普通Android终端用户可以到各大应用商店下载Trust Tracker,也可以到APKsign网站下载。
4 结束语
移动APP应用为人民的生活带来了极大的便利,同时也隐藏着资费消耗、诱骗欺诈、信息窃取、恶意扣费等恶意行为,严重损害人民群众的利益。为解决移动APP应用信息安全问题,建立安全可信的移动APP应用认证体系,基于数字证书,本文提出了一套移动APP应用第三方电子签名和验证体系,通过应用商店、移动安全软件、手机终端等展示方式,可以方便用户识别出经过第三方检测证实为安全的移动APP应用,鼓励用户更多使用经过认证的移动APP应用,从而建立移动APP应用可信生态体系,净化移动互联网环境。