Unicode码 常见问题

安全问题常见问题解答

Q: Unicode是否会带来特殊的安全问题?

一个常见的安全问题是“欺骗”拼写错误领域或用户名,诱骗不知情的用户进入进入与恶意站点的交互,就像它是一个受信任的站点一样。为了有效,欺骗只需要非常近似,例如,使用数字“1”而不是字母“l”。这个Unicode标准包含许多“易混淆”,即那些字形,由于历史原因派生或纯粹的巧合,或多或少彼此相似非常接近。某些安全敏感应用程序或系统可能由于可能对这些易混淆内容的误解他们的用户。[自动对焦]&[德国]

Q: 使用Unicode字符进行欺骗的问题有多严重?

重要的是要认识到,在欺骗中使用视觉上容易混淆的字符往往被夸大了。易混淆的字符是网络钓鱼问题的一小部分:大多数网络钓鱼都涉及社会工程或简单的误导领域名称,如“secure-wellsfargo.com”。有关更多信息,请参阅http://www.bortzmeyer.org/idn-et-phishing.html外部链路.(它是法语的,但如果你不懂法语,可以使用谷歌翻译或其他服务来获取文档的要点。)

Q: 欺骗是唯一的问题Unicode?

否,许多遗留字符集,包括ISO/IEC8859-1,也包含可混淆的(尽管通常较少)和Unicode包含许多不熟悉的历史形式,以及一些脚本共享字母形式,如西里尔文和拉丁文,或泰卢固语和卡纳达语。主要适用于Unicode的有用缓解步骤包括将关键标识符限制为每个标识符的单个脚本的现代使用字符。[自动对焦]&[德国]

Q: 为什么不可能给予所有使用相同字形的字符都是一个代码?

Unicode编码字符,而不是字形.通过统一严格基于外观的编码,许多常见的文本处理任务会变得复杂或不可能。例如,拉丁语“B”和希腊语Beta“¦Β”在大多数情况下看起来都一样字体,但是小写字母到两个不同的字母,拉丁语“b”和希腊语“β”独特的外观。[自动对焦]&[德国]

Q: 拉丁字符通常与其他脚本混合吗?

英语和其他基于拉丁语的语言在商业上的广泛使用意味着拉丁语字符(尤其是ASCII码)主要由其他脚本,例如“RSS(RSS)“。标识符有时禁止这种混合。对于不共享可能与ASCII混淆的形状的脚本,允许在标识符中进行这种混合并没有太大问题,但最好在其他包含形状类似的字母的脚本中避免。

Q: 在哪里可以找到有关Unicode和全球化软件安全问题的更多信息?

有关问题和建议方法的一般解释,请参阅UTR#36,Unicode安全注意事项。有关处理某些安全问题的建议机制(以及实现这些机制的数据),请参阅UTS#39,Unicode安全机制.

Q: 我在哪里可以找到与国际化域名(IDN)相关的安全问题?

请参阅国际域名(IDN)常见问题解答UTS#46,Unicode IDNA兼容性处理。深入讨论以下问题国际域名适用于普通的现代脚本,包括可以在注册表级别实施的缓解步骤,查找DNS的规范和建议文档根区域标签生成规则外部链路.[自动对焦]

Q: 有趣的用户名是如何引起问题的?

这里有一篇写得很好的文章http://labs.spotify.com/2013/06/18/creative-usernames网站/外部链路这说明了当允许某些字符时,幂等的不正确实现是如何导致安全漏洞的。本文还提到了Unicode库版本不匹配的问题,这也可能导致安全问题。

Q: 我在哪里可以找到一些涉及格式错误字符串的编码漏洞示例?

请参阅https://msrc-blog.microsoft.com/2009/05/18/more-information-about-the-iis-authentication-baskpass外部链路.

Q: 我在哪里可以找到更多关于贝宝域名骗局的信息?

有一个关于“PaypaI”骗局的Wiki页面:https://en.wikipedia.org/wiki/PayPaI外部链路.