数字签名

HTTPS为什么更安全,先看这些 , 网络加密 , 加密解密

跟風遠走 提交于 2020-01-13 02:48:43
投递人 itwriter 发布于 2017-02-27 21:35 评论(10) 有1957人阅读 原文链接 [收藏] « »   HTTPS 是建立在密码学基础之上的一种安全通信协议,严格来说是基于 HTTP 协议和 SSL/TLS 的组合。理解 HTTPS 之前有必要弄清楚一些密码学的相关基础概念,比如:明文、密文、密码、密钥、对称加密、非对称加密、信息摘要、数字签名、数字证书。接下来我会逐个解释这些术语,文章里面提到的『数据』、『消息』都是同一个概念,表示用户之间通信的内容载体,此外文章中提到了以下几个角色: Alice:消息发送者 Bob:消息接收者 Attacker:中间攻击者 Trent:第三方认证机构 密码   密码学中的“密码”术语与网站登录时用的密码(password)是不一样的概念,password 翻译过来其实是“口令”,它是用于认证用途的一组文本字符串。   而密码学中的密码(cipher)是一套算法(algorithm),这套算法用于对消息进行加密和解密,从明文到密文的过程称之为加密,密文反过来生成明文称之为解密,加密算法与解密算法合在一起称为密码算法。 密钥   密钥(key)是在使用密码算法过程中输入的一段参数。同一个明文在相同的密码算法和不同的密钥计算下会产生不同的密文。很多知名的密码算法都是公开的,密钥才是决定密文是否安全的重要参数,通常密钥越长

HTTPS 为什么更安全,先看这些

安稳与你 提交于 2020-01-13 02:47:52
HTTPS 是建立在密码学基础之上的一种安全通信协议,严格来说是基于 HTTP 协议和 SSL/TLS 的组合。理解 HTTPS 之前有必要弄清楚一些密码学的相关基础概念,比如:明文、密文、密码、密钥、对称加密、非对称加密、信息摘要、数字签名、数字证书。接下来我会逐个解释这些术语,文章里面提到的『数据』、『消息』都是同一个概念,表示用户之间通信的内容载体,此外文章中提到了以下几个角色: Alice:消息发送者 Bob:消息接收者 Attacker:中间攻击者 Trent:第三方认证机构 密码 密码学中的“密码”术语与网站登录时用的密码(password)是不一样的概念,password 翻译过来其实是“口令”,它是用于认证用途的一组文本字符串。 而密码学中的密码(cipher)是一套算法(algorithm),这套算法用于对消息进行加密和解密,从明文到密文的过程称之为加密,密文反过来生成明文称之为解密,加密算法与解密算法合在一起称为密码算法。 密钥 密钥(key)是在使用密码算法过程中输入的一段参数。同一个明文在相同的密码算法和不同的密钥计算下会产生不同的密文。很多知名的密码算法都是公开的,密钥才是决定密文是否安全的重要参数,通常密钥越长,破解的难度越大,比如一个8位的密钥最多有256种情况,使用穷举法,能非常轻易的破解。根据密钥的使用方法,密码可分为对称加密和公钥加密。 对称加密

网络协议相关面试问题-https加密算法相关面试问题

浪尽此生 提交于 2020-01-13 02:47:18
密钥: 密钥是一种参数,它是在使用密码cipher算法过程中输入的参数,同一个 明文 在相同的密码算法和不同的密钥计算下会产生不同的 密文 。所以说算法既使公开了但是密钥参数不同其结果也是不同的,其中关于明文和密文下面用一张图来描述一下: 而密钥又分为对称与不对称两种,下面具体来看一下: 密钥:对称 又称为共享密钥加密,对称密钥在加密和解密的过程中使用的密钥是相同的,常见的对称加密算法有DES、3DES、AES、RC5、RC6。 优点是计算速度快; 缺点是密钥需要在通讯的两端共享,也就是不安全啦,因为一个密钥对应两端。 密钥:非对称 又称为公开密钥加密。服务端会生成一对密钥,一个私钥保存在服务端,仅自己知道,另一个是公钥,公钥可以自由发布供任何人使用。 客户端的明文通过公钥加密过的密文需要服务端生成的私钥来解密。 与对称密钥加密相比,非对称加密无需在客户端与服务端之间共享密钥,只要私钥不发给任何用户,即使公钥在网上被截获,也无法被解密,仅有被窃取的公钥是没有任何用处的。 密钥:RSA加密简单过程 服务器生成配对的公钥和私钥。 私钥保存在服务端,公钥发关给客户端。 客户端使用公钥加密明文传输给服务端。 服务端使用私钥解密密文得到明文。 数字签名: 思考这样一个问题:数据在浏览器和服务器之间传输时,有可能在传输过程中被冒充的盗贼把内容替换了

面试 -- 数字签名与数字证书

十年热恋 提交于 2020-01-13 02:45:33
数字签名(Digital Signature): 数据在浏览器和服务器之间传输时,有可能在传输过程中被冒充的盗贼把内容替换了,那么如何保证数据是真实服务器发送的而不被调包呢,同时如何保证传输的数据没有被人篡改呢,要解决这两个问题就必须用到数字签名,数字签名就如同日常生活的中的签名一样,一旦在合同书上落下了你的大名,从法律意义上就确定是你本人签的字儿,这是任何人都没法仿造的,因为这是你专有的手迹,任何人是造不出来的。那么在计算机中的数字签名怎么回事呢?数字签名就是用于验证传输的内容是不是真实服务器发送的数据,发送的数据有没有被篡改过,它就干这两件事,是非对称加密的一种应用场景。不过他是反过来用私钥来加密,通过与之配对的公钥来解密。 第一步:服务端把报文经过Hash处理后生成摘要信息Digest,摘要信息使用私钥private-key加密之后就生成签名,服务器把签名连同报文一起发送给客户端。 第二步:客户端接收到数据后,把签名提取出来用public-key解密,如果能正常的解密出来Digest2,那么就能确认是对方发的。 第三步:客户端把报文Text提取出来做同样的Hash处理,得到的摘要信息Digest1,再与之前解密出来的Digist2对比,如果两者相等,就表示内容没有被篡改,否则内容就是被人改过了。因为只要文本内容哪怕有任何一点点改动都会Hash出一个完全不一样的摘要信息出来。

HTTPS的中那些加密算法

老子叫甜甜 提交于 2020-01-13 02:45:01
密码学在计算机科学中使用非常广泛,HTTPS就是建立在密码学基础之上的一种安全的通信协议。HTTPS早在1994年由网景公司首次提出,而如今在众多互联网厂商的推广之下HTTPS已经被广泛使用在各种大小网站中。在完全理解HTTPS之前,有必要弄清楚一些密码学相关的概念,比如:明文、密文、密码、密钥、对称加密、非对称加密、摘要、数字签名、数字证书。 密码(cipher) 密码学中的密码(cipher)和我们日常生活中所说的密码不太一样,计算机术语『密码 cipher』是一种用于加密或者解密的算法,而我们日常所使用的『密码 password』是一种口令,它是用于认证用途的一组文本字符串,这里我们要讨论的是前者:cipher。 密钥(key) 密钥是一种参数,它是在使用密码(cipher)算法过程中输入的参数。同一个明文在相同的密码算法和不同的密钥计算下会产生不同的密文。很多知名的密码算法都是公开的,密钥才是决定密文是否安全的重要参数,通常密钥越长,破解的难度越大,比如一个8位的密钥最多有256种情况,使用穷举法,能非常轻易的破解,知名的DES算法使用56位的密钥,目前已经不是一种安全的加密算法了,主要还是因为56位的密钥太短,在数小时内就可以被破解。密钥分为对称密钥与非对称密钥。 明文/密文 明文(plaintext)是加密之前的原始数据,密文是通过密码(cipher

面试官:说说你对网络请求加密的理解?

天大地大妈咪最大 提交于 2020-01-12 01:08:07
在纸质合同中,由于签名字迹的不可复制性,盖章的唯一性以及纸质合同对涂改的防范措施(比如金额用大写)可以保证上述两点,从而具备法律效应,那么PDF合同如何保障呢?两个重要的概念就是数字签名和数字证书。这项技术广泛运用于文件认证,数据传输等。 为了弄懂这些,我花了2天时间从加密算法开始,到数字签名和CA证书,最后再重新认识下https的原理。 这个也是面试官长问的题目,所以我也顺便整理了下面试题 关注我,私信我【面试题】领取 非对称加密 加密我了解的不多,只知道有这么两种算法:对称加密和非对称加密。 对称加密 :加密和解密的密钥一样,比如用123加密就是用123解密,但是实际中密码都是普通数据在互联网传输的,这样一点密码被中间人截取并破解,加密直接被攻破。 非对称加密 :把密钥分为公钥和私钥,公钥是公开的所有人都可以认领,私钥是保密的只有一个人知道。假设A要发送一 封Email给B,他不想让任何其他人在传输中看到Email的内容,做法就是使用B的公钥对Email加密,只有B的私钥能够解密(B的私钥唯一性保证信件不会泄露)。 某天出意外了,有***冒充A给B发送Email,并且也用B的公钥加密,导致B无法区分这封邮件是否来自A。怎么办?此时A可以用自己的私钥加密,那么B收到邮件后如果用A的公钥可以解密邮件,那么证明这封信肯定来自于A。 OK,通过这个例子我想你们基本明白非对称加密了

Alamofire -安全认证

穿精又带淫゛_ 提交于 2020-01-07 01:38:54
基于Alamofire 5.0.0 分析网络的安全认证。同时介绍一些 HTTP 与 HTTPS 的一些相关知识 HTTP 特性 无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。 无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有 GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。 灵活:HTTP 允许传输任意类型的数据对象。正在传输的类型由Content-Type(Content-Type 是 HTTP包 中用来表示内容类型的标识)加以标记。 HTTP 存在的问题 1.安全性差 2.每次请求传输结束,重新请求又要建立连接 3.后续处理之前信息必须重传,损耗性能 加密算法 1.对成加密 在对称加密当中加密使用的秘钥和解密使用的秘钥是相同的。也就是加密和解密都是同一个秘钥。这样秘钥的安全性就非常重要,秘钥是一定不能公开的 存在的缺点:对称加密的缺点就在于如果秘钥要是泄露

现代密码学复习要点总结(谷利泽)

只愿长相守 提交于 2020-01-03 05:32:16
文章目录 第一章 密码学概论 信息安全(密码编码学:认证体制+保密体制) 1.信息安全基础概念 2.深刻理解现代密码学在网络信息安全保障中的作用 3.网络信息系统中的安全服务与密码学算法的关系 第二章 密码学基础 1.密码学的相关概念 2密码学加密系统的五元组 第三章 古典密码体制 1.理解“代替”和“置换” 2.能够对使用古典密码加密的密文进行破译 第四章 分组密码 1.理解分组密码算法如何实现“扩散”和“混乱”的 2.S-P网络、雪崩效应 DES加密流程图 3.DES(分组长度、迭代轮数、密钥长度、S盒、P盒、加密思想) 4.3DES、AES主要特点 5.AES的字节代换和列混淆 AES流程图 第六章 1.安全的哈希函数的性质和应用 2.MD5和SHA1的主要特点 3. 消息认证的目的和方法 4.认证函数的三种实现方法 5.能够对一个认证协议进行分析 第八章 数字签名 1.数字签名要解决的问题 2.数字签名的安全模型、性质 3.RSA签名算法以及存在的安全问题 4.ElGamal签名算法以及主要的问题 5.特殊的签名算法以及适应的应用场景 第九章 密码协议 1.各种协议的特点,解决的问题 第十章 密钥管理 1.几类密钥的作用 2.密钥的生成 3.密钥的存储 4.密钥的分发 5.集中式密钥分发 6.分布式密钥分发(DeffieHellman密钥协商) 7.为什么要进行公钥认证

Java实现数字签名

半城伤御伤魂 提交于 2020-01-02 15:53:22
、数字签名算法概述 签名认证是对非对称加密技术与数字摘要技术的综合运用,指的是将通信内容的摘要信息使用发送者的私钥进行加密,然后将密文与原文一起传输给信息的接收者,接收者通过发送者的公钥信息来解密被加密的摘要作息,然后使用与发送者相同的摘要算法,对接收到的内容采用相同的方式方式产生摘要串,与解密的摘要串进行对比,如果相同,则说明接收到的内容是完整的,在传输过程中没有受到第三方的篡改,否则说明通信内容已被第三方修改。 我们知道,每个人都有其特有的私钥,且都是对外界保密的,而通过私钥加密的信息,只能通过其对应的公钥来进行解密。因此,私钥可以代表私钥持有者的身份,可以通过私钥对应的公钥来对私钥拥有者的身份进行校验。通过数字签名,能够确认消息是消息发送方签名并发送过来的,因为其他人根本假冒不了消息发送方的签名,他们没有消息发送者的私钥。而不同的内容,摘要信息千差万别,通过数字摘要算法,可以确保传输内容的完整性,如果传输内容在中途被篡改了,对应的数字签名的值也将发生改变。 数字签名:带有密钥(公钥,私钥)的消息摘要算法。私钥用于签名,公钥用于验证。 数字签名的作用: 验证数据的完整性,认证数据来源,抗否认。 数字签名实现的具体原理: 1、 将报文按双方约定的HASH算法计算得到一个固定位数的报文摘要。在数学上保证,只要改动报文中任何一位,重新计算出的报文摘要值就会与原先的值不相符