数字签名

SSL 杂谈

蓝咒 提交于 2019-12-06 11:18:32
什么是 SSL SSL (Secure Sockets Layer) 是一种在应用层和传输层之间的协议,对传输层(TCP)到应用层(HTTP)的数据进行加密,主要是为了保证 Internet 上数据传输的安全性,确保数据在传输过程中不被截取或监听 SSL 在技术上位与应用层,但从开发者的角度来看,它是一个提供 TCP 服务的传输层协议 TLS(Transport Layer Security)是 SSL 的继任者,在很多场合还是用 SSL 来指代 SSL/TLS 基本大部分支持 SSL 加密数据的服务器,都是采用 OpenSSL 库来实现的 OpenSSL是一个强大的安全套接字层密码库,Apache使用它加密HTTPS,OpenSSH使用它加密SSH,它还是一个多用途的、跨平台的密码工具 SSL 协议的安全机制 SSL 通过以下三种机制,实现了网络通信的安全性 1. 数据传输的机密性 通过对称/非对称加密算法,在通信双方之间建立加密通道,保证数据传输的机密性 2. 身份验证机制 使用数字签名来验证通信对端的身份 3. 消息完整性验证 基于 md5/sha 等 hash 算法来保证消息的完整性,避免网络中传输的数据被非法篡改 SSL 的工作原理 简单了解下网络通信加密的发展过程,假设 A 和 B 之间需要网络通信 远古 远古时期民风淳朴,路不拾遗、夜不闭户,A 要发数据给 B

TLS/SSL概述

孤街浪徒 提交于 2019-12-06 06:55:06
目录 TLS/SSL协议 设计目的 握手协议 TLS安全密码套件解读 对称加密和非对称加密 对称加密 非对称加密 混合加密 摘要算法 数字签名 数字证书和CA TLS/SSL协议 TLS/SSL位于TCP层和应用层之间,具体如下图所示 设计目的 身份验证 保密性 完整性 握手协议 验证通讯双方的身份 交换加解密的安全套件 协商加密参数 TLS安全密码套件解读 SSL/TLS协议在协商时,会选择一组恰当的加密算法来实现安全通信,这些算法的组合被称为“密码套件” 密码套件的命名如上所示,格式很固定,基本的形式是:“密钥交换算法+签名算法+对称加密算法+摘要算法” 以上密码套件的意思如下:“握手时使用ECDHE算法进行密钥交换,用RSA签名和身份认证,握手后的通信使用AES对称算法,密钥长度128位,分组模式是GCM,摘要算法SHA256用于消息认证和产生随机数。” 对称加密和非对称加密 对称加密 使用同一把密钥对数据进行加解密 TLS 里有非常多的对称加密算法可供选择,比如 RC4、DES、3DES、AES、ChaCha20 等,但前三种算法都被认为是不安全的,通常都禁止使用,目前常用的只有 AES 和 ChaCha20。 ChaCha20 是 Google 设计的另一种加密算法,密钥长度固定为 256 位 AES加密算法详解 AES:高级加密标准,密钥长度可以是128、192 或

支付相关-证书知识学习2

。_饼干妹妹 提交于 2019-12-06 02:55:18
参考资料:关于pfx证书和cer证书 资料地址:https://blog.csdn.net/a1510841693/article/details/84110107 cer证书只包含公钥信息,一般只能用于解密使用(解密该公钥对应的私钥加密的数据)。 pfx证书既可以导出为pfx证书,也可以导出为cer证书。 pfx证书导出时,会提示是否导出私钥,导出私钥即pfx证书,不到出则是cer证书。 如果选择导出私钥,出于安全性考虑,浏览器会提示你指定一个密码用于保护该私钥,日后再次导入该pfx证书时,浏览器会要求你提供该私钥保护密码。 导入pfx证书时,需要指定私钥保护密码,另外还有一个选项“标志此密钥为可导出密钥。这将允许您稍后备份或传输密钥”,出于安全性考虑,该选项默认是不勾选的,如果不勾选,下次从浏览器导出该证书时,则无法导出pfx格式了,只能导出不包含私钥的cer格式了。 -------------------------------------------------------------------------------- 参考资料:pfx 百度百科 资料地址:https://baike.baidu.com/item/pfx/7168664?fr=aladdin 公钥加密技术12号标准。 公钥 加密技术12号标准(Public Key Cryptography

iOS签名授权机制

倖福魔咒の 提交于 2019-12-06 01:22:55
iOS签名授权机制 原文 http://Joywii.github.io/blog/2016/03/02/iosqian-ming-shou-quan-ji-zhi/ 几个重要的概念 1. 非对称加密 非对称加密算法需要两个密钥: 公开密钥(publickey )和 私有密钥(privatekey) 。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。(私钥是要保密的,公钥可以公开) RSA 是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击,已被ISO推荐为公钥数据加密标准。 RSA 是以三个发明者的姓氏首字母组成的。 2. 摘要算法 数据摘要算法是密码学算法中非常重要的一个分支,它通过对所有数据提取指纹信息以实现数据签名、数据完整性校验等功能,由于其不可逆性,有时候会被用做敏感信息的加密。数据摘要算法也被称为哈希(Hash)算法、散列算法。 摘要算法也可以理解为将任意长度的数据,通过一个算法,得到一个固定长度的数据。典型的摘要算法,比如大名鼎鼎的 MD5 和 SHA 。 3. 数字签名 数字签名就是利用 非对称加密 和 摘要算法 来传输数据,保证数据的 完整性 和 合法性 。验证过程如下: 1. 发送方使用给一个摘要算法( MD5 )得到要发送数据的摘要

软件设计师05-信息安全基础知识

你说的曾经没有我的故事 提交于 2019-12-05 22:50:15
安全属性 系统的安全属性:保密性、完整性、可用性、不可抵赖性。 加密 非对称加密 RSA、Elgamal、ECC 对称加密 DES、3DES、AES、RC-5、IDEA 优点:加密速度快 信息摘要 信息摘要是为了解决信息完整性,一般还要配合数字签名才能真正解决信息完整性(防止明文和摘要同时被截取并被篡改一致) 数字签名 数字签名是一个防抵赖技术。 误区 秘钥并未起到加密作用,只是起到身份验证作用,所以不能用加密解密的说法,要用 数字签名、数字签名验证 。 数字签名过程:A端私钥加密过程。 数字签名验证过程:B端公钥解密过程。 过程 A用自己的私钥加密消息摘要后发送给B,然后B用A的公钥解密了(证明这是A的秘钥加密的,是A发的消息,A不可抵赖)。 数字信封与PGP 对称加密适合加密大信息量,非对称加密适合小信息量加密。 用对称秘钥加密原文传输,用非对称秘钥加密对称秘钥然后传输。 CA机构颁发数字证书。 邮件加密系统 1.A用对称秘钥K对正文进行加密,形成邮件密文发送给B。(对称秘钥加密正文) 2.A用B的公钥Eb加密秘钥K(数字信封),B接受数字信封后用自己的私钥Db进行解密,得到K后可以对邮件密文进行解密。(数字信封加密对称秘钥,加密传输到此结束) 3.A把正文形成摘要(防篡改),对摘要用A的私钥Da进行加密(数字签名),B端接收后用A的公钥Ea进行解密(数字签名验证)

6.5最详细的 HTTPS 科普扫盲帖

时间秒杀一切 提交于 2019-12-05 13:49:02
为什么需要https HTTP是明文传输的,也就意味着,介于发送端、接收端中间的任意节点都可以知道你们传输的内容是什么。这些节点可能是路由器、代理等。 举个最常见的例子,用户登陆。用户输入账号,密码,采用HTTP的话,只要在代理服务器上做点手脚就可以拿到你的密码了。 用户登陆 –> 代理服务器(做手脚)–> 实际授权服务器 在发送端对密码进行加密?没用的,虽然别人不知道你原始密码是多少,但能够拿到加密后的账号密码,照样能登陆。 HTTPS是如何保障安全的 HTTPS其实就是 secure http 的意思啦,也就是HTTP的安全升级版。稍微了解网络基础的同学都知道,HTTP是应用层协议,位于HTTP协议之下是传输协议TCP。TCP负责传输,HTTP则定义了数据如何进行包装。 HTTP –> TCP (明文传输) HTTPS相对于HTTP有哪些不同呢?其实就是在HTTP跟TCP中间加多了一层加密层 TLS/SSL 。 神马是TLS/SSL? 通俗的讲,TLS、SSL其实是类似的东西,SSL是个加密套件,负责对HTTP的数据进行加密。TLS是SSL的升级版。现在提到HTTPS,加密套件基本指的是TLS。 传输加密的流程 原先是应用层将数据直接给到TCP进行传输,现在改成应用层将数据给到TLS/SSL,将数据加密后,再给到TCP进行传输。 大致如图所示。 就是这么回事。将数据加密后再传输

Java中常见的几种加密算法

浪尽此生 提交于 2019-12-05 02:46:50
1. BASE64 Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,大家可以查看RFC2045~RFC2049,上面有MIME的详细规范。Base64编码可用于在HTTP环境下传递较长的标识信息。例如,在Java Persistence系统Hibernate中,就采用了Base64来将一个较长的唯一标识符(一般为128-bit的UUID)编码为一个字符串,用作HTTP表单和HTTP GET URL中的参数。在其他应用程序中,也常常需要把二进制数据编码为适合放在URL(包括隐藏表单域)中的形式。此时,采用Base64编码具有不可读性,即所编码的数据不会被人用肉眼所直接看到。 2. MD5 MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。将数据(如汉字)运算为另一固定长度值,是杂凑算法的基础原理,MD5的前身有MD2、MD3和MD4。广泛用于加密和解密技术,常用于文件校验。校验?不管文件多大,经过MD5后都能生成唯一的MD5值。好比现在的ISO校验,都是MD5校验。怎么用?当然是把ISO经过MD5后产生MD5的值。一般下载linux-ISO的朋友都见过下载链接旁边放着MD5的串。就是用来验证文件是否一致的。 3.SHA

CA、加签、验签

佐手、 提交于 2019-12-04 20:00:31
加密:加密与解密是同一秘钥称为对称加密,用公钥加密、用私钥解密称为非对称加密。 CA:证书中心"(certificate authority,简称CA),为需认证的公钥做认证的机构。CA用自己的私钥(标记为CA私钥)对需认证的公钥(如公钥AB)和相关信息进行加密,就生成数字证书。数字证书要用CA提供的公钥(标记为CA公钥)解密,这样就可以得到被认证的公钥与相关信息。 (A方)加签:先用Hash函数对数据生成数据的摘要,再使用私钥(标记为私钥AB),对这个摘要加密,就生成数字签名。将这个数字签名和数据一起发送给B方,称为“加入数字签名”过程,简称加签。 (B方)验签:收到A方的数字签名和数据后,取出数字签名,用公钥(标记为公钥AB)解密,如果能得到摘要信息,说明的确是持有与该公钥匹配的私钥的发送方(A方)发出。对收到的数据使用Hash函数生成摘要,将得到的摘要结果,与解密出来的摘要进行对比。如果两者一致,就证明数据未被修改过。这个过程称为验证数字签名,简称验签。 比较复杂的情况是,B方持有公钥AB被C方的流氓软件篡改为公钥BC,但B方还不知道被篡改了。若C方发送它生成的数字签名和数据到B方,B方用被篡改的公钥能解密出摘要并且对比摘要信息也没问题,则B方会误认为该数据和数字签名还是A方发出。所以需要CA对公钥AB和相关信息做成数字证书,A方向B方传输数据时,不仅附上A方数据签名

图解公钥与私钥

a 夏天 提交于 2019-12-03 23:05:08
在学习ssh时,一定有不少人对公钥和私钥产生过不解。在搜索公钥跟私钥的理解时,发现了这篇有趣的图解小文章,与大家共享。 1. 鲍勃有两把钥匙,一把是公钥,另一把是私钥。 2. 鲍勃把公钥送给他的朋友们----帕蒂、道格、苏珊----每人一把。 3. 苏珊要给鲍勃写一封保密的信。她写完后用鲍勃的公钥加密,就可以达到保密的效果。 4. 鲍勃收信后,用私钥解密,就看到了信件内容。这里要强调的是,只要鲍勃的私钥不泄露,这封信就是安全的,即使落在别人手里,也无法解密。 5. 鲍勃给苏珊回信,决定采用"数字签名"。他写完后先用Hash函数,生成信件的摘要(digest)。 6. 然后,鲍勃使用私钥,对这个摘要加密,生成"数字签名"(signature)。 7. 鲍勃将这个签名,附在信件下面,一起发给苏珊。 8. 苏珊收信后,取下数字签名,用鲍勃的公钥解密,得到信件的摘要。由此证明,这封信确实是鲍勃发出的。 9. 苏珊再对信件本身使用Hash函数,将得到的结果,与上一步得到的摘要进行对比。如果两者一致,就证明这封信未被修改过。 10. 复杂的情况出现了。道格想欺骗苏珊,他偷偷使用了苏珊的电脑,用自己的公钥换走了鲍勃的公钥。此时,苏珊实际拥有的是道格的公钥,但是还以为这是鲍勃的公钥。因此,道格就可以冒充鲍勃,用自己的私钥做成"数字签名",写信给苏珊,让苏珊用假的鲍勃公钥进行解密。 11. 后来

计算机网络学习笔记:第七章.网络安全与攻防

丶灬走出姿态 提交于 2019-12-03 20:46:25
本文是《计算机网络》的自学课程,视频地址为: https://www.bilibili.com/video/av47486689。仅做个人学习使用,如有侵权,请联系删除 第七章:网络安全 安全分类 安全有: 数据安全(对文件的访问、储存) 应用程序安全(要确保应用程序是安全的) 操作系统安全(操作系统漏洞,要定时升级、设置用户权限) 网络安全:网络传输信息时的安全 物理安全 用户安全教育 本课程主要关注网络安全 网络安全问题概述 CAIN软件截获信息、篡改信息 CAIN只能对本网段起作用。 使用的原理依然是ARP欺骗 DNS劫持(修改DNS解析的结果) 如果交换机支持监视端口的功能的话,将该设备设置为内网的监视端口设备也能做的这样的效果 CAIN必须结合抓包工具来实现 CAIN只保留账号密码信息 DNS欺骗: DNS常常被用来做钓鱼网站 伪造 伪造身份,从而得以访问有访问控制的资源 例如设置网站只有特定ip才能访问: 直接访问就是这样的: 一般冒充设备要等到原设备关机等时候,防止出现冲突、露出马脚 这个不需要其他软件,直接改ip等就可以 中断 来源: https://baike.baidu.com/item/DoS%E6%94%BB%E5%87%BB DoS是Denial of Service的简称,即拒绝服务,造成DoS的攻击行为被称为DoS攻击