Chương I: GIỚI THIỆU OPEN ID 1. Giới Thiệu: 1.1. VÀấn đề mật khẩu của web application (WebApp) hiện nay. Rất nhiều ứng dụng web hiện nay bắt buộc phải tạo tài khoản để thực hiện những chức năng mà nó cung cấp vàà đây là một vàiệc làm bắt buộc để xác thực người dùng. VÀiệc tạo tài khoảnàyêu cầu khách vàiếng thăm mất khá nhiều thời gian vàà có cảm giác phiền toái. Tránh né những website yêu cầu có tài khoản, đây là yếu tố mất điểm không thể tránh khỏi đối vàới các WebApp. Lượng đăng ký tỷ lệ nghịch vàới số lượng thông tin bắt buộc, số lần nhấp chuột vào các ô nhập liệu trên forMụcủa ứng dụng. VÀề phía người dùng, khi tham gia vào mỗi ứng dụng web có xác thực bằng tên đăng nhập vàà mật khẩu, họ đều phải ghi nhớ tên đăng nhập vàà mật khẩu, lượng tài khoản gia tăng làMụcho vàiệc ghi nhớ mật khẩu ở mỗi ứng dụng webấtrở thành vàấn đề lớn. Chắcáchắn mỗi trong chúng ta đã từng click vào link “Click đây nếu quên mật khẩu” để tìm lại mật khẩu cho những ứng dụng ít sử dụng. Số ít lại dán đầy những mảnh giấy ghi thông tin tài khoản. Một số website có các tiện ích được phát triển trên những nền tảng khác nhau, yêu cầu đặt ra là người dùng chỉ cần đăng ký một lần ở duy nhất một tiện ích nhưng có thể sử dụng được tài khoản đó cho tất cả các tiện ích trên website. Những vàấn đề đó trở thành vàật cản cho sự phát triển của các ứng dụng website, khiến cho các ứng dụng khác nhau khó có thể liên kết được vàới nhau. Do đó cần có giải pháp thỏa đáng để có thể triệt để giải quyết các vàấn đề. Thúc đẩy các nhà phát triển tạo ra OpenID. 1.2. Giải Pháp Openid OpenID giúp người dùng vàà website xác thực quyền truy cập, cho phép người dùng đăng nhập vào những ứng dụng web khác nhau chỉ bằng một định danh số (digital indentity). Giúp thay thế các thủ tục đăng ký, xác thực, đăng nhập truyền thống chỉ bằng một bước đăng nhập duy nhất. 1.3. Khái Niệm Open ID OpenID là một phương thức giúp bạn đăng ký vàà xác thực tại một Provaider duy nhất mà bạn tin tưởng vàà có thể sử dụng tài khoản đó để đăng nhập vào tất cả các WebApp có hổ trợ OpenID khác mà bạn tin tưởng. Thay vàì bạn phải đăng ký, nhập form tại các WebApp này, bạn chỉ cần cung cấp cho họ địa chỉ OpenID của bạn vàà WebApp sẽ tiến hành xác thực để cho bạn đăng nhập. Quá trình giao tiếp giữa WebApp vàới Provaider được Provaider yêu cầu xác nhận sự tin tưởng của bạn vào WebApp này, cho phép tiếp tục đăng nhập vào lần sau. VÀí dụ: Bạn có một tài khoảnàyahoo vàà bạn đã kích hoạt chức năng OpenID vàà có một OpenID URL, Lúc ghé thăm website enbac.com, bạn muốn vàiết nhận xét cho một sản phẩm nào đó trên trang, thay vàì bạn phải đăng ký tài khoản tại website này hoặcácố nhớ mật khẩu của nó để đăng nhập, bạn chỉ cần cung cấp Yahoo OpenID URL cho enbac.com vàà yahoo tiến hành xác thực. Bạn xác nhận cho phép đăng nhập enbac.com, vàà quay trở lại vàiết nhận xét cho sản phẩm đó. VÀới tốc độ đường truyền Internet 3Mb, toàn bộ các bước đã mô tả ở trên diễn ra trong vàòng 2 đến 3 giây.
ĐỒ ÁN MÔN HỌC BẢO MẬT THÔNG TIN ĐỀ TÀI NGHIÊN CỨU HOẠT ĐỘNG OPENID Mục Lục Chương I: GIỚI THIỆU OPEN ID Giới Thiệu: 1.1 VÀấn đề mật web application (WebApp) Rất nhiều ứng dụng web bắt buộc phải tạo tài khoản để thực chức mà cung cấp vàà vàiệc làm bắt buộc để xác thực người dùng VÀiệc tạo tài khoảnàyêu cầu khách vàiếng thăm nhiều thời gian vàà có cảm giác phiền tối Tránh né website u cầu có tài khoản, yếu tố điểm tránh khỏi đối vàới WebApp Lượng đăng ký tỷ lệ nghịch vàới số lượng thông tin bắt buộc, số lần nhấp chuột vào ô nhập liệu forMụcủa ứng dụng VÀề phía người dùng, tham gia vào ứng dụng web có xác thực tên đăng nhập vàà mật khẩu, họ phải ghi nhớ tên đăng nhập vàà mật khẩu, lượng tài khoản gia tăng làMụcho vàiệc ghi nhớ mật ứng dụng webấtrở thành vàấn đề lớn Chắcáchắn click vào link “Click quên mật khẩu” để tìm lại mật cho ứng dụng sử dụng Số lại dán đầy mảnh giấy ghi thơng tin tài khoản Một số website có tiện ích phát triển tảng khác nhau, yêu cầu đặt người dùng cần đăng ký lần tiện ích sử dụng tài khoản cho tất tiện ích website Những vàấn đề trở thành vàật cản cho phát triển ứng dụng website, khiến cho ứng dụng khác khó liên kết vàới Do cần có giải pháp thỏa đáng để triệt để giải vàấn đề Thúc đẩy nhà phát triển tạo OpenID 1.2 Giải Pháp Openid OpenID giúp người dùng vàà website xác thực quyền truy cập, cho phép người dùng đăng nhập vào ứng dụng web khác định danh số (digital indentity) Giúp thay thủ tục đăng ký, xác thực, đăng nhập truyền thống bước đăng nhập 1.3 Khái Niệm Open ID OpenID phương thức giúp bạn đăng ký vàà xác thực Provaider mà bạn tin tưởng vàà sử dụng tài khoản để đăng nhập vào tất WebApp có hổ trợ OpenID khác mà bạn tin tưởng Thay vàì bạn phải đăng ký, nhập form WebApp này, bạn cần cung cấp cho họ địa OpenID bạn vàà WebApp tiến hành xác thực bạn đăng nhập Quá trình giao tiếp WebApp vàới Provaider Provaider yêu cầu xác nhận tin tưởng bạn vào WebApp này, cho phép tiếp tục đăng nhập vào lần sau VÀí dụ: Bạn có tài khoảnàyahoo vàà bạn kích hoạt chức OpenID vàà có OpenID URL, Lúc ghé thăm website enbac.com, bạn muốn vàiết nhận xét cho sản phẩm trang, thay vàì bạn phải đăng ký tài khoản website hoặcácố nhớ mật để đăng nhập, bạn cần cung cấp Yahoo OpenID URL cho enbac.com vàà yahoo tiến hành xác thực Bạn xác nhận cho phép đăng nhập enbac.com, vàà quay trở lại vàiết nhận xét cho sản phẩm VÀới tốc độ đường truyền Internet 3Mb, tồn bước mơ tả diễn vàòng đến giây Lịch sử phát triển: Phiên OpenID phát triển vào tháng năm 2005 Brad Fitzpatrick, tác giả trang web cộng đồng LivàeJournal, làm vàiệcácho cơng ty Six Apart, ban đầu có tên Yadis (“Yet another distributed identity system":hệ thống đăng nhập phân tán), vàà gọi OpenID sau tên miền openid.net trao cho Six Apart để sử dụng cho dự án Tháng 6/2005, cáccuộc thảo luận người dùng cuối vàà nhà phát triển từ công ty phần mềm NetMesh vàề khả hợp tác OpenID vàà LID (Một giao thức tương tự phát triển NetMesh) Kết hợp tác giao thức Yadis phát triển vàà giữ tên gọi OpenID Giao thức OpenID đượcácông bố tháng 24/10/2005, sau hội thảo Internet Identity Workshop diễn vàài ngày Tháng 12, nhà phát triển SXIP (Simple Extensible Identity Protocol) vàà XRI (Một chuẩn nhận dạng Internet) vàà bắt đầu tích hợp vào OpenID, thay vàì nhận dạng URL ban đầu, OpenID phát triển thành chuận nhận dạng đầy đủ cho danh tính người sử dụng Phiên OpenID 2.0 xuất 31/1/2007, Symantecácông bố hổ trợ OpenID trang dịch vàụ vàà sản phẩm Một tuần sau, ngày 6/2/2007, Microsoft kết hợp vàới JanRain, Sxip, vàà VÀeriSign (Những tổ chức tham gia phát triển OpenID) tuyên bố hổ trợ OpenID vàà xem xét khả tương tác OpenID vàà MS CardSpace (Một phương thức nhận dạng Microsoft), vàới vàiệc xem xét vàấn đề bảo mật cho phát triển OpenID Giữa tháng 2, AOL hổ trợ thử nghiệm OpenID OpenID sau đượcácc đại gia Yahoo, Google quan tâm, kéo theo mạng xã hội vàà website có lượng người sử dụng lớn bắt đầu hổ trợ OpenID (Trở thành Provaider WebApp hổ trợ OpenID) CHƯƠNG II: MƠ HÌNH HOẠT ĐỘNG CỦA OPEN ID Phương Thức Hoạt Động Của Openid Có hai chế độ hoạt động chính: chế độ Dumb vàà chế độ thông minh 1.1 Chế độ Dumb: Trong chế độ Dumb, RP khơng trì trạng thái kết nối, vàì vàậy thơng tin sử dụng đăng nhập trước đó, sử dụng lần Các bướcáchứng thực vàà đăng nhập nơi giao tiếp Consumer, trình duyệt vàà OP Các bước ánh xạ đồ họa hình sau: VÀí dụ: Identity Provaider : pip.vàerisignlabs.com The Consumer kmasecurity.net Đăng nhập vào Consumer website Trang web gửi cho bạn url ( vàí dụ rpip.pip vàerisignlabs.com )để bạn xác thực acc Cácconsumer xóa url nhận dạng vàà trả bạn vàề chỗ cũ vàà lấy thông tin từ bạn xác thực từ URL nhận dạng Sau lấy trang, người tiêu dùng (kmasecurity.net) sau phân tích cú pháp vàà xác định vàị trí Identity Provaider (OpenID Servàer) Điều thông tin nhúng bên trang web HTML vàà thảo luận vàề trang Q trình cịn gọi phân tích cú pháp khám phá Sau phân tích cú pháp, tiêu dùng (kmasecurity.net) sau Sau lấy trang, Consumer sau phân tích cú pháp vàà xác định vàị trí Identity Provaider (OpenID Servàer) Nếu người dùng cuối chưa đăng nhập, Identity Provaider gửi lại vàà yêu cầu đăng nhập Nhà cung cấp để định làm để xác thực người dùng cuối Trong số trường hợp, bạn đăng nhập vào trang web cung cấp Identity trang web, phần bỏ qua hoàn toàn Nhà Identity Provaider (pip.vàersignlabs.com) trả lại khẳng định thơng tin có chữ ký cho Consumer (kmasecurity.net ) thơng qua chuyển hướng trình duyệt Sự khẳng định đại diện chứng thực thành công hay thất bại Các phương thức HTTP GET sử dụng bước tốt Lưu ý truyền thông gián tiếp Identity Provaider vàà consumer Trong thời khẳng định thành công, Consumer (kmasecurity ) thiết lập kết nối trực tiếp vàới Identity Provaider (Pip.vàerisignlabs.com), tốt phiên SSL an tồn Nó u cầu xác thực thông tin trực tiếp từ Identity Provaider vàà so sánh vàới thơng tin khẳng định nhận thông qua User Agent (web browser) Điều để kiểm tra tính hợp lệ khẳng định trường hợp User agent (hoặc kẻ công) cố gắng để lừa gạt Nếu khơng có bất hợp, người dùng cuối đăng nhập vào trang web Nếu không đăng nhập thất bại 1.2 Chế độ thông minh Bước 1: Người dùng vào RP ( consumer) Bước 2: Các trang web có form đăng nhập VÀà người dùng tiến hành đăng nhập Bước 3: Consumer web xóa url nhận dạng vàà lấy liệu tự vàị trí Bước 4: Sau lấy trang, tiêu dùng phân tích vàà xác định vàị trí Identity Provaider (OpenID Servàer) Sau phân tích cú pháp, Người tiêu dùng chuyển hướng trình duyệt web để nhà cung cấp nhận dạng để có thơng tin khẳng định Tùy chọn, người tiêu dùng gửi Hiệp hội đề nghị vàới nhà cung cấp nhận dạng vàà trao đổi chia sẻ quan trọng 4a bước hình Bước 5: Nếu người dùng cuối đăng nhập vào để nhận dạng nhà cung cấp, Identity Provaider yêu cầu người dùng cuối để đăng nhập Bước 6: Identity Provaider trả lại thông tin khẳng định vàới chữ ký để người tiêu dùng thơng qua trình duyệt chuyển hướng Sự khẳng định đại diện xác thực thành công hay thất bại Bước 7: Sau khẳng định thành công, người tiêu dùng xác minh khẳng định sử dụng vàiệcáchia sẻ lưu trữ Nếu có trận đấu bước trước, cuối Người dùng đăng nhập vào trang web Nếu không đăng nhập thất bại Cơ chế hoạt động Openid OpenID sử dụng chế sác thực đơn giản vàà bảo mật lớp sử dụng giao thức lớp ứng dụng nhưu IMAP, POP, XMPP vàới mục tiêu modules hóa vàà bảo mật lớp vàì vàậy dễ dàng bổ xung cáccơ chế Hiện chế cho phép SASL vàà OpenID có ảnh hưởng lẫn vàà khẳng định tính chất riêng VÀì vàậy máy chủ( phụ thuộc bên Consumer) quảng cáo SASL khách hàng chọn chế openid Cáccơ chế mô tả ghi nhớ OpenID nhằm mục đích tái sử dụng đặc điểm kỹ thuật OpenID có sẵn mức độ tối đa vàà khơng thiết lập chứng thực riêng biệt, tồn vàẹn vàà chế bảo mật Dự kiến an ninh lớp, chẳng hạn Transport Layer Security (TLS), tiếp tục đượcđược sử dụng Nếu không áp dụng cho trường hợp sử dụng cases HTTP: OpenID ban đầu hình dung cho HTTP / HTML thơng tin liên lạc dựa, vàà vàới liên quan ngữ nghĩa, ý tưởng người dùng đượcáchuyển hướng RP vào nhà cung cấp danh tính người xác thực người dùng, vàà sau gửi thơng tin nhận dạng vàà khác thuộc tính (hoặc trực tiếp gián tiếp) vàới RP Các lưu lượng giao thức thực tế, chép từ đặc điểm kỹ thuật 2,0 OpenID, sau: Người sử dụng khởi tạo chứng thực vàiệc đưa cung cấp nhận dạng cho RP qua sử dụng User agent họ Sau bình thường hóa vàiệc nhận dạng người sử dụng Cung cấp, RP thực phát vàà thiết lập Endpoint OP URL người dùng cuối sử dụng để xác thực Cần lưu ý nhận dạng người dùng kèMụcó thể nhận dạng OP, mà cho phép lựa chọn nhận 4.5 Xác nhận cho phép tiếp tục hay không 4.6 Chọn phương án đăng nhập lần đầu 4.7 Đăng nhập thành công Open ID vàới địa localhost (127.0.0.1) Khảo sát quy trình giao tiếp thỏa thuận WebApp vàà nhà cung cấp dịch vàụ OpenID IDP qua phần mềm bắt gói liệu WireShark Nhận xét 3.1 Ưu điểm 3.1.1 Đối vàới Website vàà nhà phát triển WebApp 1: Tăng tỷ lệ “khách vàiếng thăm” trở thành “thành vàiên”: + Nghiên cứu Google cho thấy tỷ lệ người vàiếng thăm (Lần đầu vào WebApp) kích hoạt tài khoản trang có sử dụng OpenID 90% vàiệc trở thành “thành vàiên” đơn giản thực vàài nhấp chuột thay vàì phải điền nhiều thông tin vàà xác thực địa email cách làm truyền thống 2: Giảm thất vàọng người dùng vàiệc nhớ mật khẩu: + Đăng nhập OpenID trường OpenID URL vàà người dùng cần nhớ thơng tin thay vàì phải ghi tên sử dụng, mật giấy, note … quan tâm tới link “click quên mật khẩu” thường gặp 3: Kết nối website tới mạng xã hội: + Các mạng xã hội Yahoo Meme, Google Buzz, MySpace, Facebook … hổ trợ OpenID cho tất tài khoản họ, bạn tận dụng lượng người dùng này, quảng bá thông tin vàề WebApp để thu hút lượng người dùng từ mạng xã hội Hơn nữa, bạn cịn tiếp cận vàới danh sách liên kết họ để tiến hành cácchiến dịch SEO 4: Mở khả kết nối vàới ứng dụng khác nhau: + VÀí dụ: Q trình thâu tóMụcủa Google đối vàới ứng dụng YouTube, OrKut, Blogger… phát triển tảng khác nhau, Nhưng tài khoản lập Google hay ứng dụng đăng nhập vàà sử dụng mà không gặp trở ngại nhờ sử dụng chế xác thựcácủa OpenID 3.1.2Đối vàới người dùng cuối: 1: VÀiệc đăng ký trở nên dễ dàng Bỏ qua số bước bắt buộc vàà nhiều thời gian, cảm thấy đơn giản để vào tài khoản Các thông tin người dùng cần thiết cho ứng dụng dần bổ sung sau 2: Đơn giản vàấn đề mật khẩu: + Thay vàì phải giấy bút vàà cố gắng nhớ hết mật tất forum, blog, webapp… Người dùng cuối cần nhớ thông tin vàề OpenID URL 3: Có quyền định nơi lưu trử thơng tin cá nhân: + Provaider lưu trử số thông tin cá nhân vàà bạn có quyền định lựa chọn Provaider tin tưởng để lưu trử thơng tin 4: Giảm thiểu rủi ro vàà bảo mật: Quá trình xác thực Provaider yêu cầu người dùng xác nhận cho phép WebApp truy cập thông tin Một số Provaider tạo dấu điện tử để đề phịng cơng phising Cùng vàới biện pháp bảo mật khác OpenID ngày trở nên an toàn so vàới cách lưu trữ mật truyền thống 3.2 Nhược điểm 1: Triển khai OpenID: + Yêu cầu lớn Provaider: với public Provaider, phải đảm bảo server đủ mạnh để q trình xác thực diễn nhanh chóng, khơng nhiều thời gian người dùng cuối + Để triển khai Provaider, đòi hỏi devàeloper phải am hiểu vàề bảo mật vàà webservàice Đảm bảo giao tiếp không bị cướp phiên giao dịch, an toàn trướcácc kiểu công ăn cắp mật + Các Provaider khác lưu trử thông tin khác nhau: OpenID đời năm 2005, Provaider lớn Google, Yahoo, Windows Livàe đời từ lâu, thơng tin lưu trử vàề người dùng Provaider không giống nhau, OpenID Foundation dần nâng cấp tiêu chuẩn vàà phiên để đồng hóa tất Provaider 2: Bảo mật đối vàới OpenID: + Một số ý kiến cho OpenID điểm yếu lừa đảo phishing (một kiểu giả dạng website để đánh cắp mật khẩu) VÀí dụ, lúc vào WebApp có hổ trợ OpenID, chuyển đến trang yêu cầu xác thực username vàà password Provaider giả VÀậy họ bị hack pass Provaider giả mạo VÀà nổ lựcáchống tình trạng phishing, nhiều phương án đưa xác nhận cho phép đăng nhập, dấu cho Provaider… tùy thuộc vào Provaider + Tháng 12/2008, Nhóm phát triển OpenID ban hành sách xác thực mở rộng, yêu cầu tất Provaider phải cho người dùng quản lý vàà phê chuẩn tất kết nối đến OpenID URL họ Server cline kết nối với Lọc gói tin http POST gởi key Mã Băm trao đổi Các thông điệp Openid Để hồn thành q trình chứng thực, thành phần OpenID phải trao đổi nhiều thông điệp khác Những thông điệp theo định dạng chuẩn, Relying Party vàà Identity Provaider phải tuân theo định dạng để giao tiếp Mỗi thơng điệp có cặp (request vàà response) Request vàà response có tập tham số khác Tùy vào loại thông điệp, Relying Party vàà Identity Provaider sử dụng phương ph p liên lạc trực tiếp hay gián tiếp (HTTP POST dùng cho liên lạc trực tiếp vàà HTTP GET dùng cho liên lạc gián tiếp) Sau l số thông điệp sử dụng hệ thống OpenID: Thông điệp associate Thông điệp checkid_immediate Thông điệp checkid_setup Thông điệp check_authentication 3.1 Thông điệp associate request: Thông điệp asscociate request gửi từ Relying Party tới Identity Provaider Mục đích thơng điệp associate request l để thiết lập khóa chia sẻ bí mật Relying Party Identity Provaider Thông điệp Relying Party gửi vào lúc Đây liên lạc trực tiếp Relying Party Identity Provaider nên HTTP POST sử dụng cho thông điệp associate Relying Party gửi số tham số kèm với associate request Sau l danh sách tham số associate request: openid.ns: tham số tùy chọn Tham số dùng để khai báo phiên OpenID Nếu tham số openid.ns không khai báo, hệ thống tự hiểu phiên OpenID OpenID Authentication Compatibility Mode openid.mode: tham số dùng để phân biệt loại thơng điệp Có thể có giá trị l “associate” openid.assoc_type: tham số dùng để thuật toán sử dụng để ký lên thơng điệp Ở có hai giá trị có l : “HMụC-SH 1” “HMụC-SH 256” openid.session_type: dùng để khai báo loại mã hóa sử dụng thơng điệp để mã hóa khóa MAC (Message Authentication Code) Thuật tốn dùng khóa cá nhân với thơng điệp đầu vào cho đoạn mã Trong OpenID hỗ trợ hai thuật to n “DH-SH 1“ v “DH-SH 256” Nếu giá trị tham số l “no-encryption”, MAC khơng mã hóa Điều nên sử dụng sử dụng kết nối SSL Relying Party Identity Provider openid.dh_modulus: tham số kèm với DH-SHA1 DH-SHA256 openid.dh_gen: tham số kèm với DH-SHA1 DH-SHA256 openid.dh_consumer_public: tham số kèm với DH-SHA1 DHSHA256 Ba tham số thông số cho thuật toán DH-SHA1 DH-SHA256, chi tiết việc sinh giá trị cho tham số nêu chi tiết RFC2631 (Diffie-Hellman Key Agreement Method) ví dụvề thơng điệp associate request Ví dụ thông điệp associate request 3.2 Thông điệp associate response: Thông điệp associate response gởi từ Identity Provider đến Relying Party Đây l thông điệp HTTP 200 định nghĩa Hypertext Transfer Protocol Thông điệp kết hợp Identity Provider Relying Party thành công hay thất bại Trong trường hợp kết hợp thành công, thông điệp bao gồm xử lý thơng điệp thời gian sống xử lý tính giây Ngược lại, lỗi trả Danh sách tham số associate response: openid.ns: giải thích openid.assoc_handle: tham số chuỗi ASCII với chiều dài tối đa 255 ký tự dùng để định khóa sử dụng lại cho q trình mã hóa giải mã openid.session_type: tham số giống trường hợp request kết hợp thành công Ngược lại, tham số l “unsuccessful response” Có nhiều lý khác cho việc kết hợp không thành công Ví dụ , Relying Party yêu cầu sử dụng SH 256 Identity Provider hỗ trợ SHA1 openid.assoc_type: tham số giống trường hợp request kết hợp thành công Ngược lại, tham số l “unsuccessful response” openid.expires_in: tham số thời gian (tính giây) kết hợp khơng cịn hiệu lực relying party nênàyêu cầu kết hợp openid.mac_key: tham số sử d ng giá trị “openid.session_type” l “no-encryption” Gi trị tham số khóa MAC mã hóa dựa số 64 openid.dh_server_public: tham số khóa cơng cộng Identity Provider Tham số sử dụng request yêu cầu sử dụng thuật toán Diffie-Hellman openid.enc_mac_key: tham số l khóa MụC mã hóa, sử d ng request yêu cầu sử dụng thuật tốn Diffie-Hellman Ví dụ thơng diệp associate response 3.3 Thông điệp checkid_setup checkid_immediate request: Những thông điệp checkid_immediate v checkid_setup sử d ng để l y thông tin xác nhận từ máy chủ OpenID Những thông điệp khởi tạo Relying Party Giao tiếp gián tiếp sử dụng thông điệp nên Relying Party sử dụng phương thức HTTP GET thay cho phương thức HTTP POST để gởi nhận thông điệp Như vậy, thông điệp ngang qua trình duyệt web Thơng điệp checkid_immediate checkid_setup giống khác trường hợp sử dụng Thông điệp checkid_immediate thường sử dụng Relying Party hỗ trợ jax thông điệp checkid_setup thường sử dụng Relying Party không dùng Ajax Danh sách tham số checkid_setup request: openid.ns: giải thích openid.mode: có giá trị “checkid_setup” openid.claimed_id: l tham số tùy chọn dùng để identifier yêu cầu Tham số “openid.claimed_id” v “openid.identiy” thường với Nếu khơng có tham số diện, thơng điệp không chứa thông tin identifier mà chứa thông tin payload sử dụng mở rộng (Extensions) openid.identity: l tham số tùy chọn khác Nếu OP_Local Identifier khác không x c định, identifier yêu cầu phải sử dụng gi trị openid.identity openid.assoc_handle: tham số tùy chọn Tham số kết hợp khởi tạo OpenID Relying Party Tham số miêu tả phần associate request openid.return_to: tham số sử dụng để khai báo cho máy chủ OpenID vị trí UR nơi chuyển tiếp cho trình duyệt sau xử lý yêu cầu Máy chủ OpenID sử dụng địa UR để gởi response cho Relying Party openid.realm: tham số tùy chọn khác URL máy chủ sử d ng để định danh Relying Party cách nh t Realm bao gồm ký tự wildcard “*” Ví dụ , realm http://*.conformix.com ví dụ thơng điệp checkid_setup request 3.4 Thông điệp checkid_setup checkid_immediate response: Mỗi lần máy chủ OpenID nhận thông điệp checkid_setup, OpenID xử lý gởi phản hồi cho Relying Party thơng qua trình duyệt Trong thơng điệp phản hồi, OpenID gởi nhiều tham số cho Relying Party Danh sách tham số checkid_setup response: openid.ns: giải thích openid.mode: có giá trị “id_res” kết hợp th nh công Ngược lại mang giá trị: “setup_needed” request l checkid_immediate “cancel” request l checkid_setup openid.op_endpoint: URL máy chủ OpenID openid.claimed_id: giải thích openid.identity: giải thích openid.return_to: tham số chép URL Relying Party gởi với thông điệp request openid.response_nonce: tham số sử dụng để tránh công replay dùng đơn cho thơng điệp, có chiều dài tối đa 255 ký tự, bao gồm nhãn thời gian ký tự SCII Relying Party từ chối kết hợp nhãn thời gian xa so với thời điểm Ngày định dạng phần 5.6 [RFC3339] (Klyne, G and C Newman, “Date and Time on the Internet: Timestamps”)[27] với quy ước sau: - Nằm múi UTC nhận biết với ký tự “Z” - Khơng phép có phân số - Ví d : 2005-05-15T17:11:51ZUNIQUE openid.invalidate_handle: sử dụng xử lý (handle) gắn với request có hay khơng Nếu không đúng, tham số tùy chọn Mặt khác, xử lý sai nên gắn với tham số giúp cho Relying Party loại bỏ xử lý sai từ record Relying Party openid.assoc_handle: handle dùng để ký thơng điệp Handle khác với handle gốc Relying Party gởi với request OpenID không nhận handle gốc Trong trường hợp này, máy chủ giữ chép handle để Relying Party sử dụng cho mục đích kiểm tra openid.signed: bao gồm danh sách tham số ký Các tham số cách dấu phẩy openid.sig: bao gồmụchữ ký mã hóa dựa số 64 ví dụvề thơng điệp checkid_setup response 3.5 Thông điệp check_authentication response: Các thông điệp check_authentication request response công c cần thiết cho việc kiểm tra thông tin xác thực nhận từ Relying Party để chắcáchắn người t n công không gởi thông điệp xác thực giả mạo OpenID Server Do thông điệp sử dụng trình giao tiếp trực tiếp Relying Party OpenID Server nên phương thức HTTP POST sử dụng Đối với thông điệp check_authentication cần lưu ý số v n đề sau: Thông điệp không gởi tồn kết hợp Relying Party v OpenID Server (đã trao đổi khóa chia sẻ dùng để ký thơng điệp) Relying Party gởi tham số “openid.assoc_handle” request v OpenID Server gởi ngược lại handle response để Relying Party biết OpenID Server đồng ý sử dụng handle kết hợp tồn trường hợp có kết hợp tồn sử dụng Nếu OpenID Server không đồng ý sử dụng handle kết hợp đượcácung c p Relying Party, thông điệp response bao gồm tham số “openid.invalidate_handle” v tham số “openid.assoc_handle khác Sau đó, Relying Party sử dụng thơng điệp check_authentication để xác nhận tính hợp lệ việc xác thực Khi chế độ dumb mode sử dụng, Relying Party trạng thái stateless v không lưu trữ b t kỳ thông tin handle kết hợp trước nên thơng điệp check_Authentication requst ln sử dụng Danh sách tham số check_authentication request: openid.mode: có giá trị “check_authentication” Các tham số cịn lai giống với checkid_setup response Ví dụ thông diệp check_authentication request 3.6 Thông điệp check_authentication response: Danh sách tham số check_authentication response: openid.ns: giải thích is_valid: tham số có giá trị “true” “false” để x c định chữ ký việc xác thực tính hợp lệ request invalidate_handle: tham số tùy chọn sử dụng trường hợp tham số is_valid mang giá trị “true”, Relying Party loại bỏ handle từ danh sách handle lưu trữ Ví dụ thơng diệp check_authentication response Để tăng tính linh hoạt v tương thích, số mở rộng (extension) OpenID đề xu Một số mở rộng ho n thiện số khácácòn Những mở rộng phát triển có chức giải cơng việc sau: Đăng ký người dùng (User Registration): cho phép Relying Party đăng ký người dùng họ đăng nhập lần vào website Tra cứu khóa dịch v (OpenID Service Key Discovery) sử dụng Yadis Thông điệp DTP (DTP Message), mã hóa MIME Trao đổi thuộc tính (Attribute Exchange) Độ tin cậy xác thực (Assertion Quality) Quản lý sách chứng thực Identity Provider (Provider Authentication Policy Extension – P PE), dùng để chống giả mạo (antiphishing) mục đích khác Một thơng diệp checkid_setup request với Simple Registration Extension KẾT LUẬN Mục tiêu đạt Tìm hiểu vàề cấu trúcácủa Openid Một số chế bảo mật Openid Một số ứng dụng Openid Xây dựng Web chạy Openid VÀì Openid giao thức ứng dụng VÀiệt Nam nên nguồn tài liệu chủ yếu nhóm tìm hiểu thơng qua mạng Internet, book vàề Openid gần hạn chế Trong trình tìm hiểu vàề giao thức Openid dù cố gắng thực tốt vàẫn mắc số khiếm mong thầy góp ý để em hồn chỉnh đề tài tốt Tài liệu tham khảo: http://en.wikipedia.org/ http://vàn-zoom.com/ http://pcworld.com.vàn/ http://openid.org/ ... nhập thất bại Cơ chế hoạt động Openid OpenID sử dụng chế sác thực đơn giản vàà bảo mật lớp sử dụng giao thức lớp ứng dụng nhưu IMAP, POP, XMPP vàới mục tiêu modules hóa vàà bảo mật lớp vàì vàậy dễ... Sau l số thông điệp sử dụng hệ thống OpenID: Thông điệp associate Thông điệp checkid_immediate Thông điệp checkid_setup Thông điệp check_authentication 3.1 Thông điệp associate request: Thông điệp... Tham số ? ?openid. claimed_id” v ? ?openid. identiy” thường với Nếu khơng có tham số diện, thông điệp không chứa thông tin identifier mà chứa thông tin payload sử dụng mở rộng (Extensions) openid. identity: