امنیت در بانک اطلاعات را محافظت از تلاشهای تبهکارانه برای سرقت، تغییر و یا تخریب دادههای بانک اطلاعات تعریف میکنند [۱۱]. امنیت از جمله مفاهیمی است که باید در تمام لایههای یک سیستم کامپیوتری اعم از سخت افزار، شبکه، سیستم عامل، بانک اطلاعات و … آن را لحاظ نمود. تهدیدات امنیت به دو صورت عمدی و غیر عمدی هستند. دسته اول شامل تمام تهدیداتی است که نتیجه تخلف عمدی کاربران و یا برنامهها است. این کاربران میتوانند کاربران مجاز سیستم و یا کاربران خارجی (که میتوانند به صورت غیر مجاز به سیستم و منابع آن دسترسی داشته باشند) باشند. برنامهها نیز میتوانند هر برنامه محلی و یا هر برنامه از راه دور (شامل ویروسها یا اسبها تراوا و…) باشند. دسته دوم شامل تهدیداتی است که بر اثر ناآگاهی یا عدم دقت و کوتاهی افراد و نارسائی و کیفیت پایین برنامهها رخ میدهد.
هنگامی که صحبت از یک بانک اطلاعات امن به میان میآید معمولاً سه هدف زیر در رابطه با آن مطرح میشود:
۱- محرمانگی : محرمانگی به صورت عدم دسترسی کاربران غیر مجاز به اطلاعات تعریف میشود. به عنوان مثال یک دانشجو نباید اجازه مشاهده اطلاعات سایر دانشجویان را داشته باشد.
۲- جامعیت : فقط کاربران مجاز میتوانند دادههای مربوطه را تغییر دهند. به عنوان مثال دانشجویان میتوانند نمرات خود را ببیند اما اجازه تغییر آن را ندارند. جامعیت به صورت جلوگیری از تغییر، حذف و یا دخالت ناخواسته و نادرست در اطلاعات نیز تعریف میشود.
۳- دسترس پذیری : مجوز کاربران مجاز نباید به طور ناخواسته قطع شود. به عنوان مثال استاد درسی که اجازه تغییر نمرات را دارد همواره باید بتواند این عمل را انجام دهد.
برای رسیدن به سه هدف فوق باید سیاستهای امنیتی واضح و مشخصی تدوین گردد. به عبارت دیگر باید به طور کامل و صریح روشن گردد که چه بخش یا بخشهایی از دادهها باید محافظت شوند و چه کاربرانی اجازه دسترسی به چه قسمتهایی از دادهها را دارند.
برای برقراری امنیت در سیستم بانکاطلاعات، ابتدا با کمک مکانیزمهای تصدیق هویت کاربر مثل کلمه عبور اطمینان حاصل میکنیم که کاربر وارد شده به سیستم یک کاربر مجاز میباشد. البته این امکان نیز وجود دارد که کاربری غیر مجاز به نحوی بتواند مجوز ورود را به دست آورد (مثلاً از کلمه عبور یک کاربر مجاز استفاده کند). در مرحله بعد که مطئمن هستیم کاربری که وارد سیستم شده اجازه ورود داشته است، با مکانیزمهای کنترل دسترسی (مجوز دهی به کاربر)، فقط مجوزهای دسترسی به دادههای به خصوصی که میتواند به آنها دسترسی داشته باشد را به او تخصیص میدهیم. اما این کاربر مجاز ممکن است روی همان دادههای مجاز خود نیز تغییرات غیر مجاز انجام دهد (مثل قرار دادن عددی منفی در صفت سن). مقابله با چنین تهدیداتی به تضمین جامعیت سیستم برمیگردد که با قرار دادن قیود جامعیت، استفاده از مکانیزمهایی مثل assertion، trigger و…. از دادههای بانکاطلاعات مراقبت مینمائیم.
در بانکهای اطلاعات نامتمرکز بخشی از امنیت بانک به تبادل اطلاعات و ذخیرهسازی آنها بستگی دارد. به عبارت دیگر در یک بانک اطلاعات نامتمرکز، به دلیل انتقال دادهها در شبکه و بهخصوص بین گرههای مدیریت بانک اطلاعات، میبایست دادههایی که بین گرههای مختلف شبکه در تبادل هستند را از دید افراد و کاربران مخفی نمود و با مکانیزمهایی دادهها را کد و رمز نگاری کرد. رمزنگاری امنیت کانالهای ارتباطی را برقرار میکند. ایده اصلی رمزنگاری دادهها استفاده از الگوریتمهای رمز نگاری و نیز یک کلید رمز نگاری مخصوص مدیر بانکاطلاعات است که به صورت امن نگاه داشته میشود. خروجی یک الگوریتم رمزنگاری، نسخه رمز شده دادههای ورودی است. به همین ترتیب الگوریتمهای رمز گشایی برای باز کردن دادههای رمز شده و برگرداندن آنها به حالت اولیه است.
در بانکهای اطلاعات XML و بهخصوص بانکهای نامتمرکز، اغلب به دلیل ذخیرهسازی اطلاعات به فرمت رشته، عمل رمزنگاری دادهها جهت انتقال و همچنین ذخیرهسازی بسیار الزامی میباشد. در اینجا ما به بحث رمزنگاری وارد نمیشویم و فقط روشهای رمز نگاری را که به دو دسته کلی متقارن و نامتقارن تقسیم میشوند را اجمالاً بیان میکنیم.
روش رمزنگاری متقارن: در روش رمزنگاری متقارن، فرستنده و گیرنده از یک کلید سری مشترک برای رمزنگاری و رمزگشایی استفاده میکنند. روشData Encryption Standard (DES) مثالی از رمز نگاری متقارن است. بدیهی است که برای دو طرف ناشناس توافق بر روی یک کلید سری مشترک دشوار است. بنابراین این روش مورد استفاده کمتری دارد.
روش رمزنگاری نامتقارن: روش دیگر، روش رمزنگاری نامتقارن است. در این روش هر فرد دو کلید در اختیار دارد، کلید عمومی که آزادانه منتشر میشود و کلید خصوصی که به صورت خصوصی و کاملا محرمانه نگهداری میشود. در این روش، فرستنده دادهها را با کلید عمومی رمز کرده و به گیرنده ارسال میکند. دادههای رمز شده تنها با کلید خصوصی گیرنده قابل رمز گشایی هستند و از آنجاییکه کلید خصوصی هر شخص منحصر به فرد است و به طور کاملاً امن نگه داشته میشود، شخص دیگری نمیتواند این اطلاعات را رمزگشایی کرده و یا از آنها استفاده نماید. این روش از امنیت بالایی برخوردار است و مورد استفاده فراوانی دارد. بهعنوان نمونه الگوریتمهای معروف RS2 ، MD4 و MD5 از این روش استفاده میکنند.
در قسمت بعدی مدلهای کنترل دسترسی را بررسی خواهیم کرد. در اینجا فرض میکنیم که سنجشهای اولیه برای تایید اعتبار کاربر و همچنین ارسال مطمئن اطلاعات برروی شبکه انجام میشود.