数字证书

公钥私钥加密解密数字证书数字签名详解

*爱你&永不变心* 提交于 2020-01-13 12:02:34
决心花一些时间,将这些概念和使用的过程彻底弄清楚。最先找到的文章是: 数字签名是什么? (阮一峰博客),读了一遍,又找了一些资料,终于把这些概念弄清楚了,这里整理记录一下。 首先明确几个基本概念: 1、密钥对,在非对称加密技术中,有两种密钥,分为私钥和公钥,私钥是密钥对所有者持有,不可公布,公钥是密钥对持有者公布给他人的。 2、公钥,公钥用来给数据加密,用公钥加密的数据只能使用私钥解密。 3、私钥,如上,用来解密公钥加密的数据。 4、摘要,对需要传输的文本,做一个HASH计算,一般采用SHA1,SHA2来获得。 5、签名,使用私钥对需要传输的文本的摘要进行加密,得到的密文即被称为该次传输过程的签名。 6、签名验证,数据接收端,拿到传输文本,但是需要确认该文本是否就是发送发出的内容,中途是否曾经被篡改。因此拿自己持有的公钥对签名进行解密(密钥对中的一种密钥加密的数据必定能使用另一种密钥解密。),得到了文本的摘要,然后使用与发送方同样的HASH算法计算摘要值,再与解密得到的摘要做对比,发现二者完全一致,则说明文本没有被篡改过。 上面实际上介绍了加密解密和数字签名两个概念和实现过程,二者的过程正好是相反的。 在签名的过程中,有一点很关键,收到数据的一方,需要自己保管好公钥,但是要知道每一个发送方都有一个公钥,那么接收数据的人需要保存非常多的公钥,这根本就管理不过来

https数字证书基础概念(一)

空扰寡人 提交于 2020-01-13 05:25:22
基础概念 密钥 公钥密码体制 对称加密算法 非对称加密算法 CA 数字证书 摘要 摘要算法 数字签名 参考资料 后记 密钥 密钥,一般是一个字符串或数字,在加密或解密时传递给加密或解密算法 。下面公钥密码体制中提到的公钥和私钥都是密钥,只是公钥是加密时使用的密钥,私钥是解密时使用的密钥。 公钥密码体制 公钥密码体制(public-key cryptography)由公钥、私钥、加密算法三部分组成, 其中由公钥加密的内容只能由私钥解密 ,也就是说除了私钥之外,由公钥加密的内容无法被解密。公钥密码体制的加解密过程如下: 加密 :使用 加密算法 和 公钥 对明文进行加密,得到密文。 解密:使用 解密算法 和 私钥 对密文进行解密,得到明文。 公钥密码体制的公钥和算法都是公开的,只有私钥是保密的 。所以在实际使用中,都是生成一对公钥和私钥,把公钥发布出去,自己保留私钥。 对称加密算法 在对称加密算法(symmetric key algorithms)中,加密和解密时使用的密钥是相同的 。在安全通信之前,会要求通信双方商定一个密钥,泄漏密钥就意味着任何人都可以对发送或接收的消息解密;因此对称加密算法要保证安全性的话,密钥只能让使用的人知道,不能对外公开。 对称加密算法的特点: 算法公开、计算量小、加密速度快、加密效率高 。 非对称加密算法 在非对称加密算法(asymmetric key

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

十年热恋 提交于 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,通过这个例子我想你们基本明白非对称加密了

设置通过数字证书方式登录远程连接Linux服务器,禁止root账户远程密码方式远程连接服务器

混江龙づ霸主 提交于 2020-01-08 22:21:18
//前几步是做过实验的,会的盆友可以直接跳过看后面部分 一、首先开启SSH数字证书方式登录的策略 修改配置文件/etc/ssh/sshd_config,下列三项为图中的样子,去掉注释启用配置,开启数字证书登录方式 RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys 二、设置公私钥 过程比较简单,之前是做过实验写过博客的(https://www.cnblogs.com/hai-long/p/10417046.html),所以这里简单写。打开puttygen.exe,点击Generate,然后鼠标在上面的红框里划拉,生成密钥对,进度条满就成功了。 上面的框是公钥需要保存服务器里面,下面的按钮可以生成私钥,这是自己保存在本地,使用这个进行连接服务器,中间的Key passphrase可以为私钥设置密码。 本地保存私钥 服务器保存公钥 1、首先创建mkdir /root/.ssh 2、修改目录权限为700,命令 chmod 700 /root/.ssh/ 3、新建文件anthorized_keys,命令vim /root/.ssh/authorized_keys,将公钥粘贴进去(文本框里的需要全部粘贴) 三、数字证书方式登录 首先输入虚拟机IP 然后点击左侧SSH

公钥和私钥

落爺英雄遲暮 提交于 2019-12-24 14:07:21
一直以来对公钥和私钥都理解得不是很透彻,感觉到模棱两可。今天在网上找了半天,通过查看对这个密钥对的理解,总算弄清楚了。 公钥和私钥就是俗称的不对称加密方式,是从以前的对称加密(使用用户名与密码)方式的提高。 用电子邮件的方式说明一下原理。 使用公钥与私钥的目的就是实现安全的电子邮件,必须实现如下目的: 1. 我发送给你的内容必须加密,在邮件的传输过程中不能被别人看到。 2. 必须保证是我发送的邮件,不是别人冒充我的。 要达到这样的目标必须发送邮件的 两人都有公钥和私钥 。 公钥,就是给大家用的,你可以通过电子邮件发布,可以通过网站让别人下载,公钥其实是用来加密/验章用的。私钥,就是自己的,必须非常小心保存,最好加上 密码,私钥是用来解密/签章,首先就Key的所有权来说,私钥只有个人拥有。 公钥与私钥的作用是:用公钥加密的内容只能用私钥解密,用私钥加密的内容只能 用公钥解密。 比如说,我要给你发送一个加密的邮件。首先,我必须拥有你的公钥,你也必须拥有我的公钥。 首先,我用你的公钥给这个邮件加密,这样就保证这个邮件不被别人看到,而且保证这个邮件在传送过程中没有被修改。你收到邮件后,用 你的私钥就可以解密 ,就能看到内容。 其次我用我的私钥给这个邮件加密,发送到你手里后,你可以用我的公钥解密。因为私钥只有我手里有,这样就保证了这个邮件是我发送的。 当A->B资料时,A会使用 B的公钥加密

数字签名和数字证书

烈酒焚心 提交于 2019-12-24 14:04:18
到底什么是“数字签名”(digital signature)和“数字证书”digital certificate)?对这些问题的理解,一直模模糊糊,很多细节搞不清楚。 今天,读完一篇 通俗易懂的文章 后,思路豁然开朗。为了加深记忆, 这篇文章的翻译版 记录如下。 原理 1. 鲍勃有两把钥匙,一把是公钥,另一把是私钥。 2. 鲍勃把公钥送给他的朋友们----帕蒂、道格、苏珊----每人一把。 3. 苏珊要给鲍勃写一封保密的信。她写完后用鲍勃的公钥加密,就可以达到保密的效果。 4. 鲍勃收信后,用私钥解密,就看到了信件内容。这里要强调的是,只要鲍勃的私钥不泄露,这封信就是安全的,即使落在别人手里,也无法解密。 5. 鲍勃给苏珊回信,决定采用“数字签名”。他写完后先用Hash函数,生成信件的摘要(digest)。 6. 然后,鲍勃使用私钥,对这个摘要加密,生成“ 数字签名 ”(signature)。 7. 鲍勃将这个签名,附在信件下面,一起发给苏珊。 8. 苏珊收信后,取下数字签名,用鲍勃的公钥解密,得到信件的摘要。由此证明,这封信确实是鲍勃发出的。 9. 苏珊再对信件本身使用Hash函数,将得到的结果,与上一步得到的摘要进行对比。如果两者一致,就证明这封信未被修改过。 10. 复杂的情况出现了。道格想欺骗苏珊,他偷偷使用了苏珊的电脑,用自己的公钥换走了鲍勃的公钥。此时

数字签名数字证书

浪子不回头ぞ 提交于 2019-12-24 13:05:32
1.用一套图片来说明数字签名和证书 1. 鲍勃有两把钥匙,一把是公钥,另一把是私钥。公钥是对外公开的,私钥只有鲍勃自己知道。 2.鲍勃把公钥送给他的朋友们----帕蒂、道格、苏珊----每人一把 ------------------------------------------------------------------------- 3.苏珊要给鲍勃写一封保密的信。她写完后用鲍勃的公钥加密,就可以达到保密的效果。 ----------------------------------------------------------------------------- 4.鲍勃收信后,用私钥解密,就看到了信件内容。这里要强调的是,只要鲍勃的私钥不泄露,这封信就是安全的,即使落在别人手里,也无法解密。 5.鲍勃给苏珊回信,决定采用"数字签名"。他写完后先用Hash函数,生成信件的摘要(digest)。 6.然后,鲍勃使用私钥,对这个摘要加密,生成"数字签名"(signature)。 7.鲍勃将这个签名,附在信件下面,一起发给苏珊。 8.苏珊收信后,取下数字签名,用鲍勃的公钥解密,得到信件的摘要。由此证明,这封信确实是鲍勃发出的。 9.苏珊再对信件本身使用Hash函数,将得到的结果,与上一步得到的摘要进行对比。如果两者一致,就证明这封信未被修改过。 10.复杂的情况出现了