Update the IDN readme and add the lookalike warning
Change-Id: Ibf3e6936d438cd18868235e9fb783a3b9b78b6ff Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2128377 Commit-Queue: Mustafa Emre Acer <meacer@chromium.org> Reviewed-by: Joe DeBlasio <jdeblasio@chromium.org> Cr-Commit-Position: refs/heads/master@{#755157}
This commit is contained in:

committed by
Commit Bot

parent
10a2b81103
commit
ad2cdf55f8
61
docs/idn.md
61
docs/idn.md
@@ -146,6 +146,67 @@ in
|
|||||||
and `IDNSpoofChecker` class in
|
and `IDNSpoofChecker` class in
|
||||||
[`components/url_formatter/spoof_checks/idn_spoof_checker.cc`](https://cs.chromium.org/chromium/src/components/url_formatter/spoof_checks/idn_spoof_checker.cc).
|
[`components/url_formatter/spoof_checks/idn_spoof_checker.cc`](https://cs.chromium.org/chromium/src/components/url_formatter/spoof_checks/idn_spoof_checker.cc).
|
||||||
|
|
||||||
|
## Additional Protections
|
||||||
|
|
||||||
|
In addition to the spoof checks above, Chrome also implements a full page
|
||||||
|
security warning to protect against lookalike URLs. You can find an example of
|
||||||
|
this warning at `chrome://interstitials/lookalike`. This warning blocks main
|
||||||
|
frame navigations that involve lookalike URLs, either as a direct navigation or
|
||||||
|
as part of a redirect.
|
||||||
|
|
||||||
|
The algorithm to show this warning is as follows:
|
||||||
|
|
||||||
|
1. If the scheme of the navigation is not `http` or `https`, allow
|
||||||
|
the navigation.
|
||||||
|
|
||||||
|
2. If the navigation is a redirect, check the redirect chain. If the redirect
|
||||||
|
chain is safe, allow the navigation. (See Defensive Registrations section for
|
||||||
|
details).
|
||||||
|
|
||||||
|
3. If the hostname of the navigation has at least a medium site engagement
|
||||||
|
score, allow the navigation. Site engagement score is assigned to sites by the
|
||||||
|
[Site Engagement
|
||||||
|
Service](https://www.chromium.org/developers/design-documents/site-engagement).
|
||||||
|
|
||||||
|
4. If the hostname of the navigation is in
|
||||||
|
[`domains.list`](https://cs.chromium.org/chromium/src/components/url_formatter/spoof_checks/top_domains/domains.list),
|
||||||
|
allow the navigation.
|
||||||
|
|
||||||
|
5. If the user previously allowed the hostname of the navigation by clicking
|
||||||
|
"Ignore" in the warning, allow the navigation. Currently, user decisions are
|
||||||
|
stored per tab, so navigating to the same site in a new tab may show the
|
||||||
|
warning.
|
||||||
|
|
||||||
|
6. If the hostname has the same skeleton as a recently engaged site or a top 500
|
||||||
|
domain, block the navigation and show the warning.
|
||||||
|
|
||||||
|
All of these checks are done locally on the client side.
|
||||||
|
|
||||||
|
### Defensive Registrations
|
||||||
|
|
||||||
|
Domain owners can sometimes register multiple versions of their domains, such
|
||||||
|
as the ASCII and IDN versions, to improve user experience and prevent potential
|
||||||
|
spoofs. We call these supplementary domains defensive registrations.
|
||||||
|
|
||||||
|
In some cases, Chrome's lookalike warning may flag and block navigations to
|
||||||
|
these domains:
|
||||||
|
- If one of the sites is in `domains.list` but the other isn't, the latter will
|
||||||
|
be blocked.
|
||||||
|
- If the user engaged with one of the sites but not the other, the latter will
|
||||||
|
be blocked.
|
||||||
|
|
||||||
|
### Avoiding a lookalike warning on your site
|
||||||
|
|
||||||
|
**Domain owners can avoid the "Did you mean" warning by redirecting their
|
||||||
|
defensive registrations to their canonical domain.**
|
||||||
|
|
||||||
|
**Example**: If you own both `example.com` and `éxample.com` and the majority of
|
||||||
|
your traffic is to `example.com`, you can fix the warning by redirecting
|
||||||
|
`éxample.com` to `example.com`. The lookalike warning logic considers this a
|
||||||
|
safe redirect and allows the navigation. If you must also redirect `http`
|
||||||
|
navigations to `https`, do this in a single redirect such as
|
||||||
|
`http://éxample.com -> https://example.com`. Use HTTP 301 or HTTP 302
|
||||||
|
redirects, the lookalike warning ignores meta redirects.
|
||||||
|
|
||||||
## Reporting Security Bugs
|
## Reporting Security Bugs
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user