数字证书的产生、分发和存储
首先,让我们来回顾一下数字证书产生和分发的简要过程。一个网上用户怎样才能得到一张数字证书呢?①他先要向RA提出注册申请。②用户的申请经RA审批通过后,RA向CA提交注册建立请求。③CA建立对于该用户的注册,并将注册建立结果返回给RA。④RA将注册结果通知用户。注册结果中包含了两组数字,分别称为“参考号”和“授权码”。⑤用户方的软件生成一对公钥和私钥。⑥用户向CA提出证书请求。这个请求信息中还包含了用户的公钥和用户的可甄别名等信息,这些信息在CA创建证书时要用到。⑦CA创建该用户的数字证书。⑧通过适当方式将证书分发给用户。
CA将证书分发给用户的途径有多种。第一种途径是带外分发(Out-of-band
Distribution),即离线方式。例如,在北京国税的证书项目中,密钥对是由软件运营商代替客户生成,证书也是由运营商代替客户从CA下载,然后把私钥和下载的证书一起储存在软盘里,再交给用户的。这样做的好处是免去了用户上网下载证书的麻烦。第二种途径是带内分发(In-band
distribution),即用户从网上下载数字证书到自己的电脑中。下载时,用户要向CA出示“参考号”和“授权码”,以向CA证明自己的身份。这样做成本较低,但对使用计算机不太熟悉的用户来说,可能在下载时会碰到一些麻烦。除了以上两种方式外,CA还把证书集中放置在公共的数据库中公布,用户可以随用随查询随调用。
数字证书和私钥储存的介质有多种,可以存储在计算机硬盘、软盘、智能卡或USB key里。
需要澄清的概念
一、关于私钥的唯一性
严格地讲,私钥既然是世上唯一且只由主体本身持有,它就必须由主体的计算机程序来生成。因为如果在别处生成将会有被拷贝的机会。然而在实际应用上并非如此,出于某些特殊需要(例如,如果只有一份私钥,单位的加密文件就会因为离职员工带走 私钥而无法解密。)加密用的公/私钥对会要求在可信的第三方储存其备份。这样,加密用的私钥可能并不唯一。然而签名用的私钥则必须保持唯一,否则就无法保证被签名信息的不可否认性。
在生成用户的密钥对时,用于加密的公/私钥对可以由CA、RA产生,也可以在用户终端的机器上用专用的程序(如浏览器程序或认证软件)来产生。用于数字签名的密钥对原则上只能由用户终端的程序自行产生,才能保证私钥信息的私密性以及通信信息的不可否认性。
有人可能会产生疑问:在北京国税的证书项目中,加密和签名的密钥对都是由软件运营商代替客户生成的,这是否破坏了上述的私钥唯一性原则呢?答案是否定的。这时候,私钥的唯一性要依靠法律合同的保证以及操作过程中相应制度的约束,使得不可否认性得到支持。出于这种机制,我们仍然可以认为,用户的签名私钥是唯一的。
二、证书,私钥,到底保护哪一个?
我们常常听到有人说:“保管好你的软盘,保管好你的KEY,不要让别人盗用你的证书。”有些教科书上也这样讲。应该说,这句话是有毛病的。数字证书可以在网上公开,并不怕别人盗用和篡改。因为证书的盗用者在没有掌握相应的私钥的情况下,盗用别人的证书既不能完成加密通信,又不能实现数字签名,没有任何实际用处。而且,由于有CA对证书内容进行了数字签名,在网上公开的证书也不怕黑客篡改。我们说,更该得到保护的是储存在介质中的私钥。如果黑客同时盗走了证书和私钥,危险就会降临。
为什么说USB key安全性好
不同的存储介质,安全性是不同的。如果证书和私钥储存在计算机的硬盘里,计算机一旦受到黑客攻击,(例如被埋置了木马程序)证书和私钥就可能被盗用。
使用软盘或存储型IC卡来保存证书和私钥,安全性要比硬盘好一些,因为这两种介质仅仅在使用时才与电脑相连,用完后即被拔下,证书和私钥被窃取的可能性有所降低。但是黑客还是有机会,由于软盘和存储型IC卡不具备计算能力,在进行加密运算时,用户的私钥必须被调出软盘或IC卡进入外部的电脑,在这个过程中就会造成一定的安全隐患。
使用智能卡(含CPU的IC卡)储存数字证书和私钥是更为安全的方式。为什么这样说呢?原来智能卡具有一定的计算机的功能,芯片中的CPU就是一台小小的计算机。
产生公私密钥对的程序(指令集)是智能卡生产者烧制在芯片中的ROM中的,密码算法程序也是烧制在ROM中。公私密钥对在智能卡中生成后,公钥可以导出到卡外,而私钥则存储于芯片中的密钥区,不允许外部访问。
智能卡中密钥文件存储在E2PROM之中。对密钥文件的读写和修改都必须由卡内的程序调用。从卡接口的外面,没有任何一条命令能够对密钥区的内容进行读出、修改、更新和删除、。除非设计和编写卡操作系统(COS)的人自己在COS上留了后门,只有他才知道如何从外部调出密钥区的内容。但我们可以排除黑客与COS设计者相勾结的这种几率极小的可能性。
在加密和签名的运算过程中,外部计算机中的应用软件使用智能卡API调用的方式,输入参数、数据和命令,启动智能卡内部的数字签名运算、密码运算等,并获得返回结果。由于智能卡内部的CPU可以完成这些操作,全过程中私钥可以不出智能卡介质,黑客的攻击程序没有机会去截获私钥,因此这就比证书和私钥放在软盘或硬盘上要安全得多。
从物理上讲,对智能卡芯片中的内容作整体拷贝也是几乎不可能的。虽然听说有人能够从智能卡芯片在操作过程中发生的微弱的电磁场变化,或者I/O口上反映出的微弱的电平变化中分析出芯片中的代码。但现在国际上对智能卡生产商的技术要求很高,要求上述的指标要低到不能够被测出来。国际上能够生产智能卡的公司只有少数几家,他们都采用了种种安全措施,确保智能卡内部的数据不能用物理方法从外部拷贝。
USB
Key和智能卡除了I/O物理接口不一样以外,内部结构和技术是完全一样的,其安全性也一样。只不过智能卡需要通过读卡器接到电脑的串行接口上,而USB
Key通过电脑的通用串行总线(USB)接口直接与电脑相接。另外,USB接口的通信速度要远远高于串行接口的通信速度。现在出品的电脑已经把USB接口作为标准配置,而使用智能卡则需要加配读卡器。出于以上原因,各家CA都把USB
Key作为首选的证书和私钥存储介质而加以推广。美中不足的是目前USB Key的成本还略显昂贵,各家银行在推行USB
Key介质的证书时,要加收50至80元的成本费。
仍需注意的问题
这里需要指出的是,有些号称智能卡的产品实际上只是不含CPU的存储型IC卡,它仅仅具有存储功能。上文已经介绍过,存储型IC卡的安全性与软盘相仿,对于这两种不同类型的IC卡,用户需要甄别清楚。
第二个问题是,尽管智能卡在设计和生产过程中,对安全机制给以了充分的考虑和保证,然而,由于人为因素,也可能带来安全隐患。例如智能卡上提供一个闪存(flash)随机存储区域,是供写入一般用户数据或增加卡片功能的程序之用的。敏感的数据和程序不允许写在闪存区,必须写在安全存储区。制作智能卡时,安全区要通过硬件方法做掩模处理。硬件的掩模处理费工费时成本高,一般需要3个月。有些卡商为了降低成本缩短工期迎合客户要求,将应该放在安全区中的敏感数据和程序放在闪存区中,闪存区里的内容是可以从卡片外部进行读写的,这就造成了可能被黑客侵入的安全隐患。这就要求我们对合作的IC卡厂商的工艺流程也要仔细审查。
另外,为了防止USB key 不慎丢失而可能被他人盗用,不少证书应用系统在使用过程中还设置了口令认证机制。如口令输入得不对,即使掌握了USB
key,也不能登录进入应用系统。这种双因素认证机制可以使USB key更加安全可靠,值得提倡。
分享到:
相关推荐
总的来说,USB Key作为数字证书的物理存储介质,为现代网络安全提供了强大的支持,其安全性和便携性使其在个人和企业环境中广泛应用。了解USB Key的工作原理和管理方法,对于确保在线安全和数据保护至关重要。
USB Key是一种基于硬件的安全设备,通常用于存储个人识别信息(PIN)、数字证书和其他敏感数据,以保护用户在进行网络交易或访问受保护资源时的身份安全。USB Key在IT行业中广泛应用于网上银行、电子政务、企业内部...
USB KEY 具有安全数据存储空间,可以存储数字证书、密钥等秘密数据,对该存储空间的读写操作必须通过程序实现,用户无法直接读取,其中用户密钥是不可导出的,杜绝了复制用户数字证书或身份信息的可能性。...
- **电子政务**:政府机构采用USBKey进行电子签名、身份验证,提高政务服务的安全性和便捷性。 - **企业内部系统**:企业内部管理系统利用USBKey进行员工身份认证,防止非法访问。 - **个人隐私保护**:个人用户可以...
USBKey,又称数字证书硬件载体,是一种小型便携式的存储设备,内置加密芯片,能够存储用户的数字证书,确保用户在进行网络交易时的数据安全。 首先,我们需要了解USBKey的工作原理。USBKey驱动程序是连接USBKey硬件...
它是一种小型硬件设备,用于存储用户的数字证书和个人识别号码(PIN),以提供额外的安全层,尤其是在进行敏感的网络操作,如网上银行、电子签名或者访问受保护的系统时。USB KEY与Java CA(Java证书权威机构)相...
4. **证书管理**:管理工具可以帮助用户安装、导出、更新和删除USBkey上的数字证书,确保证书的有效性和合规性。 5. **操作系统兼容性**:EPASS3000通常支持多种操作系统,如Windows、Mac OS X和Linux,确保跨平台...
USBKey,通常称为USB数字证书或USB安全密钥,是一种小型硬件设备,用于存储个人身份验证信息,如数字证书,以增强网络安全性,特别是进行网上银行交易、访问受保护的公司资源或者在云服务中加密数据时。 描述中的...
USBKey是一种常见的硬件安全设备,通常用于存储个人数字证书、加密数据或进行身份验证。在家中办公场景下,USBKey客户端安装程序及操作文本是非常重要的工具,它可以帮助用户安全地接入公司网络、访问敏感信息或者...
这个过程涉及到数字证书的使用,这些证书存储在USB KEY内部,包含用户的公钥和私钥。私钥是保密的,只在USB KEY内处理,不暴露在计算机系统中,这样就防止了黑客窃取。而公钥则可以公开,用于加密信息,只有对应的...
其中,电子支付系统作为电子商务的核心环节,其安全性和可靠性备受关注。传统的口令认证方式因其易被破解而显得不够安全,因此寻找更加可靠的身份认证方法成为研究的重点之一。本文主要探讨USBKEY作为一种新型认证...
首先,验证PIN码是USBKEY安全性的核心部分。PIN码类似于银行卡的密码,只有输入正确的PIN码才能访问USBKEY内的数据。在C#中,这通常通过调用USBKEY驱动提供的API或封装COM组件来实现。`verify1.cs`可能包含了此类...
总的来说,这个驱动程序解决了64位Windows 7用户在使用工行捷德USBkey时可能出现的兼容性问题,确保了网银操作的安全性和便利性。对于依赖USBkey进行安全认证的用户来说,及时更新和安装正确的驱动至关重要。
该USBKey内嵌硬件加密芯片,提供强大的数字签名、证书存储及数据加密功能,广泛应用于网上银行、电子政务、企业信息化等领域。 开发包通常包含了驱动程序、API接口文档、示例代码以及必要的工具,以供开发者集成到...
论文部分可能会涵盖以下内容:USB Key的选型和集成,ASP.NET中与硬件交互的API(如使用Windows API或者第三方库),加密算法的选择与实现,以及系统的安全性和性能评估。源代码则会提供实际的实现细节,包括页面设计...
Usbkey通常是一个小型硬件设备,通过USB接口连接到计算机,其内部集成了单片机或智能卡芯片,具备存储功能,能够存放用户的私钥和数字证书。这种设备的核心优势在于其内置的公钥算法,能够确保用户身份认证过程的...
USBKEY是一种基于硬件的安全设备,通常用于存储个人数字证书,以提供身份验证和数据加密功能。在本示例工程中,我们将关注如何通过ACTIVX技术实现USBKEY的使用,这种方式适用于JAVA、PHP和.NET等多种编程环境。USB...
USBKey,也称为数字证书USB令牌,是一种物理设备,用于存储用户的数字证书和私钥。用户可以通过插入USBKey来验证身份并进行加密操作。这种方式提高了安全性,因为私钥不会像软件证书那样存储在易受攻击的计算机内存...