RND - دانشگاه صنعتی شریف

Download Report

Transcript RND - دانشگاه صنعتی شریف

‫بررس ی معماری های امن‬
‫پایگاه داده از جنبه رمزنگاری‬
‫دانشگاه صنعتی شریف‬
‫دانشکده مهندس ی کامپیوتر‬
‫ارائه درس امنیت پایگاه داده‬
‫روح هللا محفوظی‬
‫محمد علی کارگر‬
‫خرداد ‪1391‬‬
‫نمای کلی‬
‫‪2‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫مقدمه‬
‫چالشهای رمزنگاری پایگاه داده‬
‫سطوح رمزنگاری‬
‫مدیریت کلید‬
‫استراتژی رمزنگاری‬
‫معماری شرکت ‪IBM‬‬
‫‪‬‬
‫مروری بر معماری ‪CryptDB‬‬
‫‪ ‬تهدیدات موجود‬
‫‪ ‬الیههای رمزنگاری‬
‫‪ ‬شماهای رمزنگاری‬
‫‪‬‬
‫مراجع‬
‫مقدمه‬
‫‪3‬‬
‫‪‬‬
‫هدف‬
‫‪‬‬
‫استفاده از تکنیکهای رمزگذاری برای ناخوانا شدن و استخراج نکردن اطالعات مگر‬
‫برای کسانی که به کلید دسترس ی دارند‪.‬‬
‫‪‬‬
‫اهمیت رمزگذاری پایگاه داده‬
‫‪‬‬
‫چالش ها‬
‫‪ ‬حفاظت از داده در برابر تهدیدات داخلی و خارجی‪ ،‬اطالعات محرمانه تجاری‪ ،‬مشتریان‬
‫و مصرف کنندگان اطالعات‪ ،‬اطالعات کارمندان‬
‫‪ ‬جدایی وظایف‬
‫‪ ‬صحت‪ ،‬محرمانگی‬
‫‪ ‬و البته حفاظت از اطالعات حساس‬
‫‪ ‬سربار رمزنگاری‪ ،‬مدیریت کلید‪ ،‬حمله های موجود‪ ،‬تنظیمات رمزگذاری‪ ،‬ریزدانگی‬
‫رمزگذاری‪ ،‬نگهداری کلید‬
‫چالش های رمزنگاری پایگاه داده‬
‫‪4‬‬
‫‪‬‬
‫انواع حمله‬
‫‪ ‬حمالت انفعالی – نشت آماری‪ ،‬نشت اتصالی‬
‫‪ ‬حمالت فعال – جعل‪ ،‬اتصال دادن‪ ،‬تکرار‬
‫‪‬‬
‫سربار رمزنگاری‬
‫‪ ‬رمز اطالعات حساس‬
‫‪ ‬تنها اطالعات مورد نیاز در هنگام اجرای یک پرسش رمز شوند‪.‬‬
‫‪ ‬رمزگذاری بر روی اندیس بسته به کاربرد‬
‫‪ ‬حجم اطالعات رمز شده در مقایسه به اطالعات اصلی‬
‫چالش های رمزنگاری پایگاه داده ‪ -‬ادامه‬
‫‪5‬‬
‫‪‬‬
‫مدیریت کلید رمزنگاری‬
‫‪ ‬کنترل دسترس ی رمزنگاری‪ -‬دسترس ی به پایگاه داده توسط کاربرهای متفاوت و توسط‬
‫کلیدهای متفاوت‪.‬‬
‫‪ ‬حفظ کلید بصورت امن‬
‫‪ ‬بازیابی کلید‬
‫سطوح رمزنگاری‬
‫‪6‬‬
‫‪‬‬
‫سطح فایل های سیستمی‬
‫‪ ‬رمز کل داده های ذخیره شده‬
‫‪ ‬نیاز به تغییر الیه های باالتر نیست‬
‫‪ ‬عدم استراتژی مرتبط به حقوق کاربران‬
‫سطوح رمزنگاری‬
‫‪7‬‬
‫‪‬‬
‫سطح سیستم مدیریت پایگاه داده‬
‫‪ ‬رمزنگاری در پایه جداول‪ ،‬سطر و ستون‬
‫‪ ‬جلوگیری از حمله نشر آماری و نشر پیوندی‬
‫سطوح رمزنگاری‬
‫‪8‬‬
‫‪‬‬
‫سطح برنامه کاربردی‬
‫‪ ‬جداسازی کلیدهای رمزنگاری از داده های رمز شده در پایگاه داده‬
‫‪ ‬عدم امکان اندیس گذاری‬
‫مدیریت کلید‬
‫‪9‬‬
‫‪‬‬
‫نحوهی تولید کلید رمزنگاری و مدیریت آن در طول مدت عمرش‬
‫استراتژی رمزنگاری‬
‫‪10‬‬
‫داخل ‪DBMS‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫خارج ‪DBMS‬‬
‫کمترین تأثیر بر روی نرم افزار کاربردی‬
‫نگهداری کلیدهای رمزنگاری در جدول پایگاه‬
‫داده‬
‫‪‬‬
‫پایین آمدن کارایی‬
‫‪‬‬
‫سربار ارتباطی‬
‫‪‬‬
‫باید سرورهای بیشتری را کنترل کند‪.‬‬
‫برای جداکردن کلیدها یک سخت افزار دیگر‬
‫مانند ‪ HSM‬مورد نیاز است‪.‬‬
‫‪‬‬
‫حذف سربار محاسباتی از ‪ DBMS‬و سرورهای‬
‫نرم افزار کاربردی‬
‫جداسازی داده رمزشده و کلید رمزشده‬
‫معماری رمزنگاری شرکت ‪IBM‬‬
‫‪11‬‬
‫اجزاء‪:‬‬
‫•‬
‫•‬
‫•‬
‫‪IBM‬‬
‫کارگزار امنیتی ‪EE‬‬
‫عامل برون خطی امن ‪EE‬‬
‫عامل برخط فایل سیستمی امن ‪EE‬‬
‫فایلهای پشتیبان‬
‫کاربران مجاز‬
‫‪SSL‬‬
‫‪x.509 Certificates‬‬
‫مدیریت وب‬
‫نرم افزار های کاربردی‬
‫عامل برخط‬
‫‪https‬‬
‫عامل برون‬
‫ککک خطکارگزار ‪DBMS‬‬
‫پایگاه داده‬
‫فایل سیستمی‬
‫کارگزار ‪ EE‬شرکت ‪IBM‬‬
‫‪‬‬
‫کلید‪ ،‬سیاست‪،‬‬
‫مخزن‬
‫ثبت ممیزی‬
‫‪‬‬
‫کارگزار امنیتی‬
‫• مدیریت سیاست و کلید‬
‫عاملهای ‪EE‬‬
‫• برقراری ارتباط با کارگزار امنیتی‬
‫برای اعمال سیاست‬
‫• ثبت ممیزی متمرکز‬
‫• رمزنگاری داده‪ ،‬کنترل کردن‬
‫دسترس ی‬
‫• ارتباط عامل تصدیق شده‬
‫• فرستادن رخدادهای امنیتی به‬
‫کارگزار‬
‫• دسترس پذیری باال‬
‫فایلهای برخط‬
‫مروری بر معماری ‪CryptDB‬‬
‫‪12‬‬
‫‪ CryptDB‬چیست؟‬
‫‪13‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪ CryptDB‬یک سامانه واسط بین ‪ DBMS‬و کاربر است‬
‫طراحی شده برای تأمین محرمانگی داده ها در برنامه هایی که از ‪DBMS‬‬
‫استفاده می کنند‬
‫مبتنی بر رمزنگاری پایگاه داده‬
‫پرس و جو ها به صورت رمز شده به پایگاه داده ارسال می شود‬
‫تهدیدات موجود‬
‫‪14‬‬
‫تهدید‪ :2‬حمله بر روی کل کارگزارها‬
‫‪DBA‬‬
‫کاربر ‪1‬‬
‫کاربر ‪2‬‬
‫کاربرد (‪)App‬‬
‫‪SQL‬‬
‫کاربر ‪3‬‬
‫‪‬‬
‫مدیر پایگاه داده کنجکاو‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫تالش برای خواندن اطالعات خصوص ی‬
‫مانند اطالعات پزشکی افراد‪ ،‬قراردادهای مالی‪ ،‬و ‪...‬‬
‫تبانی ‪ Application‬و ‪DBMS‬‬
‫‪‬‬
‫حمله کننده دسترس ی کامل به برنامه کاربردی و ‪ DBMS‬دارد‬
‫تهدید‪ :1‬حمله بر روی‬
‫‪DBMS‬‬
‫کارگزار ‪DB‬‬
CryptDB ‫معماری کلی‬
15
1 ‫تهدید‬
2 ‫تهدید‬
User1
Password1
DB Proxy
UDFs
DBMS
Application
Key Setup
User2
Password2
‫کاربران‬
Active Keys:
Password1
Application ‫کارگزار‬
Annotated
Schema
CryptDB proxy server
Enc Data
Enc key Table
DBMS ‫کارگزار‬
‫الیه های رمزنگاری‬
‫‪16‬‬
‫‪‬‬
‫الیه های مختلف رمزنگاری در ‪ CryptDB‬بر روی دادههای ذخیره شده‬
‫اعمال میگردد‬
‫‪‬‬
‫با توجه به نیاز کاربرد این الیهها ممکن است از رمز در بیایند‬
‫‪‬‬
‫برای رمزگشایی هر الیه از کلید آن الیه و توابع ‪ UDF‬استفاده میشود‬
‫‪‬‬
‫به این ساختار الیه بندی در ‪ CryptDB‬پیاز اطالق میشود‬
‫شمای رمزنگاری‬
17
‫سطح امنیتی‬
‫بیشتر‬
Scheme
Construction
Function
RND
AES in CBC
none
HOM
Paillier
+, *
SEARCH
Song et al.,’00` word search
‫سطح امنیتی‬
DET
JOIN
OPE
AES in CMC
new scheme
Boldyreva et al.’09
equality
join
order
e.g., sum
restricted LIKE
e.g., =, !=, IN,
COUNT, GROUP BY,
DISTINCT
Eliptic curves
e.g., >, <, ORDER BY,
SORT, MAX, MIN
Application
Deterministic
Randomized
encryption
18
SELECT * FROM emp
WHERE salary = 100
table1/emp
Proxy
SELECT * FROM table1
WHERE col3 = x5a8c34
col1/rank col2/name
col3/salary
x934bc1
x4be219
60
x5a8c34
x95c623
100
x5a8c34
?
x84a21c
x2ea887
800
x5a8c34
x5a8c34
x17cea7
100
Application
Deterministic
OPE (order)
encryption
19
SELECT * FROM emp
WHERE salary≥100
Proxy
table1 (emp)
SELECT * FROM table1
WHERE col3 ≥ x638e54
x638e54
x922eb4
x638e54
col1/rank col2/name
col3/salary
x934bc1
x1eab81
60
x5a8c34
x638e54
100
x84a21c
x922eb4
800
x638e54
x5a8c34
100
‫پیازهای رمزنگاری‬
20
SEARCH
text value
each
valu`e
RND
DET
JOIN
RND
OPE
OPE-JOIN
value
value
Onion Search
OR
HOM
int value
Onion Equality
Onion Order
Onion Add
‫کلید یکسان برای تمام عناصر یک ستون در یک الیه‬
‫برقرار پایگاه داده با امنترین شمای رمزنگاری‬


‫مثال‬
emp:
21
rank
name
salary
‘CEO’
‘worker’
table 1:
RND
DET
JOIN
‘CEO’
col1OnionEq
col1OnionOrder
col1OnionSearch
RND
RND
SEARCH
RND
RND
RND
SEARCH
RND
Onion Equality
SELECT * FROM emp WHERE rank = ‘CEO’;
col2OnionEq
…
…
…
)...‫مثال (ادامه‬
22
table 1
RND
DET
DET
JOIN
‘CEO’
col1OnionEq
col1OnionOrder
col1OnionSearch
col2OnionEq
RND
DET
RND
SEARCH
RND
RND
DET
RND
SEARCH
RND
…
…
…
Onion Equality
SELECT * FROM emp WHERE rank = ‘CEO’;
UPDATE table1 SET col1-OnionEq =
Decrypt_RND(key, col1-OnionEq);
SELECT * FROM table1 WHERE col1-OnionEq = xda5c0407;
‫تعدیل رمزنگاری‬
‫‪23‬‬
‫‪‬‬
‫دور انداختن الیههای پیاز‬
‫‪ Proxy ‬با استفاده از ‪ (user defined function) UDF‬کلید را در اختیار کارگزار‬
‫قرار میدهد‪.‬‬
‫‪ Proxy ‬الیهی پیاز برای هر ستون را نگه میدارد‪.‬‬
‫‪‬‬
‫الیههای رمزگذاری شده دیگر قابل اعتماد نیستند‪.‬‬
CryptDB ‫طراحی کلی‬
24
1 ‫تهدید‬
2 ‫تهدید‬
User1
Password1
DB Proxy
UDFs
DBMS
Application
Key Setup
User2
Password2
‫کاربران‬
Active Keys:
Password1
Application ‫کارگزار‬
Annotated
Schema
CryptDB proxy server
Enc Data
Enc key Table
DBMS ‫کارگزار‬
‫حفاظت در مقابل تهدید دوم‬
‫‪25‬‬
‫حمله بر روی کل کارگزارها‬
‫کاربر ‪1‬‬
‫تهدید اول‬
‫کارگزار ‪DB‬‬
‫‪SQL‬‬
‫‪Proxy‬‬
‫کاربرد‬
‫کاربر ‪2‬‬
‫کاربر ‪3‬‬
‫‪‬‬
‫‪‬‬
‫کلمه ی عبور کاربر اجازه ی دسترس ی کاربر به داده ها بر اساس خط مش ی‬
‫کنترل دسترس ی مجاز است را می دهد‪.‬‬
‫در طول حمله از داده های کاربران خارج سیستم محافظت می شود‬
‫خالصه ‪CryptDB‬‬
‫‪26‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫محرمانگی دادهها‬
‫حفاظت در مقابل دو نوع تهدید اصلی در پایگاه داده‬
‫انعطاف پذیری برای کاربردهای مختلف‬
‫اضافه کردن مقداری افزونگی‬
‫در مقابل حمالت فعال آسیب پذیر است‬
‫نشت اطالعات افراد وارد شده به سیستم‬
‫مراجع‬
27




E. Shmueli, R. Vaisenberg, Y. Elovici, and C. Glezer, “Database
encryption: an overview of contemporary challenges and design
considerations,” ACM IGMOD Record, vol. 38, no. 3, pp. 29–34, 2010.
R. A. Popa, N. Zeldovich, and H. Balakrishnan, “CryptDB: A practical
encrypted relational DBMS,” Technical Report MIT-CSAIL-TR-2011-005,
MIT Computer Science and Artificial Intelligence Laboratory, Cambridge,
MA, 2011.
L. Bouganim and Y. Guo, “Database encryption,” 2009.
B. Iyer, S. Mehrotra, E. Mykletun, G. Tsudik, and Y. Wu, “A framework for
efficient storage security in RDBMS,” Advances in Database TechnologyEDBT 2004, pp. 627–628, 2004.
28