简单的来说:SSL是安全传输的一种安全协议,SSH只是在传输的时候为了防止"中间人"篡改数据而提供的安全的"通道"

在使用的时候我们只关心传输数据的安全性,那么在对于传输层和应用层,在数据请求返回的时候就存在安全性的问题:

1."中间人"篡改数据,并且可以伪装为服务器提供给客户端数据

由此就有了SSL和SSH

SSL是安全套接层(security socket layer)

SSL协议使用通讯双方的客户证书以及CA根证书,允许客户/服务器应用以一种不能被偷听的方式通讯,在通讯双方间建立起了一条安全的、可信任的通讯通道。它具备以下基本特征:信息保密性、信息完整性、相互鉴定。 主要用于提高应用程序之间数据的安全系数。SSL协议的整个概念可以被总结为:一个保证任何安装了安全套接字的客户和服务器间事务安全的协议,它涉及所有TC/IP应用程序。

SSH是安全外壳协议(security shell)

它的本质是在http/ftp等应用层提供一个安全的"通道",避免了"中间人"的攻击,SSH是由客户端和服务端软件构成的.

SSH的安全验证是如何工作的从客户端来看,SSH提供两种级别的安全验证。第一种级别(基于口令的安全验证)只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人”这种方式的攻击。第二种级别(基于密匙的安全验证)需要依靠密匙,也就是你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后,先在你在该服务器的家目录下寻找你的公用密匙,然后把它和你发送过来的公用密匙进行比较。如果两个密匙一致,服务器就用公用密匙加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器。用这种方式,你必须知道自己密匙的口令。但是,与第一种级别相比,第二种级别不需要在网络上传送口令。第二种级别不仅加密所有传送的数据,而且“中间人”这种攻击方式也是不可能的(因为他没有你的私人密匙)。但是整个登录的过程可能需要10秒。

最新文章

  1. WebApiThrottle限流框架使用手册
  2. 关于采用github.io搭建个人博客
  3. linux centos5.7(32bit) oracle 10g oracle11g
  4. matlab print,disp,fprint,fscan
  5. java新手笔记11 类的静态属性、方法(单例)
  6. 144 Binary Tree Preorder Traversal(二叉树先序遍历Medium)
  7. Git学习笔记1--Git原理简单介绍
  8. Chapter 2 Open Book——19
  9. PHP中的数据结构
  10. Flink从Kafka 0.8中读取多个Topic时的问题
  11. Opencv的使用,NDK的简单使用
  12. BZOJ4554: [Tjoi2016&Heoi2016]游戏 luoguP2825 loj2057
  13. Filebeat 日志收集器 安装和配置
  14. vue+vux scrollTop无法实现定位到具体dom
  15. Jenkins小试
  16. 《剑指offer》第二十八题(对称的二叉树)
  17. Django:学习笔记(8)——文件上传
  18. 终于搞定在VS2010中将CString转换为const char*
  19. 【学习笔记】LCT link cut tree
  20. 3D数学基础 KeyNote 1

热门文章

  1. MongoDB 系列(一) C# 类似EF语法简单封装
  2. LeetCode 744. Find Smallest Letter Greater Than Target (时间复杂度O(n))
  3. 【原创】JMS发布者订阅者【异步接收消息】
  4. Ini配置文件操作
  5. vue实现tab栏切换
  6. oracle和mysql的分页
  7. dockerhub 推送镜像
  8. const int *a与int *const a,const int *const a的区别
  9. 【BZOJ 1193】 [HNOI2006]马步距离
  10. LeetCode——Longest Common Prefix