基于应用层的协议-WEB安全社区-弘客官方【交流区】-弘客联盟

基于应用层的协议

今天我们来说一下基于应用层的一些网络协议

 

DHCP协议

DHCP是如何工作的

当DHCP服务器作为服务器时,DHCP服务器是用来自动分配唯一的IP地址,同时配置网络的其他信息。在小型企业或家庭中,DHCP服务器除了路由器之外,没有其他任何一个是DHCP服务器。然而,在大型网络中,DHCP服务器可以是一台计算机。

在这个过程中发生了什么,简单的总结如下

1.客户端向主机发送一个IP地址请求。客户端可以是任何发送请求的设备,主机可以是路由器。

2.主机将寻找一个可用的IP地址并分配给客户端。

3.使用这个IP地址,客户端就可以在网络上进行通信。

现在我们就来详细了解一下这个过程。下面提到的步骤可以深入了解一下。

1.连接到有DHCP服务器的网络的设备发送的请求称为DHCPDISCOVER请求。

2.这个请求以一个名为DISCOVER的数据包的形式发送给DHCP服务器。DHCP服务器一收到这个数据包,服务器就会立即寻找设备使用的IP地址。一旦找到后,服务器会通过向客户端发送一个名为DHCPOFFER的数据包进行响应。

3.设备或客户端现在必须用一个名为DHCPREQUEST的数据包回馈给服务器,以接受所选的IP地址。对于这个数据包,服务器会发送一个确认(ACK),确认设备现在可以使用这个特定的IP地址。它还声明了特定IP地址的有效性,这样设备就能准确地知道何时必须获得一个新的IP地址。

4.如果服务器不希望设备拥有给定的IP地址,它将不会通过发送一个NAC来确认设备的请求。

虽然上面提到的步骤看起来很费时间,但实际操作起来却非常快,让人不自觉地就会想到。当然,这个过程不需要技术上的细节,只需阅读就可以从DHCP服务器上获得一个IP地址。

HTTP协议

HTTP 是一种无状态 (stateless) 协议, HTTP协议本身不会对发送过的请求和相应的通信状态进行持久化处理。这样做的目的是为了保持HTTP协议的简单性,从而能够快速处理大量的事务, 提高效率。

然而,在许多应用场景中,我们需要保持用户登录的状态或记录用户购物车中的商品。由于HTTP是无状态协议,所以必须引入一些技术来记录管理状态,例如Cookie。

HTTP URL 包含了用于查找某个资源的详细信息, 格式如下:

http://host[“:”port][abs_path]

HTTP请求

下图是在网上找的一张图,觉得能很好的表达HTTP请求的所发送的数据格式。

d2b5ca33bd172110

 

请求行由请求Method, URL 字段和HTTP Version三部分构成, 总的来说请求行就是定义了本次请求的请求方式, 请求的地址, 以及所遵循的HTTP协议版本例如:

GET /example.html HTTP/1.1 (CRLF)

HTTP协议的方法有: GET: 请求获取Request-URI所标识的资源 POST: 在Request-URI所标识的资源后增加新的数据 HEAD: 请求获取由Request-URI所标识的资源的响应消息报头 PUT: 请求服务器存储或修改一个资源,并用Request-URI作为其标识 DELETE: 请求服务器删除Request-URI所标识的资源 TRACE: 请求服务器回送收到的请求信息,主要用于测试或诊断 CONNECT: 保留将来使用 OPTIONS: 请求查询服务器的性能,或者查询与资源相关的选项和需求

超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。

  为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS,为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。

一、HTTP和HTTPS的基本概念

  HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。

  HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。

  HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。

二、HTTP与HTTPS有什么区别?

  HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全,为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。简单来说,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。

  HTTPS和HTTP的区别主要如下:

  1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。

  2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。

  3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

  4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

三、HTTPS的工作原理

我们都知道HTTPS能够加密信息,以免敏感信息被第三方获取,所以很多银行网站或电子邮箱等等安全级别较高的服务都会采用HTTPS协议。

客户端在使用HTTPS方式与Web服务器通信时有以下几个步骤,如图所示。

  (1)客户使用https的URL访问Web服务器,要求与Web服务器建立SSL连接。

  (2)Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。

  (3)客户端的浏览器与Web服务器开始协商SSL连接的安全等级,也就是信息加密的等级。

  (4)客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。

  (5)Web服务器利用自己的私钥解密出会话密钥。

  (6)Web服务器利用会话密钥加密与客户端之间的通信。

四、HTTPS的优点

  尽管HTTPS并非绝对安全,掌握根证书的机构、掌握加密算法的组织同样可以进行中间人形式的攻击,但HTTPS仍是现行架构下最安全的解决方案,主要有以下几个好处:

  (1)使用HTTPS协议可认证用户和服务器,确保数据发送到正确的客户机和服务器;

  (2)HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全,可防止数据在传输过程中不被窃取、改变,确保数据的完整性。

  (3)HTTPS是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅增加了中间人攻击的成本。

  (4)谷歌曾在2014年8月份调整搜索引擎算法,并称“比起同等HTTP网站,采用HTTPS加密的网站在搜索结果中的排名将会更高”。

五、HTTPS的缺点

  虽然说HTTPS有很大的优势,但其相对来说,还是存在不足之处的:

  (1)HTTPS协议握手阶段比较费时,会使页面的加载时间延长近50%,增加10%到20%的耗电;

  (2)HTTPS连接缓存不如HTTP高效,会增加数据开销和功耗,甚至已有的安全措施也会因此而受到影响;

  (3)SSL证书需要钱,功能越强大的证书费用越高,个人网站、小网站没有必要一般不会用。

    (4)SSL证书通常需要绑定IP,不能在同一IP上绑定多个域名,IPv4资源不可能支撑这个消耗。

  (5)HTTPS协议的加密范围也比较有限,在黑客攻击、拒绝服务攻击、服务器劫持等方面几乎起不到什么作用。最关键的,SSL证书的信用链体系并不安全,特别是在某些国家可以控制CA根证书的情况下,中间人攻击一样可行。

六、http切换到HTTPS

  如果需要将网站从http切换到https到底该如何实现呢?

     这里需要将页面中所有的链接,例如js,css,图片等等链接都由http改为https。例如:http://www.baidu.com改为https://www.baidu.com

  BTW,这里虽然将http切换为了https,还是建议保留http。所以我们在切换的时候可以做http和https的兼容,具体实现方式是,去掉页面链接中的http头部,这样可以自动匹配http头和https头。例如:将http://www.baidu.com改为//www.baidu.com。然后当用户从http的入口进入访问页面时,页面就是http,如果用户是从https的入口进入访问页面,页面即使https的。

SSH协议

SSH 叫安全外壳协议(Secure Shell),是一种加密的网络传输协议,可在不安全的网络中网络服务提供安全的传输环境。它通过在网络中创建安全隧道来实现 SSH 客户端和服务器之间的连接。最早的时候,互联网通信都是明文通信,一旦被截获,内容就会被暴露。1995年,芬兰学者 Tatu Ylonen 设计了 SSH 协议,将登录信息全部加密,成为互联网安全的一个基本解决方案,迅速在全世界获得推广,目前已经成为所有操作系统的标准配置。

SSH 是一种协议, 存在多种实现,既有商业实现,也有开源实现(OSSH,OpenSSH)。本文使用的自有软件 OpenSSH, 毕竟它是目前最流行的 SSH 实现,而且是所有操作系统的默认组件。

SSH 之所以一经提出,就得到了快速发展,是因为数据的安全性对任何人都非常重要。这里我们对其保护数据安全的原理进行探究。

在聊加密前先介绍一下几个密码学的基本概念:

明文plaintext 指传送方(一般指客户端)想要接受方(一般指服务端)获得的可读信息

密文ciphertext 指明文进过加密后所产生的信息

秘钥key 指用来完成加密、解密、完整性验证等密码学应用的密码信息,是明文转换为密文或密文转换为明文的算法需要的参数

私钥 指私有的秘钥

公钥 指公开的密钥

对称加密

对称加密就是加密或解密使用的是同一个秘钥。比较常用的对称加密算法有 AES,DES等。对称加密的优点是加解密效率高,速度快。对于服务端而言,它和每个客户端都要有一个秘钥,庞大的客户端数目导致秘钥数目多,而且一旦机器被登录,所有的秘钥都泄露,所以缺点是秘钥的管理和分发比较困难,不安全。

非对称加密

非对称加密需要一对秘钥来进行加密和解密,公开的秘钥叫公钥,私有的秘钥叫私钥。注意公钥加密的信息只有私钥才能解开(加密过程),私钥加密的信息只有公钥才能解开(验签过程)。比较常用的非对称加密算法有 RSA。

请登录后发表评论

    没有回复内容