首 页最新软件下载排行文章资讯投稿发布下载专题
维维下载站
您的位置:首页编程开发网络编程编程其它 → Android安全加密之数字签名及数字证书相关例子剖析

Android安全加密之数字签名及数字证书相关例子剖析

来源:维维整理 发布时间:2016-9-13 18:16:32 人气:

Android安全加密之数字签名及数字证书相关例子剖析

数字证书

1. 概述

数字证书就是互联网通讯中标志通讯各方身份信息的一串数字,提供了一种在Internet 上验证通信实体身份的方式,数字证书不是数字身份证,而是身份认证机构盖在数字身份证上的一个章或印(或者说加在数字身份证上的一个签名)。它是由权威机构——CA 机构,又称为证书授权(Certificate Authority)中心发行的,人们可在网上用它来识别对方的身份。

2. 应用场景

交易者身份的确定性、不可否认性、不可修改性
对应用进行签名认证(例如Android 的apk)

3. 数字证书格式

Android安全加密之数字签名及数字证书相关剖析

数字证书的格式普遍采用的是X.509V3 国际标准,一个标准的X.509 数字证书包含以下一些内容:

  1. 证书的版本信息;
  2. 证书的序列号,每个证书都有一个唯一的证书序列号;
  3. 证书所使用的签名算法;
  4. 证书的发行机构名称,命名规则一般采用X.500 格式;
  5. 证书的有效期,通用的证书一般采用UTC 时间格式,它的计时范围为1950-2049;
  6. 证书所有人的名称,命名规则一般采用X.500 格式;
  7. 证书所有人的公开密钥;
  8. 证书发行者对证书的签名。

4. 数字证书原理

Android安全加密之数字签名及数字证书相关剖析

数字证书是安全领域里的终极武器,SSL 通信协议里最核心的东西就是数字证书。他涉及到前面提到的所有知识:对称加密、非对称加密、消息摘要、数字签名等。

数字证书能够通过java 自带的KeyTool 工具生成,生成以后的数字证书通常保管在KeyStore 里。KeyStore可以叫做秘钥仓库。

秘钥仓库能够保管3 种类型的数据:KeyStore.PrivateKeyEntry(非对称机密里的私钥)、KeyStore.SecretKeyEntry (对称加密里的秘钥)、KeyStore.TrustedCertificateEntry(受信任的证书)

5. KeyTool工具

路径:jre\bin\keytool.exe

Android安全加密之数字签名及数字证书相关剖析

常用命令:
生成keypair

keytool -genkeypair
keytool -genkeypair -alias lisi
(后面部分是为证书指定别名,否则采用默认的名称为mykey)

看看keystore 中有哪些项目:

keytool -list 或keytool -list -v
keytool -exportcert -alias lisi -file lisi.cer

生成可打印的证书:

keytool -exportcert -alias lisi -file lisi.cer –rfc

显示数字证书文件中的证书信息:

直接双击lisi.cer,用window 系统的内置程序打开lisi.cer

6. Android 的keystore 相关知识

debug 签名路径:user.android\debug.keystore

Android安全加密之数字签名及数字证书相关剖析

debug.keystore 的别名(alias)及密码:
别名:androiddebugkey,密码:android

签名命令(jdk1.6):

jarsigner -verbose -keystore debug.keystore -signedjar 1signed.apk 1.apk androiddebugkey

签名命令(jdk1.7):

jarsigner -verbose -keystore debug.keystore -signedjar 1signed.apk 1.apk androiddebugkey -digestalg
SHA1 -sigalg MD5withRSA

优化命令:

zipalign -v 4 1signed.apk 1signedaligned.apk

验证签名是否成功:

jarsigner -verify 1signed.apk

7. 补充

签名证书:

由权威颁发机构颁发给服务器或者个人用于证明自己身份的东西,默认客户端都是信任的。主要目的是用来加密和保证数据的完整性及不可抵赖性。

比如根证书机构Symantec 颁发给百度的就是签名证书,是受信任的。

Android安全加密之数字签名及数字证书相关剖析

自签名证书:

由服务器自己颁发给自己,用于证明自己身份的东西,非权威颁发机构发布,默认客户端都是不信任的,主要目的就是用来加密和保证数据的完整性和不可抵赖性,与签名证书相同.

比如中铁集团(SRCA)办法给12306 的证书就是自签名证书,自己给自己颁发的。

Android安全加密之数字签名及数字证书相关剖析

上一页  第1页  第2页  

相关下载
栏目导航
本类热门阅览