私有软件的SSL方法

时间:2015-04-20 10:57:34

标签: ssl openssl ssl-certificate

将SSL证书用于私有应用程序的正确方法是什么?私有我的意思是我是唯一的用户,软件正在我的计算机上运行。

我希望在我的两个程序之间进行加密通信。我想在它们之间发送密码,所以我需要确保远程程序不是假的/黑客攻击。

据我所知,如果没有涉及第三方,我不需要从CA获得付费SSL证书。

以下是否正确?

  1. 服务器具有私钥和自签名SSL证书。
  2. 客户端拥有服务器自签名证书的副本(需要妥善保护)。
  3. 在握手期间,服务器将证书发送给客户端。
  4. 客户端检查证书是否相同。
  5. 客户端可以启动加密传输。
  6. 还有其他方法吗?

2 个答案:

答案 0 :(得分:1)

  

服务器具有私钥和自签名SSL证书。

  

客户端拥有服务器自签名证书的副本(需要得到很好的保护)。

客户端具有证书副本或证书公钥或这些证书的指纹。由于证书是公开的,因此不需要保护这些信息。只需要保护服务器的私钥(仅驻留在服务器端),因为使用此密钥可以证明证书的所有权。

  

在握手期间,服务器将证书发送给客户端。

  

客户端检查证书是否相同。

有点儿。它可能会检查证书或公钥或指纹。

  

客户端可以启动加密传输。

我建议您阅读有关certificate and public key pinning的OWASP文章。它还包含各种环境的示例代码。

答案 1 :(得分:0)

  
    

客户端拥有服务器自签名证书的副本(需要得到很好的保护)。

  

客户端没有服务器证书的副本。他们在SSL握手中获得它

  
    

客户端检查证书是否相同。

  

NO!客户将拥有签署服务器证书的证书颁发机构的公共证书。他们将使用CA证书验证服务器证书,包括证书到期,CRL等。不比较'相同'

在您的情况下,您使用的是自签名证书。应使客户端忽略自签名证书并继续SSL握手。

我建议你再次通读SSL握手序列。