330 likes | 528 Vues
Database Protection and Security. 15/8/1385. مقدمه. امنیت به معنی حفاظت از دادهها در مقابل کاربران غیر مجاز است. حصول اطمینان کاربران از مجاز بودن در رابطه با انجام کاری که برای آن تلاش میکنند. حفاظت از دادهها در مقابل افشای غیرمجاز، تغییر یا تخریب.
E N D
Database Protection and Security 15/8/1385
مقدمه • امنیت به معنی حفاظت از دادهها در مقابل کاربران غیر مجاز است. • حصول اطمینان کاربران از مجاز بودن در رابطه با انجام کاری که برای آن تلاش میکنند. • حفاظت از دادهها در مقابل افشای غیرمجاز، تغییر یا تخریب. • سیستم نیازمند آگاهی از قیود معینی است که کاربران نباید آنها را نقض کنند. • این قیود باید در یک زبان مناسب، و معمولا توسط DBA مشخص شوند. • نظارت توسط DBMS جهت حصول اطمینان از درستی انجام کار.
در حال حاضر DBMS نوین به دو روش مختلف از امنیت دادهها پشتیبانی میکنند. • روش کنترل اختیاری (Discretionary) • روش کنترل اجباری (Mandatory) • در هر دو حالت، واحد دادهها یا شیء دادهای که ممکن است نیاز به حفاظت داشته باشد میتواند از یک طرف، از کل بانک اطلاعاتی و از طرف دیگر تا مؤلفة خاصی در داخل یک چندتایی مشخص در تغییر باشد.
کنترل دسترسی اختیاری • هرکاربر به شیوههای متعددی به اشیاء مختلف دسترسی دارد (امتیازهای دسترسی) • و نیز محدودیتهایی وجود دارند که مشخص میکند کدامیک از کاربران میتوانند چه کارهایی را روی چه اشیائی انجام دهند. • کاربر U1 میتواند A را ببیند اما نمیتواند B را ببیند، و در همین حال، کاربر U2 میتواند B را ببیند ولی نمیتواند A را ببیند. • سادهتر است به جای اینکه بگوییم چه چیزهایی غیرمجاز هستند، بگوییم چه چیزهایی مجاز هستند.
کنترل دسترسی اختیاری (ادامه...) • تمام مجوزها از چهار قسمت تشکیل میشوند: 1- نام 2- یک یا چند امتیاز دسترسی 3- متغیر رابطهای که مجوز برای آن مورد استفاده قرار میگیرد 4- یک یا چند کاربر یا به عبارتی IDهای کاربران • AUTHORITY SA3 GRANT RETRIEVE (S#, SNAME, CITY) , DELETE ON S TO Jim, Fred, Mary ;
کنترل دسترسی اختیاری (ادامه...) • AUTHORITY EX5 GRANT RETRIEVE , UPDATE(STATUS) ON S WHEN DAY() (‘Mon’, ‘Tue’, ‘Wed’, ‘Thu’, ‘Fri’) AND NOW() ≥ TIME ’09:00:00’ AND NOW() ≤ TIME ’17:00:00’ TO Purchasing ;
کنترل دسترسی اختیاری (ادامه...) • از نظر مفهومی، تمام مجوزها با هم OR میشوند. • یک درخواست دسترسی (که ترکیبی از عملیات درخواستی، شیء درخواستی و کاربر درخواست کننده است) در صورتی قابل قبول است، که دستکم یک مجوز، آنرا مجاز سازد. • کاربران فقط میتوانند کارهایی را انجام دهند که صراحتا مجازند این کارها را با توجه به مجوزهای تعریف شده، انجام دهند. • هر کار دیگری که بطور صریح مجوز نداشته باشد، غیرمجاز تلقی میشود.
کنترل دسترسی اختیاری (اصلاح درخواست) • هر درخواست معینی قبل از اجرا بطور اتوماتیک به صورتی اصلاح میشود که نتواند قید امنیتی مشخص شده را نقض کند. DEFINE PERMIT RETRIVE ON P TO U WHERE P.CITY = ‘London’ • اگر کاربر U درخواست زیر را صادر کند: RETRIEVE (P.P#, P.WEIGHT) WHERE P.COLOR = “Red”
کنترل دسترسی اختیاری (اصلاح درخواست – ادامه...) • سیستم بطور اتوماتیک، این درخواست را بصورت زیر تغییر میدهد: RETRIEVE (P.P#, P.WEIGHT) WHERE P.COLOR = “Red” AND P.CITY = “London”
کنترل دسترسی اختیاری (تحقیق و حسابرسی) • نباید فرض کرد که سیستم امنیتی، کامل و بیعیب است. • احساس نیاز به تحقیق و حسابرسی • اساساً یک فایل یا بانک اطلاعاتی خاص است که در آن، سیستم بطور اتوماتیک، تمام عملیاتی را که کاربران روی دادهها انجام میدهند، نگه میدارد. • اطلاعات تحقیق و حسابرسی نمونه • پایانهای که از طریق آن عمل مربوطه احضار میشود • کاربری که عمل مربوطه را احضار کرده است • تاریخ و زمان اجرای عمل • و...
کنترل دسترسی اجباری • روشهای کنترل اجباری ماهیتا تمایلات سلسلهمراتبی دارند. • هرشیء دادهای دارای یک سطح طبقهبندی است (مانند فوقسری، سری، خیلی محرمانه، محرمانه و ...) • هر کاربر دارای یک سطح مجوز یا سطح دسترسی است. • سطوح مختلف دارای ترتیب دقیقی هستند. (فوقسری > سری >...)
کنترل دسترسی اجباری (امنیت چندسطحی) • 4=فوقسری ، 3=سری و ... • کاربر U1 دارای سطح مجوز 3(سری) و کاربر U2 دارای سطح مجوز 2(خیلی محرمانه) • درخواست کاربر U1 برای بازیابی تمام عرضهکنندگان، چندتاییهای مربوط به S1، S2، S3و S5 را برمیگرداند. • درخواست کاربر U2 برای بازیابی تمام عرضهکنندگان، چندتاییهای مربوط به S1 و S3 را برمیگرداند. • هیچیک از آنها S4 را نمیبینند.
کنترل دسترسی اجباری (امنیت چندسطحی - ادامه...) • مطالب ذکر شده را میتوان برحسب اصلاح درخواست نیز بیان کرد • S WHERE CITY = ‘London’ • سیستم این درخواست را بصورت زیر اصلاح میکند: • S WHERE CITY = ‘London’ AND CLASS ≤ user clearance
کنترل دسترسی اجباری (امنیت چندسطحی - ادامه...) • در مورد دستور INSERT • کاربر U1 نمیداند که چندتایی S4 وجود ندارد و درخواست زیر را میدهد: INSERT INTO S RELATION { TUPLE { S# S# (‘S4’), SNAME NAME (‘Baker’), STATUS 25, CITY ‘Rome’ } } ;
کنترل دسترسی اجباری (امنیت چندسطحی - ادامه...) • سیستم این درخواست را پذیرفته و آنرا بصورت زیر اصلاح میکند: INSERT INTO S RELATION { TUPLE { S# S# (‘S4’), SNAME NAME (‘Baker’), STATUS 25, CITY ‘Rome’ CLASS CLASS (3) } } ; • کلید اولیه برای عرضهکنندگان فقط {S#} نیست، بلکه ترکیب {S#,CLASS} است. • این واقعیت که دادههای یکسان از دید کاربران مختلف، متفاوت به نظر میرسند، نمونهسازی چندگانه نامیده میشود.
بانکهای اطلاعاتی آماری • بانک اطلاعاتی آماری، بانک اطلاعاتی است که به پرس و جوها اجازه میدهد روی اطلاعات جمعی اجرا شوند، اما پرس و جوهایی که روی اطلاعات منفرد درخواست میشوند، روی این بانک اطلاعاتی قابل اجرا نیستند. • مشکل این نوع بانک اطلاعاتی این است که گاهی اوقات امکان دارد برای پرس و جوهای مجاز، از طریق استنتاج، پاسخهایی برای پرس و جوهای غیرمجاز بدست آوریم. • خلاصهسازیها حاوی بخشی از اطلاعات اصلی هستند. • یک جاسوس میتواند این اطلاعات را با خلاصهسازیهای بیشتر بازسازی کند، که به آن، به دست آوردن اطلاعات محرمانه از طریق استنتاج میگویند.
بانکهای اطلاعاتی آماری (ادامه...) • کاربری مانند U مجاز است فقط پرس و جوهای آماری را انجام دهد، و میخواهد حقوق Alf را مشخص کند. • U از منابع خارجی میداند که Alf برنامهنویس مرد است.
بانکهای اطلاعاتی آماری (ادامه...) • پرس و جوهای زیر را در نظر بگیرید: WITH (STATS WHERE SEX = ‘M’ AND OCCUPATION = ‘Programmer’ ) AS X: COUNT (X) Result: 1 WITH (STATS WHERE SEX = ‘M’ AND OCCUPATION = ‘Programmer’ ) AS X: SUM (X,SALARY) Result: 50K
بانکهای اطلاعاتی آماری (ادامه...) • با آنکه کاربر U فقط پرس و جوهای آماریِ مجاز را انجام داده، امنیت بانک اطلاعاتی به خطر افتاده. • اگر کاربر بتواند عبارت بولینی را پیدا کند که افراد را شناسایی میکند، آنگاه اطلاعات مربوط به آن فرد دیگر امنیت ندارد. • عبارت بولین SEX=‘M’ AND OCCUPATION=‘Programmer’ برای Alf ردیاب منفرد نامیده میشود، زیرا کاربر را قادر میسازد اطلاعات مربوط به Alf را ردیابی کند.
رمزگذاری دادهها • تا اینجا فرض شد که هر فرد نفوذی از امکانات معمولی سیستم برای دسترسی به بانک اطلاعاتی استفاده میکند. • حالتی را در نظر میگیریم که ”کاربر“ سعی میکند به سیستم آسیب برساند (مثلا با نفوذ در خط ارتباطی). • یک راه جلوگیری رمزگذاری دادههاست، یعنی دادههای حساس و مهم را بصورت رمزی ذخیره و جابجا کنیم.
رمزگذاری دادهها (ادامه...) متن رمزگذاری شده متن ساده الگوریتم رمزگذاری کلید رمز
رمزگذاری دادهها (ادامه...) • مثال AS KINGFISHERS CATCH FIRE (متن ساده) ELIOT (کلید) AS+KI NGFIS HERS+ CATCH +FIRE 0119001109 1407060919 0805181900 0301200308 0006091805 0512091520 • عدد صحیح متناظر با هر بلاک را با عدد صحیح متناظر با کلید رمز، به پیمانة 27 با هم جمع کرده و به جای هر بلاک از متن ساده قرار میدهیم. کلید رمز
رمزگذاری دادهها (ادامه...) • به جای هر عدد صحیح بدست آمده در مرحلة قبل، کاراکتر معادل آنرا قرار میدهیم FDIZB SSOXL MQ+GT HMBRA ERRFY • در حالت ایدهآل، روش بکاررفته باید طوری باشد که کار شکستن رمز مشکل باشد. • هدف نهایی پذیرفته شدة چنین روشهایی این است که ابداع کنندة این روش با داشتن متن ساده و متن رمزگذاری شده، قادر نباشد کلید رمز را مشخص کند.
رمزگذاری دادهها (استاندارد رمزگذاری دادهها) • روش قبل، روش جانشینی نام داشت. • روش دیگر، جایگشت نام دارد (عوض کردن ترتیب کاراکترهای متن ساده). • هیچیک از این روشها از امنیت کافی برخوردار نیستند. • الگوریتمی که از ترکیب این دو است، امنیت بیشتری دارد. • یکی از این روشها، استاندارد رمزگذاری دادهها (DES)، نام دارد که توسط شرکت IBM ارائه شده و استاندارد فدرال آمریکا در سال 1977 آن را پذیرفت.
رمزگذاری دادهها (استاندارد رمزگذاری دادهها - ادامه...) • برای استفاده از DES، متن ساده به بلاکهای 64 بیتی تقسیمبندی میشود و هر بلاک با استفاده از یک کلید 64 بیتی به رمز در میآید. • هر بلاک با استفاده از جایگشت اولیه به رمز در میآید. • در این بلاک جایگشتی، دنبالهای از 16 مرحلة جانشینی پیچیده انجام میشود. • یک جایگشت دیگر در نتیجة آخرین جایگشت این مراحل انجام میشود که عکس جایگشت اولیه است. • جانشینی در مرحلة iام مستقیما توسط کلید اولیة K کنترل نمیشود، بلکه توسط کلید Ki کنترل میشود که از طریق مقادیر K و i محاسبه میشود.
رمزگذاری دادهها (استاندارد رمزگذاری دادهها - ادامه...) • DES دارای این ویژگی است که الگوریتم رمزگشایی معادل با الگوریتم رمزگذاری است، با این تفاوت که دادهها به ترتیب عکس مورد استفاده قرار میگیرند. • DES نمیتواند امنیت واقعی دادهها را فراهم کند.
رمزگذاری دادهها (رمزگذاری کلید عمومی) • در روش کلید عمومی، هم الگوریتم رمزگذاری و هم کلید رمزگذاری آزادانه در دسترس هستند، بنابراین هر کس میتواند متن ساده را به متن رمزگذاری شده تبدیل کند. • کلید رمزگشایی متناظر با آن مخفی نگه داشته میشود. • کلید رمز گشایی را نمیتوان از کلید رمزگذاری بدست آورد. • ایدة اصلی منسوب به Diffie و Hellman است. • بهترین روش منسوب به Rivest، Shamir، Adleman است.
رمزگذاری دادهها (رمزگذاری کلید عمومی - ادامه...) • روش RSA بر دو اصل زیر استوار است : 1- الگوریتم شناخته شدة سریعی وجود دارد که تعیین میکند آیا عددی اول است یا خیر. 2- الگوریتم شناخته شدة سریعی وجود ندارد تا عاملهای اول یک عدد مرکب را پیدا کند.
رمزگذاری دادهها (رمزگذاری کلید عمومی - روش RSA- ادامه...) 1- انتخاب دو عدد اول متمایز و بزرگ pو q و محاسبة حاصل ضرب r = p × q 2- انتخاب عدد صحیح و بزرگ e که نسبت به (q-1)×(p-1) اول باشد. (e کلید رمز است) 3- محابسة d (معکوس ضربی e به پیمانة (q-1)×(p-1)) بصورت: d × e = 1 module (p-1) × (q-1) 4- اعداد صحیح r و e را چاپ کنید ولی d را چاپ نکنید.
رمزگذاری دادهها (رمزگذاری کلید عمومی - روش RSA- ادامه...) 5- برای رمزگذاری : C = Pe modulo r 6- برای رمزگشایی : P = Cd modulo r
رمزگذاری دادهها (رمزگذاری کلید عمومی - روش RSA- ادامه...) • مثال p = 3 , q = 5 p × q = 15 , (p-1) × (q-1) = 8 e = 11 > p , q (انتخابی) d × 11 = 1 modulo 8 d = 3
رمزگذاری دادهها (رمزگذاری کلید عمومی - روش RSA- ادامه...) • حال مثلا اگر بخواهیم عدد صحیح 13 را رمز کنیم : C = Pe modulo r = 1311 modulo 15 = 1,792,160,394,037 modulo 15 = 7 • و برای خارج کردن از رمز داریم : P = Cd modulo r = 73 modulo 8 = 343 modulo 8 = 13
Q & A باتشکّر