Xác thực trong các hệ thống phân tán

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu cơ sở hạ tầng khóa công khai PKI ứng dụng chứng thực cho các giao dịch hành chính công điện tử​ (Trang 55 - 58)

4. Những nội dung nghiên cứu chính

2.3.3 Xác thực trong các hệ thống phân tán

Trong các hệ thống phân tán, nhiều máy chủ cung cấp dịch vụ được quản lý bởi một trung tâm xác thực duy nhất. Giao thức xác thực trong các hệ thống này phải đảm bảo được 2 yêu cầu cơ bản:

− Đảm bảo an toàn đối với thông tin xác thực (tên đăng nhập và mật khẩu không được truyền đi trực tiếp trên mạng).

− Người dùng chỉ cần đăng nhập một lần cho phiên làm việc nhưng có khả năng sử dụng tất cả các dịch vụ có trong hệ thống.

Trong một hệ thống mạng có nhiều máy chủ cung cấp dịch vụ khác nhau, như Web Server, Mail Server, Database Server… Khi người sử dụng đăng nhập vào hệ thống, người sử dụng này phải có khả năng truy xuất đến tất cả các dịch vụ trên mạng (tùy theo quyền được cấp) mà không phải nhập lại tên đăng nhập và mật khẩu cho từng dịch vụ. Cơ chế quản lý tập trung này cung cấp sự tiện lợi cho cả người sử dụng lẫn hệ thống.

Một thủ tục xác thực điển hình gồm các bước như sau:

− Một người dùng đăng nhập từ một máy con (C ) trong hệ thống và yêu cầu truy xuất đến máy chủ V.

− Máy con C yêu cầu người dùng cung cấp tên đăng nhập và mật khẩu rồi sau đó chuyển thông tin này cho trung tâm xác thực AS (Authentication Server).

− Máy chủ AS kiểm tra xem tên đăng nhập và mật khẩu có hợp lệ hay không, đồng thời kiểm tra xem người dùng này có được phép truy xuất các dịch vụ trên máy chủ V hay không.

− Nếu cả hai việc kiểm tra trên đều thành công thì người dùng được phép truy xuất dịch vụ trên máy chủ V. Để làm được việc đó, AS tạo ra một thẻ truy xuất (ticket) chứa các thông tin bao gồm nhận dạng của người dùng, địa chỉ mạng của máy con và nhận dạng của máy chủ V. Thẻ truy xuất này được mã hóa bằng khóa bí mật dùng chung giữa AS và V. Thẻ truy xuất cũng được gửi cho C.

− Bắt đầu từ đây, C có thể yêu cầu các dịch vụ của V bằng cách gởi các bản tin có gắn kèm thẻ truy xuất vừa tạo ra cho V. Máy chủ V sẽ giải mã thẻ truy xuất và chấp nhận cho C truy xuất các dịch vụ của mình.

C → AS: IDC + PC + IDV

C → V: IDC + Ticket

Ticket = E([IDC + ADC + IDV], KV) Trong đó:

C: Máy con

AS: máy chủ xác thực (Authentication server). V: máy chủ cung cấp dịch vụ.

IDC: Nhận dạng (tên đăng nhập) của người dùng. IDV: Nhận dạng của máy chủ V.

PC: Mật khẩu của người dùng. ADC: Địa chỉ mạng của máy con.

KV: Khóa bí mật của máy chủ cung cấp dịch vụ V.

Thủ tục xác thực như trên giải quyết được vấn đề bảo mật bằng cách đưa ra khái niệm thẻ truy xuất (ticket), trong đó các thông tin bí mật được mã hóa trong một bản tin đặc biệt trước khi luân chuyển trên mạng. Tuy nhiên, vẫn còn hai vấn đề chưa được giải quyết:

1) Nếu người dùng có nhu cầu sử dụng dịch vụ nhiều lần, hoặc sử dụng nhiều dịch vụ khác nhau trên các máy chủ khác nhau, vì vậy người dùng phải thực hiện thủ tục xác thực nhiều lần, tức là phải nhập lại mật khẩu nhiều lần.

2) Thủ tục xác thực vẫn còn một bước (bước đầu tiên) trong đó thông tin xác thực (mật khẩu) được gửi đi trực tiếp trên mạng mà không mã hóa.

a. Thủ tục sau đây sẽ giải quyết hai vấn đề trên:

• Khi người dùng đăng nhập hệ thống: (1) C → AS: IDC + IDtgs

(2) AS → C: E(Tickettgs, Kc)

• Khi người dùng truy xuất một loại dịch vụ (per service type): (3) C → TGS: IDC + IDV + Tickettgs

(4) TGS → C: Ticketv

• Khi người dùng truy xuất một phiên giao dịch cụ thể (per service session): (5) C → V: IDC + Ticketv

Trong đó:

Tickettgs = E([IDC + ADC + IDtgs + TS1 + Lifetime1], Ktgs)

Trong thủ tục trên, một thành phần mới được thêm vào hệ thống xác thực là máy chủ cấp thẻ TGS (Ticket Granting Server).

Khi người dùng xác thực thành công với AS, thay vì cấp thẻ sử dụng dịch vụ trực tiếp cho người dùng, AS chỉ cấp cho người dùng thẻ truy xuất của TGS, có tác dụng như một xác nhận đây là một người dùng hợp hệ. Kể từ đó về sau, mỗi khi người dùng cần truy xuất dịch vụ nào thì chỉ cần gởi thẻ truy xuất và yêu cầu của mình đến TGS để được cấp thẻ truy xuất dịch vụ.

Như vậy, AS chỉ cần cấp thẻ cho người dùng một lần, hay nói cách khác, thẻ có thể dùng lại, cả trong trường hợp người dùng sử dụng dịch vụ nhiều lần hoặc sử dụng nhiều dịch vụ khác nhau mà không cần phải nhập lại mật khẩu.

Thủ tục này được mô tả chi tiết như sau:

− Máy con C yêu cầu một thẻ xác nhận người dùng hợp lệ (Ticket Granting Ticket) bằng cách gởi nhận dạng của người dùng cho AS, trong đó có nhận dạng của TGS.

− AS gửi lại thẻ xác nhận người dùng hợp lệ cho máy con nhưng được mã hóa với khóa là mật khẩu của người dùng (KC). Do đó, nếu người dùng cung cấp đúng mật khẩu thì thẻ này được giải mã thành công, ngược lại, việc xác thực xem như kết thúc không thành công.

Như vậy, mật khẩu của người dùng đã không được gởi đi trực tiếp trên mạng. Do thẻ này có khả năng dùng lại, nên để quản lý việc tồn tại của nó, trong thẻ được gắn thêm một nhãn thời gian quy định thời gian tồn tại hợp lệ của thẻ. Để tránh trường hợp thay đổi và giả mạo thẻ, thẻ được mã hóa một lần nữa bằng khóa bí mật của AS và TGS.

− Sau khi đã có thẻ xác nhận người dùng hợp lệ, máy con có thể yêu cầu dịch vụ trên máy chủ V bằng cách yêu cầu thẻ sử dụng dịch vụ (Service-granting Ticket) từ TGS. Thông tin gởi đến cho TGS bao gồm nhận dạng của máy chủ V, thẻ xác nhận người dùng hợp lệ và tên đăng nhập của người dùng.

− TGS giải mã thẻ xác nhận người dùng hợp lệ để kiểm tra, nếu hợp lệ thì cấp thẻ truy xuất dịch vụ cho người dùng. Thẻ này được mã hóa bằng khóa bí mật của V và TGS.

− Sau khi có thẻ truy xuất dịch vụ, người dùng có thể sử dụng dịch vụ trên máy chủ V.

Như vậy, thủ tục trên giải quyết được 2 vấn đề: dùng lại thẻ và không gởi mật khẩu trực tiếp trên mạng.

Tuy nhiên, lại thêm 2 vấn đề khác nảy sinh:

− Thứ nhất, nếu thời gian tồn tại của các ticket quá ngắn, người dùng có thể phải nhập lại mật khẩu để tạo thẻ mới. Nếu thời gian này quá dài, nguy cơ bị lấy cắp thẻ tăng lên. Do đó, xác nhận một thẻ, máy chủ (TGS hoặc V) phải biết chắc rằng mình đang làm việc với đúng người dùng có tên đăng nhập chứa trong thẻ.

− Thứ hai, song song với việc người dùng xác thực với máy chủ, thì cũng cần phải có thao tác xác thực ngược lại từ máy chủ đến người dùng để loại trừ trường hợp chính máy chủ bị giả mạo.

Đây chính là tồn tại được giải quyết bởi giao thức xác thực Kerberos.

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu cơ sở hạ tầng khóa công khai PKI ứng dụng chứng thực cho các giao dịch hành chính công điện tử​ (Trang 55 - 58)