Authentication Servers سرورهای تشخیص هویت
Download
Report
Transcript Authentication Servers سرورهای تشخیص هویت
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
لیست کنترل دسترسی
) eXtensible Access Control Markup Language( XACML
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اجازه ها = تایید یک حالت دسترسی به یک منبع.
= Session = Sیک کلیت ،حاوی ،R ،Uو .P
= UAمجموعه ای از کارکرد ها و وظایف کاربران
= PAمجموعه ای از اجازه های دسترسی
= RHسلسله مراتب نقش ها
یک کاربر میتواند چندین نقش داشته باشد.
یک نقش میتواند متعلق به چندین کاربر باشد.
یک نقش میتواند اجازه های متعددی داشته باشد.
یک اجازه خاص میتواند به چندین نقش داده شود.
کنترل دسترسی نقش مدار
(ادامه)
()Role-Based Access Control
( PA=PxR زیرمجموعه یا تساوی)
( UA=UxR زیرمجموعه یا تساوی)
y > x( RH یعنی xتمام اجازه های yرا به ارث برده
است)
یک کاربر :
چند Session
چندین مدل اجازه و نقش
لیست کنترل دسترسی
)Access Control List(
) (یک ساختار داده ای مثل یک جدولACL
(ACE) Access Control Entries
های مختلفOS درACL
systrace : OpenBSD/NetBSD
TrustedSolaris : Solaris
ACL : MAC OS X & Linux
پیچیدگی
. تمام و کمال نیست
روشهای کلی تشخیص هویت
مسایل مربوط به آنچه که کاربر میباشد)is( .
مسایل مربوط به آنچه که کاربر دارد)has( .
کارت شناسایی
نشان امنیتی یا نرم افزاری
موبایل
مسایل مربوط به آنچه که کاربر میداند)knows( .
اثر انگشت
DNA
( Retinalشناخت از طریق شبکیه چشم)
کلمه( )Wordیا عبارت ( )Phraseعبور
شماره شناسایی شخصی ()PIN
ترکیب ()Two Factor
)(ادامه
روشهای تشخیص هویت
Challenge Response Authentication
)Cryptographic( روشهای پنهان
Public Key Cryptography •
امضای دیجیتال
Public-Key Encryption
Challenge Response
Authentication
)(تشخیص هویت سوال و جواب
(No Internet) Cryptographic تکنیک های غیر
Password
)completely automated public Turing test to tell computers humans apart( Captcha
Challenge Response
) (ادامهAuthentication
)(تشخیص هویت سوال و جواب
Cryptographic تکنیک های
خطر
)Man-in-the-middle( Eavesdropping •
Dictionary Attack •
Brute-force Attack •
) طرفه (بدون ارسال واضح2 تشخیص هویت
فرستادن یک داده تصادفی رمز شده بوسیله کلمه عبور و گرفتن پاسخ رمز شده
مربوط به آن
N+1 ← عدد صحیحN عدد صحیح: Kerberos •
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 تعریف
DN (Distinguished Names) بهLDAP در
.میگوییم
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
)TLS( Layer Security
: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: [email protected]
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: person
objectClass: top
LDAP)(ادامه
(Lightweight Directory Access Protocol)
C:/program files/putty/Putty.exe
[email protected]
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
LDIF فرمت خروجی مطابق با: LLL
: شودBind با کدام موجودیت: -D
-D 'uid=mousavi,ou=people,dc=ce,dc=sharif,dc=edu‘
وارد کردن رمز عبور: -W
:) را مشخص میکندBase( پایه: -b
-b 'ou=groups,dc=ce,dc=sharif,dc=edu
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-28313679673069035597-2400
gidNumber: 1006
sambaPwdCanChange: 1122807645
LDAP)(ادامه
(Lightweight Directory Access Protocol)
sambaPasswordHistory:
0000000000000000000000000000000000000000000000000
0000000
00000000
sambaPwdLastSet: 1122807645
sambaAcctFlags: [U
]
sambaLMPassword:
5E8EEAF5F54658CCAAD3B435B51404EE
sambaNTPassword: 40AA64594587A99EA91519B1A477F618
userPassword::
e2NyeXB0fSQxJHh1eGJ5aS42JFd5N2VxSlU4bEVvOWx4aH
RHUWNNTjE=
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: [email protected]
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 مبتنی بر
)TGS(Ticket-Granting Server
)AS( Authentication Server
Kerberos Protocol
(ادامه)
شیوه عملکرد:
.1کاربر usernameو passwordرا روی clientوارد میکند.
Client .2یک الگو ریتم hashیک طرفه را روی passwordاجرا میکند و از این به
بعد حاصل این عمل به عنوان secret keyمربوط به clientدر نظر گرفته میشود.
Client .3یک درخواست (بدون ارسال ) passwordرا به ( ASخدمتگزار تشخیص
هویت) ارسال میکند.
Kerberos Protocol
.4
ASچک میکند که آیا Clientدر DBوجود دارد یا نه ،اگر وجود داشت این 2پیغام
را میفرستد:
.1
.2
.5
(ادامه)
پیغام حاوی Client/TGS Session Keyکه کاربر بوسیله Secret Keyرمزگذاری
شده.
پیغام حاوی ( Ticket-Granting Ticketحاوی ،Network Address ،Client ID
)Client/TGS Session Key ،Validity Periodکاربرکه بوسیله Secret Key
موجود در TGSرمزگذاری شده.
پس از دریافت این client ،2پیغام اول را برای بدست آوردن Client/TGS
session IDرمزگشایی میکند که برای ارتباط با TGSبه کار میرود .البته به دلیل
نداشتن client ، TGS secret keyنمیتواند که پیغام 2را رمزگشایی کند .حاال
clientمیتواند که با TGSارتباط بر قرار کند.
Kerberos Protocol
.6
وقتی که clientیک سرویس را درخواست میکند 2پیغام را به TGSمیفرستد:
.3
.4
.7
(ادامه)
ترکیبی از Ticket-Granting Ticketدر پیغام دوم و شناسه درخواست مورد نظر.
تشخیص هویت دهنده (ترکیبی از client IDو شناسه های زمانی ) که بوسیله Client/TGS
session Keyرمزگذاری شده است.
پس از دریافت این 2پیام TGSپیغام 3را بوسیله client/TGS session key
رمزگشایی میکند و این 2پیغام را به clientمیفرستد:
.5
.6
( Client-to-server ticketمتشکل از شناسه ،clientآدرس آن و )validity periodراکه
بوسیله secret keyسرویس مورد نظر رمزگذاری شده .
Client/Server session keyکه بوسیله Client/TGS session keyرمزگذاری شده
است.
Kerberos Protocol
(ادامه)
پس از این clientاین امکان را دارد که خود را به )SS( Service Serverبوسیله 2
پیغام معرفی کند:
.8
.7
.8
Client-to-server ticketکه بوسیله Secret Keyمربوط به خدمت مورد نظر رمزگذاری
شده است.
یک تشخیص هویت دهنده جدید که بوسیله client/server session keyرمزگذاری شده
است.
سرور ticketمورد نظر را با استفاده از secret keyخودش رمزگشایی کرده و یک
پیغام مبنی بر درست بودن آن ارسال میکند:
.9
.9
رمزشده time stampموجود در تشخیص دهنده اخیر بعالوه یک توسط client/server
session key.
Kerberos Protocol
.10
.11
(ادامه)
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)