xsupplicant 首席开发者 Chris Hessing 访谈
在复杂的无线 LAN 安全协议领域,有两个
主要的开源开发项目正在充当“标准警察”
xsupplicant 和 wpa_supplicant。我第一次见到 Chris Hessing,这位
xsupplicant 的首席开发者,是在 2003 年的 Interop 大会上。从那时起,他一直
在他的业余时间,在他位于盐湖城的犹他大学的无线网络架构师
工作之外,继续开发 xsupplicant。
最近,我有机会通过电话与 Chris 谈论了
xsupplicant,他对无线安全协议的看法,以及他正在
在最大的去中心化安全无线网络之一上尝试做的事情。
存在的网络。
Linux Journal
您参加哪些标准组织和会议?
Chris Hessig
我定期参加 Interop 以参与 Interop Labs,
这是我能参加的最接近插拔测试的活动。许多行业
插拔测试并不总是知道如何联系开源项目,所以
我有的最好机会来排除 xsupplicant 的错误是在展会前一个月举行的
热点舞台活动。
我参加了
IETF
60
去年秋天在圣地亚哥举行的 IETF 会议,在那里我与 Chris Elliott
(来自 Cisco)一起运行了无线网络。
LJ
您是如何设计 IETF 网络的安全性的?
许多参加 IETF 会议的工程师都是安全专家,可能
希望在无线链路中启用加密。
CH
我们尝试设计一个允许匿名
访问的加密网络,但这并不是当前已实施的标准
真正为之设计的。我们支持隧道 TLS [TTLS,Funk
提出的身份验证方案] 和受保护的 EAP [PEAP,Microsoft/Cisco
提出的身份验证方案],尽管使用 TTLS 要容易得多。
在 TTLS 中,该协议的设计相当简洁。我们配置了
RADIUS 服务器以接受任何用户名和密码,并且我们发回了
成功消息以允许访问网络。对于 PEAP,这是不可能的,因为
协议的设计。PEAP 通常与
TLS 隧道内的 Microsoft CHAP 身份验证一起使用,并且
Microsoft CHAP 协议的设计要求在
两端之间共享密钥。我们鼓励 Windows 用户使用
SecureW2
插件来使用 TTLS,但我们也设置了一个
众所周知的通用帐户和密码,供只想使用
PEAP 的人使用。实际上,它是匿名的,但不如 TTLS 那么简洁。
LJ
标准工作对您正在进行的
开发有多重要?
CH
对于 xsupplicant 来说,它非常重要,尤其是在 IETF 中。
无线安全领域中最有趣的工作大多是像新的 EAP
类型和解决复合绑定问题之类的事情,这对
我的代码方向有很大的影响。IEEE 的重要性要小得多,
最有趣的工作大部分在 IETF 中。
对于我在大学的日常工作来说,IETF 也非常重要。我们
非常热衷于在整个网络中推广身份验证,并且
新的 EAP 类型将提供一种使用用户名和密码以及
在没有 TLS 的情况下生成加密密钥的方法。我们的大多数用户
习惯于用户名和密码,但对于许多用户来说,理解
“神奇”的证书文件如何授予您访问权限可能很困难。
有两种 EAP 方法可以在没有 TLS 的情况下允许网络访问。
其中一种是由法国电信的 Florent Bersani 设计的。他有朋友
来访,并希望让他们访问他的无线 LAN,但他不想
做任何超出用户名和密码的事情。因此,他
开发了“EAP-PSK”,我应该指出它与 WPA-PSK 不同。
与此同时,马里兰大学的 T. Charles Clancy 也在尝试实现同样的事情。
他在马里兰大学提出的协议是 EAP-PAX。
LJ
当您说您想要在整个
网络中推广身份验证时,这会扩展到什么程度?大学校园里的每个端口都需要
凭据吗?
CH
是的。随着校园内每次无线部署,我们都会进一步推广 802.1X。
这显然是我们前进的方向。缺点是
有人需要花时间掌握所有新的
身份验证方法。
LJ
您希望在未来的无线标准中解决哪些问题?
CH
嗯,我想确保我们解决所有我们尚未意识到的安全
问题!
我觉得目前可用的安全性已经相当好了,假设
您正在运行带有 AES 的 WPA2。各种 EAP 中存在一些弱点,
需要解决的问题,但这在很大程度上已经步入正轨。
我想要做的是——我不知道我们是否可以——是
获得一种通用的 EAP 类型。一种允许您使用密码的类型,
允许以安全形式存储密码,并且不会将您锁定在
任何特定的身份验证服务器中。
LJ
无线安全领域有哪些有趣的问题?
现在有一种普遍的说法,一切都已经解决好了,所以
您应该直接开始构建您的网络。您在多大程度上
同意这种说法?
CH
在很大程度上,我同意。问题不在于协议的
基本安全性。问题在于如何部署
这些协议。有很多不同的方法可以使用 802.1X,很多
可以使用的不同类型的加密,以及如此多的客户端
平台。管理复杂性是我们今天在
无线安全领域面临的最大问题。在我们继续前进并继续开发
协议之前,我们需要修复我们已经存在的问题。
出于兼容性原因,大学一直避免使用 WPA,而且
我越深入了解 WPA,我就越想远离它。
我们遇到了巨大的问题,因为我们有很多 Macintosh 电脑。最初的
WPA 规范允许您仅使用一种加密方法用于
单播帧的加密。Apple 认真对待了这一点,他们的
软件强制执行它。如果您有多种单播加密类型,
您将无法连接到网络。不幸的是,大多数处于 WPA 模式的 AP
指定了多种加密类型。我们卡在了我们的 AP 供应商
和 Apple 之间。我希望 WPA2 能够解决这个问题,即使只是因为
WPA2 更新更好,并且 Apple 对其给予了更多关注。
LJ
尽管安全问题最受关注,但无线
网络也在改变您可以运行的应用程序类型。
例如,基于 802.11 的语音正在变得越来越流行。您
目前在您的日常工作中在语音方面做了多少工作?我见过的许多
市场上的语音电话都无法进行强身份验证,并且
只能使用手动 WEP 密钥进行安全保护,这肯定与您的
校园范围内的安全无线网络不太匹配。
CH
我们目前在这方面做得不多。缺乏安全性
肯定从无线语音的角度减慢了我们的速度,但更大的
障碍是弄清楚如何利用 VoIP 给我们带来的灵活性。我
已经开始尝试在 802.11 上使用 VoIP,使用一些提供
安全性的电话,但它们仍处于开发周期的早期阶段,因此
代码非常原始,以至于有时难以关联到
无线网络并获取 IP 地址。
LJ
您还在哪些方面扩展无线 LAN 的边界?
除了简单地尽可能扩大无线
覆盖范围之外,您还在做什么?
CH
我们正在尝试构建一个无线 LAN,以覆盖我们整个校园
的室外区域。公共安全部门需要一个网络来
在整个校园和研究园区进行通信。他们评估了一些蜂窝
数据服务,以及在专门用于
公共安全的无线电频段中的许可设备。这两者的数据速率都非常低,因此公共
安全部门询问了我们正在覆盖整个校园的 802.11 网络,以及是否有可能
覆盖所有
室外区域。在评估了替代方案后,他们决定不
构建昂贵的许可网络供他们独家使用,而是
选择构建速度更快的校园范围内的 802.11 网络,保留他们需要的
容量,并允许校园社区的其余部分使用
它。
我们在这方面面临一些明显的挑战。校园非常
丘陵起伏——如果
是平坦的,网络工程就会容易得多——而且
有很多高大的建筑物,导致“混凝土峡谷”。此外,
作为非许可频谱,也存在明显的挑战。一些无线
ISP 在校园上方的山上架设了天线,因此我们可能需要
提前进行一些协调工作,以确保我们不会
互相干扰频谱。
LJ
随着校园网络的发展,我当然希望您继续
抽出时间来开发 xsupplicant。在您的空闲时间,您
现在正在进行哪些编码工作?
CH
无线安全框架在
目前已经相当完善,大部分工作都集中在 EAP 方法上。我想
实现 EAP-PSK、EAP-PAX,甚至可能是 EAP-FAST。
不过,基本实现只是战斗的一小部分。许多
AP 在测试中会暴露出奇怪的特性,所以我需要
尽可能多地找到它们并解决它们。由于市场上有大量的 AP
,仅仅测试它们就是一项相当艰巨的任务。随着更多网卡在 Linux 下支持 WPA2,
这项任务将变得更加困难。
在完成所有这些之后,我想实现一些视觉上的亮点。
自从我开始这个项目以来,我就想要一个可以放在
屏幕角落并根据您是否
通过身份验证而改变颜色的东西。但我一直忙于开发引擎,而没有时间开发
GUI 工具。
在底层,xsupplicant 也可能会发生变化。目前,它使用
OpenSSL
进行加密。它是一个非常强大的
库,但很难编程。它试图成为一个
适用于所有情况的通用加密子弹,这意味着
对于开发人员来说,梳理 API 具有挑战性。
因为我只需要基本的 TLS 功能,所以我正在考虑迁移到
GNU TLS
因为它有更
简单的 API。
LJ
作为一个开源项目,您的代码可以被整合到
各种其他项目中。您是否知道您的代码还被用在哪些有趣的地方?
?
CH
人们实际上并没有过多地告诉我他们是如何
使用代码的。我通常在他们在我们的
邮件列表中提问时才发现,但我经常需要追踪他们正在做什么。至少有
一个 802.11 电话参考设计使用了 xsupplicant,但它也
集成了 Jouni Malinen 的 wpa_supplicant。
虽然听到 xsupplicant 被用于其他
项目是件很棒的事情,但我编写代码并不是为了看到它变得流行。我开始
编写代码是因为这是学习协议如何
工作的最佳方式,而且我认为我肯定已经实现了这个目标。