فرمت فایل: ورد –Word و قابل ویرایش
تعداد صفحات: 220
فهرست مطالب
ردیف عنوان صفحه
چکیده 1
1 فصل اول: مقدمه 3
1- 1 مقدمه 4
2 فصل دوم: ادبیات تحقیق 10
2- 1 مقدمه 11
2- 2 مبانی معماری سرویس گرا 11
2- 2-1 تعاریف معماری سرویس گرا 14
2- 2-2 محصورسازی منطق راه حل 15
2- 2-3 ارتباط بین سرویس ها 18
2- 2-4 سست اتصالی سرویس 19
2- 2-5 ترکیب پذیری سرویس 20
2- 2-6 قابلیت استفاده مجدد 21
2- 2-7 توسعه پذیری معماری و توسعه پذیری سرویس 22
2- 2-8 خودمختاری و عدم وابستگی سرویس به چارچوب 22
2- 2-9 طراحی سرویس ها 23
2- 3 امنیت نرم افزار 26
2 3-1 مبانی اساسی امنیت 26
2- 3-2 تضمین امنیت نرم افزار 27
2- 3-3 اهداف امنیت 33
2- 3-4 نیازمندی های امنیتی 37
2- 4 امنیت و معماری سرویس گرا 49
2- 4-1 تعیین هویت، اعتبارسنجی و اختیارسنجی 57
2- 4-2 نقطه ورود مشترک 58
2- 4-3 رازداری و جامعیت 60
2- 4-4 امنیت سطح انتقال و امنیت سطح پیام 61
2- 4-5 رمزگذاری و امضاهای دیجیتالی 62
2- 5 استاندارد های امنیتی در معماری سرویس گرا 64
2- 5-1 توپولوژی استانداردهای امنیتی 64
67 XML Encryption (Confidentiality) رازداری از طریق 2-5 -2
68 XML Signature (Integrity, Authenticity) جامعیت و اعتبارسنجی از طریق 3-5 -2
2- 5-4 امنیت وب سرویس (WS-Security) 69
70 X.509 Certificates نشانه امنیتی 5-5 -2
2- 5-6 نشانه امنیتی SAML 71
2- 5-7 نشانه امنیتی و سیستم Kerberos 74
2- 5-8 افزودن نشانه های امنیتی در سرآیندهای WS-Security 74
2- 5-9 آدرس دهی وب سرویس ها (WS-Addressing) 75
2- 5-10 پروتکل پیام رسانی قابل اعتماد سرویس ها (WS-ReliableMessagin or WS-RM) 76
2- 5-11 سیاست وب سرویس ها (WS-Policy) 77
2 5-12 اعتماد وب سرویس ها (WS-Trust) 79
80 (WS-SecureConversation) محاوره ایمن وب سرویس ها 13-5 -2
2- 5-14 هم پیمانی وب سرویس ها (WS-Federation) 82
2- 5-15 استانداردهای رمزی کلید عام (PKCS) 82
2- 6 نتیجه گیری 85
3 فصل سوم: کنترل دسترسی، سیاست ها و مدل های موجود 86
3- 1 مقدمه 87
3- 2 تاریخچه کنترل دسترسی 87
3- 3 مدل های کنترل دسترسی موجود 88
3- 3-1 مدل کنترل دسترسی بصیرتی (DAC) 89
3- 3-2 سیاست کنترل دسترسی احتیاطی (MAC) 94
3- 3-3 سیاست کنترل دسترسی مبتنی بر نقش (RBAC) 101
3- 3-4 مقایسه مدل های موجود 105
3- 4 کنترل دسترسی در معماری سرویس گرا 107
3- 4-1 مدل مرجع معماری امنیت IBM برای معماری سرویس گرا 108
3- 4-2 مدل تعاملی معماری سرویس گرا – گسترش یافته برای امنیت 112
3- 4-3 مدل های کنترل دسترسی در معماری سرویس گرا 113
3- 5 سکو ها و چارچوب های امنیتی کنترل دسترسی معماری سرویس گرای بین سازمانی 117
3- 5-1 بسترهای حمایت از مدیریت سیاست های امنیتی سمت فراهم کننده سرویس 119
3- 5-2 بسترهای مدیریت سیاست های امنیتی اشتراکی بین سرویس دهنده و سرویس گیرنده 120
3- 5-3 بسترهای حمایت از مدیریت سیاست های امنیتی سمت درخواست کننده 121
3- 5-4 معماری امنیتی دولایه برای کنترل دسترسی در معماری سرویس گرا 122
خ
3 6 نتیجه گیری 124
فصل اول
مقدمه
1-1 مقدمه
با ظهور دیدگاه محاسبات توزیع شده1، محاسبات سرویسگرا (SOC)2 و معماری
سرویسگرا (SOA)3 تحول جدیدی پیش روی دنیای فناوری اطلاعات قرار گرفته است.
معماری سرویسگرا با تفکیک واحد های نرم افزاری و ایجاد مجموعه های عملیاتی
مستقل با قابلیت استفاده مجدد بنام سرویس به جای برنامههای کاربردی تکراری و
مشابه، در سازمان ها و شرکت ها مورد استقبال واقع شده است. کاهش هزینه های
تولید و نگهداری نرمافزار بدلیل قابلیت استفادهمجدد، امکان توسعه و ارتقای
آسانتر سیستم از دلایل این استقبال است. این معماری، که بر اتصال سست4،
تعامل پذیری، ترکیب پذیری و قابلیت استفاده مجدد آسان سرویسها بعنوان واحد
های سازنده نرم افزار تاکید دارد، می تواند هزینه های کلی فناوری اطلاعات
سازمان ها را تا حد قابل قبولی کاهش دهد[5][3][1]. از نگاه کاربر استفاده
کننده نیز معماری سرویس گرا مزایایی به همراه آورده است. تقسیم وظایف در
فرآیند های تجاری و تفکیک دقیق آنها منطبق بر اصل تفکیک دغدغه ها5 بطور
غیرمستقیم برای مشتریان این معماری به ارمغان آورده شده است. بعنوان نمونه،
در بحث تجارت الکترونیک6 مشتریان سازمان ها بیشتر مایلند خریدهای خود از
فروشگاه های مختلف را از طریق یک حساب ثابت و متمرکز که احتمالاً به منظور
همین کار ایجاد نموده اند انجام دهند. البته مطلوب به نظر نمی رسد که هر
فروشگاه الکترونیکی برای خرید و فروش محصولات خود، نیازمند یک حساب بانکی
خاص همان فروشگاه باشد. بعنوان نمونه، مشتری مایل است در بانک A یک حساب
افتتاح نماید و از آن برای خریدهای اینترنتی استفاده کند. در این سناریو،
این فروشگاه های مختلف هستند که باید خود را با این نیاز مشتری وفق دهند.
بنابراین فروشگاه ها برای انجام خدمات خود بجای ایجاد سرویس های پرداخت
برای بانک ها و حساب های مختلف، لازم است از سرویس پرداخت آن بانک ها
استفاده کنند. علاوه بر تسهیل در امور پرداخت به کمک سرویس های بانک ها، در
برخی موارد ممکن است چاره ای جز دریافت خدمات از سازمان ارائه دهنده
(اینجا بانک) نباشد. بعنوان مثال در سناریوی فروشگاه اینترنتی، هیچ بانکی
اجازه نمی دهد اطلاعات و مشخصات حسابهای مشتریانش را
12 --Distributed Computing Service Oriented Computing (SOC)
34 -Service Oriented Architecture(SOA)
-Loosely coupling
56 -Separation of Concerns
-E-Commerce
برای انجام تراکنش های مالی در اختیار دیگر سازمان ها قرار دهد. بلکه
درخواست های آن ها را از دامنه های معتبر که قبلاً برای بانک صلاحیت آن ها
تأیید شده است می گیرد، درخواست را در دامنه ی خود انجام داده، نتیجه را بر
می گرداند [2]. این چیزی جز استفاده از مفهوم سرویس گرایی نیست.
از سوی دیگر، بی شک با توجه به حساسیت داده ها و اطلاعات بعنوان منابع و
سرمایه های هر سازمان، حفاظت آن ها در مقابل تهدیدات، دسترسی های غیرمجاز و
تحریف محتوا، از اولویت بالایی برخوردار است. هر چه تعداد استفاده کنندگان
یک منبع یا خدمات و در معرض گذاشتن آن بیشتر شود، امکان بروز موارد مذکور
نیز بیشتر خواهد شد. بنابراین طبیعی است که در سازمان ها یکی از پارامترهای
مهم در انتخاب سبک معماری نرم افزار، در نظر گرفتن جنبه امنیتی و امکانات
آن باشد. جای شکی نیست که شما در سناریوی خرید از یک فروشگاه اینترنتی،
زمانی که اطلاعات حساب بانکی و میزان مبلغ را به سرویس پرداخت می دهید،
بستر برای تهدیدات و حملات اینترنتی خیلی بیشتر از زمانی است که برای
پرداخت ها بصورت حضوری به بانک می روید (از خطرات غیرمتعارف مانند سرقت از
بانک چشم پوشی کنید). پس روشن است که استفاده از مزایای فناوری جدید کاملاً
به تضمین جنبه های امنیتی آن گره خورده است. فناوری ناامن در عمل،
ناکارآمد و غیرعملیاتی خواهد بود.
اما منظور از امنیت چیست؟ از دیدگاه عام، امنیت را وضعیت آزاد بودن از
خطر و ریسک تعریف می کنند[6]. امنیت رایانه، شاخه ای از علم رایانه است که
با ریسک ها، تهدیدها و مکانیزم های مربوط به استفاده از سیستم های محاسباتی
سروکار دارد [6]. برای این مفهوم تعاریف مختلفی ارائه شده است که این
تعریف جامع تر به نظر می رسد: »مجموعه ای از تکنیک ها، روش ها، رویه ها و
فعالیت های به کار گرفته شده برای نگهداری یک وضعیت ایده آلِ تعریف شده از
طریق یک مجموعه از قواعد در یک سیستم محاسباتی بهم مرتبط، نامتمرکز و
ناهمگن را امنیت می گویند. این قواعد بیان می کنند که چه چیز مجاز و چه چیز
غیرمجاز است«[6].
بنابراین ما با دو مقوله ظاهراً مجزا مواجه هستیم اما تاثیر متقابل آنها
بر همدیگر غیرقابل انکار است. اول مزایا، امکانات و قابلیت هایی که معماری
سرویس گرا پیش روی سازمان ها و مشتریان قرار داده است. دوم مشکلات و
تهدایدات ناشی از مفهوم عام امنیت در سیستم های توزیع شده و خصوصاً در
معماری سرویس گرا که ما را در انتخاب این معماری به تفکر وا می دارد. با
اندکی تأمل مشخص می شود که با وجود مزایایتجاری1 کافی برای استفاده از
معماری سرویس گرا، یکی از شروط لازم(اما نه ضرورتاً کافی) برای عملیاتی2
نمودن این معماری، وجود چارچوب ها و مدل های امنیتی کارا می باشد. صرف نظر
از میزان توزیع شدگی معماری ها، منابع مختلف جنبه های گوناگونی را برای
امنیت در نظر گرفته اند که همگی تقریباً در سه مورد رازداری3، جامعیت4 و
دسترس پذیری5 مشترکند[3][5][12][13][22]. طبعاً این جنبه ها برای معماری
سرویس گرا نیز وجود دارند اما بکارگیری آنها با مشکلاتی همراه است. برای
دستیابی به هریک این موارد درمعماری متمرکز (و بعضاً مشترک با معماری سرویس
گرا)، مکانیزم های مختلفی وجود دارد. بعنوان نمونه برای تضمین جامعیت،
مکانیزم های رمزگذاری و رمزگشایی6 [3][11] و برای تضمین رازداری و دسترس
پذیری مکانیزم های اعتبارسنجی و اختیارسنجی7 وجود دارد [3][11]. هر یک از
این مکانیزم ها، خود دارای مدل ها و پیاده سازی های گوناگونی هستند. برای
اعتبارسنجی می توان اعتبارسنجی به کمک شناسه کاربری/رمزعبور، نشانه
امنیتی8، قفل سخت افزاری و علائم زیست سنجی9 مانند اثر انگشت و شبکیه چشم
را نام برد [6][12]. برای اختیارسنجی یا کنترل دسترسی مدل هایی مانند MAC
،RBAC و DAC ارائه شده است. همانطور که پیشتر نیز گفته شد، بیشتر این
مکانیزم ها و مدل ها در اساس برای معماری های متمرکز طراحی شده اند که با
ظهور و توسعه معماری های نامتمرکزی مانند SOA و Grid، نیازمند مدل های جدید
یا اصلاح و بومی سازی مدل های موجود خواهیم بود.
فصل دوم
ادبیات تحقیق
2-1 مقدمه
در این فصل ابتدا به تشریح مفاهیم بنیادی معماری سرویس گرا خواهیم
پرداخت و در آن روی اصولی از این معماری متمرکز می شویم که در ادامه به آن
ها نیاز خواهیم داشت. پس از آن، مقوله امنیت نرم افزار را ابتدا مستقل از
مفهوم سرویس گرایی بسط می دهیم. اهداف و نیازمندی های امنیت را معرفی می
کنیم. در انتها بین مفهوم معماری سرویس گرا و امنیت ارتباط برقرار خواهیم
ساخت و جایگاه امنیت را در این معماری بررسی می کنیم. در این بین، اصطلاحات
و مفاهیمی که در ادامه تحقیق مورد نیاز است، هرجا که لازم باشد، در حد
امکان شرح می دهیم.
2-2 مبانی معماری سرویس گرا
از آنجا که مفهوم »سرویس گرایی« از مدتها قبل مطرح شده، در زمینه های
مختلف و برای کاربردهای متفاوتی به کار گرفته شده است. با ایسن وجود، تمام
گونه ها و کاربردهای آن در یک مفهوم مشخص بنام »تفکیک دغدغه ها1« مشترک
هستند. این بدان معناست که منطق مورد نیاز برای حل یک مسئله بزرگ اگر به
مجموعه ای از قطعات کوچکتر و مجزا تفکیک شود نتیجه بهتری حاصل خواهد شد. هر
یک از این قطعات2 به یک دغدغه3 یا یک بخش مشخص از مسئله اشاره دارد.
دیدگاه های دیگری نیز مانند سیستم های توزیع شده یا معماری مشتری/خدمتگزار،
برای این تفکیک مفاهیم وجود دارد. اما چیزی که SOA را مجزا می سازد،
چگونگیِ4 دستیابی به این »تفکیک« است.
برای درک بهتر مفهوم سرویس گرایی به ارائه مثالی که آقای Erl در [3]
آورده است می پردازیم. فعلاً برای سادگی، سرویس را با همان مفهوم عام،
بمعنای »ارائه خدمت یا انجام یک فعالیت« تعریف می کنیم.
یک شهر را در نظر بگیرید. اگر با دقت و نگاه سرویس گرایانه به این شهر
بنگریم، خواهیم دید که پر از کسب و کارهای سرویس گرا است. کمپانی های مجزا،
همه به نوعی دارای منطق سرویس گرا هستند. زیرا هریک سرویس مشخصی را فراهم
می کنند که می تواند توسط مشتری های مختلفی مورد استفاده قرار گیرد.
بنابراین،
|