SSL证书自签名为什么不安全

因为目前,有许多重要的公网可以访问的网站系统(如网银系统)都在使用自签SSL证书,即自建PKI系统颁发的SSL证书,而不是部署支持浏览器的SSL证书,这绝对是得不偿失的重大决策失误,自签证书普遍存在严重的安全漏洞,极易受到***。主要问题有:

  1. 自签证书最容易被假冒和伪造,而被欺诈网站所利用

    所谓自签证书,就是自己做的证书,既然你可以自己做,那别人可以自己做,可以做成跟你的证书一模一样,就非常方便地伪造成为有一样证书的假冒网银网站了。

    而使用支持浏览器的SSL证书就不会有被伪造的问题,颁发给用户的证书是全球唯一的可以信任的证书,是不可以伪造的,一旦欺诈网站使用伪造证书(证书信息一样),由于浏览器有一套可靠的验证机制,会自动识别出伪造证书而警告用户此证书不受信任,可能试图欺骗您或截获您向服务器发送的数据!

  2. 自签证书最容易受到SSL中间人***

    自签证书是不会被浏览器所信任的证书,用户在访问自签证书时,浏览器会警告用户此证书不受信任,需要人工确认是否信任此证书。所有使用自签证书的网站都明确地告诉用户出现这种情况,用户必须点信任并继续浏览!这就给中间人***造成了可之机。

    典型的SSL中间人***就是中间人与用户或服务器在同一个局域网,中间人可以截获用户的数据包,包括SSL数据包,并与做一个假的服务器SSL证书与用户通信,从而截获用户输入的机密信息。如果服务器部署的支持浏览器的可信的SSL证书,则浏览器在收到假的证书时会有安全警告,用户会发觉不对而放弃连接,从而不会被受到***。但是,如果服务器使用的是自签证书,用户会以为是网站又要他点信任而麻木地点信任了***者的假证书,这样用户的机密信息就被***者得到,如网银密码等,则非常危险,所以,重要的网银系统绝对不能用自签SSL证书!

    点评 :第1点和第2点都是由于自签证书不受浏览器信任,而网站告诉用户要信任而造成!所以,作为用户,千万不要继续浏览浏览器有类型如下警告的网站;而作为网站主人,千万不要因为部署了自签证书而让广大用户蒙受被欺诈网站所***的危险,小则丢失密码而为你增加找回密码的客服工作量,大则可能让用户银行账户不翼而飞,可能要赔偿用户的损失!

    也许你或者你的系统集成商会说:这不是什么大不了的事,只要用户安装了我的根证书,下次就不会提示了。理论上是的,但是,由于用户有过要求点击信任证书的经历,再次遇到要求点击信任证书时一定会继续点信任而遭遇了上了***的当!

    即使你是在给用户安装USB Key管理软件时悄悄安装你的根证书,也是有问题的,自签证书无法保证证书的唯一性,你的自签根证书和用户证书一样有可能被***伪造。

    不仅如此,除了以上两个大问题外,由于用户自己开发的证书颁发系统或使用其他公司的证书颁发系统并非不具有完备的PKI专业知识,并没有跟踪最新的PKI技术发展,还存在其他重要安全问题。

  3. 自签证书支持不安全的SSL通信重新协商机制

    经我公司专家检测,几乎所有使用自签SSL证书的服务器都存在不安全的SSL通信重新协商安全漏洞,这是SSL协议的安全漏洞,由于自签证书系统并没有跟踪最新的技术而没有及时补漏!此漏洞会被***利用而截获用户的加密信息,如银行账户和密码等,非常危险,一定要及时修补。 请参考文章《 SSL密钥重新协商机制有最大安全漏洞,急需用户升级补漏 》

  4. 自签证书支持非常不安全的SSL V2.0协议

    这也是部署自签SSL证书服务器中普遍存在的问题,因为SSL v2.0协议是最早出台的协议,存在许多安全漏洞问题,目前各种新版浏览器都已经不支持不安全的SSL v2.0协议 。而由于部署自签SSL证书而无法获得专业SSL证书提供商的专业指导,所以,一般都没有关闭不安全的SSL v2.0协议。

  5. 自签证书没有可访问的吊销列表

    这也是所有自签SSL证书普遍存在的问题,做一个SSL证书并不难,使用OpenSSL几分钟就搞定,但真正让一个SSL证书发挥作用就不是那么轻松的事情了。要保证SSL证书正常工作,其中一个必要功能是证书中带有浏览器可访问的证书吊销列表,如果没有有效的吊销列表,则如果证书丢失或被盗而无法吊销,就极有可能被用于非法用途而让用户蒙受损失。同时,浏览器在访问时会有安全警告:吊销列表不可用,是否继续?并且会大大延长浏览器的处理时间,影响网页的流量速度。请参考 什么是证书吊销列表(CRL)

  6. 自签SSL证书使用不安全的1024位非对称密钥对

    1024位RSA非对称密钥对已经变得不安全了,所以,美国国家标准技术研究院( NIST )要求停止使用不安全的1024位非对称加密算法。微软已经要求所有受信任的根证书颁发机构必须于2010年12月31日之前升级其不安全的1024位根证书到2048位和停止颁发不安全的1024位用户证书,12 月 31 日之后会把不安全都所有 1024 位根证书从 Windows 受信任的根证书颁发机构列表中删除!

    而目前几乎所有自签证书都是1024位,自签根证书也都是1024位,当然都是不安全的。还是那句话:由于部署自签SSL证书而无法获得专业SSL证书提供商的专业指导,根本就不知道1024位已经不安全了。

  7. 自签SSL证书证书有效期太长

    自签证书中还有一个普遍的问题是证书有效期太长,短则5年,长则20年、30年的都有,并且还都是使用不安全1024位加密算法。可能是自签证书制作时反正又不要钱,就多发几年吧,而根本不知道PKI技术标准中为何要限制证书有效期的基本原理是:有效期越长,就越有可能被***破解,因为他有足够长的时间(20年)来破解你的加密。

    也许你会问,为何所有Windows受信任的根证书有效期都是20年或30年?好问题!因为:一是根证书密钥生成后是离线锁保险柜的,并不像用户证书一样一直挂在网上;其二是根证书采用更高的密钥长度和更安全的专用硬件加密模块。

    总之 ,为了您的重要系统安全,请千万不要使用自签的SSL证书,从而带来巨大的安全隐患和安全风险,特别是重要的网银系统、网上证券系统和电子商务系统。可以咨询合信证书

原文地址:https://blog.51cto.com/14377863/2410669

时间: 2024-08-02 08:14:44

SSL证书自签名为什么不安全的相关文章

SSL证书

一.什么是SSL证书? 首先说明SSL(安全套接层,Secure Sockets Layer)是一种安全协议,目的是为互联网通信,提供安全及数据完整性保障.SSL证书遵循SSL协议,可安装在服务器上,实现数据传输加密. CA(数字证书认证,Certificate Authority)机构,是承担公钥合法性检验的第三方权威机构,负责指定政策.步骤来验证用户的身份,并对SSL证书进行签名,确保证书持有者的身份和公钥的所有权.CA机构为每个使用公开密钥的用户发放一个SSL证书,SSL证书的作用是证明证

什么是SSL证书?

首先说明SSL(安全套接层,Secure Sockets Layer)是一种安全协议,目的是为互联网通信,提供安全及数据完整性保障.SSL证书遵循SSL协议,可安装在服务器上,实现数据传输加密. CA(数字证书认证,Certificate Authority)机构,是承担公钥合法性检验的第三方权威机构,负责指定政策.步骤来验证用户的身份,并对SSL证书进行签名,确保证书持有者的身份和公钥的所有权.CA机构为每个使用公开密钥的用户发放一个SSL证书,SSL证书的作用是证明证书中列出的个人/企业合法

为什么要申请ssl证书 ?ssl证书有什么作用?

什么是ssl证书?https是一种加密传输协议,网站使用https后可以避免敏感信息被第三方获取.https加密协议=SSL / TLS+http协议,也就是说,在传统的http协议上加上SSL证书就可以实现数据传输加密. SSL证书实际上就是CA机构对用户公钥的认证,内容包括电子签证机关的信息.公钥用户信息.公钥.权威机构的签字和有效期等.CA(数字证书认证,Certificate Authority)机构,是承担公钥合法性检验的第三方权威机构,负责指定政策.步骤来验证用户的身份,并对SSL证

给Nginx配置一个自签名的SSL证书

要保证Web浏览器到服务器的安全连接,HTTPS几乎是唯一选择.HTTPS其实就是HTTP over SSL,也就是让HTTP连接建立在SSL安全连接之上. SSL使用证书来创建安全连接.有两种验证模式: 仅客户端验证服务器的证书,客户端自己不提供证书: 客户端和服务器都互相验证对方的证书. 显然第二种方式安全性更高,一般用网上银行会这么搞,但是,普通的Web网站只能采用第一种方式. 客户端如何验证服务器的证书呢?服务器自己的证书必须经过某“权威”证书的签名,而这个“权威”证书又可能经过更权威的

为你的android App实现自签名的ssl证书(https)

不愿意看啰嗦的可以直接去          实现步骤 最近公司项目用到https的接口形式,对于一般的网络请求 我们用的是http://******      使用的是 代码用来打开一个 http 连接. URL urlConnection = new URL("http://www.codeproject.com/"); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); 不要在 ht

Superfish事件:自签名SSL证书惹的祸

春节期间爆发的“Superfish”事件持续发酵,引发整个社会舆论的大哗.Superfish是一款广告应用软件,内置的算法可以帮助用户找到和发现产品,在搜索引擎中对购物进行图片分析.搜索以找到更低的价格,其实算是广告软件中比较优秀的.联想与“Superfish”合作可提升用户体验,开拓软硬件结合的获利模式,本来是一件好事,为何却酿成如此大的品牌危机?这款电脑预装软件究竟具有怎样的安全风险呢? 据国外研究人员表示,导致Superfish引发安全风险的始作俑者是由Komodia公司提供的SDK(So

微软将停止接受用于SSL和代码签名的SHA1证书

SHA1签名算法弃用策略 对于SSL证书和代码签名证书,微软设定了不同的时间表: 1.所有Windows受信任的根证书颁发机构(CA)从2016年1月1日起必须停止签发新的SHA1签名算法SSL证书和代码签名证书: 2.对于SSL证书,Windows将于2017年1月1日起停止支持SHA1证书.也就是说:任何在之前签发的SHA1证书必须替换成SHA2证书: 3.对于代码签名证书,Windows将于2016年1月1日停止接受没有时间戳的SHA1签名的代码和SHA1证书.也就是说,Windows仍然

用XCA(X Certificate and key management)可视化程序管理SSL 证书(4)--用自定义的凭证管理中心(Certificate Authority)签名证书请求

在用XCA(X Certificate and key management)可视化程序管理SSL 证书一系列文章的(2)和(3)中,我们学习了如何用XCA(X Certificate and key management)生成证书请,已经如何生成自定义的凭证管理中心(Certificate Authority),如果说前两篇文章是铺垫,那么这篇文章就是最终的目的:用自定义的凭证管理中心(Certificate Authority)签名证书请求.签名的过程非常的简单,具体步骤,请见下面的操作.

Android HTTPS如何10分钟实现自签名SSL证书

前言 去年公司内一个应用加了支付宝支付功能,为了保证安全,支付请求链接写成了https. 由于公司服务器使用的是的自签名证书,而在Android系统中自己签署的不能通过验证的,所以会抛出错误. 于是我网上查找了很多资料,也尝试过几种方法,过程都很繁琐,搞了一通宵都不行. 幸亏通过一个朋友找到了以下这个简便的开源库 https://github.com/lizhangqu/CoreUtil 然后用里面的SSLUtil,10分钟就解决了. 实现自签名SSL证书 1.访问以上开源库网址下载SSLUti