[信息安全] 2.密码工具箱(续)

  • 时间:
  • 浏览:0
  • 来源:神彩大发快3_彩神大发快3官方

伪随机数的应用系统进程底部形态能非要说很简单,但会 其中的每个环节全是不可能 成为被攻击的突破口。

看一下混合密码的加密过程:

总结一下上篇的数字签名遗留下那此的问提和上一小节遗留的那此的问提,汇总在一同的核心但会 验证公钥需用是真正的发送者提供的。

上一篇中介绍到了对称密码(比如AES)和公钥密码(比如RSA),公钥密码补救了对称密码的密钥配送那此的问提(觉得是绕过了)。

混合密码系统非要说是降低了单纯的公钥密码带来的成本那此的问提,而公钥密码遗留的公钥认证那此的问提,在混合密码系统中依然指在。一同使用了伪随机数生成器,混合密码系统也会面临针对伪随机生成器的或多或少攻击。

上图是用伪随机数生成器生成时候加密用的会话密钥,来加密明文;一同,把你什儿 会话密钥作为公钥密码中的明文,用公钥加密;但会 把这时候密文组合在一同,一同发送给接收方。这里的公钥密钥起到的是时候保证会话密钥机密性的作用,并未直接用来加密真正的明文(又想起来搞笑的话:计算机科学的中任何那此的问提,都能非要通过打上去时候上面层来补救,此言不虚;在另外时候[认证授权]系列的博客中,笔者就但会 的体会)。来看以下接收方解密的流程:

PKCS:https://en.wikipedia.org/wiki/PKCS

随机数大伙儿儿不陌生,但会 随机数怎样才能会会会么会就和信息安全扯上关系了呢?觉得想一想大伙儿儿在给另一方的账号设置密码的时候 ,是全是都会尽量的让另一方不用轻易的猜到大伙儿儿的密码,觉得并全是随机,但会 它就像是满足了随机数的时候底部形态:不可预测性。这么对于信息安全来说来说,也是用到了你什儿 特定,当然还有随机数的随机性不可重复性这两点底部形态。

证书得以运行的你什儿 基本的体系称为PKI(Public Key Infrastructure),即公钥基础设施,它是一套以公钥密码为核心的技术规范标准的时候代名词。总体来说,PKI由1个帕累托图组成:PKI的消费者;认证机构(Certificate Authority,简称CA);证书仓库。大伙儿儿常说的CA证书,但会 由CA机构签名颁发的证书。CA负责生成密钥对(也可由用户提供)、负责对用户身份进行认证、负责生成并颁发证书、负责作废证书(https://en.wikipedia.org/wiki/Certificate_revocation_list)。CA是由层级底部形态的,正是你什儿 层级底部形态构建了一套证书的验证链条,其中Root CA的证书是自签名的(也但会 另一方证明另一方),其下级机构逐层签名,构成时候金字塔似的底部形态。当然你平时另一方不用 非要生成自签名的证书,但会 除了你另一方,或多或少地方是不认可你什儿 证书的(就好比你拿一张白纸,写上这是60 块,但会 别人就相信你它值60 块吗?),我想要得以正常运行,是需用用户主动确认表示认可你什儿 证书才行。比如大伙儿儿用Fiddler抓取HTTPS的内容的时候 ,觉得Fiddler另一方生成了时候自签名的根证书,但会 你主动的确认信赖它,只但会 ,证书构造的你什儿 验证链不用 得以正常运行。想起来1260 6就另一方搞了时候自签名的证书,想必大伙儿儿全是印象吧,,,需用另一方下载下来证书,但会 导入到计算机中,再确认信任它;觉得这也是时候很尴尬的事情,全球最大的几家CA清一色全是美国但会 俄罗斯。

好了,分析完数字证书这套体系为那此不用 运转起来为大伙儿儿提供公钥的认证的保障时候 。看看计算机中的公钥证书是那此样的,大伙儿儿拿https://www.google.com的做例子(F12,打开安全选项卡即可),证书的相关信息如下:

伪随机数生成器:https://en.wikipedia.org/wiki/Random_number_generation

Internet X.60 9 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile:https://tools.ietf.org/html/rfc5260

本篇完善了密码相关的工具箱,增加了伪随机数,混合密码系统,以及通过转移那此的问提而补救公钥的认证那此的问提的数字证书,以及数字证书的工作机制,和其相关的或多或少细节点(当然全是一笔带过了,想了解更详细的信息还需读者自行研究)。本系列后续的会拿你什儿 工具箱来剖析HTTPS是怎样才能工作的。如有错误指出,欢迎指正!

X.60 9 :https://en.wikipedia.org/wiki/X.60 9

在C#能非要使用的伪随机数生成法律办法:

这么不可能 作为接收方我想要回复发送方的消息怎样才能会会会么会办?按照公钥密码的机制,我是非要用另一方的私钥加密信息发出去的,不可能 拥有持有我的公钥的任何人全是能非要解密你什儿 信息的。统统,不可能 仅使用公钥密码,这么就需用通信双方都持有对方的公钥+另一方的私钥。你什儿 成本是很高昂的,首先公钥加密解密的数率是会比对称密码加密低2~1个数量级,也但会 几百倍的差异;其次双方都面临着针对公钥的认证那此的问提(补救上面人攻击)。

本文版权归作者和博客园共有,欢迎转载,但未经作者同意需用保留此段声明,且在文章页面明显位置给出原文连接,但会 保留追究法律责任的权利。

 证书除了中有 公钥、签名算法和证书的层级底部形态(比如google你什儿 的顶级颁发机构是GeoTurst Global CA),还有或多或少证书的序号,版本信息,有效时间等等。那此信息由时候证书数据格式的标准规范来规定的,时候很通用的格式是x60 9,感兴趣的能非要了解一下,这里就不介绍了。C#中有 统统X60 9相关的类能非要供大伙儿儿使用。比如来读取一下上述google的你什儿 证书信息(我把证书导出为了base64格式的数据,能非要方便的直接中有 在代码中):

常见到的十几条 证书扩展名:

统统,我想要补救你什儿 那此的问提单靠纯粹的技术手段是行不通了,大伙儿儿陷入了时候死循环,但会 引入了时候社会学中的信任体系来转移大伙儿儿所面临的那此的问提,即证书以及相关体系底部形态,提供逐级的信任保障。大伙儿儿先看看证书是时候那此东西,以及证书的这套相关体系怎样才能提供你什儿 “信任”保障的。

生成器另一方维护时候内部内部结构状态,一同接受时候随机数的种子,来生成具体的随机数。具体是实现法律办法有利用密码散列函数(单向性支撑了不可预测性)、利用加密密钥作为随机数的种子的一帕累托图(密钥的机密性支持了不可预测性)等等。

一般状态下,Guid即可满足要求(但会 非要固定的16byte),如需更高数率的伪随机数,能非要使用 RNGCryptoServiceProvider 来生成任意长度的随机数。

证书的相关格式以及交换标准在PKCS(Public-Key Cryptography Standards)中有 详细的定义。常见的证书编码格式:

针对密码相关的基本工具介绍就暂时能非要告一段落了,回顾总结以下有这6个(对称密码、公钥密钥、密码散列函数、消息认证码、数字签名、伪随机数生成器)基本工具,下面大伙儿儿用这6个基本工具来组合或多或少高级的工具出来。

相对于加密过程来说,是详细反过来的时候过程,就不再解释了。看一段C#中实际使用的代码:

根据生成的随机数是与否满足这3点要求(1<2<3,依次增强)。大致能非要划分伪弱伪随机数,强伪随机数,真随机数(数率依次增大)。

SSL/TLS:最常见的时候应用场景了,后续会介绍。

代码:https://github.com/linianhui/code/blob/master/src/SecurityHelper.cs

计算机领域的证书和现实社会中的各种证书的工作原理是详细一样的,不可能 其工作在计算机体系中,也被称为“数字证书”。计算机中数字证书是时候 定义的:由证书授权中心进行数字签名的,中有 公钥以及其拥有者信息的时候文件。注意:证书的真正用途在于为公钥提供认证功能,统统但会 也叫做公钥证书。大伙儿儿使用你什儿 被称做证书的文件来转移大伙儿儿在信息安全层面所面临的死循环的那此的问提为那此说是转移而全是补救呢,这是不可能 你拿到时候证书后,也需用进行校验吧,而校验又需用时候真正的发送者提供的公钥才行,这么你就需用另外时候证书来保障,但会 你就会无缘无故的循环下去,,,这也是为那此在计算机体系中有 根证书的指在,以及相关的证书授权认证中心会是时候层级的关系,这但会 为了在你不信任时候证书的时候 ,能非要继续往上时候层级来寻求验证,直到根证书。这么那此的问提就来了,假使 你但会 相信根证书怎样才能会会会么会办?这觉得是时候无法回答的那此的问提,笔者想起来时候 读《人类简史》的时候 ,但会 至今烙印在脑海中的观点:“如今的社会,是时候由想象所构建的秩序”。觉得想一想,也觉得是这么。比如你怎样才能会会会么会会相信国家的指在呢,怎样才能会会会么会会会把钱存进银行呢。你拿下来一张毛爷爷(从物理的深度来看,它但会 一张纸而已)为那此就能从饭店买来一堆食物,这觉得全是你在相信它,对方也相信它,人及都相信它,背后有银行体系为其担保,这么那此为银行提供担保呢,背后有大伙儿儿的国家提供保障,这但会 时候信任的体系。计算机体系的数字证书也是基于这么时候一同的想象所构建的信任秩序。补充时候新闻:Google 回应将详细撤除对沃通和 StartCom 所有证书的信任(https://news.cnblogs.com/n/573409/),这但会 对方不再信任你的根证书的状态。

大伙儿儿从一出生就会和各种各样的证书打交道,比如出生证,学生证,身份证,驾照,学位证等等,它们就但会 一同点,但会 有你在另一方的真实信息以及开具证明的机构的盖章。这么在需用提供证明你全是你在的地方,出具你什儿 证书即可,不可能 对方不信任你的证书,则能非要到开具证书的机构来校验。假使 你提供时候假证,而对方这么严格的审查搞笑的话,或许你是能非要蒙混过关的。

CRL(Certificate revocation list):https://en.wikipedia.org/wiki/Certificate_revocation_list

在上一篇1.密码工具箱中介绍了或多或少密码技术相关的或多或少基本工具,一同遗留了时候鸡生蛋蛋生鸡的那此的问提和公钥的认证那此的问提( ̄▽ ̄)",这里再补充十几条 常用的工具先。

这么大伙儿儿能非要结合时候 提到的或多或少工具,组合一下,来得到时候性价比高的加密通信法律办法,即使用以下时候基本工具,组合时候高级点的工具(一同具备对称密码和公钥密码的优点):

仅仅依靠软件大伙儿儿是无法生成真随机数的,这里大伙儿儿只关注以下伪随机数(即强伪随机数的生成,可用于密码学安全)的生成,比如时候典型的生成器如下:

公钥证书:https://en.wikipedia.org/wiki/Public_key_certificate

数字签名遗留的那此的问提:数字签名能非要识别出篡改和伪装,还能非要补救回应,也但会 说数字签名能非要提供信息安全中的详细性认证不可回应性这3点的保障(很强大有木有)。然而你什儿 切都基于时候假设“公钥需用是真正的发送者提供的”,和公钥密钥陷入了一同候那此的问提。大伙儿儿发现另一方陷入了时候死循环:数字签名能非要用来识别篡改、伪装以及回应的,但会 为此大伙儿儿又需用从时候这么被伪装的真正的发送者那里得到时候这么被篡改的密钥......这是时候鸡生蛋蛋生鸡的那此的问提。