بخشی از مقاله
چکيده : در سالهاي اخير، با افزايش روز افزون داده ها توسط سازمان هاي کوچک و يا کاربران عادي و نداشتن امکانات کافي براي ذخيره و يا مديريت آن ها، استفاده از پايگاه داده هاي برون سپاري شده به عنوان يک سرويس بسيار مورد توجه واقع شده است . در اين پايگاه داده ها، مالکان داده کنترل داده هاي خود را بدون وجود تضمين هاي امنيتي قوي مانند، محرمانگي ، صحت ، حفظ حريم خصوصي و کنترل دسترسي در اختيار فرد ثالثي ، که ممکن است غير قابل اعتماد نيز باشد، قرار ميدهند. از طرفي ، اين تضمين ها براي پايگاه داده هاي برون سپاري شده به عنوان يک جايگزين براي روشهاي مديريت داده در سمت کلاينت ، ضروري و لازم است . هدف ما در اين مقاله ارائه روشي جديد و موثر، براي حفظ حريم خصوصي به همراه کنترل دسترسي است . ما در اين مقاله روش مطرح شده را براي عمليات پايه مانند جستجو، درج ، حذف و تغير در پايگاه داده هاي برون سپاري شده بررسي کرده ايم . که نتايج نشان از کارائي ، سادگي ، ايجاد امنيت و دسترسي پذيري بالا، حجم محاسبات کم براي کلاينت ، سرور و مالک ، و کم بودن حافظه مورد نياز براي سرور دارد.
واژه هاي کليدي : پايگاه داده هاي برون سپاري شده ، حفظ حريم خصوصي ، کنترل دسترسي ، محرمانگي .
١- مقدمه
با افزايش روز افزون مقدار اطلاعات موجود در پايگاه داده ي سازمان ها، مشکلاتي در زمينه مديريت داده به وجود آمده است ، که راه حل هايي متفاوتي براي حل اين مشکلات ارائه شده است . يکي از اين راه حل ها که بسيار مورد توجه واقع شده است ، استفاده از پايگاه داده برون سپاري شده (ODB)1 [١] است . در مدل ODB، توليدکنندگان داده مانند کاربران و يا سازمان هاي کوچک ، کلاينت ، که داراي توانايي محدود از نظر محاسبات و حافظه هستند، مديريت داده هايشان را به تامين کنندگان سرويس ٢، سرور، که داراي زير ساخت هاي مناسب براي ذخيره داده ها هستند، واگذار ميکنند. با استفاده از اعطاي مجوز مديريت داده ، کاربران و سازمان ها بدون نياز به صرف هزينه هاي سخت افزاري ، نرم افزاري و نيروي انساني ، براي ذخيره داده هاي حجيم ، علاوه بر دسترسي به اين داده ها از طريق شبکه ، قادر به تمرکز بيشتر بر روي وظايف اصلي خودشان خواهند بود. تامين کنندگان سرويس در اين مدل، علاوه بر ذخيره داده هاي کاربران ، مسئول ايجاد، مکانيزم ها، منابع سخت افزاري ، نرم افزاري و شبکه مورد نياز براي، ايجاد، به روزرساني ، حذف ، پشتيباني و دسترسي به داده هاي کاربران ميباشند. مدل ODB خود به سه دسته تقسيم ميشود که عبارتند از [٢]:
١. مدل کلاينت يکپارچه شده (UCM): هر ODB، تنها توسط موجوديتي که آن را ايجاد کرده است ، تغير و يا مورد دسترسي قرار ميگيرد.
٢. مدل چند پرس و جو گر (MQM): در اين مدل دو نوع کلاينت وجود دارد که عبارتند از: مالک داده ، که مجوز دسترسي ، حذف و به روز رساني رکوردهاي پايگاه داده را دارد، و پرس و جو کننده ها، که تنها مجوز خواندن رکوردهاي پايگاه داده را دارند.
٣. مدل چند مالک (MOM)٥: در مدل قبلي تنها يک کلاينت ، مجوز ايجاد، حذف و به روز رساني رکوردها را دارد. اما در اين مدل، رکوردهاي متفاوت توسط کلاينت هاي مجزا، ايجاد، حذف و به روز رساني ميشوند. در اين مدل، مشابه مدل قبلي چندين پرس و جوکننده وجود دارد.
اين مدل ها، باعث مطرح شدن مسائل امنيتي زيادي شده اند. که تاثير زيادي بر روي کارائي ، دسترس پذيري و مقياس پذيري دارند، به عنوان مثال، کلاينتي که داده هاي خود را در يک پايگاه داده بيروني ، که احتمالا غير قابل اعتماد است ، ذخيره مي کند. نياز به فراهم کردن معيارهاي امنيتي مناسب ، براي حفاظت از داده هاي ذخيره شده در مقابل حمله هاي خصمانه Outsider ها و حتي تامين کنندگان سرويس دارد. براي حل اين مشکلات ، تعدادي مکانيزم براي اطمينان از صحت داده [٣] و محرمانگي [٤] با در نظر گرفتن حداقل سربار محاسباتي و پهناي باند پيشنهاد شده است . علاوه بر اين مکانيزم هاي امنيتي ، در بعضي از پايگاه داده هاي ODB نياز به حفظ حريم خصوصي افراد، براي جلوگيري از افشاء اطلاعات مورد نياز کلاينت ها و مالک ، و يا عمليات انجام شده توسط مالک به همراه کنترل دسترسي کلاينت ها وجود دارد.
تاکنون روشهاي در زمينه ، حفظ حريم خصوصي و کنترل دسترسي به طور جداگانه مطرح شده است که در بخش ٢ به بررسي اين روشها ميپردازيم .
هدف ما در اين مقاله ، مطرح کردن روشي براي حفظ حريم خصوصي به همراه کنترل دسترسي ، در حاليکه محرمانگي داده ها نيز حفظ ميشود، است . بيشتر روشهاي مطرح شده در زمينه امنيت در ODB تنها در مدل UCM کاربرد دارند، اما روش پيشنهادي ما علاوه بر پوشش هر سه مدل، تمرکز بيشتري بر روي مدل MQM دارد که پرکاربردتر از دو مدل ديگر است .
در اين مقاله ، روش پيشنهادي خود را بر روي عمليات پايه ، مانند، جستجو، حذف ، درج و تغير داده ها، اعطا و بازپس گيري مجوزها بررسي کرده ايم ، که نتايج نشان از کاربرد کاراي اين روش در پايگاه داده هاي برون سپاري شده ايستا و پويا دارد. از مزاياي ديگر اين روش، حجم محاسبات کم و سادگي آن است که ما به طور کامل به بررسي آن در بخش ٤ ميپردازيم .
سازمان اين مقاله به شکل زير است . در بخش ٢، مروري بر تعدادي از روشهاي مطرح شده در زمينه هاي حفظ حريم خصوصي و کنترل دسترسي خواهيم داشت . در بخش ٣، مفاهيم مورد نياز و روش پيشنهادي توضيح داده شده است ، و در بخش ٤، به بحث و بررسي اين روش پرداخته شده است . در بخش ٥ نتيجه گيري بيان شده است . در انتها نيز مراجع استفاده شده در اين مقاله آورده شده است .
٢- کارهاي انجام شده
در اين بخش ما به ترتيب ، به بررسي تعدادي از روشهاي مطرح شده در زمينه هاي حفظ حريم خصوصي و کنترل دسترسي در مدل ODB ميپردازيم . تاکنون تعدادي تکنيک و کارهاي تحقيقاتي در زمينه حفظ حريم خصوصي مطرح شده است . يکي از اين تکنيک ها [٥]، استفاده از بي نامي ٦ براي داده ها، از طريق جايگزين کردن اطلاعات شناساي واضح و مهم ، مانند نام ، با مقادير تصادفي است . اما اين روش به تنهاي باعث حفظ بي نامي نمي شود، چرا که با برقراري ارتباط بين داده هاي ديگر امکان شناسائي و افشاء اطلاعات حساس وجود دارد.
6 Anonymity
روش مطرح شده در [٦]، استفاده از تکنيک هاي عمومي سازي را پيشنهاد داده است ، که در آن داده ها با مقادير عمومي تر از آن جايگزين ميشوند. براي رسيدن به هدف حفظ حريم خصوصي، برتينو و همکارانش روشي را مطرح کرده اند که ترکيبي از دو تکنيک Binning و نشانه گذاري ديجيتالي ٧ است [٧].
در بعضي موارد نياز است ، کلاينت قادر به انجام عمليات بر روي داده هاي برون سپاري شده در سمت سرور، بدون افشاي اطلاعاتي در رابطه به پرس و جو، نتيجه پرس و جو، و داده هاي برون سپاري شده ، باشد. در اين موارد، اگر چه رمزنگاري باعث ايجاد اطمينان از محرمانگي داده ها ميشود. اما، زمانيکه اين داده ها با استفاده از يک درخت جستجو شاخص گذاري ميشوند اطلاعات کل ساختار درخت نيز، علاوه بر داده هاي برون سپاري شده محرمانه تلقي خواهند شد. در غير اينصورت ، ارتباط بين داده ها و توزيع داده باعث به مخاطره افتادن حريم خصوصي علاوه بر محرمانگي ميشود. براي حل اين مسئله در [٩ ,٨]
روشهاي مطرح و مورد بررسي قرار گرفته است . آقايان لين و کندان [٨]، روشي براي حل اين مسئله با استفاده از يک الگوريتم امنيتي محاسباتي پيچيده معرفي کرده اند. در اين الگوريتم ، يک پيمايش Oblivious براي حفظ حريم خصوصي بر روي درخت هاي جستجوي برون سپاري شده ، با استفاده از دو تکنيک افزونگي دسترسي و جابجايي گره ، به همراه ليستي از گره هاي خالي پيشنهاد شده است . نتايج نشان داده شده در اين مقاله نشان از کارا بودن اين روش دارد. اما اين روش شامل معايبي است که عبارتند از: -در اين مقاله توضيحي در مورد چگونگي به روزرساني ليست گره هاي خالي و همچنين عمل جابجايي ، داده نشده است ، که تاثير بسيار زيادي در کارايي ، درجه همروندي و حافظه مورد نياز دارد، -در اين روش، سربار نگهداري از ليست هاي گره هاي خالي و عدم کارائي در استفاده از فضاي ذخيره وجود دارد، - عدم امکان عمليات درج و حذف بر روي درخت وجود دارد، -در بعضي از پرس و جوها براي عمل جابه جايي نياز به استفاده از بيش از يک گره خالي وجود دارد، و -پشتيباني نکردن اين روش از مواردي که ، ويژگيهاي داده هاي شاخص گذاري شده نياز به تغير دارند، که اين عمل باعث تغير محل داده ، در درخت ميشود. در روش [٩]، سعي در حل بعضي از اين مشکلات شده است . اما در اين روش، درج تعداد زيادي از اشياء و يا داده هاي نزديک به هم ، داده هاي مشابه معمولا در گره هاي نزديک و يا مشابه درج ميشوند، با احتمال زياد باعث افشاء اطلاعاتي در رابطه با ساختار درخت ميشوند. علاوه بر پرهزينه بودن عمليات درج و حذف اين روش تنها در مدل UCM کاربرد دارد.
در مورد روشهاي کنترل دسترس مي توان گفت ، در مکانيزم هاي موجود که براي کاربردهاي توزيع شده مطرح شده است . فرض ميشود که ، سرور مسئول تعريف و اجراي خط مش هاي کنترل دسترسي است .
اما اين فرض باعث ايجاد مشکلاتي مانند، عدم وجود اعتماد به سرور، آگاه نبودن سرور از خط مش هاي تعريف شده توسط مالک و غيره ميشود. براي حل اين مشکلات ، کنترل دسترسي تنها بايد توسط مالک انجام شود. در بعضي از روشهاي مطرح شده کنترل دسترسي توسط رمزنگاري داده انجام ميشود، اگر چه معمولا توصيه مي شود که ، محافظت هاي رمزنگاري شده و کنترل دسترسي -Authorization Based را از هم جدا در نظر بگيريم ، به طور مرسوم رمزنگاري را به عنوان مکانيزم در نظر ميگيرند به طوريکه نمي توان از آن در تعريف مدل استفاده کرد، اما ترکيب اين دو در ODB موفقيت آميز بوده است .
در اين روش ها، کليدهاي رمزنگاري متفاوت براي داده هاي متفاوت استفاده ميشود، و براي دسترسي به اين داده هاي رمز شده ، کاربران نياز به ترجمه آنها توسط کليد مناسب دارند. در اين حالت اگر کاربران به کليدهاي متفاوت دسترسي داشته باشند مجوزهاي دسترسي متفاوتي را نيز دارا خواهند بود. اگر چه اين روش به درستي باعث اجراي ماتريس دسترسي مي شود. اما مديريت آن، به دليل تعداد کليدهاي زيادي که هر کاربر بسته به مجوزهايش به آن نياز دارد، مشکل است . براي حل اين مشکل در [١٠]، يک روش استخراج کليد مطرح شده است ، به طوريکه ، يک کليد و بخشي از اطلاعات عمومي در دسترس ، باعث استخراج کليد ديگري در سيستم ميشود. اما اين روش علاوه بر مزاياي که دارد، شامل معايبي است که عبارتند از: -در اين روش، امکان حمله هاي براي استخراج کليدهاي غير مجاز وجود دارد، - در صورت تغير در جدول کنترل دسترسي نياز به تغيرات زيادي وجود دارد، و -ايجاد سربار محاسباتي براي کلاينت و سربار حافظه ي براي سرور.
در روش پيشنهادي ما، کنترل دسترسي توسط مالک داده انجام ميشود که مشکل عدم وجود اعتماد به سرور در آن وجود ندارد. از طرفي در اين روش، تنها با استفاده از کليد عمومي مالک ، مسئله امکان استخراج کليدهاي غير مجاز و ايجاد تغيرات در جدول کنترل دسترسي ، حل شده است . از ديگر روشهاي مطرح شده در زمينه کنترل دسترسي ، روش آقاي دامياني [١١] است که ، يک روش کنترل دسترسي انتخابي با استفاده از يک سري اطلاعات کمکي به نام ابرداده ٨ است . در اين روش، کلاينت و سرور از اين ابرداده ها براي تفسير و اجراي دستورات SQL استفاده ميکنند.
٣- روش پيشنهادي
در اين بخش ما يک روش جديد و کم هزينه ، براي حفظ حريم خصوصي مالک و سايرکلاينت ها مطرح مي کنيم . استفاده از اين روش علاوه بر حفظ حريم خصوصي باعث ايجاد کنترل دسترسي پويا و محرمانگي براي مالک داده ميشود. شکل ١- نشان دهنده نمودار توالي اين روش است .
ما در اينجا مشابه با روش [١٢] فرض مي کنيم که داده ، از يک مجموعه از سگمنت هاي داده ، که مالک ، کلاينت و سرور هر سه از آن مطلع هستند، تشکيل شده است . به گونه اي که ، هيچ دو سگمنتي ، با يکديگر همپوشاني ندارند، و کل سگمنت ها، تمامي دامنه را در بر مي گيرند. هر دسته از پرس و جوهاي ورودي نيز بر روي يک سگمنت داده خاص اجرا ميشوند. از ديگر فرضيات اين روش، استفاده از يک سيستم رمز نامتقارن در سمت مالک براي رمز کردن .ترجمه رمز سگمنت ها (براي حفظ محرمانگي )، توسط کليد عمومي ، e، و خصوصي، d، مالک است .
شکل ١ – نمودار توالي الگوريتم پيشنهادي
در روش پيشنهادي بعد از عمل افراز، که مي تواند بر اساس
ستون هاي باشد که پرس و جو و يا مقايسه بر اساس آنها انجام مي شود، مانند، حقوق افراد، مالک به هر يک از اين سگمنت ها يک مقدار تصادفي (شاخص ) منحصر به فرد و سري نسبت مي دهد. اين اطلاعات افراز و يا به عبارتي MetaData، در سمت مالک داده نگهداري ميشود. علاوه بر اين اطلاعات ، مالک يک ماتريس دسترسي A، با سطرکه نشان دهنده تعداد کلاينت ها و ستون که نشان دهنده مجموعه منابع است ، را نگهداري مي کند. در اين روش سطح ريزدانگي برابر با يک سگمنت است ٩، در اين حالت نشان دهنده مجموعه عملياتي ١٠ است که کلاينت ميتواند بر روي t انجام دهد.
در اين روش، کنترل دسترسي توسط شاخص هاي انتخاب شده تعريف ميشود. به طوريکه ، کلاينت اجازه دسترسي به سگمنتي را دارد که از شاخص مربوط به آن مطلع باشد. براي رسيدن به اين هدف ، نياز به يکسري اطلاعات کمکي، به عنوان مثال کلاينت به کدام سگمنت ها اجازه دسترسي را دارد، در سمت کلاينت ها وجود دارد. که توسط آنها، کلاينت قادر به جستجو بر روي اطلاعاتي ميشود که اجازه دسترسي به آنها را دارد. مالک داده قبل از ارسال پايگاه داده براي سرور، به ازاي هرسگمنت ، مقدار رمز شده آن سگمنت ، را با مقدار شاخص متناظر با آن سگمنت xor کرده و در پايگاه داده درج مي کند. در اين رابطه ، e کليد عمومي مالک و n نشان دهنده بزرگي پيمانه سيستم رمز نامتقارن است . بعد از انجام اين تغيرات ، پايگاه داده رمز شده براي سرور ارسال ميشود. بعد از ذخيره پايگاه داده رمز شده ، در سمت سرور و تهيه اطلاعات ابرداده ي مورد نياز در سمت مالک و کلاينت ، براي اجراي يک پرس و جو توسط کلاينت
الگوريتم زير اجرا ميشود:
١. ارسال پيغام ازکلاينت به مالک ؛ که درخواست شاخص
متناظر با سگمنت مورد نظر خود را ميکند. در اين حالت براي حفظ حريم خصوصي کلاينت و جلوگيري از افشاء شدن اطلاعات مورد نياز، پيغام ارسال شده تنها شامل درخواست شاخص هاي مربوط به سگمنت هاي مجاز براي کلاينت است ، و يا براي کاهش مصرف پهناي باند، درخواست باشاتمول ه م بجه موجعده و اليکانزرشل خدسص رهاسبيه دهرمراسهمشت خمالص ک ماوسردت ظ. درر اين مرحله علاوه بر تصديق اصالت کلاينت براي مالک ، توسط پروتکل هاي موجود، فرض ميشود که ، اين ارتباط ها به صورت امن برقرار ميشوند١٢ به گونه اي که اطلاعات ردوبدل شده بين کلاينت و مالک توسط سرور و يا کلاينت هاي ديگر قابل مشاهده و يا استنتاج نخواهند بود.
٢. کلاينت بعد از دريافت شاخص ها؛ شاخص سگمنتي که پرس و جوي مورد نظرش بر روي آن اجراء ميشود، با توجه به اطلاعات MetaDataي که در دسترس دارد، را انتخاب و با کليد عمومي خود رمز کرده و به همراه درخواست دسترسي به پايگاه داده ، براي سرور ارسال مي کند. در اين مرحله ، ارسال شاخص رمز شده توسط کلاينت اختياري است .
١١ همانطور که در ابتدا عنوان شد، اين روش هر سه مدل ODB را پوشش ميدهد اما تمرکز ما بيشتر بر روي روش MQM است . به اين دليل ابتدا از چگونگي اجراي پرس و جو ها توسط کلاينت هاي ديگر شروع ميکنيم .
١٢براي محافظت در برابر تهديدهاي بيروني ، مربوط به ارتباط بين کلاينت ها و مالک ميتوان از ابزارهاي استاندارد مانند SSL و يا IPSec براي ايجادکانال هايي امن استفاده نمود.
٣. سرور بعد از دريافت درخواست دسترسي ؛ نياز به بررسي هويت و يا کنترل دسترسي کلاينت ندارد، و تنها کاري که انجام مي دهد، xor کردن مقدار دريافتي از سمت کلاينت با تمامي سگمنت هاي موجود در پايگاه داده است . در صورت ارسال نکردن مقدار رمز شده شاخص توسط کلاينت ، سرور ميتواند سگمنت ها را بدون xor کردن ارسال کند. در اين مرحله ، براي کاهش مصرف پهناي باند، کلاينت درخواست دسترسي يک مجموعه افزونه از m سگمنت به همراه سگمنت مورد نظر خود را براي سرور ارسال ميکند. در انتها، سرور نتايج را براي کلاينت ارسال ميکند.
٤. در اين مرحله ؛ کلاينت به ترتيب نتايج را دريافت مي کند، اما تنها سگمنت مورد نظر خود را ذخيره ميکند. در ادامه ، کلاينت سگمنت مورد نظر را به ترتيب با مقدار به دست آمده از مرحله ١ و٢ ، xor ميکند، نتيجه به دست آمده در اين مرحله شامل سگمنت رمز شده توسط مالک است . در غير اينصورت ، کلاينت سگمنت مورد نظر خود را تنها با شاخص به دست آورده از مرحله ١، xor ميکند.
٥. در ادامه ، براي دسترسي کلاينت به داده هاي اصلي و رمز
نشده ، نياز به اجراي پروتکل زير بين کلاينت و مالک است :
- کلاينت براي دسترسي به مقدار رمز نشده b امين سگمنت ، Sb نیاز به انتخاب مقدار دلخواه و سری r دارد ، بعد از ان کلاینت مقدار را محاسبه و براي مالک ارسال ميکند. در اين مرحله مالک با دريافت ’’Sb اطلاعاتي در رابطه با Sb به دست نمي آورد. چرا که r مخفي است و نوعي عمل Blind کردن صورت گرفته است ، که باعث حفظ حريم خصوصي کلاينت ميشود.
- مالک بعد از دريافت ’’Sb، با استفاده از کليد خصوصي خود محاسبات ، را انجام داده و براي کلاينت ارسال ميکند.
- در مرحله آخر کلاينت ، ابتدا معکوس r يعني ١-r را به دست ميآورد. سپس براي دستيابي به مقدار رمز نشده سگمنت ، محاسبات را انجام ميدهد.
٦. در انتها، پرس و جوي کلاينت بر روي نتايج ارسال شده توسط سرور، که در مرحله قبل رمز گشايي شده است ، اجرا ميشود. که به معناي انجام پردازش هايي مانند فيلترينگ داده هاي اضافي براي دسترسي به نتايج مورد نظر است . با استفاده از اين الگوريتم و با توجه به فرض انجام شده ميتوان از تمامي پرس و جوها مانند تساوي، Range و غيره پشتيباني کرد.
خلاصه الگوريتم پيشنهاد شده ، در شکل ٢- آورده شده است که در آن A،B ،C و ec به ترتيب نشان دهنده مالک ، کلاينت ، سرور و کليد عمومي کلاينت است .