HTTPS

HTTPS 是在原有HTTP 层和TCP 层之间添加的一层 TLS/SSL安全层
在这里插入图片描述
对HTTP 的原有数据进行加密操作

数据加密的方法

包括对称加密非对称加密
对称加密:加密和解密都用相同的密钥,加密速度快,单是需要维护的密钥数量多,每两个对等的实体之间就要维护一对密钥,n个实体就是n*(n-1)个

非对称加密:加密和解密由一对公钥和私钥组成。用公钥加密,则只能用私钥解密,用私钥加密,则只能用公钥解密。公钥是大家都知道的,私钥是自己才知道的。通用用公钥加密,则只有拥有私钥的人才能知道数据的内容。
非对称加密速度慢,但需要维护的密钥数量少,n个实体只需要维护2n个密钥

通过使用私钥对数据加密,可以作为身份认证的数字签名

HTTPS大概过程

HTTPS,将两种方法的优点结合了起来
服务器支持HTTPS则必须有一套数字证书,所谓数字证书就是一对公钥和私钥,公钥用来加密,私钥用来解密。为了与下文区别,用公钥1,私钥1

1.客户端访问 https开头的url
2.服务端返回公钥1,客户端验证通过(如果不通过,则访问终断)。
3.客户端根据公钥1生成一个私钥2,(这个私钥2用来加密和解密请求信息,且使用对称加密的方法),使用公钥1对私钥2进行加密,回传给服务端。
4.客户端和服务端之间使用私钥2对信息进行加密后通信

补充:数字证书 可以是认证机构给的,也可以是自己创建的,不过未经过认证机构的证书在客户端接收时会弹出警告信息(身份认证)

加密和认证:加密是指通信双方为了防止敏感信息在信道上被第三方窃听而泄漏,将明文通过加密变成密文,如果第三方无法解密的话,就算他获得密文也无能为力;认证是指通信双方为了确认对方是值得信任的消息发送或接受方,而不是使用假身份的骗子,采取的确认身份的方式。只有同时进行了加密和认真才能保证通信的安全,因此在SSL通信协议中这两者都被应用。

个人制作的证书相当于只有加密,没有认证

HTTPS握手

在这里插入图片描述

加密算法扫盲

对称加密算法:典型的有DES、RC5、IDEA(分组加密),RC4(序列加密);
非对称加密算法:典型的算法有RSA,DSA,DH;
散列算法(摘要算法):散列变换是指把文件内容通过某种公开的算法,变成固定长度的值(散列值),这个过程可以使用密钥也可以不使用。这种散列变换是不可逆的,也就是说不能从散列值变成原文。因此,散列变换通常用于验证原文是否被篡改。典型的算法有:MD5,SHA,Base64,CRC等。

https 中,一般的:
用非对称加密进行 对称加密的密钥协商
用对称加密对保密内容进行加密
用散列算法进行身份认证(在证书和加密内容中使用)

对称加密算法

RSA:基于大素数的非对称加密算法
基本理论原理:

与rsa相关的参数字母有p,q,e,d,n,这个大家在看关文档的时候总会看到这些东东,他们是干什么的呢,都代表什么意思呢?主要由p,q,e三个东东构成,

  1.  p,q均为大素数。
    
  2.  e可以为任何数但e与(p-1)(q-1)一定要互素。
    
  3.  产生p,q,e后n就自然出来了,因为n=p*q,
    
  4.  另一个d是由e,p,q计算出来的,公式: d * e = 1 modulo(p - 1)*(q - 1),这个公式看起来是不是有些头疼?其实很简单就是d*e除以(p-1)*(q-1)=1
    
  5.  公钥就为n和e组成,私钥就是d了(注:e和d是可以互换的,但是只能公开一个,公开哪个,哪个就被称用作公钥)
    
  6.  加密方法:C=(p ^ e) mod n
    
        解密方法:P=(c ^ d) mod n
    
基本过程:

1.客户端请求RSA加密
2.服务器将 公钥1 给客户端
(发的其实是证书:客户端用受信CA的公钥对证书进行解密,得到服务器的 公钥1,同时完成了身份认证 )
3.客户端在本地生成一个 私钥2, 并用公钥1对私钥2进行加密,发送给服务器
4.客户端和服务器开始用 私钥2对数据进行加密解密 正常交流

类DH算法 diffie—hellman

客户端和服务器 以及其他人, 都知道的一对数字 p 和 q 一个是底数,一个是模
客户端 生成一个自己才知道的a, 计算 sa=(p^a)mod q,发给服务器
服务器 生成一个自己才知道的b,计算 sb =(p^b)mod q,发给客户端
两边一起使用,重要定理 s = (sa^b)mod q =(sb ^a) mod q 的到约定好的密钥 s

数字证书

证书可以由国际上公认的证书机构颁发
客户端程序通常通过维护一个“根受信任机构列表”,当收到一个证书时,查看这个证书是否是该列表中的机构颁发的,如果是则这个证书是可信任的,否则就不信任。

证书的认证
IE浏览器在验证证书的时候主要从下面三个方面考察,只要有任何一个不满足都将给出警告
1.证书的颁发者是否在“根受信任的证书颁发机构列表”中
2.证书是否过期
3.证书的持有者是否和访问的网站一致
4.查看证书颁发者公布的“证书吊销列表”,被它的颁发者在“证书吊销列表”中列出,那么也将给出警告。

公钥密码基础

分为三类:

  • 大素数分解问题类:两个大素数相乘容易,将他们的积分解很难
  • 离散对数问题类、
  • 椭圆曲线类。有时也把椭圆曲线类归为离散对数类。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值