• UKey学习


    介绍

    USB Key的中文大名是智能密码钥匙,它是一种USB接口的硬件设备,内置芯片,有一定的存储空间,可以存储证书和私钥。凡是使用私钥进行的运算,都是在USB Key中完成。USB Key可随身携带,在需要使用时才接入电脑,进一步降低了私钥外泄的风险。再加上通用性强,价格亲民(硬件价格一般在几十元左右),因此是使用最为广泛的密码安全工具之一。USB Key最常见的应用场景就是网银了,前几年几大银行采购的USB Key数量是以亿计的,有设备厂商就是因此而上市。

    用到USB Key的地方主要是数字签名和私钥解密

    • 在需要数字签名时,业务系统将明文送到USB Key内部,由USB Key中的私钥对明文的摘要值进行加密;
    • 在需要解密时,业务系统将密文送到USB Key内部,由USB Key中的私钥对密文进行解密。由于USB Key的私钥还有口令保护,所以在界面上会弹出对话框,要求用户输入口令。用户输入正确口令后,USB Key的硬件使用私钥完成运算,并将结果返回给业务系统。

    流程如下图。

     

    从开发的角度讲,如果USB Key存储的是RSA证书,那应用系统可基于CryptoAPI/CSP体系实现设备完全透明,也就是说应用系统不需要调用USB Key的任何接口,甚至不需要知道有没有USB Key,只需通过标准的CryptoAPI接口,就可以使用Key中的私钥和证书。

    如果应用系统使用的是装有国密算法证书的USB Key,则无法使用CryptoAPI/CSP体系,而需要调用标准的国密库接口。不过现在支持国密算法的USB Key都支持标准的国密库接口,也就是说应用系统只要开发一次,也可以使用多种国密算法USB Key。

    当然,由于Windows的CSP体系不支持国密算法,应用系统还必须指明要使用的是哪一种或几种USB Key,做不到完全透明。

    参考资料

    林林总总的密码安全设备(一)

    密码学博客

    包括:林林总总的密码安全设备、国密SKF库调用开发指南、

    针对支持国密算法USB KEY设备的应用,国家颁布一个行业标准《智能密码钥匙应用接口规范》(GM/T0016-2012),市面上销售的国密算法的USB KEY设备也都(其实也是必须)支持这个接口规范。因此,只要根据这个规范开发的应用程序,就可以兼容使用不同厂家及品牌的USB KEY产品。由于此规范中函数名称都以SKF开头,所以我们一般把按照此规范提供的设备开发接口库叫做SKF库或SKF接口。

    在调用任何接口之前,都需要先加载所使用USBKEY设备的SKF库文件,这个文件是由KEY厂商提供,

    【Ukey】C#或者Java对Ukey的判断操作

    USkey全解析

    包括概要、飞天Ukey介绍、证书导入、证书生产、证书格式转换【Java版】

    国密算法的EKey的使用

    PCI/CA体系下使用USBkey实现认证与加密(一)整体架构

    CSP编程

  • 相关阅读:
    C语言的AES加密
    curl指定域名的IP
    gdb调试知识
    C++获取寄存器eip的值
    C++嵌入lua
    [置顶] python字典和nametuple互相转换例子
    【python】redis基本命令和基本用法详解
    xshell登录到CentOS7上时出现“The remote SSH server rejected X11 forwarding request.
    selinue引起的ssh连接错误
    SCP和SFTP相同点和区别
  • 原文地址:https://www.cnblogs.com/peterYong/p/14441996.html
Copyright © 2020-2023  润新知