SSL常见安全问题及解决方法
- 格式:doc
- 大小:72.50 KB
- 文档页数:7
an ssl certificate error o【SSL证书错误的原因和解决办法】在互联网时代,随着网络技术的不断发展,网络安全问题也日益凸显。
其中,SSL证书错误是一个常见但又不容忽视的问题。
本文将从SSL证书错误的原因、影响和解决办法三个方面进行详细分析,以帮助读者更好地了解和解决此类问题。
一、SSL证书错误的原因1. 证书过期:SSL证书通常有一个过期时间,过期后就不能再被认可。
证书过期可以导致浏览器显示证书错误信息。
2. 证书无效:如果一个证书在安装时出现问题,或者证书的颁发机构发生故障,则可能导致证书无效。
3. 配置错误:如果网站服务器的SSL配置出现问题,例如错误地安装了错误的证书或错误地配置了证书链,这也会导致证书错误。
4. 中间人攻击:中间人攻击是指黑客通过截取用户和服务器之间的加密通信,来窃取用户的信息。
这种攻击方式可能会导致浏览器显示证书错误,并使用户的信息面临泄露的风险。
二、SSL证书错误的影响1. 网站信任问题:当用户访问一个存在SSL证书错误的网站时,浏览器会弹出警告信息,提示用户网站可能存在安全风险。
这会降低用户对网站的信任度,从而影响网站的流量和声誉。
2. 数据安全问题:SSL证书错误可能导致用户的敏感数据(如个人信息、登录凭证等)被黑客截获,从而造成隐私泄露和其他安全问题。
三、SSL证书错误的解决办法1. 检查证书有效性:通过查看证书的有效期和证书颁发机构来判断证书的有效性。
如果证书已过期,则需要及时更新证书。
2. 检查证书链:确保证书链的完整性是很重要的。
可以使用SSL验证工具来检查证书链是否完整和正确。
3. 核对证书配置:检查网站服务器的SSL配置是否正确,包括证书的安装和配置参数的正确设置。
可以借助SSL配置检查工具来帮助诊断和解决配置问题。
4. 使用可信任的SSL证书:选择使用知名的证书颁发机构(CA)颁发的SSL证书,这样能够增加网站的可信度并降低证书错误的风险。
以我给的标题写文档,最低1503字,要求以Markdown文本格式输出,不要带图片,标题为:ssl错误怎么解决方案# SSL错误怎么解决方案提供了一种用于保护网络通信的安全协议,称为SSL(Secure Sockets Layer)。
SSL提供了身份验证、加密和完整性验证,以确保在客户端和服务器之间传输的数据安全。
但是,在使用SSL时,有时会遇到一些错误。
本文将探讨一些常见的SSL错误以及解决它们的方法。
## 1. ERR_SSL_PROTOCOL_ERROR这个错误意味着浏览器无法建立与SSL服务器的安全连接。
以下是解决此问题的几种方法:### 检查日期和时间设置确保计算机上的日期和时间设置正确。
不正确的日期和时间设置可能导致SSL错误。
### 清除浏览器缓存和Cookie清除浏览器缓存和Cookie可能会解决此问题。
这可以通过浏览器的设置或开发者工具完成。
### 更新浏览器确保您使用的浏览器是最新版本。
旧版本的浏览器可能会导致与SSL服务器的连接问题。
### 检查防火墙和安全软件某些防火墙和安全软件可能会干扰与SSL服务器的连接。
尝试临时禁用防火墙和安全软件,并检查是否解决了问题。
### 检查代理设置如果您使用代理服务器连接到互联网,尝试更改代理设置或直接连接以查看是否解决了问题。
## 2. ERR_SSL_VERSION_OR_CIPHER_MISMATCH此错误表示您的浏览器不支持与SSL服务器使用的协议版本或加密套件。
以下是解决此问题的方法:### 更新浏览器确保您使用的浏览器是最新版本。
如果使用的是旧版本的浏览器,它可能不支持最新的SSL协议或加密套件。
### 启用TLS 1.2打开浏览器设置,查找安全选项,并启用TLS 1.2协议。
这是目前被广泛采用的SSL 协议版本。
### 清除浏览器缓存和Cookie清除浏览器缓存和Cookie可能会解决此问题。
这可以通过浏览器的设置或开发者工具完成。
客户端开发中常见的安全性问题及解决方法在当今数字化时代,我们越来越离不开各种各样的客户端应用程序。
然而,随着技术的不断发展和黑客攻击的日益猖獗,客户端应用程序的安全性问题愈发凸显。
本文将探讨客户端开发中常见的安全性问题,并提出一些解决方法,以保护用户个人信息和应用程序的安全。
一、身份验证和授权问题身份验证和授权是客户端应用程序中最重要的安全性问题之一。
由于客户端可能被非法访问,必须通过身份验证来确认用户是否有权访问敏感数据。
然而,传统的用户名和密码验证方式易受到暴力破解和钓鱼攻击的威胁。
为了解决这个问题,开发人员可以采用多因素身份验证,如指纹识别、面部识别、短信验证码等。
同时,通过使用令牌验证和OAuth等授权机制,可以确保只有经过授权的用户才能访问特定的功能和数据。
二、数据传输安全问题客户端应用程序经常需要与服务器进行数据交互,而这些数据可能包含用户的个人信息、敏感数据等。
在传输过程中,数据容易被拦截和窃取。
为了解决这个问题,开发人员可以采用数据加密和安全套接字层(SSL)协议来保护数据传输的机密性。
同时,应该避免在不安全的网络环境下进行敏感数据的传输,例如使用公共WiFi。
三、代码注入和恶意软件问题客户端应用程序中存在代码注入和恶意软件的风险。
攻击者可以通过注入恶意代码来窃取用户的敏感信息,或者植入恶意软件来远程控制客户端。
为了防止代码注入,开发人员应该采用安全的编码实践,如输入验证、输出编码、参数化查询等。
另外,定期进行安全审计和漏洞扫描,及时修补潜在的安全漏洞。
四、应用程序破解和逆向工程问题客户端应用程序通常存储在用户设备上,容易被黑客逆向工程破解。
破解后的应用程序可能被恶意篡改和复制,给用户的数据和隐私带来巨大风险。
为了应对这个问题,开发人员可以采用代码混淆和加密技术来增加程序破解的难度。
此外,通过使用数字签名和应用程序完整性验证,可以确保应用程序的完整性,在检测到篡改时阻止应用程序运行。
电子身份认证系统中的安全问题分析与解决方案近年来,随着信息技术的迅速发展,电子身份认证系统在各个领域得到了广泛应用,如电子银行、电子商务等。
然而,随之而来的安全问题也日益突出,成为了电子身份认证系统面临的重大挑战。
本文将对电子身份认证系统中的安全问题进行深入分析,并提出相应的解决方案。
第一部分:安全问题分析1. 身份泄漏在电子身份认证的过程中,用户必须提供个人身份信息,包括姓名、身份证号码、手机号码等。
如果未能有效保护这些信息,就有可能导致身份泄漏问题。
黑客可能利用这些泄漏的身份信息进行欺诈或非法活动。
2. 身份伪造电子身份认证系统中,用户的身份通常是通过证书或数字签名等方式进行验证。
如果黑客能够伪造这些证书或签名,就有可能冒充他人身份进行非法操作,从而破坏系统的安全性。
3. 中间人攻击中间人攻击是指黑客通过截获通信数据,并对数据进行篡改或伪装,以获取用户信息或破坏通信的完整性。
这种攻击方式常常发生在用户与认证系统之间的通信过程中。
4. 拒绝服务攻击拒绝服务攻击是指黑客通过制造大量恶意请求,使得系统无法正常运行并拒绝为合法用户提供服务。
这种攻击方式会导致系统瘫痪,对用户和系统造成严重影响。
第二部分:解决方案1. 加强身份信息保护为了避免身份泄漏问题,电子身份认证系统需要加强个人身份信息的保护措施。
首先,加密存储个人信息,确保数据的安全性。
其次,只在进行必要的身份验证时,通过加密的方式传输身份信息。
最后,建立完善的访问控制机制,限制用户访问个人身份信息。
2. 采用双因素身份验证为了防止身份伪造问题,电子身份认证系统可以采用双因素身份验证。
除了传统的密码验证,还可以引入生物特征识别、硬件令牌等额外的身份验证手段,提高身份验证的准确性和安全性。
3. 使用安全通信协议为了避免中间人攻击,电子身份认证系统应该使用安全通信协议,如SSL/TLS协议,确保通信过程中数据的机密性和完整性。
同时,还可以采用数字签名等方式对通信数据进行验证,防止被篡改。
SSLTLS代理协议安全的中间人SSL/TLS代理协议安全的中间人SSL/TLS是一种加密通信协议,用于保证网络通信的安全性。
然而,某些情况下,我们需要在SSL/TLS连接的中间添加代理服务器,来实现协议的转发与处理。
这种情况下,如何保证SSL/TLS代理协议的安全性呢?本文将详细介绍SSL/TLS代理协议的中间人安全问题及相关解决方案。
一、SSL/TLS协议的中间人安全问题在SSL/TLS代理协议中,中间人的角色是连接客户端和服务器之间的桥梁,负责处理加密解密、签名验证等操作。
然而,中间人也可能成为黑客攻击的目标,从而引发一系列安全问题。
1. 证书信任链被破坏:中间人攻击的一种形式是伪造SSL/TLS证书,使客户端误认为与服务器直接通信,从而绕过真实服务器的身份验证。
这可能导致敏感信息被窃取或篡改。
2. 密钥用于恶意用途:作为中间人,代理服务器需要持有用于加密和解密的SSL/TLS密钥。
如果这些密钥被攻击者获取到,则攻击者可以解密通信内容、篡改数据或者模拟客户端与服务器进行通信。
3. 中间人伪装:攻击者可以伪装成合法的中间人,篡改网络流量、劫持传输数据或者劫持连接请求。
这可能导致身份信息泄露、损害用户隐私或者执行其他恶意行为。
二、SSL/TLS代理协议的中间人安全解决方案为了解决SSL/TLS代理协议的中间人安全问题,有以下几个解决方案可以采用:1. 证书验证与信任链管理:客户端需要验证服务器提供的SSL/TLS 证书是否合法有效,并对证书的信任链进行管理。
合法有效的SSL/TLS证书能够保证通信双方的身份真实可信,减少中间人攻击的可能性。
2. 密钥管理与保护:为了防止密钥泄露,可以采用密钥管理系统来存储与保护密钥。
密钥管理系统应该有严格的访问控制、密钥轮换机制和密钥审计机制,确保密钥的机密性和完整性。
3. 流量检测与防护:为了防范中间人攻击,可以实施流量检测与防护措施。
包括但不限于检测SSL/TLS证书的篡改、检测中间人伪装、检测流量劫持等。
网络安全协议的漏洞与修复方法网络安全协议是保障互联网通信安全的重要组成部分,然而,由于网络环境的复杂性和攻击手段的不断演变,网络安全协议也存在一些漏洞。
本文将讨论一些常见的网络安全协议漏洞,并提出相应的修复方法。
一、SSL/TLS协议的漏洞与修复方法SSL/TLS(安全套接字协议/传输层安全协议)是一种常用的加密协议,用于保护网络通信的隐私和完整性。
然而,在实际应用中,SSL/TLS协议存在以下漏洞:1.心脏滴血漏洞(Heartbleed Vulnerability):由于OpenSSL库中存在缓冲区溢出漏洞,攻击者可以利用这一漏洞从服务器内存中读取敏感数据。
修复方法是更新OpenSSL库的版本,并重新生成和部署证书。
2.BREACH攻击漏洞:攻击者可以通过压缩算法的特殊利用,从加密报文中获取敏感信息。
修复方法包括禁用HTTP压缩,随机化加密报文以及使用动态令牌等措施。
3.POODLE漏洞(Padding Oracle On Downgraded Legacy Encryption):该漏洞针对旧版本的SSL协议,在握手阶段通过中间人攻击的手段,劫持通信过程并利用弱密码破解SSL加密。
修复方法是禁用SSLv3协议,升级到更安全的TLS协议。
二、IPsec协议的漏洞与修复方法IPsec(Internet协议安全)是一种保护IP通信安全的协议,在建立虚拟专用网络(VPN)等场景中广泛应用。
然而,IPsec协议也存在以下漏洞:1.Sweet32漏洞:当使用旧版本的3DES(Triple Data Encryption Standard)加密算法时,攻击者可以通过长时间的数据包捕获来破解加密,从而获取敏感数据。
修复方法是使用更强大的加密算法,例如AES(Advanced Encryption Standard)。
2.重放攻击(Replay Attack):攻击者可以通过重放之前截获的加密报文来进行攻击,破坏通信的保密性和完整性。
SSL协议以及在电子商务交易中的安全问题,分析了当前SSL面临的安全威胁,包括密码长度制约,缺少对商家的认证,跨站脚本攻击,中间人攻击和密钥管理间题,并指出了当前安全协议研究的一些热点方向.2 SSL的安全体系SSL的主要目标是在两个通信应用程序之间提供私密性和可靠性,它是一个分层协议,从结构1几可分为两层,底层为Record Protocol(记录层协议),高层由4个并列的协议组成;Handshake Protocol(握手协议),AlertProtocol(报警协议),Change Cipher pec Protocol(修改密码参数协议), Application Data Protocol(应用数据协议).SSL.01协议规范定义了31种加密算法的组合,每一种算法组合包括密钥交换方式,信息加密算法,创建MA(:的报文摘要算法,以保障数据传输的安全,同时用一个密钥的MAC进行消息完整性检查,确保信息在传输过程中没有被纂改.2.1记录层协议记录层协议用于交换应用层数据,其工作环境是连接状态.记录协议提供的连接安全性有两点:一是使用了对称加密算法对明文加密,可选的算法有流式加密算法:40位密钥的RC4和128位密钥的RC4,分组加密算法:40位密钥的RC2,40位密钥的DES,56位密钥的DES, 3重DES, IDEA,密钥交换算法:RSA,FoTtezza,Dlffle一Hellman等,以保证连接是保密的;二是在消息传输和认证中使用了加密的MAC,在计算MAC时使用以下报文摘要算法:160位的SHA一1和128位的MD5,以保证连接是可靠的.2.2握手协议握手协议在SSL记录层之上,当一个SSL客户机和服务器第一次开始通信时,它们协商一个协议版本:选择密码算法,选择相互认证,并使用公钥密码技术来生成共享密钥.握手协议提供的连接安全性有三点:一是对连接双方采用X.509电子证书标准进行认证,通过使用非对称密码算法RSA,DSS进行数字签名来实现,二是协商结果是保密的,以保证协商的秘密不被窃听者获得,三是使用数字签名技术保障协商的可靠性,以防止攻击者篡改协商通信消息.在电子商务交易过程中,由于有银行参与,按照SSL协议,客户的购买信息首先发往商家,商家再将信息转发银行,银行验证客户信息的合法性后,通知商家扣款成功,商家再通知客户购买成功,并将商品寄送客户.SSL协议提供的安全信道的安全性体系体现在以下三个方面:(1)私密性.在握手协议定义了会话密钥后,所有的消息都被加密.(2)确认性.尽管会话的客户端认证是可选的,但是服务器端始终是被认证的.(3)可靠性.传送的消息使用MAC进行消息完整性检查.但随着计算机网络攻击技术的发展,电子商务活动的安全体系也面临严峻的挑战.3 SSL的几个安全问题3.1加密算法的强度限制通过互联网传输敏感数据的一个问题是传输过程会经过许多中间环节,这一路由过程是所有互联网传输的基础,而在路由线路上的任何一台计算机都可能完全获得传输的信息,这样就使得别人有可能截获并破译您的秘密信息.美国政府规定,加密技术属于军用品受军火国际贸易法规(JTAR)的制约,其产品出口必须取得出口许可证.因此密钥长度超过512bit的RAS算法不能用于SSL的密钥交换算法,密钥长度超过40位的对称加密算法如RC4, DES等不能用于SSL的数据加密,故美国出口的SSL协议产品的加密算法的安全性不足,不能用于安全性要求高的网络服务.3.2缺少对商家认证SSL协议运行的基础是商家对客户信息保密的承诺,SSL有利于商家,而不利于客户.因为它只提供交易中客户与服务器间的双方认证,不能提供客户对商家的认证.客户的信息传到商家,商家阅读后再传送到银行.商家认证客户是必要的,因为商家担心客户购买后不付款或使用过期作废的信用卡.但整个过程中缺少了客户对商家的认证,随着电子商务参与厂商的迅速增加,SSL协议的缺点完全暴露出来了.在基于SSL的交易支付系统中,消费者不得不信任商家能安全保护他们的信用卡信息,并且无法保证商家是该支付卡的特约商户;当然商家在在线交易中也有一定的风险,他们无法确认购买者就是该信用卡的合法拥有者.3.3脚本攻击脚本(SCRIP])攻击大都发生在网站动态产生网页的时候,但攻击的目标并不是您的网站,而是浏览网站的客户.如果服务器对客户的输人不进行有效验证,黑客就会输人一些恶意的HTML 代码,当这些HTML代码输人是用于SCRIPT程序时,就可能被利用来进行破坏,如插人一些图片或声音或者弹出十几个小窗口等,干扰用户的正常浏览.动态输人主要有:URL参数,表格元素,COOKIES以及数据请求.恶意的标签和SCRIP ,不单纯是恶作剧,还可以窃取资料甚至摧毁客户的系统.即使使用了防火墙,也不能完全杜绝跨站SCRIPT攻击,因为如果生成恶意SCRIPT代码的设备也使用了SSL,则服务器的SSL不能分辨这些恶意代码.3.4中间人攻击SSL使用序列号来保护通讯方免受报文重放攻击,这个序列号被加密后作为数据包的负载,在整个SSL握手中,都有一个唯一的随机数来标记这个SSL握手,这样重放便无机可乘.序列号也可以防止攻击者记录数据包并以不同的次序发送.X.509证书也是SSL的一个组成部分,在SSL握手过程中,服务器向客户发送自己的数字证书.一个X.509证书包括发行者的识别名,主体的识别名,主体的公钥,版本号,序列号,密钥的有效时间窗,选择的算法等.在通常的证书中,没有标志DNS名的域,通常CN域被影射为DNS名,发行者的识别名DNS由,SP,L,O,OU等域组成.发行者ISSUER使用自己的私钥或通过一个公开的CA签发数字证书.当用户的浏览器向SSL服务器连接时,这个证书会在SSL握手期间进行交换,证书中保存的公钥被用于会话的加密,客户拥有这个CA的公钥用于检查证书的合法性.当受到中间人攻击时,攻击者会拦截原始证书,然后伪造一个证书直接与客户通讯.理论上X.509应该能阻止这种攻击,但事实卜对大多数站点发行的证书,客户并没有用他们的公钥来检查证书的合法性,这种情况使SSL可能遭受中间人攻击.中间人攻击的拦截与攻击主要过程如下:①调用accept()接受客户程序的连接请求,利用NS Socket::dstaddr( )函数获得连接的目标地址,在防火墙上把连接重新定向,以截获hops的数据包.②用bind - lo-cal)把套接字绑定在本地端口,使用ssl_ comrect( )函数向服务器发出连接请求,让服务器把攻击者看成是合法用户,和攻击者进行正常的SSL握手,然后执行ssl_ accept()得到服务器的证书.③使用SSI的动态证书装配e7数(dynamic certificate assembly函数)dodca()伪造证书,do_ dca)给出一个几乎是空白的证书,再调用OpenSSL的.ingX509()函数修改发行者的subject域的数据(C, L, ST, OU),把证书变成自签发证书,将重新装配的证书显示给用户,使用户无法知道自签发证书是伪造的,但SSL的客户程序可以识别这个证书不是来自用户连接的服务器的CA,客户程序找不到这个CA的公钥,只好提示用户是否接受这个证书,因为用户难以分辨看到的信息是由于所连接的公司使用未知的CA而出现的提示信息还是遭受到了攻击,用户通常都会接受.④用户接受伪造的证书后,攻击者就可以用SSL _ read()读出连接的明文数据,再用SSL_ write()转发给真正的服务器,或者修改传递的数据,达到攻击的目的.3.5密钥管理问题客户机和服务器在连接初期互相发送自己能支持的加密算法时,以明文返回选定的加密算法和主密钥,主密钥前40位不加密,其余位加密,此时可能会被攻击者修改为强度最弱的加密算法,导致以后传输的加密数据包被攻击者破解.另外,所有的会话密钥中都将生成主密钥master 一key,实际的密钥并不是主密钥,而是由它生成的两个密钥client一write一key (server -read 一key)和client - read一key( server一wnte一key),并且当客户机和服务器再次握手时,不再协商加密算法和主密钥,因此握手协议的安全完全依赖于对主密钥的保护,如果主密钥管理不妥被泄露,则通讯传输中的加密数据包极可能被破译.4结束语目前电子商务在线购物的支付系统大都是通过在SSL连接上传输信用卡卡号的方式建立的,在线银行和许多证券股票交易系统也是建立在SSL之上.SSI除了具有上述安全隐患外,另一个缺点是显示图形页面时速度缓慢,这是由于SSL加密所有的信息造成的电子商务的发展需要安全性更高的交易支付系统.目前,安全协议的研究集中在如下几个方面:一是基于消息流的协议SET(Secure Electronic Transaction,安全电子交易),用来保证网络上银行卡支付交易的安全性,它由信用卡组织MasterCard和Visa以及其他一些订业界的主流厂商设计,已在国际上实验性地使用并经受了考验,目前已获fFTF标准认可,但由于SSL已广泛应用,而SET实现起来非常复杂,商家和银行都需要添置新设备改造系统以实现互操作,从全球来看这种系统改造费用巨大,因此目前大多数网上交易的各方都还没使用SET;二是致力于发展别的协议来支持SSL和SET所不能支持的支付方式,如微支付,对等支付等;三是改进现有的SSL协议,如集中集体智慧的OpenSSL正在网上开发,它是全球范围内协作开发的一种强健的,具有商业软件品质的,全功能的开放性源代码的安全系统组件,由全球的志愿社团参与管理,并通过Intemet交流,开发和撰写相关的技术文档.。
SSLTLS常见漏洞检测及修复方法SSL/TLS是一种常用的加密协议,用于保护网络通信的安全性。
然而,由于协议本身的复杂性以及实现的不完善,仍然存在一些常见的漏洞。
本文将讨论一些常见的SSL/TLS漏洞,并提供一些修复方法。
1. POODLE漏洞(Padding Oracle On Downgraded Legacy Encryption)POODLE漏洞是一种利用SSLv3.0的加密块填充方式的漏洞。
攻击者通过与服务器进行多次握手,逐渐猜测服务器发送的加密块填充方式,获取明文信息。
修复这个漏洞的方法是禁用SSLv3.0,并启用更安全的TLS协议。
2. Heartbleed漏洞Heartbleed漏洞是一个流行的开源加密库OpenSSL中的漏洞,它允许攻击者访问服务器内存中的敏感信息。
修复这个漏洞的方法是升级到修复了漏洞的版本,并重新生成和替换证书和私钥。
3. BEAST漏洞(Browser Exploit Against SSL/TLS)BEAST漏洞是一种利用块加密算法(如CBC模式)的SSL/TLS漏洞,允许攻击者获取通信的明文信息。
修复这个漏洞的方法是禁用旧版本的协议(如SSLv3.0和TLSv1.0),并使用更安全的版本(如TLSv1.1和TLSv1.2)。
CRIME漏洞利用了压缩算法对数据流进行压缩和解压缩的特性,允许攻击者利用信息泄漏来进行身份验证绕过攻击。
修复这个漏洞的方法是禁用TLS压缩功能,或者在使用时启用数据加密。
5. DROWN漏洞(Decrypting RSA with Obsolete and Weakened eNcryption)DROWN漏洞利用了对去年(2024年)通信中使用的RSA加密密钥进行复用。
修复这个漏洞的方法是禁用使用该密钥的服务或更新密钥并重新生成证书。
6. FREAK漏洞(Factoring attack on RSA-EXPORT Keys)FREAK漏洞利用了一些低级别的TLS密码套件,允许攻击者窃取和篡改通过使用弱密钥进行加密的数据。
SSL常见安全问题及解决方法cool00701-11-30 下午 02:43:21前言目前使用SSL的普及率相当高,(如果你在互联网上访问某些网站时在浏览器窗口的下方有一个锁的小图标,就表示它表示该网页被SSL保护着。
但用 SSL 防护的网站真的能够防范黑客吗? 现在国内有很多人对SSL存在这么一个认识误区:SSL很安全,受到 SSL 防护网页服务器的资料就一定是万无一失的,这也导致这样一个局面,只要有着 SSL 防护的网站服务器很少接受审查以及监测。
其实不然,对于安全要求不甚高的交易或认证,SSL还是一个相当不错的安全机制,然而若应用在特殊要求方面,它还存在有这样那样的问题。
在下面的文中我将为大家简单介绍到底SSL存在的安全漏洞及解决方案,希望本文对你有所帮助。
一、认识SSL一般人认为SSL是保护主机或者只是一个应用程序,这是一个误解,SSL不是设计用来保护操作系统的;SSL是Secure Sockets Layer 通讯协议的简称,它是被设计用来保护传输中的资料,它的业务是把在网页以及服务器之间的数据传输加密起来。
这个加密(encryption)的措施能够防止资料窃取者直接看到传输中的资料,像是密码或者信用卡号码等等。
在这里谈到SSL,你就必须了解数字证书((Digital Certificates)的概念。
数字证书是一种能在完全开放系统中准确标识某些主体的机制。
一个数字证书包含的信息必须能鉴定用户身份,确保用户就是其所持有证书中声明的用户。
除了唯一的标识信息外,数字证书还包含了证书所有者的公共密钥。
数字证书的使用允许SSL提供认证功能--保证用户所请求连接的服务器身份正确无误。
在信用卡号或PIN号码等机密信息被发送出去前让用户确切知道通讯的另一端的身份是毫无疑问的重要的。
很明显的,SSL技术提供了有效的认证。
然而大多数用户并未能正确意识到通过SSL进行安全连接的必需性。
除非越来越多的用户了解SSL和安全站点的基本知识,否则SSL仍不足以成为保护用户网络连接的必需技术。
除非用户能够充分意识到访问站点时应该注意安全连接标识,否则现有的安全技术仍不能称为真正有效。
目前几乎所有处理具有敏感度的资料,财务资料或者要求身分认证的网站都会使用 SSL 加密技术。
(当你看到 https 在你的网页浏览器上的 URL 出现时,你就是正在使用具有 SSL 保护的网页服务器。
)在这里我把 SSL 比喻成是一种在浏览器跟网络服务器之间「受密码保护的导管」(cryptographic pipe),也就是我们常说的安全通道。
这个安全通道把使用者以及网站之间往返的资料加密起来。
但是 SSL 并不会消除或者减弱网站所将受到的威胁性。
在 SSL这个安全通道的背后,一般没有受到 SSL 防护的网站一样具备了相同的网页服务器程序,同样的网页应用程序,CGI 的script 以及后端数据库。
目前普遍存在这么一个错误的认识:很多系统管理者却认为,受到 SSL 防护的网页服务器自动就变得安全了。
其实不然,事实上,受到 SSL 防护的网页服务器同样还是会受到与一般其它网站服务器遭受攻击的威胁,受到 SSL 防护的网页服务器不一定是万无一失的。
二、SSL的安全漏洞虽然一个网站可能使用了SSL安全技术,但这并不是说在该网站中正在输入和以后输入的数据也是安全的。
所有人都应该意识到SSL提供的仅仅是电子商务整体安全中的一小部份解决方案。
SSL在网站上的使用可能会造成管理员对其站点安全性的某些错觉。
使用了SSL的网站所可能受到的攻击和其它服务器并无任何区别,同样应该留意各方面的安全性。
简言之,加密和数字证书,SSL的主要组成,从来都无法保护服务器--它们仅仅可以保护该服务器所收发的数据。
SSL常见安全问题下面三种:1、攻击证书类似Verisign之类的公共CA机构并不总是可靠的,系统管理员经常犯的错误是过于信任Verisign等的公共CA机构。
例如,如果Verisign发放一个证书说我是"某某某",系统管理员很可能就会相信"我是某某某"。
但是,对于用户的证书,公共CA机构可能不象对网站数字证书那样重视和关心其准确性。
例如,Verisign发放了一个“keyman"组织的证书,而我是其中一员“JACK”。
当一个网站要求认证用户身份时,我们提交了“JACK”的证书。
你可能会对其返回的结果大吃一惊的。
更为严重的是,由于微软公司的IIS服务器提供了"客户端证书映射"(Client Certificate Mapping)功能,用于将客户端提交证书中的名字映射到NT系统的用户帐号,在这种情况下我们就能够获得该主机的系统管理员特权!如果黑客不能利用上面的非法的证书突破服务器,他们可以尝试暴力攻击(brute-force attack)。
虽然暴力攻击证书比暴力攻击口令更为困难,但仍然是一种攻击方法。
要暴力攻击客户端认证,黑客编辑一个可能的用户名字列表,然后为每一个名字向CA机构申请证书。
每一个证书都用于尝试获取访问权限。
用户名的选择越好,其中一个证书被认可的可能性就越高。
暴力攻击证书的方便之处在于它仅需要猜测一个有效的用户名,而不是猜测用户名和口令。
2、窃取证书除上面的方法外,黑客还可能窃取有效的证书及相应的私有密钥。
最简单的方法是利用特洛伊木马。
这种攻击几乎可使客户端证书形同虚设。
它攻击的是证书的一个根本性弱点:私有密钥--整个安全系统的核心--经常保存在不安全的地方。
对付这些攻击的唯一有效方法或许是将证书保存到智能卡或令牌之类的设备中,但这里我不打算讨论这个范围,在以后,我将会向大家详细介绍。
3、安全盲点系统管理员没办法使用现有的安全漏洞扫描(vulnerability scanners)或网络入侵侦测系统(intrusion detection systems,IDS),来审查或监控网络上的 SSL 交易。
网络入侵侦测系统是通过监测网络传输来找寻没有经过认证的活动。
任何符合已知的攻击模式或者并未经过政策上授权的网络活动都被标起来以供系统管理者检视。
而要让 IDS 能够发生作用,IDS 必须能够检视所有的网络流量信息,但是 SSL 的加密技术却使得通过 http 传输的信息无法让 IDS 辨认。
再者,虽然我们可以用最新的安全扫描软件审查一般的网页服务器来寻找已知的安全盲点,这种扫描软件并不会检查经过 SSL 保护的服务器。
受到 SSL 保护的网页服务器的确拥有与一般服务器同样的安全盲点,可是也许是因为建立 SSL 连结所需要的时间以及困难度,安全漏洞扫描软件并不会审查受到 SSL 保护的网页服务器。
没有网络监测系统再加上没有安全漏洞审查,使得最重要的服务器反而成为受到最少防护的服务器。
三、解决方法至于如何保护证书的安全,你可以采用IDS(Intrusion Detection System),它是一种用于监测攻击服务器企图的技术和方法。
典型的IDS监视网络通讯,并将其与保存在数据库中的已知攻击"特征"或方法比较。
如果发现攻击,IDS可以提醒系统管理员、截断连接或甚至实施反攻击等。
问题在于如果网络通讯是加密的,IDS将无法监视。
这反而可能会使攻击更为轻松。
假设在一个典型的被防火墙和IDS防护的DMZ环境中,黑客能轻松地探测被SSL保护的网站,因为SSL对数据的加密使得IDS无法正常监测攻击。
通常一台单一的网站服务器会同时使用SSL和普通的TCP协议。
由于黑客攻击的服务器而不是网络连接,他们可以选择任意一种途径。
通过SSL途径,黑客知道SSL加密为他们带来的好处,这样更容易避开IDS系统的监测。
对于IDS方面的详细内容,我以前向大家介绍过了,大家可以到天极网看《浅析网络入侵监测系统-IDS的应用》一文。
在这里我主要介绍的是如何解决系统管理员没办法使用现有的安全漏洞扫描或网络入侵侦测系统而存在的网页服务器安全盲点的情况,目前解决这个困扰的常用方法大致有以下三种:1、通过 Proxy 代理服务器的 SSL我们可以在一个 SSL Proxy 代理程序上使用这项资料审查技术。
SSL Proxy 是一个在连接埠 80 上接收纯文字的 HTTP 通讯请求的软件,它会将这些请求通过经由 SSL 加密过的连结,转寄到目标网站。
我们在连接埠 80 开一个听取的 socket,通过上述的 OpenSSL 指令,将所有进入这个 proxy的数据传送出去。
这在 Unix 上,只是个小技巧:你只须将以下的指令加到你们的/etc/inetd.conf 档案里面,这个 inetd.conf 包含所有 inetd 所提供的网络服务的设定:www stream tcp nowait root /usr/sbin/tcpd /usr/local/bin/ssl_proxy.sh而 /usr/local/bin/ssl_proxy.sh 的内容则如下所述:#!/bin/sh/usr/local/ssl/bin/openssl s_client -no_tls1 -quiet -connect 168.172.100.10:4432>/dev/null168.172.100.10 是 SSL 防护下的网站的地址所在。
其中 -no_tls1 以及 -quiet 选项将 SSL 交谈(handshake)的标题显示关掉,并且也删除了 SSL 对于尚未经过授权的网站认证所发出的警告。
如果你要想测试你的 proxy 连结,那么你只要以纯文字的方式,在执行 SSL proxy 的系统的连接端口 80 建立联机。
这个 proxy 会使用 SSL 来转寄接收的请求到目标网站。
$ telnet 182.197.110.180 GET / HTTP/1.0在这里,服务器正在 182.197.110.1的地址执行 SSL proxy 机制,而真正受到 SSL 保护的地址则是在 168.172.100.10。
通过这个 SSL proxy 机制,我们只要将安全扫描软件指向 proxy 的 IP 地址,就可以使用它来审查一个SSL 服务器。
在这里,你可以使用whisker程序(网址:/rfp/p/doc.asp?id=21&iface=2 )来审查 SSL 防护的网站服务器。
Whisker是一个由 Rain Forest Puppy 写出来的 script,可以用来检查已知的比较容易受到入侵的网站应用程序以及 CGI script。
./whisker.pl -h 168.172.100.2-- whisker / v1.3.0a / rain forest puppy / ADM / wiretrip --- Loaded script database of 1691 lines= - = - = - = - = - == Host: 168.172.100.2= Server: Microsoft-IIS/4.0+ 404 Object Not Found: GET /cfdocs/+ 404 Object Not Found: GET /cfide/Administrator/startstop.html+ 404 Object Not Found: GET /cfappman/index.cfm+ 404 Object Not Found: GET /cgi-bin/+ 403 Access Forbidden: HEAD /scripts/+ 403 Access Forbidden: HEAD /scripts/cpshost.dll+ 404 Object Not Found: HEAD /samples/search/queryhit.htm+ 404 Object Not Found: HEAD /adsamples/config/site.csc+ 403 Access Forbidden: HEAD /scripts/counter.exe+ 403 Access Forbidden: HEAD /scripts/samples/?以上情况是,在 182.197.110.1上执行 whisker,然后 whisker 使用 SSL 将所有的 HTTP 请求转寄到 168.172.100.10。