我的编程空间,编程开发者的网络收藏夹
学习永远不晚

网络安全攻防:密码技术之数字证书

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

网络安全攻防:密码技术之数字证书

数字证书(CA证书)是由可信任的第三方权威机构(CA中心)颁发给个人或企业用户,用来验证身份、数据签名、数据加密等操作。CA证书是整个公钥基础设施(PKI,Public Key Infrastructure)体系的核心,目前国内CA中心由国家密码管理局管理,基本上每个省都有一个CA中心,用来签发省内CA证书和提供相关应用。

数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件。最简单的证书包含一个公开密钥、名称以及证书授权中心的数字签名。目前,数字证书均采用X.509国际标准。数字证书的结构包含如下信息。

版本号:书所遵循的X.509标准的版本。

序列号:唯一标识证书且由证书颁发机构颁发的编号。

证书算法标识:证书颁发机构用来对数字证书进行签名的特定公钥算法的名称。

颁发者名称:实际颁发该证书的证书颁发机构的标识。

有效期:数字证书保持有效的时间段,并包含起始日期和过期日期。

使用者名称:数字证书所有者的姓名。

使用者公钥信息:与数字证书所有者关联的公钥以及与该公钥关联的特定公钥算法。

颁发者唯一标识符:可以用来唯一标识数字证书颁发者的信息。

使用者唯一标识符:可以用来唯一标识数字证书所有者的信息。

扩充信息:与证书的使用和处理有关的其他信息。

证书颁发机构的数字签名:使用证书算法标识符字段中指定的算法以及证书颁发机构的私钥进行的实际数字签名。

数字证书就是对公钥加上认证机构的数字签名所构成的。要验证公钥的数字签名,需要通过某种途径获取认证机构自身的合法公钥。下面以数字签名和散列算法的实际应用例,来说明数字证书的基本用途。

(1)Bob有两把钥匙,一把是公钥,另一把是私钥。

(2)Bob把公钥送给他的朋友们Craol、Alice每人一把。

(3)Alice要给Bob写一封保密的信。她写完后用Bob的公钥加密,就可以达到保密的效果,如图1所示。

图1  Alice信件加密

(4)Bob收信后,用私钥解密,就看到了信件内容。这里要强调的是,只要Bob的私钥不泄露,这封信就是安全的,即使落在别人手里,也无法解密,如图2所示。

图2  信件解密

(5)Bob给Alice回信,决定采用“签名”写完后先用散列函数,生成信件的摘要(Digest),如图3所示。

图3  生成信件摘要

(6)然后,Bob使用私钥,对这个摘要加密,生成“数字签名”(Signature),如图4所示。

图4  生成数字签名

(7)Bob将这个签名,附在信件下面,一起发给Susan,如图5所示。

图5  附签名信件

(8)Alice 收信后,取下数字签名,用 Bob 的公钥解密,得到信件的摘要。由此证明,这封信确实是Bob发出的,如图6所示。

图6  公钥解密

(9)Alice再对信件本身使用散列函数,将得到的结果,与上一步得到的摘要进行对比。如果两者一致,就证明这封信未被修改过,如图7所示。

图7  修改验证

(10)复杂的情况出现了。Craol想欺骗Alice,他偷偷使用了Susan的电脑,用自己的公钥换走了Bob的公钥。此时,Alice实际拥有的是Craol的公钥,但是还以为这是Bob的公钥。因此,Craol 就可以冒充 Bob,用自己的私钥做成“数字签名”写信给 Alice,让 Alice用假的Bob公钥进行解密。

(11)后来,Alice感觉不对劲,发现自己无法确定公钥是否真的属于Bob。她想到了一个办法,要求Bob去找“证书中心”(CA,Certificate Authority),为公钥做认证。证书中心用自己的私钥,对Bob的公钥和一些相关信息一起加密,生成“数字证书”(Digital Certificate),如图8所示。

图8  生成数字证书

(12)Bob拿到数字证书以后,就可以放心了。以后再给Alice写信,只要在签名的同时,再附上数字证书就可以了,如图9所示。

图9  附证书信件

(13)Alice收信后,用CA的公钥解开数字证书,就可以拿到Bob真实的公钥了,然后就能证明“数字签名”是否真的是Bob签的,如图10所示。

图10  确认签名

基于数字证书的安全认证如下。

认证是安全通信的前提,如果认证出问题,A不是和A想要聊天的人B在聊天,而是和一个C(假冒B)在聊天,则接下来所有的安全措施都是白搭。以目前常用的数字证书(Digital Certificate)认证为例。

CA(Certificate Agent)存放A、B数字证书,在数字证书里包含有各自的RSA公钥与加密算法。

A、B各自保管自己的RSA私钥与加密算法,RSA公钥与私钥类似锁与钥匙的关系,即RSA私钥加密,可以用RSA公钥解密,反过来亦是如此。

A与B安全通信认证过程如下。

(1)A向CA请求B的数字证书。

(2)CA把B的数字证书做输入参数,生成一个散列。

(3)CA用自己的私钥加密散列,生成一个数字签名(Digital Signature)

(4)CA把数字签名附在B的数字证书之后,即B的数字证书+CA数字签名,发送给A。

(5)A拥有CA的公钥(预装或离线方式获得),可以解密CA的数字签名(CA私钥加密),得到散列,同时对接收到的 B 的数字证书做散列运算,也得到一个散列,如果两个散列相等,则认为此证书安全可靠,在传输途中没有被篡改,称这个过程为数据完整性(Data Integrity)保护。

(6)A请求认证B,B用自己的私钥加密自己的身份信息,发送给A,由于A已经从CA处获得B的公钥,所以可以解密B的加密报文。既然公钥与私钥是一对一的关系,由于只有B自己知道私钥,以此逻辑推断,A通信的对象为真实的B。

(7)B认证A的过程类似。 

 

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

网络安全攻防:密码技术之数字证书

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

网络安全攻防:密码技术之数字证书

数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件。最简单的证书包含一个公开密钥、名称以及证书授权中心的数字签名。

网络安全攻防:密码技术之公钥密码

对称密码可以实现对任意明文的高效加密,通常用于通信会话的加密,但随着对称加密应用越来越广,会话密钥的管理问题也随之面临挑战。

揭秘网络安全攻防战:信息收集和密码破解的黑客技巧与防护策略

今天的学习重点是网络安全基础知识,包括信息收集和弱口令密码破解。在信息收集方面,我们学习了目录信息的收集方法,特别是如何解析路径信息。在密码破解方面,我们讨论了使用简单的弱口令破解方法。同时,我也介绍了一些有效的防范渗透的方法。
网络安全2024-11-29

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录