Honestly that is just sad. Extremely sad.
Bruce Schneier wrote about it more than two decades ago:
"Unicode is too complex to ever be secure".
Systems created by people who have zero understanding of security and who cannot realize that complex systems cannot possibly ever be secure is already bad.
But to then see the same people implement "security mechanisms" for the mess they created for in the first place is just sad.
FWIW I love Unicode, where it belongs: in translation / properties files.
I've got hooks verifying that all source code files are ASCII-only.
I've got rules for my LLMs to only ever emit ASCII in source code.
I've got firewall rules blocking any domain using punnycode (aka Unicode domain names). A bit tricky to do that one.
I've got my editor configured so that any single non-visible ASCII char (except space and enter) and every single Unicode character appears in bold fluo magenta on a dark background. All zero-width chars are forced to have a width.
I wonder how people who disagree with those who believe that Unicode is too complex to ever be secure reconcile with the fact that we have something titled:
"Unicode® Technical Standard #39 Unicode Security Mechanisms"
The question is: how the heck did we end up here?
What mindset led to this clusterfuck?
Who, in his right mind, decided that it was a good thing to have Unicode chars in URLs? Certainly not security experts.
The homoglyph attacks were predicted by Bruce Schneier (and others) decades ago. Countless people got tricked and lost their live savings because URLs allow an 'a' to not be an 'a'. It's sad.
And it's of course not the only attack using Unicode: there are plenty.
It's really just all a sad joke and many of us saw it coming from day one.
What is the alternative? ASCII isn't it because there isn't only English out there. All the different encodings we had before weren't it either.
Having only ASCII in urls is incredible US centric. Yes it brings problems, yes they are solvable. It takes work to not have US and it's writing system to be the center of everything.
Unicode is complex because human language is complex. If you want someone to blame, blame God:
> Go to, let us go down, and there confound their language, that they may not understand one another's speech. So the LORD scattered them abroad from thence upon the face of all the earth: and they left off to build the city. Therefore is the name of it called Babel; because the LORD did there confound the language of all the earth: and from thence did the LORD scatter them abroad upon the face of all the earth.
Perhaps attempting to build one character set for all languages is just another Babel-like act of hubris, and the security vulnerabilities are God's judgment upon us for not sticking with the mess of incompatible local encodings that preceded it.
rnicrosoft.com sure didn't need unicode tricks to fool people lol
The reality is that unless your in the US or "most" of Europe, you're going to WANT Unicode domain names - people in china are mostly fine with http://www.china.cn but they're going to really want to use their own language https://xn--fiq8ituh5mn9d1qbc28lu5dusc.xn--fiqs8s or https://xn--mgbeiue0iwb.xn--ngbc5azd - https://xn--wgv71a119e.jp
Demanding that everyone use our alphabet because we're too dumb to recognize the difference between google.com and xn--ggle-55da.com is the worst kind of "security through superior firepower"
(the fact that HN shows these correctly in the EDIT window but have to dump to punycode in display is sad, tbh)