[Web] 网络安全(SSH SSL HTTPS)
概念
- SSH(Secure Shell)
- 一种安全通信协议
- 为shell提供加密通信服务
- 使用了非对称加密和对称加密
- 对称加密(Symmetric-Key Encryption):只用一个密钥来进行加密和解密
- 非对称加密(Asymmetric-Key Encryption):用一个密钥来进行加密(公钥),用另一个密钥来解密(私钥)
- 用于远程登录会话和其他网络服务
- SSH=SSL+用户登录功能等应用层协议
- 只有SSH客户端,和SSH服务器端之间的通信才能使用SSH协议,其他软件服务无法使用
- 传统网络通信服务(FTP、Telnet)采用明文传输很不安全
- 位于传输层和应用层
- 过程
- A、B之间建立TCP连接
- B生成一对公私密钥
- B把公钥发送给A
- A生成一个用于加密数据的密钥K
- A把K用公钥加密发给B,B解密(非对称加密)
- A、B之间的通信数据都用K进行加密和解密(对称加密)
- 中间人攻击
- 黑客H埋伏在A、B之间的某个路由器上
- 假冒B生成一对公私密钥,把密钥发送给A
- H假冒B与A进行通信
- SSH通过判断公钥的fingerprint(如本机MAC地址)是否可信来防止
- 公钥登录(免密码登录)
- 客户端将自己的公钥储存在远程服务器上
- 客户端登录时,服务器发送一个经过公钥加密的随机数据给客户端
- 客户端用私钥解密信息,并发还给服务器
- 服务器验证正确后,即确认客户端是可信任的,从而建立起一条安全的信息通道,允许客户端不用输入密码直接登录 Shell
- SSL(Secure Socket Layer 安全套接字层)
- 一种安全通信协议
- 位于传输层和应用层之间(比SSH范围小)
- 为互联网上的所有客户端与服务器连接提供加密通信服务(比SSH范围广)
- 常用的加密算法是RSA
- 基本思想是先用公钥加密法,得到对话密钥,再用对称加密通信
- 公钥加密法(非对称加密)
- 客户端先向服务器端索要公钥,然后用公钥加密信息
- 服务器收到密文后,用自己的私钥解密
- 传统非对称加密的问题
- 如何保证公钥不被篡改
- 将公钥放在数字证书中
- 如何减少公钥加密的计算量
- 每次对话(session),客户端和服务端都生成一个对话密钥(session key)
- 服务器公钥只用于加密对话密钥
- 如何保证公钥不被篡改
- 数字签名(Digital Signature)
- 指出一个文件的所有者或创作者
- 用Hash函数生成信件摘要,再使用私钥对摘要加密,生成数字签名
- 公钥认证:证实一个公钥属于某个特定实体
- 数字证书(Digital Certification)
- 用于证实一个实体的真实身份
- 将一个将实体身份标识信息(如IP,数字签名等)和实体公钥绑定起来
- CA(Certification Authority 数字证书认证机构)
- CA用自己的私钥,对实体的公钥和相关信息进行加密,生成数字证书
- 收到实体信息的人,用CA的公钥解开数字证书,拿到实体的公钥
- 使用过程
- 服务端用Hash函数生成信件摘要,再使用私钥对摘要加密,生成数字签名
- 服务端将数字签名和数字证书一起附在信件中发给客户端
- 客户端收到信件后,取下数字签名,用公钥解密得到摘要(公钥认证)
- 客户端对信件本身使用Hash函数,将得到的结果与上一步一样(未篡改)
- 客户端用CA的公钥解开证书,拿到服务端的公钥(未冒充)
- 通信过程
- 客户端向服务端索要并验证公钥
- 双方协商生成对话密钥
- 客户端发出请求:一个随机数
- 服务端回应:一个随机数;服务器证书
- 客户端回应:一个随机数(用服务端公钥加密);握手结束通知
- 服务端回应:用三个随机数生成session key;握手结束通知
- 双方采用对话密钥进行加密通信
- RSA
- 一种非对称加密算法
- 原理:对两个大质数乘积进行分解十分困难
- HTTPS(Hypertext Transfer Protocol Secure)
- SSL+HTTP
- HTTP通信的风险
- 窃听:第三方可以获知通信内容
- 篡改:第三方可以修改通信内容
- 冒充:第三方可以冒充他人身份参与通信
- SSL协议
- 所有信息都是加密传播,第三方无法窃听
- 提供数字签名,一旦被篡改,通信双方会立刻发现
- 配备数字证书,防止身份被冒充
- 为网站申请数字证书
- 为服务器生成一对公私密钥
- 把你网站的信息连同你的公钥一起发送给某个权威的CA
- CA通过某种方式认证申请人是否是网站的所有人(比如让你在网站的指定路径上传他指定的特殊文字序列)
- 验证通过得到证书
参考
SSH和SSL的区别—基于原理和协议
http://news.west.cn/52031.html
SSH、SSL与HTTPS
https://blog.csdn.net/m0_37402140/article/details/78568583
数字签名是什么?
http://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_signature.html
Linux ssh命令详解
https://www.cnblogs.com/ftl1012/p/ssh.html
SSL和SSH有什么区别(写得有点乱)
https://blog.csdn.net/box_kun/article/details/79209031
OpenSSH下载
https://www.mls-software.com/opensshd.html
Linux使用ssh公钥实现免密码登录另外一台Linux
http://php-note.com/article/1464.html
[Web] 网络安全(SSH SSL HTTPS)的更多相关文章
- 开源web终端ssh解决方案-gateone简介
好久都没来写博客,最近忙啥去了呢? 一是忙于saltstack的二次开发,二是云计算的学习研究中,所以就一直没写东西,今天给大家介绍个工具. 1. 首先来说一下为什么要 web ssh? 许多人不是说 ...
- gateone安装(web版本ssh)
前言: 好久都没来写博客,最近忙啥去了呢? 一是忙于saltstack的二次开发,二是云计算的学习研究中,所以就一直没写东西,今天给大家介绍个工具. 好了,开始正文! 1.首先来说一下为什么要web ...
- proxy,https,git,tortoise git,ssh-agent,ssh-add,ssh,ssl,rsync
看具体应用了,一般的文件复制使用scp,增量同步使用rsync.rsync的认证可以使用ssh,还可以是rsync自己的密码文件. ssh-keygen -l 察看 fineprint 5.1 通过p ...
- 网络数据传输安全及SSH与HTTPS工作原理
本节内容 网络数据传输安全概述 数据加密算法分类 SSH工作原理 HTTPS工作原理 参考资料 个人一直在努力推动git在公司内部的普及和使用,前些日子在公司内部做了一次分享课,给大家介绍了下项目发布 ...
- web基础系列(五)---https是如何实现安全通信的
https是如何实现安全通信的 如果有不正确的地方,还望指出! web基础系列目录 总结几种常见web攻击手段极其防御方式 总结几种常见的安全算法 回顾 总结几个概念(具体描述可以看上一篇文章) 数字 ...
- SSH SSL TELNET的比较(转)
转载链接 https://blog.csdn.net/baidu_39486224/article/details/81295701 SSL(Secure Sockets Layer (SSL) a ...
- Web API应用支持HTTPS的经验总结
在我前面介绍的WebAPI文章里面,介绍了WebAPI的架构设计方面的内容,其中提出了现在流行的WebAPI优先的路线,这种也是我们开发多应用(APP.微信.微网站.商城.以及Winform等方面的整 ...
- Java调用使用SSL/HTTPS协议来传输的axis webservice服务
使用SSL/HTTPS协议来传输 Web服务也可以使用SSL作为传输协议.虽然JAX-RPC并没有强制规定是否使用SSL协议,但在tomcat 下使用HTTPS协议. 1.使用JDK自带的工具创建密匙 ...
- java ssl https 连接详解 生成证书 tomcat keystone
java ssl https 连接详解 生成证书 我们先来了解一下什么理HTTPS 1. HTTPS概念 1)简介 HTTPS(全称:Hypertext Transfer Protocol over ...
随机推荐
- 第25 章 : Kubernetes 网络模型进阶
Kubernetes 网络模型进阶 本文将主要分享以下五个方面的内容: Kubernetes 网络模型来龙去脉 Pod 究竟如何上网? Service 究竟怎么工作? 啥?负载均衡还分内部外部? 思考 ...
- [状压DP]关灯问题II
关 灯 问 题 I I 关灯问题II 关灯问题II 题目描述 现有n盏灯,以及 m m m个按钮.每个按钮可以同时控制这 n n n盏灯--按下了第 i i i个按钮,对于所有的灯都有一个效果.按下i ...
- [Fundamental of Power Electronics]-PART I-6.变换器电路-0 序
6 变换器电路 我们已经分析了包括buck,boost,buck-boost以及cuk电路,电压源逆变器等一系列电路的工作原理.利用这些变换器,可以执行许多不同的功能:降压,升压,极性反转以及直流交流 ...
- windows2003配置IIS
这里采用的是vmbox虚拟机 用这个加载光驱, 使其加载Windows2003的安装镜像 挂载后根据下列操作 点击下一步等加载,加载到这个界面即可 在这里选择应用程序服务器(iis.asp.net), ...
- C语言-字符串函数的实现(一)之strlen
C语言中的字符串函数有如下这些 获取字符串长度 strlen 长度不受限制的字符串函数 strcpy strcat strcmp 长度受限制的字符串函数 strncpy strncat strncmp ...
- Day09_41_集合_Set
Set集合 Set集合 - Set集合的特点是无序不可重复.Set集合类似于一个罐子,程序可以依次把多个对象"丢进"Set集合,而Set集合通常不能记住元素的添加顺序. - Set ...
- 软件篇-02-基于ZED 2和ORB_SLAM2的SLAM实践
时隔两周,我又回来了. 本期内容如题,ZED 2的SDK功能还是挺多的,包括轨迹跟踪,实时建图等等.虽然由于是商业产品,我看不到他们的源代码,但是根据使用情况来看,ZED 2内部是采用了IMU和光 ...
- PHP正则匹配各种匹配方法
平时做网站经常要用正则表达式,下面是一些讲解和例子,仅供大家参考和修改使用: 匹配数字 "^\d+$" //非负整数(正整数 + 0) "[1][1-9][0-9]$&q ...
- Python第三章-字符串
第三章 字符串 3.1 基本字符串操作 Python的字符串和元组差不多,是不可以进行改变的,如果想改变值,可以尝试list序列化之后在进行修改. { website = 'http://ww ...
- POJ2669不错的最大流 竞赛问题(枚举King的个数)
题意: 有n个人,任意两个人都比一次赛(一共比了n*(n-1)/2场),赢一场得到一分,最后的时候如果得分最高,或者是自己打败了所有比自己得分都高的人就算是King,给你每个人的最后得分, ...