SlideShare a Scribd company logo
.NET FRAMEWORK APPLICATION DEVELOPMENT
FOUNDATION I
LECTURER: VAHID FARAHMANDIAN
UNDERSTANDING SECURITY
OBJECTIVES
‫بتوانید‬ ‫بایستی‬ ‫درس‬ ‫این‬ ‫انتهای‬ ‫در‬:
‫نام‬ ‫فضای‬ ‫با‬System.Security‫شد‬ ‫خواهید‬ ‫آشنا‬
Authentication‫و‬Authorization‫شناخت‬ ‫خواهید‬ ‫را‬
Cryptography‫شناخت‬ ‫خواهید‬ ‫را‬
‫با‬Code Access Security‫شد‬ ‫خواهید‬ ‫آشنا‬
UNDERSTANDING AUTHENTICATION AND AUTHORIZATION
Authentication:‫تشخیص‬ ‫و‬ ‫کاربر‬ ‫از‬ ‫اطالعات‬ ‫اخذ‬ ‫فرآیند‬
‫گویند‬ ‫را‬ ‫هویت‬.
Authorization:‫اشاره‬ ‫تشخیصی‬ ‫هویت‬ ‫براساس‬ ‫دسترسی‬ ‫سطوح‬ ‫به‬
‫دارد‬.
‫است‬ ‫شده‬ ‫پیاده‬ ‫ویندوز‬ ‫توسط‬ ‫هویت‬ ‫احراز‬ ‫روشهای‬ ‫از‬ ‫یکی‬
‫توسط‬ ‫تشخیصی‬ ‫هویت‬ ‫میشویم‬ ‫ویندوز‬ ‫وارد‬ ‫زمانیکه‬ ‫و‬.Net
‫است‬ ‫دسترس‬ ‫در‬(.Net Framework role-based Security Schema)
IIdentity:‫توسط‬WindowsIdentity‫نشان‬ ‫و‬ ‫است‬ ‫شده‬ ‫پیاده‬
‫میکند‬ ‫اجرا‬ ‫کسی‬ ‫چه‬ ‫را‬ ‫جاری‬ ‫کد‬ ‫میدهد‬
IPrincipal:‫توسط‬WindowsPrincipal‫اطالعات‬ ‫و‬ ‫است‬ ‫شده‬ ‫پیاده‬
UNDERSTANDING AUTHENTICATION AND AUTHORIZATION
‫متد‬IsInRole‫سه‬Overload‫که‬ ‫دارد‬
‫میکند‬ ‫اخذ‬ ‫را‬ ‫زیر‬ ‫های‬ ‫ورودی‬:
WindowsBuiltInRole:‫آیا‬ ‫میکند‬ ‫بررسی‬
‫ویندوز‬ ‫از‬ ‫خاصی‬ ‫گروه‬ ‫عضو‬ ‫کاربر‬
‫است؟‬
String:‫خاص‬ ‫گروه‬ ‫عضو‬ ‫کاربر‬ ‫آیا‬
‫ویئدوزی‬‫یا‬ ‫است‬ ‫شده‬ ‫ارائه‬ ‫نام‬ ‫با‬
‫خیر؟‬
Int:‫کاربر‬ ‫آیا‬ ‫که‬ ‫میکند‬ ‫بررسی‬
‫خاص‬ ‫گروه‬ ‫عضو‬‫ویندوزی‬‫با‬RID
‫خیر؟‬ ‫یا‬ ‫است‬ ‫شده‬ ‫ارائه‬
RID(Role Identifier:)‫که‬ ‫است‬ ‫کدی‬
‫و‬ ‫میشود‬ ‫ارائه‬ ‫عامل‬ ‫سیستم‬ ‫توسط‬
UNDERSTANDING AUTHENTICATION AND AUTHORIZATION
‫است‬ ‫خاص‬ ‫گروهی‬ ‫عضو‬ ‫کاربر‬ ‫آیا‬ ‫که‬ ‫کنیم‬ ‫بررسی‬ ‫تا‬ ‫است‬ ‫نیاز‬ ‫اغلب‬
‫خیر‬ ‫یا‬.‫دهد‬ ‫انجام‬ ‫را‬ ‫خاصی‬ ‫کارهای‬ ،‫بود‬ ‫عضو‬ ‫که‬ ‫صورتی‬ ‫در‬.
‫کالس‬ ‫از‬ ‫میتوان‬ ‫اینکار‬ ‫برای‬PrincipalPermission‫نمود‬ ‫استفاده‬.
‫متد‬PrincipalPermission.Demand‫جاری‬ ‫کاربر‬ ‫نقش‬ ‫آیا‬ ‫که‬ ‫میکند‬ ‫بررسی‬
‫خیر؟‬ ‫یا‬ ‫دارد‬ ‫مطابقت‬ ‫شده‬ ‫مشخص‬ ‫نقش‬ ‫با‬‫یافت‬ ‫تطابق‬ ‫که‬ ‫صورتی‬ ‫در‬
‫خطای‬ ‫نشود‬SecurityException‫میدهد‬ ‫رخ‬
UNDERSTANDING CRYPTOGRAPHY
Cryptography:‫داده‬ ‫این‬ ‫لذا‬ ‫و‬ ‫میکند‬ ‫کدگذاری‬ ‫را‬ ‫ها‬ ‫داده‬
‫بود‬ ‫نخواهد‬ ‫خواندن‬ ‫قابل‬ ‫غیرمجاز‬ ‫افراد‬ ‫توسط‬ ‫ها‬.
Encryption:‫داریم‬ ‫نت‬ ‫دات‬ ‫در‬ ‫کدگذاری‬ ‫الگوریتم‬ ‫نوع‬ ‫دو‬:
Secret-key Encryption
Public-key Encryption
‫کد‬ ‫به‬ ‫نیاز‬ ‫که‬ ‫صورتی‬ ‫در‬ ،‫میشود‬ ‫کدگذاری‬ ‫که‬ ‫ای‬ ‫داده‬ ‫هر‬
‫گشایی‬ ‫کد‬ ‫بتواند‬ ‫بایستی‬ ‫باشد‬ ‫داشته‬ ‫گشایی‬
‫شود‬(Decryption)
USING SECRET-KEY ENCRYPTION
‫کلید‬ ‫کننده‬ ‫دریافت‬ ‫هم‬ ‫و‬ ‫کننده‬ ‫ارسال‬ ‫هم‬ ‫صورت‬ ‫این‬ ‫در‬
‫میگذارند‬ ‫اشتراک‬ ‫به‬ ‫هم‬ ‫با‬ ‫را‬ ‫کدگذاری‬.
‫و‬ ‫میکند‬ ‫گذاری‬ ‫کد‬ ‫را‬ ‫داده‬ ‫ارسال‬ ‫از‬ ‫قبل‬ ‫کننده‬ ‫ارسال‬
‫میکند‬ ‫گشایی‬ ‫کد‬ ‫را‬ ‫آن‬ ‫دریافت‬ ‫از‬ ‫بعد‬ ‫کننده‬ ‫دریافت‬.
‫نام‬ ‫تحت‬ ‫گذاری‬ ‫کد‬ ‫نوع‬ ‫این‬ ‫از‬Symmetric Encryption‫یاد‬ ‫هم‬
‫میشود‬.
‫هکر‬ ،‫شود‬ ‫استفاده‬ ‫گذاری‬ ‫کد‬ ‫برای‬ ‫کلید‬ ‫یک‬ ‫از‬ ‫فقط‬ ‫اگر‬
‫دست‬ ‫کلید‬ ‫به‬ ‫شده‬ ‫بدل‬ ‫و‬ ‫رد‬ ‫های‬ ‫داده‬ ‫مطالعه‬ ‫با‬ ‫میتواند‬
‫یابد‬.‫امر‬ ‫این‬ ‫از‬ ‫جلوگیری‬ ‫برای‬Symmetric Encryption‫یک‬ ‫از‬
Initialization Vector(IV)‫میکند‬ ‫استفاده‬(‫بصورت‬random‫تولید‬
USING SECRET-KEY ENCRYPTION
USING PUBLIC-KEY ENCRYPTION
‫میشود‬ ‫استفاده‬ ‫کلید‬ ‫جفت‬ ‫یک‬ ‫از‬ ‫حالت‬ ‫این‬ ‫در‬(privateKey,
publicKey)
‫کاربر‬1‫میکند‬ ‫ایجاد‬ ‫کلید‬ ‫جفت‬ ‫یک‬.‫نگه‬ ‫را‬ ‫خصوصی‬ ‫کلید‬ ‫سپس‬
‫کاربر‬ ‫به‬ ‫را‬ ‫عمومی‬ ‫کلید‬ ‫و‬ ‫میدارد‬2‫میکند‬ ‫ارسال‬
‫کاربر‬2‫گذاری‬ ‫کد‬ ‫را‬ ‫پیام‬ ‫و‬ ‫کرده‬ ‫دریافت‬ ‫را‬ ‫عمومی‬ ‫کلید‬
‫کاربر‬ ‫به‬ ‫را‬ ‫آن‬ ‫و‬ ‫میکند‬1‫میکند‬ ‫ارسال‬
‫کاربر‬1‫خصوصی‬ ‫کلید‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫و‬ ‫کرده‬ ‫دریافت‬ ‫را‬ ‫پیام‬
‫میکند‬ ‫گشایی‬ ‫کد‬ ‫را‬ ‫پیام‬
‫جمله‬ ‫از‬ ‫دارد‬ ‫وجود‬ ‫اینکار‬ ‫برای‬ ‫مختلفی‬ ‫های‬ ‫کالس‬
RSACryptoServiceProvider
USING PUBLIC-KEY ENCRYPTION
UNDERSTANDING CODE ACCESS SECURITY
‫م‬ ‫که‬ ‫میشود‬ ‫مشخص‬ ‫آن‬ ‫طریق‬ ‫به‬ ‫که‬ ‫است‬ ‫مکانیزمی‬‫ت‬‫حال‬ ‫در‬ ‫د‬
‫دارد‬ ‫را‬ ‫کاری‬ ‫چه‬ ‫انجام‬ ‫اجازه‬ ‫سیستم‬ ‫روی‬ ‫اجرا‬.‫برای‬
‫نمود‬ ‫استفاده‬ ‫میتوان‬ ‫حالت‬ ‫دو‬ ‫از‬ ‫اینکار‬:
‫میشود‬ ‫اجرا‬ ‫ناامن‬ ‫یا‬ ‫نامشخص‬ ‫منبع‬ ‫یک‬ ‫از‬ ‫کد‬ ‫اینکه‬ ‫تشخیص‬
‫این‬ ‫از‬ ،‫باشد‬ ‫شده‬ ‫تعریف‬ ‫قبال‬ ‫انجام‬ ‫برای‬ ‫مجاز‬ ‫عملیات‬ ‫اگر‬
‫نمود‬ ‫شناسایی‬ ‫را‬ ‫مجاز‬ ‫غیر‬ ‫عملیات‬ ‫میتوان‬ ‫طریق‬.
Transparency:‫دسترسی‬ ‫با‬ ‫کد‬ ‫آن‬ ‫طریق‬ ‫به‬ ‫که‬ ‫است‬ ‫مکانیزمی‬
‫مجاز‬(Critical Code)‫غیر‬ ‫دسترسی‬ ‫با‬ ‫کد‬ ‫از‬ ‫را‬
‫مجاز‬(Transparent Code)‫میسازد‬ ‫جدا‬.
UNDERSTANDING CODE ACCESS SECURITY
‫نت‬ ‫دات‬ ‫در‬4‫نسخه‬Transparency Level 2‫آن‬ ‫طی‬ ‫در‬ ‫و‬ ‫شد‬ ‫ارائه‬
‫میشوند‬ ‫تقسیم‬ ‫دسته‬ ‫سه‬ ‫به‬ ‫کدها‬:
Transparent:‫به‬ ‫حساس‬ ‫کارهای‬ ‫انجام‬ ‫به‬ ‫مجاز‬Security
‫نیستند‬.‫نمیتوانند‬unsafe code‫کدهای‬ ‫یا‬Security-Critical‫را‬
‫بزنند‬ ‫صدا‬
Security-Critical:‫دهند‬ ‫انجام‬ ‫کاری‬ ‫هر‬ ‫میتوانند‬.‫داخل‬ ‫از‬
‫کد‬Transparent‫نیستند‬ ‫شدن‬ ‫زده‬ ‫صدا‬ ‫قابل‬
Safe-Critical:‫دهند‬ ‫انجام‬ ‫کاری‬ ‫هر‬ ‫میتوانند‬..‫های‬ ‫چک‬
‫به‬ ‫حساس‬ ‫کد‬ ‫زدن‬ ‫صدا‬ ‫از‬ ‫قبل‬ ‫را‬ ‫منظمی‬ ‫امنیتی‬Security
‫میدهد‬ ‫انجام‬.‫کدهای‬ ‫طریق‬ ‫از‬Transparent‫زدن‬ ‫صدا‬ ‫قابل‬
UNDERSTANDING CODE ACCESS SECURITY
Evidence‫اسمبلی‬ ‫میسازد‬ ‫مشخص‬
‫است‬ ‫گرفته‬ ‫نشات‬ ‫کجا‬ ‫از‬
‫فرض‬ ‫پیش‬ ‫مقدار‬SecurityRuleSet
‫با‬ ‫برابر‬Level2‫از‬ ‫ولی‬ ‫است‬
‫طریق‬
[assembly: SecurityRules(SecurityRuleSet.Level2)]
‫داد‬ ‫تغییر‬ ‫را‬ ‫آن‬ ‫میتوان‬
MANAGING PERMISSIONS
Permission:‫میتواند‬ ‫کد‬ ‫که‬ ‫دارد‬ ‫عملی‬ ‫به‬ ‫اشاره‬/‫نمیتواند‬
‫دهد‬ ‫انجام‬ ‫را‬ ‫آن‬
‫نام‬ ‫فضای‬ ‫درون‬ ‫امر‬ ‫این‬ ‫به‬ ‫مربوط‬ ‫های‬ ‫کالس‬
System.Security.Permissions‫دارند‬ ‫قرار‬
‫از‬ ‫استفاده‬ ‫با‬ ‫اینکار‬ ‫برای‬AppDomain.CreateDomain‫یک‬
Security Sandbox‫میشود‬ ‫ایجاد‬
WORKING WITH ACCESS CONTROL
Access Control‫دسترسی‬ ‫مختلف‬ ‫منابع‬ ‫به‬ ‫کسی‬ ‫چه‬ ‫میسازد‬ ‫مشخص‬
‫دارد‬.
ACL‫دارد‬ ‫بخش‬ ‫دو‬:
Access Token:‫وقتی‬Login‫یک‬ ‫وی‬ ‫برای‬ ‫سیستم‬ ‫باشد‬ ‫موفق‬ ‫کاربر‬
Access Token‫میکند‬ ‫ایجاد‬.‫هر‬process‫یک‬ ‫کاربر‬ ‫این‬ ‫به‬ ‫مربوط‬
‫از‬ ‫کپی‬Token‫داشت‬ ‫خواهد‬ ‫را‬.‫این‬Token‫و‬ ‫ها‬ ‫دسترسی‬ ‫حاوی‬
‫میباشد‬ ‫کاربر‬ ‫انحصاری‬ ‫تشخیصی‬ ‫کد‬
Security Descriptor:‫میباشد‬ ‫آبجکت‬ ‫مالک‬ ‫نمایانگر‬.
KEY TERMS
 Authentication
 Authorization
 Code Access Security
 Cryptography
 Permissions
 Public-key Encryption
 Secret-key Encryption
 Transparency Level 2

More Related Content

PPSX
security in network
PDF
Network Security (Security Protocols on Electronic Voting)
PDF
Network penetration
PDF
Network-security muhibullah aman-first edition-in Persian
PPT
Amniat
PDF
2017 - مقاله چالشهای امنیتی در مدلهای رایانش ابری - نویسندگان: ناصری فرد و ...
PPTX
Rajabi security project
PPTX
Rajabi security project
security in network
Network Security (Security Protocols on Electronic Voting)
Network penetration
Network-security muhibullah aman-first edition-in Persian
Amniat
2017 - مقاله چالشهای امنیتی در مدلهای رایانش ابری - نویسندگان: ناصری فرد و ...
Rajabi security project
Rajabi security project

Similar to Understanding Security in .Net Framework (20)

PPTX
Authentication
PPTX
Authentication
PPTX
Authentication
PPSX
Authentication
PDF
توسعه امن نرم افزار
PDF
انواع حملات در شبکه های کامپیوتری.pdf
PPTX
100+50+50+50+30.pptx 000000000000000000000000
PDF
how config Naxsi
PPT
E commerce security
PPTX
امنیت در شبکه های Wi-Fi
PDF
امنیت شبکه
PDF
مدیریت منابع اطلاعاتی
PDF
chapter 1 (1).pdf
PDF
گاهنامه چهارمحال و_بختیاری_دیماه
PPSX
Amniat(ghasemi)
PPTX
mobile cloud Security and challenges
PDF
Physical Layer Security in Wireless Communication Systems
PDF
امنیت و پروتکل های سامانه پرداخت اینترنتی شاپرک
PDF
Presentation research method
Authentication
Authentication
Authentication
Authentication
توسعه امن نرم افزار
انواع حملات در شبکه های کامپیوتری.pdf
100+50+50+50+30.pptx 000000000000000000000000
how config Naxsi
E commerce security
امنیت در شبکه های Wi-Fi
امنیت شبکه
مدیریت منابع اطلاعاتی
chapter 1 (1).pdf
گاهنامه چهارمحال و_بختیاری_دیماه
Amniat(ghasemi)
mobile cloud Security and challenges
Physical Layer Security in Wireless Communication Systems
امنیت و پروتکل های سامانه پرداخت اینترنتی شاپرک
Presentation research method
Ad

More from Vahid Farahmandian (8)

PPTX
Core C# Programming Constructs, Part 1
PPTX
Building C# Applications
PPTX
The Philosophy of .Net
PPTX
C#.net evolution part 2
PPTX
Introduction to SOA
PPTX
Introduction to CRM
PPTX
C#.net Evolution part 1
PPTX
Interview tips
Core C# Programming Constructs, Part 1
Building C# Applications
The Philosophy of .Net
C#.net evolution part 2
Introduction to SOA
Introduction to CRM
C#.net Evolution part 1
Interview tips
Ad

Understanding Security in .Net Framework

  • 1. .NET FRAMEWORK APPLICATION DEVELOPMENT FOUNDATION I LECTURER: VAHID FARAHMANDIAN UNDERSTANDING SECURITY
  • 2. OBJECTIVES ‫بتوانید‬ ‫بایستی‬ ‫درس‬ ‫این‬ ‫انتهای‬ ‫در‬: ‫نام‬ ‫فضای‬ ‫با‬System.Security‫شد‬ ‫خواهید‬ ‫آشنا‬ Authentication‫و‬Authorization‫شناخت‬ ‫خواهید‬ ‫را‬ Cryptography‫شناخت‬ ‫خواهید‬ ‫را‬ ‫با‬Code Access Security‫شد‬ ‫خواهید‬ ‫آشنا‬
  • 3. UNDERSTANDING AUTHENTICATION AND AUTHORIZATION Authentication:‫تشخیص‬ ‫و‬ ‫کاربر‬ ‫از‬ ‫اطالعات‬ ‫اخذ‬ ‫فرآیند‬ ‫گویند‬ ‫را‬ ‫هویت‬. Authorization:‫اشاره‬ ‫تشخیصی‬ ‫هویت‬ ‫براساس‬ ‫دسترسی‬ ‫سطوح‬ ‫به‬ ‫دارد‬. ‫است‬ ‫شده‬ ‫پیاده‬ ‫ویندوز‬ ‫توسط‬ ‫هویت‬ ‫احراز‬ ‫روشهای‬ ‫از‬ ‫یکی‬ ‫توسط‬ ‫تشخیصی‬ ‫هویت‬ ‫میشویم‬ ‫ویندوز‬ ‫وارد‬ ‫زمانیکه‬ ‫و‬.Net ‫است‬ ‫دسترس‬ ‫در‬(.Net Framework role-based Security Schema) IIdentity:‫توسط‬WindowsIdentity‫نشان‬ ‫و‬ ‫است‬ ‫شده‬ ‫پیاده‬ ‫میکند‬ ‫اجرا‬ ‫کسی‬ ‫چه‬ ‫را‬ ‫جاری‬ ‫کد‬ ‫میدهد‬ IPrincipal:‫توسط‬WindowsPrincipal‫اطالعات‬ ‫و‬ ‫است‬ ‫شده‬ ‫پیاده‬
  • 4. UNDERSTANDING AUTHENTICATION AND AUTHORIZATION ‫متد‬IsInRole‫سه‬Overload‫که‬ ‫دارد‬ ‫میکند‬ ‫اخذ‬ ‫را‬ ‫زیر‬ ‫های‬ ‫ورودی‬: WindowsBuiltInRole:‫آیا‬ ‫میکند‬ ‫بررسی‬ ‫ویندوز‬ ‫از‬ ‫خاصی‬ ‫گروه‬ ‫عضو‬ ‫کاربر‬ ‫است؟‬ String:‫خاص‬ ‫گروه‬ ‫عضو‬ ‫کاربر‬ ‫آیا‬ ‫ویئدوزی‬‫یا‬ ‫است‬ ‫شده‬ ‫ارائه‬ ‫نام‬ ‫با‬ ‫خیر؟‬ Int:‫کاربر‬ ‫آیا‬ ‫که‬ ‫میکند‬ ‫بررسی‬ ‫خاص‬ ‫گروه‬ ‫عضو‬‫ویندوزی‬‫با‬RID ‫خیر؟‬ ‫یا‬ ‫است‬ ‫شده‬ ‫ارائه‬ RID(Role Identifier:)‫که‬ ‫است‬ ‫کدی‬ ‫و‬ ‫میشود‬ ‫ارائه‬ ‫عامل‬ ‫سیستم‬ ‫توسط‬
  • 5. UNDERSTANDING AUTHENTICATION AND AUTHORIZATION ‫است‬ ‫خاص‬ ‫گروهی‬ ‫عضو‬ ‫کاربر‬ ‫آیا‬ ‫که‬ ‫کنیم‬ ‫بررسی‬ ‫تا‬ ‫است‬ ‫نیاز‬ ‫اغلب‬ ‫خیر‬ ‫یا‬.‫دهد‬ ‫انجام‬ ‫را‬ ‫خاصی‬ ‫کارهای‬ ،‫بود‬ ‫عضو‬ ‫که‬ ‫صورتی‬ ‫در‬. ‫کالس‬ ‫از‬ ‫میتوان‬ ‫اینکار‬ ‫برای‬PrincipalPermission‫نمود‬ ‫استفاده‬. ‫متد‬PrincipalPermission.Demand‫جاری‬ ‫کاربر‬ ‫نقش‬ ‫آیا‬ ‫که‬ ‫میکند‬ ‫بررسی‬ ‫خیر؟‬ ‫یا‬ ‫دارد‬ ‫مطابقت‬ ‫شده‬ ‫مشخص‬ ‫نقش‬ ‫با‬‫یافت‬ ‫تطابق‬ ‫که‬ ‫صورتی‬ ‫در‬ ‫خطای‬ ‫نشود‬SecurityException‫میدهد‬ ‫رخ‬
  • 6. UNDERSTANDING CRYPTOGRAPHY Cryptography:‫داده‬ ‫این‬ ‫لذا‬ ‫و‬ ‫میکند‬ ‫کدگذاری‬ ‫را‬ ‫ها‬ ‫داده‬ ‫بود‬ ‫نخواهد‬ ‫خواندن‬ ‫قابل‬ ‫غیرمجاز‬ ‫افراد‬ ‫توسط‬ ‫ها‬. Encryption:‫داریم‬ ‫نت‬ ‫دات‬ ‫در‬ ‫کدگذاری‬ ‫الگوریتم‬ ‫نوع‬ ‫دو‬: Secret-key Encryption Public-key Encryption ‫کد‬ ‫به‬ ‫نیاز‬ ‫که‬ ‫صورتی‬ ‫در‬ ،‫میشود‬ ‫کدگذاری‬ ‫که‬ ‫ای‬ ‫داده‬ ‫هر‬ ‫گشایی‬ ‫کد‬ ‫بتواند‬ ‫بایستی‬ ‫باشد‬ ‫داشته‬ ‫گشایی‬ ‫شود‬(Decryption)
  • 7. USING SECRET-KEY ENCRYPTION ‫کلید‬ ‫کننده‬ ‫دریافت‬ ‫هم‬ ‫و‬ ‫کننده‬ ‫ارسال‬ ‫هم‬ ‫صورت‬ ‫این‬ ‫در‬ ‫میگذارند‬ ‫اشتراک‬ ‫به‬ ‫هم‬ ‫با‬ ‫را‬ ‫کدگذاری‬. ‫و‬ ‫میکند‬ ‫گذاری‬ ‫کد‬ ‫را‬ ‫داده‬ ‫ارسال‬ ‫از‬ ‫قبل‬ ‫کننده‬ ‫ارسال‬ ‫میکند‬ ‫گشایی‬ ‫کد‬ ‫را‬ ‫آن‬ ‫دریافت‬ ‫از‬ ‫بعد‬ ‫کننده‬ ‫دریافت‬. ‫نام‬ ‫تحت‬ ‫گذاری‬ ‫کد‬ ‫نوع‬ ‫این‬ ‫از‬Symmetric Encryption‫یاد‬ ‫هم‬ ‫میشود‬. ‫هکر‬ ،‫شود‬ ‫استفاده‬ ‫گذاری‬ ‫کد‬ ‫برای‬ ‫کلید‬ ‫یک‬ ‫از‬ ‫فقط‬ ‫اگر‬ ‫دست‬ ‫کلید‬ ‫به‬ ‫شده‬ ‫بدل‬ ‫و‬ ‫رد‬ ‫های‬ ‫داده‬ ‫مطالعه‬ ‫با‬ ‫میتواند‬ ‫یابد‬.‫امر‬ ‫این‬ ‫از‬ ‫جلوگیری‬ ‫برای‬Symmetric Encryption‫یک‬ ‫از‬ Initialization Vector(IV)‫میکند‬ ‫استفاده‬(‫بصورت‬random‫تولید‬
  • 9. USING PUBLIC-KEY ENCRYPTION ‫میشود‬ ‫استفاده‬ ‫کلید‬ ‫جفت‬ ‫یک‬ ‫از‬ ‫حالت‬ ‫این‬ ‫در‬(privateKey, publicKey) ‫کاربر‬1‫میکند‬ ‫ایجاد‬ ‫کلید‬ ‫جفت‬ ‫یک‬.‫نگه‬ ‫را‬ ‫خصوصی‬ ‫کلید‬ ‫سپس‬ ‫کاربر‬ ‫به‬ ‫را‬ ‫عمومی‬ ‫کلید‬ ‫و‬ ‫میدارد‬2‫میکند‬ ‫ارسال‬ ‫کاربر‬2‫گذاری‬ ‫کد‬ ‫را‬ ‫پیام‬ ‫و‬ ‫کرده‬ ‫دریافت‬ ‫را‬ ‫عمومی‬ ‫کلید‬ ‫کاربر‬ ‫به‬ ‫را‬ ‫آن‬ ‫و‬ ‫میکند‬1‫میکند‬ ‫ارسال‬ ‫کاربر‬1‫خصوصی‬ ‫کلید‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫و‬ ‫کرده‬ ‫دریافت‬ ‫را‬ ‫پیام‬ ‫میکند‬ ‫گشایی‬ ‫کد‬ ‫را‬ ‫پیام‬ ‫جمله‬ ‫از‬ ‫دارد‬ ‫وجود‬ ‫اینکار‬ ‫برای‬ ‫مختلفی‬ ‫های‬ ‫کالس‬ RSACryptoServiceProvider
  • 11. UNDERSTANDING CODE ACCESS SECURITY ‫م‬ ‫که‬ ‫میشود‬ ‫مشخص‬ ‫آن‬ ‫طریق‬ ‫به‬ ‫که‬ ‫است‬ ‫مکانیزمی‬‫ت‬‫حال‬ ‫در‬ ‫د‬ ‫دارد‬ ‫را‬ ‫کاری‬ ‫چه‬ ‫انجام‬ ‫اجازه‬ ‫سیستم‬ ‫روی‬ ‫اجرا‬.‫برای‬ ‫نمود‬ ‫استفاده‬ ‫میتوان‬ ‫حالت‬ ‫دو‬ ‫از‬ ‫اینکار‬: ‫میشود‬ ‫اجرا‬ ‫ناامن‬ ‫یا‬ ‫نامشخص‬ ‫منبع‬ ‫یک‬ ‫از‬ ‫کد‬ ‫اینکه‬ ‫تشخیص‬ ‫این‬ ‫از‬ ،‫باشد‬ ‫شده‬ ‫تعریف‬ ‫قبال‬ ‫انجام‬ ‫برای‬ ‫مجاز‬ ‫عملیات‬ ‫اگر‬ ‫نمود‬ ‫شناسایی‬ ‫را‬ ‫مجاز‬ ‫غیر‬ ‫عملیات‬ ‫میتوان‬ ‫طریق‬. Transparency:‫دسترسی‬ ‫با‬ ‫کد‬ ‫آن‬ ‫طریق‬ ‫به‬ ‫که‬ ‫است‬ ‫مکانیزمی‬ ‫مجاز‬(Critical Code)‫غیر‬ ‫دسترسی‬ ‫با‬ ‫کد‬ ‫از‬ ‫را‬ ‫مجاز‬(Transparent Code)‫میسازد‬ ‫جدا‬.
  • 12. UNDERSTANDING CODE ACCESS SECURITY ‫نت‬ ‫دات‬ ‫در‬4‫نسخه‬Transparency Level 2‫آن‬ ‫طی‬ ‫در‬ ‫و‬ ‫شد‬ ‫ارائه‬ ‫میشوند‬ ‫تقسیم‬ ‫دسته‬ ‫سه‬ ‫به‬ ‫کدها‬: Transparent:‫به‬ ‫حساس‬ ‫کارهای‬ ‫انجام‬ ‫به‬ ‫مجاز‬Security ‫نیستند‬.‫نمیتوانند‬unsafe code‫کدهای‬ ‫یا‬Security-Critical‫را‬ ‫بزنند‬ ‫صدا‬ Security-Critical:‫دهند‬ ‫انجام‬ ‫کاری‬ ‫هر‬ ‫میتوانند‬.‫داخل‬ ‫از‬ ‫کد‬Transparent‫نیستند‬ ‫شدن‬ ‫زده‬ ‫صدا‬ ‫قابل‬ Safe-Critical:‫دهند‬ ‫انجام‬ ‫کاری‬ ‫هر‬ ‫میتوانند‬..‫های‬ ‫چک‬ ‫به‬ ‫حساس‬ ‫کد‬ ‫زدن‬ ‫صدا‬ ‫از‬ ‫قبل‬ ‫را‬ ‫منظمی‬ ‫امنیتی‬Security ‫میدهد‬ ‫انجام‬.‫کدهای‬ ‫طریق‬ ‫از‬Transparent‫زدن‬ ‫صدا‬ ‫قابل‬
  • 13. UNDERSTANDING CODE ACCESS SECURITY Evidence‫اسمبلی‬ ‫میسازد‬ ‫مشخص‬ ‫است‬ ‫گرفته‬ ‫نشات‬ ‫کجا‬ ‫از‬ ‫فرض‬ ‫پیش‬ ‫مقدار‬SecurityRuleSet ‫با‬ ‫برابر‬Level2‫از‬ ‫ولی‬ ‫است‬ ‫طریق‬ [assembly: SecurityRules(SecurityRuleSet.Level2)] ‫داد‬ ‫تغییر‬ ‫را‬ ‫آن‬ ‫میتوان‬
  • 14. MANAGING PERMISSIONS Permission:‫میتواند‬ ‫کد‬ ‫که‬ ‫دارد‬ ‫عملی‬ ‫به‬ ‫اشاره‬/‫نمیتواند‬ ‫دهد‬ ‫انجام‬ ‫را‬ ‫آن‬ ‫نام‬ ‫فضای‬ ‫درون‬ ‫امر‬ ‫این‬ ‫به‬ ‫مربوط‬ ‫های‬ ‫کالس‬ System.Security.Permissions‫دارند‬ ‫قرار‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫اینکار‬ ‫برای‬AppDomain.CreateDomain‫یک‬ Security Sandbox‫میشود‬ ‫ایجاد‬
  • 15. WORKING WITH ACCESS CONTROL Access Control‫دسترسی‬ ‫مختلف‬ ‫منابع‬ ‫به‬ ‫کسی‬ ‫چه‬ ‫میسازد‬ ‫مشخص‬ ‫دارد‬. ACL‫دارد‬ ‫بخش‬ ‫دو‬: Access Token:‫وقتی‬Login‫یک‬ ‫وی‬ ‫برای‬ ‫سیستم‬ ‫باشد‬ ‫موفق‬ ‫کاربر‬ Access Token‫میکند‬ ‫ایجاد‬.‫هر‬process‫یک‬ ‫کاربر‬ ‫این‬ ‫به‬ ‫مربوط‬ ‫از‬ ‫کپی‬Token‫داشت‬ ‫خواهد‬ ‫را‬.‫این‬Token‫و‬ ‫ها‬ ‫دسترسی‬ ‫حاوی‬ ‫میباشد‬ ‫کاربر‬ ‫انحصاری‬ ‫تشخیصی‬ ‫کد‬ Security Descriptor:‫میباشد‬ ‫آبجکت‬ ‫مالک‬ ‫نمایانگر‬.
  • 16. KEY TERMS  Authentication  Authorization  Code Access Security  Cryptography  Permissions  Public-key Encryption  Secret-key Encryption  Transparency Level 2