2014-07-23 95 views
1

我收到此EAP-TLS片段从RADIUS服务器:服务器公钥

enter image description here

我在在C uint8_t阵列接收该分组,并且当我比较在这个消息中包含公钥的位,我发现它们都是不同的。这让我相信公钥已经被加密了。如果是这样,它如何加密,我能做些什么来检索公钥?它与公钥后面的签名(256位)有关吗?我需要它来完成双方的DH参数生成。

谢谢!

+0

区别在哪里?至少有8个字节对我来说看起来是一样的。 – EJP

+0

你如何在C中接收它们?是否有字节网络订购问题? – Bruno

+0

区别在于pubkey和签名,即EC Diffie-Hellman服务器参数,其中有些是相同的,但其中大部分是不同的。我用C接收它们,我不相信这是一个字节顺序问题,因为其余的字节是完美的 –

回答

0

我在C中的uint8_t数组中收到了这个数据包,当我把这个比特与这个消息中包含的公钥比较时,我发现它们都是不同的。

该服务器的公共密钥B(这是g^b是对协议的每次运行不同。如果你看到重复的价值观,那么有些事情是错误的。见RFC 4492,第18页:

市民:短暂ECDH公钥

“短命” 是指暂时的,其使用一次,然后扔掉。


它是如何加密,我能做些什么来检索公钥

它不加密的;它是一次使用的临时密钥。


这是否与签名(256位)包围的PUBKEY后?


OpenSSL的具有椭圆曲线密码维基页面。见Elliptic Curve Cryptography

+0

我想你误解了我的问题,我把这个相同数据包的内容复制到一个uint8_t [ ]数组,并打印出数组的内容。当我比较每个单独的索引时,我发现它们与我在Wireshark中看到的不同。感谢您清除签名部分 –

+1

所以我很清楚:您在编程站点上询问Wireshark复制/粘贴问题?叹息...... – jww

+0

我的问题是,为什么我通过Wireshader接收到的数据包的内容与Wireshark显示的内容不同。我不知道这是否是复制/粘贴问题 –