امنیت

امنیت در ارسال ایمیل

هیچ وقت پیش نیومده بود که ایمیل خیلی مهمی بفرستم که نیاز به رمزنگاری داشته باشه ولی همیشه علاقه خاصی به مبحث رمزنگاری داشتم.

بعد از قضایای NSA و اسنودن و خوندن خبر تعطیلی سرویس ایمیل امنی که اسنودن ازش استفاده می کرد به فکر افتادم که آیا می شه از سرویسی مثل جیمیل با امنیت بالاتر استفاده کرد؟ و مسلما سوالی که سال ۲۰۱۳ به ذهن من می رسه احتمالا قبلا کسی بهش فکر کرده و راهی براش پیدا کرده. پس جستجو کردم و راههای مختلف رو امتحان کردم.

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

یکی از بهترین روش های رمز گزاری متن در حال حاضر استفاده از PGP است. یک روش که ایده اش استفاده از دو تا کلید برای قفل کردن و باز کردن صندوق امنه. فرض کنید یه صندوق هست که با یک کلید قفل می شه و با یک کلید دیگه باز می شه. حالا شما می تونید از اون کلید قفل کننده کپی بگیرید و به دوستاتون بدید تا هروقت لازم بود چیزی رو توی صندوق بذارن و درش رو قفل کنن. ولی از کلید دیگه فقط یدونه دست شماست که در نتیجه فقط شمایید که می تونید امانتی رو بردارید.

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

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

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

من برای انجام این کارها از دوتا افزونه گوگل کروم استفاده می کنم و یه تغییر کوچیک در تنظیمات جیمیل. ابتدا افزونه‌های Mailvelope و PGP Global Directory OpenSearch Plugin را نصب کنید.

حال برای ساخت جفت کلید خودمون به اینجا میریم:

Mailvelope –> Options –> Generate Key

مطابق تصویر زیر تنظیمات را انجام می دیم. پیشنهاد می کنم برای قابل شناسایی و جستجو بودن در قسمت اسم، اسم مناسبی رو وارد کنید. مگر در شرایط خاص. سایز کلید هم که در حالت عادی ۱۰۲۴ bits است ولی من پیشنهاد می کنم از ۲۰۴۸ یا ۴۰۹۶ استفاده کنید که احتمال شکسته شدن قفل رو کمتر می کنه. البته سایز بالاتر زمان بیشتری برای کد و دیکد کردن متن پیام رو باعث می شه. در نهایت هم پسورد استفاده از کلید خصوصی رو وارد کنید. این پسورد برای اطمینان از این قضیه است که اگر به اشتباه کلید خصوصی شما در اختیار کس دیگه ای قرار گرفت (فرض کنید لپتاپتون که کلید رو روش دارید دزدیده شد) بدون داشتن این پسورد نتونه ایمیل شما رو بخونه.

ساخت جفت کلید خصوصی و عمومی

ساخت جفت کلید خصوصی و عمومی

بعد از اینکه این کلید رو ساختید برید در قسمت Display Keys روی کلید ساخته شده کلیک کرده و Export را انتخاب کنید. حال شما یک فایل دارید که شامل کلید عمومی شماست.

الان زمان اون رسیده که کلید عمومی خودمون رو جایی بذاریم تا دیگران بتونن در صورت نیاز با جستجو پیداش کنند. همونجایی که شما می تونید کلید دیگران رو پیدا کنید. می ریم سراغ افزونه دوم و یا مستقیما می ریم توی سایت نگهداری کلیدهای عمومی PGP و کلید خودمون رو آپلود می کنیم.

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

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

خب تا اینجا هر آنچه که می خواهیم رو داریم. تنها نکته اینه که برای کد شدن متن فارسی و دیکد شدن به صورت موفق بایست سیستم نگارش ایمیل را تغییر بدهیم. برای این کار در قسمت تنظیمات جیمیل Settings و در صفحه عمومی generals در انتها صفحه و در قسمت Outgoing message encoding، گزینه دوم که Use Unicode (UTF-8) را انتخاب می کنیم.

تظیم جیمیل برای ارسال متن فارسی

تظیم جیمیل برای ارسال متن فارسی

کار تموم شده. حالا بیایم و برای امتحان برای یکی از دوستانمون ایمیل رمزگزاری شده بفرستیم.

من برای ایمیل وبسایتم me [@] scriptics dot ir جستجو کردم. بعد از پیدا کردن کلید عمومی اون رو دانلود کردم.

بعد مطابق مسیر زیر این کلید رو وارد افزونه Mailvelope کردم.

Mailvelope –> Options –> Import Keys

حالا می رم و در جیمیل یه ایمیل جدید رو می نویسم ولی قبل از ارسال روی دکمه ای که گوشته محل نوشتن متن اومده کلیک می کنم که پنجره زیر نمایش داده می شه. حالا انتخاب می کنم که ایمیل رو برای چه کسی می خوام رمزگزاری کنم و نتیجه رو با فشردن دکمه OK و سپس Transfer به جای متن اصلی جایگزین می کنم و برای گیرنده ارسال می کنم.

تبدیل متن ساده به رمز

تبدیل متن ساده به رمز

نمونه متن رمزگزاری شده

نمونه متن رمزگزاری شده

در صورتیکه دریافت کننده ایمیل رمزگذاری شده باشید، این افزونه رمز رو تشخیص می ده و پیشنهاد باز کردنش رو می ده. درصورتیکه کلید خصوصی رو داشته باشید و در افزونه Import کرده باشید، پس از وارد کردن رمزی که برای کلید خصوصی انتخاب کرده بودید متن اصلی ایمیل رو می بینید.

و تمام.

Standard
امنیت

هکرهای ایرانی بر دایره

پنج شنبه گذشته بود که OxAlien، یک هکر اماراتی، ساعت ۱۲:۳۵ توییت کرد که سایت append-hc.com ضعف امنیتی در دستورات sql دارد.

append-Hc

ضعف امنیتی در سایت هکرهای ایرانی

۲ ساعت بعد هم توییت کرد که منتظر انتشار اطلاعات بیشتر باشید و تا ۸ شب اطلاعات کاربران سایت شامل نام کاربری، ایمیل و پسورد هش شده را عمومی کرد.

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

موج بعدی زمانی خواهد رسید که این پسوردها دیکود شده و احتمالا بخشی از کاربرها پسورد مشابهی برای ایمیلشان داشته باشند. نتیجه: هک شدن ایمیل هکرهای ایرانی.

هم اکنون سایت از دسترس خارج شده و علت را “ارتقا” نوشته است. متاسفانه امنیت کاربران اونقدر براشون مهم نبوده که رسما اعلام کنند هک شده اند و یا توصیه کنند که کاربرها رمزهای مشابه را سریعا تغییر دهند.

نکته دیگه ای که هکر هم بهش اشاره ای کرده اینه که مدیر سایت پیش از این با نرم افزار اکونیتکس سایتش رو برای پیدا کرد ضعف های امنیتی چک کرده. وجود مقداری در ستون ایمیل مانند http://www.acunetix.tst و print(md5(acunetix_wvs_security_test));die();/* این مساله رو تایید می کنند. با اینحال این مشکل امنیتی از چشمان مدیر سایت به دور مونده و منجر به هک شدن سایت شده.

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

Standard
امنیت

آشفته بازار طراحی سایت – پست تکمیلی

پیش از این در پست دیگری به دو سایت اشاره کردم که پسورد کاربرها رو به صورت “متن ساده” یا Plain Text ذخیره می‌کنند. نکته تاسف برانگیز این بود که این سایت ها متعلق به دو آموزشگاه معتبر برنامه‌نویسی در تهران بودند.

روز گذشته یه سوال به ذهنم اومد. اینکه این سایت ها که پسورد رو بدون رمزگذاری نگهداری می کنند آیا موقع ارسال به سرور هم رمزگذاری نمی‌کنند؟

با استفاده از افزونه Live HTTP Headers در فایرفاکس، مقادیر ارسالی این سایت ها رو در زمان لاگین کردن بررسی کردم. همونطور که در عکس های زیر می‌بینید متاسفانه هر دو سایت، اطلاعات کاربری من رو به صورت واضح و بدون کوچکترین رمزگذاری یا پیچیدگی منتقل می‌کنند.

مقادیر ارسالی سایت آموزشگاه دانشگاه شریف

مقادیر ارسالی سایت آموزشگاه دانشگاه شریف

مقادیر ارسالی سایت مجتمع فنی تهران

مقادیر ارسالی سایت مجتمع فنی تهران

مشکل کجاست؟

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

swiss-chart-ENG

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

اصلا چرا راه دور بریم، همین دعواهای یک ماه گذشته در مورد NSA رو که شنیدید. خب اون به خاطر اینکه وسعت خیلی زیادی داشت و وسیله یک کشور به اصطلاح قانونمند انجام می شد کلی سر و صدا کرد ولی کشورهای دیگه (هند برای مثال) در سطحی کوچک تر اینکار رو می کنند و اطلاعات کاربران کشور رو بررسی می‌کنند.

اینجا دوباره برمی گردیم به سوال اصلی. آیا گردانندگان این سایت ها برای امنیت اطلاعات کاربران ارزشی قایل هستند؟

به‌روز رسانی:

نوشته بالا مربوط به ۶ مرداد بود. امروز ۱۱ مرداد ایمیلی دریافت کردم که نشون دهنده هک شدن سایت آموزشگاه دانشگاه شریف بود. به قول معروف هک شدن از رگ گردن به سایت شما نزدیک‌تره 🙂

ایمیل ارسالی از طرف هکر سایت آموزشگاه دانشگاه شریف

ایمیل ارسالی از طرف هکر سایت آموزشگاه دانشگاه شریف

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

Standard