异曲同工的SSH和HTTPS

异曲同工的SSH和HTTPS

一、初识 SSH

SSH是一种协议标准,其目的是实现安全远程登录以及其它安全网络服务主要用于计算机之间的加密登录与数据传输。目前市场用的最多的就是开源Openssh这个库;默认端口为22。


二、SSH 原理

了解SSH工作原理之前,我们先来了解下常用加密算法的常识:

  • 对称加密算法

    对称加密算法就是加密和解密采用同一把秘钥,常见算法有AES、DES等;

    在这里插入图片描述

    优缺点:

    • 算法公开、计算量小、加密速度快、加密效率高;
    • 双方用相同的秘钥,安全性等不到保证;
    • 如果秘钥数量多的时候,管理秘钥是一种负担;

  • 非对称加密算法

    非对称加密一般会有两把秘钥,一把私钥和一把公钥;一般会自己保留私钥,其他会将自己传输的信息使用公钥加密后,传输过来,然后再用私钥进行解密;

    引用知乎上面的一个案例就是:小明使用银行的公钥加密了“我要存5000元”的信息,发送给了银行,如果中间被截取了这个信息吗,由于没有私钥,是没办法进行篡改和解密的,银行收到信息后,将信息进行解密后进行操作,然后将“操作成功/失败”的信息用小明的公钥进行加密后发送给小明,小明收到信息用自己的私钥进行解密操作。

    常见非对称加密算法:RSA、DSA;

优缺点:

  • 安全性更高,公钥是公开的,秘钥是自己保存的,不需要将私钥给别人。

  • 加密和解密花费时间长、速度慢,只适合对少量数据进行加密。


中间人攻击:

SSH 登录过程中采用的非对称的加密方式,这里会有一个问题,如果有人截取了登录请求,冒充主机,将自己伪造的公钥给到用户,用户可能就傻傻分不清楚了。

一般有两种处理方式,也是我们平时常见的,分别是:公钥指纹和上传公钥;

  • 公钥指纹

    “公钥指纹”,是指公钥长度较长很难比对时,对其进行MD5计算,将它变成一个128位的指纹,并且将该指纹公布,由于进行了MD5加密(不可逆),也就不存在推测出公钥指纹的值;

  • 上传公钥

    “上传公钥”的方式其实我们操作过,github上,我们就经常会这么做,把自己的公钥复制到仓库中,这样登录就不再需要输入密码了;用户登录的时候,远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后,再发回来。远程主机用事先储存的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录shell,不再要求密码。


其实,SSH原理的过程也就是上述所说的这样,采用上述两种方式进行登录远程主机进行操作,最常见的就是我们使用Xshell登录远程服务器或者登录github时候的操作。


三、HTTPS 原理

说完SSH登录的一个过程,就得引出下HTTPS这个协议了,毕竟他们具有异曲同工之处呀!

HTTPS概念:

HTTPS是身披SSL外壳的HTTP(超文本传输协议)。HTTPS是一种通过计算机网络进行安全通信的传输协议,经由HTTP进行通信,利用SSL/TLS建立全信道,加密数据包。HTTPS使用的主要目的是提供对网站服务器的身份认证,同时保护交换数据的隐私与完整性。(TLS是传输层加密协议)


SSL协议的特点:

  • SSL协议可用于保护正常运行与TCP之上的任何应用协议,如HTTP、FTP、SMTP或Telent的通信,最常见的是用户SSL来保护HTTP通信

  • SSL协议的优点在于它是应用层协议无关的。高层的应用协议能透明的建立于SSL协议之上

  • SSL协议的应用层协议之前就完成加密算法、通信密钥的协商以及服务器的认证工作。在此之后应用层协议所传送的数据都会被加密。从而保证通信的安全性。

  • SSL协议使用通信双方的客户证书以及CA根证书。允许客户/服务器应用以一种不能被偷听的方式通信,在通信双方建立起了一条安全的、可信任的通信通道。

  • 该协议使用密钥对传送数据加密,许多网站都是通过这种协议从客户端接收信用卡编号等保密信息。常用于交易过程


HTTPS 的特点:

  1. 内容加密:采用混合加密技术,中间者无法直接查看明文内容
  2. 验证身份:通过证书认证客户端访问的是自己的服务器
  3. 保护数据完整性:防止传输的内容被中间人冒充或者篡改

HTTPS中也是采用了非对称加密的方式,同样,采用非对称加密算法会遇到中间人攻击的现象,那么HTTPS又是怎么去避免这种情况呢?

  • HTTPS这里采用的是信任第三方,就好比我们去给物件做公证,我们相信公证处一样的;这个就是公证机构就是数字证书,公证处就是CA(数字证书认证机构)

数字证书就是申请人将一些必要信息(包括公钥、姓名、电子邮件、有效期)等提供给 CA,CA 在通过各种手段确认申请人确实是他所声称的人之后,用自己的私钥对申请人所提供信息计算散列值进行加密,形成数字签名,附在证书最后,再将数字证书颁发给申请人,申请人就可以使用 CA 的证书向别人证明他自己的身份了。对方收到数字证书之后,只需要用 CA 的公钥解密证书最后的签名得到加密之前的散列值,再计算数字证书中信息的散列值,将两者进行对比,只要散列值一致,就证明这张数字证书是有效且未被篡改过的。


HTTPS连接详情:

在这里插入图片描述


参考:

https://blog.csdn.net/xiaoming100001/article/details/81109617

https://www.cnblogs.com/ailx10/p/7664040.html


微信公众号:后台服务器开发

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值