第七章协议及其安全性HTTP协议通用的、无状态的协议。分布式Web应用的核心技术协议,在TCP/IP协议栈中属于应用层。定义了Web浏览器向Web服务器发送Web页面请求的格式,以及Web页面在Internet上的传输方式。通信发生在TCP/IP连接上,默认端口为80。第七章安全性HTTP的两个安全漏洞:HTTP协议允许远程用户对服务器的通信请求,并允许用户在远程执行命令——危及Web服务器和客户的安全A随意的远程请求验证B随意的WEB服务器验证C滥用服务器资源服务器日志,Web服务器会记录用户访问信息,但是对其检索未加限制,泄露用户信息。第七章安全性对于不正确IP地址,Web服务器就伪造一个域名继续工作。一旦Web服务器获得IP地址及相应客户的域名,便开始进行验证,来决定客户是否有权访问请求的文档。这其中隐含着安全漏洞:服务器伪造域名,可能把信息发给其他用户电子客户对服务器存在威胁第七章安全性增强服务器安全性的措施仔细配置服务器,有效利用访问控制以非特权用户运行WEB服务器在WINDOWS2000上,检查共享的权限,最好设置为只读。进行服务器镜像,敏感文件放在主系统上,辅系统不放敏感文件,并向INTERNET开放。作好最坏打算。检查APPLET、脚本程序、CGI程序有无漏洞在WINDOWS2000上运行WEB服务器比在UNIX上安全。第七章安全性镜像冗余的一种类型一个磁盘上的数据在另一个磁盘上存在一个完全相同的副本即为镜像。第七章安全性镜像技术集群技术的一种。是将建立在同一个局域网之上的两台服务器通过软件或其他特殊的网络设备,将两台服务器的硬盘做镜像。其中,一台服务器被指定为主服务器,另一台为从服务器。客户只能对主服务器上的镜像的卷进行读写,从服务器上相应的卷被锁定以防对数据的存取。当主服务器因故障停机时,从服务器将在很短的时间内接管主服务器的应用。第七章S-HTTP保护Internet上所传输的敏感信息的安全协议。随着Internet和Web对身份验证的需求的日益增长,用户在彼此收发加密文件之前需要身份验证。第七章安全性S-HTTP的目标是保证商业交易的传输安全,因而推动了电子商务的发展。S-HTTP使Web客户和服务器均处于安全保护之下,其文件交换是加密(签名)的。对多种单向散列(Hash)函数的支持,如:MD2,MD5及SHA;对多种对称加密体制的支持,如:DES,RC2,RC4,CDMF;对数字签名体制的支持,如:RSA,DSS。S-HTTP协议第七章Netscape公司开发的Internet数据安全协议。位于TCP/IP协议与各种应用层协议之间,提高应用层协议(如HTTP,Telnet,NNTP,FTP等)的安全性。广泛地用于Web浏览器与服务器之间的身份认证和加密数据传输。第七章安全性SSL协议分为两层:SSL握手协议和SSL记录协议。SSL协议与TCP/IP协议间的关系如图:HTTPS、FTPS、TELNETS、IMAPSSSL握手协议SSL记录协议TCP传输控制协议IP因特网协议7.1.5安全套接层SSL第七章安全性SSL记录协议(SSLRecordProtocol)它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持SSL握手协议(SSLHandshakeProtocol)它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。7.1.5安全套接层SSL第七章安全性SSL协议的功能包括:数据加密、服务器验证、信息完整性以及可选的客户TCP/IP连接验证。SSL的主要目的是增强通信应用程序之间的保密性和可靠性。7.1.5安全套接层SSL第七章安全性SSL由NETSCAPE开发,S-HTTP由NCSA开发。SSL是一个通过套接层对客户和服务器之间的通信事务进行安全处理的协议,适用于所有TCP/IP应用;S-HTTP是HTTP的超集,只限于Web的使用。SSL支持数据加密、来源验证和数据的完整性,以保护在不安全的公共网络上交换的数据。7.1.5SSL与S-HTTP第七章缓存的安全性缓存通过在本地磁盘中存储高频请求文件,从而提高Web服务的性能。安全缺陷1.如果远程服务器上的文件更新了,用户从缓存中检索到的文件就有可能过时2.由于这些文件可由远程用户取得,因而可能暴露一些公众或外部用户不能读取的信息第七章安全性解决方法Web服务器将远程服务器上文件的日期与本地缓存的文件日期进行比较第七章通用网关接口(CGI)的安全性7.2.3Plug-in的安全性7.2.4Java与JavaScript的安全性7.2.5Cookies的安全性7.2.6ActiveX的安全性第七章服务器的安全漏洞NCSA(美国国家超级计算应用中心)服务器的安全漏洞:缓冲区溢出(长URL)Apache服务器的安全漏洞:使用mod_cookies模块时,存在系统堆栈溢出(长cookie),潜在允许执行任意命令。自动目录列表(看到首页,和目录列表)Netscape的服务器的安全漏洞:40位密钥加密机制不安全(被破解)随机数发生器生成的随机数(密钥)的分布不是很随机第七章通用网关接口的安全性CGI提供了扩展Web页面功能的最灵活的方法。客户方CGI的编程用HTML语言,让窗口捕获用户的输入,并把它传到服务器方的应用程序,服务器方的CGI把这些信息传递给数据库DB,由它返回给客户系统更新的Web页面和其他信息。Web浏览器Web服务器CGIDBHTTP以Form向S请求返回查询结果CGI应用程序,请求启动子进程,请求返回查询结果用HTTP协议返回查询结果第七章安全性CGI编程时使用绝对路径。CGI脚本可以在任何地方以表格或URL激活,因此要对输入参数进行检查。不要依赖于隐藏变量的值,因为可以通过查看源代码看到。控制CGI程序的权限。第七章的安全性把任何一个命令行shell、解释器、宏处理器或脚本语言处理器作为一种文档类型的阅读器,都会受到Web上的攻击。不要为包含可执行语句的文件声明任何外部阅读器。Java和安全Tcl这些脚本语言会检测到这个安全问题,它们可以防止那些危险的功能。第七章的安全性Java是由Sun公司设计的一种编程语言。用Java编写的代码编译成一种紧凑的格式并存在连接的服务器端。JavaScript是由Netscape的LiveScript发展而来的脚本语言,它提高与Java的兼容性。JavaScript采用HTML页作为其接口,增强了HTML语言的动态交互能力,并且可以下载客户机执行,减轻服务器的负载。第七章安全性Javaapplet的安全性的问题在客户机运行,只允许读或写指定目录。JavaScript的安全性问题将用户的文件上传到因特网上的主机。监视用户某段时间访问的网页触发NETSCAPENAVIGATOR发送邮件,从而获取用户的邮件地址。第七章的安全性Cookie是HTTP协议下的一种方法,通过该方法,服务器或脚本能够在客户工作站上维护状态或状态信息。Cookie是一段很小的信息,通常只有一个短短的章节标记那么大。在浏览器第一次连接时,由HTTP服务器送到浏览器。以后,浏览器每次连接都把这个Cookie的一个拷贝返回给服务器。第七章安全性Cookie不能用来窃取关于用户或用户计算机系统的信息。但是用户浏览器在Web节点上的每次访问都留下:计算机名、IP地址、之前所访问的URL等信息,在Internet上产生轻微的痕迹。Cookie可以帮助攻击者快速找到目标主机的相关信息。第七章的安全性ActiveX是Microsoft公司开发的用来在Internet上分发软件的产品。ActiveX是一套与语言无关的内部操作技术。它使得采用不同语言编写的软件组件能够在网络环境中一起工作。ActiveX的核心技术元件是COM和DCOM。第七章安全性ActiveX的授权过程保证ActiveX不能被匿名分发,并且控件在公布以后不会被第三者修改。ActiveX可以从MicrosoftInternetExplorer的选项菜单里完全关闭。只要找到活跃内容一项并选择最安全选项即可实现关闭。第七章攻击的行为和特点Web欺骗——是指攻击者建立一个使人相信的、Web页站点的拷贝,这个假的Web站点拷贝就像真的一样,具有所有的页面和连接。然而,攻击者控制了这个假的Web站点,被攻击对象和真的Web站点之间的所有信息流动都被攻击者所控制。第七章月曝光第一批学历查询假网站,真网站的网址为1假冒的中国高等教育学生信息网中国高等教育信息中心中华证件网中国大学生网第七章安全性第二批学历查询假网站,(真网站的网址)假冒的中国高等教育学生信息网假冒的中国高等教育学生信息网中国大学生学历信息网中国大学生学历认证网中国大学生网攻击的原理和过程(1)建立假的Web站点——建立一个使人相信的、Web页站点的拷贝,这个假的Web站点拷贝就像真的一样,具有所有的页面和连接。(2)改写URL,将攻击服务器放在真正URL前面。如:://home.nets.com第七章安全性改写URLA用户请求来自攻击服务器(假WEB站点)的页面B攻击服务器请求真正服务器(真WEB站点)的页面C真正服务器向攻击服务器提供请求页面D攻击服务器改写真正服务器的页面的URL。如:://home.nets.comE攻击服务器