مشتریان Booking.com به سختی آموختند که یونیکد پیچیده است
اشتباه گرفتن “l” با “1” یا “I” با یک تایپفیس بد طراحی شده آسان است. (اهم.) خوشبختانه، فونتهای مدرن تمایل دارند از تکنیکهای مختلفی برای رفع ابهام این کاراکترهای الفبایی-عددی که به راحتی اشتباه گرفته میشوند، استفاده کنند. اما این طراحیها به ندرت ابهامی را که ناشی از شباهتها در مجموعههای کاراکتری مختلف است، در نظر میگیرند، همانطور که یک کمپین فیشینگ اخیر که کاربران Booking.com را هدف قرار داده، نشان میدهد.
BleepingComputer گزارش داد که “این حمله، که اولین بار توسط محقق امنیتی JAMESWT شناسایی شد، از کاراکتر هیراگانای ژاپنی ‘ん’ (یونیکد U+3093) سوءاستفاده میکند، که در برخی فونتها در نگاه اول شباهت زیادی به دنباله حروف لاتین ‘/n’ یا ‘/~’ دارد.” امید مهاجم این است که افراد از کنار این کاراکتر عجیب بگذرند، لینک مخرب را دنبال کنند و سپس قربانی بدافزاری شوند که از طریق این کمپین توزیع میکنند.
یونیکد بارها به این شکل مورد سوءاستفاده قرار گرفته است – این یک روش نسبتاً رایج برای اسپمرها است تا از فیلترهای ایمیل عبور کنند، یا برای ترولهای بسیار مصمم که افراد را آنلاین آزار دهند، با وجود فیلترهای فحاشی. با این حال، حل این مشکل دشوار باقی میماند زیرا رندرینگ متن، بسیار شبیه DNS، نفرینشدهتر از آن چیزی است که اکثر مردم تصور میکنند. پس بیایید یک دوره فشرده در مورد کاراکترها داشته باشیم.
کامپیوترها در ابتدا از استاندارد حداقل کد استاندارد آمریکایی برای تبادل اطلاعات – یا همانطور که افراد عاقل آن را ASCII مینامند – پشتیبانی میکردند. این نسبتاً ساده بود: به کامپیوترها اجازه میداد با 26 حرف الفبای انگلیسی در هر دو شکل کوچک و بزرگ، مجموعهای از علائم نگارشی حیاتی، و کدهای کنترلی مختلف که به کامپیوتر میگفتند چه زمانی خط جدیدی بکشد، متن را تورفتگی دهد و غیره، کار کنند.
اما مشخص شد که حتی امپراتوری بریتانیا هم نتوانست الفبای انگلیسی را تنها مجموعه کاراکتری روی کره زمین کند، و برخی از افرادی که از آن کاراکترها استفاده میکنند، نیز میخواستند از کامپیوتر استفاده کنند. این امر منجر به ایجاد استاندارد یونیکد شد که برای رمزگذاری کاراکترها در هر دستگاه مدرن استفاده میشود. (بیایید وارد بحث رمزگذاری واقعی که UTF-8 در تمام سیستمهای منطقی، یا به طور خاصتر، سیستمهای غیر ویندوزی است، نشویم.)
کنسرسیوم یونیکد میگوید که یونیکد “میتواند تا حدود 1.1 میلیون کاراکتر را رمزگذاری کند، که به آن اجازه میدهد از تمام زبانها و خطوط نوشتاری جهان در یک استاندارد واحد و جهانی پشتیبانی کند” و اینکه “تمام سیستمعاملهای مدرن، محیطهای محاسباتی، زبانهای برنامهنویسی و برنامهها از هسته استاندارد یونیکد پشتیبانی میکنند.” بنابراین میتوانیم چیزهای جالبی مانند ایموجیها، علائم نگارشی و حروف غیر انگلیسی داشته باشیم.
با این حال، میتوانیم حملاتی مانند حمله به کاربران Booking.com را نیز داشته باشیم، و جلوگیری از آنها کار سادهای نیست. یک سیستمعامل، مرورگر و غیره، میداند چگونه کاراکترهای یونیکد را مدیریت کند، اما این بدان معنا نیست که میتواند تشخیص دهد چه زمانی یک کاراکتر به طور فریبنده استفاده میشود. گاهی اوقات افراد میخواهند از مجموعههای کاراکتری ترکیبی برای برقراری ارتباط موثر استفاده کنند؛ گاهی اوقات فقط میخواهند چیزی جالب به نظر برسد.
فقط برای تاکید بر اینکه این یک مشکل آسان برای حل نیست: یونیکد دستیابی به کارهای به ظاهر اساسی مانند شمارش تعداد کاراکترها در یک قطعه متن مشخص، یا تعیین اینکه آیا دو کاراکتر از نظر بصری همتراز هستند را دشوار میکند. این بدان معنا نیست که حل این مشکل غیرممکن است، اما گمان میکنم بسیار پیچیدهتر از آن چیزی است که اکثر مردم انتظار دارند.
در مورد اینکه مردم برای جلوگیری از قربانی شدن در طرحهایی مانند این که کاربران Booking.com را هدف قرار داده، چه کاری میتوانند انجام دهند، توصیه رسمی من این است که هرگز ایمیل خود را نخوانید یا روی لینکها کلیک نکنید. مگر اینکه آنها توضیحات کاملتری در مورد اینکه چرا رندرینگ متن (و ویرایش!) نفرینشده است، باشند. در این صورت، با خیال راحت کلیک کنید. هیچ اشکالی در کمی دانش نفرینشده وجود ندارد، یا حداقل این چیزی است که وقتی شبها سعی میکنم بخوابم به خودم میگویم.
- کولبات
- مرداد 27, 1404
- 66 بازدید






