در ۹ ژانویهٔ ۲۰۲۴، حساب رسمی X کمیسیون بورس و اوراق بهادار آمریکا (SEC)، نهاد ناظر بازارهای مالی، تأیید صندوقهای قابل معاملهٔ بیتکوین را اعلام کرد؛ تصمیمی که بازار ماهها منتظرش بود. در عرض چند دقیقه بیتکوین بیش از ۱۰۰۰ دلار در هر واحد بالا رفت. سپس کمیسیون تکذیب کرد: حساب هک شده بود. قیمت بیش از ۲۰۰۰ دلار پایین آمد.
آنچه این ماجرا را آموزنده میکند بزرگی حرکت بازار نیست، بلکه پیشپاافتادگی ابزار بهکاررفته است. بنا بر اطلاعیهٔ وزارت دادگستری آمریکا، اریک کانسل جونیور، ۲۶ ساله، با یک چاپگر کارت قابل حمل یک کارت شناسایی جعلی چاپ کرد، به یکی از فروشگاههای AT&T رفت و کارمندی را متقاعد کرد شمارهٔ تلفن متصل به آن حساب را روی سیمکارتی که خودش در اختیار داشت منتقل کند. سپس کدهای بازنشانی گذرواژه را با پیامک دریافت کرد و به همدستانش رساند. در ۱۶ مهٔ ۲۰۲۵ به ۱۴ ماه حبس محکوم شد.
یک توضیح لازم است که خوانش پرونده را تغییر میدهد بیآنکه از درس آن بکاهد. طبق بیانیهٔ رسمی کمیسیون، احراز هویت چندعاملی روی این حساب در ژوئیهٔ ۲۰۲۳ و به درخواست خود تیم غیرفعال شده بود. یعنی در زمان وقوع، پیامک عامل دوم نبود، مجرای بازیابی حساب بود. و دقیقاً همین است که این نمونه را مفید میکند: عامل دوم باشد یا در پشتی، نقطهای که زنجیره در آن میگسلد همچنان شمارهٔ تلفن است.
عامل دوم قرار است چه چیزی را تضمین کند
اصل ماجرا در یک جمله جا میشود. گذرواژه بهتنهایی چیزی است که میدانید؛ به آن چیزی که دارید (یک تلفن، یک کلید فیزیکی) یا چیزی که هستید (یک اثر انگشت) افزوده میشود. کسی که گذرواژهٔ شما را از یک نشت داده میدزدد، به همین دلیل شیء فیزیکی شما را در اختیار ندارد.
این استدلال بر فرضی تکیه دارد که بهندرت بیان میشود: اینکه عامل دوم واقعاً به شیئی در تملک شما گره خورده باشد، و اینکه ارائهٔ آن چیزی دربارهٔ جایی که در آن وارد میشوید ثابت کند. پیامک در هر دو نقطه ناکام میماند.
پیامک عامل تملک نیست
دریافت کد با پیامک ثابت نمیکند که دستگاهی در اختیار دارید، بلکه ثابت میکند شمارهای که اپراتور تخصیص داده و همان اپراتور میتواند تغییرش دهد، به دستگاهی اشاره میکند. این دو یکی نیستند. سه مسیر از این شکاف بهره میبرند و به یک شیوه هم بسته نمیشوند.
جابهجایی سیمکارت
همان حملهٔ پروندهٔ کمیسیون است و بر هیچ ضعف فنی تکیه ندارد. مهاجم اطلاعات شخصی هدف را جمع میکند، که اغلب از پیش در نشتهای عمومی در دسترس است، و بعد در نقش همان فرد با اپراتور تماس میگیرد: تلفن گم شده، لطفاً شماره را روی سیمکارت جدید منتقل کنید. اگر متقاعدکننده باشد، یا کارمندی همدست باشد، شماره دست به دست میشود و همهٔ پیامکها به او میرسد. گزارش سالانهٔ ۲۰۲۴ مرکز شکایات افبیآی (IC3) تنها در همان سال ۹۸۲ گزارش جابهجایی سیمکارت و نزدیک به ۲۶ میلیون دلار زیان اعلامشده را ثبت کرده است، و تنها قربانیانی را میشمارد که شکایت کردهاند. هیچ بهروزرسانی نرمافزاری این مسیر را نمیبندد: هدفش نرمافزار نیست، یک فرایند تجاری است که آدمها اجرا میکنند.
شنود از راه SS7
Signaling System 7 پروتکلی است که به شبکههای تلفن سراسر جهان امکان گفتوگو با یکدیگر میدهد: مسیریابی تماس، مدیریت رومینگ، تحویل پیامک از یک اپراتور به اپراتور دیگر. در سال ۱۹۷۵ طراحی شد، زمانی که باشگاه اپراتورها بسته و کمشمار بود و هر یک دیگری را بنا بر ساختار قابل اعتماد میدانست. به همین دلیل هیچ احراز هویت ذاتی میان شبکهها ندارد: درخواستی که مشروع به نظر برسد مشروع تلقی میشود.
این ضعفی نظری نیست. در دسامبر ۲۰۱۴ پژوهشگران آلمانی توبیاس انگل و کارستن نول آن را در کنگرهٔ Chaos Communication بهطور عمومی نشان دادند: یافتن موقعیت یک مشترک و شنود پیامکهایش تنها با داشتن شمارهٔ تلفن. در ۲۰۱۷ بهرهبرداری واقعی تأیید شد: اپراتور آلمانی O2-Telefónica پذیرفت که حسابهای بانکی شماری از مشتریان خالی شده است، پس از آنکه مهاجمان به شبکهٔ یک اپراتور خارجی دسترسی یافتند و بازارسال پیامک را تنظیم کردند تا کدهای تأیید بانکی را بربایند.
فیشینگ بیدرنگ
مسیر سوم از همه مهمتر است، چون به هیچ ضعفی در مخابرات وابسته نیست و از هر چه در دو مسیر پیشین اصلاح شود جان سالم به در میبرد.
سایتی جعلی صفحهٔ ورود یک سرویس را بینقص تقلید میکند. نام کاربری و گذرواژه را در آن وارد میکنید، سایت جعلی بیدرنگ آنها را به سایت واقعی میرساند و سایت واقعی پیامکی به تلفن شما میفرستد. پیامک واقعاً به شما میرسد و اصیل است. کد را در سایت جعلی وارد میکنید و آن هم ظرف چند ثانیه بازارسالش میکند. نشست باز میشود و کسی که آن را در دست دارد مهاجم است.
به این حمله adversary-in-the-middle میگویند. صنعتی شده است: ابزارهایی مانند Evilginx، یک پروکسی معکوس که در ۲۰۱۷ پیدا شد، یا بستههایی که با اشتراک ماهانه فروخته میشوند، آن را بدون هیچ مهارت ویژهای در دسترس میگذارند. ضمناً آنچه دزدیده میشود تنها کد نیست، کوکی نشست است که پس از آن اجازه میدهد بدون گذر از هیچ احراز هویتی وارد بمانند.
مسئله معماری است. کدی که با پیامک فرستاده میشود هیچ اطلاعاتی دربارهٔ سایتی که آن را خواسته حمل نمیکند. بنابراین نمیتواند واقعی را از جعلی تشخیص دهد: هر جا تایپ شود، همان جا معتبر است.
این دیگر یک نظر نیست، یک موضع رسمی است
قویترین استدلال علیه پیامک از فروشندگان راهکار نمیآید، از نهادهایی میآید که استانداردها را مینویسند.
در ژوئیهٔ ۲۰۲۵، NIST آمریکا نسخهٔ نهایی SP 800-63B-4, Digital Identity Guidelines: Authentication and Authenticator Management را منتشر کرد. این متن ردهٔ صریحی از احرازکنندههای محدود پدید میآورد، ویژهٔ سازوکارهایی که توان مقاومتشان با تحول تهدیدها افت کرده است. بخش ۳.۱.۳.۳ استفاده از شبکهٔ تلفن سوئیچی عمومی، یعنی کدهای ارسالی با پیامک یا تماس صوتی، را در همین رده میگذارد: «Use of the PSTN for out-of-band verification is restricted as described in this section and SHALL satisfy the requirements of Sec. 3.2.9.» بهطور مشخص، سرویسی که هنوز به آن متوسل میشود باید جایگزینی نامحدود عرضه کند، کاربرانش را از خطر آگاه سازد و برنامهٔ گذار داشته باشد.
در دسامبر ۲۰۲۴، CISA، آژانس امنیت سایبری آمریکا، سند Mobile Communications Best Practice Guidance را منتشر کرده بود، در پی عملیات جاسوسی Salt Typhoon که در آن بازیگران وابسته به دولت چین به چند اپراتور مخابراتی آمریکایی نفوذ کردند. عبارتبندی جایی برای تفسیر نمیگذارد: «Do not use SMS as a second factor for authentication. SMS messages are not encrypted»، و پس از آن، بیپرده: «Only FIDO authentication is phishing-resistant.» سند صراحتاً کلیدهای سختافزاری FIDO را توصیه میکند و از Yubico و Google Titan نام میبرد، و تصریح میکند که پس از فعالسازی FIDO باید پیامک را غیرفعال کرد، وگرنه بهعنوان مسیر جایگزین قابل بهرهبرداری باقی میماند.
اپلیکیشنهای احراز هویت: پیشرفتی واقعی، راهحلی ناتمام
اپلیکیشنهای TOTP، کوتاهشدهٔ Time-based One-Time Password، کدی ششرقمی میسازند که هر سی ثانیه عوض میشود و بهصورت محلی از رازی که هنگام فعالسازی به اشتراک گذاشته شده و از ساعت کنونی محاسبه میشود. هیچ چیزی از شبکهٔ تلفن نمیگذرد.
سود آن فوری است: جابهجایی سیمکارت بیاثر میشود چون دیگر پای شماره در میان نیست، و شنود SS7 هم چون هیچ پیامی جابهجا نمیشود. کوچ به یک اپلیکیشن احراز هویت برای هر حسابی که نمیتواند فراتر برود ارزش انجام دادن دارد.
اما مسیر سوم دستنخورده میماند. کد TOTP که در سایت جعلی وارد شود، درست مانند کد پیامکی به سایت واقعی بازارسال میشود. اپلیکیشن نمیداند شما کجا وارد میشوید: عددی نشان میدهد و آن عدد نزد هر کسی که در پنجرهٔ سیثانیهای ارائهاش کند معتبر است. CISA همین را با همین واژهها میگوید: کدهای احراز هویت از پیامک بهترند اما در برابر فیشینگ آسیبپذیر میمانند.
TOTP یک مرحلهٔ میانی صادقانه است، نه مقصد.
چرا کلید FIDO2 ماهیت مسئله را عوض میکند
کلید سختافزاری FIDO2/WebAuthn تنها حمله را دشوارتر نمیکند، امکان مکانیکیاش را از میان میبرد.
هنگام ثبتنام در یک سرویس، کلید یک جفت کلید رمزنگاری ویژهٔ همان سرویس میسازد. بخش عمومی نزد سرویس میرود، بخش خصوصی هرگز از تراشه بیرون نمیآید و نه قابل استخراج است نه قابل خواندن. نه رازی مشترک که بتوان رونویسیاش کرد، نه کد ششرقمی که بتوان شنودش کرد.
سپس سازوکار تعیینکننده میآید، پیوند با مبدأ. هنگام ورود، مرورگر نام دامنهٔ واقعی صفحهٔ نمایشدادهشده را به کلید میدهد. این اطلاعات در دادهٔ امضاشونده گنجانده میشود و مرورگر آن را تحمیل میکند: جاوااسکریپت صفحه نه میتواند تغییرش دهد نه جعلش کند.
کلید FIDO2 موفقیت فیشینگ را دشوارتر نمیکند. نتیجهٔ فیشینگ را بیمصرف میکند.
حملهٔ adversary-in-the-middle را دوباره در نظر بگیریم، این بار با یک کلید. سایت جعلی بینقص است، قربانی چیزی نمیفهمد و کلیدش را لمس میکند. مرورگر دامنهٔ واقعی صفحه، یعنی دامنهٔ سایت کلاهبردار، را میفرستد. کلید میبیند برای این دامنه هیچ جفتی وجود ندارد، یا برای آن امضا میکند و امضایی میسازد که سرویس واقعی ردش خواهد کرد. در هر دو حالت مهاجم چیز بهدردبخوری به دست نمیآورد.
تفاوت ماهوی همینجاست. با پیامک یا TOTP، امنیت در نهایت بر هوشیاری کاربر تکیه دارد، بر توانایی او در تشخیص دامنهٔ جعلی در نوار نشانی، در لحظهای که عجله دارد و صفحه عادی به نظر میرسد. با FIDO2، این بررسی را ماشین انجام میدهد، هر بار، بیآنکه به توجه کسی وابسته باشد. همین انتقال مسئولیت است که اهمیت دارد، بیش از استحکام رمزنگاری.
اثرش سنجیدنی است. گوگل در آغاز ۲۰۱۷ استفاده از کلید را برای کارکنانش الزامی کرد و در میان بیش از ۸۵ هزار نفر در ۲۰۱۸ اعلام کرد هیچ مورد نفوذ به حساب ثبت نشده است.
محدودیتهای واقعی کلیدهای سختافزاری
بینقص نشان دادنشان ناصادقانه است، و برای آماده شدن به تصمیمهای واقعی هم بیفایده.
هزینه هست. بسته به مدل ۲۵ تا ۶۰ یورو در نظر بگیرید، در نسخههای زیستسنجی بیشتر، و آن را در دو ضرب کنید.
خطر واقعی گم شدن کلید است. یک کلید تنها روی یک حساب حساس، خطای طراحی است. روی هر حساب مهم باید دو کلید ثبت شود که یکی جای دیگری نگهداری شود، نزد فردی نزدیک یا در گاوصندوق. دومی امکان رفاهی نیست، همان چیزی است که استفاده از اولی را بیدلهره میکند.
پوشش ناقص است. بسیاری از سرویسها، بهویژه بانکها در اروپا، هنوز از FIDO2 پشتیبانی نمیکنند و اولویتبندی زیر از همینجا میآید.
کلید ممکن است دزدیده شود. از این رو باید روی کلید یک کد PIN فعال کرد، یا مدلی با اثر انگشت برگزید: بی آن، همان شیء بهتنهایی برای کسی که برش دارد کافی است.
مسیر جایگزین همچنان ضعیفترین حلقه است. فعال کردن FIDO2 بدون غیرفعال کردن پیامک از هیچ چیز محافظت نمیکند: مهاجم صرفاً از راهی میرود که باز مانده است. کوچ تنها زمانی تمام میشود که سازوکار قدیمی از حساب حذف شود، از جمله گزینههای بازیابی.
در زمینهٔ سختافزار، خانوادهٔ YubiKey گستردهترین دامنهٔ پروتکلها را پوشش میدهد، کلیدهای Google Titan ارزانترند و به FIDO محدودند، Nitrokey و SoloKeys جایگزینهایی با میانافزار باز و قابل بازرسی عرضه میکنند، و Token2 مدلهایی با صفحهکلید عددی داخلی میسازد که PIN روی خود کلید وارد میشود نه روی صفحهکلید رایانه. میان کلیدهای دارای گواهی FIDO2 انتخاب بدی وجود ندارد: پروتکل یکی است و تنها کاربردهای جانبی فرق میکند.
وقتی نمیشود همهچیز را عوض کرد، از کجا شروع کنیم
ترتیب کوچ مسئلهٔ سلیقه نیست، از وابستگیهای میان حسابهای شما بیرون میآید.
۱. نخست صندوق ایمیل اصلی. پیوندهای بازنشانی تقریباً همهٔ چیزهای دیگر به همینجا میآید. مهاجمی که آن را در اختیار بگیرد سایر حسابها را یکییکی پس میگیرد، بیآنکه به هیچکدام مستقیم حمله کند. هیچ چیز سزاوار نیست پیش از آن ایمن شود. ۲. مدیر گذرواژه. عامل نخست همهٔ دسترسیهای شما را یکجا دارد، پس حفاظتش باید همتراز محفوظترین حسابی باشد که در خود جای داده است. همین لحظه فرصت بررسی کیفیت گذرواژهٔ اصلی است، موضوعی که در مقالهٔ آنتروپی و علمی که پشت امنیت شماست به تفصیل آوردهایم. ۳. حسابهای مالی و پلتفرمهای رمزارز. هدفهایی با ارزش آنی، که در آنها یک نفوذ ظرف چند دقیقه به زیانی بازگشتناپذیر بدل میشود. ۴. حسابهای اجتماعی با مخاطب. پروندهٔ کمیسیون نشان میدهد حرف یک حساب دنبالشده چه وزنی دارد، و آسیب همیشه به صاحبش نمیرسد. ۵. بقیه میتواند صبر کند، با یک اپلیکیشن TOTP بهجای پیامک. یک انجمن یا یک سرویس پخش، همان اندازه زحمت را توجیه نمیکند.
برای حسابهایی که هنوز از FIDO2 پشتیبانی نمیکنند: هر جا ممکن است به TOTP بروید، و از اپراتورتان قفل انتقال شماره را بخواهید، که نزد بیشترشان گزینهای رایگان است.
این چه چیزی دربارهٔ رویکرد Arpokrat میگوید
این نوشته مسئلهای را شرح میدهد که تنها از آن رو وجود دارد که یک شناسه در مرکز سامانه نشانده شده است. شمارهٔ تلفن هرگز بهعنوان اثبات هویت طراحی نشده بود: از سر عادت به ستون فقرات احراز هویت برخط بدل شد، و هر سه حملهٔ بالا همین انحراف کاربرد را هدف میگیرند.
همین استدلال بر طراحی پروتکل Arpokrat Messenger حاکم بود: نه شمارهٔ تلفن، نه نشانی ایمیل، نه حساب کاربری. کاربر در قالب مجموعهای از کلیدهای رمزنگاری که روی دستگاه خودش نگهداری میشود وجود دارد، و ارتباط از راه پیوندهای دعوت یکبارمصرف برقرار میشود. منطق همان منطق FIDO2 است، یک پله بالاتر: آنچه در اختیار شخص ثالث نیست، نه با مهندسی اجتماعی علیه یک اپراتور از او بیرون کشیده میشود و نه با دستور قضایی. این همخوانی با معماری Zero-Knowledge را در مقالهٔ اکنون جمع کن، بعداً رمزگشایی کن بسط دادهایم.
کلید سختافزاری که امضا میکند بیآنکه هرگز رازش را آشکار کند، در واقع شیوهٔ کار یک کیفپول رمزارز آفلاین هم هست، که در راهنمای کامل کیفپول سرد شرحش دادهایم: بخش سری را در شیئی اختصاصی نگه داشتن و بیرون گذاشتن چیزی جز یک امضا.
جمعبندی
احراز هویت دومرحلهای با پیامک بد طراحی نشده بود. وقتی در اوایل دههٔ ۲۰۱۰ فراگیر شد، نسبت به گذرواژهٔ تنها پیشرفتی چشمگیر بود و تنها ویژگیای را داشت که در مقیاس بزرگ اهمیت دارد: همه از پیش تلفن داشتند.
مشکل اختراعش نیست، ماندگاریاش است. نمایشهای SS7 به ۲۰۱۴ برمیگردد، بهرهبرداری واقعی بانکی به ۲۰۱۷، صنعتی شدن فیشینگ بیدرنگ به پایان همان دهه. CISA در ۲۰۲۴ نوشت دیگر از آن استفاده نشود، NIST در ۲۰۲۵ محدودیت را رسمی کرد. حدود ده سال میان لحظهای که این ضعفها در مقیاس بزرگ قابل بهرهبرداری شدند و لحظهای که نهادها آن را روی کاغذ آوردند فاصله است. و پیامک همچنان در بیشتر سرویسهای عمومی عامل دوم پیشفرض است.
همین فاصله اطلاعات واقعی این نوشته است. سازوکارهای امنیتی وقتی از کار میافتند ناپدید نمیشوند، وقتی ناپدید میشوند که چیزی به همان سادگی جایشان را بگیرد، و آن بسیار بیشتر طول میکشد. پس پرسش این نیست که آیا باید پیامک را کنار بگذارید، این سالهاست تعیین تکلیف شده. پرسش این است که کدام حفاظهای دیگری که بدیهی میپندارید، بیآنکه هنوز کسی نوشته باشد، همین حالا در همین وضعاند.
منابع
- وزارت دادگستری ایالات متحده، Alabama Man Sentenced to 14 Months in Connection with Securities and Exchange Commission X Hack that Spiked Bitcoin Prices، ۱۶ مهٔ ۲۰۲۵
- کمیسیون بورس و اوراق بهادار، SECGov X Account، بیانیهٔ رسمی ۲۲ ژانویهٔ ۲۰۲۴
- NIST، SP 800-63B-4, Digital Identity Guidelines: Authentication and Authenticator Management، نسخهٔ نهایی ژوئیهٔ ۲۰۲۵
- CISA، Mobile Communications Best Practice Guidance، ۱۸ دسامبر ۲۰۲۴
- FBI Internet Crime Complaint Center، 2024 Internet Crime Report
- Threatpost، Cellular Privacy, SS7 Security Shattered at 31C3، نمایش توبیاس انگل و کارستن نول، دسامبر ۲۰۱۴
- Help Net Security، Attackers exploited SS7 flaws to empty Germans’ bank accounts، مهٔ ۲۰۱۷
- Krebs on Security، Google: Security Keys Neutralized Employee Phishing، ژوئیهٔ ۲۰۱۸
- W3C، Web Authentication: An API for accessing Public Key Credentials، مشخصات WebAuthn
