数字签名

保护你的隐私,五种控制Android应用的权限的方法

旧城冷巷雨未停 提交于 2020-03-14 18:56:29
这篇文章目的在于介绍Android系统上控制权限的方法,读者只要使用过Android,或是对智能机平台有所了解,就能看懂,不需要专门的编程知识。 1 为什么Android总是事无巨细地告诉你应用索取的每一项权限? 相比Apple,Microsoft严格控制生态系统(从苹果给开发者的”App Store Guideline”可见一斑),只允许通过官方应用商店安装应用,并对每份上传进行仔细地审查而言,Android的开放就意味着,Google需要向用户提供一系列用于为自己负责的流程、工具。所以在安装应用前,Android总是要事无巨细地告诉你,应用肯需要控制什么权限。 同样,开发者也制作了一系列易用的工具,用以鉴别可疑的应用程序,或是控制权限。 图1 Android 官方市场会强制提醒用 Andoird哪里开放了? 在Android中,用户能自由从本地安装应用,自由地对SD卡进行操作,自由选择应用市场。 如果愿意放弃保修,用户还能轻易地实行root,解锁基带(baseband)。只有一些产品会严密地锁定bootloader(如摩托罗拉)。 最重要的是,因为ASOP(Android源代码开放计划)的存在,绝大部分的Android代码都是开源的,开发者可以由此对Android系统进行深入的修改,甚至可以自行编写一个符合Android规范的系统实例(如Cyanogen Mod)

数字证书简介及Java编码实现

旧时模样 提交于 2020-03-07 02:22:06
数字签名原理简介(附数字证书) 首先要了解什么叫对称加密和非对称加密,消息摘要这些知识。 1. 非对称加密 在通信双方,如果使用非对称加密,一般遵从这样的原则:公钥加密,私钥解密。同时,一般一个密钥加密,另一个密钥就可以解密。 因为公钥是公开的,如果用来解密,那么就很容易被不必要的人解密消息。因此, 私钥也可以认为是个人身份的证明。 如果通信双方需要互发消息,那么应该建立两套非对称加密的机制(即两对公私钥密钥对),发消息的一方使用对方的公钥进行加密,接收消息的一方使用自己的私钥解密。 2.消息摘要 消息摘要可以将消息哈希转换成一个固定长度的值唯一的字符串。值唯一的意思是不同的消息转换的摘要是不同的,并且能够确保唯一。 该过程不可逆 ,即不能通过摘要反推明文(似乎SHA1已经可以被破解了,SHA2还没有。一般认为不可破解,或者破解需要耗费太多时间,性价比低)。 利用这一特性, 可以验证消息的完整性。 消息摘要通常用在数字签名中,下面介绍用法。 了解基础知识之后,就可以看一下数字签名和数字证书了。 3.数字签名 假设现在有通信双方A和B,两者之间使用两套非对称加密机制。 现在A向B发消息。 那么,如果在发送过程中,有人修改了里面密文消息,B拿到的密文,解密之后得到明文,并非A所发送的,信息不正确。 要解决两个问题:1. A的身份认证 2. A发送的消息完整性

RSA 算法简述

末鹿安然 提交于 2020-03-04 00:36:55
RSA是什么 计算机的加密技术分为对称加密和非对称加密两类。在对称加密中,信息的加解密使用同一秘钥key,其可简化加解密的过程,较为简单,但不足之处在于由于加解密使用同一个key,信息传送双方都要接触这个key,密钥key更容易泄露。 在公开密钥加密即非对称加密中,密钥分为公钥PK(发送方通过PK对数据加密,然后发送给接收方,PK可公开),私钥SK(SK解密方保存,接收方通过SK对密文解密,SK不公开)。RSA公钥密码体制是最具代表性的非对称加密方式。 RSA算法原理 RSA定理:若P和Q是两个相异质数,另有正整数D和E,其中E的值与 (P-1)(Q-1)的值互质,并使得DE%(P-1)(Q-1)=1,有正整数M,且M<PQ,设: C=ME%PQ,B=CD%PQ,则有M=B。 生成公钥和密钥 随意选择两个大的素数P和Q,且P不等于Q 令N=PQ 令T=(P-1)(Q-1) 选择一个整数E,作为一个密钥,使E与T互质(即E与T的最大公约数为1),且E必须小于T 由公式DE%T=1,计算得到D的值,作为另一密钥 将(N,E)作为公钥,(N,D)作为私钥,当然也可互换。 用公钥加密信息 发送方收到公钥(N,E)后,通过公钥对数据进行加密,操作如下: 明文:M 加密:ME%N=C 密文:C 用私钥解密信息 接收方收到密文C后,通过私钥(N,D)进行解密,得到明文M,操作如下: 密文:C

自己制作Chrome便携版实现多版本共存

北城余情 提交于 2020-03-03 22:21:48
本文只针对Windows下的Chrome浏览器的使用。 有时候我们需要使用老版本Chrome,或者仅仅体验一下最新版。 上古时代有IETester用来测试多个IE版本,和本机的IE不冲突。 Chrome别人也制作了很多便携版, 但不知道有没有加料 。 本文介绍一个自己制作便携版的方法: 支持任意版本Chrome 自己存手工制作,简单安全可靠 不影响Windows系统内已安装的Chrome,便携版的数据存储在自己的目录内 原理 利用 GoogleChromePortable.exe 启动器来启动Chrome主程序,所有Chrome用户数据都指向本程序所在的 Data 目录,从而实现和系统安装的Chrome隔离。 制作步骤 【1】提取启动器 下载 Google Chrome Portable https://portableapps.com/apps/internet/google_chrome_portable ,不要安装,用7-Zip打开这个压缩包,根目录下面有一个 GoogleChromePortable.exe 文件,提取出来,这个文件就是我们需要的启动器。 注:你会发现这个文件的数字签名是 2016-11-19 ,生命力顽强的一个软件。 另外这个安装包内有 help.html ,介绍了 GoogleChromePortable.exe 如何使用,和参数,可全部提取出来查看。

MessageDigest数字签名,加密

别说谁变了你拦得住时间么 提交于 2020-03-03 18:55:32
Java Cryptography Architecture,Java加密架构,java平台中用于访问和开发加密功能的框架。 MessageDigest 类 MessageDigest 类是一个 引擎类 ,它是为了提供诸如 SHA1 或 MD5 等密码上安全的报文摘要功能而设计的。密码上安全的报文摘要可接受任意大小的输入(一个字节数组),并产生固定大小的输出,该输出称为一个 摘要 或散列。摘要具有以下属性: 无法通过计算找到两个散列成相同值的报文。 摘要不反映任何与输入有关的内容。 使用报文摘要可以生成数据唯一且可靠的标识符。有时它们被称为数据的“数字指纹”。 创建 MessageDigest 对象 计算摘要的第一步是创建报文摘要实例。象所有的引擎类一样,获取某类报文摘要算法的 MessageDigest 对象的途径是调用 MessageDigest 类中的 getInstance 静态 factory 方法: public static MessageDigest getInstance(String algorithm) 注意:算法名不区分大小写。例如,以下所有调用都是相等的: MessageDigest.getInstance("SHA") MessageDigest.getInstance("sha") MessageDigest.getInstance("sHa")

PKI详解

╄→尐↘猪︶ㄣ 提交于 2020-03-03 13:36:26
预备: 一、密码基元 二、密钥管理 三、PKI本质是把非对称密钥管理标准化 PKI 是 Public Key Infrastructure 的缩写,其主要功能是绑定证书持有者的身份和相关的密钥对(通过为公钥及相关的用户身份信息签发数字证书),为用户提供方便的证书申请、证书作废、证书获取、证书状态查询的途径,并利用数字证书及相关的各种服务(证书发布,黑名单发布,时间戳服务等)实现通信中各实体的身份认证、完整性、抗抵赖性和保密性。 数字证书分类 一、 什么是PKI? 官方定义:PKI是Public Key Infrastructure的首字母缩写,翻译过来就是公钥基础设施;PKI是一种遵循标准的利用公钥加密技术为电子商务的开展提供一套安全基础平台的技术和规范。PKI技术是一种遵循既定标准的密钥管理平台,它的基础是加密技术,核心是证书服务,支持集中自动的密钥管理和密钥分配,能够为所有的网络应用提供加密和数字签名等密码服务及所需要的密钥和证书管理体系。 通俗理解:PKI就是利用公开密钥理论和技术建立提供安全服务的、具有通用性的基础设施,是创建、颁发、管理、注销公钥证书所涉及的所有软件、硬件集合体,PKI可以用来建立不同实体间的"信任"关系,它是目前网络安全建设的基础与核心。PKI的主要任务是在开放环境中为开放性业务提供基于非对称密钥密码技术的一系列安全服务,包括身份证书和密钥管理、机密性

对称加密和非对称加密

自闭症网瘾萝莉.ら 提交于 2020-03-02 14:31:03
一:基础概念 A 和 B 要把他们的通信内容加密, 如果A/B使用相同的加密解密key,那这就是 对称加密。 对称加密最大的问题就是A和B之间的加密/解密key必须是唯一的。也就是如果A和C 要加密通信,同时还不想让C知道A/B之间的通信内容。那么A/C之间的加密/解密用的key就不能和A/B之间的一样。 链接一旦便多,这种机制将很难管理大量的key。 非对称加密 就是在此环境下诞生的。非对称加密有公钥和私钥。公钥随意公开,私钥自己私密保存。 比如 A 把公钥发给B, C。 当B,C与A通信时,先把约定好的见面信号用公钥加密,A收到后,用私钥解密,当解密后的数据就是提前约定好的见面信号的话,A 就认为B,C是受信链接。 如果此时D也给A发送信息,但却没有正确的公钥。A就无法得到正确的见面信号,就不会受理D的请求。 二:对称加密 对称加密采用了对称密码编码技术,它的特点是文件加密和解密使用相同的密钥加密 也就是密钥也可以用作解密密钥,这种方法在密码学中叫做对称加密算法,对称加密算法使用起来简单快捷,密钥较短,且破译困难,除了数据加密标准(DES),另一个对称密钥加密系统是国际数据加密算法(IDEA),它比DES的加密性好,而且对计算机功能要求也没有那么高 对称加密算法在电子商务交易过程中存在几个问题: 1、要求提供一条安全的渠道使通讯双方在首次通讯时协商一个共同的密钥

字符加密(cipher)

試著忘記壹切 提交于 2020-03-01 06:58:46
字符加密 Valentino 向往星空。。。某一天他脑洞大开地想要往太空中发送一串讯息,没准哪个外星文明接收到了呢?但是他突然想起一个问题,要是信息在传递过程中受到干扰,外星文明接收到错误的信息怎么办?如何校验信息的完整性?于是他找到了度娘:MD5 ( Message-Digest Algorithm ,信息-摘要算法 5)用于确保信息传输完整一致。它具有以下特点: 1、压缩性:任意长度的数据,算出的 MD5 值长度都是固定的。 2、容易计算:从原数据计算出 MD5 值很容易。 3、抗修改性:对原数据进行任何改动,哪怕只修改 1 个字节,所得到的 MD5 值都有很大区别。 4、弱抗碰撞:已知原数据和其 MD5 值,想找到一个具有相同 MD5 值的数据(即伪造数据)是非常困难的。 5、强抗碰撞:想找到两个不同的数据,使它们具有相同的 MD5 值,是非常困难的。 MD5 的作用是让大容量信息在用数字签名软件签署私人密钥前被“压缩”成一种保密的格式(就是把一个任意长度的字节串变换成一定长的十六进制数字串)。 例如: MD5(“g123g123d”) = ac75129df6ce688096da043ea0974c02。 除了 MD5 以外,比较有名的还有 SHA1 。 安全哈希算法( Secure Hash Algorithm )主要适用于数字签名标准 (

PKCS标准及对应数字证书文件

拥有回忆 提交于 2020-02-29 16:47:36
11.3 PKCS标准 公钥密码标准(PKCS)最初是为推进公钥密码系统的互操作性,由RSA实验室与工业界、学术界和政府代表合作开发的。在RSA带领下,PKCS的 研究随着时间不断发展,它涉及了不断发展的PKI格式标准、算法和应用程序接口。PKCS标准提供了基本的 数据格式定义 和 算法定义 ,它们实际是今天所有 PKI实现的基础。 11.3.1 PKCS标准的内容 PKCS标准如下: (1)PKCS#1:RSA加密标准。PKCS#1定义了RSA公钥函数的基本格式标准,特别是数字签名。它定义了数字签名如何计算,包括待签名数据和签名本身的格式;它也定义了PSA公/私钥的语法。 (2)PKCS#2:涉及了RSA的消息摘要加密,这已被并入PKCS#1中。 (3)PKCS#3:Diffie-Hellman密钥协议标准。PKCS#3描述了一种实现Diffie- Hellman密钥协议的方法。 (4)PKCS#4:最初是规定RSA密钥语法的,现已经被包含进PKCS#1中。 (5)PKCS#5:基于口令的加密标准。PKCS#5描述了使用由口令生成的密钥来加密8位位组串并产生一个加密的8位位组串的方法。PKCS#5可以用于加密私钥,以便于密钥的安全传输(这在PKCS#8中描述)。 (6)PKCS#6:扩展证书语法标准。PKCS#6定义了提供附加实体信息的X.509证书属性扩展的语法(当PKCS

国密算法

我是研究僧i 提交于 2020-02-29 04:55:51
算法分类 国密即国家密码局认定的国产密码算法。主要有SM1,SM2,SM3,SM4。密钥长度和分组长度均为128位。 SM1 为对称加密。其加密强度与AES相当。该算法不公开,调用该算法时,需要通过加密芯片的接口进行调用。 SM2为非对称加密,基于ECC。该算法已公开。由于该算法基于ECC,故其签名速度与秘钥生成速度都快于RSA。ECC 256位(SM2采用的就是ECC 256位的一种)安全强度比RSA 2048位高,但运算速度快于RSA。 SM3 消息摘要。可以用MD5作为对比理解。该算法已公开。校验结果为256位。 SM4 无线局域网标准的分组数据算法。对称加密,密钥长度和分组长度均为128位。 SM2算法 SM2算法:SM2椭圆曲线公钥密码算法是我国自主设计的公钥密码算法,包括SM2-1椭圆曲线数字签名算法,SM2-2椭圆曲线密钥交换协议,SM2-3椭圆曲线公钥加密算法,分别用于实现数字签名密钥协商和数据加密等功能。SM2算法与RSA算法不同的是,SM2算法是基于椭圆曲线上点群离散对数难题,相对于RSA算法,256位的SM2密码强度已经比2048位的RSA密码强度要高 学习sm2算法,首先学习ECC算法 ECC算法描述:   1、用户A选定一条适合加密的椭圆曲线Ep(a,b)(如:y2=x3+ax+b),并取椭圆曲线上一点,作为基点G。   2、用户A选择一个私有密钥k