加密HTTPS协议和SSL证书

ssl  时间:2021-01-26  阅读:()

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的网站 。不同的信任等级的机构一起形成了层级关系。

硅云香港CN2+BGP云主机仅188元/年起(香港云服务器专区)

硅云怎么样?硅云是一家专业的云服务商,硅云的主营产品包括域名和服务器,其中香港云服务器、香港云虚拟主机是非常受欢迎的产品。硅云香港可用区接入了中国电信CN2 GIA、中国联通直连、中国移动直连、HGC、NTT、COGENT、PCCW在内的数十家优质的全球顶级运营商,是为数不多的多线香港云服务商之一。目前,硅云香港云服务器,CN2+BGP线路,1核1G香港云主机仅188元/年起,域名无需备案,支持个...

Hostodo美国独立日优惠套餐年付13.99美元起,拉斯维加斯/迈阿密机房

Hostodo又发布了几款针对7月4日美国独立日的优惠套餐(Independence Day Super Sale),均为年付,基于KVM架构,采用NVMe硬盘,最低13.99美元起,可选拉斯维加斯或者迈阿密机房。这是一家成立于2014年的国外VPS主机商,主打低价VPS套餐且年付为主,基于OpenVZ和KVM架构,产品性能一般,支持使用PayPal或者支付宝等付款方式。商家客服响应也比较一般,推...

.asia域名是否适合做个人网站及.asia域名注册和续费成本

今天看到群里的老秦同学在布局自己的网站项目,这个同学还是比较奇怪的,他就喜欢用这些奇怪的域名。比如前几天看到有用.in域名,个人网站他用的.me域名不奇怪,这个还是常见的。今天看到他在做的一个范文网站的域名,居然用的是 .asia 后缀。问到其理由,是有不错好记的前缀。这里简单的搜索到.ASIA域名的新注册价格是有促销的,大约35元首年左右,续费大约是80元左右,这个成本算的话,比COM域名还贵。...

ssl为你推荐
月付百万的女人们满身香水味的女人和满身油烟味的女人,那种才男人们最想要的的女人?视频剪辑软件哪个好有哪些好用的手机剪辑视频软件苹果x和xr哪个好苹果xr好还是苹果x好手机浏览器哪个好手机什么浏览器最好用?朱祁钰和朱祁镇哪个好明英宗和明代宗是怎么回事?炒股软件哪个好网上买卖股票软件哪个好用网页传奇哪个好玩近有什么好玩的网页传奇介绍么核芯显卡与独立显卡哪个好英特尔核芯显卡怎么样?和独立显卡那个更好?网校哪个好哪个网校比较好?红茶和绿茶哪个好红茶和绿茶 那个更好
日本私人vps 香港vps主机 免费申请网站域名 最便宜虚拟主机 日本软银 香港bgp机房 128m内存 softbank官网 账号泄露 国内加速器 idc资讯 腾讯实名认证中心 怎么建立邮箱 华为云盘 百度云加速 中国联通宽带测速 双11促销 双十二促销 新疆服务器 删除域名 更多