چکیده
امروزه اطلاعات مستقر بر روی وب به سرعت در حال افزایش است و حجم بسیار زیادی از این اطلاعات در قالب XML ظاهر شده است. یکی از مزایای اصلی استفاده از XML ، نمایش دادههای غیر ساختیافته است که قابلیتهای بسیاری را در اختیار کاربران میگذارد. ویژگی غیر ساختیافته بودن اطلاعات و انعطافپذیری XML باعث همهگیر شدن استفاده از آن شده و در بانکهای اطلاعات نیز مورد توجه قرار گرفته است. بنابراین برقراری امنیت در مستندات XML یک نیاز و بحث کلیدی میباشد. دادهها به هر شکلی که ذخیره شوند باید از تهدیدهای ممکن (سرقت، خرابکاری، دستکاری و مواردی از این قبیل) محافظت گردند. برای جلوگیری از تهدیدها، روشها و مدلهایی را در بانکهای اطلاعات طرحریزی و پیادهسازی نمودهاند. مهمترین این مدلها، مدل کنترل دسترسی میباشد. این مدل خود مبتنی بر روشهای مختلفی میباشد که در بانکهای اطلاعات گوناگون به کار گرفته میشوند. در این پایاننامه پس از بررسی روشهای کنترل دسترسی، روشی جدید مبتنی بر نگاشت بیتی و تابع دستور جهت کنترل دسترسی در بانک اطلاعات XML پیشنهاد شده است. در روش پیشنهادی سعی بر این است که کلیه مشکلات و نواقص روش تابع دستور و نگاشت بیتی مرتفع گردد.
واژههای کلیدی: بانک اطلاعات XML، کنترل دسترسی، امنیت، نگاشت بیتی.
1-1- مقدمه
اکثر نرمافزارهای کاربردی تجاری، سیستمهای تبادل داده، و شرکتهای مختلف دادههای ساختیافتهی خود را در بانکهای اطلاعات رابطهای نگهداری میکنند. بانکهای اطلاعات رابطهای نمونه خوبی از بانکهای اطلاعات ساختیافته هستند. بانکهای اطلاعات نیمه ساختیافته مشابه بانکهای سنتی شِمای ثابتی ندارند. دادههای نیمه ساختیافته، خود تعریف میباشند و میتوانند مدل ناهمگونتری نسبت به دادههای ساختیافته داشته باشند. زبان نشانهگذاری توسعهپذیر XML تکنیک مناسبی برای مدلسازی چنین دادههایی است [1]، هر چند دادههای ساختیافته و غیرساختیافته نیز میتواند در قالب XML ذخیره شود. نمایش دادههای غیر ساختیافته به صورت XML قابلیتهای بسیاری را در اختیار کاربران میگذارد. ویژگی غیر ساختیافته بودن اطلاعات و انعطافپذیری XML و همچنین همهگیر شدن استفاده از آن باعث شده است که در بانکهای اطلاعات نیز مورد توجه قرار گیرد. در این میان دسترسی به اطلاعات و امنیت اطلاعات مبادله شده بسیار مورد توجه میباشد.
جهت برقراری امنیت در بانک اطلاعات XML مدلها، مکانیزمها و روشهایی وجود دارد. در حال حاضر تنها مدلهایی که در برقراری امنیت در بانک اطلاعات XML استفاده میشود مدلهای کنترل دسترسی میباشند. مطابقت مدلهای کنترل دسترسی با مستندات XML و نیز چگونگی استفاده از این مدلها در بانک اطلاعات XML در این پایاننامه تشریح شده است.
بیشتر کنترلهای دسترسی مرسوم شامل لیستهای کنترل دسترسی [2]، لیستهای قابلیت [3] و ماتریسهای کنترل دسترسی [4] هستند. هنگامی که درباره امنیت یک سیستم صحبت میشود “کنترل دسترسی” جنبههای بسیاری را شامل میشود. کنترل دسترسی باید رسا و قابل فهم باشد و بتواند امنیت دسترسی به دادههای مستقر در یک مکان را پشتیبانی نماید. همچنین در بسیاری از سیستمها همچون سیستمهای تراکنشی تجاری و بایگانیهای پزشکی که شامل دادههای حساس میباشند، کنترل دسترسی در پایینترین سطح (عنصر و یا صفت) مورد نیاز است.
کارهای بسیار زیادی برای توصیف کنترل دسترسی روی مستندات XML از چند سال قبل انجام شده است. برخی از این کوششها عبارتند از: تعریف و اجرای خطمشئهای کنترل دسترسی بر روی منابع XML [5]، کنترل دسترسی به مستندات XML توسط تعیین سطوح مجوزها و خطمشئهای انتشار مجوزها [6]، توصیف کنترل دسترسی برای اسناد XML که ارتباط معنایی با هم دارند [22] و تعریف یک سیستم کنترل دسترسی در پایینترین سطح برای مستندات XML [7]. کنترل دسترسی در پایینترین سطح شامل توصیف موضوعهای مجوز (کاربران یا گروههای کاربری و یا کامپیوترها)، اشیاء مورد دسترسی (المانها و محتوای المانها) و تعیین مجوزهای دسترسی میباشد. تمرکز در این کار عموماً بر روی توصیف یک زبان برای تعیین محدودیتهای کنترل دسترسی به مستندات XML و همچنین توصیف انواع مختلف خصوصیات و خطمشئهای مرتبط با آن میباشد.
در این پایاننامه روشی جدید مبتنی بر نگاشت بیتی [8] و تابع دستور [9] جهت کنترل دسترسی در بانک اطلاعات XML پیشنهاد شده است. در روش پیشنهادی کنترل دسترسی را در پایینترین سطح ایجاد میکنیم. همچنین در روش پیشنهادی سعی شده است که کنترل دسترسی بامعنی ایجاد گردد. کنترل دسترسی با معنی را با استفاده از الگوریتمی که نقشها را به نگاشت بیتی تبدیل میکند مهیا میکنیم. در این روش تلاش شده است که مشکلات و نواقص روش تابع دستور و نگاشت بیتی مرتفع گردد.
در فصل اول این پایاننامه پس از معرفی اجمالی بانک اطلاعات XML ، به امنیت در بانک اطلاعات XML میپردازیم. در فصل دوم مدلهای کنترل دسترسی که برای بانک اطلاعات XML معرفی شدهاند را بررسی میکنیم. در فصل سوم روش پیشنهادی ارائه میگردد. در فصل چهارم به پیادهسازی و ارزیابی روش پیشنهادی میپردازیم، و مقایسهای بین مدلهای مختلف کنترل دسترسی و روش پیشنهادی جهت استفاده در بانکهای اطلاعات XML انجام خواهد گرفت. در فصل پایانی به نتیجهگیری و کارهای آتی میپردازیم.
فهرست مطالب :
فصل 1: مقدمه 1
1-1- مقدمه 2
فصل 2: مروری بر منابع و پیشینهی تحقیق 4
2-1- آشنایی با XML 5
2-1-1- معرفی اجزاء اصلی XML 6
2-1-2- مدل درختی XML 8
2-1-3- مفهوم شِما در XML 9
2-2- رابطه XML و پایگاه دادهها 12
2-2-1- بانک اطلاعات پشتیبان XML 12
2-2-2- بانک اطلاعات ذاتاً XML 13
2-2-3- انواع ذخیرهسازی در XML 14
2-2-4- انواع زبانهای پرسوجو در XML 14
2-3- امنیت در بانک اطلاعات 16
2-4- مدلهای کنترل دسترسی در بانک اطلاعات XML 19
2-4-1- مدل کنترل دسترسی محتاطانه 20
2-4-2- مدل کنترل دسترسی الزامی 21
2-4-3- مدل لیست کنترل دسترسی و مدل قابلیت 23
2-4-4- مدل کنترل دسترسی مبتنی بر نقش 24
2-4-5- مدل کنترل دسترسی مبتنی بر تابع 36
2-4-6- مدل کنترل دسترسی مبتنی بر نگاشت بیتی 48
2-5- نتیجهگیری 58
فصل 3: روش تحقیق 59
3-1- مقدمه 60
3-2- مفاهیم و اصطلاحات 60
3-3- بهینهسازی مکعب امنیت 62
3-4- مدل پیشنهادی 65
3-4-1- خطمشی کنترل دسترسی 67
3-4-2- کنترل دسترسی 70
3-4-3- معماری مدل پیشنهادی 72
فصل 4: نتایج و تفسیر آنها 75
4-1- ارزیابی مدل پیشنهادی 76
4-2- مقایسه مدلهای کنترل دسترسی 79
فصل 5: جمعبندی و پیشنهادها 81
مراجع 84
پیوستها 87
فهرست اشکال
شکل (2-1( نمونهای از یک سند XML و اجزاء آن 7
شکل (2-2( ساختار درختی سند XML 9
شکل (2-3( نمونهای از یک شمای XML در XML Schema 11
شکل (2-4) مثالی از یک گراف نقش 27
شکل (2-5) شمای مجوز شئ برای مثال نمونه 31
شکل (2-6) گراف مجوز شئ برای مثال نمونه 31
شکل (2-7) نمودار نوع مجوز برای مثال نمونه ذکر شده 32
شکل (2-8) الگوریتم انتشار مجوز 35
شکل (2-9) مثالی از ORF برای خطمشئ P1 43
شکل (2-10) مثالی از SRF برای خطمشئ P1 44
شکل (2-11) مثالی از GRF که // را پشتیبانی میکند 44
شکل (2-12) مثالی از SRF که // را پشتیبانی میکند 45
شکل (2-13) قطعه کدی جهت گزاره CustKey = $custID 46
شکل (2-14) سیستم کنترل دسترسی مبتنی بر تابع 47
شکل (2-15) یک شاخص نگاشت بیتی برای مستندات XML 49
شکل (2-16) مثالی از یک دید محدود شده 50
شکل (2-17) مکعب امنیت 55
شکل (2-18) نمونهای از مکعب امنیت با موضوعاتی از قبیل کاربران، آدرسهای IP و نامهای سمبلیک 56
شکل (3-1) نمونهای از یک DTD سیستم آموزش 61
شکل (3-2) قوانین مربوط به نقش دانشجو برای مجوز خواندن بدون انتشار مجوز 69
شکل (3-3) قوانین مربوط به نقش دانشجو برای مجوز خواندن با انتشار مجوز 70
شکل (3-4) معماری مدل پیشنهادی 73
شکل (4-1) نمونه پرسوجوهای اجرا شده جهت ارزیابی سرعت دسترسی به اطلاعات 76
شکل (4-2) ارزیابی سرعت دستیابی به اطلاعات با مسیرهای ساده 77
شکل (4-3) ارزیابی سرعت دستیابی به اطلاعات با مسیرهای دارای // و * 77
شکل (4-4) نمونه پرسوجوهای اجرا شده جهت ارزیابی سرعت بهروزرسانی اطلاعات 78
شکل (4-5) ارزیابی سرعت بهروزرسانی اطلاعات با دستورات XQuery در مدل پیشنهادی 78
شکل (4-6) ارزیابی سرعت بهروزرسانی اطلاعات با دستورات XQuery در مدل آقای یون 78
شکل (4-7) حجم مکعب امنیت در مدل آقای یون 79
فهرست جداول
جدول (2-1) ماتریس وابستگی مجوز برای مثال نمونه 33
جدول (2-2) نتایج ارزیابی یک تابع دستور 39
جدول (2-3) نمایش نگاشت بیتی از کنترل دسترسی در سطح DTD 51
جدول (2-4) نمایش نگاشت بیتی از کنترل دسترسی در سطح سند 52
جدول (2-5) نمایش نگاشت بیتی از کنترل دسترسی در سطح مسیر المان 52
جدول (2-6) نمایش نگاشت بیتی از کنترل دسترسی در سطح محتوا 53
جدول (3-1) روش محاسبه اندازه مکعب امنیت 55
جدول (3-2) الگوریتم بهروزرسانی مکعب امنیت برای کاربر/مجوز جدید 56
جدول (3-3) انواع مختلف مکعبهای امنیت 57
جدول (4-1) تعداد اقلام اطلاعاتی در یک سیستم آموزش نمونه 63
جدول (4-2) حجم مکعب امنیت برای سیستم آموزش نمونه 64
جدول (4-3) حجم مکعب امنیت بهینه برای سیستم آموزش 65
جدول (4-4) نمونهای از جدول نگاشت بیتی دسترسی در سطح سند در سیستم آموزش 71
جدول (4-5) الگوریتم بهروزرسانی مکعب امنیت بهینه در مدل پیشنهادی 74
جدول (5-1) مقایسه مدلهای کنترل دسترسی 80