加密HTTPS协议和SSL证书

ssl协议  时间:2021-02-12  阅读:()

HTTPS协议和SSL证书

目前解决网站的“不安全”标识的最佳解决方案就是适应时代潮流及安全需要将网站整体迁移到HTTPS。与HTTP明文协议对比 HTTPS具备两大网络安全功能加密以及身份验证。要实现网站的https升级就需要SSL证书现在阿里云和腾讯云都提供高安全级别的SSL证书点击了解阿里云SSL证书点击了解腾讯云SSL证书。今天我们就来了解一下https与ssl证书。

HTTPS解决了什么问题

一个简单的回答可能会是HTTP它不安全。由于HTTP天生明文传输的特性在HTTP的传输过程中任何人都有可能从中截获、修改或者伪造请求发送所以可以认为HTTP是不安全的在HTTP的传输过程中不会验证通信方的身份因此HTTP信息交换的双方可能会遭到伪装也就是没有用户验证在HTTP的传输过程中接收方和发送方并不会验证报文的完整性综上为了结局上述问题HTTPS应用而生。

什么是HTTPS

你还记得HTTP是怎么定义的吗 HTTP是一种超文本传输协议(HypertextTransfer Protocol)协议它是一个在计算机世界里专门在两点之间传输文字、 图片、音频、视频等超文本数据的约定和规范那么我们看一下HTTPS是如何定义的。

HTTPS的全称是Hypertext Transfer Protocol Secure它用来在计算机网络上的两个端系统之间进行安全的交换信息(secure communication) 它相当于在HTTP的基础上加了一个Secure安全的词眼那么我们可以给出一个HTTPS的定义 HTTPS是一个在计算机世界里专门在两点之间安全的传输文字、图片、音频、视频等超文本数据的约定和规范。 HTTPS是HTTP协议的一种扩展它本身并不保传输的证安全性那么谁来保证安全性呢在HTTPS中使用传输层

安全性(TLS)或安全套接字层(SSL)对通信协议进行加密。也就是HTTP+SSL(TLS)= HTTPS。

HTTPS做了什么

HTTPS协议提供了三个关键的指标

加密(Encryption)  HTTPS通过对数据加密来使其免受窃听者对数据的监

听这就意味着当用户在浏览网站时没有人能够监听他和网站之间的信息

交换或者跟踪用户的活动访问记录等从而窃取用户信息。

数据一致性(Data integrity) 数据在传输的过程中不会被窃听者所修改

用户发送的数据会完整的传输到服务端保证用户发的是什么服务器接收

的就是什么。

身份认证(Authentication) 是指确认对方的真实身份也就是证明你是你

可以比作人脸识别 它可以防止中间人攻击并建立用户信任。

有了上面三个关键指标的保证用户就可以和服务器进行安全的交换信息了。那么既然你说了HTTPS的种种好处那么我怎么知道网站是用HTTPS的还是HTTP的呢给你两幅图应该就可以解释了。

HTTPS协议其实非常简单 RFC文档很小只有短短的7页里面规定了新的协议名默认端口号443至于其他的应答模式、报文结构、请求方法、 URI、头字段、连接管理等等都完全沿用HTTP没有任何新的东西。

也就是说除了协议名称和默认端口号外HTTP默认端口 80  HTTPS协议在语法、语义上和HTTP一样 HTTP有的 HTTPS也照单全收。那么 HTTPS如何做到HTTP所不能做到的安全性呢关键在于这个S也就是SSL/TLS 。什么是SSL/TLS

TLS(Transport Layer Security)是SSL(Secure Socket Layer) 的后续版本它们是用于在互联网两台计算机之间用于身份验证和加密的一种协议。我们都知道一些在线业务比如在线支付最重要的一个步骤是创建一个值得信赖的交易环境能够让客户安心的进行交易 SSL/TLS就保证了这一点 SSL/TLS通过将称为X.509证书的数字文档将网站和公司的实体信息绑定到加密密钥来进行工作。每一个密钥对(key pairs)都有一个私有密钥(private key)和公有密钥(public key) 私有密钥是独有的一般位于服务器上用于解密由公共密钥加密过的信息公有密钥是公有的与服务器进行交互的每个人都可以持有公有密钥用公钥加密的信息只能由私有密钥来解密。

什么是X.509 X.509是公开密钥证书的标准格式这个文档将加密密钥与个人或组织进行安全的关联。 X.509主要应用如下:

SSL/TLS和HTTPS用于经过身份验证和加密的Web浏览

通过S/MIME协议签名和加密的电子邮件

代码签名它指的是使用数字证书对软件应用程序进行签名以安全分发和安

装的过程。

通过使用由知名公共证书颁发机构例如SSL.com颁发的证书对软件进行数字签名开发人员可以向最终用户保证他们希望安装的软件是由已知且受信任的开发人员发布并且签名后未被篡改或损害。

还可用于文档签名

还可用于客户端认证

政府签发的电子身份证

HTTPS的内核是HTTP

HTTPS并不是一项新的应用层协议只是HTTP通信接口部分由SSL和TLS替代而已。通常情况下 HTTP会先直接和TCP进行通信。在使用SSL的HTTPS后则会先演变为和SSL进行通信然后再由SSL和TCP进行通信。也就是说 HTTPS就是身披了一层SSL的HTTP。

SSL是一个独立的协议不只有HTTP可以使用其他应用层协议也可以使用比如SMTP(电子邮件协议) 、 Telnet(远程登录协议)等都可以使用。

探究HTTPS

SSL即安全套接字层它在OSI七层网络模型中处于第五层 SSL在1999年被IETF(互联网工程组)更名为TLS 即传输安全层直到现在 TLS一共出现过三个版本 1. 1、 1.2和1.3  目前最广泛使用的是1. 2所以接下来的探讨都是基于TLS 1.2的版本上的。

TLS用于两个通信应用程序之间提供保密性和数据完整性。 TLS 由记录协议、握手协议、警告协议、变更密码规范协议、扩展协议等几个子协议组成综合使用了对称加密、非对称加密、身份认证等许多密码学前沿技术.

说了这么半天我们还没有看到TLS的命名规范呢下面举一个TLS例子来看一下TLS的结构ECDHE-ECDSA-AES256-GCM-SHA384这是啥意思呢我刚开始看也有点懵啊但其实是有套路的 因为TLS的密码套件比较规范基本格式就是密钥交换算法-签名算法-对称加密算法-摘要算法组成的一个密码串有时候还有分组模式我们先来看一下刚刚是什么意思.=。

使用ECDHE进行密钥交换使用ECDSA进行签名和认证然后使用AES作为对称加密算法密钥的长度是256位使用GCM作为分组模式最后使用SHA384作为摘要算法。 TLS在根本上使用对称加密和非对称加密两种形式。对称加密在了解对称加密前我们先来了解一下密码学的东西在密码学中有几个概念 明文、密文、加密、解密。

明文(Plaintext) 一般认为明文是有意义的字符或者比特集或者是通过某

种公开编码就能获得的消息。 明文通常用m或p表示

密文(Ciphertext) 对明文进行某种加密后就变成了密文

加密(Encrypt) 把原始的信息明文转换为密文的信息变换过程

解密(Decrypt) 把已经加密的信息恢复成明文的过程。

对称加密(Symmetrical Encryption)顾名思义就是指加密和解密时使用的密钥都是同样的密钥。只要保证了密钥的安全性那么整个通信过程也就是具有了机密性。

TLS里面有比较多的加密算法可供使用比如DES、 3DES、AES、ChaCha20、TDEA、Blowf ish、 RC2、 RC4、 RC5、 IDEA、 SKIPJACK等。 目前最常用的是AES-128,AES-192、 AES-256和ChaCha20。

DES的全称是Data Encryption Standard(数据加密标准) 它是用于数字

数据加密的对称密钥算法。尽管其56位的短密钥长度使它对于现代应用程

序来说太不安全了但它在加密技术的发展中具有很大的影响力。

3DES是从原始数据加密标准DES衍生过来的加密算法它在90年代后

变得很重要但是后面由于更加高级的算法出现 3DES变得不再重要。

AES-128, AES-192和AES-256都是属于AES  AES的全称是Advanced

Encryption Standard(高级加密标准) 它是DES算法的替代者安全强度

很高性能也很好是应用最广泛的对称加密算法。

ChaCha20是Google设计的另一种加密算法密钥长度固定为256位纯

软件运行性能要超过AES 曾经在移动客户端上比较流行但ARMv8之后也

加入了AES硬件优化所以现在不再具有明显的优势但仍然算得上是一个

不错算法。

加密分组对称加密算法还有一个分组模式的概念对于GCM分组模式只有和AES CAMELLIA和ARIA搭配使用而AES显然是最受欢迎和部署最广泛的选择它可以让算法用固定长度的密钥加密任意长度的明文。

最早有ECB、 CBC、 CFB、 OFB等几种分组模式但都陆续被发现有安全漏洞所以现在基本都不怎么用了。最新的分组模式被称为AEAD AuthenticatedEncryption with Associated Data 在加密的同时增加了认证的功能常用的是GCM、 CCM和Poly1305。

比如ECDHE_ECDSA_AES128_GCM_SHA256 表示的是具有128位密钥 AES256将表示256位密钥。GCM表示具有128位块的分组密码的现代认证的关联数据加密AEAD操作模式。

我们上面谈到了对称加密对称加密的加密方和解密方都使用同一个密钥也就是说加密方必须对原始数据进行加密然后再把密钥交给解密方进行解密然后才能解密数据这就会造成什么问题这就好比《小兵张嘎》去送信信已经被加密过 但是嘎子还拿着解密的密码那嘎子要是在途中被鬼子发现了那这信可就是被完全的暴露了。所以对称加密存在风险。

非对称加密非对称加密(Asymmetrical Encryption)也被称为公钥加密相对于对称加密来说非对称加密是一种新的改良加密方式。密钥通过网络传输交换

它能够确保及时密钥被拦截也不会暴露数据信息。非对称加密中有两个密钥一个是公钥一个是私钥公钥进行加密私钥进行解密。公开密钥可供任何人使用私钥只有你自己能够知道。

使用公钥加密的文本只能使用私钥解密同时使用私钥加密的文本也可以使用公钥解密。公钥不需要具有安全性因为公钥需要在网络间进行传输非对称加密可以解决密钥交换的问题。网站保管私钥在网上任意分发公钥你想要登录网站只要用公钥加密就行了密文只能由私钥持有者才能解密。而黑客因为没有私钥所以就无法破解密文。

非对称加密算法的设计要比对称算法难得多我们不会探讨具体的加密方式 常见的比如DH、 DSA、 RSA、 ECC等。

其中RSA加密算法是最重要的、最出名的一个了。例如

DHE_RSA_CAMELLIA128_GCM_SHA256。它的安全性基于整数分解使用两个超大素数的乘积作为生成密钥的材料想要从公钥推算出私钥是非常困难的。ECC Elliptic Curve Cryptography也是非对称加密算法的一种它基于椭圆曲线离散对数的数学难题使用特定的曲线方程和基点生成公钥和私钥 ECDHE用于密钥交换 ECDSA用于数字签名。 TLS是使用对称加密和非对称加密的混合加密方式来实现机密性。

混合加密RSA的运算速度非常慢而AES的加密速度比较快而TLS正是使用了这种混合加密方式。在通信刚开始的时候使用非对称算法 比如RSA、ECDHE 首先解决密钥交换的问题。然后用随机数产生对称算法使用的会话密钥

sessionkey 再用公钥加密。对方拿到密文后用私钥解密取出会话密钥。这样双方就实现了对称密钥的安全交换。

现在我们使用混合加密的方式实现了机密性是不是就能够安全的传输数据了呢还不够在机密性的基础上还要加上完整性、身份认证的特性才能实现真正的安全。而实现完整性的主要手段是摘要算法(Digest Algorithm) 。摘要算法如何实现完整性呢在TLS中实现完整性的手段主要是摘要算法(Digest Algorithm) 。摘要算法你不清楚的话 MD5你应该清楚 MD5的全称是Message Digest Algorithm 5它是属于密码哈希算法(cryptographic hashalgorithm)的一种 MD5可用于从任意长度的字符串创建128位字符串值。尽管MD5存在不安全因素但是仍然沿用至今。MD5最常用于验证文件的完整性。但是它还用于其他安全协议和应用程序中例如SSH、 SSL和IPSec。一些应用程序通过向明文加盐值或多次应用哈希函数来增强MD5算法。

什么是加盐在密码学中盐就是一项随机数据用作哈希数据密码或密码的单向函数的附加输入。盐用于保护存储中的密码。例如

什么是单向就是在说这种算法没有密钥可以进行解密只能进行单向加密加密后的数据无法解密不能逆推出原文。

我们再回到摘要算法的讨论上来其实你可以把摘要算法理解成一种特殊的压缩算法它能够把任意长度的数据压缩成一种固定长度的字符串这就好像是给数据加了一把锁。

除了常用的MD5是加密算法外 SHA-1 (Secure Hash Algorithm 1)也是一种常用的加密算法不过SHA-1也是不安全的加密算法在TLS里面被禁止使用。目前TLS推荐使用的是SHA-1的后继者 SHA-2。

SHA-2的全称是Secure Hash Algorithm 2 它在2001年被推出它在SHA-1的基础上做了重大的修改 SHA-2系列包含六个哈希函数其摘要哈希值分别为224、 256、 384或512位 SHA-224, SHA-256, SHA-384, SHA-512。分别能够生成28字节、 32字节、 48字节、 64字节的摘要。

有了SHA-2的保护就能够实现数据的完整性哪怕你在文件中改变一个标点符号增加一个空格生成的文件摘要也会完全不同不过SHA-2是基于明文的加密方式还是不够安全那应该用什么呢

安全性更高的加密方式是使用HMAC在理解什么是HMAC前你需要先知道一下什么是MAC。

MAC的全称是message authentication code它通过MAC算法从消息和密钥生成 MAC值允许验证者也拥有秘密密钥检测到消息内容的任何更改从而保护了消息的数据完整性。

HMAC是MAC更进一步的拓展它是使用MAC值+ Ha s h值的组合方式 HMAC的计算中可以使用任何加密哈希函数例如S HA-256等。

现在我们又解决了完整性的问题那么就只剩下一个问题了那就是认证认证怎么做的呢我们再向服务器发送数据的过程中黑客攻击者有可能伪装成任何一方来窃取信息。它可以伪装成你来向服务器发送信息也可以伪装称为服务器接受你发送的信息。那么怎么解决这个问题呢

认证如何确定你自己的唯一性呢我们在上面的叙述过程中出现过公钥加密私钥解密的这个概念。提到的私钥只有你一个人所有能够辨别唯一性所以我们可以把顺序调换一下变成私钥加密公钥解密。使用私钥再加上摘要算法就能够实现数字签名从而实现认证。

到现在综合使用对称加密、非对称加密和摘要算法我们已经实现了加密、数据认证、认证那么是不是就安全了呢非也这里还存在一个数字签名的认证问题。因为私钥是是自己的公钥是谁都可以发布所以必须发布经过认证的公钥才能解决公钥的信任问题。

所以引入了CA CA的全称是Certificate Authority证书认证机构你必须让CA颁布具有认证过的公钥才能解决公钥的信任问题。

全世界具有认证的CA就几家分别颁布了DV、 OV、 EV三种区别在于可信程度。 DV是最低的只是域名级别的可信 EV是最高的经过了法律和审计的严格核查可以证明网站拥有者的身份在浏览器地址栏会显示出公司的名字例如Apple、 GitHub的网站 。不同的信任等级的机构一起形成了层级关系。

云基Yunbase无视CC攻击(最高500G DDoS防御),美国洛杉矶CN2-GIA高防独立服务器,

云基yunbase怎么样?云基成立于2020年,目前主要提供高防海内外独立服务器,欢迎各类追求稳定和高防优质线路的用户。业务可选:洛杉矶CN2-GIA+高防(默认500G高防)、洛杉矶CN2-GIA(默认带50Gbps防御)、香港CN2-GIA高防(双向CN2GIA专线,突发带宽支持,15G-20G DDoS防御,无视CC)。目前,美国洛杉矶CN2-GIA高防独立服务器,8核16G,最高500G ...

欧路云:美国200G高防云-10元/月,香港云-15元/月,加拿大480G高防云-23元/月

欧路云 主要运行弹性云服务器,可自由定制配置,可选加拿大的480G超高防系列,也可以选择美国(200G高防)系列,也有速度直逼内地的香港CN2系列。所有配置都可以在下单的时候自行根据项目 需求来定制自由升级降级 (降级按天数配置费用 退款回预存款)。由专业人员提供一系列的技术支持!官方网站:https://www.oulucloud.com/云服务器(主机测评专属优惠)全场8折 优惠码:zhuji...

VoLLcloud6折限量,香港CMI云服务器三网直连-200M带宽

vollcloud LLC首次推出6折促销,本次促销福利主要感恩与回馈广大用户对于我们的信任与支持,我们将继续稳步前行,为广大用户们提供更好的产品和服务,另外,本次促销码共限制使用30个,个人不限购,用完活动结束,同时所有vps产品支持3日内无条件退款和提供免费试用。需要了解更多产品可前往官网查看!vollcloud优惠码:VoLLcloud终生6折促销码:Y5C0V7R0YW商品名称CPU内存S...

ssl协议为你推荐
简体翻译成繁体帮忙把繁体翻译成简体人人时光机现在世界上有时光机吗spgnuxPC操作系统如何描述显卡温度多少正常电脑显卡温度多少正常?ps抠图技巧ps抠图多种技巧,越详细越好,急~~~~~~~今日热点怎么删除怎么删除手机百度实时热点唱吧电脑版官方下载唱吧有没有电脑版的啊?唱吧电脑版官方下载电脑怎么安装唱吧,要能用的,请教教程,谢谢ios7固件下载iphone自动下载IOS7固件版本怎么删除畅想中国20年后中国会变成什么样?--畅想一下未来的中国!!
电信主机租用 南通服务器租用 七牛优惠码 星星海 singlehop mach gateone 一点优惠网 警告本网站 免费个人空间申请 卡巴斯基破解版 搜索引擎提交入口 流媒体加速 上海联通宽带测速 万网空间购买 ca187 中国电信宽带测速器 视频服务器是什么 免费网络空间 后门 更多