چالشهای رمزنگاری در استقرار سیستم مدیریت امنیت اطلاعات
مقدمه
در این مقاله، به جایگاه رمزنگاری در استقرار سیستم مدیریت امنیت اطلاعات (ISMS) پرداخته شده است. در آخرین نسخه استاندارد به موضوع رمزنگاری به عنوان یک حوزه کنترلی مستقل پرداخته شده است؛ درحالی که در نسخه های پیشین این چنین نبود و به موضوع رمزنگاری در قالب حوزه های کنترلی دیگر اشاره شده بود؛ اما سؤالی که همواره مطرح میشود، این است که در استقرار سیستم مدیریت امنیت اطلاعات تا چه حد باید در موضوع رمزنگاری عمیق شد و تا چه حد سطحی باید الزامات آن را رعایت نمود. علت این امر این است که رمزنگاری مانند بسیاری از کنترل های امنیتی دیگر، به خودی خود سبب مشکل تر شدن امکان دسترسی میشود و بعضاً سازمان ها به ویژه واحدهای عملیاتی در برابر اجرای آن مقاومت دارند. برای تشریح این موضوع، ابتدا باید رمزنگاری را تعریف و مصادیق رمزنگاری را شناسایی نمود و در ادامه الزامات استاندارد را در خصوص آن تعیین نمود.
بدیهی است که اطلاعات برای راهاندازی یک کسب و کار نقش حیاتی داشته و باید محافظت شود و اطلاعات نزد افراد غیرمجاز می تواند کسب و کار سازمان را با مشکل مواجه نماید. برای همین منظور سازمانها از رمزنگاری به عنوان یک راهکار و کنترل امنیتی متداول برای محافظت از اطلاعات استفاده می نمایند.
رمزنگاری استفاده از تکنیک های ریاضی، برای برقراری ارتباط امن و دانش تغییر متن پیام یا اطلاعات به کمک یک کلید رمز و با استفاده از یک الگوریتم خاص است، به صورتی که تنها شخصی که از کلید و الگوریتم مطلع است قادر به استخراج اطلاعات اصلی از اطلاعات رمز شده باشد. معادل رمزنگاری برگرفته از لغات یونانی kryptos به مفهوم «محرمانه» و graphien به معنای «نوشتن» است. به طور کلی رمزنگاری (cryptography) دانشی است در زمینه ابداع و توسعه روشهایی برای انتقال اطلاعات به گونهای که آن ها برای هیچ کس به جز افراد مجاز قابل درک و استفاده نباشند. از رمزنگاری برای محافظت از محرمانه بودن، اصالت و یا یکپارچگی اطلاعات استفاده میشود.
2- الزامات استاندارد ISO 27001 در حوزه رمزنگاری
هدف استاندارد در سطح کلان محافظت از محرمانگی و یکپارچگی و در دسترس بودن اطلاعات است. رمزنگاری بهطور خاص سازمان را در حوزه محرمانگی و یکپارچگی کمک مینماید.
1-2- جایگاه رمزنگاری در حفظ محرمانگی
مطابق با تعریف استاندارد واژگان سیستم مدیریت امنیت اطلاعات در ISO 27000 (به مقاله بررسی تغییرات نسخه جدید (2018) استاندارد ISO/IEC 27000: واژگان و اصطلاحات ISMS رجوع شود)، محرمانگی به معنی ” اطمینان از اینکه اطلاعات و دادهها فقط توسط کسانی که شناسایی شدهاند، قابل دسترسی است” آورده شده است. محرمانگی مفهومی است که از افشای اطلاعات در برابر سیستمها یا کاربران غیرمجاز جلوگیری به عمل می آورد. هرگونه نقض محرمانگی ممکن است منجر به ایجاد خسارتهای مالی و معنوی شود؛ بنابراین نکتهای که مهم است این خواهد بود که فقط کاربران مجاز میتوانند و باید به اطلاعات دسترسی داشته باشند.
2-2- جایگاه رمزنگاری در یکپارچگی
منظور از یکپارچگی، اطمینان از این است که اطلاعات دقیق، کامل، قابل اطمینان و در فرم اصلی خود باشد و در اصطلاح دستکاری نشده باشد. اطلاعات ارزشمند درون رسانه های انبارشی و کامپیوترها ذخیره میشوند، اگر به هر علتی اطلاعات خراب و یا دستکاری شوند، از ارزش آنها کاسته میشود. چنین حادثه ای میتواند یک سازمان را دچار مشکل نماید و عملاً اطلاعات موجود بی ارزش و یا غیرقابل استفاده شوند. یکپارچگی داده زمانی می تواند مورد تهدید واقع شود که عامل داخلی (کارمند) و یا عامل خارحی (هکر) فایلهای مهم را پاک و یا دستکاری نماید و یا زمانی که عوامل نرم افزاری و خودکار نظیر یک بدافزار بر روی سیستم اثر سوء بگذارد.
3-2- الزامات رمزنگاری در کنترلهای استاندارد
در بخش بعدی به الزامات استاندارد ISO 27001:2013 در حوزه کنترلی A10 در خصوص رمزنگاری اشاره میشود. (برای کسب اطلاعات بیشتر در خصوص استانداردهای خانواده ISO 27000 به این مقاله رجوع شود) همان طور که در ادامه اشاره شده است، در این بخش از استاندارد دو کنترل وجود دارد که کنترل اول در خصوص خط مشی رمزنگاری و کنترل دوم در حوزه مدیریت کلید است.
- مطابق یا کنترل10.1.1 یک خط مشی در رابطه با کنترلهای رمزنگاری برای محافظت از اطلاعات باید ایجاد و اجرا شود.
- مطابق با کنترل 10.1.2 استاندارد، یک خط مشی در رابطه با استفاده ، محافظت و دوره حیات کلیدهای رمزنگاری، باید در تمام طول چرخه حیاتش ایجاد و اجرا شده باشد.
مطابق با الزامات این حوزه از استاندارد، برای استفاده از کنترلهای رمزنگاری برای حفاظت از اطلاعات باید یک سیاست (خط مشی) تدوین و اجرا شود که برای تدوین آن باید موارد زیر در نظر گفته شود.
- رویکرد مدیریت در مورد استفاده از کنترلهای رمزنگاری در سراسر سازمان، ازجمله اصول کلی که در آن باید از اطلاعات کسبوکار محافظت شود، باید در این سند تعریف شود.
- بر اساس ارزیابی ریسک، باید سطح حفاظت لازم با در نظر گرفتن نوع، قدرت و کیفیت الگوریتم رمزنگاری مورد نیاز شناسایی شود.
- سیاست سازمان در استفاده از رمزنگاری برای محافظت از اطلاعات در جابجایی بهوسیله تلفن همراه و دستگاهها و رسانه های قابلحمل یا از طریق خطوط ارتباطی باید در این سند تعریف شود.
- رویکرد سازمان در مدیریت کلید، باید شامل روشهای مقابله با محافظت از کلیدهای رمزنگاری و بازیابی اطلاعات رمزنگاریشده در رابطه با کلیدهای ازدسترفته یا در معرض خطر یا آسیبدیده باشد.
- نقشها و مسئولیتها باید تعریف شود، بهعنوانمثال چه کسی مسئول انجام فعالیتهای زیر است:
- اجرا یا پیادهسازی سیاست
- مدیریت کلید، شامل تولید کلید
- استانداردهایی که باید برای اجرای مؤثر در کل سازمان اتخاذ شود (کدام راهحل برای فرآیندهای کسبوکار استفاده میشود)
تأثیر استفاده از اطلاعات رمزگذاری شده در کنترلهایی که به بازرسی محتوا وابسته هستند (بهعنوانمثال: شناسایی بدافزار)
3-دغدغه های سازمانها در حوزه خطمشی استفاده از کنترلهای رمزنگاری
هنگام اجرای سیاست رمزنگاری سازمان، باید به مقررات و محدودیتهای سازمانی و ملی که ممکن است در استفاده از تکنیکهای رمزنگاری در مناطق مختلف متفاوت باشد، توجه کند.
برای دستیابی به اهداف مختلف امنیت اطلاعات میتوان از کنترلهای رمزنگاری استفاده کرد، بهعنوانمثال:
a) محرمانه بودن: استفاده از رمزگذاری اطلاعات برای محافظت از اطلاعات حساس یا مهم، ذخیرهشده یا انتقالیافته.
b) یکپارچگی اطلاعات: استفاده از امضاهای دیجیتالی یا کدهای تأیید صحت پیام برای تأیید صحت اطلاعات ذخیرهشده یا انتقال اطلاعات حساس
c) عدم انکار: استفاده از تکنیکهای رمزنگاری برای ارائه شواهدی از وقوع یا عدم وقوع یک رویداد یا اقدام.
d) احراز هویت: استفاده از تکنیکهای رمزنگاری برای اعتبارسنجی کاربران و سایر دستگاههای سیستم که درخواست دسترسی یا احراز هویت را دارند.
تصمیمگیری در مورد مناسب بودن راهحل رمزنگاری باید بهعنوان بخشی از روند گستردهتر ارزیابی ریسک و انتخاب کنترلها تلقی شود.
این ارزیابی میتواند برای تعیین اینکه آیا کنترل رمزنگاری مناسب است، چه نوع کنترل باید اعمال شود و برای چه هدف و فرآیندهای تجاری مورداستفاده قرار گیرد.
برای به حداکثر رساندن مزایا و به حداقل رساندن خطرات استفاده از تکنیکهای رمزنگاری و جلوگیری از استفاده نامناسب یا نادرست، سیاستی در مورداستفاده از کنترلهای رمزنگاری ضروری است.
برای انتخاب اهداف مربوط به سیاستهای امنیتی اطلاعات، باید در انتخاب کنترلهای رمزنگاری مناسب، توصیههای ویژهای انجام شود.
1-3- رمزنگاری در ارتباطات و تبادل اطلاعات
یکی از الزامات امنیت اطلاعات در سازمانها رمزنگاری در تبادل اطلاعات است. در این خصوص سازمانها باید رویه های تبادل اطلاعات درون سازمانی و برون سازمانی خود را لیست نموده و الزامات رمزنگاری در آنها را تعیین و رعایت نمایند.
به عنوان نمونه اگر از بستر ایمیل سازمانی به عنوان تبادل اطلاعات استفاده میشود، حتما باید پست الکترونیک سازمان دارای گواهینامه SSL معتبر بوده و تبادل اطلاعات از بستر Https استفاده شود. اگر برای تبادل اطلاعات از FTP Server استفاده میشود، باید تبدیل SFTP شده و این امر از بستر رمزشده صورت پذیرد.
در دنیای ارتباطات، افراد بهوسیله های مختلف و توسط روشهای مختلف با یکدیگر ارتباطات دیجیتالی دارند. از ایمیل گرفته تا نرمافزارهای پیامرسان. در تمامی روشهای ارتباطی، اگر بخواهد امنیتی بر روی این بسترها صورت بگیرد، توسعهدهندگان این برنامهها و سرویسها هستند که بر روی محصولات خود تمهیدات امنیتی را برقرار میکنند؛ اما در بسیاری از این محصولات میبینیم که این تمهیدات امنیتی کافی نبوده و یا اینکه خود توسعهدهندگان این محصولات، برای خود راههایی را جهت دستیابی به اطلاعات کاربران باز گذاشتهاند. به همین دلیل مبحثی به نام ارتباطات End to End پایه گرفت. بر این اساس کاربرانی که از سرویسهای مختلف ارتباطی همچون ایمیل، نرمافزارهای پیغامرسان، نرمافزارهای ارسال فایل و غیره استفاده میکنند باید بتوانند بین مبدأ و مقصد یکلایه امنیتی دلخواه خود را هم داشته باشند که کسی بهجز مبدأ و مقصد توانایی کنار زدن آن لایه امنیتی را نداشته باشد. به همین دلیل مباحث امنیتی E2EE خلق شد.
E2EE) End to End Encryption) یکی از مهمترین مباحث ارتباطات مقصد به مقصد، مبحث امنیت در این ارتباطات است. امنیت در اینگونه ارتباطات به راهحلهای رمزنگاری برمیگردد. رمزنگاری بر روی فایلهای در حال ردوبدل و یا اینکه رمزنگاری متنهای در حال انتقال بین دو مقصد. برای اینگونه رمزنگاری عموماً از الگوریتمهای تک کلیدی همچون AES استفاده میشود. توسط اینگونه راهکارها، دو کاربر در حال ارتباط میتوانند خودشان یکلایه امنیتی دلخواه به مسیر ارتباطیشان اضافه کنند.
2-3- رمزنگاری اطلاعات در سطح پایگاه داده
پایگاه داده مکانی هست که اطلاعات مهمی در آن ذخیره میشود، اطلاعاتی مثل مشخصات کاربری، گذرواژهها و… بنابراین درصورتیکه در این اطلاعات رمزنگاری صورت نگیرد، نفوذگران میتوانند بهراحتی به اطلاعاتی که میخواهند دست پیدا کنند.
امنیت پایگاه داده در فضای تبادل اطلاعات بسیار مهم است، زیرا در هر پایگاه داده فعالیتهای آنلاین موردنیاز است و اگر به هر دلیلی امنیت پایگاه داده به خطر افتاده باشد، این تهدیدی جدی برای اطلاعات حساس و محرمانه خواهد بود. محققان مختلف پایگاه داده روشهایی برای محافظت از پایگاه داده ارائه داداندند، اما هیچکدام ازاینروشها قادر به محافظت از فرمهای پایگاه داده در برابر انواع تهدیدات امنیتی به طور کامل نیستند. یکی از محبوبترین روشها برای اطمینان از امنیت پایگاه داده، از طریق رمزنگاری است.
پایگاهای داده از یک ویژگی جدید برای رمزنگاری دادهها استفاده مینمایند تا از دادهها در مقابل هکرها محافظت نمایند. هکرها ممکن است بتوانند در پایگاه داده یا جداول رخنه کنند، اما با استفاده از رمزگذاری آنها نمیتوانند از داده چیزی بفهمند یا از آن استفاده کنند. امروزه رمزنگاری دادههای حساس امری ضروری به نظر میرسد؛ زیرا تا زمانی که دادهها بین کلاینت و سرور در شبکه جابهجا میشوند، امکان مشاهده آنها وجود دارد.
رمزگذاری در سه سطح امکانپذیر است. این سه سطح مکانیزم های مختلفی برای امنیت داده روی شبکه و سرورهای محلی فراهم میکنند. سطحهای مختلف اجازه میدهند چندین instance از سرویسها (برای مثال سرویسهای SQL Server) روی یک سرور فیزیکی اجرا شوند.
Windows Level- بالاترین سطح میباشد. از توابع Windows DP API برای رمزگذاری استفاده میکند.
SQL Server Level- سطح میانی میباشد. از سرویسهای Master Key برای رمزگذاری استفاده میکند.
Database Level – پایینترین سطح میباشد. از دیتابیس Master Key برای رمزگذاری استفاده میکند.
در رمزگذاری 2 نوع کلید وجود دارد:
- کلید متقارن (symmetric): در سیستم رمزگذاری متقارن فرستنده و گیرنده یک پیام یک کلید مشترک را بین خود به اشتراک میگذارند که از آن برای رمز کردن پیام و شکستن رمز استفاده میشود. این شیوه پیادهسازی نسبتاً آسانی دارد و هردو فرستنده و گیرنده میتوانند پیام را رمزگذاری و رمزگشایی کنند.
- کلید نامتقارن (Asymmetric): در این شیوه فرستنده و گیرنده یک جفت کلید عمومی و اختصاصی دارند که با استفاده از آنها رمزگذاری و رمزگشایی میکنند. این سیستم کمی پیچیده میباشد؛ زیرا فرستنده میتواند از کلیدش استفاده نموده و پیام را رمز نماید؛ اما نمیتواند آن را رمزگشایی کند، از طرف دیگر گیرنده میتواند با استفاده از کلیدش رمزگشایی کند؛ اما نمیتواند محتوا را رمز کند.
دو نوع رمزگذاری در SQL وجود دارد:
- سطح دیتابیس (Database Level): در این سطح تمام دادههای دیتابیس بهصورت امن رمزنگاری میشوند؛ اما هر بار که داده به خوانده یا نوشته میشود در دیتابیس، تمام دیتابیس نیاز دارد تا رمزگشایی شود. این روش بسیار هزینهبر است و یک راهکار مقرون به صرفه نیست.
- سطح ستون (یا سطر): این روش به روش قبلی ارجحیت دارد، زیرا تنها ستونهایی که شامل اطلاعات حساس و مهم هستند رمزنگاری میشوند. این شیوه در مقایسه با شبوه قبلی مصرف CPU را بهشدت کاهش میدهد. اگر یک ستون کلید اصلی باشد یا ستونی باشد که در قسمت WHERE کوئریها یا Join ها استفاده میشود، دیتابیس باید تمام ستون را رمزگشایی کند که هزینه زیادی در بردارد.
3-3- رمزنگاری در سامانههای حیاتی
تبادل اطلاعات در سامانه های حیاتی در بستر شبکه های عمومی نظیر اینترنت، باید به صورت رمزشده صورت پذیرد. همانطور که میدانیم اطلاعاتی که بهطورمعمول در صفحات وب ردوبدل میشوند در بستر پروتکل HTTP (مخفف Hyper Text Transfer Protocol) انتقال مییابند. این پروتکل استانداردی تعریفشده است که با آن متن و سایر اطلاعات چندرسانهای را در وب منتقل میکنند که این دادهها به دلیل خام بودن و رمزنگاری نشدن برای افراد ثالث قابلخواندن هستند؛ بهعنوان نمونه اگر کلمه عبور خود را در بستر این پروتکل از صفحه مرورگر به سرور یک سایت ارسال کنیم، ممکن است از طریق سرویسدهنده اینترنت یا اشخاص دیگری که بهصورت مجاز یا غیرمجاز به ترافیک شبکه ما دسترسی دارند، قابل رویت باشد (به فرض با استفاده از برنامههایی تحت عنوان Sniffer)، لذا استفاده از پروتکل HTTP از لحاظ امنیتی برای انجام کارهایی که با اطلاعات حساس ازجمله حسابهای بانکی و رمزهای مشتریان سروکار دارند، بههیچ وجه شیوه مناسبی نیست. ازاین رو بانکها، فروشگاههای اینترنتی و در کل سایتهایی که امنیت کاربران برایشان اهمیت زیادی دارد، از پروتکل دیگری به نام HTTPS (مخفف Hyper Text Transfer Protocol Secure) جهت انتقال دادههای رمزنگاریشده به شیوه SSL (مخفف Secure Sockets Layer) استفاده میکنند.
HTTPS پروتکلی است که در بستر آن امکان رمزنگاری (Encrypt) و انتقال اطلاعات رمزنگاریشده فراهم میشود، به لحاظ تخصصی در HTTP در حالت پیشفرض پورت 80 مورد استفاده قرار میگیرد درحالیکه در HTTPS این پورت 443 است، از طرفی همانطور که گفتیم در HTTP دادهها بهصورت ساده و خوانا هستند؛ اما در HTTPS رمزنگاری دادهها بهوسیله لایه SSL و نسل جدید آن یعنی TLS (مخفف Transport Layer Security) انجام میشود.
SSL به چه معناست؟SSL مخففی است از سرواژههای Secure Sockets Layer و در اصطلاح به استاندارد رمزنگاری و انتقال دادهها در وب اطلاق میشود، SSL را ابتدا شرکت Netscape بهمنظور نقلوانتقال امن و رمزنگاریشده اطلاعات ایجاد نمود و اکنون تقریباً تمام مرورگرهای استاندارد ازجمله فایرفاکس، اینترنت اکسپلورر، گوگل کروم، سافاری و اپرا از آن پشتیبانی میکنند، همچنین در این رابطه شرکتهایی وجود دارند که گواهی SSL ارائه میکنند.
4-چالشهای سازمانها در مدیریت کلید
مدیریت کلید (Key Management): مدیریت کلید سیستمی است جهت ایجاد، مبادله، ذخیره سازی، استفاده و جانشانی کلیدها در سازمان یا در یک شبکه. مدیریت کلیدهای رمزنگاری برای استفاده مؤثر از تکنیکهای رمزنگاری ضروری است. تکنیکهای رمزنگاری نیز میتوانند برای محافظت از کلیدهای رمزنگاری، جهت رسیدگی به درخواستهای مجاز دسترسی به کلیدهای رمزنگاری مورد استفاده قرار گیرند.
در رابطه با موضوع مدیریت کلید، باید سیاستی در مورد استفاده، محافظت و طول عمر کلیدهای رمزنگاری در کل چرخه عمر آنها تدوین و اجرا شود. الگوریتمهای رمزنگاری، طول کلید و شیوههای استفاده باید مطابق بهترین روش انتخاب شوند. همچنین مدیریت مناسب کلید به فرآیندهای ایمن برای تولید، ذخیره، بایگانی، بازیابی، توزیع، بازنشستگی و از بین بردن کلیدهای رمزنگاری نیاز دارد.
تمام کلیدهای رمزنگاری باید در برابر اصلاح و از بین رفتن محافظت شوند. علاوه بر این، کلیدهای مخفی و خصوصی نیاز به محافظت در برابر استفاده غیرمجاز و همچنین افشای اطلاعات دارند. تجهیزات مورداستفاده در تولید، ذخیره و کلیدهای بایگانی باید ازنظر جسمی محافظت شوند.
به منظور پیادهسازی الزامات استاندارد در حوزه مدیریت کلید، باید یک سیستم مدیریتی کلید بر اساس مجموعهای از استانداردها، رویهها و روشهای امن توافق شده باشد:
- ایجاد کلید برای سیستمهای رمزنگاری و برنامههای مختلف.
- صدور و اخذ گواهینامههای کلید عمومی.
- توزیع کلیدها به اشخاص در نظر گرفتهشده، ازجمله نحوه فعالسازی کلیدها هنگام دریافت؛
- ذخیره کلیدها، ازجمله نحوه دسترسی کاربران مجاز به کلیدها.
- تغییر یا بهروزرسانی کلیدها شامل قوانینی در مورد تغییر کلیدها و نحوه انجام این کارها.
- برخورد با کلیدهای به خطر افتاده.
- ابطال کلیدها ازجمله نحوه برداشتن یا غیرفعال کردن کلیدها، بهعنوانمثال وقتی کلیدها به خطر بیفتند یا کاربر از سازمانی خارج شود (در این صورت کلیدها نیز بایستی بایگانی شوند).
- بازیابی کلیدهایی که گمشده یا خرابشدهاند.
- پشتیبانگیری یا بایگانی کلیدها.
- از بین بردن کلیدها؛
- ورود به سیستم و ممیزی فعالیتهای کلیدی مرتبط با مدیریت.
بهمنظور کاهش احتمال استفاده نادرست، تاریخهای فعال و غیرفعال کردن کلیدها باید مشخص شود؛ بهگونهای که از این کلیدها فقط بتوان برای مدتزمان استفاده از آن در سیاست مدیریت کلید مرتبط استفاده کرد.
علاوه بر مدیریت ایمن کلیدهای مخفی و خصوصی، باید اعتبار کلیدهای عمومی نیز در نظر گرفته شود. این فرآیند احراز هویت را میتوان با استفاده از گواهینامه های کلید عمومی، که بهطورمعمول توسط مجوز صدور گواهینامه صادر میشود، انجام داد که باید یک سازمان شناختهشده با کنترلها و رویههای مناسب در محل باشد تا میزان اعتماد موردنیاز را فراهم کند.