安全套接字与数据加密

时间:2018-04-24 13:43:36

标签: sockets security encryption network-programming

我有一个项目,需要加密两个对等体之间发送的数据。我不需要验证服务器或客户端,我只需要我的数据在网络上不可读。

我有两个选择:

1-安全套接字
- 打开安全插座
- 写清楚数据

2-套接字
- 打开插座
- 加密数据
- 写入加密数据

使用安全套接字而不是"正常"是否有性能优势?我写加密数据的socket? (让我们说我在这两种情况下使用相同的密码)

2 个答案:

答案 0 :(得分:2)

不,在使用的算法方面,速度方面没有区别。通常,您需要传输协议中的消息的真实性,完整性和真实性。通常在初始握手之后,这是通过对称算法以相当有效的方式执行的。

创建自己的传输协议非常危险,新手创建和实现安全协议的可能性大约为零。 例如,如果您不了解明文或填充oracle攻击,那么您可能会丢失邮件的机密性,基本上会给您留下没有任何保护的邮件。

请检查最快的TLS 1.2或1.3密码套件并使用它。您可能想查看Google向TLS引入的内容;他们真的专注于速度和安全。

答案 1 :(得分:1)

(请注意,没有身份验证的安全套接字允许中间人(MITM)拦截,从而清楚地看到您的数据。)

安全套接字需要更长时间才能建立,然后采取相同的加密方式。因此,性能方面,如果您有一个预共享的对称加密密钥,您将从跳过ssl / tls握手并直接转到tcp套接字中受益。对于许多短连接来说,这将显示为一个很大的加速,特别是如果他们没有使用sslcontext和会话恢复(很多JSSE术语,我知道,但我保持模糊,因为你知道或者你不知道,这里不是这个地方。)

但是,如果您没有预共享密钥,那么整个握手实际上是您不应该避免的。