我想用GnuTLS开发网络客户端和服务器。我有几个选择:x509,PSK,SRP还是PGP?哪些方法被认为是最安全的,哪些方法不建议用于需要高水平网络通信安全性的应用程序?
祝福
答案 0 :(得分:2)
如果同时实现客户端和服务器,这些身份验证方法可能都是[几乎同样]安全或不安全,具体取决于您使用它们的方式。如果该软件供第三方使用,我会支持所有方法并让用户决定。
答案 1 :(得分:1)
这取决于谁将使用您的客户端(真实用户,或某种守护进程/ cronjob)以及与您需要的其他软件的互操作性。
对于大多数用途,X509v3证书是可行的方法。到目前为止,它们是在SSL / TLS之上进行身份验证的最广泛使用和实现的方式,并具有最佳的互操作性。在SSL / TLS的背景下,PSK,SRP和PGP是相当奇特的选择。
如果您需要客户端身份验证,并且使用证书进行客户端身份验证不适合您的方案,因为非技术用户需要能够使用它,那么SRP是通过SSL / TLS进行基于密码的身份验证的最安全选择。
使用PGP在概念上等同于X509v3证书,但可互操作性较低。除非您已经在您的环境中部署了基于PGP的PKI,否则使用PGP将不是最佳选择。
PSK是最有限的选择,仅适用于因为严重的CPU /内存限制而必须避免客户端上的公钥计算的情况,这种情况很可能并非如此。