Iran Access • Article ۴ of ۵

کارت هوشمند ملی

کلید هویت دیجیتال — چهارمین لایه تاب‌آوری وقتی درگاه‌های ورود خارجی بسته می‌شوند

مقاله ۴ از ۵
بخش اول

حمله به لایه

تهدید واقعی و عینی وابستگی به OAuth خارجی — وقتی کلید ورود در دست غریبه‌هاست

تصور کنید یک آپارتمان لوکس و امن ساخته‌اید. دیوارها از بتن مسلح، درها از فولاد ضدسرقت، پنجره‌ها از شیشه‌های ضدگلوله. اما کلید ورود به این آپارتمان را به یک شرکت خارجی سپرده‌اید — شرکتی که می‌تواند هر لحظه تصمیم بگیرد دیگر به شما خدمات ندهد. صبح از خواب بیدار می‌شوید و می‌بینید کلیدتان کار نمی‌کند. آپارتمان سر جایش است، امن و سالم — اما شما نمی‌توانید وارد شوید. این دقیقاً موقعیتی است که وب‌سایت‌ها و اپلیکیشن‌های ایرانی در برابر سرویس‌های OAuth خارجی دارند — گوگل، اپل، فیسبوک، و توییتر که به عنوان درگاه ورود کاربران استفاده می‌شوند.

OAuth یک پروتکل استاندارد برای احراز هویت مبتنی بر شخص ثالث است. وقتی کاربر روی دکمه «ورود با گوگل» کلیک می‌کند، در واقع از گوگل می‌خواهد هویت او را تأیید کند و به وب‌سایت مورد نظر اعلام نماید که «بله، این شخص همان کسی است که ادعا می‌کند». این فرآیند — که در ظاهر ساده و بی‌خطر به نظر می‌رسد — یک وابستگی حیاتی ایجاد می‌کند: اگر گوگل API خود را قطع کند، هزاران کاربر یک‌شبه دسترسی به حساب‌های کاربری خود را از دست می‌دهند. این فقط یک احتمال نیست — بارها در کشورهای تحت تحریم اتفاق افتاده است.

واقعیت هشداردهنده: در سال ۲۰۲۲، پس از حمله روسیه به اوکراین، گوگل و اپل به‌طور هم‌زمان خدمات OAuth خود را برای کاربران روسی محدود کردند. میلیون‌ها کاربر روسی که با حساب گوگل یا اپل وارد اپلیکیشن‌های بانکی، خدماتی، و فروشگاهی می‌شدند، ناگهان از حساب‌های خود قفل شدند. این تصمیم در عرض چند ساعت — بدون هیچ هشدار قبلی — اجرا شد. برای کسب‌وکارهای ایرانی، این یک پیش‌نمایش از آینده است.

عامل اول: کالبدشکافی وابستگی — نقشه OAuth در اکوسیستم دیجیتال ایران

برای درک عمق بحران، باید دقیقاً بدانیم که چند درصد از اپلیکیشن‌ها و وب‌سایت‌های ایرانی به OAuth خارجی وابسته هستند. آمار دقیقی در این زمینه وجود ندارد — اما بر اساس بررسی‌های میدانی از اپلیکیشن‌های محبوب ایرانی در کافه بازار و گوگل پلی، بیش از ۶۰٪ از اپلیکیشن‌های ایرانی حداقل یکی از گزینه‌های «ورود با گوگل» یا «ورود با اپل» را ارائه می‌دهند. در بسیاری از موارد، این تنها روش ورود است — کاربر بدون حساب گوگل نمی‌تواند وارد شود. این یعنی بیش از نیمی از کاربران ایرانی، هویت دیجیتال خود را به یک شرکت آمریکایی سپرده‌اند.

این وابستگی فقط به اپلیکیشن‌های مصرفی محدود نمی‌شود. پلتفرم‌های سازمانی، سامانه‌های دولتی، و حتی برخی درگاه‌های پرداخت نیز از OAuth گوگل برای احراز هویت کاربران استفاده می‌کنند. دلیل این انتخاب ساده است: پیاده‌سازی OAuth گوگل رایگان، سریع، و آسان است — چند خط کد در фронت‌اند و یک API key. در مقابل، پیاده‌سازی یک سیستم احراز هویت اختصاصی، هزینه و زمان بسیار بیشتری می‌طلبد. اما این «صرفه‌جویی» یک بمب ساعتی است: هزینه‌ای که امروز پرداخت نمی‌شود، فردا با بهره چندبرابری سر می‌رسد.

سرویس OAuth شرکت مادر میزان استفاده در ایران نوع کاربران ریسک قطع
Google Sign-In Google (آمریکا) بسیار بالا (۶۰٪+) کاربران عمومی، سازمانی بسیار بالا
Sign in with Apple Apple (آمریکا) متوسط (۳۰٪+) کاربران iOS بالا
Facebook Login Meta (آمریکا) متوسط کاربران شبکه‌های اجتماعی متوسط
Twitter OAuth X Corp (آمریکا) پایین کاربران حرفه‌ای، خبرنگاران متوسط
GitHub OAuth Microsoft (آمریکا) متوسط توسعه‌دهندگان، برنامه‌نویسان متوسط
⚠️ سناریوی واقعی — Russia 2022: پس از تحریم‌های گسترده علیه روسیه، گوگل نه‌تنها Google Pay و Google Wallet را مسدود کرد، بلکه محدودیت‌های جدی روی Google OAuth نیز اعمال نمود. کاربران روسی که از «ورود با گوگل» استفاده می‌کردند، با خطای «این سرویس در کشور شما در دسترس نیست» مواجه شدند. اپلیکیشن‌های روسی مجبور شدند ظرف چند روز سیستم احراز هویت خود را کاملاً بازنویسی کنند — آن هم در بحبوحه بحران. این سناریو برای ایران کاملاً قابل تکرار است.

عامل دوم: قفل شدگی کاربر — وقتی گوگل کلید را برمی‌دارد

مشکل OAuth فقط به «قطعی موقت» محدود نمی‌شود — مسئله عمیق‌تر، قفل‌شدگی کاربر (User Lock-in) است. وقتی کاربری با حساب گوگل خود در یک اپلیکیشن ایرانی ثبت‌نام می‌کند، هویت دیجیتال او در آن اپلیکیشن به حساب گوگلش گره می‌خورد — نه به ایمیل، نه به شماره تلفن، نه به کد ملی. اگر گوگل دسترسی را قطع کند، کاربر راه دیگری برای اثبات هویت خود ندارد. اپلیکیشن نمی‌داند این کاربر کیست — چون هرگز اطلاعات هویتی او را مستقیماً دریافت نکرده بود؛ فقط یک توکن OAuth از گوگل دریافت کرده بود که حالا بی‌اعتبار شده است.

این یعنی میلیون‌ها حساب کاربری — با تمام تاریخچه خرید، اطلاعات حساب، تنظیمات شخصی، و داده‌های ذخیره‌شده — یک‌شبه غیرقابل دسترس می‌شوند. صاحبان این حساب‌ها نمی‌توانند وارد شوند، چون کلید ورودشان در دست گوگل بود و گوگل آن را پس گرفته است. اپلیکیشن هم نمی‌تواند این کاربران را نجات دهد — چون هیچ اطلاعات هویتی مستقلی از آنها ندارد. این یک فاجعه تجاری و حقوقی است: کاربران از دست رفته‌اند، داده‌ها قفل شده‌اند، و هیچ راه بازگشتی وجود ندارد.

🔍 OAuth چطور کار می‌کند؟ در پروتکل OAuth، وب‌سایت شما هرگز رمز عبور کاربر را نمی‌بیند. به جای آن، یک «توکن دسترسی» (Access Token) از گوگل دریافت می‌کند که می‌گوید: «این کاربر همان کسی است که ادعا می‌کند». این توکن یک کلید موقت است — اگر گوگل آن را باطل کند، کلید از کار می‌افتد. وب‌سایت شما هیچ راهی برای تأیید هویت کاربر بدون این توکن ندارد — مگر اینکه یک سیستم احراز هویت جایگزین داشته باشد. اکثر وب‌سایت‌های ایرانی این سیستم جایگزین را ندارند.

عامل سوم: Identity as a Service — وقتی هویت، سرویس ابری می‌شود

سومین و عمیق‌ترین لایه وابستگی، فروش هویت به عنوان سرویس (Identity as a Service - IDaaS) است. شرکت‌هایی مانند Auth0 (متعلق به Okta آمریکا)، Firebase Auth (متعلق به گوگل)، و AWS Cognito (متعلق به آمازون) کل فرآیند احراز هویت را به عنوان یک سرویس ابری ارائه می‌دهند. توسعه‌دهنده به جای نوشتن حتی یک خط کد احراز هویت، از SDK آماده این شرکت‌ها استفاده می‌کند و کل سیستم ورود، ثبت‌نام، بازیابی رمز عبور، و مدیریت نشست‌ها را به یک شرکت آمریکایی برون‌سپاری می‌کند.

استفاده از Auth0 یا Firebase Auth در اپلیکیشن‌های ایرانی — به‌ویژه استارتاپ‌هایی که سرعت توسعه برایشان حیاتی است — بسیار رایج است. اما این سرویس‌ها دقیقاً همان ریسک OAuth گوگل را دارند، با یک تفاوت مرگبار: اینجا فقط «ورود» وابسته نیست — کل سیستم هویت وابسته است. اگر Auth0 حساب شما را ببندد، نه‌تنها کاربران نمی‌توانند وارد شوند، بلکه تمام داده‌های هویتی آنها — از جمله ایمیل‌ها، شماره تلفن‌ها، و تاریخچه لاگین — نیز از دسترس خارج می‌شود. این یعنی یک شرکت آمریکایی مالک داده‌های هویتی کاربران ایرانی است — و می‌تواند هر لحظه این داده‌ها را مصادره کند.

الگوی تکراری: وابستگی به OAuth خارجی و IDaaS فقط یک مسئله راحتی و سرعت توسعه نیست — یک مسئله حاکمیت داده و استقلال دیجیتال است. هویت کاربران ایرانی — اطلاعاتی که باید تحت بالاترین سطح حفاظت قانونی و امنیتی قرار داشته باشد — در حال حاضر روی سرورهای گوگل، اپل، و آمازون ذخیره می‌شود. این آسیب‌پذیری تا زمانی که یک سیستم هویت دیجیتال ملی و مستقل ایجاد نشود، یک تهدید مهلک باقی خواهد ماند.

بخش دوم

راهکار Iran Access

سپر دفاعی: پلتفرم «ورود ملی» مبتنی بر گواهی دیجیتال PKI روی کارت هوشمند ملی

پاسخ Iran Access به تهدید سه‌گانه OAuth خارجی (قطع دسترسی، قفل‌شدگی کاربر، و مصادره داده‌های هویتی) یک پلتفرم «ورود ملی» (National Sign-In) است — یک سیستم احراز هویت متمرکز و در عین حال توزیع‌شده که از گواهی دیجیتال روی کارت هوشمند ملی به عنوان عامل اصلی احراز هویت استفاده می‌کند. این پلتفرم بر پایه زیرساخت کلید عمومی (PKI) ساخته می‌شود — همان فناوری که پشت HTTPS و امضای دیجیتال قرار دارد — و به کاربران ایرانی اجازه می‌دهد با کارت ملی خود وارد هر وب‌سایت یا اپلیکیشنی شوند.

نکته کلیدی در این معماری، استاندارد بودن آن است. ورود ملی از پروتکل‌های استاندارد بین‌المللی — OAuth 2.0، OpenID Connect، و SAML — پشتیبانی می‌کند. این یعنی هر وب‌سایت یا اپلیکیشنی که امروز از «ورود با گوگل» استفاده می‌کند، می‌تواند با تغییر یک خط کد به «ورود ملی» مهاجرت کند — بدون نیاز به بازنویسی سیستم احراز هویت. تفاوت فقط در این است که به جای accounts.google.com، درخواست احراز هویت به auth.iranaccess.ir ارسال می‌شود — و به جای توکن گوگل، یک توکن امضاشده با گواهی دیجیتال کارت ملی برگشت داده می‌شود.

عامل چهارم: PKI و گواهی دیجیتال — کلید رمزنگاری‌شده روی کارت ملی

زیرساخت کلید عمومی (PKI) یک فناوری رمزنگاری نامتقارن است که از یک جفت کلید عمومی و خصوصی استفاده می‌کند. روی هر کارت هوشمند ملی، یک گواهی دیجیتال منحصربه‌فرد نصب شده است که توسط مرکز ریشه اعتماد (Root CA) در سازمان ثبت احوال امضا شده است. این گواهی شامل کلید عمومی کاربر است، در حالی که کلید خصوصی به‌طور امن در تراشه کارت نگهداری می‌شود و هرگز از کارت خارج نمی‌شود. این یعنی حتی اگر سرور ورود ملی هک شود، کلیدهای خصوصی کاربران لو نمی‌رود — چون آنها اصلاً روی سرور نیستند.

فرآیند ورود با کارت ملی به این صورت است: کاربر در وب‌سایت یا اپلیکیشن روی دکمه «ورود با کارت ملی» کلیک می‌کند. اپلیکیشن یک چالش رمزنگاری‌شده (Cryptographic Challenge) تولید می‌کند و برای کاربر ارسال می‌کند. کاربر کارت ملی خود را به کارت‌خوان متصل می‌کند (یا از NFC گوشی استفاده می‌کند)، پین کد خود را وارد می‌کند، و کارت چالش را با کلید خصوصی امضا می‌کند. پاسخ امضاشده به سرور ورود ملی ارسال می‌شود. سرور با استفاده از کلید عمومی کاربر — که در گواهی دیجیتال ذخیره شده — امضا را تأیید می‌کند. اگر امضا معتبر باشد، کاربر بدون نیاز به رمز عبور، بدون نیاز به ایمیل، و بدون نیاز به هیچ سرویس خارجی احراز هویت می‌شود.

🔑

احراز هویت PKI

ورود با امضای دیجیتال کارت ملی — بدون رمز عبور، بدون ایمیل، بدون گوگل. کلید خصوصی هرگز از تراشه کارت خارج نمی‌شود. امنیت در سطح سخت‌افزار.

🔄

سازگار با OAuth/OpenID

پروتکل استاندارد OpenID Connect — هر اپلیکیشنی که امروز از گوگل OAuth استفاده می‌کند، با تغییر یک Endpoint به ورود ملی مهاجرت می‌کند.

📱

NFC و کارت‌خوان موبایل

کاربران می‌توانند از NFC گوشی هوشمند یا کارت‌خوان‌های USB برای اتصال کارت ملی استفاده کنند. بدون نیاز به سخت‌افزار گران‌قیمت.

مزیت پنهان PKI: در احراز هویت مبتنی بر PKI، سرور هرگز به رمز عبور کاربر دسترسی ندارد — چون اصلاً رمز عبوری وجود ندارد. احراز هویت با امضای دیجیتال انجام می‌شود که غیرقابل جعل است. حتی اگر مهاجم کل پایگاه داده سرور را بدزدد، باز هم نمی‌تواند وارد حساب کاربران شود — چون کلید خصوصی روی کارت است، نه روی سرور. این امنیت در سطحی است که OAuth گوگل هرگز نمی‌تواند ارائه دهد.

عامل پنجم: National SSO — Single Sign-On در اکوسیستم ایرانی

یکی از بزرگ‌ترین مزایای OAuth گوگل، Single Sign-On (SSO) است: کاربر یک بار وارد حساب گوگل خود می‌شود و می‌تواند بدون ورود مجدد به ده‌ها وب‌سایت و اپلیکیشن مختلف دسترسی پیدا کند. این راحتی، دلیل اصلی محبوبیت OAuth است — کاربران نمی‌خواهند برای هر سایت یک رمز عبور جداگانه حفظ کنند. ورود ملی ایران اکسس نیز دقیقاً همین قابلیت را با National SSO ارائه می‌دهد — اما با یک تفاوت حیاتی: ارائه‌دهنده هویت (Identity Provider) یک نهاد ایرانی است، نه گوگل.

در معماری National SSO، کاربر یک بار با کارت ملی خود وارد می‌شود و یک نشست احراز هویت متمرکز ایجاد می‌کند. سپس هر وب‌سایت یا اپلیکیشنی که از ورود ملی پشتیبانی کند، می‌تواند بدون ورود مجدد کاربر، از این نشست استفاده کند. این دقیقاً همان تجربه‌ای است که کاربران با «ورود با گوگل» دارند — با این تفاوت که داده‌های هویتی کاربر در ایران می‌ماند، تحت قوانین حفاظت از داده‌های شخصی ایران، و دور از دسترس OFAC و تحریم‌ها.

🔄 فرآیند National SSO — ورود به یک اپلیکیشن با کارت ملی

👤
۱. درخواست ورود

کاربر در اپلیکیشن یا وب‌سایت روی «ورود با کارت ملی» کلیک می‌کند. اپلیکیشن کاربر را به صفحه ورود ملی هدایت می‌کند.

💳
۲. احراز هویت با کارت ملی

کاربر کارت ملی را به کارت‌خوان یا NFC متصل می‌کند. یک چالش رمزنگاری‌شده ارسال می‌شود و کارت آن را با کلید خصوصی امضا می‌کند.

۳. تأیید امضا

سرور ورود ملی با استفاده از گواهی دیجیتال کاربر (که توسط Root CA ثبت احوال امضا شده)، امضای کارت را تأیید می‌کند.

🎫
۴. صدور توکن

سرور یک توکن JWT امضاشده صادر می‌کند که شامل شناسه کاربر، زمان صدور، و زمان انقضاست — کاملاً مطابق استاندارد OpenID Connect.

🔓
۵. ورود به اپلیکیشن

اپلیکیشن توکن را دریافت و تأیید می‌کند. کاربر وارد حساب کاربری خود می‌شود — بدون اینکه حتی یک بار رمز عبور تایپ کرده باشد.

عامل ششم: امضای دیجیتال فراتر از ورود — قراردادها، تراکنش‌ها، و اسناد رسمی

زیرساخت PKI روی کارت ملی فقط برای «ورود» نیست — یک پلتفرم کامل امضای دیجیتال است که می‌تواند فراتر از احراز هویت، در امضای قراردادها، تراکنش‌های بانکی، اسناد رسمی، و حتی رأی‌گیری الکترونیکی استفاده شود. همان گواهی دیجیتالی که برای ورود به یک اپلیکیشن استفاده می‌شود، می‌تواند برای امضای یک قرارداد حقوقی الزام‌آور نیز به کار رود — امضایی که طبق قانون تجارت الکترونیک ایران معادل امضای دستی است و در دادگاه قابل استناد.

این یعنی کارت ملی هوشمند فقط یک «کلید ورود» نیست — یک کیف پول دیجیتال هویت است. هر تراکنش بانکی می‌تواند با امضای دیجیتال کارت ملی تأیید شود. هر قرارداد آنلاین می‌تواند با همان کارت امضا گردد. هر رأی در یک انتخابات الکترونیکی می‌تواند با گواهی دیجیتال کارت ملی ناشناس اما معتبر به صندوق انداخته شود. این یک تحول در حاکمیت دیجیتال است — از «ورود با گوگل» به «امضای با کارت ملی».

📜 پشتوانه قانونی: طبق قانون تجارت الکترونیک ایران (مصوب ۱۳۸۲)، «امضای دیجیتال» که با رعایت موازین فنی و با استفاده از گواهی دیجیتال معتبر ایجاد شده باشد، معادل امضای دستی است و در مراجع قضایی قابل استناد می‌باشد (مواد ۱۰ تا ۱۴). گواهی دیجیتال روی کارت هوشمند ملی که توسط سازمان ثبت احوال (به عنوان یک مرکز صدور گواهی معتبر) صادر شده، دقیقاً مشمول این قانون است. ورود ملی ایران اکسس نه‌تنها یک راهکار فنی، بلکه یک راهکار قانونی برای احراز هویت و امضای اسناد است.
اصل بقا در لایه هویت: سیستمی که ریشه اعتماد (Root CA) آن در داخل ایران باشد، پروتکل‌هایش با استانداردهای بین‌المللی سازگار باشد، کلیدهای خصوصی کاربرانش روی تراشه‌های امن کارت ملی ذخیره شده باشد، و قانون تجارت الکترونیک پشتیبان حقوقی آن باشد، حتی اگر گوگل، اپل، و تمام ارائه‌دهندگان OAuth جهان خدمات خود را قطع کنند، کاربران ایرانی همچنان می‌توانند وارد حساب‌های خود شوند، قرارداد امضا کنند، و هویت خود را اثبات نمایند. استقلال در هویت = مصونیت از قفل‌شدگی دیجیتال.

بخش سوم

حلقه اتصال

حالا که کاربر وارد حسابش شد — چطور باید پرداخت کند؟

فرض کنید تونل فیزیکی ایران اکسس بسته‌های داده را سالم به مقصد رسانده است. DNS مستقل هم نام دامنه را به IP درست تبدیل کرده و مسیر یافته شده است. CDN داخلی هم تمام محتوای سایت — تصاویر، فونت‌ها، اسکریپت‌ها — را از کش داخلی و امن بارگذاری کرده است. کاربر با کارت ملی خود وارد حساب کاربری‌اش شده و همه‌چیز تا این لحظه عالی پیش رفته است. کاربر محصول را انتخاب کرده، آن را در سبد خرید گذاشته، و حالا روی دکمه «پرداخت» کلیک می‌کند. چهار لایه حیاتی — فیزیک، مسیریابی، محتوا، و هویت — وظیفه خود را به بهترین شکل انجام داده‌اند.

اما حالا کاربر باید پول بپردازد. درگاه پرداخت باز می‌شود — و ناگهان با خطایی مواجه می‌شود: «اتصال به شبکه پرداخت برقرار نیست». یا بدتر: درگاه پرداخت کار می‌کند، اما تحریم‌های بانکی مانع از انتقال وجه می‌شود. یا از همه بدتر: درگاه پرداخت کار می‌کند، پول از حساب کاربر کم می‌شود، اما به حساب فروشنده واریز نمی‌شود — چون سوئیچ پرداخت بین‌المللی مسدود شده است. تمام زحمات چهار لایه قبلی، با یک تراکنش مالی ناموفق به هدر می‌رود. کاربر وارد شده، محصول را دیده، انتخاب کرده — اما نمی‌تواند بخرد.

⛓️

اگر تراکنش مالی انجام نشود، تمام لایه‌های قبلی بی‌ثمر می‌مانند

کاربر به سایت رسیده، محتوا را دیده، هویتش تأیید شده، و آماده پرداخت است. اما اگر درگاه پرداخت به سوئیچ‌های بین‌المللی وابسته باشد — یا اگر تحریم‌ها مانع از تسویه حساب شوند — چرخه اقتصادی کامل نمی‌شود. تمام آن معماری عظیم — تونل‌های فیزیکی، DNS مستقل، CDN داخلی، و ورود ملی — مثل یک فروشگاه بزرگ و مجهز است که صندوقش کار نمی‌کند. یک لایه دیگر باید جریان پول را — بدون وابستگی به شبکه‌های پرداخت تحریم‌پذیر — تضمین کند.

اینجاست که ضرورت لایه پنجم آشکار می‌شود. چهار لایه قبلی — فیزیک، مسیریابی، محتوا، و هویت — همگی وظیفه خود را بی‌نقص انجام داده‌اند. کاربر به سایت رسیده، آن را کامل و امن دیده، هویتش تأیید شده، و حالا در آستانه تبدیل شدن به مشتری است. اما این تبدیل — از بازدیدکننده به مشتری — نیازمند یک تراکنش مالی موفق است. تراکنشی که باید از کانال‌هایی عبور کند که تحریم‌ناپذیر باشند — کانال‌هایی که حتی اگر SWIFT و ویزا و مسترکارت هم‌زمان قطع شوند، همچنان بتوانند پول را از حساب کاربر به حساب فروشنده منتقل کنند. بدون این لایه، تمام آنچه ساخته شده، یک ویترین بی‌صندوق است — زیبا، اما بی‌فایده.