آخرین مطالب
پربازدیدترین مطالب

۵ مهر ۱۳۹۳

آرش کمانگیر

پادکست


امنیت سایبری با آرش کمانگیر | دوازدهم | گاهی حتی به گیرنده نمی‌توان اعتماد کرد


وقتی درباره‌ی امنیت دیجیتال صحبت می‌کنیم، غالبا لحنی امری داریم: «این کار را بکن!»،«به این نکته توجه کن!»، «آن کار را آن‌طور انجام نده!» فارغ از جزییات، در چنین نگاهی، کاربر بعنوان مسوول جلوگیری از خطراتی که او را تهدید می‌کند معرفی می‌شود و فرض بر این است که او باید با دنبال کردن دستورالعمل‌هایی، که گاهی هم خیلی دشوار هستند، خودش را در جنگل ِ دیجیتالی که دور همه‌ی ما را گرفته است، از خطرها حفظ کند. واقعیت این است که، هرچند کاربر در بسیاری از موقعیت‌ها نقطه‌ی شکست ِ سناریوهای امنیت دیجیتال است، اما وضعیت‌های زیادی هم وجود دارند که در آن‌ها اتفاقا ارایه‌ی دهنده‌ی خدمات، رفتار پرخطر را انجام می‌دهد و کاربر صرفا قربانی است و حتی گاهی راهی جز نظاره‌ی خاموش ِ وضعیت ندارد.
می‌خوام مقاله‌ای برای یک مجله‌ی علمی بفرستم و لازم است یک حساب کاربری بسازم. اطلاعات ِ لازم همان موارد ِ آشنا هستند: نام کاربری، اسم رمز و چند اطلاع ِ دیگر. چون می‌دانم که این حساب کاربری را صرفا برای ارتباط با این مجله استفاده خواهم کرد، با زدن تصادفی روی صفحه کلید یک اسم رمز می‌سازم و آن را جایی یادداشت می‌کنم. بعد از ساختن حساب، مقاله را می‌فرستم و سراغ کار دیگری می‌روم. چند دقیقه بعد ایمیل از مجله به دستم می‌رسد: «از این‌که یک حساب کاربری با ما ساختید متشکریم. برای ارجاع ِ آینده‌ی شما، نام کاربری شما این و اسم رمز شما آن است.» در کمال حیرت ِ من، اسم رمز بصورت متنی در ایمیل نوشته شده است.
مساله‌ی اول این است که اسم رمز در ایمیل درج شده است. به این ترتیب، کافی است کسی به هر روشی به متن این ایمیل دسترسی داشته باشد، یا با جستجو دنبال Password آن را در ایمیل‌های من پیدا کند، تا تمام اطلاعات ِ لازم برای دسترسی به حساب کاربری من را در اختیار داشته باشد. اما نکته‌ی اصلی اساسا چیز دیگری است. هرچند ما برای ورود به ابزارهای مختلف، اسم رمزمان را وارد می‌کنیم، اما فرض اساسی برای امنیت این کار این است که ابزار، نباید به اسم رمز دسترسی داشته باشد. این نکته ممکن است در ابتدا عجیب به‌نظر برسد، اما موضوعی اساسی در امنیت دیجیتال است.
واضح است که ساده‌ترین روش برای سنجش درستی یک اسم رمز این است که رمز وارد شده توسط کاربر را با اسم رمزی که در بانک‌اطلاعاتی وجود دارد مقایسه کنیم. این روش در بطن خود دو خطر مهم امنیتی دارد. اول، کاملا ممکن است که کاربران از یک اسم رمز برای دسترسی به چند محیط استفاده کنند. به این ترتیب، هریک از گردانندگان چنین محیط‌هایی این امکان را دارد که به‌جای کاربر در محیط دیگری لاگین کند. و همین‌جا خطر بزرگ‌تر مستتر است: کافی است یک هکر، کم‌امنیت‌ترین محیط را هدف قرار دهد تا بتواند به همه‌ی اطلاعات کاربر در محیط‌های مختلف دسترسی پیدا کند. به این دلیل، ابزارهای آنلاین ملزم هستند که از Hash کردن استفاده کنند. یک رشته‌ی متنی Hash شده را نمی‌توان به اصل آن برگرداند، اما می‌توان آن را با رشته‌ی دیگری مقایسه کرد. چنین سازوکارهایی اساس ِ امنیت دیجیتال هستند.
نکته‌ی مهم این است که مجله‌ای که این خطا را انجام داده‌است در نوع خود مشهور است. حقیقت این استکه من در زمان ساختن حساب کاربری نمی‌دانستم که امنیت این مجله تا این حد زیرسوال است و حتی اگر می‌دانستم هم عملا چاره‌ای جز ساختن این حساب کاربری نداشتم. سوال مهم این است که در چنین مواردی چه کار باید کرد.
محیط‌هایی مانند ایمیل، بانک و شبکه‌های اجتماعی مشهور، ملاحظات امنیتی را جدی می‌گیرند و اساسا حضورشان متکی بر فرض امنیت است. اما خیلی محیط‌های دیگر، منابع مالی و توجیه لازم برای دقت به جزییات را ندارند و به همین دلیل باید با لحاظ کردن رفتارهای ناامن ِ آن‌ها از آن‌ها استفاده کرد. برای ایجاد موقعیتی امن، برای ابزارهایی که احتمال ناامن‌بودن آن‌ها وجود دارد از اسم رمز مجزایی استفاده کنید و ایمیلی که در آن اسم رمز شما بصورت متنی و خوانا نوشته شده است را به‌سرعت پاک کنید. علاوه بر این، اگر طرحی کلی برای ساختن اسامی رمز دارید، برای چنین محیط‌هایی آن را کاملا کنار بگذارید. برای این‌کار می‌توانید از یکی از ابزارهای آنلاین ساختن اسم رمز، مانند این، کمک بگیرید و یا با فشردن تصادفی کلیدها، یک رشته‌ی متنی بسازید. نکته‌ی اساسی در چنین وضعیتی این است که در رابطه‌ی کاربر-ابزار، لزوما همیشه کاربر مقصر و سازنده‌ی موقعیت خطرناک نیست و گاهی مجبور هستیم از خودمان دربرابر بی‌دقتی ابزارها محافظت کنیم.