公钥加密

HTTP 升级到 HTTPS 基础知识详解

半城伤御伤魂 提交于 2019-11-28 17:23:38
HTTP 与 HTTPS 详解 首发于公众号:吴先生的伊甸园 这俩天将个人做的小网站从 HTTP 升级成了 HTTPS,使用的是 Apache2.4 的服务器。在此期间,详细的学习了 https 相关的知识和如何配置 Apache 升级成 HTTPS。 本篇文章由以下部分构成 什么是 HTTP 什么是 HTTPS 为什么要使用 HTTPS HTTPS 是如何加密的 什么是 CA HTTP 和 HTTPS 连接是如何建立的 什么是证书 如何获取证书 什么是 HTTP HTTP 指的是超文本传输协议(HyperText Transfer Protocol)。首先,它是一个 协议 。「协议」是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规则。也就是大家事先约定好的,统一执行的标准。众所周知,HTTP 是无状态,无连接的。首先讲一下如何理解无连接。无连接指的是在 HTTP1.0 版本中,每次建立起的 TCP 连接只处理一个请求,收到客户的应答之后就立即断开链接。也就是说假如一个网页内仅有十张图片,那么需要建立-断开链接十一次。这就是无连接的含义。但是这种机制显然无法应对现在丰富的网页内容,每一个网页都包含大量的资源文件,如果每个连接仅传输一个文件就断开太过于浪费服务器资源了。所以在 HTTP1.1 中支持了持久性连接,详细点说就是在 HTTP 头部行中 Connection

网络协议 13 - HTTPS 协议

好久不见. 提交于 2019-11-28 16:09:28
之前说了 HTTP 协议的各种问题,但是它还是陪伴着互联网、陪伴着我们走过了将近二十年的风风雨雨。现在有很多新的协议尝试去取代它,来解决性能、效率等问题,但它还还能靠着“多年的情分”活的滋润。然而,近些年,因为致命的安全问题,它不得不升级成 HTTPS 了。     就拿我们叫外卖来说,我们点外卖的数据包被黑客截获,然后在服务器回复你之前给你回复一个假消息:“好啊,你该付款了,把银行卡号、密码拿来。”,这时如果你真的把卡号和密码发给他,那你的钱包就真的危险了。     为了解决这些问题,我们给 HTTP 引入了加密,变成了 HTTPS。大家千万不要以为 HTTPS 是个新的协议,它实际上就是: HTTPS = HTTP + SSL 层     这里的 SSL 层的主要工作就是加密。加密方式一般分为两种: 对称加密 和 非对称加密 。     这两种加密算法,对称加密要比非对称加密的效率要高很多,性能也好很多,所以交互的场景下多用对称加密。 对称加密     在对称加密算法中, 加密和解密的密钥是相同的 。也就是说,加密和解密使用的是同一个密钥。因此,使用者一定要做好保密功能,不能让第三方知道。     假设叫外卖的你和第三方约定了一个密钥 A,你发送请求的时候用 A 进行加密,外卖网站也用 A 进行解密,这样就算黑客截获了你们的请求,但是没有正确的密钥,还是破解不了。    

公钥、私钥和证书

喜你入骨 提交于 2019-11-28 13:21:21
理解公钥和私钥首先要区分 加密 和 认证 这两个概念! 加密和认证 加密是将数据资料加密,使别人即使获取加密数据,也无法获取正确的资料内容,重点在于数据的安全性。 认证是是确定数据的真实发送方,使别人无法伪造或冒充,重点在于用户的真实性。 公钥和私钥 公钥和私钥通常称非对称加密(又称 不对称加密) 使用公钥和私钥的目的是为了安全的数据传输,必须实现如下目的: 发送方将数据加密,在数据传输过程中不能被别人看到真实数据内容 接收方能确定数据是发送方发送的数据,不是别人冒充。 首先解释公钥和私钥的意义和作用: 公钥:是公布出去给别人用的,可以被很多人获取。用来加密和验签 私钥:只能自己持有,并且不可以被其他人知道,用来解密和签名 公钥和私钥的作用:公钥加密私钥解密数据,私钥加密公钥解密。 公钥和私钥有以下原则:(密钥包括公钥和私钥) 一个公钥对应一个私钥 密钥对中,让大家都知道的是公钥,自己知道是私钥 如果用其中一个密钥加密数据,则只有对应的那个密钥才能解密 如果用其中一个密钥可以进行解密数据,则该数据必然由对应密钥进行加密 要达到数据安全传输的目的,必须发送方和接收方都持有对方的公钥和自己私钥,即任意一方持有自己的私钥和对方的公钥。 为了数据的安全性,A需要使用B的公钥来给数据加密,这样只有B的私钥才可以解密数据,这样保证了数据的安全性,这是数字签名。 为了保证数据发送方的真实性

RSA算法

◇◆丶佛笑我妖孽 提交于 2019-11-28 12:11:45
RSA算法是一种非对称加密算法,所谓非对称,就是指该算法需要一对秘钥,使用其中一个加密,则需要用另一个才能解密.秘钥分为公钥和私钥,私钥自己保存,公钥提供给对方. RSA加密和解密:加密就是使用对方的公钥对数据进行加密,然后发送给对方,接收方使用私钥进行解密. RSA签名和验签:使用私钥将明文进行签名生成密文串与明文一起传输.对方收到数据后使用公钥与明文和密文串进行验签.如果验签通过就说明:第一点,数据没有被修改过,第二点这些数据一定是私钥持有人发送的,因为私钥只有自己持有,这就起到了防抵赖的作用. 来源: https://www.cnblogs.com/qingmuchuanqi48/p/11406872.html

python实现RSA加密和签名以及分段加解密的方案

柔情痞子 提交于 2019-11-28 10:28:29
1、前言 很多朋友在工作中,会遇到一些接口使用RSA加密和签名来处理的请求参数,那么遇到这个问题的时候,第一时间当然是找开发要加解密的方法,但是开发给加解密代码,大多数情况都是java,c++,js等语言实现的,加解密的代码虽然有了,但是咱们身为一个测试,使用python做的自动化,并不是什么语言都会,这个时候就会比较尴尬了,看着这一团加解密的代码,自己却不知从何下手,再去找开发给写个python版本的,开发估计不一定搭理你,就算搭理你,开发也未必会python,那么今天咱们就来讲讲如何通过python来实现RSA加解密和签名 2、RSA算法简介: RSA加密算法是一种非对称加密算法,加密的秘钥是由公钥和私钥两部分组成秘钥对,公钥用来加密消息,私钥用来对消息进行解密,公钥是公开的,私钥则是用户自己保留的,由于公钥是公开的,那么任何人只要获取到公钥,都可以使用公钥来加密发送伪造内容,出于安全性考虑,在发送消息之前我们可以使用RSA来签名,签名使用私钥来进行签名,使用公钥来进行验签,通过签名我们可以确保用户身份的唯一性,从而提高安全性。 1、加密和签名的区别 加密:比方现在有两个人A和B,A要给B传递机密的信息,为了避免信息泄露,B事先通过RSA加密算法生成了一对秘钥,并且将公钥事先给到A,私钥则自己保留,A给B传递消息的时候,先使用B给的公钥对消息进行加密,然后再将消息传递给B

公钥、私钥与数字签名

大憨熊 提交于 2019-11-28 10:12:26
公钥与私钥 区块链技术的应用和开发,数字加密技术是关键。一旦加密方法遭到破解,区块链的数据安全将受到挑战,区块链的不可篡改性将不复存在。加密算法分为对称加密算法和非对称加密算法,区块链中主要应用非对称加密算法。 非对称加密指为满足安全性需求和所有权验证需求而集成到区块链中的加密技术。非对称加密通常在加密和解密过程中使用两个非对称的密码,分别称为公钥和私钥。非对称密钥对具有两个特点: 一是用其中一个密钥加密信息后,只有另一个对应的密钥才能解开。 二是公钥可向其他人公开,私钥则保密,其他人无法通过该公钥推算出相应的私钥。 非对称密钥加密系统的主要应用有两个,分别是公钥加密和公钥认证。公钥加密和公钥认证的过程并不一样,下面分别进行简单介绍。 公钥加密 加密是将数据资料加密,使得非法用户即使取得加密过的资料,也无法获取正确的资料内容,所以数据加密可以保护数据,防止监听攻击。其重点在于数据的安全性。 为了让读者更容易理解什么是公钥加密,先来看一个简单的例子。若有两个用户Jack和Michael,Jack想把一段文字通过公钥加密技术发送给Michael,而Michael有一对公钥和私钥,那么这个加密和解密过程如下: Michael将他的公钥发送给Jack。 Jack就用Michael的公钥对文字进行加密,将加密后的结果发送给Michael。3.

【所谓的公钥私钥】

醉酒当歌 提交于 2019-11-28 08:44:41
原文: http://blog.gqylpy.com/gqy/302 1.鲍勃有两把钥匙,一把是公钥,另一把是私钥 2.鲍勃把公钥送给他的朋友们----帕蒂、道格、苏珊----每人一把。 3.苏珊要给鲍勃写一封保密的信。她写完后用鲍勃的公钥加密,就可以达到保密的效果。 4.鲍勃收信后,用私钥解密,就看到了信件内容。这里要强调的是,只要鲍勃的私钥不泄露,这封信就是安全的,即使落在别人手里,也无法解密。 5.鲍勃给苏珊回信,决定采用"数字签名"。他写完后先用Hash函数,生成信件的摘要(digest)。 6.然后,鲍勃使用私钥,对这个摘要加密,生成"数字签名"(signature)。 7.鲍勃将这个签名,附在信件下面,一起发给苏珊。 8.苏珊收信后,取下数字签名,用鲍勃的公钥解密,得到信件的摘要。由此证明,这封信确实是鲍勃发出的。 9.苏珊再对信件本身使用Hash函数,将得到的结果,与上一步得到的摘要进行对比。如果两者一致,就证明这封信未被修改过。 10.复杂的情况出现了。道格想欺骗苏珊,他偷偷使用了苏珊的电脑,用自己的公钥换走了鲍勃的公钥。此时,苏珊实际拥有的是道格的公钥,但是还以为这是鲍勃的公钥。因此,道格就可以冒充鲍勃,用自己的私钥做成"数字签名",写信给苏珊,让苏珊用假的鲍勃公钥进行解密。 11.后来,苏珊感觉不对劲,发现自己无法确定公钥是否真的属于鲍勃。她想到了一个办法

SSH无密码登录:只需两个简单步骤 (Linux)

拟墨画扇 提交于 2019-11-28 06:42:21
转载自 https://www.linuxdashen.com/ssh-key%ef%bc%9a%e4%b8%a4%e4%b8%aa%e7%ae%80%e5%8d%95%e6%ad%a5%e9%aa%a4%e5%ae%9e%e7%8e%b0ssh%e6%97%a0%e5%af%86%e7%a0%81%e7%99%bb%e5%bd%95#comment-2582 如果你管理一台Linux服务器,那么你就会知道每次SSH登录时或者使用scp复制文件时都要输入密码是一个多么繁琐的过程.这篇教程介绍使用SSH Key来实现SSH无密码登录,而且使用scp复制文件时也不需要再输入密码.除了方便SSH登录,scp复制文件外,SSH无密码登录也 为Linux服务器增加了又一道安全防线 . SSH无密码登录的设置步骤 首先我们在自己的Linux系统上生成一对SSH Key:SSH密钥和SSH公钥.密钥保存在自己的Linux系统上。 然后公钥上传到Linux服务器.之后我们就能无密码SSH登录了.SSH密钥就好比是你的身份证明. 1在自己的Linux系统上生成SSH密钥和公钥 打开终端,使用下面的ssh-keygen来生成RSA密钥和公钥. -t 表示type,就是说要生成RSA加密的钥匙. ssh-keygen -t rsa RSA也是默认的加密类型.所以你也可以只输入ssh-keygen

Linux-SSH远程管理服务实战

﹥>﹥吖頭↗ 提交于 2019-11-28 03:58:58
/*--> */ /*--> */ 第五章 SSH远程管理服务实战 第五章 SSH远程管理服务实战 1. SSH基本概述 2. SSH相关命令 3. SSH验证方式 4. SSH场景实践 5. SSH安全优化 1. SSH基本概述 xxxxxxxxxx ​ SSH是一个安全协议,在进行数据传输时,会对数据包进行加密处理,加密后在进行数据传输。确保了数据传输安全。那SSH服务主要功能有哪些呢? ​ 1. 提供远程连接服务器的服务 2. 对传输的数据进行加密 那么除了SSH协议能提供远程连接服务,Telnet也能提供远程连接服务, 那么分别的区别是什么呢? xxxxxxxxxx ​ SSH服务会对传输数据进行加密, 监听在本地22/tcp端口, ssh服务默认支持root用户登录 ​ Telnet服务不对数据进行加密, 监听在本地23/tcp端口, Telnet默认不支持root用户登录 ​ 服务连接方式 服务数据传输 服务监听端口 服务登陆用户 SSH 加密 22/tcp 默认支持root用户登陆 Telnet 明文 23/tcp 不支持root用户登陆 案例: 使用 wireshark 验证 telnet 明文传输与 ssh 加密传输 1.安装 Telnet服务并运行 xxxxxxxxxx ​ [root@m01 ~]# yum install telnet-server -y

什么是HTTPS协议

我怕爱的太早我们不能终老 提交于 2019-11-28 03:07:59
一 HTTPS协议一直是web开发,无论前后端都不可或缺的重要知识点,然而由于历史原因,这个协议和知识点枯燥而繁多,如果看书和文字十分难懂苦涩。但又不得不掌握,怎么办呢? 正好,从朋友小灰那里得到一片 利用漫画形式讲解https协议的有趣图文,大家看下加深理解。 什么是HTTP协议? HTTP协议全称Hyper Text Transfer Protocol,翻译过来就是超文本传输协议,位于TCP/IP四层模型当中的应用层。 HTTP协议通过请求/响应的方式,在客户端和服务端之间进行通信。 这一切看起来很美好,但是HTTP协议有一个致命的缺点: 不够安全 。 HTTP协议的信息传输完全以明文方式,不做任何加密,相当于是在网络上“裸奔”。这样会导致什么问题呢?让我们打一个比方: 小灰是客户端,小灰的同事小红是服务端,有一天小灰试图给小红发送请求。 但是,由于传输信息是明文,这个信息有可能被某个中间人恶意截获甚至篡改。这种行为叫做 中间人攻击 。 如何进行加密呢? 小灰和小红可以事先约定一种 对称加密 方式,并且约定一个随机生成的密钥。后续的通信中,信息发送方都使用密钥对信息加密,而信息接收方通过同样的密钥对信息解密。 这样做是不是就绝对安全了呢?并不是。 虽然我们在后续的通信中对明文进行了加密,但是第一次约定加密方式和密钥的通信仍然是明文,如果第一次通信就已经被拦截了