Sockets IPv6:为什么IPv4映射地址存在安全风险?

Sockets IPv6:为什么IPv4映射地址存在安全风险?,sockets,security,ipv6,ipv4,openbsd,Sockets,Security,Ipv6,Ipv4,Openbsd,各国: 出于安全原因,OpenBSD不将IPv4通信路由到AF_INET6套接字,也不支持IPv4通信,其中IPv4通信被视为来自IPv6地址,如::ffff:10.1.1.1。如果需要同时接受IPv4和IPv6通信,请侦听两个套接字 然而,对于这些“安全原因”没有任何解释。它们是什么?我想不出与该映射相关的任何安全问题。据我所知,主要原因是将IPv4和IPv6堆栈分开。处理来自一个堆栈但被另一个堆栈处理的数据包所需的黑客操作会导致安全风险。我不知道OpenBSD使用的具体动机,但我知道至少有一

各国:

出于安全原因,OpenBSD不将IPv4通信路由到AF_INET6套接字,也不支持IPv4通信,其中IPv4通信被视为来自IPv6地址,如::ffff:10.1.1.1。如果需要同时接受IPv4和IPv6通信,请侦听两个套接字


然而,对于这些“安全原因”没有任何解释。它们是什么?我想不出与该映射相关的任何安全问题。

据我所知,主要原因是将IPv4和IPv6堆栈分开。处理来自一个堆栈但被另一个堆栈处理的数据包所需的黑客操作会导致安全风险。

我不知道OpenBSD使用的具体动机,但我知道至少有一个问题可能是安全问题,即ACL和黑名单

考虑一下,您有一个来自10.1.1.1的传入连接。此地址在您的ACL中被列入黑名单,因此您拒绝连接。但是,如果您使用的是映射地址,则它将显示为来自::ffff:10.1.1.1。您的黑名单可能无法捕获此信息,可能会让连接通过

这可以通过应用程序逻辑解决,因为使用单个套接字可能会简化代码,我个人认为OpenBSD的决定是不幸的。可以将V4默认映射为off,但允许通过
setsockopt
启用


他们可能会有更多的担忧,但我不知道。

当然,IPv4映射地址不会在互联网上路由,因此黑名单的可能性很低。