کاربرد بلاک چین در احراز هویت دیجیتال (بخش اول)

با پیشرفت اینترنت و گسترش عمومی استفاده از آن، چالش‌های زیادی گریبانگیر جوامع شده است؛ از مسائل اخلاقی گرفته تا حملات سایبری و کلاهبرداری‌ها. اما یکی از اساسی ترین و بنیادی‎ترین چالش‌های حل نشده در فضای دیجیتال، احراز هویت است. به گونه‌ای که هر شخص با هویتی یکتا و قابل رهگیری در فضای دیجیتالی فعالیت کرده و بتواند از حقوق و مسئولیت‌های خود در این دنیای جدید دفاع کند. در این مقاله مروری داریم بر تلاش‌های صورت گرفته برای احراز هویت دیجیتال، و همچنین نقش تکنولوژی رمزنگاری و بلاک چین در رفع این چالش.

2 279

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

اما وقتی پای مسائل مهمتری همچون امور مالی به میان می‌آید، دیگر کار به این راحتی نیست. به عنوان مثال وقتی می‌خواهید از طریق اینترنت به حساب بانکی خود دسترسی یافته و مبلغ قابل توجهی را انتقال دهید، ناگزیر باید مراحل دقیق شناخت مشتری (KYC or Know Your Customer) را طی نمایید. یا به عنوان مثال اگر قرار است به حساب توئیتر رئیس جمهور امریکا دسترسی یافته و مطلبی را از جانب او منتشر کنید، اول باید ثابت کنید که رئیس جمهور امریکا هستید. حتی گاهی برای شرکت در یک نظرسنجی اینترنتی ابتدا باید ثابت کنید که وجود دارید (آنجایی که باید با چند کلیک نشان دهید که ربات نیستید). بنابراین می‌توان ضرورت احراز هویت را در دو واژه خلاصه کرد: حقوق و مسئولیت‌ها.

احراز هویت دیجیتال

با پیشرفت تکنولوژی، اینترنت به بخش اجتناب ناپذیری از زندگی انسان‌ بدل شد و سپس این چالش به وجود آمد که چگونه هویت فیزیکی یگانه خود را به هویت دیجیتالی خود متصل کنیم. همانطور که واقفید، هر موجودیت دیجیتالی قابل جعل و کپی برداریست. بنابراین داشتن هویت یگانه در فضای اینترنت چالشی بود که می‌بایست حل می‌شد. شاید فکر کنید که پاسخ بسیار ساده است؛ با ساختن یک حساب کاربری و تعیین یک رمز عبور، همه چیز امن خواهد بود. اما اینطور نیست. به طور کلی وقتی از ارتباط میان سرور و کاربر در فضای اینترنت صحبت می‎کنیم، همیشه باید احتمال سرقت اطلاعات در میانه‌ی مسیر را لحاظ کنیم. به عنوان مثال وقتی رمز عبور ایمیل خود را وارد می‎کنید، احتمال سرقت آن توسط اشخاص ثالث و دستیابی به ایمیل شما کار چندان سختی نیست. ضمن اینکه سرویس ارائه دهنده ایمیل نیز همیشه قابل اعتماد نیست و نباید پسورد حساب کاربری شما را داشته باشد. بنابراین پلتفرم هایی که از ما رمز عبور می‌خواهند چگونه می‎خواهند از هویت ما مطلع شوند؟

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

«ناشناس بودن آنلاین، شناسایی آنلاین، احراز هویت آنلاین، خوشنامی آنلاین، امضاهای آنلاین، حریم خصوصی آنلاین، و دسترسی آنلاین»

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

پاسخ این پرسش در تکنولوژی رمزنگاری (Cryptography) نهفته است.

تکنولوژی رمزنگاری و به کارگیری آن در اینترنت

انتقال اطلاعات حساس بر روی یک شبکه مستلزم بکارگیری مکانیزمی است که چهار ویژگی زیر را تضمین نماید:

  1. امنیت: داده ارسالی نمی‌بایست توسط افراد غیرمجاز، استفاده (خوانده) گردد.
  2. هویت: افراد شرکت‌کننده در ارتباط همان افرادی می‌باشند که ادعا می‌نمایند.
  3. غیرجعلی بودن اطلاعات: داده دریافت شده در مقصد با داده ارسال شده در مبدأ یکسان بوده و اطلاعات دستکاری نشده باشد.
  4. عدم انکار: به این معنی است که ارسال‌کنندهٔ اطلاعات نتواند در آینده ارسال آن را انکار یا مفاد آن را تکذیب نماید.

این چهار چالش مطرح شده درکنار هم، یک مساله تاریخی تحت عنوان خطای بیزانتین (Byzantine fault) را شکل می‎دهند که در مقالات آتی به تفصیل آن را توضیح خواهیم داد؛ اما در این مقاله تنها به چالش دوم و چهارم یعنی احراز و انکار هویت خواهیم پرداخت.

رمزنگاری یک طرفه

در رمزنگاری یک طرفه داده‌های ورودی را به گونه‌ای رمزنگاری می‎کنیم که دیگر قابل رمزگشایی و دستیابی به داده اولیه نباشند. در این روش از توابع یک طرفه استفاده می‌کنیم. توابع یک طرفه توابعی هستند که در ازای یک ورودی خاص، یک خروجی خاص تولید می‎کنند، اما با داشتن خروجی، هرگز نمی‎توان به داده ورودی دست یافت. در واقع پیام ارسالی در این روش، به شیوه‌ای خاص (بسته به نوع الگوریتم رمزنگاری) کد گذاری شده و در ازای هر داده ورودی، رشته کاراکترهایی شامل اعداد و حروف درهم ریخته با طولی ثابت (به طور مثال 64 کاراکتر) ایجاد می‌کنند که اصطلاحاً “هش (Hash)” نامیده شده و دارای شرایط زیر است.

  1. در ازای هر ورودی یکتا، یک هش خروجی یکتا تولید می‌شود و این عمل تکرارپذیر است (یعنی هر چندبار که ورودی یکسانی را به تابع بدهید، هر بار خروجی یکسانی تولید خواهد کرد)
  2. هیچ دو ورودی متفاوتی، خروجی یکسان نخواهند داشت.
  3. سرعت تولید هش از داده ورودی زیاد و قابل قبول باشد.
  4. با در اختیار داشتن هش خروجی و تابع هش، دستیابی به ورودی اولیه عملاً غیر ممکن است.
  5. با ایجاد هرگونه تغییر کوچکی در ورودی اولیه، هش خروجی به طور کامل تغییر کرده و نمی‌توان آن را حدس زد.

الگوریتمی که دارای شرایط فوق باشد، یک الگوریتم مناسب و غیرقابل نفوذ برای رمزنگاری داده‌ها تلقی می‌گردد. از این روش رمزنگاری، برای غیر قابل تغییر کردن و ثبت دائمی داده‌ها در بلاک چین استفاده می‎کنیم. به این صورت که داده‌های موجود در هر بلاک یک بار هش شده، و هش هر بلاک (که از هش داده‌های ثبت شده در بلاک تولید می‎شود)، در بلاک بعدی ذخیره می‎گردد (همچنین هش هر بلاک، یکی از شرایط لازم برای تعیین هش بلاک بعدیست که در مقالات آتی به طور کامل این فرآیند را توضیح خواهیم داد). بدین ترتیب عملاً دستکاری و تغییر داده‌های موجود در بلاک‌های پیشین غیرممکن خواهد شد؛ چرا که با ایجاد هرگونه تغییری در هر یک از بلاک‌ها، هش بلاک تغییر یافته و هش بلاک‌های بعدی نیز نامعتبر خواهد شد. این چیدمان هوشمندانه مکانیزمی را ایجاد می‎کند که با اتکا به آن می‌توان از غیرقابل تغییر بودن داده‌های ثبت شده اطمینان حاصل کرد. همچنین در پلتفرم‌ها و سایت‌هایی که به کاربران امکان ساخت حساب کاربری و تعیین گذرواژه می‎دهند نیز از توابع هش یک طرفه استفاده می‎شود. به عنوان مثال پایگاه داده شرکت فیسبوک هیچگاه گذرواژه حساب شما را ذخیره نمی‎کند؛ بلکه در هنگام ایجاد هر حساب کاربری و تعریف گذرواژه توسط کاربر، با استفاده از توابع رمزنگاری یک طرفه، گذرواژه کاربر هش شده و هش آن در پایگاه داده فیسبوک ذخیره می‌شود. فیسبوک با داشتن این هش نمی‌تواند به حساب شما دسترسی یابد، اما هرگاه که برای ورود به حساب خود، گذرواژه را در مرورگر رایانه خود وارد می‎کنید، این گذرواژه به صورت هش شده برای فیسبوک ارسال شده و با تطبیق آن با هشی که از قبل ذخیره شده، اجازه دسترسی به حساب شما صادر می‎گردد.

کاربرد بلاک چین در احراز هویت دیجیتال (بخش اول)

رمزنگاری متقارن

حال به سراغ روش‌هایی می‎رویم که تحت شرایط خاصی، رمزگشایی آسان هش را ممکن می‎سازند. به این صورت که برای هش کردن داده، از یک کد دیگر تحت عنوان “کلید” استفاده می‎گردد. یکی از روش‌های رایج رمزنگاری، “رمزنگاری متقارن”، یا “رمزنگاری کلید توافقی” است. رمزنگاری متقارن روشی‌ست که در آن کلید رمزی کردن و باز کردن رمز یکی‌ست. این روش را می‌توانید به صورت صندوقی درنظر بگیرید که با همان کلیدی باز می‎شود که با آن قفل شده است (که مطابق تجربه روزمره ماست). یکی از نکاتی که استفاده از روش رمزنگاری متقارن را محدود می‌کند این است که همه طرف‌های درگیر در فرآیند، باید باید روی یک کلید توافق کرده و آن را در اختیار داشته باشند و هیچ فرد دیگری نیز نباید به این کلید دسترسی داشته باشد. استفاده از کلید توافقی در حین کار با طرف دوم قابل اعتماد رابطه ایرادی ندارد؛ از سوی دیگر اما، وقتی با گروه های بزرگ یا منابع ناشناس زیادی سر و کار داریم، به دلیل در معرض خطر قرار گرفتن کلید، باید روش امنی نیز برای جابجایی کلید پیدا کرد که خود مستلزم وجود یک کانال امن یا استفاده از رمزنگاری است که تشکیل یک دور باطل می‌دهد و به هر حال در ابتدا باید کلیدها رد و بدل شده باشند. علاوه بر این، برخی از کاربردهای ویژه رمزنگاری (همچون احراز هویت)، در این روش رمزنگاری ممکن نیستند. برای رفع این مشکل از الگوریتم‌ “رمزنگاری مبتنی بر کلید عمومی-خصوصی” (یا الگوریتم رمزنگاری نامتقارن) استفاده می‎کنیم.

کاربرد بلاک چین در احراز هویت دیجیتال (بخش اول)

رمزنگاری نامتقارن

الگوریتم رمزنگاری نامتقارن روشی بسیار جدید بوده و بر پایه توابع یک طرفه استوار است. نحوه کار الگوریتم رمزنگاری مبتنی بر کلید عمومی-خصوصی، به این صورت است که هر فرد برای ارتباط با سایر اشخاص، یک جفت کلید عمومی و خصوصی برای خود ایجاد می‎کند که کلید عمومی (public key) برای رمزگذاری، و کلید خصوصی برای رمزگشایی پیام مورد استفاده قرار می‌گیرد (قفلی را تصور کنید که یک کلید مخصوص قفل کردن و یک کلید مخصوص باز کردن دارد). کلیدهای عمومی و خصوصی تولید شده توسط این الگوریتم، به گونه‌ای هستند که هر پیام رمزنگاری شده با کلید عمومی، تنها با کلید خصوصی متناظر آن رمزگشایی می‎گردد. یکی از مزایای روش رمزنگاری نامتقارن نسبت به روش متقارن، این است که کلید عمومی را می‎توان بین عموم منتشر کرد (بدون اینکه امنیت پیام های ارسالی به خطر بیفتد)؛ اما کلید خصوصی را باید نزد خود مخفی نگه داشت. پس برای ایجاد یک ارتباط امن میان دو فرد (به عنوان مثال اصغر و شروین را در نظر می‎گیریم، چون از مثال باب و آلیس خسته شدیم!) کافیست اصغر و شروین ابتدا کلیدهای عمومی و خصوصی خود را ایجاد کنند. سپس برای ارسال یک پیام امن از سوی اصغر به شروین، باید مراحل زیر طی شود:

  1. شروین کلید عمومی خود را به صورت عمومی برای اصغر ارسال می‎کند. فرض بر این است که همیشه فردی به نام چنگیز (آدم بده در تمام سریال های ایرانی) پیام‌ها را در میانه راه سرقت می‎کند و از الگوریتم رمزنگاری نیز مطلع است.
  2. اصغر کلید عمومی شروین را دریافت کرده و با استفاده از آن پیامی را رمزنگاری (encryption) می‎کند.
  3. اصغر پیام رمزنگاری شده (ciphertext) را برای شروین ارسال می‎کند (که از قضا چنگیز نیز این پیام را دریافت می‌کند).
  4. شروین پیام رمزنگاری شده را دریافت کرده و با کلید خصوصی خود آن را رمزگشایی (decryption) می‌کند.

کاربرد بلاک چین در احراز هویت دیجیتال (بخش اول)

عملکرد کلید خصوصی و عمومی را می‌توان به صندوقی تشبیه کرد که دارای دو کلید است. یکی از کلیدها تنها به صورت ساعتگرد کار می‌کند و دیگری فقط به صورت پادساعتگرد عمل خواهد کرد. فرض کنید کلید خصوصی در قفل این صندوق به صورت ساعتگرد می‌چرخد و کلید عمومی تنها به صورت پادساعتگرد قابل چرخاندن است. واضح است که کلیدی به جز این دو کلید نه به صورت ساعتگرد و نه به صورت پادساعتگرد نمی‌تواند در قفل حرکت کند. علاوه بر این قفل صندوق یک قفل سه حالته است. در چپ قفل، بالا باز و در سمت راست دوباره درب صندوق قفل می‌شود. احتمالاً موضوع کمی برایتان گنگ شد؛ یعنی پیامی که با کلید عمومی رمزنگاری شده را می‎توان با کلید خصوصی رمزگشایی کرد، و پیامی که با کلید خصوصی رمزگذاری شده را نیز می‌توان با کلید عمومی رمزگشایی کرد؟ پاسخ مثبت است. وقتی از کلید خصوصی و عمومی صحبت می‌کنیم، در حقیقت از یک جفت “کد رمزنگاری” صحبت می‎کنیم که فرقی نمی‎کند کدام را نزد خود نگه دارید و کدام را منتشر کنید. از هر کلیدی که برای رمزنگاری پیام استفاده کنید، کلید دیگر قادر به رمزگشایی آن پیام است. تمامی آنچه که در این روش توضیح دادیم، همان چیزی‌ست که در پروتکل های انتقال امن داده‌های فرامتنی (HTTPS) به کار گرفته می‎شود و شما هر روز هنگام استفاده از مرورگر اینترنت خود و چک کردن سایت‌هایی که از این پروتکل پیروی می‎کنند، بدون اینکه دقت کنید، با آن تعامل دارید. بدین ترتیب اطلاعات ارسالی از سرور به شما و بلعکس، در میانه راه توسط سرویس دهندگان اینترنت یا افراد سوءاستفاده گر، قابل استفاده نخواهد بود، چرا که تمامی داده‌ها به صورت رمزنگاری شده انتقال می‎یابند و تنها در مقصد قابل رمزگشایی هستند (از این به بعد به قفل کوچک سبز رنگ در نوار آدرس مرورگر خود توجه بیشتری داشته باشید!).

در دهه 90 میلادی نیز برنامه‌ای نرم افزاری تحت عنوان pretty good privacy) PGP) برای ارتباطات امن ایمیلی ابداع شد که شاید بتوان آن را اولین استفاده رسمی از الگوریتم رمزنگاری نامتقارن در فضای اینترنت دانست. همچنین در دنیای رمز ارزها، با استفاده از رمزنگاری نامتقارن، داد و ستد امنی میان فرستنده رمز ارز و گیرنده آن برقرار می‎گردد (برای مطالعه بیشتر در این خصوص، به وبسایت فینمگ مراجعه کنید). در بخش دوم از این مقاله، کاربرد بلاک چین و رمزنگاری نامتقارن را در بحث احراز هویت دیجیتال بررسی می‌کنیم. با ما همراه باشید!

شاید از این مطالب هم خوشتان بیاید.

ارسال پاسخ

آدرس ایمیل شما منتشر نخواهد شد.

2 نظر
  1. راضیه

    سلام خیلی جذاب بود وخیلی لذت بردم …اما واقعا ازین که رفرنس نداره اذیت کنندست …ممنون میشم اگر به اشتراک بزارید رفرنس هارو تا ما هم استفاده کنیم.

    1. مدیر سایت

      باتشکر از توجه شما . منبع این مقاله سایت فینمگ است