6.3.1. Mở đầu
Kerberos lμ một dịch vụ xác thực đ−ợc xây dựng từ dự án Athena của MIT. Vấn đề mμ Kerberos muốn giải quyết lμ: Trong một môi tr−ờng phân tán mở, ở đó các trạm lμm việc muốn truy nhập các dịch vụ trên các máy chủ phân tán qua mạng. Ta muốn các máy chủ có khả năng hạn chế truy nhập đối với các ng−ời dùng hợp lệ vμ có thể xác thực các yêu cầu đối với mọi dịch vụ.
Trong môi tr−ờng nμy một trạm lμm việc không thể tự xác định đ−ợc đúng các ng−ời dùng của nó cho các dịch vụ mạng.
Trên thực tế có ba nguy cơ sau:
- Ng−ời sử dụng có thể sử dụng một trạm lμm việc nμo đó vμ
giả mạo lμ một ng−ời dùng khác.
- Ng−ời sử dụng (user) có thể thay đổi địa chỉ mạng của một trạm lμm việc để các yêu cầu đ−ợc gửi từ trạm nμy xuất hiện nh−
thể từ trạm mạo danh.
- User có thể "nghe trộm" các trao đổi vμ sử dụng kiểu tấn công sử dụng lại để truy nhập vμo một máy chủ hoặc phá vỡ hoạt động.
Trong các tr−ờng hợp nμy ng−ời dùng bất hợp pháp có thể truy nhập đ−ợc tới các dịch vụ vμ dữ liệu mμ anh ta không đ−ợc phép truy nhập. Khác với việc xây dựng các thủ tục xác thực ở mỗi máy chủ, Kerberos cung cấp một dịch vụ xác thực tập trung có nhiệm vụ xác thực các ng−ời sử dụng (user) đối với máy chủ (server) vμ ng−ợc lại. Cần chú ý rằng Kerberos chỉ sử dụng mật mã đối xứng mμ không dùng mật mã khóa công khai.
Có hai phiên bản Kerberos lμ Kv.4 vμ Kv.5. Kv.5 đ−ợc đệ trình xem nh− một chuẩn đ−ợc khuyến nghị cho Internet.
Các yêu cầu chính đặt ra cho Kerberos:
- An toμn: Kẻ thu trộm trên mạng không có khả năng thu đ−ợc thông tin cần thiết để mạo danh. Hơn nữa, Kerberos phải đủ mạnh để đối ph−ơng mạnh không thể tìm thấy đ−ợc các yếu điểm.
- Tin cậy: Đối với mọi dịch vụ khống chế truy nhập có sử dụng Kerberos, việc thiếu tính sẵn sμng của dịch vụ Kerberos cũng có nghĩa lμ thiếu tính sẵn sμng của các dịch vụ đ−ợc trợ giúp. Bởi vậy Kerberos phải rất tin cậy vμ phải sử dụng kiến trúc máy chủ phân tán có hệ thống dự phòng.
- Trong suốt: Về mặt lý t−ởng khi ng−ời dùng đ−a ra mật khẩu vμo họ không thể biết đ−ợc rằng quá trình xác thực đang xảy ra.
- Có khả năng mở rộng: Kerberos phải có khả năng phục vụ một số l−ợng lớn các máy chủ vμ máy trạm. Bởi vậy Kerberos phải có kiến trúc phân tán vμ mô-đun.
6.3.2. Kerberos V.4
(1) Ng−ời sử dụng đăng nhập và yêu
cầu dịch vụ đối với máy chủ.
CSDL Máy chủ xác thực (AS) Máy chủ cấp thẻ (TGS) Cơ sở dữ liệu (3) Trạm làm việc nhắc nhở ng−ời dùng đ−a vào mật khẩu để giải
mã thông tin tới rồi gửi thẻ và chứng chỉ xác thực có chứa tên ng−ời sử dụng, địa chỉ mạng
và thời gian tới TGS
Một lần với mỗi phiên
đăng nhập
Server
(2) AS kiểm tra quyền truy nhập của ng−ời sử dụng trong CSDL tạo thẻ cấp thẻ và khóa phiên Yêu cầu thẻ cấp thẻ Thẻ và khóa phiên Thẻ và khóa phiên Yêu cầu thẻ cấp dịch vụ Một lần với mỗi
loại dịch vụ Kết quả là một khóa sử dụng đ−ợc mã phát sinh từ mật khẩu của ng−ời dùng. (2) TGS giải mã thẻ và chứng chỉ xác thực, kiểm tra yêu cầu rồi tạo thẻ cho máy chủ đ−ợc yêu cầu
Một lần với mỗi phiên dịch vụ
(6) Máy chủ kiểm tra sự phù hợp của thẻ và chứng chỉ xác thực rồi
cấp quyền truy nhập vào dịch vụ. Nếu có yêu cầu xác thực lẫn nhau máy chủ sẽ gửi một chứng chỉ xác thực (5) Trạm làm việc gửi thẻ và chứng chỉ xác thực tới máy chủ Y êu c ầu d ịch vụ C un g c ấp th ẻ xá c thự c m áy c hủ Kerberos
Hình 6.4: Tóm l−ợc các trao đổi thông báo của Kv.4.
a) Trao đổi dịch vụ xác thực: Để thu nhận thẻ cấp thẻ
(1) C → AS : IDC//IDtgs//TS1 (Nhabx thời gian).
(2) AS → C: EKc[KC, tgs // IDtgs // TS2 // LT2 (thời gian sống) // Thẻ tgs]
b) Trao đổi dịch vụ cấp thẻ: Để thu nhận thẻ cung cấp dịch vụ
(3) C → TGS : IDV Thẻ tgs // Authenticator C. (IDV : ID của dịch vụ yêu cầu) (4) TGS → C : EK,tgs[KC, V // IDV // TS2 // Thẻ V]
Thẻ tgs = EKtgs [KC, tgs // IDC // ADC // IDtgs // TS2 // LT2 ] ThẻV = EKv [KC, v // IDC // ADC // IDV // TS2 // LT4 ] Authenticator C = EK,tgs [IDC // ADC // TS 3]
c) Trao đổi xác thực Máy trạm/ máy chủ: Để thu nhận dịch vụ
(5) C → V : Thẻ V // Authenticator C.
(6) V → C : EKc,v[TS5 H] (để xác thực lẫn nhau)
ThẻV = EKv [KC, v // IDC // ADC // IDV // TS2 // LT4 ] Authenticator C = EK,tgs [IDC // ADC // TS 5]
Bảng trên cho ta thấy kỹ thuật phân phối khoá phiên.
Tr−ớc hết khách hμng (client) gửi một thông báo tới AS yêu cầu truy nhập vμo TGS. AS trả lời bằng một thông báo đ−ợc mã bằng khóa trích xuất từ mật khẩu của ng−ời dùng (KC) có chứa thẻ. Thông báo nμy cũng chứa một bản sao của khoá phiên KC,tgs cho C vμ TGS, vì khóa phiên nμy nằm bên trong thông báo đ−ợc mã bằng KC nên chỉ có máy trạm của ng−ời dùng mới có thể đọc đ−ợc nó. Khóa phiên nμy cũng nằm trong Thẻ tgs mμ TGS có thể đọc đ−ợc. Nh− vậy khóa phiên đã đ−ợc phân phối an toμn cho C vμ
TGS. Cần chú ý rằng một số thông tin phụ đã đ−ợc thêm vμo pha hội thoại đầu tiên. Thông báo (1) chứa nhãn thời gian TS 1 để AS biết rằng thông báo lμ đúng lúc. Thông báo (2) chứa một số yếu tố của thẻ ở dạng mμ C có thể truy nhập. Điều nμy cho phép C xác nhận rằng th− nμy lμ của TGS vμ biết đ−ợc thời gian hết hạn của nó.
Khi có thẻ vμ khóa phiên C đã có thể truy nhập vμo TGS. Tr−ớc hết C gửi tới TGS một thông báo chứa thẻ + IDV (định danh của dịch vụ yêu cầu) (thông báo (3)). Hơn nữa, C cũng phát một thẻ xác thực Authenticator bao gồm IDC vμ ADC (địa chỉ của ng−ời dùng C) vμ một nhãn thời gian TS 3. Không giống nh− thẻ có
thể dùng lại, thẻ xác thực chỉ dùng một lần vμ có thời gian sống ngắn. TGS có thể giải mã thẻ bằng khóa mμ nó chia sẻ với AS. Thẻ nμy báo rằng ng−ời dùng C đã đ−ợc cung cấp khóa phiên Kc,tgs. Thực ra, thẻ nμy báo rằng "Ng−ời sử dụng khóa Kc,tgs phải lμ C".
TGS dùng khóa phiên để giải mã thẻ xác thực. Sau đó TGS có thể kiểm tra tên vμ địa chỉ từ thẻ xác thực từ nội dung của thẻ vμ từ địa chỉ mạng của thông báo tới. Nếu mọi điều lμ phù hợp thì TGS đã đ−ợc đảm bảo rằng ng−ời gửi thẻ thực sự lμ chủ nhân của thẻ. Thực ra thẻ nμy báo rằng "ở thời điểm TS3 tôi sử dụng Kc,tgs". Cần chú ý rằng thẻ không chứng minh định danh của bất cứ ai nh−ng lμ một ph−ơng pháp để phân phối các khóa một cách an toμn. Chính thẻ xác thực sẽ chứng minh định danh của client. Vì thẻ xác thực chỉ dùng một lần vμ có thời gian dùng ngắn nên đối ph−ơng khó lòng có thể ăn cắp thẻ vμ thẻ xác thực để dùng lại.
TGS trả lời bằng thông báo (4) có dạng nh− thông báo (2). Thông báo đ−ợc mã bằng khóa phiên chia sẻ giữa TGS vμ C, nó chứa một khóa phiên cần chia sẻ giữa C vμ máy chủ V, định danh của V; IDV, nhãn thời gian của thẻ. Bản thân thẻ cũng chứa khóa phiên nμy.
Lúc nμy C có thẻ cấp dịch vụ có thể dùng lại đối với V. Khi C trình thẻ nμy trong thông báo (5) nó cũng gửi kèm theo một thẻ xác thực (Authentication)
Máy chủ V có thể giải mã thẻ, khôi phục khóa phiên vμ giải mã thẻ xác thực khi cần xác thực lẫn nhau, máy chủ có thể trả lời nh− thông báo (6). Máy chủ trả lại giá trị nhãn thời gian lấy từ thẻ xác thực đ−ợc tăng thêm 1 vμ đ−ợc mã bằng khóa phiên. C có thể giải mã thông báo nμy để khôi phục lại nhãn thời gian đã đ−ợc tăng. Vì thông báo đ−ợc mã bằng khóa phiên nên C đ−ợc đảm bảo rằng nó chỉ có thể đ−ợc tạo bởi V. Nội dung của thông báo đảm bảo với C rằng thông báo nμy không phải lμ dùng lại thông báo cũ. Cuối cùng, ở cuối quá trình, client vμ server cùng chia sẻ một khóa
bí mật. Khóa nμy có thể đ−ợc dùng để mã hóa các thông báo trong t−ơng lai cho hai bên hoặc để trao đổi khóa phiên ngẫu nhiên mới.
Giải thích các yếu tố trong thủ tục Kv.4
a) Trao đổi dịch vụ xác thực
Thông báo (1) Client yêu cầu thẻ cấp thẻ.
IDC Báo cho AS định danh của ng−ời dùng từ client này IDtgs Báo cho AS biết rằng ng−ời dùng yêu cầu truy nhập TGS
TS 1 Cho phép AS kiểm tra rằng đồng hồ của client đ−ợc đồng bộ với AS Thông báo (2) AS trả về thẻ cấp thẻ
v , C
K
E Mã hóa dựa trên mật khẩu của ng−ời dùng, cho phép AS và client kiểm tra mật khẩu và bảo vệ nội dung của thông báo (2)
KC, tgs Bản sao của khóa phiên đ−ợc tạo bởi AS mà client có thể sử dụng để thực hiện trao đổi bí mật giữa client và TGS (không yêu cầu chúng phải chia sẻ một khóa cố định)
IDtgs Xác nhận rằng thẻ này là cho TGS
TS 2 Báo cho client về thời gian mà thẻ này đệ trình. LT 2 Báo cho client về thời gian sống của thẻ này Thẻ tgs Thẻ cần đ−ợc client sử dụng để truy nhập TGS
b) Trao đổi dịch vụ cấp thẻ
Thông báo (3) Client yêu cầu thẻ cấp dịch vụ
IDV Báo cho TGS rằng ng−ời dùng yêu cầu truy nhập tới máy chủ V. Thẻ tgs Đảm bảo cho TGS rằng ng−ời dùng này đ−ợc xác thực bởi AS. AuthenticatorC Đ−ợc tạo bởi client để xác nhận tính hợp lệ cho thẻ.
Thông báo (4) TGS trả về thẻ cấp dịch vụ.
tgs , C
K
E Khóa đ−ợc chia sẻ giữa C và TGS dùng bảo vệ nội dung của thông báo (4)
tgs , C
K Bản sao của khoá phiên đ−ợc tạo bởi AS. IDV Xác nhận rằng thẻ này là cho máy chủ V
TS 4 Báo cho client về thời gian mà thẻ này đ−ợc đệ trình. Thẻ V Thẻ đ−ợc dùng bởi client để truy nhập vào máy chủ V.
Thẻ tgs Có khả năng dùng lại để ng−ời dùng không phải vào lại mật khẩu. EKtgs Thẻ đ−ợc mã hóa bằng khóa chỉ có AS và TGS biết nhằm tránh
KC, tgs Bản sao của khóa phiên mà TGS có thể truy nhập đ−ợc dùng để giải mã thẻ xác thực nhờ đó xác thực thẻ
IDC Báo chủ sở hữu hợp lệ của thẻ này
ADC Tránh việc dùng thẻ từ một trạm làm việc khác với trạm đã yêu cầu thẻ
IDtgs Đảm bảo cho máy chủ rằng nó đã giải mã đúng cho thẻ. TS 2 Báo cho TGS về thời gian mà thẻ này đ−ợc đệ trình. LT 2 Tránh dùng lại sau khi thẻ đã hết hạn.
AuthenticatorC Đảm bảo cho TGS rằng ng−ời trình thẻ đúng là client mà thẻ đã đ−ợc trình cho nó, có thời gian sống ngắn để tránh dùng lại.
C
K ,tgs
E Thẻ xác thực đ−ợc mã bằng khóa chỉ có client và TGS biết nhằm tránh thu trộm.
ID C Phải phù hợp với ID trong thẻ để xác thực thẻ. AD C Phải phù hợp với địa chỉ trong thẻ để xác thực thẻ
TS 2 Báo cho TGS về thời gian mà thẻ xác thực này đ−ợc tạo ra.
c) Trao đổi xác thực Máy trạm/ máy chủ (Client/Server)
Thông báo (5) Client yêu cầu dịch vụ.
Thẻ V Đảm bảo với máy chủ rằng ng−ời dùng này đã đ−ợc AS xác nhận. AuthenticatorC Đ−ợc tạo bởi client để xác nhận tính hợp lệ cho thẻ.
Thông báo (6) Xác thực (tùy chọn) của server đối với client.
v , C K
E Đảm bảo cho C rằng thông báo này là từ V.
TS 5+1 Đảm bảo cho C rằng đây không phải là sự dùng lại của hồi đáp cũ. Thẻ V Có thể dùng lại để client không cần yêu cầu thẻ mới từ TGS đối với
mỗi truy nhập tới cùng máy chủ.
EKv Thẻ đ−ợc mã hóa bằng khóa chỉ có TGS và server biết nhằm tránh thu trộm.
KC, V Bản sao của khóa phiên mà client có thể truy nhập, đ−ợc dùng để giải mã thẻ xác thực nhằm xác thực thẻ.
IDC Báo chủ sở hữu hợp lệ của thẻ này.
ADC Tránh việc dùng thẻ từ một trạm làm việc khác với trạm đã yêu cầu thẻ.
IDV Đảm bảo cho server rằng nó đã giải mã đúng cho thẻ. TS4 Báo cho server về thời gian mà thẻ này đ−ợc đệ trình. LT4 Tránh dùng lại sau khi thẻ đã hết hạn.
AuthenticatorC Đảm bảo cho server rằng ng−ời trình thẻ đúng là client mà thẻ đã đ−ợc đ−a cho nó, có thời gian sống ngắn để tránh dùng lại.
v , C K
E Thẻ xác thực đ−ợc mã bằng khóa chỉ có server và client biết nhằm tránh thu trộm.
IDC Phải phù hợp với ID trong thẻ để xác thực thẻ. ADC Phải phù hợp với địa chỉ trong thẻ để xác thực thẻ.
TS5 Báo cho server về thời gian mà thẻ xác thực này đ−ợc tạo.
Bμi tập
1. Nêu ý t−ởng thiết kế một hệ mật bảo vệ các tệp dữ liệu trên cơ sở phân tích PGP?
2. Cấu tạo của chữ ký kép? ý nghĩa của chữ ký kép trong th−ơng mại điện tử?
3. Vai trò của máy chủ xác thực trong Kenberos?
Phụ lục 1
Lý thuyết thông tin trong các hệ mật
Năm 1949, Claude Shannon đã công bố một bμi báo có nhan đề " Lý thuyết thông tin trong các hệ mật" trên tạp chí "The Bell System Technical Journal". Bμi báo đã có ảnh h−ởng lớn đến việc nghiên cứu khoa học mật mã. Trong ch−ơng nμy ta sẽ thảo luận một vμi ý t−ởng trong lý thuyết của Shannon.
PL 1.1. độ mật hoμn thiện
Có hai quan điểm cơ bản về độ an toμn của một hệ mật.
Độ an toμn tính toán:
Độ đo nμy liên quan đến những nỗ lực tính toán cần thiết để phá một hệ mật. Một hệ mật lμ an toμn về mặt tính toán nếu một thuật toán tốt nhất để phá nó cần ít nhất N phép toán, N lμ số rất lớn nμo đó. Vấn đề lμ ở chỗ, không có một hệ mật thực tế đã biết nμo có thể đ−ợc chứng tỏ lμ an toμn theo định nghĩa nμy. Trên thực tế, ng−ời ta gọi một hệ mật lμ "an toμn về mặt tính toán" nếu có một ph−ơng pháp tốt nhất phá hệ nμy nh−ng yêu cầu thời gian lớn đến mức không chấp nhận đ−ợc (Điều nμy tất nhiên lμ rất khác với việc chứng minh về độ an toμn).
Một quan điểm chứng minh về độ an toμn tính toán lμ quy độ an toμn của một hệ mật về một bμi toán đã đ−ợc nghiên cứu kỹ vμ bμi toán nμy đ−ợc coi lμ khó. Ví dụ, ta có thể chứng minh một khẳng định có dạng " Một hệ mật đã cho lμ an toμn nếu không thể phân tích ra thừa số một số nguyên n cho tr−ớc". Các hệ mật loại nμy đôi khi gọi lμ " an toμn chứng minh đ−ợc". Tuy nhiên cần phải hiểu rằng, quan điểm nμy chỉ cung cấp một chứng minh về độ an toμn có liên quan đế một bμi toán khác chứ không phải lμ một
chứng minh hoμn chỉnh về độ an toμn (Tình hình nμy cũng t−ơng tự nh− việc chứng minh một bμi toán lμ NP đầy đủ: Có thể chứng tỏ bμi toán đã cho chí ít cũng khó nh− một bμi toán NP đầy đủ khác, song không phải lμ một chứng minh hoμn chỉnh về độ khó tính toán của bμi toán).
Độ an toμn không điều kiện
Độ đo nμy liên quan đến độ an toμn của các hệ mật khi không có một hạn chế nμo đ−ợc đặt ra về khối l−ợng tính toán mμ Oscar đ−ợc phép thực hiện. Một hệ mật đ−ợc gọi lμ an toμn không điều kiện nếu nó không thể bị phá thậm chí với khả năng tính toán không hạn chế.
Khi thảo luận về độ an toμn của một hệ mật, ta cũng phải chỉ ra kiểu tấn công đang đ−ợc xem xét. Trong ch−ơng 3 đã cho thấy rằng, không một hệ mật nμo trong các hệ mã dịch vòng, mã thay thế vμ mã Vigenère đ−ợc coi lμ an toμn về mặt tính toán với ph−ơng pháp tấn công chỉ với bản mã (Với khối l−ợng bản mã thích hợp).
Điều mμ ta sẽ lμm trong phần nμy lμ để phát triển lý thuyết