پیشنهاد یک شیوه ساده برای تایید هویت در فضای مجازی

پیشنهاد یک شیوه ساده برای تایید هویت در فضای مجازییکی از مشکلات سایتهای تجارت الکترونیک در سالهای اخیر تایید هویت کاربران است. مواردی مثل سواستفاده از اطلاعات کارتهای بانکی و یا سواستفاده از سرویسهای آگهی های آنلاین باعث شده که نهادهای ناظر نیز در این زمینه سخت گیری بیشتری داشته باشند. برای تایید هویت کاربران راهکارهای محدود وجود دارد که بطور کلی یک شیوه دریافت تصویر فرد همراه کارت ملی است و دیگری استفاده از سامانه های دولتی برای احراز هویت (از طریق شماره موبایل و کد ملی) که هر دو مشکلاتی دارند اولی که همانطور که چندین بار اتفاق افتاده است ممکن است باعث نشت اطلاعاتی کاربران شود و دومی نیز روند اداری و کاغذبازی و به دلایل نامعلوم هزینه قابل توجهی دارد.آنچه در اکثر موارد از احراز هویت کاربران انتظار می رود این است که کاربر اطلاعات هویتی خود را درست وارد کرده و مشخصاً خود اراده و اقدام به ثبت نام میکند و فردی از اطلاعات هویتی دیگران سو استفاده میکند و اینکار در اکثر موارد تنها با چک کردن کدملی و شماره موبایل و ارسال یک پیامک به موبایل ممکن است. اما بانک اطلاعاتی شامل کدملی و شماره موبایل چیزی که نیست حداقل بصورت رسمی در اختیار کسب و کارهای آنلاین باشد. در واقع اگر بانک اطلاعاتی آنلاین یا سرویسی بود که صرفا با ارسال امکان «کدملی+شماره موبایل» صحت آنرا چک میکرد بخش بزرگی از مشکل برطرف می شد که البته چنین کاری امروز به شکلی دیگری در برخی سامانه های حکومتی با هزینه قابل توجه و کاغذبازی امکان پذیر است اما اگر چنین بانک اطلاعاتی در اختیار کسب و کارها قرار می گرفت کار بسیار کم هزینه و ساده تر می شد و صد البته با خود خواهید گفت آیا کدملی و شماره موبایل میلیونها نفر در اختیار همه قرار گیرد؟ اینجاست که یک راهکار ساده وجود دارد.فرض کنید ما کدملی 0012345678 و شماره موبایل 09121234567 را داریم. ترکیب این دو عبارت 0012345678-09121234567 خواهد بود که نیاز است که در بانک اطلاعاتی چک شود که چنین عبارتی وجود دارد یا خیر، اما حقیقتاً نیازی به اصل اطلاعات نیست و یک عبارت Hash شده (نوعی بهم ریختگی یکطرفه اطلاعات) نیز همان کاربرد را دارد. معادل هش شده عبارت اشاره شده در الگوریتم MD5 عبارت e269fb00ecdfef394ac5a907b1bfe08e است. بنابراین اگر بانک اطلاعاتی عبارات هش شده همه شماره موبایلها+کدملی را داشته باشیم فقط کافیست هش شده ترکیب کدملی+شماره موبایل کاربر را در این بانک اطلاعات جستجو کنیم که مشخص شود اطلاعات ورودی کاربر صحیح است و سپس یک کد تایید برای شماره موبایل کاربر ارسال شود تا کار نهایی شود.از آنجایی که اطلاعات hash شده بصورت یکطرفه است عملا امکان شکستن رمز و به دست آمدن اطلاعات اصلی وجود ندارد اما ممکن است فرد یا افرادی با هش کردن میلیونها عبارت ممکن (نزدیک یک میلیارد شماره موبایل ممکن ضربدر صدها میلیونها کدملی ممکن) و مقایسه با بانک اطلاعاتی بتواند شماره موبایل فرد یا کد ملی افراد را به دست آورد. اگرچه اینکار نیاز به محاسبه میلیاردها هش کد دارد اما با قدرت کامپیوتری امروز غیرممکن نیست و اینجاست که نیاز است یک فاکتور اطلاعاتی دیگر اضافه شود و بطور مثال نام‌خانوادگی افراد (با حذف فاصله،تشدید و تنوین و همزه) و ساخت یک عبارت شامل (کدملی+شماره موبایل+نام) و سپس آنرا هش کرد (معادل هش عبارت 0012345678-09121234567-شیرازی عبارت 9b2c91e23f3cc21a404db3641ce3d1ac است ).حال شما یک بانک اطلاعاتی شامل میلیونها رکورد هش شده دارید و سایتها در زمان ثبت نام و تایید هویت کاربر کافیست ترکیبی کدملی+شماره موبایل+نام را هش و سپس عبارت فوق را در بانک اطلاعات جستجو کنند که مشخص شود اطلاعات ورودی کاربر صحیح است. این فایل اطلاعاتی میتواند روزانه یا هفتگی (با توجه به خرید و واگذاری شماره خطهای جدید) توسط نهاد متولی بروز شده و در اختیار کسب و کارها قرار گیرد.در بحث امنیت اطلاعات اگرچه با ترکیب هش شده فوق امکان حدس تصادفی و یا انبوه اطلاعات بسیار کم است اما همچنان اگر دو فاکتور اطلاعاتی وجود داشته باشد (مثلا نام و کدملی) ممکن است بتوان با ساخت و محاسبه میلیونها عبارت هش و مقایسه با بانک اطلاعاتی شماره موبایل فرد را نیز تشخیص داد. البته با روشهایی مثل (ترکیب هش موبایل+هش کد+هش نام و سپس هش مجدد آن)، استفاده از بخشی اطلاعات مثل هفت شماره آخر موبایل و یا استفاده از الگوریتمهایی که منابع بیشتری میخواهند مانند SHA256 اینکار را سخت تر کرد و همچنین میتوان عرضه این بانک اطلاعاتی به مجموعه های خصوصی یا دولتی واجد حداقل شرایط حفاظت از اطلاعات محدود کرد که این مجموعه آنرا بصورت API در اختیار سایتها و اپ‌های متقاضی قرار دهند (در در عین حال بانک اطلاعات را بروز کنند) با ورود بخش خصوصی و با توجه به اینکه مقایسه هش کدها با بانک اطلاعاتی منابع زیادی نمی خواهد هزینه هر درخواست میتواند بسیار کم (در واقع میتواند کمتر از ده ریال برای هر مقایسه) باشد و مجموعه های بزرگتر که نیاز به میلیونها هویت سنجی دارند میتوانند با تامین شرایط امنیت اطلاعات به بانک اطلاعاتی دسترسی داشته باشند و حتی در صورت نشت کل این بانک اطلاعاتی هم خطر خاصی کاربران را تهدید نمی کند.