我们不能失去信仰

我们在这个世界上不停地奔跑...

0%

web安全学习笔记2

常见的浏览器协议

  • FTP协议

    英文全称 FIle TeansferProtocol 文本传输协议,用于Internet上的控制文件的双向传输。

FTP主要的作用,让用户连接上一个远程计算机(这些计算机上运行着FTP服务器程序)查看远程计算机有哪些文件,然后把文件从远程计算机拷贝到本地计算机。或者把本地的文件送到远程计算机去。

TCP/IP协议中,FTP标准命令TCP端口号位21,Port方式的数据端口为20.

FTP的传输有两种方式:ASCII传输模式和二进制数据传输模式。

  1. ASCII传输方式:假定用户正在拷的文件包含交单的ASCII码文本,如果在远程机器上运行的不是UNIX,当文件传输时FTP通常会自动地调整文件的内容以便于把文件解释成另外那台计算机存储文本的格式。

    但是常常有这样的情况,用户正在传输的文件包含的不是文本文件,他们可能是程序,数据库,字处理文件或者压缩文件。在拷贝任何非文本文件之前,用binary命令告诉ftp逐字拷贝,不要对这些文件进行处理,这就是二进制传输

  2. 二进制传输模式:在二进制传输中,保存文件的位序,以便原始和拷贝的是逐位一一对应的。即使目的地机器上包含序列的文件是没有意义的。例如:macintosh 以二进制方式传送可执行文件到windows系统,在对方系统上,次文件不能执行。

    如果你在ASCII方式下传输二进制文件,即使不需要也仍会转译。这会使传输稍微变慢,也会损坏数据,使文件变得不能用。(在大多数计算机上,ASCII方式一般假设没一个字符的第一有效位无意义,因为ASCII字符组合不使用它。如果你传输二进制文件,所有的位都是重要的。)如果你知道这两台机器是同样的,则二进制方式对文本和数据文件都是有效的。

  3. FTP的工作方式

    FTP支持两种模式,一种方式叫做Standard (也就是PORT方式,主动方式),一种是PAssive(也就是PASV,被动方式)。Standard模式FTP的客户端发送PORT命令道FTP服务器。Passive模式FTP的客户端发送PASV命令到FTP Sever。

    Port模式FTP客户端首先和FTP服务器的TCP 21端口建立连接,通过这个通道发送命令,客户端需要接受数据的时候在这个通道上发送PORT命令。PORT命令包含了客户端用什么端口接受数据。在传送数据的时候,服务端通过自己的TCP 20端口连接至客户端的指定端口发送数据。FTP sever必须和客户端建立一个新的连接用来传送数据。

    Passive模式在建立控制通道的时候和Standard模式类似,但建立连接后发送的不是port命令,而是Pasv命令。FTP服务器收到PASV命令后,随机打开一个临时端口(也叫自由端口,端口大于1023小于65535)并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器此端口,然后FTP服务器将通过这个端口进行数据的传送,这个时候FTP server不再需要建立一个新的和客户端之间的连接。

    很多防火墙在设置的时候都是不允许几首外部发起的连接的,所以许多位于防火墙后或内网的FTP服务器不支持PASV模式,因为客户端无法穿过防火墙打开FTP服务器的高端端口;而许多内网的客户端不能用PORT模式登陆FTP服务器,因为从服务器的TCP 20无法和内部网络的客户端建立一个新的连接,造成无法工作。

    主动和被动模式FTP有两种使用方式:主动和被动。主动模式要求客户端和服务器端同时打开并且坚挺一个端口以建立连接。在这种情况下,客户端由于安装了防火墙会产生一些问题。所以,创立了被动模式。被动模式只要求服务器端产生一个监听相应端口的进程,这样就可以绕过客户端安装了防火墙。

    一个主动模式的FTP连接建立要遵循一下步骤:

    客户端打开一个随机的端口(端口号大于1024,在这里,我们称它为x),同时一个FTP进程连接至服务器的21号命令端口。此时,源端口为随机端口x,在客户端,远程端口为21,在服务器。

    客户端开始坚挺端口(x+1),同时向服务器发送一个端口命令(通过服务器的21号命令端口),此命令告诉服务器客户端正在监听的端口号并且已准备好从此端口接受数据。这个端口就是我们所知的数据端口。

    服务器打开20号源端口并且建立和客户端数据端口的连接。此时,源端口为20,远程端口为(x+1)

    客户端通过本地的数据端口建立一个和服务器20号端口的连接,然后向服务器发送一个应答,告诉服务器它已经建立好了一个连接。

  • Https简介

    1.Https其实有两部分组成:HTTP+SSL/TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。具体是如何进行加密,解密,验证,如下:

    • 客户端发起HTTPS请求

      用户在浏览器输入一个https网址,然后连接到sever的443端口。

    • 服务端的配置

      采用HTTPS协议的服务器必须要有一套数字证书,可以自己制作,也可以向组织申请。区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,而受到信任公司申请的证书则不会弹出提示页面。这套证书其实就是一对公钥也私钥。可以想象成一把钥匙和一个锁头,只是全世界只有你一个人有这把钥匙,所以只有你才能看到被这把锁锁起来的东西。

    • 传送证书

      这个证书其实就是公钥,只是包含了很多信息,如证书的办法机构,过期时间等等。

    • 客户端解析证书

      这部分工作室友客户端的TLS来完成的,首先验证公钥是否有效,比如颁发机构,过期时间等等,如果发现异常,则会弹出一个警告框,提示证书存在问题。如果证书没问题,那么就生成一个随机值。然后用证书对随机值进行加密。就像,把随机值用锁头锁起来,这样除非有钥匙,不然看不到被锁住的内容。

    • 传送加密信息

      这部分传送的是用证书加密后的随机值,目的就是让服务端得到这个水机制,以后客户端和服务端的通信就可以通过这个随机值进行加密解密了。

    • 服务端解密信息

      服务端用私钥解密后,得到了客户端传来的随机值,然后把内容通过该值进行对称加密。所谓对称加密就是,将信息和私钥通过某种算法混合在一起,这样除非知道私钥,不然无法获取内容,而正好客户端和服务端都知道这个私钥,所以只要加密算法够彪悍,私钥够复杂,数据就够安全。

    • 传输加密后的信息

      这部分信息是服务端用私钥加密后的信息,可以在客户端进行还原。

    • 客户端解密信息

      客户端之前生成的私钥解密服务端传来的信息,于是获取了解密后的内容。整个过程第三方即使监听到了数据,也束手无策。

  • File协议

    1.注解:FIle协议主要用于访问本地计算机中的文件,就如同在windows资源管理器中打开文件一样。

    2.应用:要使用file协议,基本的格式如下:file:///文件路径,比如要打开F盘中CD文件家中的1.mp3文件,那么可以在资源管理器或者IE地址栏中输入:file://d:/CD/1.mp3`