用户的私钥仅用于身份验证?


8

我有一个关于OpenVPN协议的简单问题。假设我们有两个不同的用户,同一服务器使用不同的密钥,并且两个密钥均为1024位。如果这两个用户发出完全相同的请求,并且有人正在嗅探服务器上的数据,那么这个人(嗅探器)会为两个用户看到相同的数据还是看到不同的数据?问题是要知道用户的私钥是否在身份验证后干扰了加密,还是仅在身份验证期间使用。谢谢。


使用任何语义上安全的加密,即使密钥和数据都相同,加密的数据也会有所不同。因此,您的问题可以更精确地作为“ OpenVPN协议是否使用语义上安全的加密?”来重申。同样,在某些加密模式下,您传输的任何数据都会影响以后发送的数据的加密。因此,即使仅在最初使用密钥,它仍然会影响加密数据在整个连接中的外观。
卡巴斯德(Kasperd)

Answers:


10

如果这两个用户发出完全相同的请求,并且有人正在嗅探服务器上的数据,那么这个人(嗅探器)会为两个用户看到相同的数据还是看到不同的数据?

不同的数据。

问题是要知道用户的私钥是否在身份验证后干扰了加密,还是仅在身份验证期间使用。

公钥/私钥仅在身份验证/密钥协商期间使用。


OpenVPN可以以两种模式之一进行操作,即预共享密钥或将TLS与证书一起使用。预共享密钥是静态的,恒定的,但是您询问的是证书模式。

我不打算赘述,您可以自己查找TLS,但基本上TLS使用证书(和私钥)进行身份验证以及在密钥协商阶段使用。它生成对称的加密密钥(例如BlowFish,AES等),并使用公共密钥加密技术安全地共享该密钥。

然后使用对称加密对实际消息进行加密。每个会话都有自己的独立加密密钥(因此,如果断开连接并重新连接,则实际上会得到一个不同的密钥)。同样,每个用户将具有不同的会话,因此具有不同的密钥。

这样做有两个原因。对称加密比非对称加密要快得多,因此对于高吞吐量而言,对称加密是首选方法(困难在于密钥共享,这是协商阶段解决的问题)。同样,通过每次生成一个新密钥,被泄露的密钥很难透露其他会话的数据(FS)。


啊,我们走了-我在写作过程中的答案,只是表达得更加清楚。向我+1。
MadHatter 2014年

+1并被接受为答案。您的回答非常宝贵,并消除了我的问题。谢谢
user2864778 2014年

1

每个客户端都将使用客户端和服务器之间的协商密钥对自己的数据进行加密,因此VPN网关上接收的数据对于两个用户而言都是不同的。


2
第一部分不正确。OpenVPN使用TLS,它不使用公共密钥加密来加密消息。
鲍勃
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.