面包and牛奶
- 关注
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9

笔者因为今天在写和甲方谈论安全话题时,发现SSL和SSH非常容易被混淆,因为这两者名称极其相似,容易弄混,所以写下这篇文章来解释SSL(TLS)和SSH协议的不同!
SSL协议(TLS协议)
SSL(Secure Sockets Layer 安全套接字协议,及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层与应用层之间对网络连接进行加密。
SSL证书:也称为服务器SSL证书,是遵守SSL/TLS协议的一种数字证书,由全球信任的证书颁发机构(CA)验证服务器身份后颁发。将SSL证书安装在网站服务器上,可实现HTTPS加密传输和服务器身份认证双重功能。SSL证书的优点如下所示:
HTTPS加密传输;防窃取、防篡改
服务器身份认证;防身份冒充、防钓鱼网站
SSL剥离攻击
SSL剥离攻击是什么?
答:SSL剥离攻击(也称SSL降级或HTTP降级攻击)是一种网络攻击手段,攻击目的是将Web从密文传输的HTTPS连接降级到明文传输的HTTP。这带来了中间人的攻击的风险,即攻击者可以监听被攻击者登录页面网站的密码。
SSL剥离攻击的构造方法?
答:1.代理服务器:攻击者可以手动设置用户的浏览器代理,以将所有流量路由到她们自己的外部服务器。这意味着用户发出的每一个web请求都将提交给黑客,然后黑客可以接管并根据每个请求建立操作性链接。 2.ARP欺骗:攻击者通过欺骗地址解析协议(ARP)消息连接到用户的IP地址。一旦他们以这种方式连接,他们就可以接收针对合法用户IP地址的任何数据。 3.网络访问:攻击者可以创建一个假的公共WIFI网络,一旦用户连接到该网络,他们就可以控制其中发生的所有通信。
如何防范SSL剥离攻击?
答:1.全网站启用SSL通常是在任何需要用户输入信息的网页上启用SSL,这是一个很好的开始。但是最好的做法是在整个网站上启用SSL——即使是不需要用户输入任何信息的页面——以避免从HTTP到HTTPS出现任何漏洞,确保更完整的保护(火狐可能自带) 2.公司计算机上实施HSTS策略;HSTS表示HTTP严格传输安全,并建立制度,即规定浏览器不应该打开没有HTTPS连接的页面,并且尽可能将用户从站点的HTTP版本重定向到站点的HTTPS版本。在所有公司拥有的设备上实施这种类型的制度可以防止用户访问不安全的网站,因为这意味着他们将无法打开通过HTTP连接的页面。
3.公司用户启用安全的Cooki;公司的所有用户启用安全Cookie意味着其他浏览器使用的所有Cookie将
具有安全属性,只能通过安全的HTTPS连接发送,而不是不安全的HTTP连接发送。
TLS(与SSL密切相关,eg:VPN)
TLS是SSL的后续协议。它的工作方式与SSL基本相同,都使用加密技术来保护数据和信息的传输。TLS
是一个互联网工程任务组(IETF)的标准协议,在两个通信的计算机应用程序之间提供身份验证、隐私和数
据完整性。为了实现邮件内容的最佳安全性和隐私性,在所有处理电子邮件通信的服务器(包括内部服
务器和外部服务器之间的跳点服务)之间都需要使用TLS。
SSH协议
SSH (即,Secure Shell安全外壳协议)由 IETF 的网络小组(Network Working Group)所制定;SSH为建立在应用层基础上的安全协议(因为明文传输,ftp、pop和telnet这些协议在本质上都是不安全的);SSH专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台以及windows平台,都可运行。
SSH协议的基础使用
SSH客户端是一种使用安全壳协议连接到运行了SSH服务端的远程服务器上。 SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。SSH的优点如下所示:
有效防止远程管理过程中的信息泄漏 传输数据加密,能够防止DNS和IP欺骗(中间人攻击);传输数据压缩,加快传输速度
OpenSSH服务端常用命令
OpenSSH(开源工具)提供了服务端程序( openssh-server )和客户端工具( openssh-client Mac和
Linux中默认已安装ssh客户端,可直接在终端中使用ssh命令;Windows则需手动安装ssh客户端,较常
用的Windows SSH客户端有向日葵(国产)和xShell 。
补充:SSH服务端配置文件默认为/etc/ssh/sshd_config可以按需修改默认22端口等配置
ssh colin@IP地址 ip addr | grep inet(查看链接的电脑IP) cat /etc/os-release(查看链接电脑的版本) sudo apt install openssh-server/openssh-client(安装服务端/客户端(Ubuntu)) netstat -tlp |grep ssh(查看ssh服务是否开启) sudo /etc/ init.d/ssh start/stop/ restart(启动/停止/重启ssh服务)
SSH高级配
使用服务器别名登录SSH:远程管理命令(如ssh,scp等)连接一台服务器时一般都需要提供服务器地
址、端口、用户名,每次输入比较繁琐,我们可以把经常使用的服务器连接参数打包记录到配置文件中
并为其设置一个简单易记的别名。这样我们就可以通过别名方便的访问服务器,而不需要提供地址、端
口、用户名等信息。配置方法如下:
1.创建或打开~/.ssh/ config ,在文件追加服务器配置信息 2.服务器配置格式如下: Host ColinMac HostName IP地址 User colin Port 22(配置中只有HostName是必选项,其他都可按需省略)
利用SSH转发功能穿透内网
当HTTP、FTP等协议被防火墙所拦截时我们就可以考虑使用内网穿透,我们可以使用SSH的端口转发功
能,将其它TCP端口的网络数据通过SSH连接来转发(动态转发,本地转发,远端转发)。
- 动态转发(正向SOCKS代理)
在攻击者执行用攻击者SSH连接跳板机,然后将自己通过在本地分配一个SOCKS去监听端口只要
有连接请求到这个端口上来时,这个连接就会被安全通过给转发出去,应用程序的协议将有远程机器来
决定连接到哪里。
补充:目前支持SOCKS4和SOCKS5协议,SSH会扮演一个SOCKS5服务器。另外只有Root用户才能转发原始端口。
- 本地转发(正向端口转发)
本地是针对于跳板机,把外来的流量,转发到自己内部的网络(本地),就是本地转发。
- 远端转发(反向端口转发)
本地是针对于跳板机,把自己内部(本地)的流量,转发到外面(远端)的网络里将内网的端口转发
到VPS的某个端口上,以达到外网可以访问的目的在这里主机充当我们的VPS。
总结
由于最近忙于hvv,所以较为懒散,难免有事情,导致拖拖拉拉。最后我的总结就到此为止啦,希望对大家以后的学习和工作有所帮助。同时,欢迎大家指出不足。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)