网络的安全问题得到人们的日益重视。网络面临的威胁五花八门:内部窃密和破坏、截收、非法访问、破坏信息的完整性、冒充和破坏系统的可用性、重演及抵赖等。于是公钥基础设施(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] 下一页