`
jipengyun2008
  • 浏览: 32514 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

PKI安全技术

阅读更多
相关技术知识:
http://my.oschina.net/zhlmmc/blog/42109

下面通过一个案例一步步地来剖析这个问题 :
甲想将一份合同文件通过 Internet 发给远在国外的乙,此 合同文件对双方非常重要,不能有丝毫差错,而且此文件绝对不能被其他人得知其内容。如何才能实现这个合同的安全发送?
问题 1: 最自然的想法是,甲必须对文件加密才能保证不被其他人查看其内容,那么 , 到底应该用什么加密技术,才能使合同传送既安全又快速呢 ?
    可以采用一些成熟的对称加密算法 , 如 DES 、 3DES 、 RC5 等对文件加密。对称加密采用了对称密码编码技术,它的特点是文件加密和解密使用相同的密钥,即加密密钥也可以用做解密密钥,这种方法在密码学中叫做对称加密算法,

问题 2: 如果黑客截获此文件,是否用同一算法就可以解密此文件呢 ?
    不可以 , 因为加密和解密均需要两个组件 : 加密算法和对称密钥 , 加密算法需要用一个对称密钥来解密 , 黑客并不知道此密钥。

问题 3: 既然黑客不知密钥,那么乙怎样才能安全地得到其密钥呢?用电话通知,若电话被偷听,通过 Internet 发此密钥给乙,可能被黑客截获,怎么办 ?
    方法是用非对称密钥算法加密对称密钥后进行传送。与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥( Public Key )和私有 密钥( Private Key )。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进 行加密,只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫做非对称加密算法 ( 公 / 私钥可由专门软件生 成 ) 。甲乙双方各有一对公 / 私钥,公钥可在 Internet 上传送,私钥自己保存。这样甲就可以用乙的公钥加密问题 1 中提到的对称加密算 法中的对称密钥。即使黑客截获到此密钥,也会因为黑客不知乙的私钥,而解不开对称密钥,因此也解不开密文,只有乙才能解开密文。

问题 4 :既然甲可以用乙的公钥加密其对称密钥,为什么不直接用乙的公钥加密其文件呢?这样不仅简单,而且省去了用对称加密算法加密文件的步骤?
    不可以这么做。因为非对称密码算法有两个缺点 : 加密速度慢 , 比对称加密算法慢 10 ~ 100 倍 , 因此只可用其加密小数 据 ( 如对称密钥 ) ,另外加密后会导致得到的密文变长。因此一般采用对称加密算法加密其文件 , 然后用非对称算法加密对称算法所用到的对称密钥。

问题 5 : 如果黑客截获到密文,同样也截获到用公钥加密的对称密钥,由于黑客无乙的私钥,因此他解不开对称密钥,但如果他用对称加密算法加密一份假文 件 , 并用乙的公钥加密一份假文件的对称密钥,并发给乙,乙会以为收到的是甲发送的文件,会用其私钥解密假文件 , 并很高兴地阅读其内容,但却不知已 经被替换。换句话说,乙并不知道这不是甲发给他的,怎么办 ?
    答案是用数字签名证明其身份。数字签名是通过散列算法 , 如 MD5 、 SHA-1 等算法从大块的数据中提取一个摘要。而从这个摘要中不能 通过散列算法恢复出任何一点原文,即得到的摘要不会透露出任何最初明文的信息,但如果原信息受到任何改动,得到的摘要却肯定会有所不同。因此甲可以对文件 进行散列算法得到摘要,并用自己的私钥加密 ( 因为非对称算法可逆,即用私钥可解开公钥加密的文件,反之亦然 ) ,这样即使黑客截获也无用。因为黑客 不会从摘要内获得任何信息,但乙却不一样,他可用甲的公钥解密,得到其摘要 ( 如果用甲的公钥能够解开此摘要,说明此摘要肯定是甲发的,因为只有甲的公 钥才能解开用甲的私钥加密的信息 , 而甲的私钥只有甲自己知道 ) ,并对收到的文件 ( 解密后的合同文件 ) 也进行同样的散列算法,通过比较其摘 要是否一样 , 就可得知此文件是否被篡改过  ( 因为若摘要相同,则肯定信息未被改动,这是散列算法的特点 ) 。这样不仅解决了证明发送人身份的问 题,同时还解决了文件是否被篡改问题。

问题 6 : 通过对称加密算法加密其文件,再通过非对称算法加密其对称密钥 , 又通过散列算法证明其发送者身份和其信息的正确性,这样是否就万无一失了 ?
    回答是否定的。问题在于乙并不能肯定他所用的所谓甲的公钥一定是甲的 , 解决办法是用数字证书来绑定公钥和公钥所属人。
    数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件 , 是网络通信中标识通信各方身份信息的一系列数据,它提供 了一种在 Internet 上验证身份的方式,其作用类似于司机的驾驶执照或日常生活中的身份证,人们可以在交往中用它来识别对方的身份。
    最简单的证书包含一个公开密钥、名称以及证书授权中心的数字签名。一般情况下证书中还包括密钥的有效时间、发证机关 ( 证书授权中心 ) 名 称、该证书的序列号等信息。它是由一个权威机构—— CA 机构,又称为证书授权 (Certificate Authority) 中心发放 的。 CA 机构作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。 CA 中心为每个使用公开密钥的用户发放一个数字证书,数 字证书的作用是证明证书中列出的用户合法拥有证书中列出的公开密钥。 CA 机构的数字签名使得攻击者不能伪造和篡改证书, CA 是 PKI 的核心, 负责管理 PKI 结构下的所有用户(包括各种应用程序)的证书,把用户的公钥和用户的其他信息捆绑在一起,在网上验证用户的身份。
    因为数字证书是公开的,就像公开的电话簿一样,在实践中,发送者(即甲)会将一份自己的数字证书的拷贝连同密文、摘要等放在一起发送给接收者(即 乙),而乙则通过验证证书上权威机构的签名来检查此证书的有效性(只需用那个可信的权威机构的公钥来验证该证书上的签名就可以了),如果证书检查一切正 常,那么就可以相信包含在该证书中的公钥的确属于列在证书中的那个人(即甲)。

问题 7 : 至此似乎很安全了。但仍存在安全漏洞,例如:甲虽将合同文件发给乙 , 但甲拒不承认在签名所显示的那一时刻签署过此文件 ( 数字签名就相当于书面合同的文字签名 ) ,并将此过错归咎于电脑,进而不履行合同,怎么办 ?
    解决办法是采用可信的时钟服务 ( 由权威机构提供 ) ,即由可信的时间源和文件的签名者对文件进行联合签名。在书面合同中,文件签署的日期和 签名一样均是十分重要的防止文件被伪造和篡改的关键性内容 ( 例如合同中一般规定在文件签署之日起生效 ) 。在电子文件中,由于用户桌面时间很容易改 变 ( 不准确或可人为改变 ) ,由该时间产生的时间戳不可信赖,因此需要一个第三方来提供时间戳服务(数字时间戳服务( DTS )是网上安全服务项 目,由专门的机构提供)。此服务能提供电子文件发表时间的安全保护。
    时间戳产生的过程为 : 用户首先将需要加时间戳的文件用哈希编码加密形成摘要,然后将该摘要发送到 DTS , DTS 在加入了收到文件摘要 的日期和时间信息后再对该文件加密(数字签名),然后送回用户。因此时间戳 (time-stamp) 是一个经加密后形成的凭证文档,它包括三个部分: 需加时间戳的文件的摘要, DTS 收到文件的日期和时间, DTS 的数字签名。由于可信的时间源和文件的签名者对文件进行了联合签名 , 进而阻止了 文档签名的那一方 ( 即甲方 ) 在时间上欺诈的可能性 , 因此具有不可否认性。
问题 8: 有了数字证书将公 / 私钥和身份绑定 , 又有权威机构提供时钟服务使其具有不可否认性 , 是不是就万无一失了 ? 不 , 仍然有问 题。乙还是不能证明对方就是甲,因为完全有可能是别人盗用了甲的私钥 ( 如别人趁甲不在使用甲的电脑 ), 然后以甲的身份来和乙传送信息 , 这怎么 解决呢 ?
    解决办法是使用强口令、认证令牌、智能卡和生物特征等技术对使用私钥的用户进行认证,以确定其是私钥的合法使用者。
    解决这个问题之前我们先来看看目前实现的基于 PKI 的认证通常是如何工作的。以浏览器或者其他登记申请证书的应用程序为例说明,在第一次生成 密钥的时候会创建一个密钥存储,浏览器用户会被提示输入一个口令,该口令将被用于构造保护该密钥存储所需的加密密钥。如果密钥存储只有脆弱的口令保护或根 本没有口令保护,那么任何一个能够访问该电脑浏览器的用户都可以访问那些私钥和证书。在这种场景下 , 又怎么可能信任用 PKI 创建的身份呢 ? 正 因为如此,一个强有力的 PKI 系统必须建立在对私钥拥有者进行强认证的基础之上,现在主要的认证技术有:强口令、认证令牌、智能卡和生物特征(如指 纹,眼膜等认证)。
---------------------------总结----------------------------------------

需要解决的问题:

初级用户身份识别:甲和乙协商统一复杂算法   比如OTP技术,但是传输的数据不安全
数据安全(不可读):对称加密方法 加密传输的数据 但是密钥可能被截获,进而看到明文
密钥安全:非对称加密 用乙的公钥加密传输密钥(对称加密)
数据是否被修改:黑客可以用乙的公钥模拟加密假的加密数据,需要数字签名,将数据HASH 后得到摘要用甲的私钥加密
公钥归属:用甲的公钥解密得到摘要,如何判断公钥是甲方的?需要CA的根证书验证甲携带证书的安全性,

甲 和 乙完成数据传输

1. 创建对称密钥 ( 相应软件生成,并且是一次性的 ) ,用其加密合同,并用乙的公钥打包对称密钥。
2. 创建数字签名,对合同进行散列算法 ( 如 MD5 算法 ) 并产生原始摘要,甲用自己的私钥加密该摘要 ( 公 / 私钥既可自己创建也可由 CA 提供 ) 。
3. 最后 , 甲将加密后的合同、打包后的密钥、加密后的摘要 , 以及甲的数字证书 ( 由权威机构 CA 签发 甚至时间戳 ) 一起发给乙。
而乙接收加密文件后,需要完成以下动作 :
首先,由根证书验证甲持有证书的合法性,如果合法如下:

根证书是CA认证中心给自己颁发的证书,是信任链的起始点。安装根证书意味着对这个CA认证中心的信任。
  从技术上讲,证书其实包含三部分,用户的信息,用户的公钥,还有CA中心对该证书里面的信息的签名,要验证一份证书的真伪(即验证CA中心对该证书信息的签名是否有效),需要用CA 中心的公钥验证,而CA中心的公钥存在于对这份证书进行签名的证书内,故需要下载该证书,但使用该证书验证又需先验证该证书本身的真伪,故又要用签发该证书的证书来验证,这样一来就构成一条证书链的关系,这条证书链在哪里终结呢?答案就是根证书,根证书是一份特殊的证书,它的签发者是它本身,下载根证书就表明您对该根证书以下所签发的证书都表示信任,而技术上则是建立起一个验证证书信息的链条,证书的验证追溯至根证书即为结束。所以说用户在使用自己的数字证书之前必须先下载根证书

1. 接收后,用乙的私钥解密得到对称密钥 , 并用对称密钥解开加密的合同 , 得到合同明文。
2. 通过甲的数字证书获得属于甲的公钥 , 并用其解开摘要 ( 称做摘要 1) 。
3. 对解密后的合同使用和发送者同样的散列算法来创建摘要 ( 称做摘要 2) 。
4. 比较摘要 1 和摘要 2, 若相同 , 则表示信息未被篡改 , 且来自于甲。
    甲乙传送信息过程看似并不复杂 , 但实际上它由许多基本成分组成 , 如 : 对称 / 非对称密钥密码技术、数字证书、数字签名、证书发放机构( CA )、公开密钥的安全策略
分享到:
评论

相关推荐

    PKI 技术与发展(了解发展状况,有助入门)

    PKI安全技术由公开密钥密码技术、数字证书、证书发放机构(Certificate Authority,简称CA)和公开密钥的安全策略等基本成分共同组成。其主要目标是通过自动管理密钥和证书,为用户提供一个安全的网络运行环境,并...

    精通PKI网络安全认证技术与编程实现(源码)

    **精通PKI网络安全认证技术与编程实现** PKI(Public Key Infrastructure,公钥基础设施)是现代网络安全体系中的核心组成部分,它提供了一种基于公钥密码学的安全服务框架,用于管理和验证数字证书,确保网络通信...

    精通PKI网络安全认证技术与编程实现_PDF书签高清版.7z.005(共5个压缩包)

    内容简介回到顶部↑ pki是解决开放式互联网络信息安全需求的成熟体系...下载中: [精通PKI网络安全认证技术与编程实现].马臣云 & 王彦.配套光盘.rar | 10.8 MB http://hotfile.com/dl/78343749/98d1473/PKI.__..rar.html

    《精通PkI网络安全认证技术与编程实现》源代码

    《精通PKI网络安全认证技术与编程实现》源代码是一份重要的资源,对于深入理解网络时代的安全机制至关重要。PKI(Public Key Infrastructure,公钥基础设施)是保障网络安全的关键技术,它利用非对称加密原理,为...

    信息安全基础中的核心:PKI技术

    PKI(Public Key Infrastructure,公钥基础设施)技术是信息安全领域中的核心技术,特别是在电子商务、电子政务和电子事务等网络环境中起到关键作用。PKI利用公钥密码学原理,为网络通信提供了一种验证身份、保障...

    PKI网络安全技术相关论文

    综上所述,PKI网络安全技术是保障网络空间安全的关键技术之一,通过CA和数字证书,实现了对网络通信的全面保护。随着互联网的深入发展,对PKI技术的需求将只增不减,它将继续扮演着维护网络安全的重要角色。未来,...

    精通pki网络安全认证技术与编程实现配套光盘

    "精通pki网络安全认证技术与编程实现配套光盘" 这个标题揭示了本书的核心内容,即深入理解并掌握Public Key Infrastructure(公钥基础设施,简称PKI)在网络安全认证中的应用,以及如何通过编程来实现这些技术。...

    详解:PKI技术、CA证书技术

    PKI技术解决方案可以设计以满足组织的以下安全和技术要求: * 保密 * 诚信 * 真实性 * 不可否认性 在设计PKI解决方案时,需要考虑到组织的安全和技术要求,并选择合适的技术和流程来实现。PKI技术架构的设计需要...

    精通PKI网络安全认证技术与编程实现光盘源码(第二篇-OpenSSL开发)

    "精通PKI网络安全认证技术与编程实现光盘源码(第二篇-OpenSSL开发)" 这个标题明确指出本书或课程主要关注的是网络安全领域中的公开密钥基础设施(PKI)技术,并且重点在于如何通过编程来实现这一技术。"第二篇-...

    pki技术与发展

    公钥基础设施(Public Key Infrastructure,简称PKI)是一种基于公钥加密技术和理论构建的安全体系,旨在提供一套可靠的信息安全服务框架。PKI利用非对称加密机制,即一对公钥和私钥,来确保数据传输的安全性。在这...

    精通PKI网络安全认证技术与编程实现

    精通PKI网络安全认证技术与编程实现 part3

    精通PKI网络安全认证技术与编程实现.iso

    精通PKI网络安全认证技术与编程实现.iso 精通PKI网络安全认证技术与编程实现

    11-信息安全技术 公共基础设施 PKI系统安全等级保护技术要求

    《11-信息安全技术 公共基础设施 PKI系统安全等级保护技术要求》是关于网络安全领域的一个重要指导文档,主要关注的是公共基础设施中的PKI(Public Key Infrastructure,公钥基础设施)系统的安全等级保护。...

    精通PKI 网络安全认证技术与编程实现.part7

    精通PKI 网络安全认证技术与编程实现 PKI 网络安全认证 精通系列 pdg格式,13包

    精通PKI 网络安全认证技术与编程实现.part2

    精通PKI 网络安全认证技术与编程实现 PKI 网络安全 认证 精通系列 pdg格式,共13包

    计算机网络安全之PKI

    **计算机网络安全之PKI** 公钥基础设施(Public Key Infrastructure,简称PKI)是现代网络安全体系中的核心组件,它为网络通信提供了可靠的...理解和掌握PKI的基本概念和技术,对于构建和维护安全的网络环境至关重要。

Global site tag (gtag.js) - Google Analytics