Download presentation
Presentation is loading. Please wait.
1
Authentication Servers سرورهای تشخیص هویت
استاد ابطحی سید وحید رضا موسوی
2
مشکلات جدی دسترسی های غیر مجاز داده های بسیار مهم و حیاتی
نیاز به کنترل ورود و خروج پروسس های با قابلیت ایجاد تغییر در منابع سیستم های دارای اهمیت و نیز مشخص کردن میزان دسترسی آنها تبادلات امن اطلاعات و مشکل استراق سمع اطلاعاتی!
3
تشخیص هویت Authentication
مفهوم در شاخه امنیت کامپیوتری (Computer Security) اعتمادسازی در وب (Web Trust) Authorization (شبیه و در عین حال متفاوت)
4
خدمتگزاران تشخیص دهنده هویت (Authentication Servers)
خدمتگزارانی هستند که از سیستمهای تشخیص هویت برای کاربران و سایر سیستم ها استفاده میکنند. کاربران و سایر خدمتگزاران توسط این خدمتگزار شناسایی شده و بلیط های عبور رمزشده دریافت میکنند. این بلیطها بعدا دوباره میان آنها برای شناسایی هویت ردوبدل میشود. تشخیص هویت پایه اصلی سه مفهوم کلیدی زیر میباشد: Authorization (اجازه دادن) Privacy (خلوت و تنهایی) Non-Repudiation (انکارناپذیری)
5
خدمتگزاران تشخیص دهنده هویت (ادامه) (Authentication Servers)
الگوریتم های اساسی: الگوریتم های تشخیص رمز عبور Kerberos الگوریتم های رمزگذاری با کلید عمومی
6
اجازه دادن Authorization
تعریف (قسمتی از OS که از منابع رایانه محافظت میکند) منابع رایانه ای (داده، برنامه ها، افراد و کارایی ها) رابطه با Authentication Guest or Anonymous (Access Control List) Admin Authorized Users سیستم های توزیع شده و بدون محدودیت (key & tickets) مثال: Access Control ATM استفاده از سیستم بانکی اینترنتی کنترل از راه دور یک رایانه
7
کنترل دسترسی (Access Control)
کاربرد محدودیت ورود به یک جا کنترل ورودی و خروجی AC درامنیت شبکه شامل: تشخیص هویت تشخیص اجازه دسترسی بازرسی سلسله مراتب دسترسی به یک رکورد (Audit Trail) ابزار فیزیکی Encryption, Digital Signatures,… پیاده سازی سیستم کنترل اجازه دسترسی Mandatory Access Control Discretionary Access Control کنترل دسترسی نقش مدار (Role-Based Access Control) لیست کنترل دسترسی XACML (eXtensible Access Control Markup Language )
8
MAC & DAC MAC DAC ابزار سیستم عدم امکان کنترل کامل اشیاء ساخته شده
محدودیتی مساوی یا بیشتر از محدودیت Admin در سیستم های امنیتی چند لایه از تلفیق MAC با FLASK به عنوان یک معماری کارا استفاده میشود. Flux Advanced Security kernel (Flask) یک معماری امنیتی برای سیستم عامل که دسترسی کارا و امن را به منابع سیستم با رعایت قوانین موجود سبب میشود. مثال: NSA's Security-Enhanced Linux (SELinux) TrustedBSD DAC سیستم فایل امکان دادن دسترسی نامحدود به منابع ساخته شده ریسک دسترسی بدون اجازه
9
کنترل دسترسی نقش مدار (Role-Based Access Control)
RBAC متفاوت با MAC و DAC ایجاد نقش ها و تخصیص آنها U = کاربر = یک شخص یا یک مامور(Agent) اتوماتیک R = نقش = کارکرد / عبارتی که سطح اجازه را مشخص میکند. P = اجازه ها = تایید یک حالت دسترسی به یک منبع. S = Session = یک کلیت ، حاوی U، R، و P. UA = مجموعه ای از کارکرد ها و وظایف کاربران PA = مجموعه ای از اجازه های دسترسی RH = سلسله مراتب نقش ها یک کاربر میتواند چندین نقش داشته باشد. یک نقش میتواند متعلق به چندین کاربر باشد. یک نقش میتواند اجازه های متعددی داشته باشد. یک اجازه خاص میتواند به چندین نقش داده شود.
10
کنترل دسترسی نقش مدار(ادامه) (Role-Based Access Control)
PA=PxR (زیرمجموعه یا تساوی) UA=UxR (زیرمجموعه یا تساوی) RH (x > y یعنی x تمام اجازه های y را به ارث برده است) یک کاربر : چند Session چندین مدل اجازه و نقش
11
لیست کنترل دسترسی (Access Control List)
ACL (یک ساختار داده ای مثل یک جدول) (ACE) Access Control Entries ACL در OS های مختلف OpenBSD/NetBSD : systrace : Solaris TrustedSolaris ACL : MAC OS X & Linux پیچیدگی تمام و کمال نیست.
12
روشهای کلی تشخیص هویت مسایل مربوط به آنچه که کاربر میباشد. (is)
اثر انگشت DNA Retinal (شناخت از طریق شبکیه چشم) مسایل مربوط به آنچه که کاربر دارد. (has) کارت شناسایی نشان امنیتی یا نرم افزاری موبایل مسایل مربوط به آنچه که کاربر میداند. (knows) کلمه(Word) یا عبارت (Phrase) عبور شماره شناسایی شخصی (PIN) ترکیب (Two Factor)
13
روشهای تشخیص هویت (ادامه)
Challenge Response Authentication روشهای پنهان (Cryptographic) Public Key Cryptography امضای دیجیتال Public-Key Encryption
14
Challenge Response Authentication (تشخیص هویت سوال و جواب)
تکنیک های غیر (No Internet) Cryptographic Password Captcha (to tell computers humans apart Turing test public automated completely)
15
Challenge Response Authentication (ادامه) (تشخیص هویت سوال و جواب)
تکنیک های Cryptographic خطر Eavesdropping (Man-in-the-middle) Dictionary Attack Brute-force Attack تشخیص هویت 2 طرفه (بدون ارسال واضح) فرستادن یک داده تصادفی رمز شده بوسیله کلمه عبور و گرفتن پاسخ رمز شده مربوط به آن Kerberos : عدد صحیح N ← عدد صحیح N+1 Hash Based CRA Hashed Storage Of Passwords CRA
16
Challenge Response Authentication (ادامه) (تشخیص هویت سوال و جواب)
چند مثال دیگر از CRA : Zero-Knowledge Password Proof (ZKPP) (اثبات دانستن کلمه عبور بدون اشاره به آن، در مواقعی که اثبات کننده نمیخواهد طرف دوم و یا هیچ کس دیگری از محتوی کلمه عبور مطلع شود.) Key Agreement Systems SSH (Secure Shell) based on RSA امکان برقراری ارتباطات رمزگذاری شده در محیط های ناامن میان Host های ناامن
17
امضای دیجیتال (Digital Signiture)
نمود دیجیتالی عدم ایجاد اطمینان قطعی مبتنی بر کلید عمومی 3 الگوریتم Key Generation Signing Verification امضای دیجیتال محصول الگوریتم Signing
18
امضای دیجیتال (ادامه) (Digital Signiture)
علی به حمید نامه ای ارسال میکند ، او بوسیله کلید خصوصی خود و نیز الگوریتم امضا ، امضای خود را که به صورت یک عدد دودویی است به همراه نامه برای حمید ارسال میکند. حمید نامه را گرفته و به کمک کلید عمومی و الگوریتم تشخیص خود ازصحت امضای علی مطمئن میشود. علی برای کوتاهتر شدن پیغام و نیز آسانتر شدن پروسه ، بوسیله یک Hashing Algorithm پیغام خود را رمزگذاری میکند.
19
Directory Servers خدمتگزارانی که Directory Services را ارائه میدهند.
20
Directory Services نرم افزار یا مجموعه ای از نرم افزارها
ذخیره کننده داده ها شبکه های کامیوتری کاربران به اشتراک گذاشته شده ها مدیریت دسترسی به اشتراک گذاشته شده ها واسط میان کاربران و به اشتراک گذارده شده ها امکان شناسایی هویت منابع و ارتباط آنها و مدیریت آنه به صورتی امن
21
Directory Services(ادامه)
امکان دسترسی توزیع شده به بسیاری از اشیاء و داده های ذخیره شده با ویژگی ها و صفات مختلف تبادل این اطلاعات روی سایر خدمتگذاران ارائه دهنده Directory Services نگاشتن آدرس شبکه ای منابع به مکان فیزیکی و اسم آنان منابع شیء هستند. اطلاعات داخل منابع صفات آنان است. دسترسی به این صفات امن و نیازمند Authorization و Authentication است.
22
Directory Services(ادامه)
تعریف namespace برای شبکه در LDAP به (Distinguished Names) DN میگوییم.
23
LDAP (Lightweight Directory Access Protocol)
یک استاندارد شبکه ای برای اصلاح و نظارت بر Directory Services پروتکلی برای به روز کردن و جستجو کردن پوشه ها روی TCP/IP
24
(ادامه)LDAP (Lightweight Directory Access Protocol)
اعمال: Bind : تشخیص هویت و مشخص کردن ورژن پروتکل LDAP Search: جستجو و یا بازیابی داده های پوشه ها Compare: امتحان کردن اینکه یک ورودی نامگذاری شده مقدار موردنظر را دارد. Add: اضافه کردن یک ورودی جدید Delete: پاک کردن یک ورودی
25
(ادامه)LDAP (Lightweight Directory Access Protocol)
ادامه اعمال: Modify: اصلاح یک ورودی Modify DN: پاک کردن یا تغییر نام دادن یک ورودی Start TLS: محافظت کردن از ارتباط به کمک Transport Layer Security (TLS) Abandon: رد کردن درخواست Extended Operation: عملیاتی برای تعریف سایر عملیات Unbind: بستن ارتباط، برعکس bind نیست.
26
(ادامه)LDAP (Lightweight Directory Access Protocol)
Directory : درختی از ورودی های Directory ورودی (Entry) : مجموعه ای از صفات هر صفت(Attribute) یک اسم دارد. هر ورودی یک اسم دارد : DN (Distinguished Name) شکل یک ورودی در فرمت LDIF : dn: cn=John Doe,ou=people,dc=example,dc=com cn: John Doe givenName: John sn: Doe telephoneNumber: telephoneNumber: mail: objectClass: inetOrgPerson objectClass: organizationalPerson objectClass: person objectClass: top
27
(ادامه)LDAP (Lightweight Directory Access Protocol)
C:/program files/putty/Putty.exe
28
(ادامه)LDAP (Lightweight Directory Access Protocol)
Ldapp + 2 tabs
29
(ادامه)LDAP (Lightweight Directory Access Protocol)
cn=common name dn:uid=mousavi,ou=people,dc=ce,dc=sharif,dc=edu Ldapp tools Ldappsearch Ldappadd Ldappmodify Ldappdelete ldappasswd Ldapwhoami Ldapcompare
30
(ادامه)LDAP (Lightweight Directory Access Protocol)
-n : شبیه سازی دستورات -x : تشخیص هویت ساده LLL : فرمت خروجی مطابق با LDIF -D : با کدام موجودیت Bind شود: 'uid=mousavi,ou=people,dc=ce,dc=sharif,dc=edu‘ -D -W : وارد کردن رمز عبور -b : پایه(Base) را مشخص میکند: 'ou=groups,dc=ce,dc=sharif,dc=edu -b
31
(ادامه)LDAP (Lightweight Directory Access Protocol)
Ldapserach برخی از آرگومان ها DN Scope-base (-b) Filter ldapsearch -xLLL -b 'ou=groups,dc=ce,dc=sharif,dc=edu' 'gidNumber‘ ldapsearch -xLLL -b 'ou=people,dc=ce,dc=sharif,dc=edu' 'gidNumber=1006‘ ldapsearch -xLLL -b 'ou=people,dc=ce,dc=sharif,dc=edu' 'gidNumber=1006' 'uidNumber'
32
(ادامه)LDAP (Lightweight Directory Access Protocol)
Lpadd ldapadd -x -D 'uid=mousavi,ou=people,dc=ce,dc=sharif,dc=edu' -W -f a.ldif LDIF FILE (add.ldif): dn: uid=mousavi,ou=People,dc=ce,dc=sharif,dc=edu uid: mousavi cn: Agh Vahid objectClass: account objectClass: posixAccount objectClass: top objectClass: shadowAccount objectClass: sambaSamAccount shadowLastChange: 12347
33
(ادامه)LDAP (Lightweight Directory Access Protocol)
shadowMax: 99999 shadowWarning: 7 loginShell: /bin/bash homeDirectory: /home/bs81/mousavi gecos: Agh Vahid sambaLogonTime: 0 sambaLogoffTime: sambaKickoffTime: sambaPwdMustChange: sambaSID: S gidNumber: 1006 sambaPwdCanChange:
34
(ادامه)LDAP (Lightweight Directory Access Protocol)
sambaPasswordHistory: sambaPwdLastSet: sambaAcctFlags: [U ] sambaLMPassword: 5E8EEAF5F54658CCAAD3B435B51404EE sambaNTPassword: 40AA A99EA91519B1A477F618 userPassword:: e2NyeXB0fSQxJHh1eGJ5aS42JFd5N2VxSlU4bEVvOWx4aHRHUWNNTjE= displayName: Mousavi.Vahid Reza uidNumber:
35
(ادامه)LDAP (Lightweight Directory Access Protocol)
~]$ ldapadd -x -n -W -f add.ldif Enter LDAP Password: ******* ~]$ !adding new entry "uid=mousavi,ou=People,dc=ce,dc=sharif,dc=edu"
36
(ادامه)LDAP (Lightweight Directory Access Protocol)
Ldapmodify ldapmodify -x -D ‘ ….' -W -f modify.ldif LDIF FILE (modify.ldif) : dn: cn=Modify Me,dc=example,dc=com changetype: modify replace: mail mail: - add: title title: Grand Poobah add: jpegPhoto jpegPhoto:< file:///tmp/modme.jpeg delete: description
37
(ادامه)LDAP (Lightweight Directory Access Protocol)
Ldapwhoami مشخص کردن کسی که با آن Bind شده ایم. مشخصات من: ldapwhoami -x –D 'uid=mousavi,ou=people,dc=ce,dc=sharif,dc=edu' –W مشخصات به طور ناشناس: Ldapwhoami –x=Anonymous
38
Kerberos Protocol مبتنی بر 2 خدمتگزار: Ticket-Granting Server (TGS)
Authentication Server (AS)
39
Kerberos Protocol(ادامه)
شیوه عملکرد: کاربر username و password را روی client وارد میکند. Client یک الگو ریتم hash یک طرفه را روی password اجرا میکند و از این به بعد حاصل این عمل به عنوان secret key مربوط به client در نظر گرفته میشود. Client یک درخواست (بدون ارسال password ) را بهAS (خدمتگزار تشخیص هویت) ارسال میکند.
40
Kerberos Protocol(ادامه)
AS چک میکند که آیا Client در DB وجود دارد یا نه، اگر وجود داشت این 2 پیغام را میفرستد: پیغام حاوی Client/TGS Session Key که کاربر بوسیله Secret Key رمزگذاری شده. پیغام حاوی Ticket-Granting Ticket (حاوی Client ID، Network Address، Validity Period، Client/TGS Session Key) کاربرکه بوسیله Secret Key موجود در TGS رمزگذاری شده. پس از دریافت این 2، client پیغام اول را برای بدست آوردن Client/TGS session ID رمزگشایی میکند که برای ارتباط با TGS به کار میرود. البته به دلیل نداشتن secret key TGS ، client نمیتواند که پیغام 2 را رمزگشایی کند. حالا client میتواند که با TGS ارتباط بر قرار کند.
41
Kerberos Protocol(ادامه)
وقتی که client یک سرویس را درخواست میکند 2 پیغام را به TGS میفرستد: ترکیبی از Ticket-Granting Ticketدر پیغام دوم و شناسه درخواست مورد نظر. تشخیص هویت دهنده (ترکیبی از client ID و شناسه های زمانی ) که بوسیله Client/TGS session Key رمزگذاری شده است. پس از دریافت این 2 پیام TGS پیغام 3 را بوسیله client/TGS session key رمزگشایی میکند و این 2 پیغام را به client میفرستد: Client-to-server ticket (متشکل از شناسه client، آدرس آن و validity period) راکه بوسیله secret key سرویس مورد نظر رمزگذاری شده . Client/Server session key که بوسیله Client/TGS session key رمزگذاری شده است.
42
Kerberos Protocol(ادامه)
پس از این client این امکان را دارد که خود را به Service Server (SS) بوسیله 2 پیغام معرفی کند: Client-to-server ticket که بوسیله Secret Key مربوط به خدمت مورد نظر رمزگذاری شده است. یک تشخیص هویت دهنده جدید که بوسیله client/server session key رمزگذاری شده است. سرور ticket مورد نظر را با استفاده از secret key خودش رمزگشایی کرده و یک پیغام مبنی بر درست بودن آن ارسال میکند: رمزشده time stamp موجود در تشخیص دهنده اخیر بعلاوه یک توسط client/server session key.
43
Kerberos Protocol(ادامه)
Client پیغام را بوسیله کلید به اشتراک گذاشته شده اش به سرور رمزگشایی کرده و با توجه به time stamp خود آن را چک میکند و اگر درست بود به سرور اعتماد کرده و از آن درخواست میکند. سرور به درخواست های client جواب میدهد.
44
منابع http://www.microsoft.com http://www.wikipedia.com
Linux Os Manual (man command)
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.