امنیت

روز جهانی محرمانه بودن داده ها

نامگذاری ۲۸ ژانویه به عنوان روز جهانی محرمانه بودن داده ها (که در اروپا بهش حفاظت از اطلاعات هم می گن) یک بهانه است برای یادآوری حق انسان ها در جلوگیری از دسترسی دیگران به اطلاعات شخصیشون. کنوانسیون دفاع از حقوق افراد در برابر پردازش خودکار اطلاعات (شاید ترجمه حقوقیش چیز دیگه ای باشه که من پیدا نکردم) ۲۸ ژانویه سال ۱۹۸۱ آماده امضا شد. کنوانسیون جرایم مجازی و ماده ۸ کنوانسیون اروپایی حقوق بشر نیز از قوانین دیگه ای اند که در اونها از حق حفظ حریم خصوصی و حفاظت از اطلاعات شخصی افراد گفته شده.

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

privacy

امسال این روز یه رنگ و بوی دیگه داره. این اولین ۲۸ ژانویه پس از افشاگریهای اسنودن و مشخص شدن گستردگی نقض قوانین توسط سازمان های دولتی آمریکا، انگلیسه (و کم و بیش کشورهای دیگه). اسنودن نشون داد که چقدر افراد در برابر دولت ها آسیب پذیرند. جدا از دولت ها، مجرمین سایبری هم بیکار ننشستند و خبرهای بدی رو در سال گذشته رقم زدند. از افشای اطلاعات ۱۵۰ میلیون کاربر سایت ادوب تا موردهای مشابه در مورد بانک ها و موسسات تجاری و غیره.

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

نمونه های واقعی رو می تونم مثال بزنم از سایت هایی که اطلاعاتشون رو من به راحتی به دست آوردم و به مدیران سایت اطلاع دادم و متاسفانه نه تا کنون مشکل رو برطرف کردند و نه به کاربرانشون اطلاع دادن برای انجام موارد پیشگیرانه.

بذارید یه نمونه دیگه رو مثال بزنم. همین یک ماه گذشته بود که کارمند یک شرکت مخابراتی در کره، شماره تماس و اطلاعات ۲۰ میلیون نفر رو در اختیار یک شرکت تبلیغاتی گذاشت. هم کارمند خطا کار و هم مدیرعامل شرکت تبلیغاتی دستگیر شدند اما در ایران روزانه شاهد تماس و اس‌ام‌اس از طرف شماره های ناشناسیم که حتی از شغل و موقعیت جغرافیایی محل زندگی ما خبر دارند و کسی هم پاسخگو نیست.

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

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

من در ادامه سعی می کنم نکاتی که باید توسط شرکت ها و مدیران سایت ها رعایت بشه رو بیارم. شما هم اگر پیشنهادی برای تکمیلش دارید از شیوه های ارتباطی که با من دارید بهم اطلاع بدید تا لیست رو تکمیل کنم.

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

3 thoughts on “روز جهانی محرمانه بودن داده ها

  1. آرمین says:

    سلام
    به نکات خیلی خوبی اشاره کردی
    راستش در طراحی سایت ها این یه جوری رسم شده که همیشه اطلاعات زیادی که شاید هیچ کاربردی نداره از کاربران جمع میکنن متاسفانه خود من هم این اشتباه رو مرتکب شدم
    مثلا ذخیره اسم – فامیلی و تاریخ تولد کاربر اونقدر اهمیت نداره که بخوایم ریسک نگهداری شون رو بکنیم
    من البته سعی میکنم در پروژه های بعدی حتما این نکات رو لحاظ کنم
    از مقاله خوبتم ممنون

  2. آرمین says:

    هوشمند جان به نظر شما بهترین الگاریتم برای رمزگزاری اطلاعات زخیره شده در دیتابیس مثل آدرس ایمیل و یوزرنیم چی هست؟
    چند دقیقه پیش که سزچ کردم به این آموزش رسیدم :
    http://net.tutsplus.com/tutorials/php/creating-a-crypter-class/
    که خیلی جالب بود ولی به نظر شما اگر هکر به سورس کد های برنامه دسترسی پیدا کنه آیا دیگه رمزگزاری فایده ای داره؟ چون میتونه از همون کد برای دیکد کردن اطلاعات رمزگزاری شده استفاده کنه.
    البته من قبلا در یه مقاله ای خونده بودم که میشه خود فایل های php رو رمزگزاری کرد. به نظر شما این راه جواب میده ؟
    اگر اطلاعاتی در این زمینه دارید ممنون میشم در اختیارم بزارید
    بازم ممنون

    • هوشمند says:

      سلام امین جان
      برای تصمیم گیری در مورد رمز نگاری باید فیلدها رو از هم جدا کنی. برای مثال تو نیاز داری خودت به اسم و ایمیل کاربر دسترسی داشته باشی که بتونی ایمیل های پشتیبانی براش بفرستی، پس باید از رمزگذاری استفاده کنی و برگشت پذیر هم باشه.
      برای این داده ها می شه روش رمزگذاریی که از یک کد یا کلید برای رمگذاری و رمزگشایی استفاده می کنه رو استفاده کنی. لینک های زیر رو برای نمونه ای از تابع های رمزگذاری و رمزگشایی ببین:
      http://www.php.net/manual/en/function.mcrypt-generic.php
      http://www.php.net/manual/en/function.mdecrypt-generic.php

      یه قضیه جالب اینکه ادوب یک اشتباه فاحش داشت و پسوردها رو با این روش ها “رمزگذاری” می کرد.
      در مورد پسورد باید سراغ الگوریتم هایی بریم که برگشت پذیر نیستن و به hash معروفند. لینک های زیر توابع پی اچ پی برای هش کردن رو معرفی کردن:
      http://www.php.net/manual/en/faq.passwords.php
      http://www.php.net/manual/en/function.crypt.php
      و فعلا یکی از قویترین الگوریتم های هش کردن که پی اچ پی هم ساپورتش می کنه CRYPT_BLOWFISH است.
      امیدوارم سوالت رو جواب داده باشم

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.