智能卡相关术语

smard card和hsm(hardware security module)本质上一种东西,只是不同的行业叫法不一样。都是通过芯片卡或集成电路提供安全功能。

相关名词:

  • PKCS#11

    也叫作Cryptoki,是RSA实验室最初发布,现已为OASIS标准。它定义了智能卡与应用程序之间的编程接口。PKCS#11主要在Linux上使用的比较多。

  • CAPI和CNG

    Cryptographic Application Programming Interface也叫作CryptoAPI,Microsoft Cryptography API, MS-CAPI。由Windows NT 4.0引入,作为Cryptographic Service Provider的编程接口。
    CNG的全称是Cryptography API: Next Generation,是由Windows Vista中引入,作为CAPI的升级,在CNG中把provider分为了Key storage provider和Cryptographic Algorithm Providers,前者进行密钥创建,存储及签名,后者提供加密算法。CNG提供了ECC等现代算法的支持,还支持硬件加密模块(HSM,Smard Card)。

  • Cryptographic Service Provider(CSP)/Key storage provider(KSP)/Cryptographic Algorithm Providers(CAP)

    Cryptographic Service Provider是CAPI的实现库,同时提供密钥管理和加解密功能,不支持ECC算法。
    Key storage provider(KSP)为CNG提供密创建和存储功能,默认情况下导入的私钥会保存在Microsoft Software Key Storage Provider中,如果需要指定KSP,则要用certutil命令。
    Cryptographic Algorithm Providers(CAP)为CNG提供加密解功能

    关于CSP/KSP参考:https://www.gradenegger.eu/en/basics-cryptographic-service-provider-csp-and-key-storage-provider-ksp/

  • Microsoft Base Smart Card Cryptographic Service Provider

    这是一个基于CAPI接口的CSP,所以同样不支持ECC算法,用于与Smard Card/HSM交互,它提供了相当于PKCS#11的功能。
    示意图

  • miniDriver

    Microsoft Base Smart Card Cryptographic Service Provider通过miniDriver与Smard Card进行交互,把来自Microsoft Base Smart Card Cryptographic Service Provider的请求转发给Smard Card。
    Smard Card也可以直接实现CSP,KSP,CAP,而不是通过Microsoft Base Smart Card Cryptographic Service Provider中转请求,但是这样对硬件厂商来说会增加成本。miniDriver是为了降低硬件厂商开发CSP的成本。

  • PC/SC (short for Personal Computer/Smart Card)

    是智能卡读卡器与计算机通迅的语义接口,最早为Windows上实现,后来Linux和MacOS也提供了对应的实现。
    WinSCard智能卡函数

  • CCID/ICCD

    CCID (chip card interface device)是芯片卡设备,用于USB读卡器
    ICCD (Integrated Circuit(s) Card Devices),俗称IC卡,用于USB读卡器
    这两种卡都可以通过PC/SC协议通迅

  • FIPS 140

    美国联邦信息处理标准FIPS(Federal Information Processing Standard)是一种针对密码算法模块的安全标准,通过部署FIPS功能,能够提升设备的安全性能。
    FIPS是由美国国家标准和技术研究院制定,由美国商务部批准的针对密码算法安全的标准,它规定了一个安全系统中的密码算法模块应该满足的安全性要求。FIPS 140是FIPS系列标准中针对密码算法模块的安全标准,是进行密码算法模块评测认证的基础标准,共分Level1, Level2, Level3三个等级。
    FIPS 140–2表示的就是FIPS 140 Level 2

  • FIDO(U2F,UAF)

    U2F(Universal 2nd Factor)和UAF(Universal Authentication Framework)是FIDO开发的第一代身份验证标准。
    U2F提供双因素身份验证,但不支持生物识别和无密码认证,主要用于银行。
    UAF提供无密码认证和生物认证

  • FIDO2

    FIDO2是FIDO开发的第二代身份验证标准,是对FIDO(U2F,UAF)的扩展,可以支持单因素和多因素身份验证,也支持无密码和生物识别。FIDO2由WebAuthn和CTAP组成,支持Web应用和本地应用的无密码和多因素身份验证。

  • OTP,HOTP,TOTP

    OTP 是 One-Time Password的简写,表示一次性密码。
    HOTP 是HMAC-based One-Time Password的简写,表示基于HMAC算法加密的一次性密码。
    TOTP 是Time-based One-Time Password的简写,表示基于时间戳算法的一次性密码。
    Yubico OTP,可以在每次触摸yubikey按钮时从键盘键盘一串密码
    Yubico Authenticator可以支持HOTP,TOTP,并与yubikey集成。其实就是提供硬件支持的Gooogle Authenticator,需要在手机或电脑上下载Yubico Authenticator应用。

  • PIV(Personal Identity Verification)

    PIV的规范由FIPS 201定义(2005年),主要用于智能卡身份认证,比如这种门禁卡门禁卡
    当用于Windows登录时则需要提供对应的智能卡CSP,在Linux上用于登录时需要提供PKCS#11接口。

  • OpenPGP

    是一个加密标准,主要用于签名和加密文件,也可以用于签名和加密电子邮件,在Linux上广泛使用。
    OpenPGP也支持使用使用智能卡进行加密,称为OpenPGP card,使用ISO/IEC 7816标准,但是OpenPGP Card只实现了ISO/IEC 7816-4/-8的子集,比PIV卡定义的还要早,一般长这样
    OpenPGP card
    SIM卡
    当然使用的时候是需要读卡器的。

  • OpenSSH

    ssh命令可以通过-I选项指定PKCS#11库来支持智能卡加密,使用PKCS#11时需要使用证书认证。

Views: 0

评论

发表回复