数字证书身份认证原理与签发步骤详解小菜学网络

天将降大任于是人也,必先苦其心志,劳其筋骨,饿其体肤,空乏其身,行拂乱其所为,所以动心忍性,曾益其所不能。

——战国·孟子·《生于忧患,死于安乐》

上一小节,我们学习了非对称加密,掌握了密钥协商,数据签名等典型应用场景。现在,我们继续讨论身份认证话题,学习数字证书(certificate)的工作原理。

在介绍密钥协商时,我们提到服务器先将公钥发给客户端,用公钥保护对称加密密钥,确保通信内容不会被第三方获悉。但如果客户端连接的服务器是假的呢?如果用户对假网站信以为真,输入了账号密码,那么这些敏感信息都会被假网站窃取!

这种假网站被叫做钓鱼网站(phishingsite),它们高仿原网站,以假乱真。用户仅凭外观通常难以区分,因此信以为真。在钓鱼网站上输入的账号密码,最终都会被架设网站的黑客收集到。

那么,客户端应该如何判断服务器真伪呢?如何识别钓鱼站点呢?

上节我们也讨论了数字签名,通过它可以实现数据防伪。那么,我们是不是可以利用这项技术来甄别仿冒站点呢?显然,若有权威机构(如政府)担起站点信息签名的责任,即可轻松识别仿冒站点!

你可能会觉得,黑客直接盗用站点信息和签名不就可以伪造原站点了嘛?此言差矣!因为公钥属于站点信息的一部分,也会参与签名!客户端和服务端协商密钥时,会使用这个公钥加密密钥。由于黑客不掌握站点私钥,因此加密连接无法建立!黑客把公钥替换成自己的吧,签名就不对,肯定会被验出来!

由域名、运营单位以及公钥等组成的站点信息,加上权威机构生成的数字签名,就构成了本节的主角——数字证书(certificate)。HTTPS协议正是利用数字证书技术,来实现站点身份验证的。

您可能会说,如果权威机构的公钥被人调包,那数字证书也就不起保护作用了。确实如此!不过,权威机构的公钥通常以根证书的形式预装在操作系统里面,黑客很难对它做手脚。这也从层面说明使用正版系统的重要性,因为盗版系统很有可能会被人做手脚。

首先,权威机构需要生成一对密钥,对应图中红色那对(pem文件):

1opensslgenrsa-outcakey.pem2048然后,生成根证书签发申请文件(csr文件):

1opensslx509-req-days3650-sha1-extensionsv3_ca-signkeycakey.pem-inca.csr-outca.cer这一步生成的cer文件就是根证书文件,它的主要作用是承载权威机构公钥,以便预装在操作系统或者其他终端。它同样会包含权威机构的信息,公钥,以及对应的签名。

首先,站点管理员生成一对密钥,对应图中黄色那对:

1opensslgenrsa-outsitekey.pem2048然后,生成证书签发申请文件(csr文件):

opensslreq-new-keysitekey.pem-outsite.csr-subj'/C=CN/ST=Guangdong/L=Guangzhou/O=fasionchan/OU=website/CN=fasionchan.com'同样,证书申请文件包含站点信息和公钥,不再赘述。站点管理员将证书申请文件发给权威机构审核,对应图示中的步骤②。

权威机构对申请进行审核,审核通过则用自己的私钥对它进行签名,生成证书(cer文件):

1opensslx509-req-days365-sha1-extensionsv3_req-CAca.cer-CAkeycakey.pem-CAserialca.srl-CAcreateserial-insite.csr-outsite.cer证书中保存着包括公钥在内的站点信息,以及权威机构对这些信息的签名(图示步骤③)。管理员接到权威机构颁发的证书,就可以部署网站了。

客户端浏览器访问站点,服务端会将其证书发给客户端。客户端先对证书签名进行验证,步骤如下:

调用openssl工具,一行命令即可完成签名验证:

1opensslverify-CAfileca.cersite.cer总结数字证书是支撑互联网身份认证的重要技术手段,可以简单理解成经过CA权威结构签名认证过的站点信息。由于经过CA签名,第三方无法通过伪造手段冒充身份。

THE END
1.什么是TLS证书?如何使用证书进行身份验证?TLS(传输层安全)证书是用于加密通信和验证通信双方身份的一种安全证书。TLS证书可以用于HTTPS协议,用于保护网站或应用程序与用户之间的通信安全。TLS证书包含了一些关键信息,例如证书持有者的公钥、证书持有者的身份信息、证书的有效期等。 使用TLS证书进行身份验证的过程如下: 客户端发起连接请求:客户端向服务端发起连接https://www.mbalib.com/ask/question-b5a5c3e2a5f8d2a9582207d107c1541b.html
2.该证书无效不能用于验证此web站点的身份阿里云为您提供该证书无效不能用于验证此web站点的身份相关的19276条产品文档内容及常见问题解答内容,还有等云计算产品文档及常见问题解答。如果您想了解更多云计算产品,就来阿里云帮助文档查看吧,阿里云帮助文档地址https://help.aliyun.com/。https://help.aliyun.com/wordpower/5705748-1.html
3.服务器身份验证当您的设备或其他客户端尝试连接时 AWS IoT Core, AWS IoT Core 服务器将发送一个 X.509 证书,您的设备将使用该证书对服务器进行身份验证。身份验证是通过验证 X.509 证书链在TLS层上进行的。这与您访问时浏览器使用的方法相同HTTPSURL。如果要使用您自己的证书颁发机构提供的证书,请参阅管理CA 证书。 当您https://docs.aws.amazon.com/zh_cn/iot/latest/developerguide/server-authentication.html
4.如何选择三种验证类型的https证书选择用于身份验证的证书https证书验证类型的选择主要取决于您要加密其网站的企业或组织的类型。个人或博客类的网站选择DV SSL证书就足够了。 另一方面,如果您是为事业单位机构,非营利组织或运营受限的注册商业实体购买的,则可能要考虑OVSSL证书。涉及到在线交易、可识别个人身份或敏感信息的较大企业必须选择EV SSL证书。 https://blog.csdn.net/weixin_43762887/article/details/114526188
5.IPsec使用证书身份验证进行配置要进行证书身份验证,您需要在您的FSxONTAP文件系统上生成并安装来自证书颁发机构的证书,以及将访问文件系统数据的客户端。以下示例 Amazon Private Certificate Authority 用于设置私有证书颁发机构,并生成要安装在文件系统和客户端上的证书。使用 Amazon Private Certificate Authority,您可以创建由根证书颁发机构和从属证书https://docs.amazonaws.cn/fsx/latest/ONTAPGuide/config-ipsec-ca-auth.html
6.什么是SSL双向认证,与单向认证证书有什么区别?是用于用户浏览器和网站服务器之间的数据传输加密,实现互联网传输安全保护,大多数情况下指的是服务器证书。服务器证书是用于向浏览器客户端验证服务器,这种是属于单向认证的SSL证书。但是,如果服务器需要对客户端进行身份验证,该怎么办?这就需要双向认证证书。 https://maimai.cn/article/detail?fid=1563723342&efid=22hpZvd6d4O3gruA01YrTA
7.HTTPS权威指南:在服务器和Web应用上部署SSL/TLS和PKI(2) 验证出示的证书,或使用其他方式进行身份验证。 (3) 对将用于保护会话的共享主密钥达成一致。 (4) 验证握手消息并未被第三方团体修改。 注意 在实际使用中,第2步和第3步都是密钥交换(更通用的说法是密钥生成)的一部分,密钥交换是一个单独的步骤。我更喜欢将它们分开来说,用以强调协议的安全性取决于正确https://www.ituring.com.cn/book/tupubarticle/11135
8.什么是相互身份验证TLS(mTLS)?mTLS如何运作如何使用?相互身份验证传输层安全协议(mTLS)是一种在网络通信中用于确保通信双方身份验证和数据机密性的协议。它建立在传输层安全协议(TLS)的基础之上,通过在TLS握手过程中进行双方证书的互相验证,以确保通信双方的身份合法和可信。在mTLS中,通。 币界网报道: 相互身份验证传输层安全协议(mTLS)是一种在网络通信中用于确保通信https://www.528btc.com/college/1696744275134611.html
9.WorkspaceONEBoxer的应用程序配置AuthenticationType 字符串 证书 当身份验证类型设置为证书时,如果为 Exchange Server 配置了身份验证证书,则将自动启用基于证书的身份验证并对用户进行身份验证。OnlineMeetingsCBAEnabled 是基于帐户的 KVP,用于从适用于 Android 的 Workspace ONE Boxer 到 Microsoft Teams 和 Zoom 会议的现代身份验证。注意https://docs.vmware.com/cn/VMware-Workspace-ONE-UEM/services/Boxer_Admin_Guide/GUID-ApplicationConfigurations.html
10.配置X.509证书身份验证—GeoServer2.24.xUserManual证书身份验证涉及使用公钥/私钥来标识自己。与基本用户名和密码方案相比,这是一个更安全的替代方案。 X.509是一个定义良好的公钥证书格式标准。本教程将介绍设置X.509证书身份验证的过程。 先决条件? 本教程假设: 支持使用客户端证书进行身份验证的Web浏览器,也称为“双向SSL”。本教程使用火狐. https://www.osgeo.cn/geoserver-user-manual/security/tutorials/cert/index.html
11.金山办公技能认证隐私政策为帮助您成为我们的用户,即完成账号创建,以便我们为您提供注册我们用户服务,我们为您提供了多种注册渠道供您自行选择。当您选择使用手机号码或电子邮箱注册时,您需要向我们提供您的手机号码、电子邮箱地址及密码,我们使用这类信息发送验证码信息以供您提交验证身份是否有效。 https://www.wps.cn/privacy/kos
12.上海市数字证书认证中心有限公司产品介绍行业动态代码签名证书(Code Signing Certificates)针对程序代码和内容建立了一种数字化的验证及保护,用于识别和验证您的身份与您的代码,并保证代码自添加签名后未被篡改。可在您的代码被用户下载、安装或运行时,通过系统显示您的身份信息,大幅提高代码的安全性和可信性。 https://www.sheca.com/industry/c5c686992d20430eb603206f03f64b22
13.什么是相互身份验证?双向身份验证CloudflareSSH 可以使用公钥身份验证或证书身份验证。换句话说,在 SSH 中可以用公钥或公钥证书进行相互身份验证。 TLS:虽然默认情况下 TLS 不会相互验证连接的两端,但它可以用于此目的。Mutual TLS (mTLS) 是最常用的相互身份验证类型之一。在 mTLS 中,连接的两端都有一个 TLS 证书。mTLS 常被用于 API 安全、IoT 安全和https://www.cloudflare-cn.com/learning/access-management/what-is-mutual-authentication/
14.什么是身份验证?Cloudflare额外的身份验证因素 除了上面列出的三个主要因素之外,安全行业的一些成员还提出或使用了额外的身份验证因素。其中两个额外因素是位置(用户在哪里)和时间(他们访问系统的时间)。 通过数字证书验证身份 除了使用上述身份验证因素之外,还可以向已知和受信任的实体颁发数字证书。数字证书是一个小的数字文件,其中包含用于验证https://www.cloudflare.com/zh-cn/learning/access-management/what-is-authentication/
15.基于属性的云计算远程证明认证研究AET本文介绍了基于云计算下的TPM框架实现的基于属性的云计算远程证明,在进行属性远程证明过程中,采用了属性权威中心作为可信第三方,对云平台的配置计算其满足的属性,并能够验证属性证书的可靠性。此外,本文基于可信第三方AIK证书中心对用户和平台身份进行认证。针对属性证书验证中的签密过程,本文做了缓存处理,减少了签密算法http://www.chinaaet.com/article/3000016262
16.什么是radius认证服务器?Worktile社区身份验证:Radius认证服务器可以提供各种不同的身份验证方法,如基于口令(用户名和密码)、证书、令牌等。用户在连接到网络后,通过提供相应的凭证来进行身份验证,并验证其合法性。 Radius(Remote Authentication Dial-In User Service)是一种用于网络身份认证和授权的协议。而Radius认证服务器是指用来进行Radius协议认证的服https://worktile.com/kb/ask/1389037.html
17.什么是相互身份验证TLS(mTLS)?mTLS如何运作如何使用?相互TLS 简称 mTLS,是一种相互身份验证的方法。mTLS 通过验证他们都拥有正确的私人密钥来确保网络连接两端的各方都是他们声称的身份。他们各自的 TLS 证书中的信息提供了额外的验证。 mTLS 通常被用于零信任安全框架*,以验证组织内的用户、设备和服务器。它也可以帮助保持 API 的安全。 https://www.jb51.net/blockchain/888058.html
18.什么是ca证书?ssl证书与ca证书的区别有哪些?聚名资讯CA 证书是由认证机构(CA,Certificate Authority)签发的数字证书,用于验证网站或服务器的身份和加密通信。CA 是一个可信任的第三方实体,其责任是验证证书请求者的身份,并签发证书来证明该身份的真实性。 SSL 证书是一种由 CA 签发的特定类型的数字证书,用于保护网站和服务器的安全通信。SSL(Secure Sockets Layer)是https://www.juming.com/zx/19849.html
19.HTTP转HTTPS—使用OpenSSL创建自签名SSL证书以及Tomcat配置SSLhttps协议中身份认证的部分是由数字证书来完成的,证书由公钥、证书主体、数字签名等内容组成,在客户端发起SSL请求后,服务端会将数字证书发给客户端,客户端会对证书进行验证,并获取用于秘钥交换的非对称密钥。 数字证书有两个作用: 1)身份授权。确保浏览器访问的网站是经过CA验证的可信任的网站。 2)分发公钥。每个数https://cloud.tencent.com/developer/article/1558378