Định nghĩa
Giao thức xác thực mở rộng (EAP), được xác định trong RFC 3748, hoạt động như một khuôn khổ cho truy cập mạng và các giao thức xác thực.
EAP cung cấp một bộ thông điệp giao thức có thể gói gọn các phương thức xác thực khác nhau sẽ được sử dụng giữa một máy khách và một máy chủ xác thực.
EAP có thể hoạt động trên nhiều các cơ sở cấp network và data link, bao gồm các liên kết điểm-điểm, mạng LAN và các cơ sở khác mạng và có thể đáp ứng nhu cầu xác thực của các liên kết khác nhau và mạng. Hình dưới minh họa các lớp giao thức hình thành bối cảnh cho EAP.
EAP hỗ trợ nhiều phương thức xác thực. Đây là những gì có nghĩa là bằng cách tham khảo để EAP mở rộng. EAP cung cấp dịch vụ vận chuyển chung để trao đổi thông tin xác thực giữa hệ thống máy khách và máy chủ xác thực. Dịch vụ transport EAP cơ bản được mở rộng bằng cách sử dụng một giao thức xác thực mở rộng, hoặc phương thức cụ thể, được cài đặt trong cả EAP client và Authentication server.
Nhiều phương thức đã được xác định để hoạt động trên EAP.
Các phương pháp EAP thường được hỗ trợ:
- EAP-TLS (Bảo mật lớp vận chuyển EAP): EAP-TLS (RFC 5216) xem thêm về giao thức TLS (được mô tả trong phần tiếp theo) được đóng gói trong EAP message. EAP-TLS sử dụng giao thức bắt tay trong TLS, không phải phương pháp mã hóa. Máy khách và máy chủ xác thực lẫn nhau bằng digital certificate. Khách hàng tạo khóa bí mật pre-master key bằng cách mã hóa một số ngẫu nhiên với khóa công khai của máy chủ và gửi nó đến máy chủ. Cả máy khách và máy chủ đều sử dụng khóa bí mật pre-master key để tạo chung khóa bí mật.
- EAP-TTLS (TLS tunneled EAP): EAP-TTLS giống như EAP-TLS, ngoại trừ chỉ máy chủ có phải có chứng chỉ để xác thực chính nó với máy khách. Như trong EAP-TLS, một kết nối an toàn (tunnel) được thiết lập với các khóa bí mật, nhưng kết nối đó được sử dụng để tiếp tục quá trình xác thực bằng cách máy khách và máy chủ sử dụng bất kỳ phương pháp EAP nào như phương pháp PAP (Password Authentication Protocol) và CHAP(Challenge-Handshake Authentication Protocol). EAP-TTLS được định nghĩa trong RFC 5281.
- EAP-GPSK (EAP Generalize Pre-Share Key): EAP-GPSK, được định nghĩa trong RFC 5433, là giao thức EAP để xác thực lẫn nhau và tạo ra khóa phiên bằng Pre-share key (PSK). EAP-GPSK là giao thức EAP dựa trên các Pre-share key và sử dụng các thuật toán mã hóa khóa bí mật. Do đó, phương pháp này hiệu quả cao về mặt tính toán, nhưng đòi hỏi phải có các khóa chia sẻ trước giữa mỗi client và EAP. Việc thiết lập các khóa bí mật cặp này là một phần của đăng ký peer, và do đó, phải đáp ứng các điều kiện tiên quyết của hệ thống. Nó cung cấp một kênh liên lạc bảo mật và khi xác thực lẫn nhau thành công đảm bảo cho cả hai bên giao tiếp và được thiết kế để xác thực qua các mạng không an toàn như IEEE 802.11. EAP-GPSK không yêu cầu bất kỳ mật mã khóa công khai nào. Việc trao đổi giao thức phương thức EAP được thực hiện trong tối thiểu 4 message.
- EAP-IKEv2: Nó dựa trên giao thức Internet Key Exchange phiên bản 2(IKEv2), được mô tả trong phần tiếp theo. Nó hỗ trợ xác thực lẫn nhau và thiết lập session key bằng nhiều phương pháp. EAP-TLS được định nghĩa trong RFC 5106.
EAP Exchanges dù sử dụng phương thức nào để xác thực, thông tin xác thực và thông tin giao thức xác thực đều được mang trong các thông điệp EAP. RFC 3748 định nghĩa trao đổi thông điệp EAP là xác thực thành công.
Xem thêm Kiểm tra lỗ hổng Bypassing Authentication Schema
Trong định nghĩa của RFC 3748, xác thực thành công là trao đổi các thông báo EAP, do đó trình xác thực quyết định cho phép truy cập bởi peer và peer quyết định sử dụng quyền truy cập này. Quyết định xác thực thường liên quan đến xác thực và ủy quyền; peer có thể xác thực thành công với authendicator, nhưng quyền truy cập có thể bị từ chối bởi người authendicator vì lý do chính sách.
Hình trên chỉ ra một cấu trúc EAP thường được sử dụng.
Xem thêm Xác thực trong Laravel
Các thành phần EAP:
- EAP ngang hàng: Máy tính khách đang cố truy cập mạng.
- Trình xác thực EAP: Điểm truy cập hoặc NAS yêu cầu xác thực EAP trước khi cấp quyền truy cập vào mạng.
- Máy chủ xác thực: Máy tính sử dụng phương pháp EAP cụ thể với máy ngang hàng EAP, xác thực thông tin đăng nhập ngang hàng EAP và cho phép truy cập vào mạng. Thông thường, máy chủ xác thực là máy chủ Dịch vụ người dùng xác thực từ xa (RADIUS).
Máy chủ xác thực hoạt động như một backend server có thể xác thực EAP các thiết bị ngang hàng như một dịch vụ thông qua các EAP authenticator. EAP authenticator sau đó đưa ra quyết định có cấp quyền truy cập hay không. Điều này được gọi là chế độ thông qua EAP. Ít phổ biến hơn, trình xác thực đảm nhận luôn vai trò của máy chủ EAP; nghĩa là, chỉ có hai bên tham gia vào việc thực hiện EAP.
Bước đầu tiên, một giao thức cấp thấp hơn, chẳng hạn như PPP (giao thức điểm-điểm) hoặc IEEE 802.1X, được sử dụng để kết nối với EAP authenticator. Phần mềm được sử dụng tại EAP peer để hỗ trợ xác thực EAP . Các thông điệp EAP chứa thông tin phù hợp cho phương thức EAP đã chọn sau đó được trao đổi giữa máy ngang hàng EAP và máy chủ xác thực.
Xem thêm Kiểm tra lỗ hổng bảo mật Cross-Site Request Forgery (CSRF)
Cấu trúc của EAP có thể bao gồm:
- Code: Xác định Loại thông điệp EAP. Các mã là Request(1), Response(2), Success (3) và Failure (4).
- Identified: Được sử dụng để so sánh khớp Request và Response.
- Length: Cho biết độ dài, tính bằng octet của thông báo EAP, bao gồm các trường Code, Identified, Length và Data.
- Data: Chứa thông tin liên quan đến xác thực. Thông thường, trường Dữ liệu bao gồm trường loại dữ liệu, cho biết loại dữ liệu được mang và trường dữ liệu.
Thông báo Thành công và Thất bại không bao gồm trường Dữ liệu.
Việc trao đổi xác thực EAP tiến hành như sau. Sau khi trao đổi tầng thấp hơn xác lập nhu cầu trao đổi EAP, authenticator sẽ gửi Request tới peer để yêu cầu danh tính và người ngang hàng gửi Response với thông tin nhận dạng.
Tiếp theo là một chuỗi các Request của authendicator và Response của peer để trao đổi thông tin xác thực. Thông tin được trao đổi và số lượng trao đổi Response và Request cần thiết phụ thuộc vào phương thức xác thực. Cuộc trao đổi tiếp tục cho đến khi (1) authendicator xác định rằng nó không thể xác thực peer và truyền Lỗi EAP hoặc (2) authendicator xác định rằng xác thực thành công đã xảy ra và truyền thông điệp thành công EAP.
Hình dưới là một ví dụ về trao đổi EAP. Không hiển thị trong hình là một thông điệp được gửi từ EAP peer đến authendicator bằng một số giao thức khác ngoài EAP và yêu cầu trao đổi EAP để cấp quyền truy cập mạng.
Xem thêm Giao thức Mạng trong TCP/IP
Một giao thức được sử dụng cho mục đích này là IEEE 802.1X, được thảo luận trong phần tiếp theo. Cặp thông điệp Request và Response EAP đầu tiên thuộc loại xác định identity, trong đó trình xác thực yêu cầu danh tính peer và peer trả về danh tính được yêu cầu của nó trong thông báo Response. Response này được chuyển qua authendicator đến Authendication server. Các thông điệp EAP sau đó được trao đổi giữa peer và Authendication server.
Khi nhận được thông điệp Response danh tính từ peer, máy chủ sẽ chọn phương thức EAP và gửi tin nhắn EAP đầu tiên với trường loại phương thức xác thực. Nếu peer hỗ trợ và chấp nhận phương thức EAP đã chọn, nó sẽ trả lời với thông điệp Phản hồi tương ứng cùng loại. Mặt khác, peer gửi NAK, và máy chủ EAP chọn phương thức EAP khác hoặc hủy bỏ việc thực thi EAP với thông báo lỗi.
Phương thức EAP xác định số lượng cặp Request / Response. Trong quá trình trao đổi, thông tin xác thực bao gồm cả thông tin quan trọng về peer, được trao đổi. Việc trao đổi kết thúc khi máy chủ xác định rằng xác thực đã thành công hoặc không thể thực hiện thêm lần nào nữa và xác thực đã thất bại.