440 likes | 602 Views
Authentication Servers سرورهای تشخیص هویت. استاد ابطحی سید وحید رضا موسوی 81174903. مشکلات جدی. دسترسی های غیر مجاز داده های بسیار مهم و حیاتی نیاز به کنترل ورود و خروج پروسس های با قابلیت ایجاد تغییر در منابع سیستم های دارای اهمیت و نیز مشخص کردن میزان دسترسی آنها
E N D
Authentication Serversسرورهای تشخیص هویت استاد ابطحی سید وحید رضا موسوی 81174903
مشکلات جدی • دسترسی های غیر مجاز • داده های بسیار مهم و حیاتی • نیاز به کنترل ورود و خروج پروسس های با قابلیت ایجاد تغییر در منابع سیستم های دارای اهمیت و نیز مشخص کردن میزان دسترسی آنها • تبادلات امن اطلاعات و مشکل استراق سمع اطلاعاتی!
تشخیص هویتAuthentication • ریشه لغت (Authentic) صحیح، معتبر، درست • مفهوم در شاخه امنیت کامپیوتری (Computer Security) • اعتمادسازی در وب (Web Trust) • Authorization (شبیه و در عین حال متفاوت)
خدمتگزاران تشخیص دهنده هویت(Authentication Servers) • خدمتگزارانی هستند که از سیستمهای تشخیص هویت برای کاربران و سایر سیستم ها استفاده میکنند. • کاربران و سایر خدمتگزاران توسط این خدمتگزار شناسایی شده و بلیط های عبور رمزشده دریافت میکنند. • این بلیطها بعدا دوباره میان آنها برای شناسایی هویت ردوبدل میشود. • تشخیص هویت پایه اصلی سه مفهوم کلیدی زیر میباشد: • Authorization (اجازه دادن) • Privacy (خلوت و تنهایی) • Non-Repudiation (انکارناپذیری)
خدمتگزاران تشخیص دهنده هویت (ادامه)(Authentication Servers) • الگوریتم های اساسی: • الگوریتم های تشخیص رمز عبور • Kerberos • الگوریتم های رمزگذاری با کلید عمومی
اجازه دادنAuthorization • تعریف (قسمتی از OS که از منابع رایانه محافظت میکند) • منابع رایانه ای (داده، برنامه ها، افراد و کارایی ها) • رابطه با Authentication • Guest or Anonymous • (Access Control List) Admin Authorized Users • سیستم های توزیع شده و بدون محدودیت (key & tickets) • مثال: Access Control • ATM • استفاده از سیستم بانکی اینترنتی • کنترل از راه دور یک رایانه
کنترل دسترسی(Access Control) • کاربرد محدودیت ورود به یک جا • کنترل ورودی و خروجی • AC درامنیت شبکه شامل: • تشخیص هویت • تشخیص اجازه دسترسی • بازرسی سلسله مراتب دسترسی به یک رکورد (Audit Trail) • ابزار فیزیکی • Encryption, Digital Signatures,… • پیاده سازی سیستم کنترل اجازه دسترسی • Mandatory Access Control • Discretionary Access Control • کنترل دسترسی نقش مدار (Role-Based Access Control) • لیست کنترل دسترسی • XACML (eXtensible Access Control Markup Language)
MAC & DAC • MAC • ابزار سیستم • عدم امکان کنترل کامل اشیاء ساخته شده • محدودیتی مساوی یا بیشتر از محدودیت Admin • در سیستم های امنیتی چند لایه از تلفیق MAC با FLASK به عنوان یک معماری کارا استفاده میشود. • Flux Advanced Security kernel (Flask) • یک معماری امنیتی برای سیستم عامل که دسترسی کارا و امن را به منابع سیستم با رعایت قوانین موجود سبب میشود. • مثال: • NSA's Security-Enhanced Linux (SELinux) • TrustedBSD • DAC • سیستم فایل • امکان دادن دسترسی نامحدود به منابع ساخته شده • ریسک دسترسی بدون اجازه
کنترل دسترسی نقش مدار(Role-Based Access Control) • RBAC متفاوت با MAC و DAC • ایجاد نقش ها و تخصیص آنها • U = کاربر = یک شخص یا یک مامور(Agent) اتوماتیک • R = نقش = کارکرد / عبارتی که سطح اجازه را مشخص میکند. • P = اجازه ها = تایید یک حالت دسترسی به یک منبع. • S = Session = یک کلیت ، حاوی U، R، و P. • UA = مجموعه ای از کارکرد ها و وظایف کاربران • PA = مجموعه ای از اجازه های دسترسی • RH = سلسله مراتب نقش ها • یک کاربر میتواند چندین نقش داشته باشد. • یک نقش میتواند متعلق به چندین کاربر باشد. • یک نقش میتواند اجازه های متعددی داشته باشد. • یک اجازه خاص میتواند به چندین نقش داده شود.
کنترل دسترسی نقش مدار(ادامه)(Role-Based Access Control) • PA=PxR (زیرمجموعه یا تساوی) • UA=UxR (زیرمجموعه یا تساوی) • RH (x>yیعنی x تمام اجازه های y را به ارث برده است) • یک کاربر : • چند Session • چندین مدل اجازه و نقش
لیست کنترل دسترسی(Access Control List) • ACL (یک ساختار داده ای مثل یک جدول) • (ACE) Access Control Entries • ACL در OS های مختلف • OpenBSD/NetBSD:systrace • : SolarisTrustedSolaris • ACL : MAC OS X & Linux • پیچیدگی • تمام و کمال نیست.
روشهای کلی تشخیص هویت • مسایل مربوط به آنچه که کاربر میباشد. (is) • اثر انگشت • DNA • Retinal (شناخت از طریق شبکیه چشم) • مسایل مربوط به آنچه که کاربر دارد. (has) • کارت شناسایی • نشان امنیتی یا نرم افزاری • موبایل • مسایل مربوط به آنچه که کاربر میداند. (knows) • کلمه(Word) یا عبارت (Phrase) عبور • شماره شناسایی شخصی (PIN) • ترکیب (Two Factor)
روشهای تشخیص هویت (ادامه) • Challenge Response Authentication • روشهای پنهان (Cryptographic) • Public Key Cryptography • امضای دیجیتال • Public-Key Encryption
Challenge Response Authentication(تشخیص هویت سوال و جواب) • تکنیک های غیر (No Internet) Cryptographic • Password • Captcha(to tell computers humans apartTuring testpublicautomatedcompletely)
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
Challenge Response Authentication(ادامه) (تشخیص هویت سوال و جواب) • چند مثال دیگر از CRA : • Zero-Knowledge Password Proof (ZKPP) (اثبات دانستن کلمه عبور بدون اشاره به آن، در مواقعی که اثبات کننده نمیخواهد طرف دوم و یا هیچ کس دیگری از محتوی کلمه عبور مطلع شود.) • Key Agreement Systems • SSH (Secure Shell) based on RSA • امکان برقراری ارتباطات رمزگذاری شده در محیط های ناامن میان Host های ناامن
امضای دیجیتال(Digital Signiture) • نمود دیجیتالی • عدم ایجاد اطمینان قطعی • مبتنی بر کلید عمومی • 3 الگوریتم • Key Generation • Signing • Verification • امضای دیجیتال محصول الگوریتم Signing
امضای دیجیتال (ادامه)(Digital Signiture) • علی به حمید نامه ای ارسال میکند ، او بوسیله کلید خصوصی خود و نیز الگوریتم امضا ، امضای خود را که به صورت یک عدد دودویی است به همراه نامه برای حمید ارسال میکند. • حمید نامه را گرفته و به کمک کلید عمومی و الگوریتم تشخیص خود ازصحت امضای علی مطمئن میشود. • علی برای کوتاهتر شدن پیغام و نیز آسانتر شدن پروسه ، بوسیله یک Hashing Algorithm پیغام خود را رمزگذاری میکند.
Directory Servers • خدمتگزارانی که Directory Services را ارائه میدهند.
Directory Services • نرم افزار یا مجموعه ای از نرم افزارها • ذخیره کننده داده ها • شبکه های کامیوتری • کاربران • به اشتراک گذاشته شده ها • مدیریت دسترسی به اشتراک گذاشته شده ها • واسط میان کاربران و به اشتراک گذارده شده ها • امکان شناسایی هویت منابع و ارتباط آنها و مدیریت آنه به صورتی امن
Directory Services(ادامه) • امکان دسترسی توزیع شده به بسیاری از اشیاء و داده های ذخیره شده با ویژگی ها و صفات مختلف • تبادل این اطلاعات روی سایر خدمتگذاران ارائه دهنده Directory Services • نگاشتن آدرس شبکه ای منابع به مکان فیزیکی و اسم آنان • منابع شیء هستند. • اطلاعات داخل منابع صفات آنان است. • دسترسی به این صفات امن و نیازمند Authorization و Authentication است.
Directory Services(ادامه) • تعریف namespace برای شبکه • در LDAP به (Distinguished Names)DN میگوییم.
LDAP(Lightweight Directory Access Protocol) • یک استاندارد شبکه ای برای اصلاح و نظارت بر Directory Services • پروتکلی برای به روز کردن و جستجو کردن پوشه ها روی TCP/IP
(ادامه)LDAP(Lightweight Directory Access Protocol) • اعمال: • Bind : تشخیص هویت و مشخص کردن ورژن پروتکل LDAP • Search: جستجو و یا بازیابی داده های پوشه ها • Compare: امتحان کردن اینکه یک ورودی نامگذاری شده مقدار موردنظر را دارد. • Add: اضافه کردن یک ورودی جدید • Delete: پاک کردن یک ورودی
(ادامه)LDAP(Lightweight Directory Access Protocol) • ادامه اعمال: • Modify: اصلاح یک ورودی • Modify DN: پاک کردن یا تغییر نام دادن یک ورودی • Start TLS: محافظت کردن از ارتباط به کمک Transport Layer Security (TLS) • Abandon: رد کردن درخواست • Extended Operation: عملیاتی برای تعریف سایر عملیات • Unbind: بستن ارتباط، برعکس bind نیست.
(ادامه)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: +1 555 6789 telephoneNumber: +1 555 1234 mail: john@example.com objectClass: inetOrgPerson objectClass: organizationalPerson objectClass: person objectClass: top
(ادامه)LDAP(Lightweight Directory Access Protocol) • C:/program files/putty/Putty.exe • Mousavi@ce.sharif.edu
(ادامه)LDAP(Lightweight Directory Access Protocol) • Ldapp + 2 tabs
(ادامه)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
(ادامه)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
(ادامه)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'
(ادامه)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
(ادامه)LDAP(Lightweight Directory Access Protocol) shadowMax: 99999 shadowWarning: 7 loginShell: /bin/bash homeDirectory: /home/bs81/mousavi gecos: Agh Vahid sambaLogonTime: 0 sambaLogoffTime: 2147483647 sambaKickoffTime: 2147483647 sambaPwdMustChange: 2147483647 sambaSID: S-1-5-21-2004343368-2831367967-3069035597-2400 gidNumber: 1006 sambaPwdCanChange: 1122807645
(ادامه)LDAP(Lightweight Directory Access Protocol) sambaPasswordHistory: 00000000000000000000000000000000000000000000000000000000 00000000 sambaPwdLastSet: 1122807645 sambaAcctFlags: [U ] sambaLMPassword: 5E8EEAF5F54658CCAAD3B435B51404EE sambaNTPassword: 40AA64594587A99EA91519B1A477F618 userPassword:: e2NyeXB0fSQxJHh1eGJ5aS42JFd5N2VxSlU4bEVvOWx4aHRHUWNNTjE= displayName: 81174903 - Mousavi.Vahid Reza uidNumber: 81174903
(ادامه)LDAP(Lightweight Directory Access Protocol) [mousavi@shell ~]$ ldapadd -x -n -W -f add.ldif Enter LDAP Password: ******* mousavi@shell ~]$ !adding new entry "uid=mousavi,ou=People,dc=ce,dc=sharif,dc=edu"
(ادامه)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: modme@example.com - add: title title: Grand Poobah - add: jpegPhoto jpegPhoto:< file:///tmp/modme.jpeg - delete: description -
(ادامه)LDAP(Lightweight Directory Access Protocol) • Ldapwhoami • مشخص کردن کسی که با آن Bind شده ایم. مشخصات من: ldapwhoami -x –D 'uid=mousavi,ou=people,dc=ce,dc=sharif,dc=edu' –W مشخصات به طور ناشناس: Ldapwhoami –x=Anonymous
Kerberos Protocol • مبتنی بر 2 خدمتگزار: • Ticket-Granting Server (TGS) • Authentication Server (AS)
Kerberos Protocol(ادامه) • شیوه عملکرد: • کاربر username و password را روی client وارد میکند. • Client یک الگو ریتم hash یک طرفه را روی password اجرا میکند و از این به بعد حاصل این عمل به عنوان secret key مربوط به client در نظر گرفته میشود. • Client یک درخواست (بدون ارسال password ) را بهAS (خدمتگزار تشخیص هویت) ارسال میکند.
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 keyTGS ، client نمیتواند که پیغام 2 را رمزگشایی کند. حالا client میتواند که با TGS ارتباط بر قرار کند.
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 رمزگذاری شده است.
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.
Kerberos Protocol(ادامه) • Client پیغام را بوسیله کلید به اشتراک گذاشته شده اش به سرور رمزگشایی کرده و با توجه به time stamp خود آن را چک میکند و اگر درست بود به سرور اعتماد کرده و از آن درخواست میکند. • سرور به درخواست های client جواب میدهد.
منابع • http://www.microsoft.com • http://www.wikipedia.com • http://www.cs.fsu.edu • http://www.redhat.com • http://www.bind9.net/ldap/ • Linux Os Manual (man command)