当前位置: 首页 > news >正文

SSL和SSH和OpenSSH,OpenSSL有什么区别

原贴地址:SSL和SSH和OpenSSH,OpenSSL有什么区别 - 薄荷加冰2060 - 博客园

ssl是通讯链路的附加层。可以包含很多协议。https, ftps, .....

ssh只是加密的shell,最初是用来替代telnet的。通过port forward,也可以让其他协议通过ssh的隧道而起到加密的效果。

SSL是一种国际标准的加密及身份认证通信协议,您用的浏览器就支持此协议。SSL(Secure Sockets Layer)最初是由美国Netscape公司研究出来的,后来成为了Internet网上安全通讯与交易的标准。SSL协议使用通讯双方的客户证书以及CA根证书,允许客户/服务器应用以一种不能被偷听的方式通讯,在通讯双方间建立起了一条安全的、可信任的通讯通道。它具备以下基本特征:信息保密性、信息完整性、相互鉴定。 主要用于提高应用程序之间数据的安全系数。SSL协议的整个概念可以被总结为:一个保证任何安装了安全套接字的客户和服务器间事务安全的协议,它涉及所有TC/IP应用程序。

SSH的英文全称是Secure SHell。通过使用SSH,你可以把所有传输的数据进行加密,这样“中间人”这种攻击方式就不可能实现了,而且也能够防止DNS和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替telnet,又可以为ftp、pop、甚至ppp提供一个安全的“通道”。SSH是由客户端和服务端的软件组成的,有两个不兼容的版本分别是:1.x和2.x。用SSH 2.x的客户程序是不能连接到SSH 1.x的服务程序上去的。OpenSSH 2.x同时支持SSH 1.x和2.x。SSH的安全验证是如何工作的从客户端来看,SSH提供两种级别的安全验证。第一种级别(基于口令的安全验证)只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人”这种方式的攻击。第二种级别(基于密匙的安全验证)需要依靠密匙,也就是你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后,先在你在该服务器的家目录下寻找你的公用密匙,然后把它和你发送过来的公用密匙进行比较。如果两个密匙一致,服务器就用公用密匙加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器。用这种方式,你必须知道自己密匙的口令。但是,与第一种级别相比,第二种级别不需要在网络上传送口令。第二种级别不仅加密所有传送的数据,而且“中间人”这种攻击方式也是不可能的(因为他没有你的私人密匙)。但是整个登录的过程可能需要10秒。

OpenSSL------一个C语言函数库,是对SSL协议的实现。

OpenSSH-----是对SSH协议的实现。

ssh 利用 openssl 提供的库。openssl 中也有个叫做 openssl 的工具,是 openssl 中的库的命令行接口。

从编译依赖上看:

openssh依赖于openssl,没有openssl的话openssh就编译不过去,也运行不了。

HTTPS可以使用TLS或者SSL协议,而openssl是TLS、SSL协议的开源实现,提供开发库和命令行程序。openssl很优秀,所以很多涉及到数据加密、传输加密的地方都会使用openssl的库来做。
可以理解成所有的HTTPS都使用了openssl。以root身份执行命令:grep -l 'libssl.*deleted' /proc/*/maps | tr -cd 0-9\\n | xargs -r ps u,可以看到哪些进程加载了老版本的openssl库。

相关文章:

  • Ubuntu18.04网络连接图标上显示问号
  • Ubuntu调用USB摄像头
  • ERROR: libcudnn_adv_infer.so.8 is not a symbolic link
  • ROS error: Could not find the GUI, install the ‘joint_state_publisher_gui‘ package
  • ROS error: cannot launch node of type [arbotix_python/arbotix_driver]: arbotix_python
  • ROS error: robot_voice/iat_publish/usr/bin/ld: 找不到 -lmsc
  • ROS fatal error: alsa/asoundlib.h: 没有那个文件或目录
  • ROS ERROR: cannot launch node of type [usb_cam/usb_cam_node]: usb_camROS path [0]=/opt/ros/m
  • ROS Error: Could NOT find move_base_msgs
  • ROS Error: [rospack] Error: package ‘map_server‘ not found
  • How to remove PPA repository on Ubuntu and Debian
  • 用appimagelauncher安装markdown编辑工具marktext
  • ROS ERROR: “Qt5::Gui“ references the file “/usr/lib/x86_64-linux-gnu/libEGL.so“ not exist
  • Linux下使用nmap扫描端口
  • ​​​​​​​Installing ROS on the Raspberry Pi
  • go append函数以及写入
  • Koa2 之文件上传下载
  • linux学习笔记
  • SQLServer之创建显式事务
  • vue-router的history模式发布配置
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 快速体验 Sentinel 集群限流功能,只需简单几步
  • 前端面试之闭包
  • 使用SAX解析XML
  • 微信小程序--------语音识别(前端自己也能玩)
  • 鱼骨图 - 如何绘制?
  • 阿里云IoT边缘计算助力企业零改造实现远程运维 ...
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • #{} 和 ${}区别
  • $refs 、$nextTic、动态组件、name的使用
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (十三)Flask之特殊装饰器详解
  • (十三)Maven插件解析运行机制
  • (转)关于pipe()的详细解析
  • (转载)深入super,看Python如何解决钻石继承难题
  • .[hudsonL@cock.li].mkp勒索加密数据库完美恢复---惜分飞
  • .net core 3.0 linux,.NET Core 3.0 的新增功能
  • .Net Remoting常用部署结构
  • .NET 的静态构造函数是否线程安全?答案是肯定的!
  • .NET 动态调用WebService + WSE + UsernameToken
  • .NET高级面试指南专题十一【 设计模式介绍,为什么要用设计模式】
  • @EnableWebMvc介绍和使用详细demo
  • [ 代码审计篇 ] 代码审计案例详解(一) SQL注入代码审计案例
  • [1181]linux两台服务器之间传输文件和文件夹
  • [20160807][系统设计的三次迭代]
  • [AIGC] 开源流程引擎哪个好,如何选型?
  • [AX]AX2012开发新特性-禁止表或者表字段
  • [BUG] Hadoop-3.3.4集群yarn管理页面子队列不显示任务
  • [BZOJ1053][HAOI2007]反素数ant
  • [BZOJ4010]菜肴制作
  • [Contiki系列论文之2]WSN的自适应通信架构
  • [iOS开发]iOS中TabBar中间按钮凸起的实现