0

我正在使用 SSLStream 与使用 OpenSSL 证书的客户端和服务器进行通信。

我将使用的客户端是一台拥有自己软件的机器,需要使用 RSA 加密。

我做了一个服务器和一个客户端,只是为了测试,使用我的计算机作为客户端,另一台计算机作为服务器,我做了一个简单的密钥交换,只是为了测试这些机器之间的 sslstream 和 de rsa 密码。

两台机器都像这样发送公钥:

byte[] modulus = pubkey.Modulus;
sslStream.Write(modulus, 0, modulus.Length);
sslStream.Flush();

两台机器都收到密钥并像这样创建:

 byte[] exponent = {1, 0, 1};
 byte[] modulus = new byte[256];
 sslStream.Read(modulus, 0, modulus.Length);

 clientPublicKey.D = null;
 clientPublicKey.DP = null;
 clientPublicKey.DQ = null;
 clientPublicKey.Exponent = exponent;
 clientPublicKey.InverseQ = null;
 clientPublicKey.Modulus = modulus;
 clientPublicKey.P = null;
 clientPublicKey.Q = null;

但是,用我将使用的原始客户端进行测试,密钥交换的方式不同。
有没有其他方式交换密钥?因为我确信原始机器使用另一种方式与我的服务器交换这些密钥。

4

0 回答 0