我想为多个远程用户配置一个IKEv2虚拟专用网网关,以访问一个专用网络。
我有一个测试设置,在这里,响应者使用一个自签名的证书来验证自己。发起者使用用户名和密码进行身份验证。
有几个问题:
除了部署正确的PKI之外,我更愿意通过PSK对发起方和响应方主机执行相互身份验证。此密钥将安全地分发给所有用户。外部攻击者将没有PSK,因此弱密码或已泄漏的密码不足以进行访问。用户名和密码身份验证允许针对现有目录系统对特定用户进行标识和授权,而无需为每个用户生成和分发唯一的密钥。
在IKEv2中这样的事情可能发生吗?据我所知,通过IKEv1中的Xauth是可能的。但对于IKEv2,我不太确定:粗略地看一下RFC 5996,第2.16节,情况似乎并非如此。用户名和密码身份验证将通过一些EAP方法进行,并且:
启动器表示希望通过从IKE_AUTH交换中的第一条消息中删除AUTH有效负载来使用EAP。(注意,非EAP身份验证需要AUTH有效负载,因此在本文档的其余部分中不标记为可选。)
这似乎表明发起者只能使用EAP (用户名和密码)或PSK中的一个。
虽然问题是关于IKEv2协议,我打算实现响应结束与强天鹅,因此,任何额外的专业知识,将不胜感激。
发布于 2018-03-16 17:46:42
IKEV2中的客户端和服务器身份验证是不相关的。因此,理论上,您可以使用PSK对服务器进行身份验证,用EAP验证客户端。但是,有关EAP身份验证的RFC声明如下:
除了使用公钥签名和共享秘密进行身份验证外,IKE还支持使用RFC 3748 EAP中定义的方法进行身份验证。通常,这些方法是不对称的(为用户对服务器进行身份验证而设计的),它们可能不是相互的。因此,这些协议通常用于向响应方验证发起者,并且必须与响应方对发起者的基于公钥签名的身份验证一起使用。
因此,将PSK服务器身份验证与EAP客户端身份验证相结合是不符合RFC的。但是,可以使用strongSwan来配置它。但请注意,大多数客户不允许这种组合。
许多路战客户端实际上根本不支持PSK身份验证,因为在这种情况下,如果同一个PSK用于多个客户端,则这是一个潜在的安全风险,因为理论上所有知道PSK的客户端都能够模拟服务器。
我有一个测试设置,在这里,响应者使用一个自签名的证书来验证自己。
为什么不使用让我们加密呢?
发起者只通过用户名和密码进行身份验证,因此外部攻击者可以很容易地试图猜测弱密码或受损密码。
使用PSK对服务器进行身份验证不会改变这一点。您需要在客户端身份验证中添加第二个因素才能对此执行任何操作(例如,首先使用证书或PSK,然后执行EAP)。然而,这需要对RFC 4739的支持,这是许多客户端所缺乏的(尽管strongSwan支持它)。
https://serverfault.com/questions/902020
复制相似问题