有两个客户端和一个服务器。每个客户端生成一个 RSA 密钥对并将公钥上传到服务器。服务器将公钥与上传期间指定的用户标识符相关联。
然后客户端 A 需要与客户端 B 共享数据。它向服务器请求客户端 B 的公钥。公钥的指纹呈现给用户进行视觉验证。用户 A 有责任决定她是否信任用户 B 的公钥,反之亦然。
双方用户相互信任对方的公钥后,就可以为对方加密数据。客户端A用客户端B的公钥加密数据,上传到服务器。客户端 B 下载数据并解密。
客户端使用操作系统实现的 TLS 与服务器通信。服务器使用带有 MAC 令牌的 OAuth2 对客户端进行身份验证。
当然,更大的问题是,如果这个系统从这个高度的角度来看已经存在一些安全问题,那么这篇文章的问题是关于证书的。
在这种情况下,当更高的目标是提供端到端加密,并且其中一个决定是让用户验证彼此的公钥时,拥有自签名证书是否有任何好处?公钥?
例如,据说自签名证书保证生成它的人也拥有相应的私钥。当不涉及证书时,客户端 A 使用认为是客户端 B 的公钥但实际上不是公钥的东西加密是否存在安全风险?