数字证书的存储和USBKey的安全性

数字证书的产生、分发和存储

  首先,让我们来回顾一下数字证书产生和分发的简要过程。一个网上用户怎样才能得到一张数字证书呢?①他先要向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更加安全可靠,值得提倡。

最新Docker GPU支持全解析:为什么nvidia-smi能用但PyTorch找不到CUDA? 本文深入解析了Docker容器中nvidia-smi命令可用但PyTorch无法调用CUDA的根本原因。关键在于默认配置仅暴露了GPU的utility管理能力,而CUDA计算所需的compute能力未被激活。通过正确设置NVIDIA_DRIVER_CAPABILITIES环境变量为compute,utility,并配合--gpus参数,即可解决此问题,确保AI训练等任务顺利进行。 阅读详情

相关推荐

从零开始,用Cadence Virtuoso手把手仿真一个1.5V LDO(附完整电路与仿真脚本)

本文详细介绍了如何使用Cadence Virtuoso从零开始仿真一个1.5V LDO,包括环境准备、电路导入、Testbench构建、核心仿真类型分析以及高级调试技巧。通过完整的电路与仿真脚本,帮助读者掌握LDO设计与仿真的关键技术,提升电路设计能力。

weixin_31309419的博客 445

数字证书如何写入到ukey_ukey身份认证步骤

使用uKey进行身份认证与安全登录主要包括以下步骤:1)初始化uKey 当新用户提出登录申请时,管理员根据用户需求生成数字证书,同时将数字证书和对应的密钥对写入一个全新的uKey中,然后将此uKey发放给用户。密钥存储在uKey中特殊的文件分区里,不能向外读出,以保证其私密性,但可以使用该私钥进行加密或签名。用户获得自己的uKey后就可以登录指定的机器。2)用户注册 当客户端第...

weixin_39821189的博客 5590

Arduino-CRSF库详解:嵌入式端CRSF协议解析与ELRS接收机集成

CRSF(Crossfire Serial Protocol)是一种面向FPV无人机的轻量级、高实时性串行通信协议,采用单总线异步传输与8位CRC-8校验机制,广泛应用于遥控链路与遥测交互。其核心在于帧同步(0xC8起始字节)、反相逻辑电平及无重传的广播式设计,对嵌入式平台的UART精度、电平匹配和状态机健壮性提出严苛要求。Arduino-CRSF库正是为资源受限MCU(如ESP32、STM32、ATmega328P)提供零配置、中断安全的协议解析能力,封装了CRC查表计算、超时恢复、多级同步验证等关键机制

weixin_35756690的博客 416

ukey证书简介

目录: 一、CA、RA、Ukey厂商和业务系统的关系 二、CA证书的重要属性(DN、SN、参考号、授权号、有效日期、证书状态、颁发者) 三、什么是证书容器CSP 四、证书的作用

拓拓的专栏 2万+

化学气相沉积CVD工艺中MKS下游排气高速节流阀的国产化替代方案及产品

对标MKS、VAT和CDK等国外公司的下游排气高速节流阀系列产品,本文介绍了相应的国产化替代方案和产品。基于CVD工艺,技术方案将下游流量调节阀变为了下游压力调节阀,并采用分体结构,将调压阀与PID控制器分离,调压阀具备大口径和高速功能,电子气控驱动调压阀快速动作,PID控制器接收真空计信号和控制气控驱动阀,可实现阀门全开时间小于0.1秒。

Shanghai_Eyoung的博客 5259

VOWIFI--相关的协议文档

一、3GPP相关协议文档 3GPP 23.402 Architecture enhancements for non-3GPP accesse- //重要 整体框架结构和流程,3GPP和NON-3GPP切换 3GPP 36.304  User Equipment (UE) procedures in idle mode //重要,终端在空闲状态下3GPP与NON-3GPP之间的重选方法   3GP

时九博客 3580

如何将USBKey中的证书注册到Windows系统中、分享一个 证书 C++安装

(1)        获取CSP句柄。 CryptAcquireContext( &hTokenProv,NULL, “EnterSafe ET199Auto CSP V1.0”, PROV_RSA_FULL, NULL) (2)        获取USBKey内密钥句柄,这时要注意锁内密钥的类型是签名密钥(AT_SIGNATURE)或者交换密钥(AT_KEYEXCHANGE)。 Cr

chenyujing1234的专栏 6920

mysql数据目录迁移后表不存在_mysql 直接从date 文件夹备份表,还原数据库之后提示 table doesn`t exist的原因和解决方法...

补充:正常情况下,建议数据库备份最好用工具进行备份,通过拷贝数据库表进行数据迁移,不同的环境会出现各种不同的意外问题。背景:今天在整理一个网站的时候,操作系统由于系统自动更新导致一直出现系统蓝屏死机,唉,悲剧了,于是重新安装了系统 windows server 2008 enterprise 32bit。详情:系统安装完成后,重新配置之前那个网站,appache服务配好之后,再配置数据的时候是这样...

weixin_39628271的博客 2673

java usbkey ssl_Java读取硬件USBKey(简称UKEY)中的SSL证书信息,创建双向SSL认证上下文环境...

最近项目中遇到了这样的需求,故记录下来,希望可以帮到需要的人O(∩_∩)O~以下以 Linux 环境为基础:读取硬件 UKEY 的SSL证书信息,需要硬件厂商提供:UKEY型号名称、驱动文件(类似pkcs11.so)。直接上代码段示例://厂商提供的UKEY型号名称staticfinalStringUKEY_PROVIDER="xxx";//UKEY驱动lib库文件staticfi...

weixin_36483301的博客 1686

多期DID实战指南:从CSDID原理到分组加权策略

本文深入解析多期DID(CSDID方法)在政策评估中的实战应用,从核心思想到分组加权策略全面讲解。通过电商扶贫等案例,详细演示如何正确处理分批实施政策的数据分析,包括分组拆解、子模块DID操作及加权平均选择,帮助研究者规避常见误区,提升政策评估的准确性。

weixin_26833503的博客 524

肖特基二极管的反向恢复过程

本博客简述肖特基二极管反向恢复过程。

记得诚 1万+

USB Key的安全漏洞

 1、只要数字证书和私钥存放在电脑介质中,或者可能被读入内存,那么都是不安全的。例如招商银行的硬盘版数字证书就是不安全的。因为其私钥和数字证书都有被木马程序盗用的可能。  2、USB Key的安全性在于私钥不能被导出,加密解密运算用Key内的CPU完成,需要PIN码验证。  3、一个最基本的认证系统应该包括:客户端(使用USB Key)、服务器端、数字认证中心(CA)三部分,如果不用CA的

挨踢小诸葛 ---一为振兴中国软件产业尽一份微薄之力 1055

DCMTK编译

dcmtk-3.6.4 使用Unicode?dcmtk的编译选项里没有关于Unicode的选项,OFString的接口里明确使用了OFString(char*)作为构造函数参数,所以,我们可以假设不能够自己擅自在CMakeList.txt里增加一行 add_definitions(-DUNICODE -D_UNICODE) 来强制使用Unicode编码。 亲测:加了之后编译不过 void...

C++ 爱好者 make_it_simple888 1734

usbkey认证原理

大家对USBKey应该不陌生,USBKey是一种类似U盘的东西,里面存储着用户的私钥和数字证书等,实现用户和服务器之间的保密通信。       USBKey的构造       虽然USBKey看上去和U盘、MP3没什么差别,但是USBKey内部的结构是挺复杂的,它内置了CPU、存储器、芯片操作系统(COS)等。通过USBKey内置的密码算法实现对用户的验证。       市面上的USBKey

1540

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

usbkey

USB Key是一种USB接口的硬件设备。它内置,有一定的存储空间,可以。由于用户私钥保存在中,理论上使用任何方式都无法读取,因此保证了用户认证的安全性。

顺其自然~专栏 2426

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

usbkey (根据网络资料整理)

USB KEY也叫UKEY,USBKey,USB Token,国内习惯翻译成U盾,或者优盾。工行的USB Key产品为“U盾”,招行的USB Key产品为“优Key”。USBKey是一种类似U盘的东西,里面存储着用户的私钥和数字证书等,实现用户和服务器之间的保密通信。USBKey的构造 虽然USBKey看上去和U盘、MP3没什么差别,但是USBKey内部的结构是挺...

weixin_33928137的博客 3295

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

个人用户信息安全解决方案

个人用户信息安全解决方案 。。 个人信息安全的唯一可靠的解决方案是使用单位数字证书来登录需要用户名/密码验证的所有网上应用。特别强烈推荐使用硬件USB Key 来作为单位数字证书载体,真正

春暖花开 1978

USB Key身份认证产品的产生与发展

随着互联网和电子商务的发展,USB Key作为网络用户身份识别和数据保护的“电子钥匙”,正在被越来越多的用户所认识和使用。本文对USB Key的产生和未来的发展趋势作了一个简单的介绍。  目前市场上见到的USB Key 按照硬件芯片不同可以分为使用智能卡芯片的和不使用智能卡芯片两种,按照CPU是否内置加密算法又可以分为带算法和不带算法的USB Key。一般我们把不带加密算法的称为存储型USB

挨踢小诸葛 ---一为振兴中国软件产业尽一份微薄之力 823

USBKey的密码学原理

  首先,大致说下U盾的工作流程。   你的数字证书有一对,一份在U盾里的私钥,一份在银行的公钥(其实两份银行都有)。U盾的原理很类似于双向认证的TLS(SSL)或者其它用到RSA的双向证书验证手段,以下步骤可能和U盾实际执行的有所区别,但本质相同:  --银行先给你一个"冲击",它包含了随机数,以及该随机数HASH,它们都由公钥加密,这样就可以保证只有你能解密这个"冲击"  --你计算该随机数...

weixin_30483013的博客 1283

USB Key

和单钥的动态密码锁不同的是,USB Key采用双钥(公钥)加密的认证模式,USB Key是一种USB接口的硬件设备,外形如下图所示。它内置单片机或智能卡芯片,有一定的存储空间,可以存储用户的私钥以及数字证书,利用USB Key内置的公钥算法实现对用户身份的认证。由于用户私钥保存在密码锁中,理论上使用任何方式都无法读取,因此保证了用户认证的安全性。   USB Key产品最早是由加密锁

happylobster 1228

银行应用USB Key身份认证方案

前言:本文为USB Key的厂商SafeNet公司提供的宣传稿件,并不代表本博客作者的观点和看法。  本文的技术解决方案使用的是SafeNet自身的产品,虽然这个产品支持数字签名和PKI体系,可生成并储存私钥和数字证书,是满足个人身份认证安全级别和存储数字证书的一种选择,不过国内也有相当多的其他品牌型号的USB Key产品可供使用,因此如果大家选择USB Key产品应用的话,应仔细对比各方不同

566

基于卫星的网络时钟参考源应用医院信息系统

基于卫星的网络时钟参考源应用医院信息系统 【前言】 随着计算机信息化、网络技术的日益成熟,HIS、LIS、PACS、EMR等医院信息系统已日趋成熟。 医院正在向信息化、现代化、数字化方向不断迈进,信息化高效的工作效率为患者带来了方便,也为医院带来了更直接的经济效益,同时也减轻了医务人员的手工工作压力。 但是信息系统带来便捷和经济效益的同时,也为医院信息数据的安全带来了新的挑战。 【需求分析】 某市人民医院医疗管理信息系统平台是医院内部使用的一套信息管理系统平台。 平台下的相关工作人员通过登录该系统实现信息化

NTP授时服务器 227

中国网银安全分析:USB Key

前文已经提到一种身份认证产品名叫“动态密码锁”,今天我们将介绍另外一种广泛应用的身份认证产品:USB Key。   和单钥的动态密码锁不同的是,USB Key采用双钥(公钥)加密的认证模式,USB Key是一种USB接口的硬件设备,外形如下图所示。它内置单片机或智能卡芯片,有一定的存储空间,可以存储用户的私钥以及数字证书,利用USB Key内置的公钥算法实现对用户身份的认证。由于用户私钥保存在密

u013809395的专栏 782

USBKey数字证书导入操作系统

USBKey是一种USB接口的硬件设备。如坚石诚信的ET199Auto,内置16位国外进口高性能智能卡芯片,有一定的存储空间,可以存储用户的私钥以及数字证书,利用USBKey内置的RSA公私钥算法实现对用户身份的认证。由于用户私钥保存在ET199Auto中,同时智能卡可以很好的防止物理攻击/边频攻击等窃取手段,从而有效保证任何方式都无法读取ET199Auto中的私钥,因此保证了用户认证的安全性。

liaojianbiao的专栏 4892

关于UsbKey的介绍

[color=red]UsbKey解释:[/color] 通俗的说就是打开某项东西的一把钥匙 稍微通俗的就是电子钥匙 不通俗的就是是一种USB接口的硬件设备。它内置单片机或智能卡芯片,有一定的存储空间,可以存储用户的私钥以及数字证书,利用USB Key内置的公钥算法实现对用户身份的认证。由于用户私钥保存在密码锁中,理论上使用任何方式都无法读取,因此保证了用户认证的安全性 1、什么是USB ...

BingFire的博客 4198

私钥、证书、USBKey

一、关于私钥的唯一性严格地讲,私钥既然是世上唯一且只由主体本身持有,它就必须由主体的计算机程序来生成。因为如果在别处生成将会有被拷贝的机会。然而在实际应用上并非如此,出于某些特殊需要(例如,如果只有一份私钥,单位的加密文件就会因为离职员工带走私钥而无法解密。)加密用的公/私钥对会要求在可信的第三方储存其备份。这样,加密用的私钥可能并不唯一。然而签名用的私钥则必须保持唯一,否则就无法保证被签名信息的

CathyYang82的博客 2826
上一篇: 数字证书、公钥和私钥这三者之间的关系
下一篇: 解决WIN7+IE8无法导入根证书的问题
wmljava82278040
博客等级 码龄19年 1粉丝 51原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值