HTTPS

基本概念

对称加密

通信双方使用同一个密钥进行加密解密。
例:AES。

非对称加密

服务端用私钥加密,客户端用公钥解密。
公钥加密的数据只能用私钥解密,私钥加密的数据只能用公钥解密。
例:RSA。

摘要

通过摘要算法为原文生成固定长度的内容摘要,且摘要无法被逆向得到原文,不同的内容极大概率(绝大多数接近 100%,取决于摘要算法的碰撞程度)会生成不同的摘要。
例:MD5摘要算法,对1M的数据和对1字节的数据都会生成128位数字。

签名

将原文生成摘要,再用自己的私钥加密摘要,得到一个密文串,这个串就是原文的数字签名(DIgital Sign)。
公钥解密(数字签名) == 签订合同时的原文摘要 == 摘要算法(当前原文) == 当前摘要

证书

证明公钥的正确性,防止有人冒充服务端将自己的公钥给客户端,与客户端通信。

CA

证明证书的公信力,相当于服务端说这是我的证书,但是客户端说我凭什么相信你,需要第三方机构证明证书的可信度。
tips:CA和证书避免中间人攻击。

信任链

在我们打开一个网站时,X机构颁发的证书会随着https的握手下载到本地,浏览器会查找操作系统中,是否已经安装过该机构的证书,如果安装了,那么会通过证书的公钥解密证书的签名,得到网站的摘要,再通过摘要算法得到摘要,比较算出的摘要和接收的摘要是否一致。如果一致,那么就可以信任这张证书。如果没有操作系统没有安装,会查看证书的签发方的证书是否安装在操作系统,直到找到根证书。根证书的特点就是:没有机构为它签名,只要操作系统中有根证书,那么根证书签发的证书就可信。
tips:所以不要乱安装盗版操作系统,可能有恶意的根证书。

HTTPS

https在http基础上增加了SSL/TLS协议加密,通过CA证书的公钥使用非对称加密交换对称密钥,后续使用交换的对称密钥对数据进行对称加密(因为非对称加密比对称加密开销大)。

4 声望
1 粉丝
0 条评论
推荐阅读
JOIN
前提:join字段t2.b不存在索引 查询过程:全表扫描t1,然后将每一条记录a字段作为条件到被驱动表t2进行一次全表扫描,也就是100次全表扫描。

user_yYvrkNPO阅读 1.1k

计算机网络连环炮40问
本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点,欢迎star~

程序员大彬9阅读 1.1k

基于QUIC协议的HTTP/3,你了解多少?
前言了解一下HTTP发展史:HTTP/0.9-HTTP/1.0-HTTP/1.1-HTTP/2.0多个TCP连接 {代码...} Keep-alive {代码...} 管线化 {代码...} 多路复用 {代码...} {代码...} 并行多路复用的请求和响应不会相互阻塞尽管传输多个...

Henryk2阅读 1.2k评论 1

gitlab-ce将https修改为http
索性我们禁用gitlab的https功能,将期恢复为http。后期我们再在部署一个nginx进行数据转发,然后在nginx上起用https并设置证书。这样应该就规避了gitlab的证书错误问题。

myskies1阅读 665

gitlab-ce使用nginx做反向代理的方式启用https
由于某些未知的原因,gitlab-ce的https近期出现了问题,被chrome识别出是非安全的连接。索性我们将了gitlab-ce的https改为http。但当下https基本上已经成为了标准,不启用https好像有点说不过去。

myskies阅读 798

HTTPS 是这样握手的
HTTP协议默认是明文传输,存在一定的安全隐患,容易被中间人窃听和攻击,在 加密解决HTTP协议带来的安全问题 中提到使用哈希、对称加密、非对称加密等方式对数据加密,能解决数据安全的问题。

一颗冰淇淋阅读 694

使用nodejs的http和https下载远程资源,post数据
经常用到nodejs下载资源的情况(简单的爬虫),可以考虑直接使用nodejs内置的http/https模块。test.mjs {代码...} post数据 {代码...}

jsoncode阅读 559

4 声望
1 粉丝
宣传栏