Đồ á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 HC BÁCH KHOA HÀ NI VIN CÔNG NGH THÔNG TIN VÀ TRUYN 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 thc hin : Phùng Vũ Nhật Duy Lp Truyn Thông Mng K53 ng dn : PSG.TS Nguyễn Linh Giang HÀ NI 11 - 2012 2 MỤC LỤC 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 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. Cơ sở lý thuyết 1. Cơ chế đăng nhập một lần - Single Sign On 1.1. Khái niệm p mt ln (Single Sign On - SSO) kim soát truy cp, i dùng mun truy cp vào nhiu dch v, thay vì php vi s dch v, ngi dùng s ch cp mt ln duy nht. vi ch i dùng 4 1.2. Lợi ích Vi s tin dng c ng nhp mt ln các li ích sau: Tránh vi nhiu dch v. Tit king thi gim chi phí. 1.3. Các mô hình Single Sign On a. Mã đăng nhập một lần p mt ln (One-time password token OTP token) là mng thc mà i mi li dùng s c cp mt password mi. Np truyn thi dùng ch có mt password c nh và rt d tr thành nn nhân ca tn công nghe lén, thì v có giá tr mt ln và s không tn ti lâu. m duy nht c password rt phc tp và có th gây phin phc khi i dùng thc hip. b. Mô hình SAML SAML (Security Assertion Markup Language) là gii pháp da trên ngôn ng XML (eXtensible Markup Language) cho vii thông tin xác thc gia nhà cung cp dch v và doanh nghip. Khi i dùng gi mt dch v hoc tài nguyên, nhà cung cp xác thc s cp chng thi dùng. Sau p dch v s da vào thông tin chng th cung cp quyn truy cp dch v hay tài i dùng. c. Smart card Mô hình Smart card (Th thông minh) s dng các thông tin chng thc cha trong th xác thc s dng các loi th này cn phi có các thit b chuyên dng. Th bo him y t ti Pháp 5 d. Kerberos Kerberos là mt giao thc chng thc mc phát trin trong d án Athena ca hc vin công ngh Massachusetts (MIT). Tên ca giao thc ly t tên cu Cerberus canh gác ca ngc trong thn thoi Hy Lp. Nó m bo tính toàn vn và tính mt cho thông tin truy dng mã hoá bí m Mô hình này hin th 5 và có th tring Windows n lý thuyt chi tit v mô hình này. 2. Xác thực Kerberos 2.1. Khái niệm Kerberos là mt giao thc m xác thc trong các mng máy tính hong trên nhng ng truyc công khai t chng thc mnh cho các ng dng mng phân tán; nó cho phép các thc th truyn thông trong mng chng thc ln nhau mà vm bo an toàn. Mc tiêu khi thit k giao thc này là nhm vào mô hình client/m bo chng thc cho c 2 chiu. Các h u hành Windows 2000, Windows XP và Windows Server 2003 và sau này s dng mt phiên b xác thc. H dng Kerberos trong các phiên bn Clients và Server ca 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: bi dùng, máy tính hay dch v c cung cp dch v bc gi là Kerberos principal. Instance: (thc th) c s dng bi các principal có quyn qun tr Realm: tên min chng thc Cu trúc chung ca mt principal ca Kerberos là username/instance@Realm VD: Duy/admin@TTMK53.COM là mt principal c instance và TTMK53.COM là realm. c. Key Distribution Center (KDC) Kerberos không xây dng các giao thc chng thc phc tp cho mi máy ch mà hong da trên mt máy ch chng thc tp trung KDC (Key Distribution Center). i khóa, cung cp khóa (vé) cho vic chng thi dùng và bo mt truyn thông bi khoá phiên trong vé. KDC gm 3 phn: Máy ch chng thc AS (Authentication Server) bit khoá mt ca tt c trên ms d liu tp trung. Máy ch cp khoá TGS (Ticket Granting Server) cung cp vé dch v i dùng truy nhp vào các máy ch trên mng. d liu (Database) ca nó d. Authentication Server (AS) Khi 1 user (client) mun tham gia vào mt realm ca Kerberos thì thay vì user phi xác thc vi AS. Khi nhn yêu cu tham gia h thng Kerberos ca user, AS kim tra nhân dnh ca ngi yêu cu có nm trong c s d liu ca mình không. Nu có thì AS gi 2 gói tin sau ti ngi s dng: Gói tin A: "Khóa phiên TGS/client" c mt mã hóa vi khóa bí mt ca ni s dng. Gói tin B: Ticket-Granting-Ticket (TGT) e. Ticket-Granting-Ticket (TGT): c cp bi AS, bao gm ID máy client, a ch mng ca client, thi hn cc mã hóa vi khóa bí mt ca TGS. 7 f. Ticket Granting Server (TGS) TGS là b phn nhn vé chp thun TGT t user.TGS có nhim v kim tra các vé TGT có giá tr không bng cách kic mã hóa bi key vi key ca TGT server Kerberos không.Nu i cho user vé dch v mà user mun s dng. g. Ticket c cp bi TGS và máy ch ng dng, cung cp s chng thc cho máy ch ng dng hoc tài nguyên. Mt vé Kerberos là mt cu trúc d lic mã hóa do KDC t share mt khóa ca 1 phiên duy nht. Vé to ra có 2 mn danh tính ci tham gia và khi to mt khóa ngn h 2 bên có th giao tip an toàn (gi là khóa phiên). ng chính mà mi vé cu có là: Yêu cu tên ca principal Tên dch v ca principal Khi nào thì vé có hiu lc, khi nào vé ht hiu lc (Timestamp, Lifetime) Danh sách IP mà vé có th c dùng t Mt c to b m bo rng nhi không có khóa không m chnh sa nó lên honh danh ca client principal . Bi vì Kerberos ch xác thc 1 lp thì bt k ai ngu có th tham gia vào h thng Kerberos. Vì vy, vé trong Kerberos có thi gian tn ti ngn, khong t 10-24h . u này thun tip 1 ln trong ngày làm vic ca user, hn ch vic tn công ly mt d liu quan trng. 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ề cơ 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) Truyn thông vn khu cp, nhm ly v d liu chng th y v chng thc cho các máy ch khác mà không phi nhp li khoá bí mt ca client. Khoá bí mt cc s dng cho c vic mã hoá và gii mã. 1. i dùng U p vào h thng, username và password vào máy client. Bng thu máy client s chuyi mt khu thành khoá mt (secret key) ca i dùng U. Client gi yêu cu xin cp TGT ti AS 2. AS s truy l d liu, ly khoá bí mt ca U, gii mã phn d liu tin chng thc, kim tra có hp l không. Nu có, AS gi li dùng U: Gói tin A: Khóa phiên TGS/clientClient/TGS Session Key) c mã hóa vi khóa mt ca ni s dng. Gói tin B: Ticket-Granting-Ticket (TGT): ID ca ch mng ca client, thi hn ca vé và Khóa phiên TGS/client c mã hóa vi khóa bí mt ca TGS. 3. Khi máy client nhc hai gói tin A và B, nó s gii mã gói tin A vi khóa m password ci dùng. Nu password ci dùng nhp vào client không trùng vi password trong AS, mã mt ci dùng s không th gic li, nu password trùng kh i dùng s dùng khóa mt (secret key) c gi . (máy client s không th gic mã hóa bi khóa mt ca 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 cu dch v, máy client s gi 2 gói tin ti Ticket Grant Server Gói tin C: Cha Ticket-Granting-Ticket (t gói tin B) và ID ca dch v yêu cu . Gói tin D: Authenticator (B d liu chng thc) c mã hoá bng Khóa phiên TGS/client, gm ID i dùng và tem thi gian. Authenticator ch s dng mt ln và có hiu lc trong mt thi gian ngn. 5. Sau khi ly gói tin B t C, TGS s dùng khóa mt c gii mã gói tin B, ly ra gii mã gói tin D( Authenticator), kim tra tính hp l. Nu hp lm bo chc chn ri gi chic vé chính là ch nhân thc s ca nó gi 2 gói tin ti máy client: Gói tin E: Vé Client/Server (Client-to-c mã hóa bi khóa mt ca dch v, vé này bao ga ch mng ca client, thi 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 nhc gói tin E và F t TGS, máy client s kt nn máy ch dch v S (service server) và gi 2 gói tin: Gói tin E: c mã hóa bi khóa mt ca dch v Gói tin G: Authenticator (B chng thc ) mi, bao gm ID máy client, nhãn thi gian. Gói tin này c mã hóa b 7. Máy ch S s dùng mã mt ca nó, gii mã E, l Client/Server gii mã Authenticator và gi cho client gói tin H Gói tin H: nhãn thi gian trong Authenticator ca client cng vc mã hóa vi 8. Máy client gii mã gói tin H bng hoá phiên , xác minh nhãn thi gian trong c cp nh. Nc cp nhng 1), kt ni truyn thông s c thc hin và k t S s bu phc v các yêu cu dch v t i dùng/client. y, c hai bên Client và Server c chng thc ln nhau, không xy ng hp gi mo mt trong hai bên tham gia truyn thông. [...]... vậy cơ 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 có thể tránh được các cuộc tấn công nghe lén trên mạng Hiện nay, có nhiều mô hình triển khai SSO trong đó có phương th c xác th c Kerberos c a học viện MIT Đ y là một cơ 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 có 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 có cơ sở d liệu người dùng riêng phục vụ cho cơ 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 cơ 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 có cơ 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ư cơ 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 cơ sở d liệu người dùng 11 Tấn công ở desktop: Cũng o t nh năng SSO có 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ẽ có 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 có ch a thông tin về các realm, thông tin về ticket như thời gian có giá tri, loại khó - và các th ng tin này có 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 có một số lệnh ch c năng... thiểu số lần nhập mật kh u cũng có 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 có 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 có trong mạng đ có cơ 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 cơ ả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À NI VIN CÔNG NGH THÔNG TIN VÀ TRUYN 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 thc hin : 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 -