چکيده
امروزه اطلاعات مستقر بر روي وب به سرعت در حال افزايش است و حجم بسيار زيادي از اين اطلاعات در قالب 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