目录
1. 概述
1. 发送方在发送信息前,需先与接收方联系,同时利用公钥加密信息。
5. 颁发
3. 简单的SSL握手连接过程分析(仅服务端交换证书给客户端):
四、专栏分享
一、什么是数字证书?
数字证书是指在互联网通讯中标志通讯各方身份信息的一个数字认证,人们可以在网上用它来识别对方的身份。因此数字证书又称为数字标识。
数字证书对网络用户在计算机网络交流中的信息和数据等以加密或解密的形式保证了信息和数据的完整性和安全性。
1. 概述
数字证书这一名词并非是我国原有,而是来自于英文digital certificate的翻译。
数字证书从本质上来说是一种电子文档,是由电子商务认证中心(CA中心)所颁发的一种较为权威与公正的证书,对电子商务活动有重要影响,例如我们在各种电子商务平台进行购物消费时,必须要在电脑上安装数字证书来确保资金的安全性。
CA中心采用的是以数字加密技术为核心的数字证书认证技术,通过数字证书,CA中心可以对互联网上所传输的各种信息进行加密、解密、数字签名与签名认证等各种处理,同时也能保障在数字传输的过程中不被不法分子所侵入,或者即使受到侵入也无法查看其中的内容。
如果用户在电子商务的活动过程中安装了数字证书,那么即使其账户或者密码等个人信息被盗取,其账户中的信息与资金安全仍然能得到有效的保障。
数字证书就相当于社会中的身份证,用户在进行电子商务活动时可以通过数字证书来证明自己的身份,并识别对方的身份,在数字证书的应用过程中CA中心具有关键性的作用,作为第三方机构,必须要保证其具有一定的权威性与公平性,当前阶段我国的CA中心的从业资格是由国家工业与信息化部所颁发,全国范围内只有约50家企业具有数字认证的从业资格。
2. 数字证书原理:
数字证书的基本架构是公开密钥PKI,即利用一对密钥实施加密和解密。其中密钥包括私钥和公钥,私钥主要用于签名和解密,由用户自定义,只有用户自己知道;公钥用于签名验证和加密,可被多个用户共享。
数字证书的基本工作原理主要体现在三个方面:
1. 发送方在发送信息前,需先与接收方联系,同时利用公钥加密信息。
信息在进行传输的过程当中一直是处于密文状态,包括接收方接收后也是加密的,确保了信息传输的但一些,若信息被窃取或截取,也必须利用接收方的私钥才可解读数据,而无法更改数据,这也有利保障信息的完整性和安全性。
2. 数字证书的数据签名相当于加密过程
数字证书的数据签名类似于加密过程,数据在实施加密后,只有接收方才可打开或更改数据信息,并加上自己的签名后再传输至发送方,而接收方的私钥具唯一性和私密性,这也保证了签名的真实性和可靠性,进而保障信息的安全性。
3. 数字证书有很多格式版本
主要有
比较常用的版本是
不论是哪一个版本的数字证书,只要获得数字证书,用户就可以将其应用于网络安全中。
3. 数字证书特征:安全性、唯一性、便利性
1. 安全性:
用户申请证书时会有两份不同证书,分别用于工作电脑以及用于验证用户的信息交互,若所使用电脑不同,用户就需重新获取用于验证用户所使用电脑的证书,而无法进行备份,这样即使他人窃取了证书,也无法获取用户的账户信息,保障了账户信息。
2. 唯一性:
数字证书依用户身份不同给予其相应的访问权限,若换电脑进行账户登录,而用户无证书备份,其是无法实施操作的,只能查看账户信息,数字证书就犹如“钥匙”一般,所谓“一把钥匙只能开一把锁”,就是其唯一性的体现。
3. 便利性:
用户可即时申请、开通并使用数字证书,且可依用户需求选择相应的数字证书保障技术。用户不需要掌握加密技术或原理,就能够直接通过数字证书来进行安全防护,十分便捷高效。数字证书是由CA中心所签发的,CA中心是一个具权威性、依赖度极高的第三方,其资格证书经国家颁发,可有效保障网络数据信息的安全性,使数据信息处国家掌握当中。用户在浏览网络数据信息或进行网上交易时,利用数字证书可保障信息传输及交易的安全性。
4. 数字证书的下载安装
用户需先于中国数字证书认证网进行登录,若是首次登录,系统会自动提示用户安装根证书,用户只需依提示完成安装即可;若未提示或根证书遗失,则需用户手动操作完成安装,这时,就需用户于数字证书网页选择“根CA证书”进行安装,依所弹出的对话框所选择要安装的文件夹位置,点击确定即可。下载好之后,即可双击打开,选择所要安装的位置即可;安装成功后,可于浏览器中直接选择internet,然后选择所需内容,依提示完成所有操作。
5. 颁发
数字证书的颁发即是用户对自己的公钥以及身份信息传输至验证中心进行验证的过程。所改善的数字证书当中包含了用户基本信息及公钥信息,部分还会附上经认证中心签名的相关信息。在获得数字证书后,用户即可利用数字证书实施一些自己想要实施的活动。但每个数字证书都是不同的,且每个证书的可信度也存在一定差异,因此,申请者所获得的数字证书都是唯一的。
6. 数字证书的应用
1. 安全电子邮件
电子邮件中使用数字证书可以建构安全电子邮件证书,主要用户加密电子邮件的传输,保护电子邮件在传输和接收过程中的安全。
安全电子邮件证书主要有证书持有者的CA机构的签名、电子邮件地址和公开密钥这些信息。
一方面,数字证书与电子邮件结合后,就可以在安全电子邮件证书的加密和数字签名技术的保护下,实现电子邮件的安全传输和接收,保证了电子邮件的安全性和完整度。同时,也保证了电子邮件传输方和接收方信息的真实性。
另一方面,安全电子邮件证书中包括公开密钥这一信息,就能够确保电子邮件不被更改,因为只有知道公开密钥才能使用电子邮件。
2. 安全终端保护
随着计算机网络技术的发展,电子商务的发展也越来越快,在人们生活和生产中的应用也越来越广泛,用户终端和数据的安全问题也日益受到重视。为了避免终端数据信息的损坏或者是泄露,数字证书作为一种加密技术,可以用于终端的保护。
首先,使用正版的软件和硬件,正确配置系统和网络并定期进行检查,防止终端配置被非法篡改。其次,利用网络安全技术如防火墙对内外网络进行实质性的隔离。同时,及时更新病毒库和防病毒软件,对终端系统实时进行病毒和安全漏洞的扫描,加强对终端系统的安全保护。一旦发现可疑信息,就要立即重点监控,防止其带来的影响和破坏。最后,加强访问终端的控制,利用加密和认证等手段加强信息破解的难度。用户可以设置一个以数字证书为主的系统登录方式,加上动态加密,就可以实现对系统的验证,没有权限的用户就无法进入终端系统的访问,拥有权限的用户就符合了访问的要求,保证了访问终端的一致性。另外还要做到终端网络和主网络的分离,减少两者之间的数据交叉和结合,也避免了终端网络和主网络的相互影响,减少风险。
3. 代码签名保护
网络信息推广对很多用户来说,便捷有经济,但对软件的安全是不确定的。比如,用户对软件进行分享时,软件的接收和使用过程中存在着很多不安全因素,即使软件供应商能够保证软件自身的安全性,但也无法抵制盗版软件和网络本身存在的不安全因素带来的不利影响。
4. 可信网站服务
我国网站的数量伴随着计算机网络技术的发展呈现出日益增长的趋势,其中的恶意网站、钓鱼网站和假冒网站也越来越多,这就增加了用户对它们识别的难度,一不小心就会将自身的数据信息泄漏,严重影响了网络的安全。当用户对所使用的网站存在疑虑,不确定其中是否有被篡改和侵袭时,就可以利用数字证书的技术。通过数字证书技术,就可以对不确定的网站先进行验证和检查,增加了使用安全网站的机率,也避免了钓鱼网站、钓鱼网站和假冒网站等对网络造成的损失。
5. 身份授权管理
授权管理系统是信息系统安全的重要内容,对用户和程序提供相对应的授权服务,授权访问和应用的方法,而数字证书必须通过计算机网络的身份授权管理后才能被应用。因此,要保证身份授权管理工具的安全性。当系统双方相互认同时,身份授权系统的工作才能展开。同时,正确使用数字证书,适当授权,完成系统的用户认证,才能切实保护身份授权管理系统的安全性。
二、什么是SSL ?(数字证书的一种)
从前面我们可以了解到
在握手过程中,网站会向浏览器发送
由于公钥加密的密码只能被在申请证书时生成的私钥解密,因此浏览器在生成密码之前需要先核对当前访问的域名与证书上绑定的域名是否一致,同时还要对证书的颁发机构进行验证,如果验证失败浏览器会给出证书错误的提示。
1. 基本概念
1. SSL:
SSL:全称
位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层。
SSL通过互相认证、使用数字签名确保完整性、使用加密确保私密性,以实现客户端和服务器之间的安全通讯。
该协议由两层组成:SSL记录协议和SSL握手协议:
SSL 记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。
SSL 握手协议(SSL Handshake Protocol):它建立在
2. TLS:
TLS:全称 Transport Layer Security ,即传输层安全协议。
用于两个应用程序之间提供保密性和数据完整性。
该协议由两层组成:TLS记录协议和TLS握手协议:
TLS是在SSL的基础上标准化的产物,目前 SSL3.0 与 TLS1.0 保持一致的,二者是并列关系,只是大家习惯称呼 SSL 。
web 服务 nginx 默认支持的就是 TLS1.0、TLS1.1、TLS1.2协议。调用的 openssl 库中,对应的就是 ssl3_acceptt 函数。
2. 所在网络模型层次分析:
1. 所在网络层次位置:
SSL/TLS位于传输层和应用层之间(会话层),应用层数据不再直接传递给传输层,而是传递给SSL层,SSL层对从应用层收到的数据进行加密,并增加自己的SSL头。
编辑
2. SSL/TLS在tcp/ip协议栈中的位置
SSL/TLS协议在传输层上封装了应用层的数据,因此可以在不需要修改应用层协议的前提下给不安全的应用层协议提供一定的安全保障。
编辑
3. SSL/TLS协议栈
编辑
3. 简单的SSL握手连接过程分析(仅服务端交换证书给客户端):
1. SSL建立握手连接目的:
1.身份的验证,client与server确认对方是它相连接的,而不是第三方冒充的,通过证书实现
2.client与server交换session key,用于连接后数据的传输加密和hash校验
2. 从数据包的角度来看:
1. client发送ClientHello,指定版本,随机数(RN),所有支持的密码套件(CipherSuites)
2. server回应ServerHello,指定版本,RN,选择CipherSuites,会话ID(Session ID)
3. server发送Certificate:服务器将数字证书和到根CA整个链发给客户端,使客户端能用服务器证书中的服务器公钥认证服务器
4. Server发送ServerKeyExchange
5. Server发送ServerHelloDone
6. Client发送ClientKeyExchange,用于与server交换session key
7. Client发送ChangeCipherSpec,指示Server从现在开始发送的消息都是加密过的
8. Client发送Finishd,包含了前面所有握手消息的hash,可以让server验证握手过程是否被第三方篡改
9. Server发送ChangeCipherSpec,指示Client从现在开始发送的消息都是加密过的
10. Server发送Finishd,包含了前面所有握手消息的hash,可以让client验证握手过程是否被第三方篡改,并且证明自己是Certificate密钥的拥有者,即证明自己的身份
编辑
3. 以 HTTPS 为例:(五个步骤)
第一步:浏览器给出协议版本号、一个客户端生成的随机数(Client random),以及客户端支持的加密方法。
编辑
第二步:服务器确认双方使用的加密方法,使用的tls版本号和一个随机数。
编辑
第三步:并给出数字证书、以及一个服务器运行Diffie-Hellman算法生成的参数,比如pubkey。
编辑
第四步:浏览器获取服务器发来的pubkey,计算出另一个pubkey,发给服务器。
编辑
第五步:服务器发给浏览器一个session ticket (以 HTTPS 为例)。
编辑
4. SSL证书的类型
实际上,我们使用的证书分很多种类型,SSL证书只是其中的一种。证书的格式是由X.509标准定义。SSL证书负责传输公钥,是一种PKI(Public Key Infrastructure,公钥基础结构)证书。
根据用途不同大致有四类:
1. SSL证书,用于加密HTTP协议,也就是HTTPS。
2. 代码签名证书,用于签名二进制文件,比如Windows内核驱动,Firefox插件,Java代码签名等等。
3. 客户端证书,用于加密邮件。
4. 双因素证书,网银专业版使用的USB Key里面用的就是这种类型的证书。
这些证书都是由受认证的证书颁发机构——我们称之为CA(Certificate Authority)机构来颁发,针对企业与个人的不同,可申请的证书的类型也不同,价格也不同。CA机构颁发的证书都是受信任的证书,对于SSL证书来说,如果访问的网站与证书绑定的网站一致就可以通过浏览器的验证而不会提示错误。
5. SSL拓展
1. SSL的申请与规则
SSL证书可以向CA机构通过付费的方式申请,也可以自己制作。 CA机构颁发的证书价格非常昂贵,而且有效期一般只有一年到三年不等(年数不同,价格也不同),过期之后还要再次交钱申请,因此一般只有企业才会申请证书。
随着个人网站的增多,目前也有针对个人的SSL证书服务,价格相对便宜一些,国内的话400多块钱就能申请到一个,国外更是有免费的SSL证书可以申请。 在申请SSL证书时需要向CA机构提供网站域名,营业执照,以及申请人的身份信息等。网站的域名非常重要,申请人必须证明自己对域名有所有权,如果支持Hotmail.com,Gmail.com的SSL证书都可以随便申请,黑客们就不用做假证书欺骗了。
一个证书一般只绑定一个域名,如果CA机构心情好的话,会免费再绑一个,比如你要申请域名时绑定的域名是 www.runoob.com,那么只有在浏览器地址是 https://www.runoob.com 的时候,这个证书才是受信任的。
如果地址是https://tt.runoob.com或者https://login.runoob.com,那么这个证书由于访问的域名与证书绑定的域名不同,仍然会被浏览器显示为不受信任的。
CA机构也提供申请通配符域名(例如,*.runoob.com),通配符域名相当于绑定了主域名下的所有域名,因此使用起来非常方便,但是价格也超级昂贵,一个通配符域名一年大概得5000块钱,只有企业才可以申请。
2. 查看证书的信息:以谷歌为例:
在访问
编辑
3. SSL证书的验证过程
证书以证书链的形式组织,在颁发证书的时候首先要有根CA机构颁发的根证书,再由根CA机构颁发一个中级CA机构的证书,最后由中级CA机构颁发具体的SSL证书。
我们可以这样理解,根CA机构就是一个公司,根证书就是他的身份凭证,每个公司由不同的部门来颁发不同用途的证书,这些不同的部门就是中级CA机构,这些中级CA机构使用中级证书作为自己的身份凭证,其中有一个部门是专门颁发SSL证书,当把根证书,中级证书,以及最后申请的SSL证书连在一起就形成了证书链,也称为证书路径。
在验证证书的时候,浏览器会调用系统的证书管理器接口对证书路径中的所有证书一级一级的进行验证,只有路径中所有的证书都是受信的,整个验证的结果才是受信。
根证书是最关键的一个证书,如果根证书不受信任,它下面颁发的所有证书都不受信任。操作系统在安装过程中会默认安装一些受信任的
根证书的有效期长,支持的用途多以方便颁发不同用途类型的中级证书;中级证书用途单一,有效期相对短一些,但是比具体的
如果
4. SSL证书验证失败有以下三点原因:
1. SSL证书不是由受信任的CA机构颁发的
2. 证书过期
3. 访问的网站域名与证书绑定的域名不一致
5. SSL证书的安全问题
对
以攻击为目的的
这里有一个误区,当
所以作为个人用户,你一定要知道你访问的是什么网站,如果你只是一个没有多少计算机只是的普通网民,我相信你不会经常上那些自己制作
6. 总结使用 SSL 证书一下要注意的问题
1. 除非必要,不要随意安装根证书。安装根证书的时候一定要明确证书的来源。
2. 对于网银,在线支付,重要邮箱等网站,一定要确保SSL证书是没有问题的,如果浏览器给出SSL证书错误的警告,一定要拒绝访问。一些小区宽带用户一定要注意这点。
3. 由于现在个人申请 SSL 证书比较便宜,一定要注意挂着合法 SSL 证书的钓鱼网站(国外比较常见)。对于钓鱼网站,一定要看清域名,另外别相信什么中奖的消息,同时要安装带有钓鱼防护功能的安全软件。
三、SSL证书和数字证书的关系
SSL证书和CA证书是从属关系,因为SSL是众多CA证书中的一种。
CA是数字证书管理机构,SSL证书一种数字证书,SSL证书由CA机构签发的。
不过CA机构签发的证书有很多种,都叫CA证书,所以SSL证书只是其中一种。
原文链接:https://blog.51cto.com/u_14589573/5764737