tìm hiểu hệ thống đăng nhập một lần sso - single sign on
ĐỒ ÁN TỐT NGHIỆP Tìm hiểu hệ thống đăng nhập một lần SSO - Single Sign On MỤC LỤC MỤC LỤC 1 DANH MỤC CÁC TỪ VIẾT TẮT 2 LỜI NÓI ĐẦU 5 1.3. SSO trên các ứng dụng không trên nền tảng web 14 2.1.2. Kiến trúc SSO cho mạng nội bộ 17 2.2.2. Các kiểu tấn công vào hệ thống SSO 21 2.2.3. Tăng cường an toàn bằng các chính sách 23 2.4. Lược đồ giao thức 28 2.4.1. Liên hệ các trang web nguồn 28 2.4.2. Chuyển đến trang đích 29 2.4.3. SAML Request 29 2.4.4. SAML Response 30 2.4.5. Đáp ứng yêu cầu từ trình duyệt 31 2.5. Một số lỗ hổng có thể lợi dụng để thực hiện tấn công 31 2.5.1. Hijacking / Replay Attack 31 2.5.2. Tấn công xen giữa (Man-in-the-Middle) 32 2.5.3. HTTP Referrer Attack 34 2.5.4. Khai thác lỗ hổng của SSL/TSL 34 Bảng 2.1:CAS(Central Authentication service) 36 Bảng 2.2: Open source được phát triển bởi đại học Stanford 38 Bảng 2.3: Cosign 39 3.1 Khái niệm Center Authencation Service (CAS) 41 3.2.1. URI -/login đăng nhập 42 3.2.2. Các thông số 42 3.2.3. Các ví dụ về tham số đăng nhập 43 3.2.4. Chứng thực Username/Password 43 3.2.5. Chứng thực tin cậy 43 3.2.6. Phổ biến các thông số 43 3.2.7. Các thông số xác thực tên người dùng,mật khẩu 43 3.3. /Proxy 45 Bảng 3.1: /SAMLValidate 46 3.8. Xác thực trong CAS 62 Trang 1 ĐỒ ÁN TỐT NGHIỆP Tìm hiểu hệ thống đăng nhập một lần SSO - Single Sign On DANH MỤC CÁC TỪ VIẾT TẮT SSO Single Sign On OpenSSO Open Single Sign On LDAP Lightweight Directory Acess Protocol CAS Central Athentication Service URI Uniform Resource Identifier URL Uniform Resource Locator ESSO Enterprise Single Sign On CRM Customer Relationship Management Trang 2 ĐỒ ÁN TỐT NGHIỆP Tìm hiểu hệ thống đăng nhập một lần SSO - Single Sign On DANH MỤC CÁC BẢNG Bảng 2.1:CAS(Central Authentication service) 36 Bảng 2.2: Open source được phát triển bởi đại học Stanford 38 Bảng 2.3: Cosign 39 Bảng 3.1: /SAMLValidate 46 Trang 3 ĐỒ ÁN TỐT NGHIỆP Tìm hiểu hệ thống đăng nhập một lần SSO - Single Sign On DANH MỤC CÁC HÌNH VẼ Hình 1.1: Người dùng sử dụng Single Sign On 9 Hình 1.2:Ứng dụng single sign on sử dụng OpenID 12 Hình 1.3: Single Sign On trên windows 14 Hình 2.1:Kiến trúc SSO cho ứng dụng Internet 16 Hình 2.2: Kiến trúc SSO cho mạng nội bộ 17 Hình 2.3: Kiến trúc SSO cho nhiều miền 18 Hình 2.4: Kiến trúc SSO chéo 19 Hình 2.5: Tấn công Session Hijacking 22 Hình 2.6: Tấn công Man in the Middle 23 Hình 2.7: Giả mạo DNS 23 Hình 2.8: SAML Single Sign On 25 Trang 4 ĐỒ ÁN TỐT NGHIỆP Tìm hiểu hệ thống đăng nhập một lần SSO - Single Sign On Hình 3.1 : Đăng nhập CAS 49 Hình 3.2 : Chứng thực một trình duyệt đển máy chủ CAS 49 Hình 3.3 : Truy cập vào ứng dụng 50 Hình 3.4: Trình duyệt truyền ST cho ứng dụng 50 Hình 3.5 : Ứng dụng truyền ST cho CAS 51 Hình 3.6 : Người dùng truy cập vào ứng dụng khi đã chứng thực với CAS 51 Hình 3.8: CAS trả về cho trình duyệt đồng thời TGC và ST 52 Hình 3.9 : Truyền ST cho ứng dụng 53 Hình 3.10:Người dùng truy cập vào ứng dụng mà chưa chứng thực với CAS 53 Hình 3.11: Cơ chế Proxy 54 Hình 3.12: Thu hồi TMP của một proxy CAS từ máy chủ CAS 56 Hình 3.13: Xác Nhận của PT người dùng CAS truy cập bởi một proxy CAS 57 Hình 3.14: Sơ đồ CAS 57 Hình 3.15 : Login Flow 59 Hình 3.16 : Proxy Flow 61 Hình 3.17 : Logout Flow 61 Hình 3.18: Mô hình triển khai ứng dụng 64 LỜI NÓI ĐẦU Ngày nay, với sự phát triển nhảy vọt của khoa học công nghệ nói chung của ngành tin học nói riêng, với những tính năng ưu việt, sự tiện dụng và được ứng dụng rộng rãi, tin học ngày nay là một phần không thể thiếu được của nhiều ngành trong cuộc sống xây dựng và phát triển xã hội. Khi xã hội càng phát triển Trang 5 ĐỒ ÁN TỐT NGHIỆP Tìm hiểu hệ thống đăng nhập một lần SSO - Single Sign On con người càng cần đến sự quan tâm và chia sẻ thông tin. Chính điều này đã tạo cơ hội cho mạng máy tính phát huy hết những tiện ích vốn có của mình. Hiểu rõ được tầm quan trọng và những ưu điểm vượt trội của việc bảo mật, trao đổi thông tin của hệ thống mạng máy tính mà số lượng các công ty, doanh nghiệp thiết lập, sử dụng hệ thống mạng ngày càng nhiều. Từ những công ty có quy mô nhỏ, vừa đến các doanh nghiệp, tập đoàn tầm cỡ, không nơi nào không có sự xuất hiện của hệ thống mạng trong khâu quản lý công việc của nhân viên, trong công tác quản lý, bảo mật và lưu trữ dữ liệu của công ty hay các thông báo, thông tin giữa các cá nhân trong cùng một tổ chức. Khi sử dụng càng nhiều các dịch vụ người dùng phải đối mặt với vấn đề khi sử dụng các dịch vụ riêng biệt cần có một tài khoản và mật khẩu riêng, mỗi lần sử dụng một dịch vụ khác nhau người dùng phải đăng nhập lại điều này dẫn đến các nguy cơ mất an toàn trên mạng, người dùng dễ bị ăn cắp tài khoản hay quên mật khẩu. Thấy được tầm quan trọng của vấn đề em đã tìm hiểu và nghiên cứu đề tài :”Tìm hiểu Single Sign On”. Đề tài tập trung tìm hiểu và triển khai giải pháp đăng nhập một lần giúp người sử dụng chỉ cần dùng một tài khoản và mật khẩu đăng nhập một lần duy nhất có thể sử dụng được tất cả các ứng dụng tin cậy. Thấy được tầm quan trọng và ý nghĩa thực tiễn của đề tài, qua ba tháng tìm hiểu nghiên cứu thực hiện đề tài. Em đã hoàn thành đề tài với những nội dung: Tìm hiểu tổng quan về Single Sign On, độ an toàn hệ thống và triển khai sản phẩm Central Authentication Service (CAS) ứng dụng vào thực tế. Chương I: Tổng quan về Single Sign On Trình bài khái quát về Single Sign On. Ý nghĩa thực tiễn của Single Sign On. Chương II: Các vấn đề an toàn của Single Sign On Tìm hiểu các kiến trúc Single Sign On Các lỗ hổng an ninh khi sử dụng Single Sign On. Giao thức SAML Single Sign On. Các phương pháp tấn công và giải pháp an toàn khi sử dụng SAML Single Sign On. Trang 6 ĐỒ ÁN TỐT NGHIỆP Tìm hiểu hệ thống đăng nhập một lần SSO - Single Sign On Chương III: Central Authentication Service Tổng quan chung về phần mềm CAS. Giao thức CAS. Kiến trúc CAS. Triển khai ứng dụng. Do nội dung đồ án rộng và bao gồm nhiều kiến thức mới, thời gian và kiến thức còn hạn chế, việc nghiên cứu chủ yếu dựa trên tài liệu nước ngoài thuyết nên chắc chắn đề tài không tránh khỏi những thiếu sót. Em rất mong nhận được sự đóng góp ý kiến của thầy cô giáo và bạn bè. Với lòng biết ơn sâu sắc, em xin chân thành cảm ơn Th.s Nguyễn Anh Tuấn,Th.s Nguyễn Quốc Toàn các anh chị trong công ty Cổ phần phần mềm Việt, các thầy cô giáo trong khoa An Toàn Thông Tin Học Viện Kỹ Thuật Mật Mã đã nhiệt tình hướng dẫn giúp đỡ em hoàn thành đồ án này. Cuối cùng tôi xin cảm ơn bạn bè, người thân đã luôn bên, kịp thời động viên và giúp đỡ tôi trong thời gian vừa qua. Em xin chân thành cảm ơn ! Hà Nội, Tháng 6 năm 2011 Sinh viên Bùi Đăng Tân Chương I TỔNG QUAN VỀ SINGLE SIGN ON 1.1. Tìm hiểu Single Sign On Trang 7 ĐỒ ÁN TỐT NGHIỆP Tìm hiểu hệ thống đăng nhập một lần SSO - Single Sign On 1.1.1. Tại sao Single Sign On? Hệ thống CNTT ngày càng phát triển rộng khắp và ứng dụng vào tất cả các lĩnh vực.Người sử dụng phải đối mặt với vấn đề ngày càng phức tạp là phải nhớ nhiều tài khoản và mật khải để thực hiện công việc của họ. Người dùng thường phải đăng nhập vào nhiều hệ thống, cần phải có một lượng tương đương số lần đăng nhập, mỗi dịch vụ trong các hệ thống đó có thể bao gồm tài khoản và mật khẩu khác nhau. Điều này dẫn đến người dùng phải đối mặt với các vấn đề: Quên tài khoản: do sử dụng nhiều tài khoản và mật khẩu để đăng nhập các ứng dụng. Dùng một tài khoản và mật khẩu cho các hệ thống dẫn đến nguy cơ mất an toàn. Sử dụng Single Sign On: • Sử dụng nhiều phương pháp xác thực: Là cần thiết để nhập thông tin đăng nhập của mình ngoài phương pháp nhập tài khoản và mật khẩu khi truy cập vào mỗi ứng dụng. • Đa phương diện: Tài khoản người dùng là duy nhất trong tổ chức này và nó sẽ được mong muốn sử dụng nó truy cập vào tài nguyên máy tính từ các tổ chức khác có thể được sử dụng cùng một tài khoản.(sử dụng tài khoản yahoo, gmail, facebook …sử dụng OpenId). • Quyền: Xác thực quyền hạn truy cập các tài nguyên của người dùng khi truy cập các ứng dụng khác nhau. • Xác thực tập trung: Trên một máy chủ duy nhất để xác thực tài khoản người dùng thông qua giao thức đã được mã hóa. • Trình duyệt sử dụng http chuyển hướng trình duyệt của người dùng giữa các ứng dụng mà không cần đăng nhập tài khoản và mật khẩu. 1.1.2. Khái niệm Single Sign On: Người sử dụng dùng tài khoản đăng nhập chỉ một lần và có thể sử dụng nhiều ứng dụng trong cùng một tổ chức một cách liên tục mà không cần phải nhập lại thông tin cho mỗi ứng dụng. Trang 8 ĐỒ ÁN TỐT NGHIỆP Tìm hiểu hệ thống đăng nhập một lần SSO - Single Sign On Hình 1.1: Người dùng sử dụng Single Sign On Ví dụ: Người dùng sử dụng nhiều dịch vụ: Email,forum,web…khi chưa có Single Sign On thì với mỗi dịch vụ ta phải nhập thông tin để xác thực.Khi một tổ chức đã thống nhất sử dụng Single Sign On cho hệ thống của họ thì người dùng chỉ phải đăng nhập một lần vào bất kì ứng dụng nào trong hệ thống thì khi dùng các ứng dụng khác người dùng không phải đăng nhập lại. 1.1.3. Các khái niệm quan trọng của Single Sign On Xác thực: Quá trình xác minh danh tính của người dùng, làm cho chắc chắn rằng người dùng là họ. Chúng ta có thể sử dụng các phương pháp xác thực như: username, password, thẻ thông minh, hay dùng sinh trắc học… Ủy quyền: Là một quy trình nhằm xác minh rằng một người dùng biết trước, có quyền lực để thao tác một quá trình hoạt động nào đó hay không. Giấy chứng nhận: Là các chi tiết được cung cấp bởi một người dùng trong quá trình xác thực vào ứng dụng. Domain: Là sự nhận dạng vị trí của một máy tính trên mạng Internet nói cách khác tên miền là tên của các mạng lưới, tên của các máy chủ trên mạng Internet. Trang 9 ĐỒ ÁN TỐT NGHIỆP Tìm hiểu hệ thống đăng nhập một lần SSO - Single Sign On Bảo vệ dữ liệu: Dữ liệu của hệ thống không thể cho tất cả mọi người có thể truy cập. Người dùng cần phải thông qua xác thực và ủy quyền trước khi truy cập vào một nguồn tài nguyên bảo vệ. Cookie: Giao thức HTTP là một chuẩn giao thức không hỗ trợ lưu trạng thái. Điều này có nghĩa là sau khi trình duyệt kết nối tới máy chủ và lấy xong dữ liệu thông qua HTTP, máy chủ liền tắt ngay kết nối mà không buồn quan tâm tới việc dữ liệu đó sẽ được xử lý, lưu trữ ra sao trên máy khách. Chính vì sự “vô tình” này đã dẫn đến những tình huống phát sinh, chẳng hạn như trong một phiên làm việc, làm thế nào để biết được người sử dụng đó vừa mới truy cập lên máy chủ, hay người sử dụng đã lựa chọn những gì ở những lần truy cập trước đó? Để giải quyết vấn đề này, các nhà phát triển ứng dụng Web đã phải khai sinh một công cụ khác, gọi là cookie. Cookie là một (hoặc một số) thông tin được những nhà thiết kế web ấn định yêu cầu trình duyệt phải ghi lại ở đâu đó trên máy khách. Mỗi khi trình duyệt kết nối tới máy chủ, các thông tin lưu trong cookie sẽ được gửi cùng lên máy chủ. Nhờ những thông tin này, các nhà thiết kế web sẽ theo dõi được những hành vi của người sử dụng thông qua cookie. Trước đây rất nhiều người nhầm tưởng cookie là các đoạn mã độc hại, nhưng thực tế thì không phải như vậy. Về bản chất, cookie chỉ là các bản ghi lưu trữ dữ liệu chứ không hề có chứa bất kỳ một đoạn mã chương trình nào cả. Tuy nhiên, nhiều nhà phát triển ứng dụng Web thiếu kinh nghiệm đã lựa chọn cookie để lưu trữ những thông tin mang tính chất nhạy cảm (mật khẩu, số tài khoản cá nhân ). Vì vậy chúng rất dễ bị các chương trình gián điệp chạy trên máy khách thu thập và đem ra sử dụng một cách mờ ám, gây hại cho người dùng. Nếu bạn là người lập trình Web chuyên nghiệp, hãy cẩn thận với những tình huống này. Một cookie thường có những thông tin sau đây: Tên cookie (name): do người lập trình website thiết lập để phân biệt giữa các cookie. Domain: xác định tên miền sẽ được sử dụng để gửi cookie đi. Đường dẫn: xác định đường dẫn ở trên Website Trang 10 [...]... Trang 12 ĐỒ ÁN TỐT NGHIỆP Tìm hiểu hệ thống đăng nhập một lần SSO - Single Sign On Đăng nhập một lần với một tài khoản duy nhất để chứng thực vào các ứng dụng web khác nhau sử dụng dịch vụ WebSSO Các ứng dụng web có thể chạy trên nhiều domain khác nhau Ví dụ: khi bạn đăng nhập vào hotmail.com thì bạn sẽ không cần đăng nhập một lần nữa khi vào msn.com Web SSO yêu cầu một hệ thống network ổn định và... Planning (ERP) và hệ thống quản lý quan hệ khách hàng (CRM) Trang 14 ĐỒ ÁN TỐT NGHIỆP Tìm hiểu hệ thống đăng nhập một lần SSO - Single Sign On Kết chương I: Nội dung của chương đã trình bày tổng quát các khái niệm quan trọng về single sign on , các dạng SSO đang được sử dụng trên thế giới Đăng nhập một lần đang được các hãng công nghệ sử dụng rộng rãi trong các ứng dụng phần mềm và đặc biệt trong các dịch... NGHIỆP Tìm hiểu hệ thống đăng nhập một lần SSO - Single Sign On SAML Single Sign On mô tả việc sử dụng thông điệp để thực hiện hoạt động đăng nhập giữa ba bên: Người dùng U sử dụng một trình duyệt tiêu chuẩn B, một web nguồn S và web đích D Hình 2.8: SAML Single Sign On Giả sử người sử dụng U đã chứng thực đăng nhập với web site S, trình tự xác nhận của giao thức SAML Single Sign On: 1 Người dùng truy... sử dụng một ứng dụng duy trì trên một trang web đối tác (hệ thống SSO khác) • Các công cụ kết nối sử dụng cookie của trình duyệt người dùng để đóng gói nó như là một SAML(Security Assertion Markup Language khẳng định, các ký hiệu nó và sau đó chuyển hướng nó vào thành phần kết nối trong mạng SSO đối tác Trang 19 ĐỒ ÁN TỐT NGHIỆP Tìm hiểu hệ thống đăng nhập một lần SSO - Single Sign On • Hệ thống kết... SSOAgent, có nhiệm vụ xử lý Authentication Token và kiểm tra việc chứng thực Trong quá trình này session cookie sẽ được tạo tại trình duyệt của người dùng đăng nhập nếu SSOAgent kiểm tra Authentication Token thành công Trang 13 ĐỒ ÁN TỐT NGHIỆP Tìm hiểu hệ thống đăng nhập một lần SSO - Single Sign On Bước 4: [Sign Out]: Khi chứng thực tự động vào một partner, Authentication Service sẽ lưu lại thông tin partner... sẽ trình bày rõ hơn về vấn đề an toàn của Single sign on Trang 15 ĐỒ ÁN TỐT NGHIỆP Tìm hiểu hệ thống đăng nhập một lần SSO - Single Sign On Chương II CÁC VẤN ĐỀ AN TOÀN CỦA SSO 2.1 Kiến trúc SSO 2.1.1 Kiến trúc SSO cho các ứng dụng Internet Hình 2.1:Kiến trúc SSO cho ứng dụng Internet Mô tả các vị trí thành phần khác nhau trong một đơn vị sử dụng các ứng dụng SSO Ứng dụng ra ngoài Internet phải đối mặt... không thực hiên các bước sau 2.5.2 Tấn công xen giữa (Man-in-the-Middle) Giả mạo DNS là một kỹ thuật Man-in-the-Middle được sử dụng nhằm cung cấp thông tin DNS sai cho một host để khi người dùng duyệt đến một địa chỉ nào Trang 32 ĐỒ ÁN TỐT NGHIỆP Tìm hiểu hệ thống đăng nhập một lần SSO - Single Sign On đó Lúc này kẻ tấn công đóng vai trò là một proxy đứng giữa trình duyệt B và web nguồn S: B ↔ A ↔... Trong quá trình hoạt động, người dùng không cần phải chứng thực lại Kẻ tấn công lợi dụng điều này để cướp session đang hoạt động của người dùng và làm cho người dùng không kết nối được với hệ thống Sau đó kẻ tấn công mạo danh người dùng bằng session vừa cướp được, truy cập đến máy chủ mà không cần phải đăng nhập vào hệ thống Trang 21 ĐỒ ÁN TỐT NGHIỆP Tìm hiểu hệ thống đăng nhập một lần SSO - Single Sign. .. bằng các chính sách Các sản phẩm SSO có nhiều tính năng tăng cường tính bảo mật cho hạ tầng của các đơn vị Tuy nhiên các sản phẩm SSO không thể đảm bảo tất cả tính an toàn cho một tổ chức nếu thực hiện không cẩn thận SSO còn làm xuất hiện thêm Trang 23 ĐỒ ÁN TỐT NGHIỆP Tìm hiểu hệ thống đăng nhập một lần SSO - Single Sign On các lỗ hổng bảo mật mới Do vậy một hệ thống SSO cần được tăng cường bởi các... của giao thức có thể ngăn chặn giả mạo site S, để website nguồn S theo dõi trình duyệt B được chỉ định trong giao thức SAML single sign on Được sử dụng trong các sản phẩm single sign on ứng dụng web như CAS, openID… Trang 33 ĐỒ ÁN TỐT NGHIỆP Tìm hiểu hệ thống đăng nhập một lần SSO - Single Sign On 2.5.3 HTTP Referrer Attack Cuộc tấn công cho phép người dùng thu thập được các thông tin rò rỉ về SAML . 3.8. Xác thực trong CAS 62 Trang 1 ĐỒ ÁN TỐT NGHIỆP Tìm hiểu hệ thống đăng nhập một lần SSO - Single Sign On DANH MỤC CÁC TỪ VIẾT TẮT SSO Single Sign On OpenSSO Open Single Sign On LDAP Lightweight. NGHIỆP Tìm hiểu hệ thống đăng nhập một lần SSO - Single Sign On DANH MỤC CÁC HÌNH VẼ Hình 1.1: Người dùng sử dụng Single Sign On 9 Hình 1.2:Ứng dụng single sign on sử dụng OpenID 12 Hình 1.3: Single. TỐT NGHIỆP Tìm hiểu hệ thống đăng nhập một lần SSO - Single Sign On Đăng nhập một lần với một tài khoản duy nhất để chứng thực vào các ứng dụng web khác nhau sử dụng dịch vụ WebSSO. Các ứng