WPA-PSK密码有哪些技术要求?


8

我当时正在考虑生成WPA-PSK密码,我在OpenBSD手册页中看到wpa-psk(8)

The passphrase must be a sequence of between 8 and 63
ASCII-encoded characters.

此处“ ASCII编码”的确切标准是什么?只是它们必须是未设置高位的8位字符?是否允许使用不可打印的字符?

想一想...我随机生成密码短语的方法有意义吗?仅生成64个随机字节并将其用作密钥会更好吗?

Answers:


12

> 此处“ ASCII编码”的标准是什么?只是它们必须是未设置高位的8位字符?是否允许使用不可打印的字符?

Wikipedia的Wi-Fi保护访问说WPA-PSK密码短语是8到63个可打印ASCII字符,并将此引用作为脚注包括在内:

密码短语中的每个字符必须具有32到126(十进制)范围内的编码。(IEEE标准802.11i-2004,附件H.4.1)
此范围中包含空格字符。

> 想一想...我随机生成密码短语的方法有意义吗?仅生成64个随机字节并将其用作密钥会更好吗?

> 我想我仍然会使用安全的RNG生成256位...

您的无线路由器和要连接到无线网络的每个设备是否都允许您以64个十六进制字符的形式手动输入WPA-PSK密钥?如果不是,那么您可能必须使用ASCII密码才能在所有设备中输入它。


@studiohack引用的RFC2898中-在整个文档中,密码被认为是任意长度的八位位组字符串,其未解释为文本字符串。但是,出于互操作性的考虑,建议应用程序遵循一些通用的文本编码规则。ASCII和UTF-8 [27]是两种可能。(ASCII是UTF-8的子集。)
asveikau 2010年

另外,似乎OpenBSD,Linux,Windows和Mac OS X都支持使用十六进制键。我遇到的唯一问题是Maemo UI不喜欢它-但是支持配置的XML文件支持它。
asveikau 2010年

好的,我看到了802.11i-2004的内容。你是对的。
asveikau 2010年

1

http://www.xs4all.nl/~rjoris/wpapsk.html- “ WPA密钥计算-从密码短语到十六进制密钥的计算详细信息”:

对于WPA-PSK加密,二进制密钥是根据以下公式从密码短语派生的:

函数PBKDF2是从密码短语中获取密钥的标准化方法。在RFC2898中对其进行了详细说明,并对其进行了清晰的说明。该函数需要基础的伪随机函数。对于WPA,基本功能是HMAC-SHA1。SHA1是从任意数量的输入数据计算出160位哈希的函数。RFC3174中对此进行了明确说明。HMAC是将密码哈希函数转换为键控消息身份验证功能的标准化方法。在RFC2104中指定。

总而言之,密钥派生过程涉及将HMAC-SHA1函数迭代4096次,然后再次进行此操作以产生更多密钥位。涉及的计算量等同于计算1 MB数据上的SHA1哈希。也许这可以解释为什么此页面上的Javascript这么慢。

关于您的问题:Does my approach of randomly generating a passphrase make any sense? Would it be better to just generate 64 random bytes and use that as a key?只要您在随机字节密码短语中使用了各种符号,数字和随机字母字符,那么任一种都会非常强大。我的看法:不可能(猜测或破解)它们(生成的或随机的)...


1
嗯 因此,根据我对RFC的阅读,看来PBKDF2函数并不依赖于它是否是可打印的ASCII字符,并且应该可以处理二进制数据。我想我仍然会使用安全的RNG生成256位...(我不太有把握,尽管如此,这是不可能的。有很小的可能性最终会生成与弱信号碰撞的东西:P)
asveikau 2010年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.