我可以从硬件上访问智能卡密钥并解密吗?

时间:2015-07-07 11:49:18

标签: smartcard smartcard-reader

我想使用Data中的加密密钥对某些SmartCard进行加密。

有没有办法实现这个目标?我想在linux服务器上更新卡上的加密,并及时更改。

我已经对OpenSC感到厌烦,这在某种程度上对我有帮助吗?

2 个答案:

答案 0 :(得分:0)

在非对称密钥方案中,加密密钥是公钥,公共密钥不太可能(与私钥相比)存在于智能卡上。通常,无法从智能卡读取任何密钥,因此唯一要做的是将输入发送到智能卡,以便执行加密。 I / O带宽很可能是瓶颈(因此直接在主机上加密很多更快),非对称密钥不适合批量加密。

是的,如果您的卡提供了PKCS信息,OpenSC会有所帮助,但您应该先处理您的要求,以确保采取合理的方法。

答案 1 :(得分:0)

你的问题是缺乏非常重要的细节,所以在技术上它根本无法回答!

但是对你的问题一个简单的(亵渎)是肯定的 - 你可以访问密钥,你可以解密;更重要的问题是您可以访问的密钥以及您实际执行的解密/加密或签名的内容是什么?

只有两种方法可以使用SC进行加密:

  1. 执行加密操作(发送APDU)到不同的KO(密钥对象):RSA,ECC KO或SM密钥,所有这些都是私钥,你不能从卡上读取它,但你可以PSO(执行安全操作);
  2. 使用从CA对象(证书)中提取的公钥自行完成;
  3. CA对象存储在卡的公共部分中,因此任何人都可以阅读它,并且您自然不需要任何身份验证来访问公共部分; KO属于私有部分,因此您必须首先通过验证卡(验证引脚)来访问它;

    注意:加密和签名之间存在差异;当您加密smth时,您(主机)使用公钥来执行此操作,并且只有受信任的一方(服务器)具有私钥并且可以对其进行解密。对于签名,它是相同的密钥对,但操作是相反的:您(主机)使用私钥对数据(签名)进行签名,并且每个人都可以使用公钥验证(解密)它以验证主机的真实性。