首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | linux相关 | linux认证 | 下载中心 | 专题
oklinux
 系统管理:中文环境 系统管理 桌面应用 内核技术 Linux基础:安装配置 常用命令 经验技巧 软件应用 Linux数据库:Mysql POSTGRE
 网络管理:网络安全 网络应用 Linux服务器 编程开发:PHP CC++ Python Perl SHELL 嵌入式开发 | PHP基础 PHP技巧 PHP应用 PHP文摘
 首页 linux资讯动态 Linux专题 | 其他Unix Linux解决方案 硬件相关 Linux认证 企业应用 Apache | 相关下载:软路由 参考手册 开发工具
 → 当前位置:首页>linux相关>企业应用>正文

应用数字证书 保证交易安全

OKLinux www.oklinux.cn 2003-01-01 来源:开放系统世界  ◇ 龚永生  会员收藏 游客收藏

  网络的安全问题得到人们的日益重视。网络面临的威胁五花八门:内部窃密和破坏、截收、非法访问、破坏信息的完整性、冒充和破坏系统的可用性、重演及抵赖等。于是公钥基础设施(Public Key Infrastructure,PKI)应运而生。PKI是电子商务和其它信息系统的安全基础,用来建立不同实体间的“信任”关系。它的基础是加密技术,核心是证书服务。用户使用由证书授权认证中心(Certificate Authority,CA)签发的数字证书,结合加密技术,可以保证通信内容的保密性、完整性、可靠性及交易的不可抵赖性,并可以进行用户身份的识别。 本文分析公钥基础设施涉及的5个主要算法和应用:数字签名、数字信封、数字证书、私钥管理和密钥协定,描述目前电子政务CA建设中双证书体系的概念,接着讲述如何用Openssl作认证中心、申请证书和使用证书,最后讲述SSL协议如何使用证书和加密技术建立安全通信通道。

  数字证书算法

  数字签名

  数字签名算法包括签名过程和识别过程两部分(见图1)。签名过程是签名者使用自己的私钥对消息的摘要进行加密的过程,被加密的摘要就是签名。为什么只对消息的摘要进行加密呢?因为所有的公钥加密算法在加密速度上比较慢(相对对称加密算法),同时消息摘要算法具有单一性,即不可能具有两个消息在同一摘要算法的运算下产生相同的摘要,算法产生的消息摘要具有固定长度(比如128位),所以利用公钥加密算法才比较合适。签名和原消息一起形成了签名消息。签名消息经过信息传递渠道可以发送到多个接收者手中,后者利用消息发送者的证书对签名进行解密,得到摘要2,签名消息中的原文被同样的摘要算法进行运算得到消息摘要1,两个摘要进行对比,接收者就可以判断消息的完整性。同样发送者也不能对消息的发送进行抵赖。值得注意的是,整个过程中,接收者不需要任何自己的东西,任何人只要具有发送者的证书,不会涉及一丝的保密信息就可以验证消息。

  数字签名中的证书在双证书机制中也被称为签名证书,签名证书的私钥被消息的发送者唯一保存。

  图1 数字签名过程图

  数字信封

  数字信封就是消息加密,具体操作见图2。利用对称加密算法(比如DES)对比较长的消息(相对密钥)进行加密,再利用接收者的证书对密钥进行加密,加密消息和加密密钥一起发送给消息接收者。后者利用自己的私钥对加密密钥解密得到密钥,接着用密钥对加密消息进行解密得到消息原文。与数字签名一样,消息的发送者不会涉及任何保密内容,只要知道接收者证书的人都可以向他发送数据信封封装消息。

  数字信封应用不仅在商业中很受关注,在国家安全和商业损失上都很受重视,相应的私钥托管就出现了。私钥托管指证书的所有者除了自己拥有证书对应的私钥外,还必须把自己的私钥交给一个或多个国家指定的托管机构进行保管。为了加强安全和减少腐败,每个托管机构只保管私钥的一部分。私钥托管可以应付以下情况:当私钥的所有者丢失私钥,但手头已有大量的重要数字信封封装消息时,私钥的所有者可以申请获得私钥。当国家机关获得授权要对某个可疑人士进行信息跟踪时,可以申请获得私钥。数字信封应用中的证书在双证书体系中又叫加密证书。注意数字信封应用中加密消息的不是证书本身,而是公钥加密的密钥。

  图二 数字信封

  数字证书

  证书的申请者利用对称钥算法产生一对公钥和私钥,接着使用证书申请算法把自己的标识和公钥变成证书签名申请文件。CA证书认证中心用自己的私钥对证书信息进行签名形成申请者的证书。

  CA也可以用数字签名发放证书收回列表(见图3)。在证书信息中可以有证书拥有者的名字、电子邮件、授权信息等其它消息。

  图三 数字证书

  私钥管理

  私钥在PKI系统中非常重要,私钥的泄密会给所有者造成不可预估的损失。在个人的私钥管理中,一般通过口令对私钥进行加密保存,另用“所有和所知”双重防护进行保护。这种方法适用于签名证书私钥的管理,见图4。

  为了监视和防止计算机犯罪活动,人们提出了密钥托管(Key Escrow,KE)的概念,指国家强制规定进行的私钥托管。为防止用户逃避托管,密钥托管技术的实施需要通过政府的强制措施进行。用户必须先委托密钥托管机构(KEA)进行密钥托管,取得托管证书,才能向CA申请加密证书。CA必须在收到加密公钥对应的私钥托管证书后,再签发相应的公钥证书。为了防止KEA滥用权限及托管密要的泄漏,用户的私钥被分成若干部分,由不同的密钥托管机构负责保存。只有将所有的私钥分量合在一起,才能恢复用户私钥的有效性。用户选择若干个KEA,分给每一个代理一部分私钥和一部分公钥。代理根据所得的密钥分量产生相应的托管证书。证书中包括该用户的特定表示符(Unique Identify,UID)、被托管的那部分公钥和私钥、托管证书的编号。KEA还要用自己的签名私钥对托管证书进行加密,产生数字签名,并将其附在托管证书上。用户收到所有的托管证书后,将证书和完整的公钥递交给CA,然后申请证书。这种机制适用于加密证书私钥的管理。这样签名证书的私钥世界上只有一份,而加密证书私钥就可能有若干份了。

  图四 私钥管理

  密钥协定

  密钥算法在加密大规模内容时更加有效(见图5)。使得通信双方对加密密钥达成共识的应用叫密钥协定。内容传输之前双方经过密钥协定算法得到共同的密钥,之后大家就可以利用非对称加密算法对通信信道进行加密。典型的密钥协定有PKCS #3,即Diffie-Hellman协定标准。 PKCS #3算法由两个阶段组成,而且通信双方都是互相独立运算。第二阶段互用对方第一阶段的公有输出值作为输入的一部分,最后得到一致的密钥。密钥不必在通信信道上传输。其实在数字信封中也有密钥交换的过程,只是密钥由发送方计算,用接受方公钥加密,接着传输给接受方。因为密钥被接受方的公钥加密,所以只有接受方能解密得到密钥。

  图五 密钥协定

共2页: 上一页 1 [2] 下一页
上一篇:用Sypma管理邮件列表   下一篇:构架Linux环境下Java开发环境
收藏于收藏夹】 【评论】 【推荐】 【投稿】 【打印】 【关闭

相关文章
·构架Linux环境下Java开发环境
·用Sypma管理邮件列表
·用vsftpd架设安全的FTP服务器
·Linux系统响应速度性能改进实例
·数据库竞争把握Linux
·在Linux下飞翔的“火鸟”
·“神舟”应用桌面Linux
·在Linux上搭建BBS服务器
·用RedHat打造安全代理服务器(下)
·用RedHat打造安全高效的代理服务器
发表评论
密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。)
站内搜索
阅读排行榜
·中小型企业级服务器配置技
·Bake-Off: 4 Linux Deskto
·Linux网络安全策略和保护
·Linux环境下双机(多机)自
·Linux在构建绿色校园网中
·构架Linux环境下Java开发
·NC下RedOffice多用户使用
·网络计算机典型应用领域
·威盛携手慧智 组成NC新联
·在Linux上搭建BBS服务器
最新文章
·在Linux上搭建BBS服务器
·数据库竞争把握Linux
·Linux系统响应速度性能改
·构架Linux环境下Java开发
·用Sypma管理邮件列表
·用vsftpd架设安全的FTP服
·在Linux下飞翔的“火鸟”
·“神舟”应用桌面Linux
·用RedHat打造安全代理服务
·用RedHat打造安全高效的代
·Redhat局域网安装的解决办
·Redhat局域网安装的解决办
·Linux代理服务全攻略
·J2EE连接器实现企业应用
·J2EE开发Web服务商务应用

设为首页 - 加入收藏 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyright © 2007 All rights reserved OKLinux.Cn 版权所有
合作联系 QQ:18743986 Email:arlan8005#163.com