




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Web安全安全胡建斌胡建斌北京大学网络与信息安全研究室北京大学网络与信息安全研究室E-mail: http:/ 目目 录录1.Web安全概述安全概述2.SSL3.SSL 程序设计程序设计4.Apache Web Server安全安全Web安全威胁及对策安全威胁及对策Web安全的特点安全的特点提供双向的服务,攻击防范能力脆弱提供双向的服务,攻击防范能力脆弱作为可视化窗口和商业交互平台,提供多种服务,作为可视化窗口和商业交互平台,提供多种服务,事关声誉事关声誉底层软件庞大,如底层软件庞大,如apacheapache约约10M10M,历来是漏洞之最,历来是漏洞之最,攻击手段最多攻击手段最多如果被攻破
2、可能导致成为进入企业的跳板如果被攻破可能导致成为进入企业的跳板配置比较复杂配置比较复杂Web安全的组成部分安全的组成部分Browser 安全安全Web Server安全安全Browser 与与Web Server之间网络通信安全之间网络通信安全Web安全方案安全方案网络层:网络层:IPSec传输层:传输层:SSL/TLS应用层:应用层:SET/SHTTP目目 录录1.Web安全概述安全概述2.SSL3.SSL 程序设计程序设计4.Apache Web Server安全安全SSL 设计目标设计目标 在在Browser和和Web Server之间提供敏感信息传输通道之间提供敏感信息传输通道4 So
3、cial Security Number (SSN)4 Credit Card, etc 提供访问控制提供访问控制4 Open4 Closed SSL被设计用来使用被设计用来使用TCP提供一个可靠的端到端安全服务,为提供一个可靠的端到端安全服务,为两个通讯个体之间提供保密性和完整性两个通讯个体之间提供保密性和完整性(身份鉴别身份鉴别)SSL 历史历史 Netscape 公司于公司于1994开发开发4 SSLv2 released in 19954 SSL v3 also released in 1995 due to bugs in v2 1996年年IETF成立成立4 Transport L
4、ayer Security (TLS) committee4 TLSv1 was based upon SSLv3 Netscape 、Microsoft 都支持都支持 TLSv1SSL 功能功能 SSL 提供四个基本功能提供四个基本功能4 Authentication 4 Encryption 4 Integrity4 Key Exchange 采用两种加密技术采用两种加密技术4 非对称加密非对称加密* 认证认证* 交换加密密钥交换加密密钥4 对称加密:加密传输数据对称加密:加密传输数据SSL 功能功能SSL 的结构的结构nSSL是独立于各种协议的是独立于各种协议的n常用于常用于HTTP协议
5、,但也可用于别的协议,如协议,但也可用于别的协议,如NNTP,TELNET等等n建立在可靠的传输协议(如建立在可靠的传输协议(如TCP)基础上)基础上n提供连接安全性提供连接安全性4 保密性,使用了对称加密算法保密性,使用了对称加密算法4 完整性,使用完整性,使用HMAC算法算法n用来封装高层的协议用来封装高层的协议SSL 记录协议记录协议n客户和服务器之间相互鉴别客户和服务器之间相互鉴别n协商加密算法和密钥协商加密算法和密钥n提供连接安全性提供连接安全性4 身份鉴别,至少对一方实现鉴别,也可以是双身份鉴别,至少对一方实现鉴别,也可以是双 向鉴别向鉴别4 协商得到的共享密钥是安全的,中间人不能
6、知道协商得到的共享密钥是安全的,中间人不能知道4 协商过程是可靠的协商过程是可靠的SSL握手协议握手协议协议的使用协议的使用SSL体系结构体系结构n连接连接n会话会话SSL基本概念基本概念n连接是能提供合适服务类型的传输(在连接是能提供合适服务类型的传输(在OSI分分层模型中的定义)层模型中的定义)n对对SSL,这样的连接是对等关系,这样的连接是对等关系n连接是暂时的,每个连接都和一个会话相关连接是暂时的,每个连接都和一个会话相关连接连接nSSL会话是指在客户机和服务器之间的关联会话是指在客户机和服务器之间的关联n会话由握手协议创建会话由握手协议创建n会话定义了一组可以被多个连接共用的密码安会
7、话定义了一组可以被多个连接共用的密码安全参数全参数n对于每个连接,可以利用会话来避免对新的安对于每个连接,可以利用会话来避免对新的安全参数进行代价昂贵的协商全参数进行代价昂贵的协商会话会话n在任意一对的双方之间,也许会有多个安全连在任意一对的双方之间,也许会有多个安全连接接n理论上,双方可以存在多个同时会话,但在实理论上,双方可以存在多个同时会话,但在实践中并未用到这个特性践中并未用到这个特性连接连接 Vs 会话会话会话状态参数会话状态参数连接状态参数连接状态参数各种密钥各种密钥pre_master_secretmaster secretClient write MAC secretClien
8、t write secretClient write IVServer write MAC secretServer write secretServer write IVSSL握手协议报文格式握手协议报文格式ClientServer一一 建立安全能力建立安全能力Client HelloSSL ClientSSL ServerPort 4431. The Client Hello message is composed of a.SSL Version (highest) that is understood by the client. 4 TLSv1 else SSLv3b. Key Ex
9、change to identify the method of exchanging keys.4RSA if not then D-H.c. Data Encryption to identify the encryption methods available to the Client.4TripleDes or else DES d. Message Digest for data integrity. 4 SHA or else MD5e. Data Compression method for message exchange4 PKZip or else gzipf. A Ra
10、ndom number to compute the secret keyhttps:/www. SSL ClientSSL ServerServer Hello1. The Server Hello message is composed of a.SSL Version (highest) that is understood by the client. 4 TLSv1 b. Key Exchange to identify the method of exchanging keys.4RSA.c. Data Encryption to identify the encryption m
11、ethods available to the Client.4 DES d. Message Digest for data integrity. 4 MD5e. Data Compression method for message exchange4 PKZip f. A Random number to compute the secret key一一 建立安全能力建立安全能力lData Encryption: 4RC2-404RC4-1284DES 4DES 4043DES4 IDEA4 FortezzalMessage Digest: 4MD54SHA.Cipher Suite A
12、lternativeslKey Exchange.4 RSA4 Fixed Diffie-Hellman4 Ephemeral Diffie-Hellman4 Anonymous Diffie-Hellman4 FortezzalData Compression: 4PKZip4WinZip4 gzip4 StuffItSSL ClientSSL ServerServer Certificate1.The Server Certificate message is composed of a.The server Identifier informationb.A Digital Certif
13、icate of the sever information encrypted with the CAs Private Key. 4This contains the servers Public Key Client Certificate Request1.The Client Certificate Request message is composed of a.The Certificate type to indicate the type of public key b.The Certificate Authority is a list of distinguished
14、names of Certificate Authorities acceptable to the ServerServer Done Message1.This Server Done message has no parameters.二二 服务器鉴别和密钥交换服务器鉴别和密钥交换SSL ClientSSL ServerClient Certificate1.The Client Certificate message is composed of a.The server Identifier informationb.A Digital Certificate of the clie
15、nt information encrypted with the CAs Private Key 1.The Client Authenticates the Server with the CA.a. Extracts the public key of the root signed certificate that came installed with the client and Computes a MD of the server certificate information. b. Decrypts the server certificate (that was issu
16、ed by the root CA) that contains the hash computed by the CA Private Keyc. Compares the computed hash with the hash contained in the server Digital Certificate.2.Generates a session key (psuedo-random number) to use as a Pre-Master Key then3. Encrypts the session key with the servers public key.三三 客
17、户机验证和密钥交换客户机验证和密钥交换SSL ClientSSL ServerClient Key Exchange1.The Client Key Exchange message is composed of a.The encrypted session key which will serve as a pre-master secret key encrypted with the servers public key.1. Both the client and the server use the pre-master secret key to compute three id
18、entical sets of secret key pairsa. The first pair (i.e. DES) is used to encrypt outgoing traffic from the client to the server and to decrypt incoming traffic to the server whileb. The second pair (i.e. HMAC) is used to encrypt outgoing traffic from the server and to decrypt incoming traffic to the
19、clientc. The third pair is used to initialize the cipher IV (Initialization Vector)Note: Both the Client and the Server each generate three sets of keys三三 客户机验证和密钥交换客户机验证和密钥交换SSL ClientSSL ServerC SS CC SS CEncryptionMACIVEncryptionMACIV密钥交换结果密钥交换结果1.The Client Finish message is composed of a.The cl
20、ient authenticates the server with a message encrypted with the newly generated shared keys. b.This validates to the server that a secure connection has been created. SSL ClientSSL ServerClient FinishServer Finish1.The Server Finish message is composed of a.The server authenticates the client with a
21、 message encrypted with the newly generated shared keys. b.This validates to the client that a secure connection has been created. Note: the Server and client can now begin to use their six shared keys for bulk data encryption utilizing the SSL Record Layer protocol四四 完成完成By Introducing SSL and Cert
22、ificates using SSLeay - Frederick J. hirschSSL记录协议操作记录协议操作By Introducing SSL and Certificates using SSLeay - Frederick J. hirsch1. 分片分片142字节By Introducing SSL and Certificates using SSLeay - Frederick J. hirsch2. 压缩压缩 无损压缩无损压缩不会增加不会增加1024字节字节 以上长度的内容以上长度的内容没有默认压缩算法没有默认压缩算法3. MAC计算计算4. 加密加密5. 封装封装n机密
23、性:握手协议定义了共享的、可用于对机密性:握手协议定义了共享的、可用于对SSL有效载荷进行常规加密的密钥及初始有效载荷进行常规加密的密钥及初始/后续的后续的IVn完整性:握手协议还定义了共享的、可用于完整性:握手协议还定义了共享的、可用于生成报文生成报文MAC的密钥的密钥SSL记录协议提供的服务记录协议提供的服务n由单个报文组成,报文值为由单个报文组成,报文值为1的单个字节的单个字节n使得挂起状态被复制到当前状态,改变了这使得挂起状态被复制到当前状态,改变了这个连接将要使用的密文族个连接将要使用的密文族SSL修改密码规格协议修改密码规格协议n用于将用于将SSL有关的告警传输给对方实体有关的告警
24、传输给对方实体n传输时按照当前状态说明被压缩和加密传输时按照当前状态说明被压缩和加密SSL告警协议告警协议主密钥的创建主密钥的创建n共享主密钥共享主密钥(Master Secret)由客户机和服务器共由客户机和服务器共享,是通过安全密钥交换生成的临时享,是通过安全密钥交换生成的临时48字节值字节值nMaster Secret 分两个步骤生成:分两个步骤生成:4 交换交换 pre_master_secret4 双方计算双方计算master_secretnpre_master_secret 交换方法:交换方法:4 RSA4 Diffie-Hellman主密钥的创建主密钥的创建密码参数的生成密码参数
25、的生成pre_master_secretmaster secretClient write MAC secretClient write secretClient write IVServer write MAC secretServer write secretServer write IV密码参数的生成密码参数的生成目目 录录1.Web安全概述安全概述2.SSL3.SSL 程序设计程序设计4.Apache Web Server 安全安全nSSL 通讯模型为标准的通讯模型为标准的C/S 结构,除了在结构,除了在 TCP 层层之上进行传输之外,与一般的通讯没有什么明显的之上进行传输之外,与一般
26、的通讯没有什么明显的区区 别别n主要介绍如何使用主要介绍如何使用OpenSSL进行安全通讯的程序进行安全通讯的程序设计。关于设计。关于OpenSSL 的一些详细的信的一些详细的信 息请参考息请参考OpenSSL的官方主页的官方主页 SSL程序设计程序设计OpenSSL初始化初始化SSL环境申请环境申请证书验证证书验证证书加载证书加载绑定到套接字绑定到套接字SSL握手握手SSL通信通信关闭关闭SSL连接连接目目 录录1.Web安全概述安全概述2.SSL3.SSL 程序设计程序设计4.Apache Web Server 安全安全Apache Web Ser
27、ver Apache是是Internet上最流行的上最流行的Web服务器,运行服务器,运行于于 大约大约60%的的Web站点站点 Apache的流行有以下若干原因:的流行有以下若干原因:4 Apache是一个可配置的是一个可配置的Web服务器服务器4 Apache是可扩展的(用户可以很容易地在其中添加模块,是可扩展的(用户可以很容易地在其中添加模块, 如如mod_perl和和mod_ php3)4 Apache开放源代码开放源代码4 Apache是免费的是免费的Apache 配置文件配置文件 Apache的配置文件通常是的配置文件通常是httpd.conf,这个文件,这个文件包含了大量指定包含
28、了大量指定Apache行为方式的命令行为方式的命令 Apache曾经使用过曾经使用过3个配置文件:个配置文件:httpd.conf,access.conf和和srm.conf,但现在它们的内容已经被组,但现在它们的内容已经被组合到单个合到单个httpd.conf文件中文件中Apache 用户配置用户配置 Apache要绑定要绑定80端口,所以它必须由端口,所以它必须由root启动,但一旦启动,但一旦启动,它就能更改运行自己的用户启动,它就能更改运行自己的用户 虽然可以改为任何用户,但通常由虽然可以改为任何用户,但通常由nobody用户来运行用户来运行httpd 除了指定除了指定httpd进程的
29、所有者之外,也可以配置其所属的组进程的所有者之外,也可以配置其所属的组 在在httpd.conf中,如下程序行用来配置其用户和组:中,如下程序行用来配置其用户和组:4 User nobody4 Group nobodyApache 符号连接配置符号连接配置 符号链接可以使符号链接可以使Web服务器连向某些包含重要文档的目录,服务器连向某些包含重要文档的目录,而不必复制这些文档。这样可以节省磁盘空间和系统的而不必复制这些文档。这样可以节省磁盘空间和系统的inode数,同时也便于数,同时也便于web管理管理 将将Web服务器访问的文件限制在文档树范围内是最重要的服务器访问的文件限制在文档树范围内是
30、最重要的安全策略,但是,管理员也可以配置服务器以允许使用指向安全策略,但是,管理员也可以配置服务器以允许使用指向文档树之外的符号链接文档树之外的符号链接Apache 符号连接配置符号连接配置 为允许符号链接,要如下配置那些包含符号链接的目录:为允许符号链接,要如下配置那些包含符号链接的目录:Options FollowSymLinks 更为严格的配置是只允许符号链接指向属于同一个用户的文更为严格的配置是只允许符号链接指向属于同一个用户的文件或目录件或目录Options SymLinkIfOwnerMatchApache 符号连接配置符号连接配置 如果必须使用符号链接,应当考虑将它们集中放置于只
31、有授如果必须使用符号链接,应当考虑将它们集中放置于只有授权用户如权用户如root才能写入的目录中才能写入的目录中 拒绝普通用户创建符号链接能限制敏感信息被链接的数量拒绝普通用户创建符号链接能限制敏感信息被链接的数量 假设存在某个属于假设存在某个属于root的目录,其许可为的目录,其许可为rwxr-xr-x。使用。使用Directory指令可限制指令可限制Apache只使用给定目录下的符号链接只使用给定目录下的符号链接 Options FollowSymLinks 防止返回目录内容列表防止返回目录内容列表 在一般的在一般的Apache配置下,如果用户访问配置下,如果用户访问web文档树下的某文档
32、树下的某个目录,而目录中没有个目录,而目录中没有index.html文件,则文件,则Web服务器将返回服务器将返回该目录的内容列表该目录的内容列表 Apache配置中与允许服务器返回目录内容列表相应的指令配置中与允许服务器返回目录内容列表相应的指令为为Option Indexes。在所有。在所有Option指令中去掉指令中去掉Indexes即可防即可防止返回目录内容列表止返回目录内容列表返回目录内容列表返回目录内容列表将将CGI限制在某些目录下限制在某些目录下一般的一般的Apache CGI配置限制配置限制CGI程序只能在程序只能在CGI目录下执行,目录下执行,这些目录通常被命名为这些目录通常
33、被命名为cgi-bin或或bin 这些目录下的所有文件都被看作是可执行程序,并以运行这些目录下的所有文件都被看作是可执行程序,并以运行Web服务器的用户的身份运行。应当关注这些目录下文件的内服务器的用户的身份运行。应当关注这些目录下文件的内容,因为它们将在被请求时执行容,因为它们将在被请求时执行 ScriptAlias /cgi-bin/ /usr/local/apache/cgi-bin/不要基于文件名来启用不要基于文件名来启用CGI也可以针对特定的文件名来执行也可以针对特定的文件名来执行CGI,通常基于特定扩展名(常见,通常基于特定扩展名(常见的扩展名有的扩展名有.cgi、.pl),这样就
34、允许程序员将这样就允许程序员将CGI程序放置在程序放置在Web服务服务器目录结构下的任意位置,而不仅仅是特定目录(如器目录结构下的任意位置,而不仅仅是特定目录(如cgi-bin)下)下建议用将建议用将CGI程序限制在特定目录的方式取代这种根据文件扩展名程序限制在特定目录的方式取代这种根据文件扩展名判断的方法。通过将判断的方法。通过将CGI程序限制在指定目录下,系统管理员就能限程序限制在指定目录下,系统管理员就能限定哪些人在该目录下有创建程序的权限,从而限定了能创建定哪些人在该目录下有创建程序的权限,从而限定了能创建CGI程序程序的用户的用户 AddHandler cgi-script.cgi根
35、据名字限制对文件的访问根据名字限制对文件的访问 为根据名字限制对文件的访问,应当使用为根据名字限制对文件的访问,应当使用Files或或FilesMatch指令。指令。如果使用如果使用Files指令,则应当使用指令,则应当使用“ ”号来表示引号内的字符串是正号来表示引号内的字符串是正则表达式则表达式 下面的例子给出了拒绝访问所有以下面的例子给出了拒绝访问所有以.bak结尾的文件的设置方法:结尾的文件的设置方法: Order allow,deny Deny from all根据名字限制对文件的访问根据名字限制对文件的访问使用使用FilesMatch指令时,提供的字符串直接被认为是正则表达式指令时,
36、提供的字符串直接被认为是正则表达式下面的例子给出了拒绝访问所有以下面的例子给出了拒绝访问所有以.old结尾的文件的设置方法结尾的文件的设置方法Order allow,denyDeny from all配置配置HTTP身份认证身份认证 配置服务器允许使用配置服务器允许使用.htaccess文件是实施身份认证的一个便利办文件是实施身份认证的一个便利办法,此时,法,此时,web开发者只须在需要身份认证的目录下放置一个名开发者只须在需要身份认证的目录下放置一个名为为.htaccess的文件,就可控制访问的文件,就可控制访问为将服务器配置为启用为将服务器配置为启用.htaccess文件,可以使用文件,可
37、以使用AllowOverride和和AccessFileName指令指令将下列指令写入将下列指令写入httpd.conf,以启用,以启用.htaccess文件。文件。AllowOverride指令设定指令设定.htaccess可以取代的项目(用于身份认证可以取代的项目(用于身份认证应设为应设为AuthConfig)AllowOverride AuthConfig配置配置HTTP身份认证身份认证 为了指定由名为为了指定由名为.htaccess的文件控制文件访问,应使用的文件控制文件访问,应使用AccessFileName指令:指令: AccessFileName .htaccess 应用应用.h
38、taccess文件时,它本身决不应当被服务器提供给客户端,文件时,它本身决不应当被服务器提供给客户端,因为其中包含了与服务器配置有关的信息。因此,必须使用因为其中包含了与服务器配置有关的信息。因此,必须使用Files命命令来配置服务器,使其拒绝浏览器对令来配置服务器,使其拒绝浏览器对.htaccess的访问的访问 Order allow,deny Deny from all配置配置HTTP身份认证身份认证 httpd.conf 在在httpd.conf文件中,使用如下指令即可实施文件中,使用如下指令即可实施HTTP身份认证:身份认证: AuthType Basic AuthNameMy Private Directory AuthUserFile /usr/local/apache/misc/my_private_dir.htpasswd require valid-user配置服务器状态信息和信息显示配置服务器状态信息和信息显示 只对可信主机才显示服务器状态和信息只对可信主机才显示服务器状态和信息 SetHandler server-status Order deny,allow Deny from all Allow from localhost SetHandler server-info
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025标准物流运输合同样本
- 2025长沙办公楼租赁合同范本
- 2025【企业短期融资借款合同】公司短期融资合同
- 2025年GPS接收设备及其综合应用系统合作协议书
- 2025幕墙设计与施工合同范本
- 2025实习生聘用合同模板与协议范本
- 2025年聚阴离子纤维素合作协议书
- 2025如何规避装修合同风险:专家提供的策略与指南
- 2025合同范本在应用软件代理中的运用研究
- 2025网络旅行社合作合同协议书
- ISOTS 22163专题培训考试
- 六年级下册数学课件-第4单元 比例 整理和复习 人教版(共21张PPT)
- JJF(鲁) 142-2022 称重式雨量计校准规范
- Adobe-Illustrator-(Ai)基础教程
- 程序的运行结果PPT学习教案
- 圆柱钢模计算书
- 合成宝石特征x
- 查摆问题及整改措施
- 年度研发费用专项审计报告模板(共22页)
- 隧道工程隧道支护结构设计实用教案
- 得力打卡机破解Excel工作表保护密码4页
评论
0/150
提交评论