陈振伟 李瑞霞
摘要:SSH协议为提供安全可靠的远程登录访问网络提供的可靠的方式,目前常用于远程访问等场合。HTTPS是安全的HTTP,主要用于服务器和浏览器之间访问Web。因此,HTTP/HTTPS信息流是目前网络上最常见的信息流。SSH信息流由于常用于远程网络访问而常常受到攻击者的分析和利用;HTTPS信息流作为网络上较安全的主流WEB信息流而常常被攻击者忽略。基于此背景,本文设计一种方法将SSH信息流伪装成HTTPS信息流,通过对SSH信息封装加密,伪装成HTTPS信息在网络上传输,使其安全性和隐蔽性得到了大大的提升。
关键词:SSH信息流;伪装;加密
中图分类号:TP309 文献标识码:A
文章编号:1009-3044(2020)34-0050-02
1引言
网络的远程管理和维护,目前最广泛使用的方式是通过Telnet等远程连接访问的方式进行,但这些方式存在着许多安全隐患,由于数据采用明文或简单的加密方式,极易被别有用心者截获,容易受到外来攻击,这些数据一旦被第三方获取,将会造成信息的泄露,特别是访问的账户和口令等。在这种情况下,SSH 协议被提出,它可以对传输通道中的数据加密处理,可以有效地防止信息的泄露,避免这类攻击,因此SSH 协议具有比较好的可靠性和安全性,是目前较可靠,专为远程登录会话的安全协议。SSH协议提供安全性的协议密钥建立与服务器认证和用户认证,使得SSH在不可靠的网络上对远程登录等网络服务领域提供了安全可靠的保障,因此,当前SSH远程访问方式成为主流远程访问方式。
2技术基础
HTTPS是以安全为目标的 HTTP 通道,即安全的HTTP協议。它在HTTP的基础上通过加入加密和身份认证两种机制,从而保证传输过程的安全性。加入方式为HTTPS 在HTTP 的基础下加入SSL 层,提供身份验证与加密通信,因此HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,要比 HTTP 协议安全,可防止数据在传输过程中不被窃取、改变,确保数据的完整性,确保信息在正确的客户机和服务器传递。
443端口为正常的Web访问端口,主要应用于HTTPS协议提供的服务,HTTPS协议提供了加密服务并通过安全端口传输。它被广泛应用于Web上安全敏感的通信等方面,如各类电子商务网站、政务网、银行网络等,HTTPS协议是现行架构下WEB访问最安全的解决方案之一,目前大多WEB访问也采用HTTPS方式访问。即别有用心者通过数据捕获工具捕获数据,其获取到的是加密数据,在不知道解密密钥的情况下很难对数据进行解密,从而保证了数据通信的安全性。
22端口是正常ssh协议访问端口,SSH协议是一种安全协议,具有通用性和可扩展性,作为一种通用且可扩展的安全协议,加密网络中传输的数据,一定程度上降低了窃听等部分网络攻击的成功概率与危害。然而,恶意用户的攻击手段越来越复杂,恶意用户可以利用SSH对远程的服务器进行攻击[1]。SSH作为当前主流远程访问方式,信息流变得更易被不法分子进行捕获分析和利用,从而给所保护的网络造成安全隐患。
Stunnel是一个跨平台的开源项目,提供了两个主要功能。
(1)提供基于OpenSSL的安全加密连接;特别是本身无法进行TLS或SSL通信的客户端及服务器。
(2)Stunnel提供SSL连接解除了防火墙和代理的限制,直接和远端服务器进行网络服务通信。因为对于绝大多数LAN或者WLAN正常情况下都会开放443端口用于HTTPS连接,正是利用这一点,Stunnel和远程端口443创建一个SSL连接,防火墙和代理会误以为该连接为正常的HTTPS连接而允许通过。
3 SSH伪装方法及实现
3.1 实现原理
针对SSH和HTTPS协议的特点,结合Stunnel的特点,本文设计了利用Stunnel对SSH信息流进行伪装加密的方法。基本实现原理如图1所示。
由于SSH数据流常使用端口22传递,而HTTPS数据流常使用端口443传递,因此本文利用Stunnel平台对SSH协议信息进行二次封装,在SSH协议的外层再封装一层SSL/TLS层,使其伪装成正常的Web访问HTTPS信息。伪装后的SSH数据包通过Stunnel隧道从客户端一端的443端口发送至发送至服务端一端的443监听端口。在这个过程中,SSH信息流通过二次封装加密后,从原来的22端口传输转变成HTTPS流的443端口传输。其安全性和隐蔽性得到了大大地提升,也让不法人员对于SSH信息的劫持失去兴趣,从而提高SSH信息的隐蔽性和安全性。
3.2 实现方案
实验环境说明:(1)首先建立两端:服务器和客户端。
服务端系统:debian7.4 客户端系统:ubuntu14.04
Ip地址:10.104.118.166Ip地址:10.104.10.212
通过图2的流程图显示,实现方案为典型的C/S方式,在服务器端按照Stunnel环境,创建SSL证书,生成一对密钥,即公钥和私钥,公钥附加在证书中,然后导出,然后封装SSH协议,启动Stunnel服务。客户端的配置相应的简单些,减少了证书和密钥的生成环节,只需要把服务器端的证书通过winscp复制过来,再配置一下配置文件即完成环境的搭建。
(1)信息伪装前:在客户端使用ssh root@10.104.10.212连接服务器,使用tcpdump抓包,结果如图3中的左图所示,通过抓包工具可以清晰准确的识别出SSH数据包。
(2)信息伪装后:在客户端使用Sshroot@localhost –v –p 443命令连接服务端,使用tcpdump抓包,结果如图3中的右图所示,由图中抓包效果来看,可以直观地看到是HTTPS信息流。其实这是SSH信息流被伪装成了HTTPS信息流。
4总结
本文设计一种方法将SSH信息流伪装成HTTPS信息流,通过对SSH信息封装加密,伪装成HTTPS信息在网络上传输,使得SSH被截获分析的概率大大降低,从而保护SSH信息流的安全。利用Stunnel平台对SSH信息流进行伪装实现验证,通过测试可以很好地实现对SSH流的伪装,把SSH信息流变成表面上的HTTPS信息流,让对SSH信息流有不良用心者失去破解的愿望,从而大大提升了对SSH信息流的安全保护。
参考文献:
[1] 张亚奇.可信SSH协议的设计与实现[D].北京:北京交通大学,2017.
[2] 范博,杨润垲,黎琳.基于SSH的可信信道建立方法研究[J].信息网络安全,2018(1):45-51.
[3] 宋阳秋.SSH缓冲区溢出漏洞与安全防范探讨[J].计算机科学,2008,35(4):85-87,90.
[4] 王国新,平西建,张涛,等.空域LSB信息伪装及其隐写分析[J].计算机工程,2008,34(1):173-174,189.
[5] 周琳娜,吕欣一.基于GAN图像生成的信息隐藏技术综述[J].信息安全研究,2019,5(9):771-777.
[6] 刘本仓,范海峰.基于Stunnel的数据加密遂道研究[J].福建电脑,2006,22(10):117,134.
【通联编辑:光文玲】