微软的 RNDIS 协议(即 远程网络驱动接口规范Remote Network Driver Interface Specification
这方面最常见的使用情况是通过连接到电脑上的 USB,使用手机的移动网络连接互联网,也称为 系连Tethering。
尽管它主要在 Windows 上工作,但它成为 Linux 内核的一部分已经有一段时间了。
但这种情况很快就会改变。
向 RNDIS 协议说再见?
发生了什么? 周一,Greg Kroah-Hartman 创建了 usb.git rndis-removal 分支,其中他提到禁用 Linux 上所有 RNDIS 协议驱动程序的实现。
在该提交中他提到:
微软的 RNDIS 协议按照设计是不安全的,在任何连接不信任的主机或设备的系统上使用它都是脆弱的。因为该协议不可能变得安全,所以只要禁用所有的 RNDIS 驱动,就可以防止任何人再使用它们。Windows 只在 XP 和更新一些的系统中需要用它,比这更早的 Windows 系统可以使用正常的 USB 类协议来代替,没有这些问题。
正如最初由 Phoronix 报道的那样,一旦这个协议在 Kconfig 选项中被标记为 “损坏”,它将再保留一段时间,最终从内核中删除。
但是为什么呢?
众所周知,RNDIS 在 Windows 之外的平台上的实现是一团糟,并带来了相当多的安全风险。此外,RNDIS 并不像以前那样广泛使用了,它带来的安全风险可能是作出这一决定的主要原因之一。
这对目前的用户有影响吗?你应该担心吗?
如果我们看一下对这一即将到来的变化的 Reddit 讨论,我们会发现许多用户仍然很担心这是否会破坏大家的 USB 连接。
考虑到许多安卓手机仍然使用 RNDIS 而不是 CDC NCM(一种较新的协议),用户似乎对这一举措感到困惑 😕;不只是用户,一位 谷歌的内核网络开发人员 也提出了这个议题,但我们还没有看到对此的回应。
但不是每个人都使用主线 Linux 内核?如果你不想受到这种变化的影响,你是否应该坚持使用 LTS 版本的内核?
此外,用户希望更清楚地了解这是否会影响到所有人。
但是,从目前来看,Greg 可能并没有给出更多的细节来说服一些相关用户。
🤔 当然,我们不是 Linux 内核维护者。所以,最好等这个提交通过时,我希望 Linux 内核维护者能比我们知道更多的信息。