SessionLock (Adida, 2008) và API dựa trên web khác, chẳng hạn như Google và Nền tảng API Facebook, nhưng không yêu cầu hỗ trợ SSL từ trang web RP.
7.3. Thực hiện tham chiếu
để đánh giá các cơ chế bảo vệ đề xuất, chúng tôi phát triển một thực hiện tham khảo. Chúng tôi lần đầu sử dụng OpenID4Java (Bufu, 2009) thư viện để tăng thêm hỗ trợ OpenID trong một mã nguồn mở ứng dụng J2EE web, 16 và sau đó thực hiện các biện pháp đối phó trên các ứng dụng web.
Các cơ chế Web kẻ tấn công phòng thủ được thực hiện hoàn toàn trên phía máy chủ bằng cách sử dụng javax.crypto.Mac lớp để tính toán và xác nhận các thẻ HMAC. Chúng tôi sử dụng khóa phiên DH trao đổi của các trình duyệt và máy chủ RP như là chìa khóa cho các chức năng HMAC. Cả hai yêu cầu đăng nhập và xác thực thẻ Yêu cầu xác nhận được tính trong 10 dòng mã (LOC).
Đối với việc thực hiện phía máy chủ của cơ chế MITM quốc phòng của chúng tôi, lớp BigInteger Java được sử dụng để tính toán các khóa phiên DH với khách hàng (8 LỘC ). Để xác nhận token HMAC tính bởi trình duyệt, các lớp Mac Java được sử dụng một lần nữa (10 LOC). Trên phía khách hàng, các đối tượng XMLHttpRequest được sử dụng để bắt đầu một trao đổi khóa DH với máy chủ, và các thư viện JavaScript sau được sử dụng thông qua trong việc thực hiện tham khảo:
bigint (http://leemon.com/crypto/BigInt.html) : Tính toán khóa phiên DH KC (7 LOC).
Cửa hàng và lấy chìa khóa phiên DH từ trình duyệt lưu trữ địa phương (1 LOC): jStorage (http://www.jstorage.info).
jshash (http://pajhome.org .uk / hầm / md5 / scripts.html): Tính xác thực thẻ HMAC cho Yêu cầu Auth (15 LOC).
7.4. Hạn chế
cơ chế bảo vệ Web tấn công của chúng tôi có thể dễ dàng imple-mented bởi RP, bởi vì hàm HMAC và tất cả các dữ liệu cần thiết là có thể tiếp cận với họ. Mặt khác, các biện pháp đối phó MITM cần JavaScript để được kích hoạt trong trình duyệt, và mã phía máy khách cần phải được viết một cách qua trình duyệt. Ngoài ra, mặc dù những kẻ tấn công MITM không thể mạo danh người dùng bằng cách khởi xướng yêu cầu thay mặt cho các nạn nhân, kẻ tấn công có thể vẫn đọc tất cả các dữ liệu unen-crypted giữa máy khách và máy chủ, và làm thay đổi nội dung trang web trả lời. Trong khi mối đe dọa này tồn tại và là quan trọng, phòng chống và giảm nhẹ của nó nằm ngoài phạm vi của bài viết này.
8. Kết luận
tương tự như cách các thẻ tín dụng làm giảm ma sát trả tiền cho hàng hóa và dịch vụ, hệ thống OpenID đang dự định để làm giảm ma sát sử dụng web. Trong khi OpenID là được nhanh chóng thông qua, cho RP và người vô gia cư (và có thể sử dụng) ủy thác
16 hiệu sách từ http://gotocode.com.
Trao đổi các thông tin nhạy cảm qua giao thức OpenID, họ cần phải có niềm tin vào tính an toàn của nó.
Trong công việc này, chúng tôi đã tiến hành một mô hình chính thức kiểm tra phân tích các giao thức OpenID 2.0, và một thực nghiệm evalua-tion của 132 trang web OpenID-kích hoạt. Mô hình của chúng tôi kiểm tra phân tích cho thấy các giao thức OpenID không cung cấp một tính xác thực hoặc đảm bảo tính toàn vẹn cho các yêu cầu chứng thực, và các giao thức thiếu ràng buộc theo ngữ cảnh trong các thông điệp giao thức và các trình duyệt ban hành những yêu cầu. Kết quả đánh giá thực nghiệm của chúng tôi cho thấy các lỗ hổng đậy được phổ biến trong việc triển khai RP-từ thực tế, bao gồm cả các trang web phổ biến RP lis-ted trên Google Top 1000 trang web. Ngoài ra, chúng tôi thấy biện pháp đối phó hiện chưa đầy đủ (ví dụ, không bảo vệ sự toàn vẹn và xác thực), hoặc đã được thực hiện không chính xác (ví dụ, bỏ bê phương thức GET hoặc Auth Yêu cầu khi thực hiện bảo vệ CSRF SSO). Chúng tôi cũng thấy rằng OpenID dịch vụ proxy cung cấp một giao diện tích hợp cho RP để tương tác với các hệ thống WSSO khác nhau, nhưng nhiều RP không thể bảo vệ các thẻ truy cập trở lại. Hơn nữa, evalua-tion của chúng tôi cho thấy chỉ có 19% các trang web RP trong đánh giá sử dụng SSL của chúng tôi, và 84% trong số đó là dễ bị tổn thương để việc cướp quyền thông qua một cookie phiên nghe trộm sau khi đăng nhập. Chúng tôi tin rằng những lý do đằng sau thực tế này xứng đáng được tiếp tục điều tra.
Đối với một giao thức dựa trên HTTP chuyển hướng của các thông điệp giao thức được chuyển qua trình duyệt, phân tích của chúng tôi cho thấy rằng RP có để đảm bảo rằng yêu cầu authenti-cation có nguồn gốc từ trang web của RP chính nó, không bị thay đổi trong quá trình truyền, và khẳng định xác thực được truyền từ cùng một trình duyệt thông qua đó các yêu cầu đã được ban hành. Chúng tôi cung cấp một cơ chế bảo vệ đơn giản và khả năng mở rộng cho RP để đảm bảo tính xác thực và tính toàn vẹn của thông điệp giao thức. Ngoài ra, đối với những RP mà tìm thấy việc triển khai SSL không thực tế, các biện pháp đối phó MITM chúng tôi đề nghị có thể được sử dụng như là một thay thế. Điều này quan trọng bởi vì các cuộc tấn công mạo danh là có thể và dễ dàng để khởi động, ngay cả sau khi xác thực OpenID, khi tính xác thực và tính toàn vẹn của các yêu cầu HTTP không được bảo vệ. Tuy nhiên, chúng tôi đề nghị rằng sự phát triển giao thức tương lai của OpenID nên cung cấp tính xác thực, confi-dentiality, và bảo vệ toàn vẹn trực tiếp trong t
đang được dịch, vui lòng đợi..
