文章目录
- 一、Weak Session IDs(弱会话IDs)
- 二、HTTP协议存在的安全问题
- 三、HTTPS协议
- 3.1 HTTP和HTTPS的区别
- 3.2 SSL协议组成
一、Weak Session IDs(弱会话IDs)
当用户登录后,在服务器就会创建一个会话(Session),叫做会话控制,再访问页面的时候就不用登录,只需要携带Session去访问。
Session ID作为特定用户访问站点所需要的唯一内容。如果能够就算或轻易猜到该Session ID,则攻击者将可以轻易获取访问权限,无需登录直接进入特定用户界面,进而执行其他操作。
用户访问服务器的时候,在服务器端会创建一个新的会话(Session),会话中会保存用户的状态和相关信息,用于标识用户。服务器端维护所有在线用户的Session,此时的认证,只需要知道是哪个用户在浏览当前的页面即可。为了告诉服务器应该使用哪个Session,浏览器需要把当前用户持有的Session ID告知服务器。用户拿到Session ID就会加密后保存在Cookie上,之后只要cookie随着http请求发送服务器,服务器就知道你是谁了。Session ID一旦在生命周期内被窃取,就等于账户失窃。
Session利用的实质:由于Session ID是用户登录之后持有的唯一认证凭证,因此黑客不需要再攻击登录过程(比如密码),就可以轻易获取访问权限,无需登录密码直接进入特定用户界面,进而查找其他漏洞如XSS、文件上传等。
Session劫持:就是一种通过窃取用户Session ID,使用Session ID登录进目标账户的攻击方法,此时攻击者实际上是使用了目标账户的有效Session。如果Session ID是保护在Cookie中,则这种攻击可以称为Cookie劫持。Session ID还可以保存在URL中,作为一个请求的一个参数,但是这种方式的安全性难以经受考验。
二、HTTP协议存在的安全问题
- 通讯使用明文,未加密,并且TCP/IP协议是可能会被窃听的网络,所以通讯内容可能会被窃听;
- 没有验证通讯方的身份,可能会被冒充;
- 没有办法验证报文的完整性,可能会被篡改。
三、HTTPS协议
超文本传输安全协议(HyperText Transfer Protocol Secure,缩写HTTPS)是一种通过计算机网络进行安全通信的传输协议,简单来说就是HTTP的安全版。
HTTP直接和TCP通信,但是HTTPS是HTTP先和SSL协议通信,然后SSL协议再和TCP通信。
3.1 HTTP和HTTPS的区别
- HTTPS协议需要到CA申请证书,一般免费证书很少,需要年费;
- HTTP是超文本传输协议,信息是明文传输;HTTPS则是具有安全性的SSL加密传输协议;
- HTTP和HTTPS使用的是完全不同的连接方式,用的端口也不一样,HTTP用80端口,HTTPS用443端口;
- HTTP的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比HTTP协议安全。
3.2 SSL协议组成
- 记录协议(Record Protocol)
- 握手协议(Handshake Protocol)
- 警告协议(Alert Protocol)
- 密码规范改变协议
SSL协议主要分为两层,其中底层是SSL记录协议层,高层是SSL握手协议层。最重要的是记录协议和握手协议。
SSL记录协议层的作用是为高层协议提供基本的安全服务。SSL记录协议针对HTTP协议进行了特别的设计,使得超文本的传输协议HTTP能够在SSL运动。记录封装各种高层协议,具体实施压缩、解压缩、加密、解密、计算和校验MAC等与安全有关的操作。
SSL握手协议层的这些协议用于管理信息的交换,允许应用协议传送数据之间相互验证,协商加密算法和生成密钥等。SSL握手协议的作用是协调客户与服务器的状态,使双方能够达到状态的同步。
HTTP协议三次握手
HTTPS通信过程