-
2021-09-23 15:55:09
我们都知道,互联网是虚拟的,通过互联网我们无法正确获取对方真实省份。数字证书是网络世界中的身份证。数字证书为实现双方安全通信提供了电子认证。在因特网、公司内部网或外部网中,使用数字证书实现身份识别和电子信息加密。数字证书中含有密钥对所有者的识别信息,通过验证识别信息的真伪实现对证书持有者身份的认证。数字证书可以在网络世界中为互不见面的用户建立安全可靠的信任关系,这种信任关系的建立则源于 PKI/CA认证中心,构建安全的PKI/CA认证中心是至关重要的。
CA是Certificate Authority的缩写,也叫“证书授权中心”。CA是证书的签发机构,它是PKI的核心。CA是负责签发证书、认证证书、管理已颁发证书的机关。它要制定政策和具体步骤来验证、识别用户身份,并对用户证书进行签名,以确保证书持有者的身份和公钥的拥有权,CA是可以信任的第三方。因为,如果PKI/CA认证中心安全性不够,非法用户可能入侵PKI/CA认证中心,扰乱认证中心正常运行;一些有别有用心的人可能利用认证中心潜在安全漏洞(政策、合同、服务等),对认证中心进行攻击,造成不可估量的社会影响。
全国各地成立了各省市自己的CA公司,为本地企业提供商用数字证书。
顾名思义,CA 证书就是CA颁发的证书。CA 拥有一个证书(内含公钥)和 私钥。网上的公众用户通过验证 CA 的签字从而信任 CA ,任何人都可以得到 CA 的证书(含公钥),用以验证它所签发的证书。
如果用户想得到一份属于自己的证书,他应先向 CA 提出申请。在 CA 判明申请者的身份后,便为他分配 一个公钥,并且 CA 将该公钥与申请者的身份信息绑在一起,并为之签字后,便形成证书发给申请者。 如果一个用户想鉴别另一个证书的真伪,他就用 CA 的公钥对那个证书上的签字进行验证,一旦验证通过,该证书就被认为是有效的。
更多相关内容 -
开发笔记之数字证书(一):数字证书介绍
2020-02-18 16:54:59若该文为原创文章,未经允许不得转载 原博主博客地址:...本文章博客地址: 目录 开发笔记之数字证书(一):数字证书介绍 前话 数字证书签名基本问题 什么是代码签名证书? 哪些人需要代码...若该文为原创文章,未经允许不得转载
原博主博客地址:https://blog.csdn.net/qq21497936
原博主博客导航:https://blog.csdn.net/qq21497936/article/details/102478062
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/104378208目录
数字证书开发笔记
开发笔记之数字证书(一):数字证书介绍
前话
开发windows软件,对于数字证书是否会被360等一些杀毒防御软件杀掉进行研究,同时介绍、熟悉以及当前数字证书行情(主要是软件端的代码签名证书)。
数字证书签名基本问题
什么是代码签名证书?
随着互联网上活跃的内容越来越多,最终用户需要有一种方法来验证可下载网络内容的合法性。
代码签名是一种置于软件和其他可执行文件和脚本中的数字签名。代码签名可以提供软件作者的身份,并验证软件自最初分发以来未经过篡改。
代码签名不会更改软件,它只是为您的最终用户提供额外一层可信度。
如果从商店购买软件,很容易就可以知道软件的发布者,并可以了解软件包是否被篡改。不幸的是,如果在线购买软件,这些因素则不明显。因此,当在互联网上下载 Java 小程序、插件、Microsoft® ActiveX® 控件和其他可执行文件时,最终用户会承担一定的风险。
代码签名证书有助于获得与客户在商店中购买时相同的信任级别。
利用数字签名提高您的软件安全性。利用 GoDaddy 代码签名证书验证代码的来源和完整性,以提升用户信心。
哪些人需要代码签名证书?
网络安全警惕意识空前高涨。除非您能证明软件的合法性,否则大部分网络用户都不会下载。代码签名证书可以激发客户的信心,并提供您验证代码所需的证明。
软件开发人员可以使用代码签名证书为客户提供额外的保证,让他们知道内容的生产商并且保证没有被篡改。签名的代码还可以防止代码
在分发前被身份不明的第三方篡改。
内容发布者可以对软件组件、宏、固件映像、病毒更新、配置文件或者其他类型的内容进行数字签名,来确保通过互联网或其他机制进行安全交付。
当指定代码片段(例如 Active X 控件、Java 小程序以及其他活动的网络脚本代码)的源码可能不明显时,代码签名尤其重要。
大多数网络用户都了解通过互联网下载内容涉及的潜在风险。重要的是,您的最终用户可以信任您在互联网上发布的代码。代码签名证书
有助于客户确认软件的安全性与保障。
代码签名如何运作?
较新的操作系统和互联网浏览器通常设置为较高的网络安全级别,因此往往需要签名内容。例如,Internet Explorer® 利用
Authenticode® 技术来识别签名软件的发布者并确认它没有被篡改。
当从某网站下载代码签名文件时,可以从文件中提取证书。浏览器通过证书颁发机构的内部列表反复检查此信息,然后验证证书中的签名。
一旦签名软件以任何方式被他人篡改,数字签名将会被破坏,并向客户发出警告:代码已被修改,不再值得信任。
别人如何知道我的签名是可信的呢?
当有人试图下载或运行未签名的代码时,其浏览器会尝试验证已下载内容的安全性。弹出安全警告或无法加载网页内容,具体取决于浏览器的安全设置。这些警告让用户产生怀疑和困惑。
当最终用户希望运行签名的应用程序或可执行文件时,电子签名代码会防止出现不必要的警告对话框。
购买代码签名证书之后,我需要做什么?
购买代码签名证书之后,您需要通过为代码提供签名的计算机提供证书签名申请 (CSR)。根据证书的使用情况,您可以自动创建 CSR,或者可以使用 OpenSSL 之类的工具生成 CSR。
提交您的申请后,我们会确认您所提供的公司信息。如果需要,注册局 (RA) 可能会联系您,要求您提供附加信息。您可以通过您的账户监视验证过程的进展。
代码签名证书一旦签发后,我们会给您发送一封电子邮件,其中包括一个链接,可以单击此链接下载并安装证书文件和任何相关的中间证书。您甚至可以在代码签名时于签名处加上时间戳,使用 Authenticode 显示证书的有效性。
数字证书(数字签名)
概述
数字证书(又称数字标识)是指在互联网通讯中标志通讯各方身份信息的一个数字认证,人们可以在网上用它来识别对方的身份。
数字证书对网络用户在计算机网络交流中的信息和数据等以加密或解密的形式保证了信息和数据的完整性和安全性。
数字证书这一名词并非是我国原有,而是来自于英文digital certificate的翻译。数字证书从本质上来说是一种电子文档,是由电子商务认证中心(以下简称为CA中心)所颁发的一种较为权威与公正的证书,对电子商务活动有重要影响,例如我们在各种电子商务平台进行购物消费时,必须要在电脑上安装数字证书来确保资金的安全性。
CA中心采用的是以数字加密技术为核心的数字证书认证技术,通过数字证书,CA中心可以对互联网上所传输的各种信息进行加密、解密、数字签名与签名认证等各种处理,同时也能保障在数字传输的过程中不被不法分子所侵入,或者即使受到侵入也无法查看其中的内容。
如果用户在电子商务的活动过程中安装了数字证书,那么即使其账户或者密码等个人信息被盗取,其账户中的信息与资金安全仍然能得到有效的保障。数字证书就相当于社会中的身份证,用户在进行电子商务活动时可以通过数字证书来证明自己的身份,并识别对方的身份,在数字证书的应用过程中CA中心具有关键性的作用,作为第三方机构,必须要保证其具有一定的权威性与公平性。
当前阶段认证现状
当前阶段国内的CA中心的从业资格是由国家工业与信息化部所颁发,全国范围内只有约30家企业具有数字认证的从业资格。
原理
数字证书的基本架构是公开密钥PKI,即利用一对密钥实施加密和解密。其中密钥包括私钥和公钥,私钥主要用于签名和解密,由用户自定义,只有用户自己知道;公钥用于签名验证和加密,可被多个用户共享。
数字证书的基本工作原理主要体现在:
- 发送方在发送信息前,需先与接收方联系,同时利用公钥加密信息,信息在进行传输的过程当中一直是处于密文状态,包括接收方接收后也是加密的,确保了信息传输的单一性,若信息被窃取或截取,也必须利用接收方的私钥才可解读数据,而无法更改数据,这也有利保障信息的完整性和安全性。
- 数字证书的数据签名类似于加密过程,数据在实施加密后,只有接收方才可打开或更改数据信息,并加上自己的签名后再传输至发送方,而接收方的私钥具唯一性和私密性,这也保证了签名的真实性和可靠性,进而保障信息的安全性。
数字证书有很多格式版本,主要有X.509v3(1997)、X509v4(1997)、X.509v1(1988)等。比较常用的版本是TUTrec.x.509V3,由国际电信联盟制定,内容包括证书序列号、证书有效期和公开密钥等信息。不论是哪一个版本的数字证书,只要获得数字证书,用户就可以将其应用于网络安全中。
特征
安全性
用户申请证书时会有两份不同证书,分别用于工作电脑以及用于验证用户的信息交互,若所使用电脑不同,用户就需重新获取用于验证用户所使用电脑的证书,而无法进行备份,这样即使他人窃取了证书,也无法获取用户的账户信息,保障了账户信息。
唯一性
数字证书依用户身份不同给予其相应的访问权限,若换电脑进行账户登录,而用户无证书备份,其是无法实施操作的,只能查看账户信息,数字证书就犹如“钥匙”一般,所谓“一把钥匙只能开一把锁”,就是其唯一性的体现。
便利性
用户可即时申请、开通并使用数字证书,且可依用户需求选择相应的数字证书保障技术。用户不需要掌握加密技术或原理,就能够直接通过数字证书来进行安全防护,十分便捷高效。数字证书是由CA中心所签发的,CA中心是一个具权威性、依赖度极高的第三方,其资格证书经国家颁发,可有效保障网络数据信息的安全性,使数据信息处国家掌握当中。用户在浏览网络数据信息或进行网上交易时,利用数字证书可保障信息传输及交易的安全性。
下载安装
用户需先于中国数字证书认证网进行登录,若是首次登录,系统会自动提示用户安装根证书,用户只需依提示完成安装即可;若未提示或根证书遗失,则需用户手动操作完成安装,这时,就需用户于数字证书网页选择“根CA证书”进行安装,依所弹出的对话框所选择要安装的文件夹位置,点击确定即可。下载好之后,即可双击打开,选择所要安装的位置即可;安装成功后,可于浏览器中直接选择Internet,然后选择所需内容,依提示完成所有操作。
举例:使用百家云终端软件进行数字签名,再windows端就会弹出如下提示,带有发布者的名称。
颁发
数字证书的颁发即是用户对自己密钥和公钥以及自身身体信息传输至验证中心进行验证的过程,验证中心在经核对后,即会给申请者发送相应的数字证书。所改善的数字证书当中包含了用户基本信息及公钥信息,部分还会附上经认证中心签名的相关信息。在获得数字证书后,用户即可利用数字证书实施一些自己想要实施的活动。
每个数字证书都是不同的,且每个证书的可信度也存在一定差异,因此,申请者所获得的数字证书都是唯一的。
应用
安全电子邮件
电子邮件中使用数字证书可以建构安全电子邮件证书,主要用户加密电子邮件的传输,保护电子邮件在传输和接收过程中的安全。安全电子邮件证书主要有证书持有者的CA机构的签名、电子邮件地址和公开密钥这些信息。一方面,数字证书与电子邮件结合后,就可以在安全电子邮件证书的加密和数字签名技术的保护下,实现电子邮件的安全传输和接收,保证了电子邮件的安全性和完整度。同时,也保证了电子邮件传输方和接收方信息的真实性。另一方面,安全电子邮件证书中包括公开密钥这一信息,就能够确保电子邮件不被更改,因为只有知道公开密钥才能使用电子邮件。
安全终端保护
随着计算机网络技术的发展,电子商务的发展也越来越快,在人们生活和生产中的应用也越来越广泛,用户终端和数据的安全问题也日益受到重视。为了避免终端数据信息的损坏或者是泄露,数字证书作为一种加密技术,可以用于终端的保护。
首先,使用正版的软件和硬件,正确配置系统和网络并定期进行检查,防止终端配置被非法篡改。其次,利用网络安全技术如防火墙对内外网络进行实质性的隔离。同时,及时更新病毒库和防病毒软件,对终端系统实时进行病毒和安全漏洞的扫描,加强对终端系统的安全保护。一旦发现可疑信息,就要立即重点监控,防止其带来的影响和破坏。最后,加强访问终端的控制,利用加密和认证等手段加强信息破解的难度。用户可以设置一个以数字证书为主的系统登录方式,加上动态加密,就可以实现对系统的验证,没有权限的用户就无法进入终端系统的访问,拥有权限的用户就符合了访问的要求,保证了访问终端的一致性。另外还要做到终端网络和主网络的分离,减少两者之间的数据交叉和结合,也避免了终端网络和主网络的相互影响,减少风险。
代码签名保护
网络信息推广对很多用户来说,便捷有经济,但对软件的安全是不确定的。比如,用户对软件进行分享时,软件的接收和使用过程中存在着很多不安全因素,即使软件供应商能够保证软件自身的安全性,但也无法抵制盗版软件和网络本身存在的不安全因素带来的不利影响。
可信网站服务
我国网站的数量伴随着计算机网络技术的发展呈现出日益增长的趋势,其中的恶意网站、钓鱼网站和假冒网站也越来越多,这就增加了用户对它们识别的难度,一不小心就会将自身的数据信息泄漏,严重影响了网络的安全。当用户对所使用的网站存在疑虑,不确定其中是否有被篡改和侵袭时,就可以利用数字证书的技术。通过数字证书技术,就可以对不确定的网站先进行验证和检查,增加了使用安全网站的机率,也避免了恶意网站、钓鱼网站和假冒网站等对网络造成的损失。
身份授权管理
授权管理系统是信息系统安全的重要内容,对用户和程序提供相对应的授权服务,授权访问和应用的方法,而数字证书必须通过计算机网络的身份授权管理后才能被应用。因此,要保证身份授权管理工具的安全性。当系统双方相互认同时,身份授权系统的工作才能展开。同时,正确使用数字证书,适当授权,完成系统的用户认证,才能切实保护身份授权管理系统的安全性。
数字证书通俗解释
概述
数字证书分带私钥的证书和不带私钥的证书:
- 带私钥的证书:即P12格式证书(后缀名为.pfx);
- 不带私钥的证书:有多种格式,通常使用的是cer格式证书(后缀名未.cer);
通俗解释
数字签名,在网络安全领域用的比较多,可实现用户身份的真实可靠性;实现信息的完整性,确保数据在存储、传输和处理的过程中免遭任何非授权的或非预期的修改、插入、删除、重发等破坏,从而实现数据的真实性、有效性和一致性。
用一段密码与原文进行加密,检测原文有没有被篡改。或者理解为就是对这些数据与原文数据比对是否修改过,如果有说明您的原文被篡改过,否则是你的原文。一般是用自己的私钥对数据进行签名,然后用公钥去验证这个数据是否修改过
- 签名:个人用“私钥”进行签名
- 验签:用“公钥”进行验签
- 加密:用公共的“公钥”加密
- 解密:用“私钥”进行解密
数字签名的目的
用户下载软件时,能通过数字签名验证软件来源可信,确认软件没有被非法篡改或植入病毒木马,保护用户不会被病毒、恶意代码和间谍软件所侵害,也保护了软件开发者的利益,让软件能在互联网上快速安全地发布。
未使用数字签名的软件可能无法正常运行,以Windows系统为例,如果用户下载运行未签名的软件, Windows系统会发出红色安全警告;而未签名的ActiveX控件, Windows会直接拦截不允许运行。因此,数字签名是软件发行前必不可少的一道工序。
颁布
数字证书(代码签名证书)是由权威CA机构(沃通CA)认证开发者身份颁发,开发者使用WoSign代码签名证书和代码签名精灵对软件进行数字签名,可以防止软件被植入病毒木马,减少Windows系统拦截,让用户可以顺畅地安装使用。
数字签名与360等杀毒软件的关系推断
软件不使用数字签名证书,软件有一定可能会被360等杀毒软件拦截,还从其它渠道网友大佬公司得到一些信息,笔者主观推断:
- 推断一:
某杀毒软件存在证书白名单:该白名单保存了证书白名单,通过数字签名的方式实现,当检测到一个软件则获取其数字签名,该数字签名在某杀毒软件的白名单内,则不拦截。
数字签名本身也能验证exe的完整性,某杀毒等杀毒软件再做二次过滤以达到更高的安全性,措施也就是不在名单内的很可能就进行拦截,至于用户自己可以手动添加到某杀毒软件等本地白名单中放行。
- 推断二(从笔记二中的数字证书厂家得到验证该推断是最接近于正确):
某杀毒软件等杀毒软件存在软件白名单:该白名单保存了软件的名称(还有其他什么细信息),在杀毒软件开放平台后端去申请过白名单(后台免费申请过审批就行),对应的也有黑名单,因为有案例说数字签名被检测到疑似有木马后,使用该数字签名的其它软件也会被拦截。
以上只是笔者的主观推断,需要进一步论证,只可作为参考。
原博主博客地址:https://blog.csdn.net/qq21497936
原博主博客导航:https://blog.csdn.net/qq21497936/article/details/102478062
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/104378208 -
深圳CAUSBKey数字证书驱动程序官方版
2019-07-30 11:48:50同时又是一个USBKey数字证书驱动程序,带上数字证书申请表和相关证件,前途深圳CA申请数字证书,经审核通过后,您可以获得由深圳CA签发的数字证书。 使用说明 首次安装数字证书的电脑需点击安装的驱动文件。 ... -
一文了解数字证书
2020-09-13 17:46:13数字证书从本质上来说是一种电子文档,是由电子商务认证中心(以下简称为CA中心)所颁发的一种较为权威与公正的证书,对电子商务活动有重要影响,例如我们在各种电子商务平台进行购物消费时,必须要在电脑上安装...目录
1 概述
数字证书是指在互联网通讯中标志通讯各方身份信息的一个数字认证,人们可以在网上用它来识别对方的身份。因此数字证书又称为数字标识。数字证书对网络用户在计算机网络交流中的信息和数据等以加密或解密的形式保证了信息和数据的完整性和安全性。
数字证书从本质上来说是一种电子文档,是由电子商务认证中心(以下简称为CA中心)所颁发的一种较为权威与公正的证书,对电子商务活动有重要影响,例如我们在各种电子商务平台进行购物消费时,必须要在电脑上安装数字证书来确保资金的安全性。
数字证书的基本架构是公开密钥PKI(公钥基础结构),即利用一对密钥实施加密和解密。其中密钥包括私钥和公钥,私钥主要用于签名和解密,由用户自定义,只有用户自己知道;公钥用于签名验证和加密,可被多个用户共享。
2 原理
数字证书的基本工作原理主要体现在:
第一,发送方在发送信息前,需先与接收方联系,同时利用公钥加密信息,信息在进行传输的过程当中一直是处于密文状态,包括接收方接收后也是加密的,确保了信息传输的单一性,若信息被窃取或截取,也必须利用接收方的私钥才可解读数据,而无法更改数据,这也有利保障信息的完整性和安全性。
第二,数字证书的数据签名类似于加密过程,数据在实施加密后,只有接收方才可打开或更改数据信息,并加上自己的签名后再传输至发送方,而接收方的私钥具唯一性和私密性,这也保证了签名的真实性和可靠性,进而保障信息的安全性。数字证书有很多格式版本,主要有X.509v3(1997)、X509v4(1997)、X.509v1(1988)等。比较常用的版本是TUTrec.x.509V3,由国际电信联盟制定,内容包括证书序列号、证书有效期和公开密钥等信息。不论是哪一个版本的数字证书,只要获得数字证书,用户就可以将其应用于网络安全中。
3 证书的组成
证书的格式遵循ITUTX.509国际标准
一个标准的X.509数字证书包含以下一些内容:
证书的版本信息;
证书的序列号,每个证书都有一个唯一的证书序列号;
证书所使用的签名算法;
证书的发行机构名称,命名规则一般采用X.500格式;
证书的有效期,现在通用的证书一般采用UTC时间格式,它的计时范围为1950-2049;
证书所有人的名称,命名规则一般采用X.500格式;
证书所有人的公开密钥;
证书发行者对证书的签名。
4 加密相关概念
在密码学中,有一个五元组:{明文、密文、密钥、加密算法、解密算法},对应的加密方案称为密码体制(或密码)。
明文:是作为加密输入的原始信息,即消息的原始形式所有可能明文的有限集称为明文空间。
密文:是明文经加密变换后的结果,即消息被加密处理后的形式,所有可能密文的有限集称为密文空间。
密钥:是参与密码变换的参数,一切可能的密钥构成的有限集称为密钥空间。
加密算法:是将明文变换为密文的变换函数,相应的变换过程称为加密,即编码的过程。
解密算法:是将密文恢复为明文的变换函数,相应的变换过程称为解密,即解码的过程。
5 加密算法
5.1 对称算法
加密和解密使用同一密钥
主要算法包括:DES、3DES、RC2、RC4
加/解密速度快,但不安全
5.2 非对称算法
不需要首先共享秘密
两个密钥同时产生:一把密钥(公钥)是公开的,任何人都可以得到。另一把密钥(私人密钥)只有密钥的拥有者知道。
用其中一把密钥(公钥或者是私钥)加密的信息,只能用另一把打开。
RSA算法,ECC(椭圆曲线)算法
由已知的公钥几乎不可能推导出私钥
强度依赖于密钥的长度
很慢-不适合加密大数据
公钥可以广泛地、开放地分发
用于加密,签名/校验,密钥交换
5.3 数字摘要
把可变输入长度串转换成固定长度输出串的一种函数。称输出串为输入串的指纹,或者数字摘要;
不同明文的摘要相同的概要是非常非常小的;而同样明文其摘要必定一致;
明文的长度不固定,摘要的长度固定。
没有密钥
不可回溯
典型算法:MD5,SHA-1
用于完整性检测,产生数字签名
5.4 最好的解决方案
使用对称算法加密大的数据
每次加密先产生新的随机密钥
使用非对称算法交换随机产生的密钥
用非对称算法做数字签名(对散列值即摘要做数字签名)
四条基本规则
先签名,然后加密
加密之前先压缩
用你自己的私钥做签名
用接收者的公钥做加密
加密:
解密:
怎样解决4个通讯安全需求?
私密性 加密
完整性 ?
不可否认性 ?
身份认证 ?
数字签名
数字签名采用公钥体制(PKI),即利用一对互相匹配的密钥进行加密、解密。每个用户自己设定一把特定的仅为本人所知的私有密钥(私钥),用它进行解密和签名;同时设定一把公共密钥(公钥)并由本人公开,为一组用户所共享,用于加密和验证签名。当发送一份保密文件时,发送方使用接收方的公钥对数据加密,而接收方则使用自己的私钥解密,这样信息就可以安全无误地到达目的地了。通过这种手段保证加密过程是一个不可逆过程,即只有用私有密钥才能解密。在公开密钥密码体制中,常用的一种是RSA体制。其数学原理是将一个大数分解成两个质数的乘积,加密和解密用的是两个不同的密钥。即使已知明文、密文和加密密钥(公开密钥),想要推导出解密密钥(私密密钥),在计算上是不可能的。按现在的计算机技术水平,要破解目前采用的1024位RSA密钥,需要上千年的计算时间。公开密钥技术解决了密钥发布的管理问题,商户可以公开其公开密钥,而保留其私有密钥。购物者可以用人人皆知的公开密钥对发送的信息进行加密,安全地传送给商户,然后由商户用自己的私有密钥进行解密。
用户也可以采用自己的私钥对信息加以处理,由于密钥仅为本人所有,这样就产生了别人无法生成的文件,也就形成了数字签名。采用数字签名,能够确认以下两点:
(1)保证信息是由签名者自己签名发送的,签名者不能否认或难以否认;
(2)保证信息自签发后到收到为止未曾作过任何修改,签发的文件是真实文件。
数字签名具体做法是:
(1)将报文按双方约定的HASH算法计算得到一个固定位数的报文摘要。在数学上保证:只要改动报文中任何一位,重新计算出的报文摘要值就会与原先的值不相符。这样就保证了报文的不可更改性。
(2)将该报文摘要值用发送者的私人密钥加密,然后连同原报文一起发送给接收者,而产生的报文即称数字签名。这样就保证了签发者不可否认性。
(3)接收方收到数字签名后,用同样的HASH算法对报文计算摘要值,然后与用发送者的公开密钥进行解密解开的报文摘要值相比较。如相等则说明报文确实来自所称的发送者。
数字证书是如何生成的?
数字证书是数字证书在一个身份和该身份的持有者所拥有的公/私钥对之间建立了一种联系,由认证中心(CA)或者认证中心的下级认证中心颁发的。根证书是认证中心与用户建立信任关系的基础。在用户使用数字证书之前必须首先下载和安装。
认证中心是一家能向用户签发数字证书以确认用户身份的管理机构。为了防止数字凭证的伪造,认证中心的公共密钥必须是可靠的,认证中心必须公布其公共密钥或由更高级别的认证中心提供一个电子凭证来证明其公共密钥的有效性,后一种方法导致了多级别认证中心的出现。
数字证书颁发过程如下:用户产生了自己的密钥对,并将公共密钥及部分个人身份信息(称作P10请求)传送给一家认证中心。认证中心在核实身份后,将执行一些必要的步骤,以确信请求确实由用户发送而来,然后,认证中心将发给用户一个数字证书,该证书内附了用户和他的密钥等信息,同时还附有对认证中心公共密钥加以确认的数字证书。当用户想证明其公开密钥的合法性时,就可以提供这一数字证书。
证书的产生:认证中心把用户证书的基本信息做哈希算法,然后用自己的私钥对哈希值进行加密。
6 数字证书分发
CA将证书分发给用户的途径有多种。第一种途径是带外分发(Out-of-band Distribution),即离线方式。例如,密钥对是由软件运营商代替客户生成,证书也是由运营商代替客户从CA下载,然后把私钥和下载的证书一起储存在软盘里,再交给用户的。这样做的好处是免去了用户上网下载证书的麻烦。第二种途径是带内分发(In-band distribution),即用户从网上下载数字证书到自己的电脑中。下载时,用户要向CA出示“参考号”和“授权码”,以向CA证明自己的身份。这样做成本较低,但对使用计算机不太熟悉的用户来说,可能在下载时会碰到一些麻烦。除了以上两种方式外,CA还把证书集中放置在公共的数据库中公布,用户可以随用随查询随调用。
7 数字证书是如何存储的?
数字证书和私钥储存的介质有多种,大致分为硬证书和软证书。可以存储在计算机硬盘、软盘、智能卡或USB key里。
7.1 关于私钥的唯一性
严格地讲,私钥既然是世上唯一且只由主体本身持有,它就必须由主体的计算机程序来生成。因为如果在别处生成将会有被拷贝的机会。然而在实际应用上并非如此,出于某些特殊需要(例如,如果只有一份私钥,单位的加密文件就会因为离职员工带走 私钥而无法解密。)加密用的公/私钥对会要求在可信的第三方储存其备份。这样,加密用的私钥可能并不唯一。然而签名用的私钥则必须保持唯一,否则就无法保证被签名信息的不可否认性。
在生成用户的密钥对时,用于加密的公/私钥对可以由CA、RA产生,也可以在用户终端的机器上用专用的程序(如浏览器程序或认证软件)来产生。用于数字签名的密钥对原则上只能由用户终端的程序自行产生,才能保证私钥信息的私密性以及通信信息的不可否认性。
有人可能会产生疑问:有的加密和签名的密钥对都是由软件运营商代替客户生成的,这是否破坏了上述的私钥唯一性原则呢?答案是否定的。这时候,私钥的唯一性要依靠法律合同的保证以及操作过程中相应制度的约束,使得不可否认性得到支持。出于这种机制,我们仍然可以认为,用户的签名私钥是唯一的。
7.2 证书,私钥,到底保护哪一个?
我们常常听到有人说:“保管好你的软盘,保管好你的KEY,不要让别人盗用你的证书。”有些教科书上也这样讲。应该说,这句话是有毛病的。数字证书可以在网上公开,并不怕别人盗用和篡改。因为证书的盗用者在没有掌握相应的私钥的情况下,盗用别人的证书既不能完成加密通信,又不能实现数字签名,没有任何实际用处。而且,由于有CA对证书内容进行了数字签名,在网上公开的证书也不怕黑客篡改。我们说,更该得到保护的是储存在介质中的私钥。如果黑客同时盗走了证书和私钥,危险就会降临。
8 如何验证数字证书?
以Alice验证Bob证书为例:
校验Bob的证书的合法性
(1)Alice获得Bob的证书和签发Bob证书的CA的证书
(2)用CA的公钥解密Bob的证书摘要
(3)计算Bob的证书的摘要
(4)比较这两个摘要
(5)校验Bob的证书证书有效期
(6)校验签发者签名(证书链)
(7)检查证书作废列表(CRL,OCSP)
9 CRL和OCSP是什么?
证书的有效性取决于两个方面因素:第一个因素是证书有效期:证书的有效期在证书被颁发之日就已经确定了,例如CFCA(中国金融认证中心)规定个人证书的有效期是一年(可扩展),企业证书的有效期是三年。证书的有效期(Validity Period)作为一项内容被写进了数字证书之中,它用两个日期——证书开始生效的日期和证书失效的日期来表示。显然,已经过了有效期的证书不能通过验证。
证书有效期的设定是出于安全的考虑,当一张证书有效期将结束时,如果想继续使用就需要更新,证书更新时将产生新的公私密钥对,密钥定期更新对于证书的安全性是有好处的。
第二个因素是证书注销:虽然证书有效期没有过,但是如果发生了特殊情况,例如用户发现证书遗失或私钥失密,用户会向CA/RA提出注销证书的申请,CA/RA经过审核后将实施证书注销。那么,被注销的证书也不能通过验证。
第一种情况比较简单,证书的有效期就写在了证书之中,安全认证应用软件只要调出证书的内容,判断一下就知道这张数字证书当前是否还在有效期内。
第二种情况则比较复杂,证书一旦发出,是不可能收回的。怎么办呢?只能申请注销。所谓注销,就是要求当初颁发这张证书的单位(CA)出一张告示,宣布某张证书已经被注销作废,警告有关的交易者注意,不要再使用与这张证书绑定的公钥。在PKI安全认证体系中,这种“告示”称为证书注销列表(或证书撤销清单、证书注销清单、证书废止列表等),英文原文是Certificate Revocation List,缩写为CRL。
OCSP 线证书状态协议(Online Certificate Status Protocol)线证书状态查询。
对于第二种情况,安全认证应用软件在验证证书的有效性时就需要去访问证书注销列表(CRL)。这个列表相当于“黑名单”,一旦发现通信对方的证书在这张列表中,就不能通过验证。
证书注销机制可以防止证书遗失或发现私钥失密后,不法分子冒用用户证书、私钥实行欺诈交易所带来的损失。这和信用卡注销、有效证件注销的机制十分类似。
注销证书的其他原因还包括:银行方面认为证书用户信用丧失、用户身份姓名发生改变、用户从他所属单位离职、岗位和职权发生变更等情况。
CRL的内容
根据X.509标准,CRL的内容和数据结构定义如所示:
版本
签名算法
签发者
更新时间
下一次更新时间
废止的证书列表
用户证书序列号
废止时间
CRL入口扩展
CRL的内容包括CRL的版本号、计算本CRL的数字签名所用的算法的标识符(如加密算法RSA、数字摘要算法MD5等算法的标识符)、颁发CRL的CA的可识别名(DN)、CRL的发布/更新时间、被注销证书的列表(仅列出被注销证书的唯一序列号)以及扩展项。
扩展项中的内容有:
(1)理由代码——指出该证书被注销的理由,如:密钥损坏、CA损坏、关系变动、操作终止等;
(2)证书颁发者——列出该证书颁发者的名字;
(3)控制指示代码——用于证书的临时冻结;
(4)失效日期——列出该证书不再有效的日期。 为了保证CRL的真实性和完整性,CRL数据的后面附有颁发CRL的CA对CRL的数字签名。
10 常见的数字证书格式
10.1 常见文件格式
在Security(安全)编程中,有几种典型的密码交换信息文件格式:
DER-encoded certificate: .cer, .crt
PEM-encoded message: .pem
PKCS#12 Personal Information Exchange: .pfx, .p12
PKCS#10 Certification Request: .p10
PKCS#7 cert request response: .p7r
PKCS#7 binary message: .p7b
.cer/.crt是用于存放证书,它是2进制形式存放的,不含私钥。
.pem跟crt/cer的区别是它以Ascii来表示。
pfx/p12用于存放个人证书/私钥,他通常包含保护密码,2进制方式
p10是证书请求
p7r是CA对证书请求的回复,只用于导入
p7b以树状展示证书链(certificate chain),同时也支持单个证书,不含私钥。
证书之间的格式是可以转换的,各种 证书转换。
10.2 数字证书文件格式(cer和pfx)的区别
作为文件形式存在的证书一般有这几种格式:
1.带有私钥的证书
由Public Key Cryptography Standards #12,PKCS#12标准定义,包含了公钥和私钥的二进制格式的证书形式,以
pfx作为证书文件后缀名。
2.二进制编码的证书
证书中没有私钥,DER 编码二进制格式的证书文件,以cer作为证书文件后缀名。
3.Base64编码的证书
证书中没有私钥,BASE64 编码格式的证书文件,也是以cer作为证书文件后缀名。 由定义可以看出,只有pfx格式的数字证书是包含有私钥的,cer格式的数字证书里面只有公钥没有私钥。在pfx证书的导入过程中有一项是“标志此密钥是可导出的。这将您在稍候备份或传输密钥”。一般是不选中的,如果选中,别人就有机会备份你的密钥了。如果是不选中,其实密钥也导入了,只是不能再次被导出。这就保证了密钥的安全。
如果导入过程中没有选中这一项,做证书备份时“导出私钥”这一项是灰色的,不能选。只能导出cer格式的公钥。如果导入时选中该项,则在导出时“导出私钥”这一项就是可选的。
如果要导出私钥(pfx),是需要输入密码的,这个密码就是对私钥再次加密,这样就保证了私钥的安全,别人即使拿到了你的证书备份(pfx),不知道加密私钥的密码,也是无法导入证书的。相反,如果只是导入导出cer格式的证书,是不会提示你输入密码的。因为公钥一般来说是对外公开的,不用加密
3.X.509定义了两种证书:公钥证书和属性证书
PKCS#7和PKCS#12使用的都是公钥证书
PKCS#7的SignedData的一种退化形式可以分发公钥证书和CRL
一个SignedData可以包含多张公钥证书
PKCS#12可以包含公钥证书及其私钥,也可包含整个证书链
11 数字证书命名
C(county) 国家
O(organization)颁发机构名称
OU(Organizational Unit) 组织单位名称
CN (common name) 持有者的名称
例如:CN=zhangsan,OU=beijingICBCbank,O=ICBCbank
12 证书工具使用
12.1 KeyTool工具
Java自带的keytool工具是个密钥和证书管理工具。它使用户能够管理自己的公钥/私钥对及相关证书,用于(通过数字签名)自我认证(用户向别的用户/服务认证自己)或数据完整性以及认证服务。它还允许用户储存他们的通信对等者的公钥(以证书形式)。keytool 将密钥和证书储存在一个所谓的密钥仓库(keystore)中。缺省的密钥仓库实现将密钥仓库实现为一个文件。它用口令来保护私钥。
Java KeyStore的类型
JKS和JCEKS是Java密钥库(KeyStore)的两种比较常见类型(我所知道的共有5种,JKS, JCEKS, PKCS12, BKS,UBER)。
JKS的Provider是SUN,在每个版本的JDK中都有,JCEKS的Provider是SUNJCE,1.4后我们都能够直接使用它。
JCEKS在安全级别上要比JKS强,使用的Provider是JCEKS(推荐),尤其在保护KeyStore中的私钥上(使用TripleDes)。
PKCS#12是公钥加密标准,它规定了可包含所有私钥、公钥和证书。其以二进制格式存储,也称为 PFX 文件,在 windows中可以直接导入到密钥区,注意,PKCS#12的密钥库保护密码同时也用于保护Key。
BKS 来自BouncyCastle Provider,它使用的也是TripleDES来保护密钥库中的Key,它能够防止证书库被不小心修改(Keystore的keyentry改掉1个 bit都会产生错误),BKS能够跟JKS互操作,读者可以用Keytool去TryTry。UBER比较特别,当密码是通过命令行提供的时候,它只能跟keytool交互。整个keystore是通过PBE/SHA1/Twofish加密,因此keystore能够防止被误改、察看以及校验。以前,Sun JDK(提供者为SUN)允许你在不提供密码的情况下直接加载一个Keystore,类似cacerts,UBER不允许这种情况。
12.2 OpenSSL
OpenSSL是为网络通信提供安全及数据完整性的一种安全协议,囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用。
-
Java 数字签名、数字证书生成
2021-03-16 07:08:27摘要:JAVA源码,系统相关,数字签名,数字证书 Java 数字签名、数字证书的相关实例。 关于数字签名:产生RSA密钥对(myKeyPair),得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名... -
数字签名与数字证书
2021-12-15 21:55:02这里写目录标题数字签名数字证书数字证书的原理数字证书的特点如何验证证书机构的公钥不是伪造的 数字签名 数字签名是非对称密钥加密技术与数字摘要技术的应用,数字签名就是用加密算法加密message的摘要(摘要通过...数字签名
数字签名是非对称密钥加密技术与数字摘要技术的应用,数字签名就是用加密算法加密报文文本的摘要(摘要通过hash函数得到)而生成的内容。
发送报文时,发送方用一个哈希函数从报文文本中生成报文摘要,然后用发送方的私钥对这个摘要进行加密生成数字签名,之后将数字签名和报文一起发送给接收方,即数字证书。
接收方首先用与发送方一样的哈希函数从接收到的原始报文中计算出报文摘要,接着再公钥来对报文附加的数字签名进行解密,如果这两个摘要相同、那么接收方就能确认该报文是发送方的。举一个例子,A和B都已经获取了对方的公钥,以下是A和B利用数字签名的通信过程:
(1)A将原文加工生成发送内容
- A用哈希算法(如MD5)计算要发送内容message的Hash值(message的摘要)。
- 用非对称加密算法(如RSA算法)加密摘要,生成数字签名。 将message加数字签名作为发送内容。
(2)B收到数据,进行解密验证内容
- 首先对message进行同样的哈希计算,算出原文的Hash值(摘要1)。
- 用A的公钥解密签名,得到摘要2。
- 比对两个摘要是否相等。如果不相等,证明原文或者签名被修改过。
数字证书
采用公钥机制进行加密传输面临的一个问题是公钥的发布是未受信任的。任何一个用户都可以通过网络向所有人发布伪造的公钥,如果某个用户假冒真正用户的名义发布一个公钥,在该假冒者被揭穿以前,他可以解读所有发向真正用户的加密消息,还可以通过签名冒充真正用户的身份。
数字证书的原理
数字证书就是一个人或者组织在网络世界中的身份证,其发证机关是证书管理机构(certificate authority,CA)。CA用自己的私钥对用户的身份信息(主要是用户名和该用户的公钥)进行签名,该签名和用户的身份信息一起就形成了证书。
用户A把自己的证书发送给用户B。用户B使用CA的公钥对证书的签名进行验证,由于只有CA才能生成该证书,因此只要证书验证正确,即说明证书是由CA发布的,证书中用户A的公钥是值得信赖的。用户B以后就可以使用该公钥验证用户A的签名或者进行和A进行加密通信。使用数字证书验证用户的身份的过程如下:
整个数字证书的使用流程如下:
数字证书的特点
- 由专门的机构签发的数字证书才安全有效。
- 签发数字证书是收费的。
- 不会被冒充,安全可信。
- 数字证书有使用期限,过了使用期限,证书变为不可用。CA也可以在试用期内,对证书进行作废操作。
如何验证证书机构的公钥不是伪造的
这里有一个有趣的问题,用户B使用证书机构的公钥来验证用户A的数字证书,但如何又能够知道用户B拿到的证书机构的公钥不是伪造的呢?
解决办法是再找一个证书管理机构(certificate authority,CA)对该证书机构的公钥颁发一个证书,这样形成了一个公钥证书的嵌套循环,该循环的终点就是根证书机构。根证书机构较少,其公钥可以通过安全的方式发布,如通过USB拷贝、书面文件当面移交。
-
数字证书原理简介
2021-04-19 07:48:55在软件开发领域,数字证书已经成为一个不可替代的技术方案,用于实现对网络通信的安全加密以及身份认证等。得益于各类软件对证书技术的高度集成,只需要通过一些简单配置或API调用就可以实现证书接入,例如浏览器与... -
数字证书
2021-04-15 11:43:17本文主要介绍的SSL中的涉及到的"数字证书"这个东东。 一.什么是数字证书? 数字证书是一种权威性的电子文档。它提供了一种在Internet上验证您身份的方式,其作用类似于司机的驾驶执照或日常生活中的身份证。它是... -
数字证书简介
2021-12-31 10:42:161、为什么使用数字证书 在说清楚数字证书是什么之前,先要搞清楚为什么要有数字证书,或者说数字证书的出现是为了解决什么问题。 通过下面通信流程,就可以知道为什么要使用数字证书。 1.1、使用数字签名技术防止... -
数字证书概述
2020-08-16 13:32:581.简介 密钥交换问题是一个难题,也是设计任何计算机加密方案时最大的难题。...数字证书和护照很相似,每个护照有一个护照号,而数字证书则具有唯一序号;同一签发者签发的护照不会有重号,同样,同一签 -
makecert 制作数字证书
2020-12-18 06:03:54在MS的SDK6.0中有个证书生成工具makecert.exe, 你可以使用这个工具来生成测试用的证书。第一步,生成一个自签名的根证书(issuer,签发者)。>makecert -n "CN=Root" -r -sv RootIssuer.pvk RootIssuer.cer这个时候... -
数字证书的生成和签发
2021-03-08 16:12:47数字证书的生成和签发 生成服务器端的私钥 openssl genrsa -des3 -out server.key 1024 注意: 执行上面的命令会提示输入密码,用于加密私钥文件。可以使用下面的命令去除掉私钥文件的密码保护: openssl rsa -... -
数字证书与通信安全
2020-06-27 14:16:04数字证书是互联网通讯中标志通讯方身份信息的一系列数据,提供了一种在Internet上验证您身份的方式,其作用类似于司机的驾驶执照或日常生活中的身份证。它是由一个由权威机构——CA机构,即证书授权(Certificate ... -
数字证书再理解
2021-11-13 20:30:31加密:通过加密算法和公钥对内容(或说明文)进行加密,得到密文。加密过程需要用到公钥。 解密:通过解密算法和私钥对密文进行解密,得到明文。解密过程需要用到解密算法和私钥。注意,由公钥加密的内容,只能由私钥... -
数字签名和数字证书的区别与联系
2019-04-30 11:57:42前言 最近在开发关于PDF合同文档电子签章的功能,大概意思就是在一份PDF合同上签名,盖章,使其具有法律效应。签章有法律效应必须满足两个条件: 能够证明签名,盖章者是谁,无法抵赖 ...两个重要的概念就是数字签... -
数字签名和数字证书详解
2020-11-27 18:05:25签名 当你在一个纸质文件上写上你的名字,按上你的指纹,就意味着这张纸上的内容经过了你的认可,你的笔迹和指纹就是你身份的证明。...数字签名 在互联网时代,文件以电子形式存在电脑里,我们从网上下载的文件、程 -
数字证书申请流程
2019-03-13 16:21:12(数字证书)双证申请流程 First: 用户到 RA 中心申请证书 Next: USBkey生成签名密钥对,同时产生 CSR 文件并发送给RA Next: RA 将用户信息以及 CSR 文件发送给 CA Next: CA 向KMC请求加密密钥,并发送签名... -
浅议数字证书在网络安全中的应用 (2014年)
2021-05-11 10:25:19随着社会经济和科学技术的飞速发展,信息和...加强网上安全有多种措施和手段,本文将以数字证书在网络安全中的应用现状,来简要说明其是加强网上安全的一种有效方式,希望能够对计算机网络的发展及建设带来积极的促进作用。 -
内网数字证书的生成与使用
2022-04-27 17:40:07个人数字证书使用详解 -
SecureCerts数字证书
2020-03-04 01:49:09数字证书证明证书主体(“证书申请者”获得CA认证中心签发的证书后即成为“证书主体”)与证书中所包含的公钥的惟一对应关系。因为加密过程不可逆,只有用私钥才能解密,所以数字证书的管理尤其重要。 -
数字证书的构成和原理
2018-12-26 15:52:151) 在windows下查看一个证书时,界面是这样的,我们主要关注一下Details Tab页,其中的内容比较长,我滚动内容后后抓了三个图,把完整的信息显示出来: 里面的内容比较多——Version、Serial number、Signature ... -
数字证书总结
2020-07-07 18:51:46数字证书 就是通过数字签名实现的数字化的证书,在现实生活中公章可以被伪造,但在计算数字世界中,数字签名是没有办法被伪造的,在一个证书文件中写明了证书内容,颁发证书时,教育部门利用他们的私钥对文件的摘要... -
[网络] 数字签名和数字证书的原理机制
2020-07-23 07:06:39文章标题数字签名数字证书数字证书的应用场景 数字签名 数字签名是拿来对数据做认证的,帮助接收者确认数据是否真实有效。 就像你在合同上签名,合同生效后,内容就不能再改动了。两者作用是一样的,区别在于认证的... -
公钥、私钥、数字签名和数字证书的概念及解密
2022-03-14 21:41:31* 公钥: 公钥用于加密信息和解密数字签名 * 私钥: 私钥用于解密信息和加密消息摘要 * 消息摘要,数字指纹 : 对消息使用HASH算法获取的固定长度...* 数字证书:CA用自己的私钥,对需要认证的公钥及相关的信息进行加密 -
网络通信之——Https数字证书
2020-05-11 08:56:00该篇博客主要介绍https通信中的数字证书的构成和证书的分发使用流程,关于Https通信安全一系列的知识点,我以系列博客文章进行了总结归纳,欢迎阅读! -
数字证书及CA详解
2019-08-30 16:11:00证书1.1 证书的应用场景1.2 证书标准规范X.5091.2.1 证书规范1.2.2 证书格式1.2.3 CA证书1.3 公钥基础设施(PKI)1.3.1 什么是公钥基础设施1.3.2 PKI的组成要素用户认证机构(CA)仓库1.3.3 各种各样的PKI2.Fabric ...