每日一得--网银u盾工作原理

浅谈网银USB key使用原理与安全策略 目录 前言 基础知识---加密 什么是USB Key? USB Key的安全性 USB Key安全性应对策略 终篇---如何应对安全漏洞 注:本文整理转载自:http://apex.ncksoft.com/archives 前言 事实上,对于网银和USB Key,有些东西不吐不快,特别是有时在网上的一些论坛里看到有人“分析/评论”使用USB Key的网银的安全性时。于是写下此文,希望能够起到一点科普的作用。 基础知识---加密 我们常见的加密,使用的是“对称加密算法”,也就是说,用一个 阅读详情


随着电子商务的迅速发展,信息安全已成为焦点问题之一,尤其是网上支付和网络银行对信息安全的要求显得更为突出。为了能在因特网上开展安全的电子商务活动,公开密钥基础设施( PKI, Public Key Infrastructure )逐步在国内外得到广泛应用。我们是否真的需要 PKI , PKI 究竟有什么用?下面通过一个案例一步步地来剖析这个问题 : 甲想将一份合同文件通过 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 结构下的所有用户(包括各种应用程序)的证书,把用户的公钥和用户的其他信息捆绑在一起,在网上验证用户的身份。 

    因为数字证书是公开的,就像公开的电话簿一样,在实践中,发送者(即甲)会将一份自己的数字证书的拷贝连同密文、摘要等放在一起发送给接收者(即乙),而乙则通过验证证书上权威机构的签名来检查此证书的有效性(只需用那个可信的权威机构的公钥来验证该证书上的签名就可以了ps:权威机构公钥是公开的,可验证公钥机构的签名,进而证明证书中的公钥是可信的),如果证书检查一切正常,那么就可以相信包含在该证书中的公钥的确属于列在证书中的那个人(即甲)。 


问题 7  至此似乎很安全了。但仍存在安全漏洞,例如:甲虽将合同文件发给乙 , 但甲拒不承认在签名所显示的那一时刻签署过此文件 ( 数字签名就相当于书面合同的文字签名 ) ,并将此过错归咎于电脑,进而不履行合同,怎么办 ? 
    解决办法是采用可信的时钟服务 ( 由权威机构提供 ) ,即由可信的时间源和文件的签名者对文件进行联合签名。在书面合同中,文件签署的日期和签名一样均是十分重要的防止文件被伪造和篡改的关键性内容 ( 例如合同中一般规定在文件签署之日起生效 ) 。在电子文件中,由于用户桌面时间很容易改变 ( 不准确或可人为改变 ) ,由该时间产生的时间戳不可信赖,因此需要一个第三方来提供时间戳服务(数字时间戳服务( DTS )是网上安全服务项目,由专门的机构提供)。此服务能提供电子文件发表时间的安全保护。 

    时间戳产生的过程为 : 用户首先将需要加时间戳的文件用哈希编码加密形成摘要,然后将该摘要发送到 DTS , DTS 在加入了收到文件摘要的日期和时间信息后再对该文件加密(数字签名),然后送回用户。因此时间戳 (time-stamp) 是一个经加密后形成的凭证文档,它包括三个部分:需加时间戳的文件的摘要, DTS 收到文件的日期和时间, DTS 的数字签名。由于可信的时间源和文件的签名者对文件进行了联合签名 , 进而阻止了文档签名的那一方 ( 即甲方 ) 在时间上欺诈的可能性 , 因此具有不可否认性。

 

问题 8: 有了数字证书将公 / 私钥和身份绑定 , 又有权威机构提供时钟服务使其具有不可否认性 , 是不是就万无一失了 ? 不 , 仍然有问题。乙还是不能证明对方就是甲,因为完全有可能是别人盗用了甲的私钥 ( 如别人趁甲不在使用甲的电脑 ), 然后以甲的身份来和乙传送信息 , 这怎么解决呢 ? 
    解决办法是使用强口令、认证令牌、智能卡和生物特征等技术对使用私钥的用户进行认证,以确定其是私钥的合法使用者。 

    解决这个问题之前我们先来看看目前实现的基于 PKI 的认证通常是如何工作的。以浏览器或者其他登记申请证书的应用程序为例说明,在第一次生成密钥的时候会创建一个密钥存储,浏览器用户会被提示输入一个口令,该口令将被用于构造保护该密钥存储所需的加密密钥。如果密钥存储只有脆弱的口令保护或根本没有口令保护,那么任何一个能够访问该电脑浏览器的用户都可以访问那些私钥和证书。在这种场景下 , 又怎么可能信任用 PKI 创建的身份呢 ? 正因为如此,一个强有力的 PKI 系统必须建立在对私钥拥有者进行强认证的基础之上,现在主要的认证技术有:强口令、认证令牌、智能卡和生物特征(如指纹,眼膜等认证)。 


    以认证令牌举例 : 假设用户的私钥被保存在后台服务器的加密容器里,要访问私钥,用户必须先使用认证令牌认证(如用户输入账户名、令牌上显示的通行码和 PIN ),如果认证成功,该用户的加密容器就下载到用户系统并解密。 
通过以上问题的解决,就基本满足了安全发送文件的需求。下面总结一下这个过程 , 对甲而言整个发送过程如下 : 
1. 创建对称密钥 ( 相应软件生成,并且是一次性的 ) ,用其加密合同,并用乙的公钥打包对称密钥。 
2. 创建数字签名,对合同进行散列算法 ( 如 MD5 算法 ) 并产生原始摘要,甲用自己的私钥加密该摘要 ( 公 / 私钥既可自己创建也可由 CA 提供 ) 。 
3. 最后 , 甲将加密后的合同、打包后的密钥、加密后的摘要 , 以及甲的数字证书 ( 由权威机构 CA 签发 ) 一起发给乙。 
而乙接收加密文件后,需要完成以下动作 : 
1. 接收后,用乙的私钥解密得到对称密钥 , 并用对称密钥解开加密的合同 , 得到合同明文。 
2. 通过甲的数字证书获得属于甲的公钥 , 并用其解开摘要 ( 称做摘要 1) 。 
3. 对解密后的合同使用和发送者同样的散列算法来创建摘要 ( 称做摘要 2) 。 
4. 比较摘要 1 和摘要 2, 若相同 , 则表示信息未被篡改 , 且来自于甲。 

    甲乙传送信息过程看似并不复杂 , 但实际上它由许多基本成分组成 , 如 : 对称 / 非对称密钥密码技术、数字证书、数字签名、证书发放机构( CA )、公开密钥的安全策略等 , 这其中最重要、最复杂的是证书发放机构( CA )的构建



备注:

你的数字证书有一对,一份在U盾里的私钥,一份在银行的公钥(其实两份银行都有)

U盾的原理很类似于双向认证的TLS(SSL)或者其它用到RSA的双向证书验证手段,以下步骤可能和U盾实际执行的有所区别,但本质相同:

--银行先给你一个"冲击",它包含了随机数,以及该随机数HASH,它们都由公钥加密,这样就可以保证只有你能解密这个"冲击"

--你计算该随机数的HASH,并和用私钥解出的HASH,两者相同后,便可确认银行的身份

--接下来,以一个只有你和银行知道的算法,利这个随机数和一些其它信息,生成"响应"和相应的HASH,再用私钥加密后发回银行。(此时银行也以相同的算法计算该"响应")

--银行用公钥解密,并验证HASH正确,接下来银行比较两个"相应"是否相同,相同的话客户的身份也确认了

至于私钥的保密性由U盾来完成。U盾的控制芯片被设计为只能写入证书,不能读取证书,并且所有利用证书进行的运算都在U盾中进行。所以,只能从U盾读出运算结果。


ps:
和平常登录HTTPS网站不一样的是,一般HTTPS在TLS握手时,只要验证服务器身份成功便可完成握手。
接下来以前面的"随机数"导出对称加密算法的密钥,开始加密链接

网银u(usb_key_)的工作原理 立即下载

相关推荐

YOLO26算法保龄球馆保龄球目标检测+训练好的模型+743张数据集+pyqt可视化界面.zip

数据集可视化效果可参见下方展示。 【数据集概况】 · 检测类别(中文):[保龄球(bowling)] · 训练集:594 张 · 验证集:75 张 · 测试集:74 张 · 总计:743 张 该数据集聚焦于室内保龄球馆场景,系统性采集了多角度、多姿态下保龄球在不同运动阶段的视觉特征,为保龄球运动过程中的球体识别与轨迹分析提供了高质量标注样本,具有明确的体育训练与智能辅助系统开发价值。... 【训练曲线与评估图】 【模型训练配置】 参数 | 值 模型 | yolo26n 训练轮数 | 100 epochs 输入尺寸 | 640x640 批次大小 | 24 优化器 | auto 初始学习率 | 0.01 训练设备 【关键指标汇总】 训练了 100 个 epoch,最终轮指标: 指标 | 数值 mAP50 | **0.9938** mAP50-95 | 0.6966 Precision | 0.9740 Recall | 0.9974 train/box_loss | 0.9113 train/cls_loss | 0.2862 val/box_loss | 1.1516 val/cls_loss | 0.3116 【训练过程分析】 100 轮训练后 mAP50 达到 0.9938,模型收敛良好。Loss 曲线前段快速下降,后段趋于平稳,val_loss 无反弹,没有明显过拟合。但 mAP50-95 为 0.6966,和 mAP50 差距 0.30,定位精度仍有优化空间。 【模型性能评估】 Precision 0.9740、Recall 0.9974,精召双高,模型对保龄球的检测能力强。 【预测效果展示】 验证集预测效果较好,检测框基本准确覆盖保龄球,置信度整体偏高。 【改进建议】 1. 丰富场景多样性:补充不同光照、背景和遮挡条件下的样本。 2. 提升输入分辨率:640 ...

详细了解一下“U识别”

U识别是一套通过专用硬件(U)来安全存储用户私钥,并在线完成高强度身份认证的技术。它的核心价值在于将最敏感的秘密(私钥)与容易中毒的电脑环境物理隔离开来,是目前最安全的网络身份认证方式之一,广泛应用于金融、政务等高安全要求的领域。

xixixi7777的博客 1859

网上银行安全证书工作原理

网上银行安全证书工作原理 何谓数字证书?   数字证书是一个经证书认证中心(CA)数字签名的包含公开密钥拥有者信息以及公开密钥的数据文件。认证中心的数字签名可以确保证书信息的真实性,用户公钥信息可以保证数字信息传输的完整性,用户的数字签名可以保证数字信息的不可否认性。   数字证书是各类终端实体和最终用户在网上进行信息交流及商务活动的身份证明,在电子交易的各个环节,交易的各方都需验证对方数字...

kekezhangshao的博客 984

走进硬件时代的身份认证(三):网银U安全认证原理解析

编者按:你是不是曾经疑惑,开通网银为什么一定要配发U呢?今天这篇推送或许可以回答你这个问题。U(USBkey),即银行系统在2003年推出并获得国家专利的客户证书USBkey的俗称,是银行提供的办理网上银行业务的高级别安全工具。它外形酷似U盘,像一面牌,时刻保护着网上银行资金安全。U是用于网上银行电子签名和数字认证的工具,它内置微型智能卡处理器,采用1024位非对称密钥算法对网上数据进行加密、解密和数字签名,确保网上交易的保密性、真实性、完整性和不可否认性。本文节选汪德嘉博士《身份危机》一书中U

好习惯成就伟大 1万+

Windows部署Docker

情况是这样的,有n个爬虫和n个服务器,我们不可能每个爬虫的部署,管理和维护都是一个一个服务器登上去弄,所以需要集群管理。:然后就可以一个命令run这个包运行起来你的应用,自动模拟出一摸一样的运行环境,不管是在 Windows/Mac/Linux。(你可以想象就是你pycharm里新建一个文件一样,上下都通用的,你在这个文件里import你要的东西然后在里面写代码运行)如果你就是一个实际的服务器或者你本地的机器想当服务器部署项目,安装Docker是很方便的,首先,去官网下载。Windows部署Docker。

paycho的博客 5267

银企直连UKey集中管理:硬件网关模式与安全实践

在金融科技与企业数字化转型中,硬件安全模块(HSM)和公钥基础设施(PKI)是保障交易安全与身份认证的基石技术。其核心原理在于利用硬件加密设备生成并安全存储私钥,确保关键运算在隔离环境中完成,从而实现交易的不可否认性与抗抵赖性。这一技术价值在于为高安全要求的场景,如电子支付与银企直连,提供了可靠的安全边界。随着企业银行账户与U(UKey)数量激增,传统的分散式物理U管理暴露出效率低下、操作风险高、难以审计等痛点。银企直连UKey集中管理方案应运而生,它通过USB Over IP等远程映射技术,在完全遵循

weixin_30565327的博客 340

多平台部署AnonAddy Docker:Linux/amd64与arm64环境适配指南

AnonAddy Docker是一款基于Docker容器化的匿名邮件转发服务解决方案,支持在Linux/amd64与arm64架构上无缝部署。本文将详细介绍如何在不同硬件平台上搭建AnonAddy服务,帮助用户快速实现隐私保护的邮件转发功能。 ## 为什么选择AnonAddy Docker多平台部署? AnonAddy作为一款开源匿名邮件转发工具,通过Docker容器化部署可以大幅简化安装流程

gitblog_00130的博客 439

数据加密

写的不错的关于各种加密算法的使用的文章。出处不详了。随着电子商务的迅速发展,信息安全已成为焦点问题之一,尤其是网上支付和网络银行对信息安全的要求显得更为突出。为了能在因特网上开展安全的电子商务活动,公开密钥基础设施(PKI, Public Key Infrastructure)逐步在国内外得到广泛应用。我们是否真的需要PKI,PKI究竟有什么用?下面通过一个案例一步步地来剖析这个问题:甲想将一

阿丰的专栏 1330

网银爬虫

网银爬虫,难就难在以下几点: 1、输入密码 2、识别不同形式的验证码 3、解析爬取的数据(有些数据是加密的) 开始从网上找了一些资源,发现网上说的都不靠谱,或许技术细节不方便公开。经过很长时间的探究,终于突破了技术瓶颈。 由于时间原因,一时还无法整理出详细的资料。 有需要私下进行技术交流的请留下微信。...

哦,原来你也在这里。 3072

U工作原理

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

weixin_34214500的博客 1642

爬虫应对银行安全控件-实践

背景 之前有个业务需求,抓取用户在银行的个人信息(经授权)。但由于安全控件的原因,程序在密码框无法输入,导致无法抓取。 银行流水,对网贷平台而言这是非常重要的征信数据。我所知道的,就有好些爬虫在为安全控件的问题头疼,甚至有专门的外包,寻求解决方案。 我做过各种检索和尝试,发现大部分方法都是无效的。但银行征信数据的采集,确实有些平台在做,那就说明这个问题能破,那也就没什么好担心的了,静下心一点...

蓝叶菱的专栏 2034

U的原理

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

求变,从思想开始 9822

U原理研究

(这篇文章写于2010年,部分概念现在不适用) 最近工行搞活动,领了个U回来。这样先进的东西如果只是用于网上银行未免有些浪费,于是有了下面的研究: U的底层驱动比较混乱。早期产品是模拟成智能卡,后来各厂家的实现就五花八门千奇百怪。但无论如何奇怪,调用界面都是相同的:都是利用了windows的CryptoAPI。具体来说,厂家把usbkey的功能以CSP的形式提供,再由上层调用。这样

lm3783的博客 3850

【Java成王之路】EE初阶第二十三篇: HTTP协议和Tomcat

下面要写的就是关于后端的部分了.除了要写 Servlet 构建动态网页的技术.还有一个很重要的,就是前后端沟通的桥梁.也就是网页端和服务器这边如何进行数据交互,这个过程中涉及到了网络通信,也就涉及到一些具体的协议.那么就要涉及到 HTTP 协议.下面的重点就是 HTTP 协议.前面有略微提到过 HTTP 协议.HTTP 协议是一个应用特别广泛的应用层协议.这样的应用层协议,也是需要下层协议的支撑!!HTTP这个协议在传输层主要是基于TCO来实现的.......

m0_64397675的博客 545

fiddler抓取https数据报文-Fiddler抓取app包-Fiddler数字证书解决方案(泣血推荐,原创亲测)

一、HTTPS握手公钥私钥非对称加密解密原理以及数字证书由来。 (1) HTTPS协议=HTTP协议+SSL协议,默认端口:443 (2) HTTP协议(HyperText Transfer Protocol):超文本传输协议。默认端口:80,其中包含请求和响应两部分,其中请求包含:请求行、请求头、请求正文,响应包含:响应行、响应头、响应正文。 (3) SSL协议(Secure Socket Layer) 安全套接层:为NetScape所研发,用以保障在Internet上数据传输的安全,利用数据加密技

测试逍遥子的博客 2128
上一篇: 每日一得--Mysql 如何删除unique key约束
下一篇: 每日一得--DES/3DES/AES区别
一根筋i
博客等级 码龄16年 7粉丝 48原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值