微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

与 PKCS11 不同的派生共享秘密

如何解决与 PKCS11 不同的派生共享秘密

我正在尝试从 ECDH 生成共享会话密钥。我可以用不同客户的私钥和公钥来完成,它给了我相同的密钥。例如:

openssl pkeyutl -derive -inkey client_priv_key.pem -peerkey client1_pub_key.pem -hexdump
    
    0000 - db 36 45 25 da 9d 65 da-13 bb 42 27 62 74 1e e0   .6E%..e...B'bt..
    0010 - 3d 3f a8 4d be da 10 fb-96 a6 90 b0 3f a4 c3 08   =?.M........?...
    
openssl pkeyutl -derive -inkey client1_priv_key.pem -peerkey client_pub_key.pem -hexdump 
    
    0000 - db 36 45 25 da 9d 65 da-13 bb 42 27 62 74 1e e0   .6E%..e...B'bt..
    0010 - 3d 3f a8 4d be da 10 fb-96 a6 90 b0 3f a4 c3 08   =?.M........?...

但是,我正在尝试通过 PKCS11 引擎对我的 yubikey neo(在插槽 3 内有钥匙)做同样的事情。

我正在使用这些命令:

openssl pkeyutl -engine pkcs11 -keyform engine -derive -inkey 'pkcs11:manufacturer=piv_II;id=%03;type=private;pin-value=123456' -peerform PEM -peerkey client_pub_key.pem -hexdump

engine "pkcs11" set.
0000 - f8 36 e5 ec 0a 55 12 92-4b 3d 04 aa 2d f1 ab 0c   .6...U..K=..-...
0010 - b6 18 0f 9d 55 54 9c e9-b5 21 b6 ca be 34 69 e0   ....UT...!...4i.

openssl pkeyutl -engine pkcs11 -derive -keyform PEM -inkey client_priv_key.pem -peerform engine -peerkey 'pkcs11:manufacturer=piv_II;id=%03;type=public' -hexdump

engine "pkcs11" set.
0000 - fb 72 f7 34 9e 52 9a 04-e2 3b bd 5f 89 91 e0 37   .r.4.R...;._...7
0010 - 30 c2 1e 94 e1 a8 e6 9c-5c 27 7b 35 12 78 b1 55   0.......\'{5.x.U

正如你所看到的,秘密是不同的。我已经尝试通过 pkcs15-tool --read-public-key 03 -o pub.key 和其他方式提取公钥,并且它提取了相同的公钥,但随后我将其传递给文件 pub.key 的命令,但发生了同样的情况。>

你能帮我解决这个问题吗? 谢谢。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。