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]