پاسخ کوتاه
IDN homograph attack چیست؟
یک حملهٔ IDN homograph یک نام دامنهٔ بینالمللی ثبت میکند که حروف سیریلیک یا یونانی آن شبیه حروف لاتین است، بنابراین exаmplecoin.com مانند examplecoin.com خوانده میشود. بهصورت punycode که با xn-- شروع میشود ذخیره میشود. Chrome این شکل خام را برای برچسبهای با خطهای مخلوط نشان میدهد و از نسخهٔ 51 به بعد تنظیم زبان کاربر را نادیده میگیرد. Wardmint نسخههای ASCII نام شما را ثبت میکند.
نامهای شبیهبههم و آنچه سامانه ذخیره میکند
| بهصورت | تفاوت | در DNS بهصورت |
|---|---|---|
| examplecoin.com | حروف لاتین ساده، نام واقعی | examplecoin.com |
| exаmplecoin.com | حرف دوم سیریلیک а (U+0430) است، مخلوط با حروف لاتین | xn--exmplecoin-0qi.com |
| еxamplecoin.com | حرف اول سیریلیک е (U+0435) است، مخلوط با حروف لاتین | xn--xamplecoin-jsi.com |
| аррӏе.com | همهی حروف سیریلیکاند: а، р، р، ӏ، е | xn--80ak6aa92e.com |
node -e "console.log(require('url').domainToASCII('аррӏе.com'))"
# xn--80ak6aa92e.comحملهی IDN homograph چگونه کار میکند؟
کار میکند چون یونیکد حروفی از الفبایهای مختلف دارد که شبیهاند، و سامانهی دامنه به هر کسی اجازه میدهد نامهایی را با آنها ثبت کند. نام دامنهی بینالمللی (IDN) نامی با نویسههای غیر ASCII است. DNS فقط ASCII را میفهمد، پس هر برچسب چنین به punycode تبدیل میشود، رشتهای که با xn-- شروع میشود و شکل رمزگذاریشدهای دارد. فرد نسخهی یونیکد را میبیند اگر مرورگر تصمیم بگیرد آن را نمایش دهد؛ نرمافزاری که نام را ذخیره یا ثبت میکند شکل xn-- را میبیند.
مهاجم نامی را ثبت میکند که در آن یک یا چند حرف لاتین با نسخهی شبیه جایگزین شده است، برای مثال а سیریلیک به جای a لاتین. ثبتکننده و رجیستری آن را میپذیرند، چون یک نام معتبر است. بازدیدکننده examplecoin.com میخواند و یک تراکنش را روی کپی سایت شما امضا میکند.
معنای پیشوند xn-- چیست؟
پیشوند xn-- برچسبی را نشان میدهد که نویسههای غیر ASCII را به شکل رمزگذاریشده دارد. در مثالهای بالا، xn--exmplecoin-0qi.com شکل ذخیرهشدهی exаmplecoin.com است: حروف ASCII برچسب ابتدا میآیند و نویسهی سیریلیک رمزگذاریشده پس از خط تیره میآید. نامی که با xn-- شروع میشود بهخودیخود مخرب نیست؛ بسیاری از سایتهای مشروع به زبانهای دیگر از آن استفاده میکنند. آنچه اهمیت دارد این است که آیا رشتهی رمزگشاییشده برندی را تقلید میکند یا نه. میتوانید هر نام مشکوکی را در یک اسکریپت مانند مثال بالا رمزگشایی کنید، یا پیش از کلیک آن را در یک ابزار جستوجو وارد کنید.
Chrome چگونه تصمیم میگیرد یونیکد یا punycode نشان دهد؟
Chrome برای هر برچسب جداگانه تصمیم میگیرد و هرگاه یک بررسی شکست بخورد شکل xn-- را نشان میدهد. بررسیهای مستند شامل ترکیب الفبایهایی است که نباید با هم بیایند (لاتین با سیریلیک یا یونانی)، همسانهای گمراهکنندهی مخلوط از دادههای امنیتی یونیکد، و برچسبهایی که فقط از حروف همشکل از یک الفبا ساخته شدهاند وقتی پسوند به آن الفبا نیست. Chrome همچنین برچسبهایی را که فقط از رقم یا همشکل رقمی ساخته شدهاند رد میکند، و برچسبهایی را که پس از حذف تأکیدها با یک دامنهی بالای معروف یکی میشوند. اگر همهی بررسیها گذشته باشند، برچسب به یونیکد نشان داده میشود. این سیاست به تنظیم زبان کاربر وابسته نیست.
نام کاملاً سیریلیک аррӏе.com در جدول، کلالفبایی است: چیزی را مخلوط نمیکند، پس بررسی ترکیب الفبا آن را نمیگیرد، و Chrome به بررسی جداگانهی کلالفبا تکیه میکند. مرورگرهای دیگر سیاستهای خود را دارند که Wardmint آنها را نخوانده است، پس این صفحه فقط Chrome را مستند میکند. خطر کلی سردرگمی نشانی در انواع دامنههای شبیه که فیشرها ثبت میکنند است.
چگونه برند خود را در برابر دامنههای همشکل محافظت کنم؟
نسخههای ASCII را تا جایی که میتوانید ثبت کنید، بقیه را پایش کنید و آنچه پیدا میکنید گزارش دهید. یک نام همشکل را نمیتوان از پیش در همهی الفبایها ثبت کرد، چون ترکیبها بسیار زیادند. کاری که میتوانید بکنید جستوجوی آنهاست: dnstwist نامهای همشکل را از مجموعهای بررسیشده از نویسههای یونیکد میسازد و بررسی میکند کدام وجود دارند، و لاگهای گواهی نامهایی را نشان میدهند که رشتهی برند شما را به شکل رمزگشاییشده دارند. راهنمای یافتن دامنههای شبیه دستورها را دارد، و چگونه Certificate Transparency را پایش کنیم لاگها را پوشش میدهد.
صفحات Wardmint ثبت نامهای ASCII را توصیف میکنند و ادعای ثبت IDN ندارند. برای همشکلهای ASCII (1 به جای l، rn به جای m) پوشش مانند هر غلطاملای دیگر است: چگونه برند خود را در برابر غلطاملاسازی محافظت کنیم را ببینید.
دادههای Wardmint دربارهی آن چه میگوید؟
Wardmint سیاست Chromium دربارهی نمایش IDN را در 12 نوامبر 2026 بررسی کرد و قواعد آن را در 5 خانوادهی بررسی گروهبندی کرد که بین یونیکد و punycode تصمیم میگیرند: تبدیل و اعتبار، ترکیب الفبا، شمارهگذاری و نویسههای نامرئی، همسانهای گمراهکننده، و رقمها، الگوها و دامنههای بالا. گروهبندی از آنِ Wardmint است؛ قواعد از آنِ Chromium.
دامنهی همشکل نامی است که حروفش با یک نام شناختهشده فرق دارد اما برای خواننده یکسان به نظر میرسد. حملهی IDN homograph استفاده از چنین نامی برای جعل هویت برند است. Punycode رمزگذاری ASCII است که با xn-- شروع میشود و DNS برای نامهای حاوی حروف غیر ASCII ذخیره میکند.
پرسشهایی دربارهی حملههای همشکل
آیا میتوانم نام واقعی پشت یک دامنهی یونیکدی را ببینم؟
بله. آن را با یک اسکریپت یکخطی یا ابزار جستوجو به شکل ذخیرهشدهاش تبدیل کنید، و رشتهی xn-- و دادهی ثبتکننده را بخوانید. عدم تطابق با نامی که انتظار داشتید هشداری است.
آیا قفل HTTPS از یک سایت همشکل محافظت میکند؟
خیر. یک دامنهی شبیه میتواند مانند هر دامنهی دیگری گواهی بگیرد، پس قفل فقط اتصال رمزگذاریشده را نشان میدهد، نه هویت سایت را.
آیا Chrome هر دامنهی همشکل را مسدود میکند؟
خیر. مجموعهای مستند از بررسیها را اعمال میکند و وقتی یکی شکست بخورد punycode نشان میدهد. نامی که همهی آنها را بگذراند به یونیکد نشان داده میشود، پس با نامهای آشنا با احتیاط برخورد کنید.
آیا میتوانم یک IDN شبیه را مانند هر دامنهی فیشینگ دیگر گزارش کنم؟
بله. از مسیر سوءاستفادهی ثبتکننده با نام xn-- ذخیرهشده، نام رمزگشاییشده و یک اسکرینشات استفاده کنید. گامها همان گامهای هر دامنهی فیشینگ دیگر است.
خلاصه
- یک حملهی IDN homograph حروف لاتین را با نسخههای شبیه از الفبایهای دیگر جایگزین میکند.
- DNS نام را بهصورت punycode که با xn-- شروع میشود ذخیره میکند.
- Chrome برای هر برچسب تصمیم میگیرد و از نسخهی 51 به بعد زبان کاربر را نادیده میگیرد.
- برچسبهای مخلوط لاتین و سیریلیک توسط Chrome بهصورت xn-- نشان داده میشوند.
- HTTPS ثابت نمیکند که یک نسخهی شبیه مال چه کسی است.
- آنها را با dnstwist و لاگهای گواهی پیدا کنید؛ آنها را بهعنوان دامنههای فیشینگ گزارش دهید.
- Wardmint نسخههای ASCII نام خودتان را در 29 پسوند ثبت میکند.
منابع (2)
- سیاست نمایش IDN در Chromium (docs/idn.md) — The Chromium Projects (خواندهشده 2026-11-12)
- dnstwist، موتور جایگشت نام دامنه — GitHub (elceef/dnstwist) (خواندهشده 2026-11-12)