به گزارش گروه فضای مجازی «خبرگزاری دانشجو»، سامانه پست الکترونیک ملی، چندی پیش به دست وزیر ارتباطات و فناوری اطلاعات افتتاح شد. هدف کلی مطرح شده برای ایجاد سامانه از جانب مقامات مسؤول تأمین امنیت ارتباطی ایمیل برای ایرانیان عنوان شده است که توجه به این موضوع قابل تقدیر است اما قبل از پذیرش و اقدام به استفاده از این پست الکترونیک باید دید که تا چه حد اهداف مطرح شده در این محصول محقق گردیده است. همچنین یک نکته لازم به ذکر قبل ارزیابی تواناییهای سامانه حاضر این است که تأمین امنیت صد در صدی در هیچ سامانهای چه الکترونیکی و چه غیر آن ممکن نیست و امنیت همیشه نسبی است.
* بررسی کلی پست الکترونیکی ایران
آنچه که معمولا در نگاه اول به هر نوع خدمات اینترنتی توجه مصرف کننده را جلب میکند ساختار و امنیت نرم افزار تحت وب ارائه دهنده خدمات سامانه است.
از این نظر نرم افزار موجود بر روی سرویس غیر امن HTTP سوار است به راحتی امکان رصد اطلاعات منتقل شده بین کاربر و سامانه را به دیگران میدهد.
نوع نرم افزار پایه هم بر روی سرویس دهنده معروف آپاچی است که قابل نصب بر روی کلیه انواع سیستمهای عامل معروف از BSD و Unix گرفته تا Windows و Linux را داراست.
همچنین با توجه به استفاده از نرم افزار Roundcube برای ارائه خدمات مدیریت پست الکترونیکی به نظر میرسد که حد اقل بخشی از این خدمات با استفاده از زبان متنی PHP برنامه ریزی شده است. همچنین ویرایش مورد استفاده از این نرم افزار بسیار قدیمی بوده و ملاحظات امنیتی جدید در آن اعمال نشده است.
اما با نگاهی به شبکه ارتباطی و IPهای ارائه دهنده این سرویس به نظر میرسد که این شبکه Load Balanced بر روی تعدادی سرور در یک نقطه فیزیکی میباشد که خود از نظر امنیتی ملاحظاتی را در بر میگیرد.
با در نظر گرفتن به ملاحظات بالا توجه به نکات زیر ضروری مینماید:
1. از آنجا که پروتکل HTTP ناامن است، هر نوع ارتباط گیری و وارد کردن مشخصات فردی در این سامانه که پیش نیاز استفاده از آن است، ناامن بوده و میتواند موجب معضلات بعدی گردد. لذا روش مرسوم HTTPS که گونه رمزگذاری شده و امنتر پروتکل HTTP است میتواند جایگزین بهتری برای تأمین امنیت بیشتر این سامانه باشد.
اما در صورت استفاده از روش HTTPS دانستن چگونگی تأمین امنیت ارتباطات حائز اهمیت است. در این نوع ارتباط بر اساس یک روش رمز گذاری مانند SSL – Secure Socket Layer یا TLS – Transport Layer Security هر سامانه یک جدول رمزگشای عمومی را به کاربر ارائه میدهد که خود با استفاده از یک رمز خصوصی ویژه مورد تأیید نرم افزار مرورگر کاربر امضا شده است. این جدول رمزگشا به کاربر اجازه میدهد که از این پس هر نوع اطلاعات رد و بدل شده ما بین کاربر و سامانه را بر اساس این کد رمزگشایی نماید. همچنین هر مرورگر به صورت داخلی دارای یک رمز داخلی است که با ارائه رمزگشای عمومی مربوطه به سامانه، امکان رمز گشایی معکوس اطلاعات کاربر را به سامانه میدهد.
اما نکته کلیدی در این نوع از ارتباط گیری مربوط به رمزهای خصوصی مورد تأیید مرورگرهای مورد استفاده است. این رمزهای خصوصی معمولا هنگام نصب نرم افزار سیستم عامل و نرم افزارهای مرورگر نصب و به روز رسانی میگردند. در بسیاری از سیستمهای عامل نیز هر نرم افزار برای آنکه توسط سیستم عامل برای نصب مورد اعتماد واقع شود میبایست خود توسط رمز مخفی شرکت تولید کننده نرم افزار سیستم عامل یک امضای تأییدیه داشته باشد. این مسیر یک زنجیره از اعتمادسازی براساس اعتماد به یک عنصر بر اساس اعتماد به عنصر معرف را پدید میآورد.
از آنجا که ایران در حال حاضر تحت تحریمهای بین المللی است که شامل بسیاری از خدمات الکترونیکی نیز میگردد، امکان ایجاد و دریافت امضای یک زوج رمز خصوصی و عمومی، و سپس دریافت امضای تأییدیه برای رمز عمومی برای ارائه به کاربر در سامانه یک موضوع غیر قابل اطمینان است.
برفرض هم که این کد رمز و جدول عمومی آن با امضای مربوطه قابل تأمین باشد، با توجه به تجربه تلخ ویروس استاکس نت که نفوذ آن بر اساس یکی از نرم افزارهای شرکت Real که در مجموعه رمزهای خصوصی مورد اعتماد محسوب میشد صورت پذیرفت، مشکل امنیتی کاملاً حل نمیشود.
همچنین در صورتی که این امضای تأیید صورت نپذیرد و بدون امضای تأیید این رمز ارائه گردد در واقع زنجیره اعتماد شکسته شده و خود یک حفره امنیتی میشود که از طریق آن یک خرابکار میتواند اقدام به راه اندازی سامانه کاملا مشابه سامانه پست الکترونیک ملی نماید و کارهای خرابکارانه مد نظر خود را به انجام رساند.
لذا مطمئنترین روش برای نیل به این موضوع آن است که سامانه به صورت فیزیکی اقدام به ارائه نرم افزار مرورگری نماید که مخصوص مرور سامانه پست الکترونیک ملی است و فقط رمز خصوصی ملی را پشتیبانی مینماید که در این صورت یک زنجیره موازی با زنجیره اعتماد خارجی ایجاد میگردد. بدیهی است موفقیت و یا عدم موفقیت این موضوع هم وابسته به نحوه ارتباط گیری و ارائه خدمات فیزیکی و پشتیبانی توسط سامانه پست الکترونیکی ملی و مقامات مسؤول است.
2. لازم به ذکر است که استفاده از نرم افزارهای غیر به روز رسانی شده خود یک حفره امنیتی میباشد. اما حتی در صورت به روز رسانی این سؤال مطرح میگردد تا چه حد میتوان به نرم افزار تولید شده و به روز رسانی شده خارجی برای نیل به هدف امن سازی خدمات پست الکترونیک ملی اعتماد نمود؟
الف – در این راستا نرم افزارهایی مانند Roundcube، Squirrelmail، Horde و... که وظیفه ارائه دسترسی به پست الکترونیک را بر روی شبکه وب بر عهده دارند به عنوان نرم افزارهای عمومی Open Source که توسط گروههای خارجی تولید و انتشار مییابند لازم به بررسی هستند.
اولا همگی این نرم افزارها به صورت غیر حرفهای و توسط گروههای مختلف غیر متمرکز تولید میگردند. ثانیا برخی از آنها مانند Squirrelmail سابقه و کیفیت امنیتی بالاتری نسبت به بقیه دارند.
ب – زبان PHP یکی از پرطرفدارترین زبانهای متنی در میان برنامه نویسان از حرفهای تا مبتدی است. علت اصلی این موضوع وجود کتابخانههای کد، صفحات پرش (Platforms) و اسلوب بندیهای بسیار (Frameworks) به صورت اغلب مجانی بر روی این زبان میباشد. همچنین با زحمات چند شرکت مهم برنامه نویسی مانند Zend (صهیونیستی) و iOnCube این زبان دارای قابلیتهای مهمی مانند اجرای چند لایهای و رمزگذاری کد گردیده است. همچنین استفاده شرکتهای بزرگی مانند Facebook، Yahoo، Wikipedia و... از این نرم افزار برای ارائه خدمات وب باعث ایجاد احترام ویژهای برای این زبان در میان شرکتهای بزرگ خدمات دهنده وب شده است.
اما در حاضر رقبای بسیاری از زبانهای متنی مانند Ruby، Python، Perl، و... از زبانهای متنی و همچنین زبانهای تبدیل به کد ماشینکننده و نسبتا قابل اعتمادی مانند C/C++، Ada، Haskell و... برای زبان PHP موجود هستند که روز به روز به حجم کتابخانههای کد آنها افزوده میشود.
به عنوان مثال صفحه پرش Rails بر روی زبان Ruby و یا Django بر روی زبان Python رقبای جدی برای صفحات پرشی مانند Drupal و CodeIgniter بر روی زبان PHP هستند. همچنین زبان روبی به عنوان پیشتاز در ایجاد تواناییهای برنامه نویسی سریع بر اساس روش رفتار محور Behavior-Driven Development توانسته بخش قابل توجهی از برنامه نویسان خوش ذوق را به خود جذب کند.
همچنین زبانهای تبدیل به کد ماشین کننده به علت سرعت قابل توجه اجرا و سختتر بودن دستیابی به کد اصلی در صورت دسترسی به نرم افزار برای خرابکارها در این رابطه قابل بررسی میباشند و میتوان حد اقل بخشهایی از نرم افزارهای کاربردی مورد نیاز را با استفاده از این زبانها ایجاد کرد.
نکته مهمی در این زمینه لازم به ذکر است که متأسفانه زبانهای نیمه تبدیل به کد ماشین شونده مانند Java و خانواده. Net به صورت گستردهای در میان برنامه نویسان داخلی محبوبیت یافتهاند و گاهی با پیش فرض امنیت برای نوشتن برنامههای کاربردی امنیتی معرفی میشوند اما باید دانست که سوراخهای امنیتی بسیار مهمی در این نوع زبانها وجود دارد و چند لایه بودن اجرا نیز کمک چندانی به این موضوع نمیکند لذا استفاده از این نوع زبانها به جای زبانهای کاملا تبدیل به کد ماشین کننده کاری اشتباه است.
هرچند هدف ما اینجا معرفی و بسط دانش نرم افزار نویسی نیست، لازم به توجه است که استفاده اولا نوشتن نرم افزار بر اساس زبانهایی غیر از PHP کاملا ممکن بوده و ثانیا این کار به امنیت نزدیکتر است.
استفاده از زبان برنامه نویسی متنی PHP (Scripting Language) به علت آنکه تولید بخش عمدهای از آن در اختیار رژیم صهیونیستی است علی رغم به ظاهر Open Source (کد باز) بودن یک تهدید جدی است. از آنجا که اولا معمولا استفاده کنندگان از این زبان به خود زحمت مطالعه و بررسی خط به خط پایه این زبان را نمیدهند و معمولا از ویرایشهای Compiled (تبدیل به زبان ماشین شده آماده) که توسط شرکتها بزرگ نرم افزاری استفاده میکنند، این سؤال مطرح است که چگونه میتوان برپایه این زبان متنی ذاتا ناامن نرم افزار نویسی برای امنیت سامانه پست الکترونیک ملی نمود؟
همچنین به نظر میرسد استفاده نکردن از نرم افزارهای آماده و حداقل نوشتن از پایه نرم افزارهای کاربردی مورد استفاده برای سامانه پست الکترونیک به علت بسته بودن کد آن بر روی دیگران بتواند امنیت بیشتری برای استفاده کنندگان ایجاد نماید.
ج – استفاده از نرم افزارهای ارائه وب مانند Apache، Nginx، lighttpd و... Open Source بوده و قابلیت تبدیل به زبان ماشین برای سیستمهای عامل مختلف را دارا میباشند. در نگاه اول این نوع نرم افزارها به علت مجانی بودن، بازبودن کد و قابلیت دست کاری نرم افزار نویس از نرم افزارهای مشابه Closed Source مانند IIS، Oracle، IBM و... جذابتر است. اما باید گفت که بدون صرف هزینههای نسبتا بالا برای به کار گیری تعداد زیادی برنامه نویس به صورت دائمی برای پیگیری و مطالعه همه کدهای نرم افزار و سپس تبدیل آنها به کد ماشین، عملا هیچ اطمینانی نسبت به بروز بودن امنیت این نرم افزارها در برابر تهدیدات هدفمند قدرتهای جهانی وجود نخواهد داشت.
از طرف دیگر اگر بنا باشد که هر سازمان و مجموعهای لزوما خود اقدام به نگارش و به روز رسانی همه نرم افزارهای مورد استفادهاش بپردازد اولا کارهای موازی زیاد شده و ثانیا هزینههای گزافی برای این موضوع هدر خواهد رفت. لذا به نظر میرسد ایجاد یک بستر نرم افزاری ملی توسط مقامات مسؤول و هدایت آن به سمت تولید و به روز رسانی نرم افزارهای پایهای از این قبیل بتواند به عنوان گزینه برتر در این مسیر مورد توجه قرار گیرد.
* عوامل مؤثر پشت صحنه در امنیت سامانه پست الکترونیک
هر چند اطلاعات چندانی از سیستم عامل، امنیت شبکه، دیوارهای امنیتی ارتباطی (Firewalls)، سخت افزارهای مورد استفاده و نحوه تأمین فیزیکی این مجموعه اطلاعات کافی موجود نیست بد نیست به عناصر مؤثر در این مهم توجهی داده شود.
همانگونه که در ابتدا هم گفتیم تأمین امنیت صد درصدی هیچگاه ممکن نیست. به طور کلی امنیت وابسته به چند عامل اصلی تهیه، نگهداری، شناسایی، انتقال، و دسترسی است که هرکدام در لایههای مختلف میبایست تأمین گردند.
الف – تهیه
عامل تهیه در سامانه پست الکترونیک در زمینه ایجاد و راه اندازی شبکه زیر ساختی، ارتباطات پایه، سخت افزارها و نرم افزارهای مورد استفاده، نیروهای کارآمد متخصص و... باید مورد توجه به خصوصی واقع شود.
به عنوان نمونه شبکه زیر ساختی میبایست توان ارتباط گیری همزمان و از چند طریق را با شبکههای محلی و بخشهای مختلف شبکه جهانی را دارا باشد. همچنین چنین شبکهای میبایست توانایی مقابله با حملات رایانهای از قبیل DDOS، Sniffing، Spoofing و... دارا باشد و با استفاده از لایههای مختلف امنیتی جلوی نفوذ و سوء استفاده افراد مخلل و خرابکار را بگیرد. در این رابطه 8 لایه مورد توجه است که 7 لایه آن مربوط به مدل OSI (Physical، Data Link، Network، Transport، Session، Presentation، Application) و لایه هشتم لایه نیروی انسانی میباشد. لازم به ذکر است که در بسیاری از موارد بیشترین خطرات از طریق همین لایه هشتم متوجه سامانهها میگردد که مربوط به خطای انسانی، نفوذ نیروهای خرابکار به لایه انسانی، و یا عدم توانایی کافی نیروهای فنی است.
نمونه دیگر این موضوع مربوط به استفاده از سخت افزارها و نرم افزارها است. متأسفانه در ایران استفاده از سخت افزارها و نرم افزارهای غیر کارشناسی بسیار متداول است. مثلا بارها دیده میشود که به جای استفاده از سخت افزارهای ویژه خدمات وب از رایانههای خانگی به اصطلاح تقویت شده استفاده میشود. یا اینکه از نرم افزارهای غیر اصیل (Non-Original) که توانایی به روز رسانی سریع و دقیق آنها در خطر است مورد استفاده قرار میگیرند. همچنین استفاده از سخت افزار و نرم افزاری که ذره ذره آن با دقت توسط متخصصین بررسی نشده باشد که خود میتواند به عنوان یک سوراخ جدی امنیتی مطرح گردد.
اما در مورد سخت افزار باید گفت که دو نوع نسل از سخت افزارها معمولا در بازار موجود است که یک نوع برای مصارف تجاری پایه و خانگی و نوع دیگر برای مصارف صنعتی و تجاری بزرگ مورد استفاده قرار میگیرند. به عنوان مثال شرکت Intel دارای دو تکنولوژی ICore و Xeon میباشد که اولی کاربرد خانگی و دیگری کاربرد صنعتی و دقیق دارد.
در بعد شبکه ارتباطی هم امروزه ارتباط گیری بین رایانههای یک شبکه با سرعتی بیش از 100 گیگا بیت بر ثانیه به راحتی بر روی فیبرهای نوری قابل اجراست. از آنجا هیچ رایانهای به تنهایی توانایی انجام همه کارها را ندارد و در واقع همیشه یک مجموعه شبکه شده به یکدیگر به صورت گروهی اقدام به حل مسائل مورد نیاز میکنند، سرعت بالای دسترسی و شبکه بندی با برنامه ریزی دقیق ریاضی میتواند نقش مهمی در تأمین سرعت و کیفیت پردازش دادهها داشته باشد.
همچنین از آنجا که خدمات پست الکترونیک نیازمند حافظه قابل ملاحظه است و معمولا امروز حجم 2 گیگابایت حد اقل فضای مورد ارائه و مورد نیاز یک کاربر است، حجم بالایی از رایانههای شبکه شده به یکدیگر که نقش حافظه مجموعه را دارا میباشند مورد نیازند. در این راستا استفاده از فن آوریهای Raid، SAS، SSD و... از یک طرف و به کارگیری رایانههای مخزن (Cache Servers) میتواند مورد توجه قرار گیرد.
اما از بعد نرم افزاری نرم افزارهای ارائه خدمات گسترده پست الکترونیک بر روی سرورهای لینوکسی یا یونیکسی معمولا وابسته به استفاده از Postfix، Qmail، Exim و... به همراهی Dovecot، Courier، به همراه بانکهای دادهای با استفاده از MySQL، Posgresql، Oracle SQL Server، و... و یا بر روی سرورهای ویندوزی با استفاده از Outlook Server به همراه Microsoft SQL Server، Oracle SQL Server، IBM DB2 و... صورت میپذیرد.
همچنین در کنار اینها استفاده از نرم افزارهای ویروس یاب، ضد مزاحمت، مدیریت داده و... مانند Norton Antivirus، ClamAV، Amavis، Spamassassin و... در جهت ارتقاء کیفی خدمات پست الکترونیک پیشنهاد میشود.
در بعد امنیت داده ذکر اینکه حیاتی است که امروزه به علت پیشرفت فن آوری رایانه بسیاری از روشهای رمز گزاری قبلی دیگر امن نیست و استفاده از MD5، SHA512، SHA256 و سایر روشهای قدیمی دیگر امنیت کافی ندارد. لذا استفاده از روشهای رمز گزاری مانند SHA512-CRYPT، BCrypt، SCrypt و... برای اطمینان از امنیت نسبی دادهها الزامی است.
ب – نگهداری
زیرساخت نگهداری از سخت افزار و نیروی فنی سامانه نیز در جایگاه ویژهای قرار میگیرد. بدیهی است اگر این نگهداری به صورت دقیق طراحی، اجرا و مورد بازبینی مدون و دورهای قرار نگیرد، حتی بهترین سامانه بعد از مدتی در خطر قرار گرفته و به سهولت تخریب خواهد شد.
به عنوان مثال تأمین برق همیشگی و استفاده از سخت افزارهای اصلاحگر نوسان و جایگزین در مواقع قطع برق، استفاده از اتاقهای تمیز (Clean Rooms) که به صورت فنی گرد زدایی شدهاند، استفاده از سیستمهای تثبیت کننده دما، مراقبت ازعدم ورود حشرات و حیوانات موذی به محوطه و مسیرهای انتقال داده، اجرای پروتکلهای امنیتی برای حفاظت از سامانه و نیروهای فنی و جلوگیری از لو رفتن اسرار کاری، تأمین منابع مالی مورد نیاز به موقع و توجه به نیازهای نیروهای فنی به منظور ایجاد و حفظ علاقه ادامه به کار و... بخشی از دغدغههای مورد نظر در بحث نگهداری صحیح از زیرساخت و نیروهای فنی است.
ج – شناسایی
پروتکلهای شناسایی معمولا نقش مهمی در امنیت یک مجموعه بازی میکنند. این پروتکلها چه در بخش شناسایی فیزیکی و چه شناسایی الکترونیکی میتوانند تعیین کننده موفقیت و یا شکست کل سامانه باشند.
به عنوان نمونه استفاده از کارتهای رمزدار در کنار شناسایی با اثر انگشت و یا ساختار چشم، صدا و یا فیزیک بدن افراد در بخش فیزیکی و استفاده همزمان از روشهای کد گزاری و شناسایی نرم افزاری مبتنی بر شبکه و سخت افزارهای رمز ساز یا رمز گشا مانند تجربه بانک ملی در استفاده از Tokenها میتواند کمک به سزایی به امر شناسایی افراد بنماید.
همچنین در زمینه شناسایی رایانهها و ساختارهای متصل به شبکه، استفاده همزمان ازساعتهای ویژه هماهنگ شده، کدهای فیزیکی متغیر، استفاده از شبکههای چند لایه به صورت VPN یا Intranet، استفاده از سخت افزارهای کد گژشا و کارتهای دارای کد همانند روشهای مورد استفاده در ارتباطات ماهوارهای و... نمونههایی از روشهای قابل استفاده در امن سازی شناسایی بخشهای مختلف سیستم به یکدیگرند.
د– انتقال
امنیت انتقال داده به همان اندازه تهیه و نگهداری آن حائز اهمیت است. لذا میبایست اولا با ایجاد و حفاظت از شبکه زیرساخت و لایههای مختلف هشت گانه ارتباطی نسبت به امنیت ارتباط، ثانیا با استفاده ازپروتوکلهای ارتباطی و شناسایی نسبت به اطمینان از صحیح بودن گیرنده اطلاعات، و ثالثا با به کار گیری نرم افزارها و سخت افزارهای امن نسبت به امنیت داده در مقصد مطمئن گردید.
ه – دسترسی
در صورت امن سازی بخشهای قبلی در نهایت امن سازی دسترسی میتواند به عنوان تمام کننده چرخه امنیتی یک سامانه نقش مهمی را بازی کند. با درجه بندی و محدود سازی دسترسی بر اساس مکان جغرافیایی، شبکه مورد استفاده برای اتصال، شخص کاربر و... میتوان بخش عمدهای از دغدغههای امنیتی سامانه را پوشش داد.
مثلا با محدود کردن تغییر مشخصات فردی به استفاده از IP ایران، نفوذ افراد اخلالگر به سیستم به مراتب سختتر میشود. یا با محدود کردن کارهای مدیریتی سامانه به شبکه داخلی Intranet سامانه که فقط در مکانهای فیزیکی به خصوصی و پس از طی مراحل پروتکلهای شناسایی قابل دسترسی میباشد، میتوان جلوی دسترسی افراد خرابکار را به قلب سیستم تا حدود زیادی گرفت.
همچنین با محدود کردن دسترسی به بانک داده به یک شبکه Intranet مخصوص و با استفاده از یک API به جای دسترسی مستقیم به بانک داده میتوان امنیت دادهها را بالا برد. یا با رمزگذاری کردن پوشهها و شاخههای هر کاربر بر روی رایانههای نگهداری کننده از دادهها میتوان دسترسی غیر مجاز به اطلاعات را تا حدود بالایی غیر ممکن نمود. به علاوه با تقسیم نحوه ارائه پوشههای ثابت و محل نگهداری آنها و پوشههای متغیر و پوشههای مربوط به نرم افزار کاربردی و تنظیم مناسب نوع برخورد سیستم عامل و نرم افزارهای لایههای زیرین با این پوشهها میتوان امنیت سامانه را تا حد قابل قبولی بالا برد.
منبع: مشرق
iran.ir
mihanmail.ir
chmail.ir