Linux试图摒弃Windows臭名昭著的不安全RNDIS协议

Linux试图摒弃Windows的不安全RNDIS协议

微软的专有协议Remote Network Driver Interface Specification(RNDIS)起初是个好主意。它可以使硬件供应商在不必从头开始构建的情况下为USB设备添加网络支持。只有一个小问题,RNDIS没有任何安全性可言。

正如负责稳定Linux内核发布的Linux基金会研究员格雷格·克劳·哈特曼(Greg Kroah-Hartman)在2022年11月Linux内核邮件列表(LKML)上写道:“正如设计时所预期的,微软的RNDIS协议在与不受信任的主机或设备一起使用时是不安全且易受攻击的。因为这个协议无法实现安全性,所以只需禁用所有RNDIS驱动程序以防止其再次被使用。”

另外:最佳VPN服务:专家测试和评估

他在另一条消息中补充说:“该协议从未设计用于与不受信任的设备一起使用。我们创建它并为其实施支持时,信任的是我们插入系统的USB设备以及我们将USB设备插入的系统。”

然而现在情况已经发生了变化。克劳·哈特曼得出结论道:“在今天,面对不受信任的主机和设备,是时候退休这个协议了。正如我在补丁注释中提到的,安卓多年前就已禁用了该协议,而没有损失功能。”

嗯,这很简单。那么为什么我们今天还在谈论它呢?

原因是用户开始担心这将破坏他们的网络USB共享网络连接支持。结果发现,比你想象的更多的人通过USB连接的蜂窝网络、以太网和Wi-Fi设备进行网络连接。

安全性?那是什么?

另外:两个让使用Linux命令行更容易的技巧

正如克劳·哈特曼在2023年1月的LKML的后续消息中所说:“我猜使用该协议的系统将始终必须相信插入其中的设备是“可信的”。这似乎是一种轻松获取“锁定”系统访问权限的方法。”

他没有错。有一些讲究安全性的企业不允许任何USB连接的设备进入其场所,而这就是其中之一。

但现在,因为受够了在Linux中存在内置的Windows安全漏洞,克劳·哈特曼决定,事情已经够了。他在Linux的Git仓库中禁用了所有的RNDIS协议驱动程序。

这意味着虽然RNDIS代码仍然存在于Linux内核中,但如果您尝试使用这个新的补丁构建Linux,所有的RNDIS驱动程序都将无法构建。这相当于将RNDIS从Linux中清除。

另外:现在最好的Linux笔记本电脑

还有另一种通过USB进行网络连接的方式,那就是网络控制模型(NCM)协议。它的优势在于安全性,并且已经在Linux中得到支持。

然而,这种方法让Google Linux内核网络开发人员马切·申奇科夫斯基(Maciej Żenczykowski)感到担忧。因为CDC-ECM在安卓手机上的支持并不好。他所知道的“那些已经将USB共享网络连接从RNDIS切换到NCM的安卓手机只有Google Pixel 6+和更新的Pixel智能手机。”

这是个问题,因为人们使用RNDIS驱动程序将Linux笔记本电脑与安卓手机进行USB共享网络连接。所以,根据申奇科夫斯基的说法,这将破坏“绝大多数”安卓手机的USB共享网络连接,很可能包括当前正在制造和销售的大部分安卓手机。

所以,面对安全问题一方,互操作性问题又是另一方,接下来会发生什么?请继续关注,看看这个补丁是否会提交到Linux 6.7内核合并窗口,并且它是否会进入下一个版本的Linux。