【发布时间】:2015-10-16 09:33:26
【问题描述】:
在我的应用程序中,我想检查我连接的服务器是否可信。我没有使用需要证书费用的 SSL,而是考虑创建自己的身份检查,在连接时向服务器发送随机字符串。服务器将使用硬编码的私钥对字符串进行 rsa 加密并将结果发回。然后,客户端应用程序将使用硬编码的公钥解密结果(它只有公钥,没有私钥)。如果它发送的字符串和它解密的字符串匹配,则服务器的身份将被证明,并且 tcp 通信将使用 AES 加密(在服务器身份被证明后,AES 密钥以 rsa 加密格式传输)。
问题:
- 这种方法可行吗?如果可行,缺点在哪里? (除了我必须保密私钥,显然)
- 在这种情况下,将 SSL 与购买的证书一起使用会获得什么优势?
- 在这种情况下,自签名 SSL 证书是否也足够?我计划公开提供该服务。
【问题讨论】:
-
证书的成本可以忽略不计或为零。推出自己的解决方案并出错的代价可能是巨大的。
-
@EJP 我知道你来自哪里。所以最好的办法是让客户端连接到重定向到我的服务器的域,然后从服务器端发送该域的证书,对吗?如果是,使用自签名证书进行开发是否好,当我上线时,从 Comodo 或 Thawte 等受信任的公司购买证书?
标签: ssl encryption cryptography