1、第六章第六章 安全套接层协议安全套接层协议SSL第1页SSL概述SSL体系结构与协议SSL协议安全性分析SSL应用第2页当前国际上流行电子商务所采取协议主要有:n安全套接层协议(Secure SocketsLayer,SSL)n基于信用卡交易安全电子协议(Secure Electronic Transaction,SET)n安全HTTP(S-HTTP)协议n安全电子邮件协议(PEM、S/MIME等)n用于公对公交易Internet EDI等。n另外在Internet网上利用Ipsec标准建设虚拟专用网,利用VPN为企业、政府提供一些基本安全服务,第3页6.1 SSL概述概述nSSL协议是一个国
2、际标准加密及身份认证通信协议n目标:SSL被设计用来使用TCP提供一个可靠端到端安全服务,为两个通讯个体之间提供保密性和完整性(身份判别)。第4页SSL/TLS协议n1994年Netscape开发了SSL(Secure Socket Layer)安全套接层协议,专门用于保护Web通讯n版本和历史n1.0,不成熟n2.0,基本上处理了Web通讯安全问题nMicrosoft企业公布了PCT(Private Communication Technology),并在IE中支持n3.0,1996年公布,增加了一些算法,修改了一些缺点nTLS 1.0(Transport Layer Security传输层
3、安全协议,也被称为SSL 3.1),1997年IETF公布了Draft,同时,Microsoft宣告放弃PCT,与Netscape一起支持TLS 1.0n1999年,公布RFC 2246(The TLS Protocol v1.0)第5页协议使用nhttps:/与shttp:/第6页n在网络上传输敏感信息(如电子商务、金融业务中信用卡号或PIN码等机密信息)都纷纷采取SSL来进行安全保护。nSSL经过加密传输来确保数据机密性,经过信息验证码(Message Authentication Codes,MAC)机制来保护信息完整性,经过数字证书来对发送和接收者身份进行认证。第7页IP/IPSecT
4、CPLower layersIPTCPLower layersSSLOSIPSecSSL一个确保任何安装了安全套接字客户和一个确保任何安装了安全套接字客户和服务器间事务安全协议,它包括全部服务器间事务安全协议,它包括全部TCP/IP应用程序应用程序 第8页nSSL协议可用于保护正常运行于TCP之上任何应用协议,如HTTP、FTP、SMTP或Telnet通信,最常见是用SSL来保护HTTP通信。nSSL协议优点在于它是与应用层协议无关。高层应用协议(如HTTP、FTP、Telnet等)能透明地建立于SSL协议之上。nSSL协议在应用层协议之前就已经完成加密算法、通信密钥协商以及服务器认证工作。在
5、此之后应用层协议所传送数据都会被加密,从而确保通信安全性。第9页nSSL协议使用通信双方客户证书以及CA根证书,允许客户/服务器应用以一个不能被偷听方式通信,在通信双方间建立起了一条安全、可信任通信通道。n该协议使用密钥对传送数据加密,许多网站都是经过这种协议从客户端接收信用卡编号等保密信息。它被认为是最安全在线交易模式,第10页SSL处理问题(功效)n客户对服务器身份认证nSSL服务器允许客户浏览器使用标准公钥加密技术和一些可靠认证中心(CA)证书,来确认服务器正当性。n服务器对客户身份认证n也可经过公钥技术和证书进行认证,也可经过用户名,password来认证。n建立服务器与客户之间安全数
6、据通道nSSL要求客户与服务器之间全部发送数据都被发送端加密、接收端解密,同时还检验 数据完整性第11页SSL提供安全服务n用户和服务器正当性认证nusing X.509v3 digital certificatesn传输数据机密性nusing one of DES,Triple DES,IDEA,RC2,RC4,n传输数据完整性nusing MAC with MD5 or SHA-1第12页SSL协议实现六步骤 n接通阶段:接通阶段:客户机经过网络向服务器打招呼,客户机经过网络向服务器打招呼,服务器回应;服务器回应;n密码交换阶段:密码交换阶段:客户机与服务器之间交换双客户机与服务器之间交换
7、双方认可密码,普通选取方认可密码,普通选取RSARSA密码算法;密码算法;n会谈密码阶段会谈密码阶段:客户机器与服务器间产生彼:客户机器与服务器间产生彼此交谈会谈密码;此交谈会谈密码;第13页n检验阶段:检验阶段:客户机检验服务器取得密客户机检验服务器取得密码;码;n客户认证阶段:客户认证阶段:服务器验证客户机可服务器验证客户机可信度;信度;n结束阶段:结束阶段:客户机与服务器之间相互客户机与服务器之间相互交换结束信息。交换结束信息。第14页6.1.3 SSL协议与电子商务协议与电子商务nSSL SSL 提供了用于开启提供了用于开启 TCP/IP TCP/IP 连接安全连接安全性性“信号交换信
8、号交换”。n这种信号交换造成客户和服务器同意将使用这种信号交换造成客户和服务器同意将使用安全性级别,并推行连接任何身份验证要求。安全性级别,并推行连接任何身份验证要求。n经过经过数字署名和数字证书数字署名和数字证书可实现浏览器和可实现浏览器和WebWeb服务器双方身份验证。服务器双方身份验证。n在用数字证书对双方身份验证后,双方就能在用数字证书对双方身份验证后,双方就能够用保密密钥进行安全会话了。够用保密密钥进行安全会话了。第15页SSL证书保障在线服务器安全证书保障在线服务器安全 服务器身份验证服务器身份验证 防假冒防假冒网络信息发送内容加密网络信息发送内容加密 防偷窥防偷窥网络信息发送完整
9、性检测网络信息发送完整性检测 防删节防删节网络信息发送内容修改提醒网络信息发送内容修改提醒 防篡改防篡改 第16页应用数据改变密码套,结束握手送出客户端证书送出服务器证书,请求客户端证书SSL流程流程浏览器浏览器Web服务器服务器SSL安全通道安全通道客户端证书客户端证书服务器证服务器证书书Client helloServer helloServer CertificateCertificate RequestServerKeyExchangeClient CertificateClientKeyExchangeCertificate VerifyChangeCipherSpecFinishe
10、dChangeCipherSpecFinishedApplication DataApplication Data建立协议版本、会话ID、交换随机数第17页SSL服务器证书工作原理介绍服务器证书工作原理介绍第一步:身份验证第一步:身份验证发证机构发证机构 CA CA服务器身份证服务器身份证你你 是是 谁?谁?我是卓越服务器我是卓越服务器身份验证身份验证?服务器服务器卓越服务器卓越服务器第18页SSLSSL服务器证书工作原理介绍服务器证书工作原理介绍第二步:创造密语规则第二步:创造密语规则密语规则密语规则发发 明明规则规则A A1、2、35、8、9原原 文文密语密语第19页SSLSSL服务器证书
11、工作原理介绍服务器证书工作原理介绍第三步:密语规则共享第三步:密语规则共享规则规则A A信息保险箱信息保险箱打开保险箱打开保险箱规则规则A A取得规则取得规则第20页SSLSSL服务器证书工作原理介绍服务器证书工作原理介绍第四步:进行安全通信第四步:进行安全通信规则规则A A规则规则A A1、2、3原原 文文1、2、3原原 文文5、8、9无意义文字无意义文字第21页SSL当初并不是为支持电子商务而设计,所以在当初并不是为支持电子商务而设计,所以在电子商务系统应用中还存在很多弊端电子商务系统应用中还存在很多弊端:nSSL是一个面向连接协议,在包括多方电子交易中,只能提供交易中客户与服务器间双方认
12、证,而电子商务往往是客户、网站、银行三家协作完成,SSL协议并不能协调各方间安全传输和信任关系;n购货时客户要输入通信地址,这么将可能使得客户收到大量垃圾信件。第22页nSSL协议运行基点是商家对客户信息保密承诺。但在上述流程中SSL协议有利于商家而不利于客户。n客户信息首先传到商家,商家阅读后再传到银行,这么,客户资料安全性便受到威胁。第23页n伴随电子商务参加方快速增加,认证问题越伴随电子商务参加方快速增加,认证问题越来越突出,来越突出,SSLSSL协议缺点完全暴露出来。协议缺点完全暴露出来。SSLSSL协议逐步被新协议逐步被新SETSET协议所取代。协议所取代。n当前我国开发电子支付系统
13、,不论是当前我国开发电子支付系统,不论是中国银中国银行行长城卡电子支付系统,还是长城卡电子支付系统,还是上海长途电信上海长途电信局局网上支付系统,均没有采取网上支付系统,均没有采取SSLSSL协议,主协议,主要原因就是无法确保客户资金安全性。要原因就是无法确保客户资金安全性。第24页6.1.4 SSL协议分层结构协议分层结构nSSL设计概念是希望使用TCP来提供一个可靠端对端安全性服务。SSL并不是单一个协议,而是由二层协议来组成nSSL协议含有两层结构:n其底层是SSL统计协议层(SSL Record Protocol Layer),简称统计层。n其高层是SSL握手协议层(SSL Hands
14、hake Protocol Layer),简称握手层.第25页应用层协议(应用层协议(HTTP、Telnet、FTP、SMTP等)等)SSL握手协议(握手协议(Handshake Protocol)SSL统计协议(统计协议(Record Protocol)TCP协议协议IP协议协议SSL协议协议图图6.2 SSL协议分层结构协议分层结构第26页nSSL协议定义了两个通信主体:客户(client)和服务器(server)。其中,客户是协议发起者。n在客户/服务器结构中,应用层从请求服务和提供服务角度定义客户和服务器,而SSL协议则从建立加密参数过程中所饰演角色来定义客户和服务器。第27页nSSL
15、握手协议包含四个阶段:第一个阶段建立安全能力;第二个阶段服务器判别和密钥交换;第三个阶段客户判别(可选)和密钥交换;第四个阶段完成握手协议。第28页SSL两个主要概念nSSLSSL连接(连接(connection)connection)n一个连接是一个提供一个适当类型服务传输(一个连接是一个提供一个适当类型服务传输(OSIOSI分分层定义)。层定义)。nSSLSSL连接是点对点关系。连接是点对点关系。n连接是暂时,每一个连接和一个会话关联。连接是暂时,每一个连接和一个会话关联。nSSLSSL会话(会话(sessionsession)n一个一个SSLSSL会话是在客户与服务器之间一个关联。会话会
16、话是在客户与服务器之间一个关联。会话由由Handshake ProtocolHandshake Protocol创建。会话定义了一组可供多创建。会话定义了一组可供多个连接共享密码安全参数。个连接共享密码安全参数。n会话用以防止为每一个连接提供新安全参数所需昂贵会话用以防止为每一个连接提供新安全参数所需昂贵协商代价。协商代价。第29页会会 话话连接连接1连接连接1连接连接2连接连接2连接连接n连接连接n图图6.3 SSL会话与连接会话与连接在任意一对通信主体之间,能够有多个安全连接。在任意一对通信主体之间,能够有多个安全连接。第30页会话状态参数nSession identifier:服务器选择
17、一个任意字节序列,用以标识一个活动或可激活会话状态。nPeer Certificate:标识服务器X.509.v3证书。可为空。nCompression method:加密前进行数据压缩算法。nCipher spec:指明数据体加密算法(无,或DES等)n以及散列算法(如MD5或SHA-1)用以计算MAC。还包含其它参数,如散列长度。nMaster secret:48位秘密,在client与server之间共享。nIs resumable:一个标志,指明该会话是否能用于产生一个新连接。第31页连接状态nServer and client random:server 和client 为每一个连接
18、所选择字节序号。nServer write MAC secret:一个密钥,用来对server 送出数据进行MAC操作。nClient write MAC secret:一个密钥,用来对client送出数据进行MAC操作。n Server write key:用于server 进行数据加密,client进行数据解密对称保密密钥;第32页连接状态nClient write key:用于client 进行数据加密,server进行数据解密对称保密密钥;nInitialization vectors:当数据加密采取CBC方式时,每一个密钥保持一个IV。该字段首先由SSL Handshake Prot
19、ocol产生产生,以后保留每次最终密文数据块作为IV。nSequence number:每一方为每一个连接数据发送与接收维护单独次序号。当一方发送或接收一个改变cipher spec message时,序号置为0,最大264-1。第33页6.2 SSL握手协议握手协议(Handshake protocol)n主要用来让客户端及服务器确认彼此身分。n为了保护SSL统计封包中传送数据,Handshake协议还能帮助双方选择连接时所会使用加密算法、MAC算法、及相关密钥。n在传送应用程序数据前,必须使用Handshake 协议来完成上述事项。第34页nHandshake由一些客户与服务器交换消息所组
20、成,每一个消息都含有以下三个字段:n类型(Type),1字节:表示消息类型,总共有十种。在表二中列出了这些已经定义消息种类。n长度(Length),3字节:消息位组长度。n内容(Content),1个字节:与此消息相关参数,表6.1列出全部可能参数。第35页SSL握手协议使用消息第36页第一阶段:建立起安全协商n客户发送一个client_hello消息,包含以下参数:版本、随机数(32位时间戳+28字节随机序列)、会话ID、客户支持密码算法列表(CipherSuite)、客户支持压缩方法列表,n然后,客户等候服务器server_hello消息n服务器发送server_hello消息,参数:客户
21、提议低版本以及服务器支持最高版本、服务器产生随机数、会话ID、服务器从客户提议密码算法中挑出一套、服务器从客户提议压缩方法中挑出一个.第37页CipherSuite密码套件密码套件 n第一个元素指定了密钥交换方法,SSL支持以下一些方法:nRSA,要求服务器提供一个RSA证书nDH(Diffie-Hellman),要求服务器证书中包含了由CA署名DH公开参数。客户或者在证书中提供DH公开参数,或者在密钥交换消息中提供此参数第38页第二阶段:服务器判别和密钥交换n服务器发送自己证书,消息包含一个服务器发送自己证书,消息包含一个X.509证书,或者一条证书链证书,或者一条证书链n服务器发送服务器发
22、送server_key_exchange消息消息n可选,有些情况下能够不需要。只有当服务器证书没有包含必需数可选,有些情况下能够不需要。只有当服务器证书没有包含必需数据时候才发送此消息据时候才发送此消息n消息包含署名,被署名内容包含两个随机数以及服务器参数消息包含署名,被署名内容包含两个随机数以及服务器参数n服务器发送服务器发送certificate_request消息消息n非匿名非匿名server能够向客户请求一个证书能够向客户请求一个证书n包含证书类型和包含证书类型和CAsn服务器发送服务器发送server_hello_done,然后等候应答然后等候应答第39页第三阶段:客户判别和密钥交换
23、n客户收到客户收到server_done消息后,它依据需要检验服务器提供消息后,它依据需要检验服务器提供证书,并判断证书,并判断server_hello参数是否能够接收,假如都没有参数是否能够接收,假如都没有问题话,发送一个或多个消息给服务器问题话,发送一个或多个消息给服务器n假如服务器请求证书话,则客户首先发送一个假如服务器请求证书话,则客户首先发送一个certificate消消息,若客户没有证书,则发送一个息,若客户没有证书,则发送一个no_certificate警告警告 然后然后客户发送客户发送client_key_exchange消息消息n最终,客户发送一个最终,客户发送一个certi
24、ficate_verify消息,其中包含一个消息,其中包含一个署名,对从第一条消息以来全部握手消息署名,对从第一条消息以来全部握手消息MAC值值()进行署进行署名名第40页第四阶段:结束n第四阶段建立起一个安全连接第四阶段建立起一个安全连接n客户发送一个客户发送一个change_cipher_spec消息,而且把协商得到消息,而且把协商得到CipherSuite拷贝到当前连接状态之中拷贝到当前连接状态之中n然后,客户用新算法、密钥参数发送一个然后,客户用新算法、密钥参数发送一个finished消息,消息,这条消息能够检验密钥交换和判别过程是否已经成功。这条消息能够检验密钥交换和判别过程是否已经
25、成功。其中包含一个校验值,对全部以来消息进行校验。其中包含一个校验值,对全部以来消息进行校验。n服务器一样发送服务器一样发送change_cipher_spec消息和消息和finished消息。消息。n握手过程完成,客户和服务器能够交换应用层数据。握手过程完成,客户和服务器能够交换应用层数据。第41页SSL握手协议流程n交换Hello消息,对于算法、交换随机值等协商一致n交换必要密码参数,方便双方得到统一premaster secretn交换证书和对应密码信息,方便进行身份认证n产生master secretn把安全参数提供给SSL统计层n检验双方是否已经取得一样安全参数第42页6.3 SSL
26、统计协议统计协议(SSL Record Protocol)nSSLSSL统计协议为每一个统计协议为每一个SSLSSL连接提供以下两种服连接提供以下两种服务:务:n机密性机密性(Confidentiality)(Confidentiality):SSLSSL统计协议会帮助统计协议会帮助双方产生一把共有密钥,利用这把密钥来对双方产生一把共有密钥,利用这把密钥来对SSLSSL所所传送数据做传统式加密。传送数据做传统式加密。n消息完整性消息完整性(Message Integrity)(Message Integrity):SSLSSL统计协议统计协议会帮助双方产生另一把共有密钥,利用这把密钥会帮助双方
27、产生另一把共有密钥,利用这把密钥来计算出消息认证码。来计算出消息认证码。第43页SSL数据单元形成过程数据单元形成过程用户数据单元用户数据单元分段分段压缩压缩附加附加MAC加密加密附加附加SSL报头报头第44页SSL统计协议操作流程 1.第一个步骤是分片(fragmentation)。每个上层应用数据被分成214字节或更小数据块。统计中包含类型、版本号、长度和数据字段.2.选择是否执行压缩步骤(compression)。压缩过程中,必须是无损失压缩(lossless),也就是说解压缩后能够得到原本完整消息。经过压缩后内容长度不能超出原有长度1024字节以上,在SSLv3(以及TLS现有版本),
28、并没有指定压缩算法,所以预设算法是null。3.计算压缩数据消息认证码(message authentication code)。为了到达这个目标,必须使用一把双方共有密钥。第45页SSL Record Format第46页6.4 SSL协议采取加密和认证算法协议采取加密和认证算法n6.4.1 加密算法加密算法块加密流加密加密算法密钥长度加密算法密钥长度IDEARC2-40DES-40DES3DESFortezza12840405616880RC440RC4-12840128第47页6.4.2 认证算法认证算法认证算法采取X.509电子证书标准,经过使用RSA算法进行数字署名来实现。n 服务器
29、认证:服务器方写密钥和客户方读密钥、客户方写密钥和服务器方读密钥分别是一对私有、公有密钥。n 客户认证:第48页6.4.3 会话层密钥分配协议 n SKEIP SKEIP(Simple Key Exchange for Internet ProtocolSimple Key Exchange for Internet Protocol)。)。由公钥证书来实现两个通信实体间长久单钥交换。证书经过用由公钥证书来实现两个通信实体间长久单钥交换。证书经过用户数据协议户数据协议UDPUDP得到得到n PhoturisPhoturis。SKEIPSKEIP有其不利一面,若某人能得到长久有其不利一面,若某人
30、能得到长久SKEIPSKEIP密钥,他就能够解出全部以前用此密钥加密信息,而密钥,他就能够解出全部以前用此密钥加密信息,而PhoturisPhoturis只用长久密钥认证会话密钥,则无此问题。但只用长久密钥认证会话密钥,则无此问题。但PhoturisPhoturis效率没效率没有有SKEIPSKEIP高。高。n ISAKMP(InternetISAKMP(Internet安全协会密钥管理协议安全协会密钥管理协议)。和前二者不一。和前二者不一样,样,ISAKMPISAKMP只提供密钥管理普通框架,而不限定密钥管理协议,只提供密钥管理普通框架,而不限定密钥管理协议,也不限定密钥算法或协议,所以在使
31、用和策略上更为灵活。也不限定密钥算法或协议,所以在使用和策略上更为灵活。第49页6.5 SSL协议安全性分析协议安全性分析n6.5.1 安全机制分析安全机制分析n 判别机制。公开密钥技术和数字证书能够实现客户端和服务器端身份判别。ClientHello和ServerHello发过去自己证书(里面包含了身份和自己公钥)。第50页 加密机制。加密机制。混合密码体制使用提供了会话和数据传输加密混合密码体制使用提供了会话和数据传输加密性保护。双方使用非对称密码体制协商出此次性保护。双方使用非对称密码体制协商出此次将要使用会话密钥,并选择一个对称加密算法。将要使用会话密钥,并选择一个对称加密算法。完整性
32、机制。完整性机制。定义了共享、能够用来形成报文判别码定义了共享、能够用来形成报文判别码MACMAC密钥。数据进行分片压缩后,使用单向散列函密钥。数据进行分片压缩后,使用单向散列函数产生一个数产生一个MACMAC,加密后置于数据包后部,而,加密后置于数据包后部,而且再一次和数据一起被加密且再一次和数据一起被加密,然后加上然后加上SSLSSL首部首部进行网络传输。进行网络传输。这么,假如数据被修改,其散列值就无法这么,假如数据被修改,其散列值就无法和原来和原来MACMAC相匹配,从而确保了数据完整性。相匹配,从而确保了数据完整性。第51页n 抗重放攻击。抗重放攻击。SSL使用序列号来保护通信方免受
33、报使用序列号来保护通信方免受报文重放攻击。这个序列号被加密后作为文重放攻击。这个序列号被加密后作为数据包负载。数据包负载。在整个在整个SSL握手中,都有一个唯一随握手中,都有一个唯一随机数来标识这个机数来标识这个SSL握手,这么重放便无握手,这么重放便无机可乘。机可乘。第52页6.5.2 脆弱性分析脆弱性分析第53页1.客户端假冒n因为因为SSL协议设计初衷是对协议设计初衷是对Web站点及网上站点及网上交易进行安全性保护,使消费者明白正在和交易进行安全性保护,使消费者明白正在和谁进行交易要比使商家知道谁正在付费更为谁进行交易要比使商家知道谁正在付费更为主要,为了不致于因为安全协议使用而造成主要
34、,为了不致于因为安全协议使用而造成网络性能大幅下降,网络性能大幅下降,SSL协议并不是默认地协议并不是默认地要求进行客户判别,要求进行客户判别,这么做即使有悖于安全这么做即使有悖于安全策略,但却促进了策略,但却促进了SSL广泛应用。广泛应用。n针对这个问题,可在必要时候配置针对这个问题,可在必要时候配置SSL协议,协议,使其选择对客户端进行认证判别。使其选择对客户端进行认证判别。第54页2.SSL协议无法提供基于UDP应用安全保护nSSL协议需要在握手之前建立TCP连接,所以不能对UDP应用进行保护。假如要兼顾UDP协议层之上安全保护,能够采取IP层安全处理方案。第55页3.SSL协议不能反抗
35、通信流量分析n因为SSL只对应用数据进行保护,数据包IP头和TCP头依然暴露在外,经过检验没有加密IP源和目标地址以及TCP端口号或者检验通信数据量,一个通信分析者依然能够揭示哪一方在使用什么服务,有时甚至揭露商业或私人关系秘密。第56页4.进程中主密钥泄漏n除非SSL工程实现大部分驻留在硬件中,不然主密钥将会存留在主机主存放器中,这就意味着任何能够读取SSL进程存放空间攻击者都能读取主密钥,所以,不可能面对掌握机器管理特权攻击者而保护SSL连接,这个问题要依靠用户管理策略来处理。第57页5.磁盘上暂时文件可能遭受攻击n对于使用虚拟内存操作系统,不可防止地有些敏感数据甚至主密钥都交换到存盘上,
36、可采取内存加锁和及时删除磁盘暂时文件等办法来降低风险。第58页6.对证书攻击和窃取n类似Verisign之类公共CA机构并不总是可靠,系统管理员经常犯错误是过于信任这么公共CA机构。n因为对于用户证书,公共CA机构可能不像对网站数字证书那样重视和关心其准确性。第59页3.安全盲点n系统管理员不能使用现有安全漏洞扫描或网络入侵检测系统来审查或监控网络上SSL交易。加密技术使得经过网络传输信息无法让IDS识别.n使得最主要服务器反而成为受到最少防护服务器。对此,恶意代码检测、增强日志功效等基于主机安全策略会成为最终防线。第60页nSSL依然不失为一套全方面完善安全策略中有效组成元素。然而,与网络安
37、全其它工具软件一样,仅使用单一防护软件都是远远不够。对SSL过高评价有可能带来高安全风险,它仅仅是网络安全工具一个,必须和其它网络安全工具紧密结合,方能结构出全方面、完善、安全可靠网络。第61页Web安全威胁安全威胁 Web全称是World Wide Web。Web面临主要安全威胁以下:u Web服务器上Web网页很轻易收到攻击u Web 下层软件结构复杂,存在大量安 全漏洞u 当Web服务器遭到破坏时,当地站点上数据和系统也将面临威胁。(威胁蔓延)第62页n浏览器:如IE和Netscape等nWeb服务器:nIIS、nDominoGoWebServernNetscapeEnterpriseS
38、ervernAppachen在浏览器端安装支持SSL客户端证书(可选),然后把URL中“http:/”更换为“https:/”。第63页CGI程序安全性问题 CGICGI是是Common Gateway InterfaceCommon Gateway Interface(通用网关接口)(通用网关接口)简写,它是一个简写,它是一个WebWeb服务器主机提供信息服务标准接服务器主机提供信息服务标准接口,经过提供这么一个标准接口,口,经过提供这么一个标准接口,WebWeb服务器能够执服务器能够执行应用程序并将它们输出,如文字、图形、声音等行应用程序并将它们输出,如文字、图形、声音等传递给一个传递给一
39、个WebWeb浏览器浏览器 CGICGI程序是程序是WWWWWW安全漏洞主要起源安全漏洞主要起源 编写安全编写安全CGICGI脚本脚本4.2WWW4.2WWW安全安全 第64页Web服务器端安全性服务器公布信息,提供服务服务器公布信息,提供服务静态信息,各种静态信息,各种HTML页面页面动态信息,利用脚本或者各种扩展引擎响应客户请动态信息,利用脚本或者各种扩展引擎响应客户请求求安全性安全性目录安全性目录安全性只有指定范围文件才能够被访问只有指定范围文件才能够被访问比如,禁止比如,禁止URL中出现中出现“.”第65页Cgi文件安全性,此目录禁止经过文件安全性,此目录禁止经过Web读写读写检验每一
40、个检验每一个cgi文件,不要保留有漏洞文件,不要保留有漏洞cgi文件,尤其是文件,尤其是系统预装一些系统预装一些cgi示例文件,这些文件往往为了说明功示例文件,这些文件往往为了说明功效,而忽略了安全性考虑效,而忽略了安全性考虑要求判别:因为协商原因,要注意安全性最低判别协要求判别:因为协商原因,要注意安全性最低判别协议议授权机制:保护好口令安全存放,以及客户信息保留授权机制:保护好口令安全存放,以及客户信息保留日志:打开系统中对于日志:打开系统中对于Web服务日志功效,以及服务日志功效,以及Web服务日志统计服务日志统计第66页服务器端安全防护有些应用使用有些应用使用SSL/TLS,为,为We
41、b Service申请一个证书申请一个证书Web Server往往是网络攻击入口点往往是网络攻击入口点为了提供为了提供Web Service,必须要开放端口和一些目录,还要接,必须要开放端口和一些目录,还要接收各种正常连接请求收各种正常连接请求防火墙对防火墙对Web Server保护是有限保护是有限为了安全,请为了安全,请:及时打上及时打上Web Server软件厂商提供补丁程序软件厂商提供补丁程序 尤其是一些主流服务软件,比如尤其是一些主流服务软件,比如MSIIS控制目录和文件权限控制目录和文件权限Web应用开发人员注意应用开发人员注意在服务端运行代码中,对于来自客户端输入一定要进行验在服务
42、端运行代码中,对于来自客户端输入一定要进行验证证预防缓冲区溢出预防缓冲区溢出第67页安全Web服务器安全Web服务器在提供常规Web服务同时,还含有以下特点:WEB页面加密存放方法,确保留储在WEB服务器上页面文件安全性;WEB页面原始性判别技术;分密级访问控制,确保不被非法访问;严格传输加密技术,确保信息不被监听;数字水印日志,确保日志文件不可更改,为计算机取证提供支持;第68页Web客户端安全性客户端安全性包括到客户端安全性包括到Cookie设置,保护用户隐私设置,保护用户隐私PKI设置,确定哪些是可信任设置,确定哪些是可信任CA对可执行代码限制,包含对可执行代码限制,包含JavaAppl
43、et,ActiveXcontrol假如你机器是多个人适用,则假如你机器是多个人适用,则Web页面缓存区域,将会留下用户最近访问过页页面缓存区域,将会留下用户最近访问过页面面历史统计历史统计口令自动保留和提醒口令自动保留和提醒第69页4.2.6 Plug-in安全性 Plug-inPlug-in在运行时完全作为浏览器一部分在运行时完全作为浏览器一部分 不要盲目执行任何从不要盲目执行任何从InternetInternet上下载程序上下载程序4.2.7 ActiveX安全性 ActiveXActiveX技术是技术是MicrosoftMicrosoft提出一组使用提出一组使用COMCOM使得软使得软件
44、部件在网络环境中进行交互技术集。件部件在网络环境中进行交互技术集。ActiveXActiveX安全模型安全模型 用户能够禁用用户能够禁用ActiveXActiveX4.2WWW4.2WWW安全安全 第70页4.2.8 cookie安全性cookiecookie是对是对HTTPHTTP协议一个补充,用来改进协议一个补充,用来改进HTTPHTTP协议无状态性协议无状态性用户要注意预防用户要注意预防cookiecookie文件被盗文件被盗用户能够完全删除用户能够完全删除cookiecookie文件文件4.2WWW4.2WWW安全安全 第71页4.3.1 Java特点JavaJava是一个简单、面向对
45、象、分布式、解释型、是一个简单、面向对象、分布式、解释型、健壮、安全、体系中立、可移植、高性能、多线健壮、安全、体系中立、可移植、高性能、多线程、动态语言。程、动态语言。特点特点 简单性简单性去掉了去掉了C C和和C+C+中一些无用特征中一些无用特征接管了轻易犯错任务接管了轻易犯错任务自动垃圾搜集自动垃圾搜集系统精简系统精简4.3Java4.3Java安全性安全性 第72页4.3.1 Java特点 面向对象面向对象 分布式分布式支持基于网络应用程序支持基于网络应用程序 解释性解释性JavaJava是一门解释性语言是一门解释性语言JavaJava程序在程序在JVMJVM(JavaJava虚拟机)
46、上运行虚拟机)上运行 健壮性健壮性强类型语言强类型语言内存模式改进内存模式改进例外处理例外处理4.3Java4.3Java安全性安全性 第73页4.3.1 Java特点 安全性安全性 体系中立性体系中立性JavaJava程序能够在任何系统上运行,只要该系统能组程序能够在任何系统上运行,只要该系统能组成成JavaJava虚拟机即可。虚拟机即可。可移植性可移植性JavaJava能够运行于安装了解释器任何机器上能够运行于安装了解释器任何机器上 高性能高性能 多线程多线程 动态性动态性 4.3Java4.3Java安全性安全性 第74页4.3.2 Java安全性 JavaJava安全模型不一样于传统安
47、全方法,主要经安全模型不一样于传统安全方法,主要经过访问控制来实现。过访问控制来实现。Java appletJava applet:一个小:一个小JavaJava应用程序,主要用应用程序,主要用于网页中。于网页中。4.3Java4.3Java安全性安全性 第75页4.3.2 Java安全性AppletApplet受到以下一些限制:受到以下一些限制:appletapplet不能读、写、重命名或者删除文件不能读、写、重命名或者删除文件 除了下载除了下载appletapplet那台计算机之外,那台计算机之外,appletapplet本身不能连接本身不能连接到或者接收来自于其它任何一台计算机连接请求到
48、或者接收来自于其它任何一台计算机连接请求 appletapplet不能执行系统级函数不能执行系统级函数 appletapplet不能访问一些图形和不能访问一些图形和GUIGUI相关程序相关程序 appletapplet不能读取一些系统属性不能读取一些系统属性 appletapplet不能注册一个新不能注册一个新SecurityManagerSecurityManager对象防止这些安对象防止这些安全上限制全上限制JavaJava也不是完全安全,用户需要及时打上补丁和也不是完全安全,用户需要及时打上补丁和更新更新4.3Java4.3Java安全性安全性 第76页4.3.3 Javascript安全性 JavaScriptJavaScript是是NetscapeNetscape企业设计一系列企业设计一系列HTMLHTML语语言扩展,它增强了言扩展,它增强了HTMLHTML语言动态交互能力,而语言动态交互能力,而且能够把部分处理移到客户机,减轻服务器负且能够把部分处理移到客户机,减轻服务器负载。载。JavaScriptJavaScript漏洞不像漏洞不像JavaJava漏洞那样能损坏用户漏洞那样能损坏用户机器,而是只包括侵犯用户隐私机器,而是只包括侵犯用户隐私 能够完全关掉能够完全关掉Javascript Javascript 4.3Java4.3Java安全性安全性 第77页