Transcript شیء گرا
مدل سازی کنترل دسترسی و مدیریت آعتماد
در سطح معماری نرم آفزآر
آرآئه دهنده :پویا جافریان
آستاد رآهنما :دک تر عبدآله زآده
1
آزمايشکاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab
مدل سازی کنترل دسترسی و مديريت آعتماد با UML
پويا جافريان
[email protected]
مقدمه – اهمیت امنیت در سیستم های نرم
افزاری
2
در دهه اخیر سیستم های کامپیوتری در جنبه های مختلف
زندگی انسان رسوخ کرده اند.
گسترش و وابستگی به سیستم های کامپیوتری اثرات منفی
بر زندگی انسان ها داشته است.
یکی از اثرات منفی ،گسترش روزافزون اشکاالت امنیتی در
سیستم های کامپیوتری ،و حمالت علیه این سیستم ها است.
بر اساس گزارش ارائه شده توسط ، CERT/CCدر سال
2006بیش از 8000رخنه در سیستم های کامپیوتری
گزارش شده است.
آزمايشکاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab
مدل سازی کنترل دسترسی و مديريت آعتماد با UML
پویا جافریان
[email protected]
تعداد رخنه های سیستم های کامپیوتری
10,000
8,000
6,000
4,000
2,000
0
)2007(Q1
3
2006
2005
2004
2003
2002
آزمايشکاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab
مدل سازی کنترل دسترسی و مديريت آعتماد با UML
2001
2000
پویا جافریان
[email protected]
تعداد حمالت علیه سیستم های کامپیوتری
137,529
140,000
120,000
100,000
82,094
80,000
52,658
60,000
40,000
9,859 21,756
2,134
2,412
773
252
1997
1995
1992
1990
6
20,000
0
2003
4
2002
2001
2000
1999
آزمايشکاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab
مدل سازی کنترل دسترسی و مديريت آعتماد با UML
1988
پویا جافریان
[email protected]
مشکالت امنیتی و مقابله با آنها
علل گسترش روز افزون مشکالت امنیتی
5
ساخته شدن نرم افزار از اجزاء مختلف و جدا از هم
استقرار نرم افزار در محیط های توزیع شده و گسترده
روش های کالسیک امنیت سعی در پیشگیری مشکالت
امنیتی با ارائه راه حل های رمز نگاری دارند.
با این وجود عمده حمالت انجام شده به علت طراحی
ضعیف و غلط نرم افزار است.
بنابراین روشی مهندسی برای طراحی صحیح نرم افزار
باید ارائه شود.
آزمايشکاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab
مدل سازی کنترل دسترسی و مديريت آعتماد با UML
پویا جافریان
[email protected]
مهندسی نرم افزار راه حل مقابله با
مشکالت
مهندسی نرم افزار یک تکنولوژی الیه ای با هدف تولید سیستم با
کیفیت است].[Pressman03
اولین مرحله ای در تولید نرم افزار که در آن به ویژگی های کیفی
در تولید سیستم توجه می شود ،معماری نرم افزار است].[Bass03
6
معماری نرم افزار شامل اولین تصمیمات طراحی سیستم است.
معماری نرم افزار اولین عنصر قابل ارزیابی در تولید سیستم است.
بنابراین معماری نرم افزار ،اولین گام در دستیابی به امنیت می
باشد.
به عنوان مثال در نرم افزار IISبا تغییر در معماری نرم افزار و
بدون معرفی تکنولوژی های جدید ،مشکالت عمده امنیتی برطرف
گردید ]. [WING03
آزمايشکاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab
مدل سازی کنترل دسترسی و مديريت آعتماد با UML
پویا جافریان
[email protected]
روش طراحی معماری نرم افزار
برای طراحی معماری نرم افزار نیاز به :
تاکتیک های معماری باید به دالیل زیر مدل شوند:
7
تاکتیک معماری
الگوی معماری
امکان ارزیابی مدل ها و بررسی برآورده شدن نیازها
مستند سازی تاکتیک های مورد استفاده ،به گونه ای که امکان درک
تاکتیک های استفاده شده به سادگی فراهم باشد.
امکان استفاده از مدل ها برای شبیه سازی اجرای برنامه
امکان تبدیل تاکتیک های ایجاد شده به محصوالت نرم افزاری مراحل
طراحی و پیاده سازی
آزمايشکاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab
مدل سازی کنترل دسترسی و مديريت آعتماد با UML
پویا جافریان
[email protected]
هدف از ارائه تز
ارائه روشی برای مدل سازی تاکتیک های کنترل
دسترسی و مدیریت اعتماد به گونه ای که :
8
زبان مدل سازی یک زبان استاندارد باشد.
مدل های ایجاد شده قابل ارزیابی باشند.
تعدادی الگو برای تسهیل امر مدل سازی و مسائل معمول در
زمینه کنترل دسترسی و مدیریت اعتماد ارائه شود.
آزمايشکاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab
مدل سازی کنترل دسترسی و مديريت آعتماد با UML
پویا جافریان
[email protected]
مقدمه ای بر امنیت
امنیت ،خصوصیتي از سیستم کامپیوتري ميباشد که از افشاء،
سرویس منابع و اطالعات سیستم به طور غیر
تغییر و ممانعت
ِ
مجاز جلوگیري کند ].[Bishop2003
سه مفهوم کلي در رابطه با امنیت عبارتند از :محرمانگي،
یکپارچگي ،صحت و در دسترس بودن سرویس منابع و اطالعات
حل مسائل امنیتی در سه سطح قابل انجام است ]: [Samarati01
9
خط مشی امنیتی
مدل امنیتی
مکانیزم امنیتی
در این تز هدف حل مسئله امنیت در سطح مدل امنیتی است.
آزمايشکاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab
مدل سازی کنترل دسترسی و مديريت آعتماد با UML
پویا جافریان
[email protected]
مدل های امنیت
مدل کنترل دسترسی
10
(Discretionary Access Control) DAC
) Mandatory Access Control( MAC
) Role Based Access Control( RBAC
مدل مدیریت اعتماد
مدل جریان اطالعات
آزمايشکاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab
مدل سازی کنترل دسترسی و مديريت آعتماد با UML
پویا جافریان
[email protected]
مدل RBAC
ویژگی اصلی RBACتوانایی نگاشت ساختار سازمانی
طبیعی یک سازمان در مسئله کنترل دسترسی می باشد.
دو مشکل اصلی مدل های کالسیک را بر طرف نموده
است:
11
کاربر هویت واحد دارد ،اما می تواند نقش های گوناگونی را
بپذیرد.
مدیریت کنترل دسترسی بسیار آسان می باشد.
آزمايشکاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab
مدل سازی کنترل دسترسی و مديريت آعتماد با UML
پویا جافریان
[email protected]
مدل مدیریت اعتماد
امروزه اغلب سیستم های نرم افزار در محیط های توزیع
شده فعالیت می کنند.
در این گونه سیستم ها وقتی درخواست کننده و منبع در
دو حوزه امنیتی مختلف باشند ،مسئله کنترل دسترسی با
مشکالت زیادی همراه خواهد بود.
12
هویت درخواست کننده برای منبع روشن نیست.
در این گونه مسائل باید از مدل مدیریت اعتماد استفاده
نمود.
آزمايشکاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab
مدل سازی کنترل دسترسی و مديريت آعتماد با UML
پویا جافریان
[email protected]
مدل مدیریت اعتماد
13
یک مدل مدیریت اعتماد ،چارچوبی برای توصیف خط
مشی های امنیتی در سیستم های توزیع شده ،با توانایی
توصیف روابط اعتماد بین اجزای سیستم می باشد
].[Blaze96
از سیستم های مدیریت اعتماد مطرح ،می توان به
KeyNote ، Policy Makerو SD3اشاره کرد.
یکی از انواع مدل های مدیریت اعتماد ،مدیریت اعتماد
مبتنی بر نقش بوده که با گسترش مفاهیم کنترل دسترسی
مبتنی بر نقش ،نیازمندی های مدیریت اعتماد را برآورده
کرده است.
آزمايشکاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab
مدل سازی کنترل دسترسی و مديريت آعتماد با UML
پویا جافریان
[email protected]
کنترل دسترسی ،نقش های سلسله مراتبی و
مدیریت اعتماد
برای مشخص شدن کاربرد و تفاوت مدیریت اعتماد با
کنترل دسترسی مبتنی بر نقش ،و استفاده از نقش های
سلسله مراتبی به مثال زیر اشاره می کنیم .این مثال در
بخش های دیگر نیز استفاده خواهد شد :
سازمان ACMقصد دارد به دانشجویان دانشگاه امیرکبیر
دسترسی به مقاالت را ارائه دهد .برای این منظور سه
رویکرد کلی وجود دارد :
14
کنترل دسترسی :پرکردن فرم عضویت توسط دانشجو ،تایید
آن توسط امیرکبیر و ارسال آن برای .ACMسپس ACMکد
کاربری و کلمه عبور برای دانشجوی مذکور ارسال می کند.
آزمايشکاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab
مدل سازی کنترل دسترسی و مديريت آعتماد با UML
پویا جافریان
[email protected]
کنترل دسترسی ،نقش های سلسله مراتبی و
مدیریت اعتماد
15
کنترل دسترسی به کمک نقش های الیه ای :مانند روش قبل
می باشد .با این تفاوت که نقشی به نام دانشگاه امیرکبیر در
ACMایجاد شده و دانشجویان زیر مجموعه آن قرار میگیرند.
سپس به نقش دانشگاه امیرکبیر دسترسی به مقاالت داده می
شود و در نتیجه آن تمام زیر مجموعه های امیرکبیر نیز
دسترسی پیدا می کنند.
مدیریت اعتماد :دانشجویان در سایت دانشگاه امیرکبیر ،و با
شناسه کاربری و کلمه عبور دانشگاه خود وارد شوند .سپس با
ورود به سایت ،ACMبا توجه به اینکه سایت تشخص می
دهد درخواست مقاالت از سوی یک کاربر مورد تایید از
دانشگاه امیرکبیر ارسال شده است ،دسترسی به مقاالت را به
های.هوشمند ()http://ce.aut.ac.ir/islab
زمايشکاه سيستم
دهد
کاربر مذکور ارائه آمی
سازی
مدل
کنترل دسترسی و مديريت آعتماد با UML
پویا جافریان
[email protected]
جایگاه کار ارائه شده در امنیت
MAC
16
DAC
RBAC
آزمايشکاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab
مدل سازی کنترل دسترسی و مديريت آعتماد با UML
پویا جافریان
[email protected]
مقدمه ای بر معماری نرم افزار
معماري نرم افزار یك برنامه یا سیستم كامپیوتري،
ساختار یا ساختارهایي از سیستم مي باشد ،كه در
برگیرنده اجزاء ،صفات قابل مشاهده آن اجزا و ارتباط
بین آنها باشد].[Bass03
17
اجزاء نرم افزار را تعریف می کند.
شامل ساختارهای مختلف می باشد.
هر سیستم نرم افزار حتما ً دارای معماری است.
معماری باید قابل ارزیابی باشد.
آزمايشکاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab
مدل سازی کنترل دسترسی و مديريت آعتماد با UML
پویا جافریان
[email protected]
طراحی معماری نرم افزار و ویژگی های
کیفی
ویژگی های کیفی نیازهای غیر کارکردی هستند.
برای توصیف آنها از سناریوهای ویژگی کیفی استفاده می
شود.
برای برآوردن آنها از تاکتیک های معماری و الگوهای
معماری استفاده می شود.
18
آزمايشکاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab
مدل سازی کنترل دسترسی و مديريت آعتماد با UML
پویا جافریان
[email protected]
تاکتیک های معماری ( Architectural
)Tactics
برای دستیابی به ویژگی کیفی ،باید تصمیماتی مربوط به
نحوه طراحی معماری اتخاذ نمود .به این تصمیمات پایه
تاکتیک معماری نامیده میشوند.
تاکتیک یک تصمیم طراحی است که با اعمال آن بر روی
معماری ،میتوان پاسخ ویژگی کیفی را کنترل نمود و آن
را به میزان مورد نظر تبدیل نمود ].[Bass03
مرجع [Bass03] :
19
آزمايشکاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab
مدل سازی کنترل دسترسی و مديريت آعتماد با UML
پویا جافریان
[email protected]
الگو های معماری ()Architectural Patterns
20
در معماری نرم افزار الگوهاي معماري یا سبک های
معماری شامل شرحي از اجزاء و نوع روابط بین آنها مي
باشد به نحوي كه تعدادي قانون براي معرفي اجزاء و
نحوه ارتباط بین آنها ،مشخص گردد[Bass 03] .
آزمايشکاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab
مدل سازی کنترل دسترسی و مديريت آعتماد با UML
پویا جافریان
[email protected]
جایگاه کار ارائه شده در معماری نرم افزار
UML
21
ADL
آزمايشکاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab
مدل سازی کنترل دسترسی و مديريت آعتماد با UML
پویا جافریان
[email protected]
کارهای انجام شده
امنیت در مهندسی نرم افزار یک نیاز غیر کارکردی
[Jürjens04,
محسوب می شودDoshi01,Chung95, .
ابزارهای مهندسی نرم افزار سیستم های امن
فعالیت های همیشگی در مهندسی نرم افزار سیستم های امن
] Paech02
22
مدیریت
پیکربندی
تضمین
کیفیت
روش های مهندسی نرم افزار سیستم های امن
شناسایي ،ارزیابي
ذاتینیازهابه سختي
معماری
نیازهای امنیتی به طورمهندسی
اندازه
مدیریت
پیاده سازی
تحلیل
و در سیستم گیری
ریسک
].[Jurjens03
شوند
مي
سازي
پیاده
تست
طراحی
موارد سازی کسب
مدل
فوق،و کارو با توجه به اینکه امنیت
برای جلوگیری از
باید در تمام
است،
سیستم های امن
سیستمتوسعه
یکی از ویژگی های کیفی فرایند های
گیرد.
چرخه حیات سیستم ،مورد
قرارهای امن
توجهدر سیستم
کیفیت
بنابراین نیاز به مهندسی نرم افزار سیستم های امن وجود
آزمايشکاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab
پویا جافریان
دارد.
مدل سازی کنترل دسترسی و مديريت آعتماد با UML
[email protected]
فرایندهای توسعه سیستم های امن
مدل فرایند پایه
متدولوژی
زبان مدل سازی
مراحل پوشش دهنده
RUP
( تکرآری)
شیء گرا
UML
مدل سازی کسب و کار و نیازها
Tropos
( تکرآری)
مبتنی بر عامل
*i
مدل سازی کسب و کار ،نیازها،
معماری
][Breu03
تکرآری
شیء گرا
UMLSec
نیازها ،تحلیل و طرآحی
][Kosta2
XP
Agile
--
مهندسی نیازها
فرایند
RUPSec
SecureTropos
23
آزمايشکاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab
مدل سازی کنترل دسترسی و مديريت آعتماد با UML
پویا جافریان
[email protected]
روش های مدل سازی کنترل دسترسی و مدیریت اعتماد
مرحله مدل سازی
توانای ی مدل سازی
خط مشی
توانای ی مدل سازی
کنترل دسترسی
توانای ی مدل سازی
مدیریت اعتماد
توانای ی مدل سازی
محدودیت ها
قابلیت ارزیابی مدل
ها
قابلیت تبدیل مدل
ها به کد
][Koch02
شیء گرا
UML
طراحی
بله
خیر
خیر
خیر
بله
خیر
][Ahn01
شیء گرا
UML
طراحی
خیر
خیر
خیر
بله
خیر
خیر
][Ray04
شیء گرا
UML
Diagram
Template
طراحی /پیاده
سازی
خیر
خیر
خیر
بله
به صورت
غیرخودکار
خیر
][Xin06
MDA
UML
طراحی/پیاده
سازی
بله
خیر
خیر
خیر
خیر
بله
][Alam07
MDA
UML 2.0
طراحی/پیاده
سازی
بله
بله
بله
خیر
خیر
بله
][Salehi07
شیء گرا
UML 2.0
معماری
بله
بله
خیر
خیر
خیر
خیر
][Ren06
ساختیافته /
شیء گرا
Secure
xADLو
XACML
معماری
بله
بله
برخی ویژگی های
مدیریت اعتماد
خیر
بله
خیر
][Giorgini06
مبتنی بر عامل
*i
مدل سازی
سازمان ،نیازها و
معماری
بله
بله
برخی ویژگی های
مدیریت اعتماد
خیر
خیر
خیر
متدولوژی
روش
24
زبان مدل سازی
آزمايشکاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab
مدل سازی کنترل دسترسی و مديريت آعتماد با UML
پویا جافریان
[email protected]
روش جدید ارائه شده
با توجه به مقایسه انجام شده ،هدف از این تز ،ارائه یک
روش مدل سازی جدید با ویژگی های زیر است:
25
متدولوژی :شیء گرا
زبان مدل سازیUML :
مرحله مدل سازی :معماری نرم افزار
با توانایی مدل سازی خط مشی ،فرایند کنترل دسترسی و
مدیریت اعتماد
امکان ارزیابی مدل ها از دیدگاه امنیتی
آزمايشکاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab
مدل سازی کنترل دسترسی و مديريت آعتماد با UML
پویا جافریان
[email protected]
رویکرد کلی به مسئله ایجاد زبان مدل
سازی
UML
UML
UML
UML
UML
26
آزمايشکاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab
مدل سازی کنترل دسترسی و مديريت آعتماد با UML
پویا جافریان
[email protected]
نیازمندی های مسئله مدل سازی مدیریت
اعتماد
27
- 1ویژگيهاي توزیع شده :یك موجودیت ميتواند ادعا كند كه
موجودیت دیگري داراي تعدادي ویژگي خاص است.
- 2انتقال قدرت تصمیم گیري در مورد یك ویژگي :یك
موجودیت قدرت تصمیم گیري در مورد یك ویژگي را به یك
موجودیت دیگر انتقال ميدهد ( به بیان دیگر یك موجودیت به
تصمیم موجودیت دیگر در مورد یك ویژگي ،اعتماد ميكند).
- 3استنتاج ویژگيها :یك موجودیت از یك ویژگي براي انجام
استنتاج در مورد ویژگيهاي دیگر آن موجودیت استفاده ميكند.
– 4امکان ترکیب ویژگی ها :گاهي الزم است در تصمیمات
مربوط به کنترل دسترسی ،چندین ویژگی با هم ترکیب شوند .به
این معنا که در صورتی که یک عنصر دارای تمام ویژگی های
مورد نظر بود ،دسترسی به وی داده شود.
آزمايشکاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab
مدل سازی کنترل دسترسی و مديريت آعتماد با UML
پویا جافریان
[email protected]
چارچوب RT
28
چارچوبی است که توانایی برآورده نمودن نیازمندی های
اشاره شده را دارد.
چارچوبي براي توصیف سیاستها و مجوزها براي
مدیریت اعتماد در سیستمهاي توزیع شده می باشد.
بر مبنای روش RBACبنا شده و در حقیقت گسترشی بر
روش RBACمحسوب می شود.
آزمايشکاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab
مدل سازی کنترل دسترسی و مديريت آعتماد با UML
پویا جافریان
[email protected]
عناصر پایه تشکیل دهنده چارچوب RT
موجودیت ها
درخواست انجام عمل
صدور مجوز
نام نقش r1 , r2 ,...
نقش
29
A.r B.r1
آزمايشکاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab
مدل سازی کنترل دسترسی و مديريت آعتماد با UML
پویا جافریان
[email protected]
روابط RTبرای توصیف خط مشی ها
A.r
عضویت یک عنصر در یک نقش B:
A.r
اعطای یک نقش به نقش دیگر B.r1:
Ar
نقش های ترکیبی f1 f 2 ... f k:
) members( A.r ) members( f1 ) members( f 2 ) ...members( f k
30
آزمايشکاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab
مدل سازی کنترل دسترسی و مديريت آعتماد با UML
پویا جافریان
[email protected]
روش های گسترش UML
31
قیود ( : )Constraintsبرای محدود کردن مدل ها و با زبان
OCLنوشته می شوند.
مقادیر برچسبی ( : )Tagged Valueبرای اضافه شدن برخی
ویژگی ها به اجزاء مدل سازی به کار می روند.
کلیشه ها ( : )Stereotypesکه برای نام گذاری مجموعه ای از
قیود و مقادیر برچسبی به کار می روند .نام مذکور در بین عالمت
>> << قرار گرفته و مشخص می کند که عنصر مدل سازی
جدیدی با این نام و دارای تعدادی قید و مقادیر برچسبی ایجاد شده
و می توان از آن در ساخت مدل ها استفاده نمود.
پروفایل ( : )Profileکه مجموعه ای از قیود ،مقادیر برچسبی و
کلیشه ها بوده و برای مدل سازی سیستم ها در یک حوزه خاص به
کار می رود.
آزمايشکاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab
مدل سازی کنترل دسترسی و مديريت آعتماد با UML
پویا جافریان
[email protected]
معماری UMLو سطوحی که می توان در آنها
گسترش ایجاد نمود.
احتی صور
UMLبه
آستفاده آز زبان
یادگیری
ت موجودابزار
ر
• روش
Meta-Meta Model
پوشش مفاهیم
مدیریت اعتماد
خوانای ی مدلها
• گسترش UMLبا آستفاده آز محدود کردن عناصر مدل سازی
Meta Model
• گسترش متامدل UML
UMLموجود
زیاد
زیاد
کم
UMLمحدود
متوسط
زیاد
متوسط
گسترش متامدل
کم
موجود
نیست.
32
استاندارد بودن
Model
کم
آستاندآرد آست.
زیاد
آستاندآرد آست.
User
زیاد Objectsزیاد
آزمايشکاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab
مدل سازی کنترل دسترسی و مديريت آعتماد با UML
آستاندآرد نیست.
پویا جافریان
[email protected]
مدل سازی موجودیت ها
برای مدل سازی موجودیت های سیستم ،
کالس UMLرا با کلیشه >><<SecureComponent
مدل می کنیم.
»«metaclass
class
+name
»«metaclass
SecureComponent
33
آزمايشکاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab
مدل سازی کنترل دسترسی و مديريت آعتماد با UML
پویا جافریان
[email protected]
[1] -- isMember Operation for SecureRole Meta-class
[2] Context SecureRole
[3] def : isMember(component: SecureComponent) : Boolean
[4] body :
[5] let delegationAssc = self.associationEnd.association->
Select(delegations|
streotype=Delegation)
«metaclass»
[6] let
classdelegatedRoles = delegationAssc.associationEnd.class->
Select(classes
| classes<>self)
+name
[7] let componentHasAttributes =
component.associationEnd.association-> Select(attributeOwn|
streotype=HasAttribute)
[8] let componentAttributes =
componentHasAttributes.associationEnd.class->Select(classes |
«metaclass»
streotype=SecureAttribute)
. جزء دارای ویژگی نقش مربوطه باشد
SecureRole
[9] componentAttributes->exists((name = RoleName) or
مربوطه در
جزء مورد نظردارای یک ویژگی است که نقش
delegatedRoles->
exist(isMember(component)))
مدل سازی نقش
بیانگر یک ویژگی در سیستم که دسترسی بر اساس
.آن اعطا می شود
باید دارای یک تابع تصمیم گیری در مورد عضویت
برای.یا عدم عضویت یک جزء در نقش مربوطه باشد
:عضویت
یک یا
.چند سطح به آن اعطا شده است
پویا جافریان
[email protected]
)http://ce.aut.ac.ir/islab( آزمايشکاه سيستم های هوشمند
UML مدل سازی کنترل دسترسی و مديريت آعتماد با
34
رابطه اعطا کردن
رابطه اعطا کردن بین دو نقش رخ می دهد.
عنصری اعطا شونده به عنوان وکیل عنصر اعطا کننده
[1] -- Constraint on association ends for delegation relationship
عمل خواهد کرد.
[2] inv:
)"[3] self.associationEnd->forAll(end| end.Streotype="SecureRole
با توجه به اینکه بیان کننده رابطه بین دو کالس است،
عنصر Associationدر UMLرا به کمک کلیشه
»«metaclass
>> <<Delegationگسترش می دهیم.
»«metaclass
Association
Delegation
35
آزمايشکاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab
مدل سازی کنترل دسترسی و مديريت آعتماد با UML
پویا جافریان
[email protected]
رابطه داشتن ویژگی
این رابطه مشخص کننده عضویت یک جزء در یک نقش
به بیان دیگر می توان گفت که جزء دارای نقش.است
[1] -- Constraint on association ends for HasAttribute relationship
.مربوطه است
[2] inv:
[3] self.associationEnd->Size = 2
SecureComponent وSecureRole رابطه بین یک
[4] let ends = self.associationEnd in
[5] (ends[1].class.streotype = SecureComponent and
.رخ می دهد
ends[2].class.streotype
= HasAttribute) or (ends[2].class.streotype
«metaclass»
=HasAttribute
SecureComponent
and ends[1].class.streotype
HasAttribute
،داشتن ویژگی
برای نمایش رابطهUML=عنصر
بهترین
بوده که آن را با کلیشهAssociation عنصر
.<< گسترش می دهیمHasAttribute>>
«metaclass»
Association
پویا جافریان
[email protected]
)http://ce.aut.ac.ir/islab( آزمايشکاه سيستم های هوشمند
UML مدل سازی کنترل دسترسی و مديريت آعتماد با
36
مدل سازی رابطه عضویت
«metaclass»
[1]
-- Constraint On Membership of Requester Component in Secure Role
Association
[2] let SecureRoleClass = self.associationEnd->Select(end |
end.Streotype=SecureRole) in
[3] let RequesterComponent = self.associationEnd->Select(end |
end.Streotype=Component) in
[4] SecureRoleClass.isMember(RequesterComponent)
[5] -- Constraint on association ends for IsMember relationship
[6] inv:
[7] self.associationEnd->Size = 2
«metaclass»
[8] let ends = self.associationEnd in
IsMember
[9] ends[1].class.streotype = SecureComponent and ends[2].class.streotype
= HasAttribute
.این رابطه بین یک جزء و یک نقش ایجاد می شود
این رابطه یک رابطه محدود است و تنها در صورتی
امکان ایجاد آن وجود دارد که جزء مورد نظر به طور
.مستقیم یا غیر مستقیم عضوی از نقش مربوطه باشد
را بهUML درAssociation برای نمایش آن عنصر
.<< گسترش می دهیمisMember>> کمک کلیشه
پویا جافریان
[email protected]
)http://ce.aut.ac.ir/islab( آزمايشکاه سيستم های هوشمند
UML مدل سازی کنترل دسترسی و مديريت آعتماد با
37
مدل سازی رابطه مالکیت یک نقش
می گوییم، توسط یک جزء ارائه شود،هرگاه یک نقش
.جزء مربوطه مالک نقش است
بین یک جزء و نقش رخ داده و آن را با گسترش
به وسیله کلیشهUML درAssociation
.<< مدل می کنیمOwnRole>>
:دارای دو محدودیت است
[1]
-- Constraint on having just one Owner
«metaclass»
Association
[2]
inv:
[3] let role = self.associationEnd[1].class in
[4] role.associationEnd.Association->forAll( e |
(e.Streotype=OwnRole) implies (e = self)
[5] -- Constraint on association ends for OwnRole relationship
[6] inv:
[7] self.associationEnd->Size = 2
[8]
let ends = self.associationEnd in
«metaclass»
OwnRole
[9]
ends[1].class.streotype = SecureComponent and
ends[2].class.streotype = SecureRole
. رخ می دهدSecureComponent وSecureRole بین یک
.هر نقش تنها می تواند یک مالک داشته باشد
پویا جافریان
[email protected]
)http://ce.aut.ac.ir/islab( آزمايشکاه سيستم های هوشمند
UML مدل سازی کنترل دسترسی و مديريت آعتماد با
38
مدل سازی واسط ها ()Interface
هر جزء برای ارائه سرویس به دیگر اجزاء دارای تعدادی واسط
»«metaclass
است.
Interface
واسط ها باید از دسترسی افراد غیر مجاز محافظت شوند .برای
این منظور از مفهومی به نام محافظ ( )Safeguardدر آنها استفاده
می شود.
[1] – Safeguards
درTag is
added
عنصرto the
extended
contains
UMLاستفاده
Interface
interface.ها ،از
برای Itنمایش واسط
the
list of safeguards
required to access the
interface.
»«metaclass
می
گسترش
>><<SecureInterface
کلیشه
می کنیم و آن را با
SecureInterface
[2] Safeguards : Set of String
دهیم.
هر SecureInterfaceیک واسط است که توسط تعدادی نقش
محافظت می شود .هر جزء دیگر برای دسترسی به آن باید دارای
همه نقش های محافظ باشد.
نقش های الزم برای دسترسی به واسط مربوطه توسط یک Tag
آزمايشکاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab
پویا جافریان
شود
39در UMLبه آن متصل می
مدل سازی
کنترل.دسترسی و مديريت آعتماد با UML
[email protected]
تابع تصمیم گیری در مورد کنترل دسترسی
[1] -- Access Control Function for the meta class Model
[2] Context Model
[3] def : HaveAccess(component: SecureComponent,
interface: SecureInterface) : Boolean
[4] let componentRoles =
interface.class.associationEnd.association.association
End->Select(RoleEnds |
RoleEnds.association.Streotype=OwnRole and
RoleEnds.class.Streotype = SecureRole) in
[5] let safeguardRoles = componentRoles->Select( roles |
interface.Safeguards.Contains(roles.Name) ) in
[6] = safeguardRoles->forAll(safeguardRole |
safeguardRole.isMember(component)
پویا جافریان
[email protected]
)http://ce.aut.ac.ir/islab( آزمايشکاه سيستم های هوشمند
UML مدل سازی کنترل دسترسی و مديريت آعتماد با
40
الگوهای معماری برای مدل سازی مدیریت
اعتماد
(عضویت یک جزء در یک نقش)
>><<SecureComponent
>><<SecureComponent
Component 2
Component 1
>><<HasAttribute
>><<OwnRole
>><<SecureRole
Role 1
41
آزمايشکاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab
مدل سازی کنترل دسترسی و مديريت آعتماد با UML
پویا جافریان
[email protected]
الگوی معماری اعطا کردن یک نقش به نقش
دیگر
<<SecureComponent>>
<<SecureComponent>>
Component 1
Component 2
<<OwnRole>>
<<OwnRole>>
<<SecureRole>>
Role 1
پویا جافریان
[email protected]
<<Delegation>>
)http://ce.aut.ac.ir/islab( آزمايشکاه سيستم های هوشمند
UML مدل سازی کنترل دسترسی و مديريت آعتماد با
<<SecureRole>>
Role 2
42
الگوی نقش های سلسله مراتبی
<<SecureRole>>
Role 3
<<Delegation>>
<<SecureComponent>>
Component 1
<<OwnRole>>
<<OwnRole>>
<<SecureRole>>
Role 2
<<Delegation>>
<<SecureRole>>
Role 1
پویا جافریان
[email protected]
)http://ce.aut.ac.ir/islab( آزمايشکاه سيستم های هوشمند
UML مدل سازی کنترل دسترسی و مديريت آعتماد با
43
الگوی معماری اعطاکردن چندگانه
<<SecureComponent>>
<<SecureComponent>>
<<SecureComponent>>
Component 2
Component 3
Component 4
<<OwnRole>>
<<OwnRole>>
<<SecureRole>>
<<SecureRole>>
<<SecureRole>>
Role 2
Role 3
Role 4
<<OwnRole>>
<<Delegation>>
<<SecureRole>>
Role 1
<<OwnRole>>
<<SecureComponent>>
پویا جافریان
[email protected]
Component 1
)http://ce.aut.ac.ir/islab( آزمايشکاه سيستم های هوشمند
UML مدل سازی کنترل دسترسی و مديريت آعتماد با
44
مثال نمونه
مسئله :سازمان ACMقصد ارائه دسترسی به مقاالت به
دانشجویان دانشگاه امیرکبیر دارد.
راه حل :
45
ارائه دسترسی به مقاالت به تک تک دانشجویان دانشگاه
امیرکبیر با ارائه کد کاربری و کلمه عبور (کنترل دسترسی)
ارائه دسترسی به دانشگاه امیرکبیر و ارائه کد کاربری و کلمه
عبور به تک تک دانشجویان و قرار دادن آنها در
زیرمجموعه امیرکبیر (کنترل دسترسی با استفاده از نقش های
الیه ای)
ارائه دسترسی به مقاالت به تمام درخواست هایی که از طرف
افراد مورد تایید امیرکبیر آمده است (مدیریت اعتماد).
آزمايشکاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab
مدل سازی کنترل دسترسی و مديريت آعتماد با UML
پویا جافریان
[email protected]
مدل سازی راه حل اول
<<SecureComponent>>
safeGaurds=
{StudentMember}
ACM
PaperAcc
ess
<<OwnRole>>
<<SecureComponent>>
Student
<<SecureRole>>
StudentMember
<<HasAttribute>>
<<SecureRole>>
StudentMember
پویا جافریان
[email protected]
)http://ce.aut.ac.ir/islab( آزمايشکاه سيستم های هوشمند
UML مدل سازی کنترل دسترسی و مديريت آعتماد با
46
مدل سازی راه حل دوم
<<SecureComponent>>
safeGaurds=
{StudentMember}
ACM
PaperAcc
ess
<<OwnRole>>
<<OwnRole>>
<<SecureComponent>>
Student
<<SecureRole>>
Amirkabir
<<Delegation>>
<<SecureRole>>
StudentMember
<<HasAttribute>>
<<SecureRole>>
Amirkabir
پویا جافریان
[email protected]
)http://ce.aut.ac.ir/islab( آزمايشکاه سيستم های هوشمند
UML مدل سازی کنترل دسترسی و مديريت آعتماد با
47
مدل سازی راه حل سوم
safeGaurds=
{StudentMember}
PaperAcc
ess
<<SecureComponent>>
<<SecureComponent>>
ACM
AmirKabirU
<<OwnRole>>
<<OwnRole>>
<<SecureRole>>
StudentMember
<<Delegation>> <<SecureRole>>
AUTStudent
<<HasAttribute>>
<<SecureComponent>>
پویا جافریان
[email protected]
Student
)http://ce.aut.ac.ir/islab( آزمايشکاه سيستم های هوشمند
UML مدل سازی کنترل دسترسی و مديريت آعتماد با
48
کارهایی که باید انجام شوند
49
ارائه یک مطالعه موردی برای تست تمام ویژگی های
زبان مدل سازی گسترش یافته.
ارائه پارامترهای ارزیابی مناسب برای زبان مدل سازی
گسترش یافته و مقایسه آن را زبان های موجود برای مدل
سازی مدل سازی کنترل دسترسی و مدیریت اعتماد.
ارائه کاربردهای زبان مدل سازی در ارزیابی معماری
نرم افزار.
آزمايشکاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab
مدل سازی کنترل دسترسی و مديريت آعتماد با UML
پویا جافریان
[email protected]
خالصه گسترش های ارائه شده
کلیشه
کالس پایه
SecureComponent
Class
--
SecureRole
Class
تابع عضویت
Delegation
برچسب
Association
برچسب
کلیشه
نوع
محدودیت
شرح
یک جزء در سیستم که توانای ی ارائه درخواست و مالکیت نقش ها را دارد.
یک نقش در سیستم که دسترسی بر مبنای ان تعیین می شود.
تعدآد
برقرار رابطه تنها بین کالس های ی از نوع SecureRole
شرح
رابطه مشخص کننده اعطای یک نقش به نقش دیگر
شامل نام تمام نقش های ی که یک جزء باید برآی
Binaryو بین یک*
String
Safeguards
SecureComponentو
SecureInterfaceرابطه از نوع
باشد.توسط یک جزء
بودنرآیک نقش
کننده دارا
Association
HasAttribute
نظر دآ
مشخصمورد
دسترسی به وآسط
یک Secure Role
OwnRole
Associaation
بین یک SecureComponentو Secure Roleو هر
نقش تنها می تواند یک مالک داشته باشد.
مشخص کننده مالکیت یک نقش توسط یک جزء
IsMember
Association
بین یک SecureComponentو Secure Roleایجاد
شده و تنها در صورتی وجود دارد که جزء عضوی از نقش باشد.
رابطه ای محدود که تنها اگر جزء مربوطه عضو یک نقش باشد امکان برقراری
ان وجود دارد.
SecureInterface
50
Interface
آزمايشکاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab
Safeguardsمدل سازی کنترل دسترسی و مديريت --آعتماد با UML
پویا جافریان
واسط امن که توسط تعداد محافظ محافظت می شود.
[email protected]