硝基钥匙HSM常见问题

**问:**支持哪些操作系统?

Windows、Linux和macOS。

**问:**我可以用硝基钥匙做什么?

请参阅`overview`_ 受支持的用例。

**问:**密码的最大长度是多少?

Nitrokey使用PIN码而不是密码。主要区别在于,硬件将尝试的次数限制为三次,而密码则不存在限制。正因为如此,一个简短的PIN码仍然是安全的,没有必要选择一个长而复杂的PIN码。

Nitrokey的PIN码最多可以有16位,可以由数字、字符和特殊字符组成。注意:当使用GnuPG或OpenSC时,可以使用32个字符的PIN码,但不被Nitrokey应用程序支持。

**问:**用户密码是什么?

密码至少有6位数,用于访问Nitrokey的内容。这是你在日常使用中会经常用到的密码。

密码最多可以有16位数字和其他字符(如字母和特殊字符)。但是,只要有三次错误的PIN尝试,PIN就会被阻止,所以只有6位数的PIN就足够安全了。

**问:**SO PIN是什么意思?

SO PIN仅在Nitrokey HSM中使用,它类似于具有特殊属性的主密码。请仔细阅读本说明以了解Nitrokey HSM的SO PIN。

SO PIN的长度必须正好是16位数。

**问:**可以存储多少个数据对象(DF、EF)?

总共76KB的EEPROM,可用于

  • 最多。150个ECC-521钥匙或

  • 最大。300个ECC/AES-256密钥或

  • 最大。19个RSA-4096密钥或

  • 最大。38 x RSA-2048 密钥

**问:**我可以存储多少个钥匙?

Nitrokey HSM可以存储20个RSA-2048和31个ECC-256的密钥对。

**问:**加密和签名的速度如何?
  • 卡片上的密钥生成。RSA 2048:每分钟2个

  • 卡片上的密钥生成。ECC 256:每分钟10个。

  • 用卡外哈希创建签名。RSA 2048;每分钟100个

  • 用卡外哈希创建签名。ECDSA 256:每分钟360个

  • 用卡上的SHA-256和1kb数据创建签名。RSA 2048;每分钟68个

  • 用卡上的SHA-256和1kb数据创建签名。ECDSA 256:每分钟125个

**问:**如何区分Nitrokey HSM 1和Nitrokey HSM 2?

使用``opensc-tool --list-algorithms``并与下表进行比较。也请看`这个主题`_,以了解情况表和更多细节。

**问:**支持哪些算法和最大密钥长度?

见下表。

开始

专业+存储

专业2+存储2

Nitrokey 3

HSM

HSM 2

rsa1024

rsa2048

rsa3072

rsa4096

曲线25519

NIST-P 192

NIST-P 256

NIST-P 384-521

脑池192

脑库 256-320

脑库 384-521

secp192

secp256

secp521

**问:**我怎样才能在我的应用中使用Nitrokey HSM的真随机数发生器(TRNG)?

通过使用OpenSC作为PKCS#11驱动,Nitrokey HSM可以与`Botan`_和`TokenTools`_一起使用。

OpenSSL不能直接使用Nitrokey HSM的RNG,因为engine-pkcs11不包含OpenSSL对C_GenerateRandom的映射。

**问:**随机数字发生器有多好?

Nitrokey HSM使用JCOP 2.4.1r3的真随机数发生器,其质量为DRNG.2(根据德国联邦信息安全局BSI的`AIS 31`_)。

**问:**我可以使用哪个API?

OpenSC:OpenSC框架有全面的说明。还有nitrotool作为OpenSC的一个更舒适的前端。

嵌入式系统。对于内存占用最小的系统,sc-hsm-embedded项目提供了一个只读不写的PKCS#11模块。 这个PKCS#11模块对于不需要在用户工作场所生成密钥的部署非常有用。PKCS#11模块还支持德国市场上的主要电子签名卡。

OpenSCDP。SmartCard-HSM与开放式智能卡开发平台OpenSCDP完全集成。详情见公共支持脚本。要导入现有的密钥,你可以使用其SCSH或NitroKeyWrapper。

**问:**Nitrokey HSM 2是否经过通用标准或FIPS认证?

安全控制器(恩智浦 JCOP 3 P60)已通过通用标准 EAL 5+ 认证,达到操作系统级别(`Certificate<https://commoncriteriaportal.org/files/epfiles/NSCIB-certificate%2021-98209.pdf>`__,`Certification Report<https://commoncriteriaportal.org/files/epfiles/Certification%20Report%20NSCIB-CC-98209-CR5%20-%20version%203.0%20(2022-10-14).pdf>%20NSCIB-CC-98209-CR5%20-%20version%203.0%20(2022-10-14).pdf>`__,`Security Target<https://commoncriteriaportal.org/files/epfiles/NSCIB-CC-98209_5-STLite.pdf>`__,`Java Card System Protection Profile Open Configuration, Version 3.0<https://commoncriteriaportal.org/files/ppfiles/ANSSI-CC-profil_PP-2010-03en.pdf>`__ )。

**问:**如何将现有密钥导入Nitrokey HSM?

首先,`设置`_你的Nitrokey HSM以使用钥匙备份和恢复。然后使用智能卡外壳进行导入。如果你的钥匙存储在Java钥匙库中,你可以使用`NitroKeyWrapper`_代替。

**问:**我如何用Nitrokey HSM来保护我的云基础设施/Kubernetes?

在Nitrokey HSM上为Hashicorp Vault/Bank-Vault提供安全钥匙的方法可以在`banzaicloud.com`_找到。

**问:**我可以用加密货币使用Nitrokey HSM吗?

J.v.d.Bosch写了一个简单的、免费的python `程序`_来保护HSM中比特币钱包的私钥。`Tezos`_已被`报道`_与Nitrokey HSM一起工作。