استاندارد امنیتی یونیکد UTS #39 نسخه 18.0.0
خلاصهٔ کاملتر
کنسرسیوم یونیکد نسخه 18.0.0 از Unicode Technical Standard #39 با عنوان «Unicode Security Mechanisms» رو با تاریخ 2026-08-27 منتشر کرده. مشکلی که این سند حل میکنه سادهست: کامپیوتر دو رشته متفاوت رو راحت از هم تشخیص میده، ولی آدم ممکنه دو اسم رو که با حروف شبیه به هم از الفباهای مختلف نوشته شدن یکی ببینه. همین باعث میشه یکی بتونه مثلاً دامنه یه بانک رو جعل کنه.
بخش اصلی سند General Security Profile هست، یعنی یه فهرست پیشنهادی از کاراکترهایی که تو شناسهها (identifier، مثل نام کاربری یا دامنه) مجازن. هر کاراکتر یه ویژگی Identifier_Status داره که یا Allowed هست یا Restricted، و یه Identifier_Type که دلیل محدودیت رو میگه؛ مثلاً Obsolete برای حروف از رده خارج، Technical برای کاربردهای تخصصی، یا Limited_Use برای خطهایی که جامعه کوچیکی ازشون استفاده میکنه. سیستم میتونه کاراکترهای مجاز خودش رو با این فهرست فیلتر کنه و چند استثنا مثل $ یا . رو هم نگه داره.
یه بخش جالب برای فارسیزبانها درباره ZWNJ هست (همون نیمفاصله، یعنی کاراکتر نامرئی U+200C). از یونیکد 15.0 این کاراکتر و ZWJ از دسته مجاز بیرون اومدن و Restricted حساب میشن، چون نامرئیان و میشه باهاشون دو اسم به ظاهر یکسان ساخت. ولی سند قبول داره که تو زبانهایی مثل فارسی بدون اونا نمیشه کلمه رو درست نوشت. برای همین شرطهایی تعریف کرده که نیمفاصله فقط جایی مجاز باشه که واقعاً اتصال دو حرف رو میشکنه. نمونه خود سند کلمه «نامهای» در برابر «نامهای» هست که معنیشون فرق داره.
بقیه سند روشهای تشخیص رو تعریف میکنه: confusable detection برای پیدا کردن رشتههایی که شبیه هم دیده میشن، تشخیص ترکیب چند الفبا تو یه شناسه (mixed-script)، سطحبندی محدودیت (restriction level) و تشخیص ترکیب رقمهای سیستمهای عددی مختلف. پروفایلهای جدا برای دامنههای بینالمللی (IDN) و ایمیل هم داره. هر پیادهسازی که بخواد ادعای سازگاری کنه باید یا کاملاً طبق سند عمل کنه یا دقیقاً بگه چه کاراکترها یا رفتاری رو تغییر داده.
نکات کلیدی:
- نسخه 18.0.0 با تاریخ 2026-08-27 و ویراستارهای Josh Hadley و Roozbeh Pournader منتشر شده.
- ویژگی Identifier_Status هر کاراکتر رو Allowed یا Restricted میکنه و Identifier_Type دلیلش رو میگه.
- از یونیکد 15.0، ZWNJ و ZWJ پیشفرض Restricted هستن و فقط تو شرایط مشخص اجازه دارن.
- پروفایلهای جدا برای شناسههای عمومی، دامنههای IDN و ایمیل تعریف شده.
- تشخیص confusable، ترکیب الفباها و ترکیب سیستمهای عددی جزو مکانیزمهای استانداردن.




