❶ 安卓 软件证书可以删除吗
不可以。
android 签名的证书
在Android系统中,所有安装
到系统的应用程序都必有一个数字证书,此数字证书用于标识应用程序的作者和在应用程序之间建立信任关系,如果一个 permission的protectionLevel为signature,那么就只有那些跟该permission所在的程序拥有同一个数字证书的应用程序才能取得该权限。Android使用java的数字证书相关的机制
来给apk加盖数字证书,要理解android的数字证书,需要先了解以下数字证书的概念和java的数字证书机制。Android系统要求每一个安装进系统的应用程序都是经过数字证书签名的,数字证书的私钥则保存在程序开发者的手中。Android将数字证书用来标识应用程序的作者和在应用程序之间建立信任关系,不是用来决定最终用户可以安装哪些应用程序。这个数字证书并不需要权威的数字证书签名机构认证,它只是用来让应用程序包自我认证的 一:同一个开发者的多个程序尽可能使用同一个数字证书
❷ 如何在安卓手机安装数字证书 crt和p12
当点击Wi-Fi Settings, Advanced界面的“安装证书”;或者在Settings的Security界面下的CredentialStorage界面点击“安装证书”。com.android.certinstaller包中的CertInstallerMain类会收到Settings发送的Credentials.INSTALL_AS_USER_ACTION intent。
然后,CertInstallerMain类开始创建一个线程,并开始run。在run中,因为收到了Credentials.INSTALL_AS_USER_ACTION intent, CertInstallerMain开始判断SD卡是否存在,这里,我们将证书都push到SD卡里了,SD卡当然是存在的。这种情况下,CertInstallerMain类通过其继承的CertFile类开始读取卡里的所有证书文件。CertFile类读取证书的过程很简单:它把自己设置成了一个FileFilter,在accept方法中,CertFile只接收后缀为Credentials.EXTENSION_CRT, Credentials.EXTENSION_P12, Credentials.EXTENSION_CER, Credentials.EXTENSION_PFX的文件。也就是说当前,Android只支持后缀为crt, p12,cer和pfx的数字证书。
接着,当SD卡里只有一个证书的时候它弹出一个安装提示框,当SD卡里有一堆证书的时候,它会弹出一个证书列表,这个列表由CertFileList类维护,放点击某个证书的时候,会和当SD卡里只有一个证书的时候一样,调用installFromFile方法,弹出一个对话框。CertFile类的install方法会通知CertInstaller来负责证书的安装。
CertFile类对p12证书和其它证书进行了分类,要是p12证书,我给个对话框,输入完密码就OK了。我这里,还使用了WIFI WAP需要的CA证书进行测试。对于CA证书,当点击弹出对话框的“确认”对应的按钮后,它会通过CredentialHelper类建立一个com.android.credentials.INSTALL intent发给com.android.settings.CredentialStorage类。当CertInstaller类启动后它会直接创建一个CredentialHelper类,CredentialHelper类就直接将安装的证书分类成CA和USER,所以当点击“确认”后,CredentialHelper会将CA证书的信息通过Credentials.EXTRA_CA_CERTIFICATES_NAME和Credentials.EXTRA_CA_CERTIFICATES_DATA放到com.android.credentials.INSTALL的intent中。
最后,Settings收到了这个intent,通过installIfAvailable()方法,将CA证书的信息保存到了KeyStore中。然后,Settings可以通过KeyStore来读取保存的证书。
❸ Android网络请求加密机制
密码学的三大作用:加密( Encryption)、认证(Authentication),鉴定(Identification)
加密 :防止坏人获取你的数据。
鉴权 :防止坏人假冒你的身份。
认证 :防止坏人修改了你的数据而你却并没有发现。
1. URLEncode和URLDecoder 作用:URLEncode就是将URL中特殊部分进行编码。URLDecoder就是对特殊部分进行解码。
为什么URL要encode原因呢?
url转义其实也只是为了符合url的规范而已。因为在标准的url规范中 中文和很多的字符 是不允许出现在url中的。
2. Base64编码
为什么要进行Base64编码?
在计算机中任何数据都是按ascii码存储的,而ascii码的128~255之间的值是不可见字符。而在网络上交换数据时,比如拦薯枝说从A地传到B地,往往要经过多个路由设备,由于手腔不同的设备对字符的处理方式有一些不同,这样那些不可见字符就有可能被处理错误,这是不利于传输的。所以简敏就先把数据先做一个Base64编码,统统变成可见字符,这样出错的可能性就大降低了。
应用场景:主要是对于二进制数据进行编码,(文件、图片、加密后的二进制数据)
3. 消息认证算法
要确保加密的消息不是别人伪造的,需要提供一个消息认证码(MAC,Message authentication code) 。
消息认证码是带密钥的hash函数,基于密钥和hash函数(单向散列函数)。
密钥双方事先约定,不能让第三方知道。
消息发送者使用MAC算法计算出消息的MAC值,追加到消息后面一起发送给接收者。
接收者收到消息后,用相同的MAC算法计算接收到消息MAC值,并与接收到的MAC值对比是否一样。
消息认证码的作用:检查某段消息的完整性,以及作身份验证。
防止重放 攻击可以有 3 种方法:
序号
每条消息都增加一个递增的序号,并且在计算 MAC 值的时候把序号也包含在消息中。这样攻击者如果不破解消息认证码就无法计算出正确的 MAC 值。这个方法的弊端是每条消息都需要多记录最后一个消息的序号。
时间戳
发送消息的时候包含当前时间,如果收到的时间与当前的不符,即便 MAC 值正确也认为是错误消息直接丢弃。这样也可以防御重放攻击。这个方法的弊端是,发送方和接收方的时钟必须一致,考虑到消息的延迟,所以需要在时间上留下一定的缓冲余地。这个缓冲之间还是会造成重放攻击的可趁之机。
nonce
在通信之前,接收者先向发送者发送一个一次性的随机数 nonce。发送者在消息中包含这个 nonce 并计算 MAC 值。由于每次 nonce 都会变化,因此无法进行重放攻击。这个方法的缺点会导致通信的数据量增加。
4. 对称加密算法
特点:加解密只有一个密钥。优点:速度快、效率高。缺点:密钥交换问题。算法:AES(256字节,主流)、DES(8字节,淘汰)。
密钥交换问题如何解决,MAC同样也有这个问题,可以使用非对称加密传输,或者私下约定,密钥管理中心。
5. 非对称加密
非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密(这个过程可以做数字签名) 。 非对称加密主要使用的是RSA算法。
特点:公/私钥机制。优点:只需要交换公钥,安全。缺点:加解密速度慢,特别是解密。算法:RSA。应用:数字签名。
数字签名 :
简单解释:
A:将明文进行摘要运算后得到摘要(消息完整性),再将摘要用A的私钥加密(身份认证),得到数字签名,将密文和数字签名一块发给B。
B:收到A的消息后,先将密文用自己的私钥解密,得到明文。将数字签名用A的公钥进行解密后,得到正确的摘要(解密成功说明A的身份被认证了)。
数字证书 :
6. Android端 AES+RSA结合实践
基本流程
Android端
服务器端
基本上如下图所示的流程:
❹ Android自有证书生成指南
Android部署打包apk应用,需要用上数字证书进行签名,来表明身份的。
安卓证书可以使用Java的keytool工具生成,以下是window平台生成的方法:
一、安装java
可访问Oracle官方去安装java: https://www.java.com/zh_CN/download/win10.jsp
下面已安装目录“C:UsersxabscDownloadsjdk-16.0.1”为例,实际操作请修改自己的安装目录
安装java完成后,打开安装目录,找到bin文件夹,如果里面有keytool.exe这个文件,那么下面的安卓证书就能搞了
注意:1. testalias是证书别名,可修改为自己想设置的字符,建议使用英文字母和数字
2. test.keystore是证书文件名称,可修改为自己想设置的文件名称,也可以指定完整文件路径
❺ Android签名机制之签名文件和数字证书的作用
Android签名机制目的是确保app的可靠通信,其一,要确定消息的来源确实是其申明
的那个人;其二,要保证信息在传递的过程中不被第三方篡改,即使被篡改了,也可以
发觉出来。
所谓数字签名,就是为了解决这两个问题而产生的,它是对非对称加密技术与数字摘要
技术的一个具体的应用。
对于消息的发送者来说,先要生成一对公私钥对,则穗将公钥给消息的接收者。
如果消息的发送者有一天想给消息接收者发消息,在发送的信息中,除了要包含原始的
消息外,还要加上另外一段消息。这段消息通过如下两步生成:
1)对要发送的原始消息提取消息摘要;
2)对提取的信息摘要用自己的私钥加密。
通过这两步得出的消息,就是所谓的原始信息的数字签名。
而对于信息的接收者来说,他所收到的信息,将包含两个部分,一是原始的消息内容,
二是附加的那段数字签名。他将通过以下三步来验证消息的真伪:
1)对原始消息部分提取消息摘要,注意这里使用的消息摘要算法要和发送方使用的一孙游卜致;
2)对附加上的那段数字签名,使用预先得到的公钥解密;
3)比较前两步所得到的两段消息是否一致。如果一致,则表明消息确实是期望的发送者
发的,且内容没有被篡改过;相反,如果不一致,则表明传送的过程中一定出了问题,
消息不可信。
通过这种所谓的数字签名技术,确实可以有效解决可靠通信的问题。如果原始消息在传
送的过程中被篡改了,那么在消息接收者那里,对被篡改的消息提取的摘要肯定和原始
的不一样。并且,由于篡改者没有消息发送方的私钥,即使他可以重新算出被篡改消息
的摘要,也不能伪造出数字签名。
那么数字签名呢?
综上所述,数字签名其实就是只有信息的发送者才能产生的别人无法伪造的一段数字
串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。
不知道大家有没有注意,前面讲的这种数字签名方法,有一个前提,就是消息的接收者
必须要事先得到正确的公钥。如果一开始公钥就被别人篡改了,那坏人就会被你当成好
人,而真正的消息发送者给你发的消息会被你视作无效的。而且,很多时候根本就不具
备事先沟通公钥的信息通道。那么如何保证公钥的安全可信磨吵呢?这就要靠数字证书来解
决了。
所谓数字证书,一般包含以下一些内容:
证书的发布机构(Issuer)
证书的有效期(Validity)
消息发送方的公钥
证书所有者(Subject)
数字签名所使用的算法
数字签名
可以看出,数字证书其实也用到了数字签名技术。只不过要签名的内容是消息发送方的
公钥,以及一些其它信息。但与普通数字签名不同的是,数字证书中签名者不是随随便
便一个普通的机构,而是要有一定公信力的机构。这就好像你的大学毕业证书上签名的
一般都是德高望重的校长一样。一般来说,这些有公信力机构的根证书已经在设备出厂
前预先安装到了你的设备上了。所以,数字证书可以保证数字证书里的公钥确实是这个
证书的所有者的,或者证书可以用来确认对方的身份。数字证书主要是用来解决公钥的
安全发放问题。
综上所述,总结一下,数字签名和签名验证的大体流程如下图所示:
引用链接: https://www.cnblogs.com/dacainiao/p/5842987.html
❻ 安卓手机怎么安装数字证书(pfx格式的证书)
方法1.iPhone 手机、Android 4.0以上系统、黑莓
这些手机内置的浏览器都支持“带私钥”的客户端证书PFX, 使用这些手机时,如要如下两步便可以完成:
1、 安装PFX证书, 管理员可以把带私钥的PFX证书文件放在某个共享的地方,手机用户通过这个共享地方(可以是网站),直接点击下载,系统会自动安装,(在安装过程中需要输入访问密码)
2.直接访问HTTPS的网站。
方法2. Android 2.X 系统 (内置的浏览器不支持)
1.进入列有PFX文件的共享文件夹或是网站目录,下载pfx文件到SD卡的根目录
2.通过Google Play Store,即谷歌电子市场下载 SandroB 这个支持SSL Client的浏览器
支持 2.3 系统的 请点击:https://play.google.com/store/apps/details?id=org.sandrob.stock233&hl=zh_CN
支持 2.2 系统的 请点击:https://play.google.com/store/apps/details?id=org.sandrob&feature=more_from_developer#?t=W10.
备注:如果谷歌链接无法打开,可以在网络搜 SandroB,下载即可。
3. 对于中文网站来说,这个软件对于中文的出错页,不会自动判断,因此打开SandroB中的Setting,把"SSL dialog only on errors" 取消
4. 访问HTTPS网站,系统会弹出对话框,上面填您下载的PFX文件的路径,下面的安装密码电询管理员:
❼ android 无法安装该证书,因为无法读取证书文件,怎么办
那是因为你已经装了一个同名的程序。
系统发现你现在要装的程序的签名(一种用于识别程序开发者得数字证书)和之前的不一致,系统于是拒绝安装。
如果你非要装现在的程序,只有把旧程序删除。
❽ 如何将数字证书导入到Android文件系统中
将数字证书文件“srca.cer”复制到SD卡的根目录下,差慧然后操作:
设置→安全→信任的证书→从设备存储空间安装→“确猜谈定”安装srca证书穗庆碰
❾ android手机如何导入CA证书
1、请先将数字证书文件“******.cer”文件复制到SD卡的根目录下;
(9)android数字证书扩展阅读:
CA 也拥有一个证书(内含公钥和私钥)。网上的公众用户通过验证 CA 的签字从而信任 CA ,任何人都可以得到 CA 的证书(含公钥),用以验证它所签发的证书。
如果用户想得到一份属于自己的证书,他应先向 CA 提出申请。在 CA 判明申请者的身份后,便为他分配一个公钥,并且 CA 将该公钥与申请者的身份信息绑在一起,并为之签字后,便形成证书发给申请者。
如果一个用户想鉴别另一个证书的真伪,他就用 CA 的公钥对那个证书上的签字进行验证,一旦验证通过,该证书就被认为是有效的。证书实际是由证书签证机关(CA)签发的对用户的公钥的认证。
证书的内容包括:电子签证机关的信息、公钥用户信息、公钥、权威机构的签字和有效期等等。目前,证书的格式和验证方法普遍遵循X.509国际标准。
2019年9月2日,据新疆生产建设兵团自然资源局消息称:自然资源部新近为新疆兵团本级及13个师市颁发矿业权管理。