网络通信之——Https数字证书

数据通信 系列目录

  1. 网络通信之——RSA加密签名
  2. 网络通信之——Https数字证书
  3. 网络通信之——SSL与TLS
  4. 数字证书中签名算法、签名哈希算法区别?

数字证书

  • 前言
  • 证书构成
  • 证书的发布及使用流程
  • Android开发中的运用
  • 总结

博客创建时间:2020.05.11
博客更新时间:2021.02.23


前言

TLS
TLS证书信任,就是从用户证书到中间证书,再到根证书,这样一个溯源的过程,浏览器需要找到道受信任的根证书,才会信任你的证书。
TLS(传输层安全)是更为安全的升级版 SSL。由于 SSL 这一术语更为常用,因此我们通常仍将安全证书称作 SSL。TLS 证书一般有ECC、RSA 或 DSA 三种加密方式可以选择,RSA加密只是其中一种方式

数字证书可以确认其内含的公钥确实是这个证书的所有者(Subject)的,或者证书可以用来确认对方的身份。也就是说,我们拿到一个数字证书,我们可以判断出这个数字证书到底是谁的。

确保了证书的安全可靠才能确保,Https通信传递信息的安全可靠。


证书构成

先通过google浏览器查看百度翻译的数字证书
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
主要的几个参数:
1. Issuer CA (证书的发布机构)
指出什么机构颁发的证书,即证书创建者。截图中是 TrustAsia TLS RSA CA这个证书颁发机构。

在证书的发布机构发布证书时,证书的指纹和指纹算法都会加密后再和证书放到一起发布,以防有人修改指纹后伪造相应的数字证书。这里的是用发证机构自己的私钥进行加密的

用户获得数字证书后,可以用证书发布机构的公钥(RSA算法)对指纹和指纹算法解密,也就是说证书发布机构除了给别人发布证书外,他自己本身也有自己的证书。

注意
证书发布机构的证书在我们安装操作系统时,数字证书就已经安装在电脑中了。微软等操作系统开发商会根据一些权威机构的评估选取信誉较好且通过安全认证的证书发布机构,将他们的证书默认安装在系统中。证书机构持有自己数字证书对应的私钥,通过这个私钥加密他发布的证书的指纹(证书hash值) 作为证书的数字签名。


证书有效期: 有效期一般12个月起
证书使用者:这里是fanyi.baidu.com


2. 指纹
在这里插入图片描述
证书发布之前会对对证书进行Hash值计算,然后继续用证书签名算法和私钥对hash值进行加密获得结果为指纹

3. 证书格式RSA
RSA一种非对称的加密方法

4. 证书有效期
证书的有效开始时间到截止时间,有效期一般12个月起

5. 证书使用者(Subject )
这里是fanyi.baidu.com,一般是指申请证书的网站域名

6. 公钥
2048bits的16进制的数组数据,公钥进行server数据的解密

7. 签名算法(Signature algorithm)
截图中采用的是sha256RSA算法, 指的是这个证书的数字签名加密算法。当client从server中获取到加密数据,通过该算法和公钥解密后获取加密的数字签名数据,其内含通信数据的hash值。专用于防止传输过程中,内容信息和签名hash一起被篡改

证书发布机构CA,会使用数字证书的签名算法对证书进行加密,一般电脑系统会自带CA的证书,该证书中有公钥和签名算法用于解密办法

加密信息是证书机构用签名算法的私钥进行加密的,其签名算法和公钥用于解密颁发的证书(如 百度公司颁发的证书)。

8. 签名哈希算法(Signature hash algorithm)
又称指纹算法,截图中采用的是sha256算法,通过该算法可以对信息内容进行hash值V2得计算。对比签名算法解密获得的Hash值V1,如果V1与V2一致则信息内容未被修改过,反之亦反。

在证书的发布过程中,发布者会根据指纹算法(一种hash算法)算出整个证书的hash值(指纹),并将指纹和指纹算法放在证书中。hash值是通过签名算法的私钥进行加密的,所以想要获得证书中自带的hash值,需要使用签名算法和公钥解密获得自带的hash值。

签名算法是为了确保指纹hash值得准确性,即是为了验证内容信息的指纹值传递的和自我计算出来的指纹值一致,确保内容信息未被篡改过。**


证书的发布及使用流程

在这里插入图片描述

信息传递验证
在验证完证书安全可用后,服务端和客户端就各自掌握证书的私钥和公钥达到了加密通信要求。例如某网站向客户端发送信息"*************",先验证hash值一致,然后客户端通过签名算法和公钥就能解密出传递的信息,同理服务端收到客户端发送的消息后,验证完hash值一致后根据签名算法和私钥就能解密出传递的信息。

证书的Subject判定
数字证书可以保证数字证书里的公钥确实是这个证书的所有者(Subject)的,或者证书可以用来确认对方的身份。
我们为什么能判定证书的Subject呢?

  1. 拿到数字证书放入电脑或移动端后,根据证书的CA名字找到对应证书发布机构的数字证书(含公钥和签名算法),进行数字签名解密。
  2. 通过发证机构的公钥进行解码获取该证书的指纹和指纹算法,然后通证书的签名算法和公钥解密指纹,拿到证书的hash值;通过指纹算法再次计算该证书的指纹获取真实指纹hash值,如果证书包含的指纹和真实指纹一致,则说明证书未被篡改过,证书真实可靠,那么证书中的subject真实可靠。

Android开发中的运用

在Android软件与后台服务器进行通信过程中,为了数据的安全,常采用证书锁定方案。

证书锁定
用来限制哪些证书和证书颁发机构是可信任的。需要我们直接在代码中固定写死使用某个服务器的证书,然后用自定义的信任存储去代替系统系统自带的,再去连接我们的服务器,我们将这种做法称之为证书锁定。

换言之,证书锁定就是在代码中验证当前服务器是否持有某张指定的证书,如果不是则强行断开链接。

证书锁定好处:

  1. 增加软件破解难度
  2. 省了购买证书的费用。

Android中的证书分类

  1. 由android认可的证书颁发机构或者该结构下属的机构颁发的证书,比如Symantec,Go Daddy等机构,约150多个。更多的自行在手机“设置->安全->信任的凭据”中查看
  2. 没有被android所认可的证书机构所颁发的证书
  3. 自己颁发的证书

这三类证书中,只有第一种在使用中不会出现安全提示,不会抛出异常。

在开发中如果想用自签名的证书,客户端不信任服务器,会抛出异常:javax.net.ssl.SSLHandshakeException。

为此,我们需要自定义信任处理器(TrustManager)来替代系统默认的信任处理器,这样我们才能正常的使用自定义的正说或者非android认可的证书颁发机构颁发的证书。


自签名证书设置

  1. 将证书添加到工程中(放在res/raw目录或assets目录下)
  2. 自定义信任管理器TrustManager
  3. 用自定义TrustManager代替系统默认的信任管理器

java本身支持的证书格式jks,但是遗憾的是在android当中并不支持jks格式正式,而是需要bks格式的证书,因此需要将jks转成bks格式证书。

这里说的是证书不是签名文件的jks,概念不要弄混了


总结

  1. 证书由专业发证机构颁发,由多种信息参数如使用者、有效期、签名算法等多种信息组成。
  2. 证书公钥是为了对传递的信息进行RSA解密获取加密指纹和指纹算法
  3. 证书在发布之前会对证书进行获得Hash值的指纹计算,将Hash值继续加密后得到指纹
  4. 签名算法是为了加密原始证书指纹,确保源信息指纹不会被篡改。
  5. 指纹及指纹算法和签名算法有区别,但是他们的区别是指纹及指纹算法是为了确保证书的安全可靠性。 签名算法是为了确保传递的信息安全可靠。

相关链接

  1. 网络通信之——RSA加密签名
  2. 网络通信之——Https数字证书
  3. 网络通信之——SSL与TLS
  4. 数字证书中签名算法、签名哈希算法区别?

扩展链接:

  1. Android CameraX 使用入门
  2. ART与Dalvik、JVM之间的关系你懂了吗?

扩展训练:

  1. 了解 CA 证书的用途 ?

博客书写不易,您的点赞收藏是我前进的动力,千万别忘记点赞、 收藏 ^ _ ^ !

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/16664.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网工必考:HCIP认证(华为认证ICT高级网络工程师)

华为HCIP课程介绍 HCIP认证概述 HCIP-R&S认证定位于中小型网络的构建和管理。 HCIP-R&S认证包括但不限于:网络基础知识,交换机和路由器原理,TCP/IP协议簇&#…

VBA宏实现Word论文自动排版

一、灵感与动机 作为一名即将毕业的大四学生,不仅经历了设计、编写系统的痛苦,还经历了撰写论文的烦恼,尤其是最后论文排版阶段,非常的繁琐和费时。所以我就希望可以有一个自动排版的“脚本”,一开始认为可以通过Pytho…

chatgpt赋能python:Python自动排版Word文档:提高生产效率的神奇工具

Python自动排版Word文档:提高生产效率的神奇工具 介绍 随着电子文档的普及,Word文档成为了各种场合中最常用的文档格式。尤其在企业中,各种报告、规范、合同等文档的排版工作常常会占据很大比重,但是传统的手工排版往往效率低下…

YOLOv5全面解析教程⑥:模型训练流程详解

作者 | Fengwen、BBuf 欢迎Star、试用One-YOLOv5: https://github.com/Oneflow-Inc/one-yolov5 1 结构项目预览 2 安装 git clone https://github.com/Oneflow-Inc/one-yolov5 # clone cd one-yolov5 pip install -r requirements.txt # install 3 训练 两种训练…

发布4大“业界首个”产品,华为让数据中心变革开启“狂飙”模式

华为聚焦数字基础设施创新,通过4大“业界首个”产品的发布,不仅将引领新型数据中心发展,也将进一步支持企业的数字化转型,释放数字生产力。 在全球经济增速放缓的今天,数字经济正在成为经济增长的新引擎,为…

数据治理在学术上的发展史以及未来展望

数据治理是大数据领域中非常重要的一环,从早期的学术研究到如今的各大企业落地实践,经历了漫长的过程,数据治理的实践落地本身也是一场马拉松。 从百度学术通过精确关键词匹配,搜索中文期刊的“数据治理” 和外文期刊的“data gov…

于变革时代探寻破局之光 | LeaTech全球CTO领导力峰会圆满落幕

引言 2023 年 3 月 4 日,腾讯云 TVP 与 51CTO 联合主办的 LeaTech 全球 CTO 领导力峰会于上海扬子江丽笙精选酒店圆满落幕。 本届峰会聚集了腾讯云 TVP 技术专家、TVP 行业大使、CTO 训练营导师、CTO 训练营历届校友,以及来自各个领域和行业的技术领导者…

【原创】理解ChatGPT之注意力机制和Transformer入门

作者:黑夜路人 时间:2023年4月27日 想要连贯学习本内容请阅读之前文章: 【原创】理解ChatGPT之GPT工作原理 【原创】理解ChatGPT之机器学习入门 【原创】AIGC之 ChatGPT 高级使用技巧 GPT是什么意思 GPT的全称是 Generative Pre-trained …

新传专业需要计算机二级吗,大学生有必要去考取计算机二级证书吗?

满意答案 JKSNX 2020.09.22 采纳率:41% 等级:12 已帮助:4161人 这是个很常见的问题。每年总有两个月,学校的教务会发一则“计算机二级报考通知”,大家便开始讨论计算机二级有没有用,身体却很诚实地交上7…

跨考安大计算机研究生难吗,关于跨考安大新传这件事,你现在纠结的问题我们都知道!...

灵魂拷问:你为什么想要跨考新传? 因为兴趣…?热爱…?新闻理想…? 还是因为…? (开玩笑啦)即便有以上因素存在,大家选择了新传也有大部分原因是因为喜欢,比如说我,虽然综合…

新传工作运用计算机吗,Windows 7正式退休,这些解决办法你必须了解

2020年1月14日,微软Windows 7系统正式停止技术支持,你的计算机将不会中断或停止工作,但如果你的Windows 7计算机出现问题,它将不再收到任何问题的技术支持、软件更新、安全更新或修复。 现在微软在官方网站上公布了最新的Windows …

新传工作运用计算机吗,计算机等现代办公技术运用给文秘工作带来的新思考1...

电子计算机技术的运用发展被称为人类科学技术发展的"第三次革命",计算机技术在办公室的普及运用也使秘书工作由"笔杆子"向"键盘子"转变,计算机的运用操作成为了现代从业秘书的必备技能,与运而生的办公自动化大…

新传要不要学计算机,大学新生入学要带电脑吗?学长给出建议,不知道的会很“吃亏”...

教之而不受,虽强告之无益。譬之以水投石,必不纳也,今夫石田虽水润沃,其干可立待者,以其不纳故也。——张载 01前言 今年高考结束已经走了一段时间了,虽然成绩都还没有被公布,但相信很多考生的心…

服开与编排,老兵新传

前段时间,有同学问:编排与服开是什么关系?现在运营商都建设编排系统,那是不是服务开通以后就退出 OSS 舞台了?为什么会出现编排?这些问题对于行业老兵来说感慨万千,而对于新兵来说就要通过追溯其…

考研最卷的专业,我提名新传

不少专业的研究生统招考试都是一场“千军万马过独木桥”的残酷竞争,只是有的专业卷得明明白白,而有的专业多少让人意想不到 ——“钱途”一般,却也能卷上天,比如新传。 新传,指的是新闻传播类学科,除了主要…

Hitachi Vantara老兵新传

Hitachi Vantara正在书写一部“老兵新传”! 所谓“老”,是指Hitachi Vantara的前身HDS(Hitachi Data Systems)资历老,它曾是企业级存储市场的领导者;何为“新”?Hitachi Vantara于2017年9月才正…

计算机知识讲座图片,计算机ppt辅导讲座

原标题:计算机ppt辅导讲座 2020年11月4日下午1:30,在竞秀南楼304,润园书院学习部请到了赵燕飞老师为大家带来了一次细致实用的计算机关于ppt的辅导讲座。同时也是为了丰富同学们的计算机知识,教同学们熟练运用计算机知识制作精美的ppt。本次讲…

【简单】使用ChatGPT和QT从零开始构建一个计算器应用

在这篇博文中,我将向大家展示如何使用ChatGPT和Qt来构建一个完整的计算器应用。我们将从零开始,逐步引导您完成整个项目,包括需求分析、软件设计、代码编写等环节。该项目代码全部由GPT编写,10分钟完成。 一,项目概述 本项目旨在…

太突然了,不会ChatGPT就被淘汰,很多公司开始行动了!

上周末分别和两拨朋友约了饭局。周六约的是国内最大ERP厂商的朋友,饭桌上大家聊的最多的话题就是ChatGPT,他们上面领导发话了,让尽快引入ChatGPT,寻求突破。周日约见的是一波搞游戏开发的朋友,聊的最多话题也是ChatGPT…

ChatGPT 大浪潮下,哪些行业会被淘汰?

在 ChatGPT 大浪潮下,随着新技术的不断涌现和应用,一些传统行业或者是不适应发展节奏的行业可能会被淘汰。 我们先来看看,以下是可能受到影响的一些行业: 1、银行和金融行业:区块链技术的发展和数字货币的出现使得原本…