Đồ án môn xây dựng các ứng dụng phân tán cơ chế đăng nhập một lần

26 971 20
Đồ án môn xây dựng các ứng dụng phân tán cơ chế đăng nhập một lần

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Đồ án môn xây dựng các ứng dụng phân tán cơ chế đăng nhập một lần

1 I HC BÁCH KHOA HÀ NI VIN CÔNG NGH THÔNG TIN VÀ TRUYN THÔNG ĐỒ ÁN MÔN HỌC XÂY DỰNG CÁC ỨNG DỤNG PHÂN TÁN CHẾ ĐĂNG NHẬP MỘT LẦN - SINGLE SIGN ON Sinh viên thc hin : Phùng Vũ Nhật Duy Lp Truyn Thông Mng  K53 ng dn : PSG.TS Nguyễn Linh Giang HÀ NI 11 - 2012 2 MỤC LỤC I. sở lý thuyết 3 1. chế đăng nhập một lần - Single Sign On 3 1.1. Khái niệm 3 1.2. Lợi ích 4 1.3. Các mô hình Single Sign On 4 2. Xác thực Kerberos 5 2.1. Khái niệm 5 2.2. Cách hoạt động 7 II. Xây dựng thử nghiệm Kerberos 12 1. Môi trƣờng Windows 12 2. Môi trƣờng Unix/Linux 16 III. Kết luận 25 TÀI LIỆU THAM KHẢO 26 3 I. sở lý thuyết 1. chế đăng nhập một lần - Single Sign On 1.1. Khái niệm  p mt ln (Single Sign On - SSO)  kim soát truy cp, i dùng mun truy cp vào nhiu dch v, thay vì php vi s  dch v, ngi dùng s ch cp mt ln duy nht.   vi    ch i dùng  4 1.2. Lợi ích Vi s tin dng c ng nhp mt ln các li ích sau:  Tránh vi nhiu dch v.  Tit king thi gim chi phí.      1.3. Các mô hình Single Sign On a. Mã đăng nhập một lần p mt ln (One-time password token  OTP token) là mng thc mà i mi li dùng s c cp mt password mi. Np truyn thi dùng ch mt password c nh và rt d tr thành nn nhân ca tn công nghe lén, thì v giá tr mt ln và s không tn ti lâu. m duy nht c password rt phc tp và th gây phin phc khi i dùng thc hip. b. Mô hình SAML SAML (Security Assertion Markup Language) là gii pháp da trên ngôn ng XML (eXtensible Markup Language) cho vii thông tin xác thc gia nhà cung cp dch v và doanh nghip. Khi i dùng gi mt dch v hoc tài nguyên, nhà cung cp xác thc s cp chng thi dùng. Sau p dch v s da vào thông tin chng th cung cp quyn truy cp dch v hay tài i dùng. c. Smart card Mô hình Smart card (Th thông minh) s dng các thông tin chng thc cha trong th  xác thc  s dng các loi th này cn phi các thit b chuyên dng. Th bo him y t ti Pháp 5 d. Kerberos Kerberos là mt giao thc chng thc mc phát trin trong d án Athena ca hc vin công ngh Massachusetts (MIT). Tên ca giao thc ly t tên cu Cerberus canh gác ca ngc trong thn thoi Hy Lp. Nó m bo tính toàn vn và tính mt cho thông tin truy dng mã hoá bí m Mô hình này hin th 5 và th tring Windows  n lý thuyt chi tit v mô hình này. 2. Xác thực Kerberos 2.1. Khái niệm Kerberos là mt giao thc m xác thc trong các mng máy tính hong trên nhng ng truyc công khai t  chng thc mnh cho các ng dng mng phân tán; nó cho phép các thc th truyn thông trong mng chng thc ln nhau mà vm bo an toàn. Mc tiêu khi thit k giao thc này là nhm vào mô hình client/m bo chng thc cho c 2 chiu. Các h u hành Windows 2000, Windows XP và Windows Server 2003 và sau này s dng mt phiên b xác thc. H  dng Kerberos trong các phiên bn Clients và Server ca mình. 6 Một số thuật ngữ chính: a. Service Server (SS): Máy chủ dịch vụ (Mail server, File server, Application server, …) b. Realm, Principal, Instance Principal: bi dùng, máy tính hay dch v c cung cp dch v bc gi là Kerberos principal. Instance: (thc th) c s dng bi các principal quyn qun tr Realm: tên min chng thc Cu trúc chung ca mt principal ca Kerberos là username/instance@Realm VD: Duy/admin@TTMK53.COM là mt principal c instance và TTMK53.COM là realm. c. Key Distribution Center (KDC) Kerberos không xây dng các giao thc chng thc phc tp cho mi máy ch mà hong da trên mt máy ch chng thc tp trung KDC (Key Distribution Center). i khóa, cung cp khóa (vé) cho vic chng thi dùng và bo mt truyn thông bi khoá phiên trong vé. KDC gm 3 phn:  Máy ch chng thc AS (Authentication Server) bit khoá mt ca tt c  trên ms d liu tp trung.  Máy ch cp khoá TGS (Ticket Granting Server) cung cp vé dch v i dùng truy nhp vào các máy ch trên mng.   d liu (Database) ca nó d. Authentication Server (AS) Khi 1 user (client) mun tham gia vào mt realm ca Kerberos thì thay vì user phi xác thc vi AS. Khi nhn yêu cu tham gia h thng Kerberos ca user, AS kim tra nhân dnh ca ngi yêu cu nm trong c s d liu ca mình không. Nu thì AS gi 2 gói tin sau ti ngi s dng:  Gói tin A: "Khóa phiên TGS/client" c mt mã hóa vi khóa bí mt ca ni s dng.  Gói tin B: Ticket-Granting-Ticket (TGT) e. Ticket-Granting-Ticket (TGT): c cp bi AS, bao gm ID máy client, a ch mng ca client, thi hn cc mã hóa vi khóa bí mt ca TGS. 7 f. Ticket Granting Server (TGS) TGS là b phn nhn vé chp thun TGT t user.TGS nhim v kim tra các vé TGT giá tr không bng cách kic mã hóa bi key vi key ca TGT server Kerberos không.Nu i cho user vé dch v mà user mun s dng. g. Ticket c cp bi TGS và máy ch ng dng, cung cp s chng thc cho máy ch ng dng hoc tài nguyên. Mt vé Kerberos là mt cu trúc d lic mã hóa do KDC t share mt khóa  ca 1 phiên duy nht. Vé to ra 2 mn danh tính ci tham gia và khi to mt khóa ngn h 2 bên th giao tip an toàn (gi là khóa phiên). ng chính mà mi vé cu là:  Yêu cu tên ca principal  Tên dch v ca principal  Khi nào thì vé hiu lc, khi nào vé ht hiu lc (Timestamp, Lifetime)  Danh sách IP mà vé th c dùng t  Mt c to b m bo rng nhi không khóa không m  chnh sa nó lên honh danh ca client principal . Bi vì Kerberos ch xác thc 1 lp thì bt k ai ngu th tham gia vào h thng Kerberos. Vì vy, vé trong Kerberos thi gian tn ti ngn, khong t 10-24h . u này thun tip 1 ln trong ngày làm vic ca user, hn ch vic tn công ly mt d liu quan trng. h. Session Key (SK): khóa phiên, đƣợc sử dụng cho 1 phiên giao dịch giữa client và server. i. Ticket Cache: Còn đƣợc gọi là Credential Cache, chứa tất cả các khóa (vé) của Kerberos. 2.2. Cách hoạt động Giao thức Kerberos hoạt động khá phức tạp, về bản đƣợc thực hiện qua ba giai đoạn. Trong ví dụ dƣới đây, ngƣời dùng U đăng nhập vào máy trạm Client và yêu cầu truy nhập tới máy chủ S. 8 Giai đoạn1: Người dùng U kết nối với AS để lấy vé xin truy nhập TGS (Ticket Grant Server) Truyn thông vn khu cp, nhm ly v d liu chng th y v chng thc cho các máy ch khác mà không phi nhp li khoá bí mt ca client. Khoá bí mt cc s dng cho c vic mã hoá và gii mã. 1. i dùng U p vào h thng, username và password vào máy client. Bng thu máy client s chuyi mt khu thành khoá mt (secret key) ca i dùng U. Client gi yêu cu xin cp TGT ti AS 2. AS s truy l d liu, ly khoá bí mt ca U, gii mã phn d liu tin chng thc, kim tra hp l không. Nu có, AS gi li dùng U:  Gói tin A: Khóa phiên TGS/clientClient/TGS Session Key) c mã hóa vi khóa mt ca ni s dng.  Gói tin B: Ticket-Granting-Ticket (TGT): ID ca ch mng ca client, thi hn ca vé và Khóa phiên TGS/client c mã hóa vi khóa bí mt ca TGS. 3. Khi máy client nhc hai gói tin A và B, nó s gii mã gói tin A vi khóa m password ci dùng. Nu password ci dùng nhp vào client không trùng vi password trong AS, mã mt ci dùng s  không th gic li, nu password trùng kh i dùng s dùng khóa mt (secret key) c   gi         . (máy client s không th gic mã hóa bi khóa mt ca TGS). 9 Giai đoạn 2: Truyền thông với máy chủ cấp vé dịch vụ TGS, lấy về service ticket truy nhập máy chủ S 4. Khi yêu cu dch v, máy client s gi 2 gói tin ti Ticket Grant Server  Gói tin C: Cha Ticket-Granting-Ticket (t gói tin B) và ID ca dch v yêu cu .  Gói tin D: Authenticator (B d liu chng thc) c mã hoá bng Khóa phiên TGS/client, gm ID i dùng và tem thi gian. Authenticator ch s dng mt ln và hiu lc trong mt thi gian ngn. 5. Sau khi ly gói tin B t C, TGS s dùng khóa mt c gii mã gói tin B, ly ra    gii mã gói tin D( Authenticator), kim tra tính hp l. Nu hp lm bo chc chn ri gi chic vé chính là ch nhân thc s ca nó  gi 2 gói tin ti máy client:  Gói tin E: Vé Client/Server (Client-to-c mã hóa bi khóa mt ca dch v, vé này bao ga ch mng ca client, thi h (client/server session key).  Gói tin F: c mã hóa v 10 Giai đoạn 3: Truyền thông giữa người dùng U và máy chủ S, trao đổi dữ liệu 6. Khi nhc gói tin E và F t TGS, máy client s kt nn máy ch dch v S (service server) và gi 2 gói tin:  Gói tin E: c mã hóa bi khóa mt ca dch v  Gói tin G: Authenticator (B chng thc ) mi, bao gm ID máy client, nhãn thi gian. Gói tin này c mã hóa b 7. Máy ch S s dùng mã mt ca nó, gii mã E, l Client/Server  gii mã Authenticator và gi cho client gói tin H  Gói tin H: nhãn thi gian trong Authenticator ca client cng vc mã hóa vi  8. Máy client gii mã gói tin H bng hoá phiên , xác minh nhãn thi gian trong c cp nh. Nc cp nhng 1), kt ni truyn thông s c thc hin và k t  S s bu phc v các yêu cu dch v t i dùng/client. y, c hai bên Client và Server c chng thc ln nhau, không xy ng hp gi mo mt trong hai bên tham gia truyn thông. [...]... vậy chế đăng nhập một lần Singl Sign On đ m lại lợi ích to lớn trong vấn đề bảo mật với người dùng Do hạn chế số lượng phiên đăng nhập nên người dùng thể tránh được các cuộc tấn công nghe lén trên mạng Hiện nay, nhiều mô hình triển khai SSO trong đó phương th c xác th c Kerberos c a học viện MIT Đ y là một chế ch ng thực mạnh cho các ng dụng cli nt/s rv r trên m i trường mạng phân tán; ... nên mật kh u c người dùng rất khả năng ị các chương tr nh như troj n đánh cắp, giành quyền truy nhập hệ thống  Điểm yếu trong mạng: Với đăng nhập một lần, dịch vụ ch ng thực sẽ được s dụng bởi tất cả các ng dụng trong mạng Vì thế, dịch vụ này rất dễ bị tấn công DoS, làm tê liệt cả hệ thống II Xây dựng thử nghiệm Kerberos 1 Môi trƣờng Windows Thử nghiệm chứng thực ngƣời dùng trong Active Directory... các nhà phát triển hệ thống: SSO cung cấp một framework ch ng thực chung cho các nhà phát triển Vì thế họ không cần phải qu n t m đến ch ng thực khi xây dựng hệ thống n coi như là các yêu cầu g i đến hệ thống đ được ch ng thực Điều này sẽ làm cho các nhà phát triển hoàn toàn yên tâm về an ninh c a hệ thống được xây dựng mà tránh được công việc nặng nhọc là xây dựng an toàn bảo mật cho hệ thống mới ...2.3 Đánh giá ƣu nhƣợc điểm a Ƣu điểm Theo cả qu n điểm: c người dùng, c a nhà quản trị, nhà phát triển hệ thống, khả năng SSO c a Kerberos là:  Tăng sự tiện dụng cho người dùng: Người dùng không cần phải đăng nhập nhiều lần khi s dụng hệ thống cũng như kh ng cần phải nhớ quá nhiều mật kh u cho các dịch vụ trong hệ thống Tất cả chỉ là một tài khoản cho hết thảy các dịch vụ trong hệ thống  Hỗ trợ các. .. i ng dụng sở d liệu người dùng riêng phục vụ cho chế ch ng thực độc lập c a nó, nên khi các hệ thống tham gia vào mạng, số lượng người dùng sẽ tăng lên rất nhanh làm quá tải công vétác quản trị Với SSO, mọi hệ thống s dụng c ng sở d liệu người dùng tập trung vì thế công tác quản trị đ được tập trung hoá, số lượng người dùng giảm đi rất nhiều  Tăng cường bảo mật: Hệ thống SSO chế ch... #sudo apt-get install bind9 dnsutils - Các file cấu hình trong /etc/bind/  n m  named.conf.options: file tùy chỉnh  named.conf.default-zon s: fil đăng k các zon mặc định  n m conf: fil điều khiển conf loc l: fil đăng k các zon khác  - Các ước cấu hình DNS  Đăng kí tên miền quản l  Mô tả nội dung tại file zone thuận  Mô tả nội dung tại fil zon ngược - Đăng k tên miền quản l điền 2 file dành... ch ng thực riêng cũng như sở d liệu th ng tin người dùng riêng Vì thế, việc tích hợp hệ thống cũ vào hệ SSO không tránh khỏi phải s a lại m chương tr nh hệ thống cũng như i chuyển th y đ i sở d liệu người dùng 11  Tấn công ở desktop: Cũng o t nh năng SSO khả năng kẻ địch giành được quyền truy nhập tới các tài nguyên khi người dùng c máy đó rời khỏi máy s u khi đăng nhập mà quên không khoá máy... s u đó sẽ yêu cầu nhập master key cho database 20 - File cấu hình c a KDC nằm tại /etc/krb5kdc/kdc.conf Tại đ y ch a thông tin về các realm, thông tin về ticket như thời gian giá tri, loại khó - và các th ng tin này thể th y đ i nếu cần r ros r lm được quản trị bởi tiện ch k min Để đăng nhập chế độ người dùng root trên KDC, gõ lệnh: #sudo kadmin.local , tại đ y một số lệnh ch c năng... thiểu số lần nhập mật kh u cũng nghĩ là tăng độ an toàn cho hệ thống vì với số lượng mật kh u nhiều người ng thường ghi mật kh u ra xung quanh, dễ để lộ b Nhƣợc điểm Bất k hệ thống bảo mật nào cũng kh ng thể chống lại tất cả các kiểu tấn công c a hacker, Kerberos cũng nh ng nhược điểm nhất định như:  Khó tích hợp với các hệ thống cũ: thường thì các hệ thống sẵn trong mạng đ chế ch ng... cấp phát chứng thực cho client  Ubuntu1: Địa chỉ 192.168.1.12, đóng vai trò client 2.1 Cấu hình KDC a Cấu hình apache2 để tạo realm (tên miền) - Cài đặt apache2: #sudo apt-get install apache2 - Các file cấu h nh và thư mục chính c Ap ch 2 được đặt tại /etc/apache2 bao gồm:  apache2.conf: tệp cấu h nh ản  port.conf: tệp cấu hình port  sites- v il l : các sit đ cài đặt  sites- n l : các sit đ . BÁCH KHOA HÀ NI VIN CÔNG NGH THÔNG TIN VÀ TRUYN THÔNG ĐỒ ÁN MÔN HỌC XÂY DỰNG CÁC ỨNG DỤNG PHÂN TÁN CƠ CHẾ ĐĂNG NHẬP MỘT LẦN - SINGLE SIGN ON Sinh viên thc hin : Phùng Vũ Nhật. I. Cơ sở lý thuyết 3 1. Cơ chế đăng nhập một lần - Single Sign On 3 1.1. Khái niệm 3 1.2. Lợi ích 4 1.3. Các mô hình Single Sign On 4 2. Xác thực Kerberos 5 2.1. Khái niệm 5 2.2. Cách. II. Xây dựng thử nghiệm Kerberos 12 1. Môi trƣờng Windows 12 2. Môi trƣờng Unix/Linux 16 III. Kết luận 25 TÀI LIỆU THAM KHẢO 26 3 I. Cơ sở lý thuyết 1. Cơ chế đăng nhập một lần -

Ngày đăng: 19/04/2014, 23:13

Tài liệu cùng người dùng

Tài liệu liên quan