بخشی از مقاله
چکیده
با افزایش حجم داده های سازمان ها، برونسپاری پایگاهداده به یک سرویسدهنده خارجی با استقبال روبرو شدهاست. برون سپاری پایگاه داده ها به این معنا است که مالک دادهها ذخیره سازی را روی ارائه دهنده سرویس انجام میدهد و کاربران از آن استفاده میکنند. کیفیت سرویس ارائه شده بسیار با اهمیت است. در واقع بررسی جامعیت (به معنای اینکه نتایج برگردان شده توسط سرویس دهنده درست و کامل باشد) قابل تامل است. در این مقاله بعد از بیان یکسری مفاهیم رمز نگاری به بیان چند ساختار جهت بررسی جامعیت پرداخته شده است.[1]
کلمات کلیدی
برون سپاری پایگاهداده، معماری پایگاهداده، جامعیت در پایگاهداده برون سپاری
-1 مقدمه
در پایگاه داده برون سپاری شده (ODB) مالک دادهها، دادهها را به تعدادی سرور دور منتقل میکند و هدف اصلی آن این است که کلاینتهای موجود در شبکه بتوانند به صورت کارآمد به دادهها دسترسی داشته باشند. استفاده افراد مختلف از سرویسها، بحث تراکنشهای امن، سریع و قابل اعتماد را مطرح میکند. مدل برون سپاری سه جزء دارد.[2] اول فراهم کننده سرویس2منابع مورد نیاز را فراهم می کند و مکانیزمهایی برای مدیریت کارآمد و دسترسی به دادهها دارد. دوم مالک دادهها 3 و سوم افراد و کلاینتها4 هستند که از سیستم استفاده میکنند. تعداد مالکان وسرورها کم است ولی تعداد کاربران بسیار زیاد است. مالکان دادهها، پایگاه داده را ایجاد میکنند و با اندیسگذاری و ساختارهای اعطای مجوز، آنرا به سرور میفرستند. در این ساختار فرض بر این است که بروز رسانی به صورت دورهای انجام می شود. بنابراین تکنیکهای اعطای مجوز باید این نوع بروزرسانی را پشتیبانی کند. از آنجایی که ممکن است سرور غیر قابل اعتماد باشد، بحث بررسی صحت5 پرسوجو مطرح میشود. برای بررسی صحت سه بعد تعریف میشود:
درستی6، کامل بودن7، تازگی.8 در ادامه یکسری مفاهیم رمزنگاری بیان میشود و سپس روشهایی جهت بررسی صحت مطرح خواهد شد.
-2 معماری پایگاهداده برون سپاری
در شکل 1 برون سپاری پایگاه دادهها با سه موجودیت نشان داده شده است.[3]
مالک دادهها: سازمانی که دادهها را تولید کرده و برای نگهداری در اختیار سرویسدهنده قرار میدهد. کاربر: موجودیتی که درخواست پرسوجو را به سیستم ارسال میکند.
سرویسدهنده: موجودیتی که دادهها را از مالک آنها دریافت کرده و آنها را در دسترس کاربران قرار میدهد.
-3 نیازهای امنیتی ODB
در سناریوی برونسپاری پایگاهداده، دادههای حساس یک سازمان تحت کنترل مستقیم مالک آنها نمیباشد. بنابراین نیازمندیهای امنیتی زیر باید مورد توجه قرار گیرند:
• نیازهای امنیتی
• نیازهای امنیتی مالک دادهها
• نیازهای امنیتی کاربران نهایی
• قوانین جامعیتی
شکل2 نیازهای امنیتی را دستهبندی میکند. نیازهای امنیتی به دو دسته اصلی نیازهای امنیتی مالک دادهها و نیازهای امنیتی کاربران نهایی تقسیم میشود.
شکل:2 نیازهای امنیتی [4]
-1-3 نیازهای امنیتی
-1-1-3 نیازهای امنیتی مالک دادهها
از دید مالک داده ها امنیت به معنای محافظت از دادهها از خواندن بدون مجوز است. مالک دادهها مشخص میکند چه کسی به چه اطلاعاتی چه نوع دسترسی داشته باشد. [4]
• :Confidentiality از دو جنبه مطرح میشود، یکی محافظت از دادهها در مقابل عملیات خوانـدن بـدون مجـوز توسـط کاربران نهایی و دیگری محافظت از دادههای مالک در مقابل خوانده شدن غیرمجاز توسط سرویسدهنده.
• :Integrity بررسی صحت داده هاست. مالک داده ها تغییرات سرویس دهنده را بررسی کند که آیا داده جعلی وارد کـرده یا دادهای را حذف کرده است. در بعضی موارد دیگر تغییرات، توسط کاربران نهایی با مجوز مالکان، اعمال میشود.
• :Privacy معانی مختلفی برای privacy مطرح می شود. تعریف اول privacy، به حقوق شخصی افراد مربوط مـیشـود که چه کسی و چگونه به اطلاعات در رابطه با خودش دسترسی داشته باشد. این دسترسی ممکن است به افراد یا سازمانها داده شده باشد. تعاریف دیگری هم برای privacy مطرح میشود که یکی از آنها Confidentiality است. بـرای مثـال بعضی privacy را به عنوان محرمانگی منفعتهای شخصی در نظر میگیرند. درحالی که Confidentiality محرمـانگی را در منفعتهای سازمانی در نظر میگیرد. همچنین privacy را به عنوان توانایی کنترل روی جمعآوری، ذخیـره سـازی، دستیابی، دستکاری داده ها تعریـف کـرده انـد و privacy یـک مفهـوم وسـیع تـر ازConfidentiality اسـت. بنـابراین privacy روی کنترل دسترسی تمرکز می کند که اطمینان داشته باشیم که کاربر مجوز اسـتفاده از داده مورداسـتفاده را دارد. بنابراین لازم است یکسری قوانین دسترسی تعیین کنیم که مشخص کند چه کسی به چه اطلاعاتی چه نوع دسترسی داشته باشد.
-2-1-3 نیازهای امنیتی کاربران نهایی
• :Authenticity کاربران اطمینان داشته باشند که دادهها از منابع درست آمده و سرویس دهنده تغییری روی آن انجام نداده است.
• :Completeness همه کاربران، دادههایی که مجوز دسترسی به آن را دارند، ببینند.
• :Privacy ممکن است سرویس دهنده از الگوهای دسترسی استفاده نادرست کند، بطوریکه به دادههای خصوصی افراد دسترسی پیدا کند.
-2-3 قوانین جامعیتی
قوانین جامعیت عبارتند از:[4]
• : Correctness نتایج برگردان شده باید رکوردهای معتبر و بدون اعمال تغییرات بدون مجوز باشد.
• : Completeness همه نتایج بدون کم و کاست ارائه شود.
• : Freshness جستجوها باید روی آخرین پایگاهداده بروز رسانی شده اجرا شود.
با توجه به این که سرویس دهنده ممکن است در پاسخ به پرسوجوها مورد اعتماد نباشد، بعد از بیان یکسری مفاهیم رمزنگاری، روشهایی جهت بررسی صحت پرسوجو مطرح میشود.
-4 مفاهیم رمزنگاری
در ادامه در رابطه با یکسری مفاهیم رمز نگاری توضیح خواهیم داد.[2]
• توابع hash
• امضای دیجیتال
• امضای تجمعی9
• درخت Merkle-Hash
-1-4 توابعhash (مقاوم در برابر برخورد)10
برای اهداف رمزنگاری توابعی به نام hash ایجاد میشوند که یک تابع محاسباتی کارا است. این تابع با دریافت متغییر x با طول متفاوت آن را به یک متغییر با طول ثابت تبدیل میکند. تابع y=h(x) باید در برابر برخورد مقاوم باشد که نتوان با ورودی نامساوی حاصل یکسان پیدا کرد برای مثال الگوریتمی به نام SHA1 وجود دارد که ورودیهای با طول متغییر را به 160 بیت یا 20 بایت تبدیل میکند. در شکل 3 الگوریتمSHA1 را میبینیم.
این الگوریتمها بیشتر برای صحت بیان شدهاند تا امنیت. بنابراین دادههایی که با این الگوریتمها ذخیره میشود، بعد از چندین سال بدون هیچ تغییری قابل دسترس است.
-2-4 امضای دیجیتال
امضای دیجیتال ابزاری برای بیان مالکیت و جامعیت پیامی خاص است. در واقع امضا کننده جفت کلید ایجاد میکند(.(sk,pk یکی کلید خصوصی (sk) و دیگری کلید عمومی (pk) است که منتشر میشود. برای هر پیام m که فرستاده میشود، امضای پیام به صورت
sm =s(sk, m) انجام میشود که هر کس m و sm را دریافت کند، میتواند دریابد پیام دریافتی معتبر است یا نه. امضای دیجیتال عمومی که استفاده میشودRSA است. این امضا از یکسری مراحل محاسباتی برای محاسبه استفاده میکند.
از آنجا که باید امضای s1 تا st روی t پیام توسط یک امضا کننده تشخیص داده شود، بهتر است از امضای تجمعی استفاده شود که نسبت به t امضای جداگانه کارآمدتر است.
-3-4 امضای تجمعی((Aggregate Signature
زمانیکه t امضا روی t پیام داشته باشیم - توسط یک امضا کننده- برای برقراری ارتباطات کارا میتوان چند امضا را ترکیب کرده و یک امضا ایجاد کرد.[2]
چند نکته:
• محاسبات لازم برای بدست آوردن امضای واحد زیاد نباشد.
• امضای ترکیب شده باید به همان سرعت امضای واحد عمل کند.
• امنیت امضای ترکیب شده به همان اندازه امضای واحد باشد.
-4-4 درخت مرکل هش (Merkle-Hash)
راه حل مستقیم برای تایید مجموعهای با n مقدار، ایجاد n امضای دیجیتال برای هر مقدار است. این روش علاوه بر سربار، کارایی لازم را ندارد. در شکل4 درخت هش مرکل را میبینیم.