CA服务器开开发(二)---UsbKey认证 服务端

PCI/CA体系下使用USBkey实现认证与加密(一)整体架构 USB Key也叫做USB Token,是一种USB接口的硬件设备, 网银的“U盾”就是USB key的一种。USBkey中存储有用户的私钥以及数字证书,并且可执行生成公私钥对,硬件数字签名的等运算。USB Key主要用于实现网络认证,其结合物理实体和PIN双因子认证得方式,相当比较安全,主要用于网上银行或要求较高的企业远程办公用户。本文简单对USPkey实现认证加密的整体流程进行描述,希望对需要建设企业USBkey认证业务的读者有所帮助。 阅读详情

认证过程为,服务端生成一个随机数(认证原文),CA服务器中使用用户的证书里面的公钥进行加密这个随机数,然后用户收到这个加密后的随机数后使用usbkey里面的私钥来解密出认证原文,然后将原文发送到服务端进行比对,如果和开始生成的原文一致,则用户的身份是合法的。

这里我写了一个WebService来生成原文并保存到数据库。然后通过插件来提取用户证书公钥加密。

  public class CALogic : WebService
    {
        protected static NLog.Logger Log
        {
            get { return NLog.LogManager.GetCurrentClassLogger(); }
        }

        /// <summary>
        /// 证书验证,如果origncode为空 则返回认证原文
        /// 否则对比origncode和数据库中的原文,
        /// 客户端 验证需要调用两次Verify
        /// 1.获取认证原文   原文= Verify(编号,NULL)
        /// 2.客户端解密第一步得到的 原文
        ///    认证结果=Verify(编号,原文)
        /// </summary>
        [WebMethod]
        public string Verify(string username, string origncode)
        {
            var session = CASessionFactory.CurrentSession();
            try
            {
                var user = session.QueryOver<Users>()
                    .Where(o => o.UserName == username).Take(1)
                    .SingleOrDefault();

                if (null == user)
                {
                    return "用户不存在!";
                }
                var cert = session.QueryOver<CaCertificate>()
                                    .Where(o => o.UID == user.UID)
                                    .Take(1).SingleOrDefault();
                if (cert == null) 
                {
                    return "未找到用户证书";
                }
                if (cert.EndTime < DateTime.Now)
                {
                    return "用户证书已过期!";
                }
                switch (cert.State)
                {
                    case CertState.Freeze:
                        return "用户证书已冻结";
                    case CertState.Abort:
                        return "用户证书已吊销";
                    case CertState.Approving:
                        return "用户证书待审批";
                }
                //返回认证原文
                if (string.IsNullOrEmpty(origncode))
                {
                    var result= CaOperator.NewOriginalCode(session, cert);
                    return result;
                }

                //验证认证原文
                return CaOperator.VerifyOriginalCode(session, cert.UID, origncode) ? "认证成功" : "认证失败";
            }
            catch (Exception e)
            {
                Log.Error(e);
                return "认证异常";
            }
            finally
            {
                session.Close();
            }

        }
    }


HTTP抓包实战:定位USBKey证书RSA1024过期问题与合规验证 在信息安全领域,数字证书是身份认证与数据加密的基石,其核心原理基于公钥基础设施(PKI),通过非对称加密算法(如RSA)确保通信实体身份的真实性与数据的完整性。随着计算能力的提升,早期广泛使用的RSA 1024位密钥因存在被暴力破解的风险,已被NIST等权威机构列为不安全算法,其技术价值在于推动行业向更安全的RSA 2048位或国密SM2算法迁移。在金融、政务等高安全要求场景中,USBKey作为硬件证书载体,其内证书的合规性直接关系到系统安全。当业务系统与USBKey交互出现异常时,网络抓包成为关键诊断手段 阅读详情

相关推荐

OA系统集成CA数字证书与电子签名:从认证到验签的落地实践

在身份认证与数据防篡改需求日益严格的背景下,数字证书和电子签名已成为企业OA系统信任体系的基础。CA数字证书认证通过公钥密码与证书链验证操作者身份,电子签名则对业务摘要进行私钥签名,保证审批、合同等行为的不可抵赖。结合双向TLS、证书格式转换、国密SM2等工程方法,可将登录认证与业务签章纳入统一链路,并满足等保迎检与审计追溯要求。这类方案广泛应用于远程办公、线上签约、财务审批与跨系统单点登录场景,最终落到证书生命周期、验签结果和时间同步等运维细节上。

weixin_27199085的博客 103

usb key 开发(一)

淘宝购买地址: 加密U盘购买地址: https://shop33375402.taobao.com/shop/view_shop.htm?shop_id=33375402 2018-05-16 资料地址: http://www.dgyzt.com/share.php?spm=2013.1.0.0.27e85db4EwMsbG&amp;amp;amp;amp;id=7 购买的链接: 新款铝壳 软件...

abc 1万+

usbkey开发代码 c#

关于c# 的 usbkey开发代码,包含验证pin码,写入 读出文件等方法

usb Key 开发(三) with vs2013 qt5.7

文件:config.vssettings 表示是 vs2013

abc 914

#2.4. 证书USBkey-二次开发.

======================================================= 目录 & 说明 ======================================================= ECCdemo 通过PKCS#11接口创建ECC密钥对,并进行签名和验签操作; ------------------------------------------------------- EnumObj 通过PKCS#11接口列举出Token中的各种对象,如证书,公钥,私钥,秘密密钥; ------------------------------------------------------- exportcert 通过PKCS#11接口输出Token中的证书的一些属性; ------------------------------------------------------- FormatKey 格式化Token,并重新划分公私有区大小,设置PIN码重试次数和密钥对数量。 ------------------------------------------------------- GetUSBInfos 通过PKCS#11接口获得slot, cryptoki, token的属性信息; ------------------------------------------------------- GuoMiTest 通过PKCS#11接口产生ssf33和scb2密钥,并进行加解密运算; ------------------------------------------------------- HMACTest 通过PKCS#11接口产生GENERIC SECRET密钥,并进行HMAC-SHA1功能验证; ------------------------------------------------------- InitToken 通过PKCS#11接口实现初始化操作,并进行Ansi和Utf8字符转换; ------------------------------------------------------- OTPDemo 通过PKCS#11接口产生HOTP密钥,并产生OTP结果; ------------------------------------------------------- PKCSDemo 通过PKCS#11接口创建RSA密钥对,并进行签名、加密、签名验证和解密的运算; ------------------------------------------------------- PKCStest 通过PKCS#11接口产生多种类型的密钥,如DES/3DES/RC2/RC4/RSA,并进行加解密运算; ------------------------------------------------------- 注:除Microsoft Visual C++外,你需要另外安装 Microsoft Platform SDK,并把SDK安装目录中的 include目录和lib目录分别放置在VC开发环境选项 (对于VC6来说,是菜单中Tools->Options...弹出的 对话框中的Directories页)中的目录(include) 和库(lib)中VC++的路径之前才能够正确编译链接运 行。

USB-Key.rar_USB KEY_java usb_java usb key_usb key开发_usbkey

关于USBKEY 的开发和介绍文档,对于学习这类编程的人很有用

ASP.NET USB key管理系统的设计与实现(论文+源码)_Nueve

摘 要 随着信息技术的飞速发展,文件的安全性越来越被重视。为了实现对个人重要信息的加密,防止别人窃取个人的文件信息,提高文件的安全性,文件加密成为了一个重要的课题。本设计为了解决用户记忆烦琐的密码问题,以软、硬件相结合的方式,实现了文件加密和解密的功能。具有操作简单、稳定性高、兼容性好、速度快等特点。该系统使用Rockey2加密锁,用Delphi进行开发。本系统分为两部分,一部分是文件的加密解密;另一部分是加密锁的管理工具。后一部分由本人完成。本文主要介绍了USB KEY文件加密工具的总体设计和

weixin_69071556的博客 789

数字后端实战指南 | Innovus Function ECO全流程解析(从LAB到Tapeout)

本文深入解析了在Cadence Innovus工具中进行Function ECO的全流程实战指南。从LAB环境搭建到Tapeout前的签核验证,详细拆解了Pre-mask与Post-mask ECO的核心步骤、关键命令(如ecoDesign)以及常见避坑方案。重点阐述了如何应对时序、DRC等挑战,并强调了备用单元管理与严格验证的重要性,是数字后端工程师提升综合能力的必备参考。

weixin_28452161的博客 637

USBKeylogger 开源项目教程

USBKeylogger 开源项目教程 项目介绍 USBKeylogger 是一个开源的硬件键盘记录器项目,由 justcallmekoko 开发并托管在 GitHub 上。该项目允许用户通过 USB 接口记录键盘输入,适用于安全研究、取证分析和隐私监控等场景。项目的主要特点包括: 硬件支持:支持多种 USB 键盘设备。 数据存储:能够记录并存储键盘输入数据。 开源许可:项目采用开源许可证,方便...

gitblog_01085的博客 913

别再让充电器‘罢工’了!聊聊Charger里VIN-DPM这个不起眼但关键的功能

本文深入探讨了充电IC中的VIN-DPM(输入电压动态电源管理)功能,揭示其如何智能调节充电策略以避免电源适配器过载。通过实际案例和实验室数据,展示了VIN-DPM在提升充电稳定性和效率中的关键作用,并提供了选型、设计和故障排查的实用指南。

weixin_33738578的博客 416

本地部署 Anything LLM+Ollama+DeepSeek R1 大模型并实现外部访问

DeepSeek 一经发布就引起社会的广泛的关注,因为 DeepSeek 的价格低廉,性能卓越,提供了多种使用方式,满足不同用户的需求和场景。本文将详细的介绍如何在本地 Windows 上安装部署 Anything LLM + Ollama 来实现用户和 DeepSeek-r1 对话的功能以及利用路由侠内网穿透实现外网访问。

lyxnwct的博客 1895

Node.js实现双向证书认证(USBKey认证)

一、双向证书认证原理 普通的http协议可以通过用户名+口令的方式通过认证,用户名和口令是用post或者get方法发送过去的,而且是明文发送。也就是说,随便从网络上一抓包就能获取你的用户名和密码。解决方案是,使用javascript将用户名和口令经过MD5混淆后发送,只发送MD5值,但这不是本文要讨论的话题。 另一种更为有效的解决方法是https,也就是安全的http。采用https的服务器必

Rumor Legend 9883

Python 爬虫实战:赛事分析平台构建与比赛数据抓取

在体育赛事日益丰富的今天,对比赛数据的收集与分析对于运动员、教练团队以及体育爱好者都具有重要意义。通过构建一个赛事分析平台,我们可以系统地抓取、整理和展示各类比赛数据,为用户提供全面的赛事洞察。本文将深入讲解如何利用 Python 爬虫技术实现这一平台的构建,涵盖从目标网站分析到数据可视化展示的全过程。

u014481728的博客 3179

KeyID、签名验签、CA 证书怎么选?USBKey 四种认证方案从入门到最高级

USBKey 不是只有一种用法。Web 端有 KeyID、UserName+KeyID、签名验签、CA 证书四档方案,C/S 端也有四套。本文按安全等级逐档拆解,并给出选型决策表,帮你用最小改动拿到够用的安全。

m0_75002133的博客 284

2025年9月GESP(C++四级):排兵布阵

作为将军,你自然需要合理地排兵布阵。地图可以视为n行m列的网格,适合排兵的网格以 1 标注,不适合排兵的网格以 0 标注。现在你需要在地图上选择一个矩形区域排兵,这个矩形区域内不能包含不适合排兵的网格。请问可选择的矩形区域最多能包含多少网格?

王老师青少年编程 1377

Android系统修改驱动固定USB摄像头节点绑定前后置摄像头

Android系统中usb摄像头节点会因为摄像头所接的usb口不同或者usb设备识别顺序不一样而出现每次开机生成的video节点不一样的问题。由于客户app调用摄像头时,需要固定摄像头的节点。因此需要针对前面的情况做处理。

Android系统开发笔记 2250

如何通过usbkey智能密码钥匙完成用户登录的双因子认证

摘要: 随着数字化转型加速,企业Web系统面临严峻安全挑战。本文剖析USBKey智能密码钥匙如何通过双因子认证(挑战-响应与数字证书)构建全链路安全防护,其核心技术包括国密算法芯片、硬件级安全存储及跨平台兼容能力。实际应用中,金融、政务、工业等领域部署案例显示:USBKey可有效防范钓鱼攻击、实现电子签章安全及产线准入控制,某城商行年损失减少1200万元。未来将融合AI行为分析、量子密钥分发等技术,向零信任架构演进,平衡安全与效率需求。

安当加密 1086

QT 实现QStackedWidget切换页面右移动画

首先截取当前界面的图片,渲染到一个QLabel上,然后设置QPropertyAnimation动画,动画的作用对象就是这个QLabel,不断的改变geometry;当动画结束的时候,隐藏并释放这个QLabel。以下是一个QStackedWidget,放了两个QPushButton在上面,点击切换不同的界面。为了方便查看动画特效,设置了每个界面的背景图片。

希望能帮助大家,希望大家多多支持,你们的支持是我前进的动力。 881

身份认证与访问控制

身份认证与访问控制 身份认证技术概述 身份认证的概念和种类 多数银行的网银服务,除了向客户提供U盾证书保护模式外,还推出了动态口令方式,可免除携带U盾的不便,这是一种动态密码技术,在使用网银过程中,输入用户名后,即可通过绑定的手机一次性收到本次操作的密码,非常安全快捷方便。 1. 身份认证的概念 通常,身份认证基本方法有三种:用户物件认证;有关信息确认或体貌特征识别。 认证(Authentic...

weixin_41924879的博客 1万+

[QMT量化交易小白入门]-八十九、深度学习训练多维特征进行金融价格行情预测

本专栏主要是介绍QMT的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写100篇左右。QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步。

木头大左的博客 217

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Win2008r2 AD域控+第三方CA USBKey智能卡登录实验

  关于AD域控服务器的搭建和如何使用第三方CA证书做USBKey(智能卡)登录的配置请见下列参考地址: http://www2.openxpki.org/docs/guide/html_chunked/ch08s03.html https://support.microsoft.com/zh-cn/kb/281245 http://blog.youkuaiyun.com/jinhill/articl...

七侠镇莫小贝的同福客栈 9482

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

银行网站 ca服务器的安装,建行网银CA认证系统建设案例介绍

建行网银ca认证系统建设案例介绍 需求分析银行业在国民经济和社会生活中扮演着重要的角色.银行的业务数据多是和储户的账户有关的敏感数据,如储户的账户号码、账户密码、账户中的存款金额等,而internet是一个开放的公共网络,在这样一个开放的网络上拓展银行的传统业务,安全性是要考虑的首要因素.网上银行受到的安全威胁主要来自下面几个方面:对用户身份的假冒:攻击者盗用合法用户的身份信息,以假冒的身份与他人...

weixin_31001313的博客 1826

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

常见WEB应用登录身份认证方式对比

身份认证和登录是两个不同的概念,登录指从识别用户身份,到允许用户访问其权限相应的资源的过程。在登录的过程中,“鉴权”与“授权”是两个最关键的过程。而身份认证只是其中的一个环节,即“鉴权”。 身份认证的形式丰富多彩,传统的方式是用户名和密码验证。随着等保2.0普及,越来越多的应用需要采用双因素认证或多因素认证,即多种认证方式组合使用来保证用户登录的安全性。目前常见的WEB应用登录身份认证登录方式包括USBkey ID绑定登录,OTP动态口令,CA数字证书,FIDO快速身份认证等。各种登录方式的对比如..

安当加密 2784

从电网调度到军用指挥车:USBKey 智能密码钥匙八个真实落地场景拆解

USBKey 不只是登录工具。本文拆解电网调度指令签名、政务 SSO、轨交运维、车间双因素、SCADA 认证、CAD 授权、ERP 防盗版、军用指挥车八个真实案例,看硬件密码钥匙在不同行业怎么落地。

m0_75002133的博客 380

usbkey (根据网络资料整理)

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

weixin_33928137的博客 3293

【信息安全】-身份认证技术

身份认证技术 用户身份认证机制可划分为身份标识和身份认证两个组成部分 身份标识:为用户建立能够确认其身份状况的信息的过程 身份认证:系统确定用户合法身份的过程 1.基于口令的身份认证 2.质询-响应式身份认证 3.基于生物特征的身份认证 4.基于位置的身份认证 ...

vector的博客 6995
上一篇: CA服务器开开发(一)---颁发证书,生成pfx证书安装文件
下一篇: CA服务器开开发(三)---UsbKey认证 客户端Activex Com组件
xugangjava
博客等级 码龄16年 83粉丝 72原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值