o Xác thực sử dụng chứng chỉ số:
Giới thiệu về chứng chỉ số
Việc sử dụng mã hóa hay ký số chỉ giải quyết được vấn đề về bảo mật thông điệp và xác thực. Tuy nhiên không có thể đảm bảo rằng đối tác không thể bị giả mạo, trong nhiều trường hợp cần thiết phải “chứng minh” bằng phương tiện điện tử danh tính của
Một chứng chỉ số là một tệp tin điện tử được sử dụng để nhận diện một cá nhân, một máy dịch vụ, một công ty, hoặc một vài đối tượng khác và gắn định danh của đối tượng đó với một khóa khóa công khai, giống như bằng lái xe, hộ chiếu, chứng minh thư. Có một nơi có thể chứng nhận các thông tin của người dùng là đúng và được gọi là cơ quan xác thực chứng chỉ (Certificate Authority - CA). Đó là một đơn vị có thẩm quyền xác nhận định danh và cấp các chứng chỉ số. CA có thể là một đối tác thứ ba đứng độc lập hoặc các tổ chức tự vận hành một hệ thống tự cập các chứng chỉ cho nội bộ của họ. Các phương pháp để xác định định danh phụ thuộc vào các chính sách mà CA đặt ra. Chính sách lập ra phải đảm bảo việc cấp chứng chỉ số phải đúng đắn, ai được cấp và mục đích dùng vào việc gì. Thông thường, trước khi cấp một chứng chỉ số, CA sẽ công bố các thủ tục cần thiết phải thực hiện cho các loại chứng chỉ số.
Trong chứng chỉ số chứa một khóa khóa công khai được gắn với một tên duy nhất của một đối tượng (như tên của một nhân viên hoặc máy dịch vụ). Các chứng chỉ số giúp ngăn chặn việc sử dụng khóa khóa công khai cho việc giả mạo. Chỉ có khóa khóa công khai được chứng thực bởi chứng chỉ số sẽ làm việc với khóa bí mật tương ứng mà được sở hữu, bởi đối tượng mà có định danh đã được chứng thực nằm trong chứng chỉ số.
Ngoài khóa khóa công khai, một chứng chỉ số còn chứa thêm thông tin về đối tượng như tên mà nó nhận diện, hạn dùng, tên của CA cấp chứng chỉ số, mã số … Điều quan trọng nhất là một chứng chỉ số luôn luôn chứa chữ ký số của CA đã cấp chứng chỉ số đó. Nó cho phép chứng chỉ số như đã được đóng dấu để cho người sử dụng có thể kiểm tra.
Xác thực định danh
Việc giao tiếp trên mạng điển hình là giữa một máy khách (như trình duyệt chạy trên máy cá nhân) và một máy dịch vụ (server – như máy chủ Web site). Việc chứng thực có thể được thực hiện ở cả hai phía. Máy dịch vụ có thể tin tưởng vào một máy khách và ngược lại.
Việc xác thực ở đây không chỉ có ý nghĩa một chiều đối với người gửi, tức là người gửi muốn người nhận tin tưởng vào mình. Khi người gửi đã gửi thông điệp có kèm theo chữ ký số cùng với chứng chỉ số (ví dụ khi gửi thư điện tử sử dụng chữ ký số) thì không thể chối cãi là mình đã gửi. Có hai hình thức chứng thực máy khách sau:
Dựa trên mẫu tên truy nhập và mật khẩu thông thường (username và password). Tất cả các máy dịch vụ cho phép người dùng nhập mật khẩu để có thể truy nhập vào hệ thống. Máy dịch vụ sẽ quản lý danh sách các uername và password này.
Chứng thực dựa trên chứng chỉ số. Chứng thực máy khách dựa trên chứng chỉ số (là một phần của giao thức bảo mật SSL). Máy khách ký bằng số , sau đó gửi cả chữ ký số và chứng chỉ số qua mạng. Máy dịch vụ (server) sẽ sử dụng kỹ thuật mã hóa khóa khóa công khai để kiểm tra chữ ký số và xác định tính hợp lệ của chứng chỉ số.
Khi xác thực người dùng theo phương pháp này yêu cầu: người dùng đã quyết định tin tưởng vào máy dịch vụ mà không có bảo mật theo giao thức SSL. Máy dịch vụ cần phải chứng thực người sử dụng trước khi cho phép họ có thể truy nhập tài nguyên của hệ thống.
Hình 4.1Sử dụng mật khẩu chứng thực cho máy khách kết nối tới máy dịch vụ
Các bước trong hình trên như sau:
Bước 1: Để đáp lại yêu cầu chứng thực từ máy dịch vụ, tại phía máy khách sẽ hiện một hộp thoại yêu cầu nhập mật khẩu. Người sử dụng phải nhập mật khẩu cho mỗi máy dịch vụ khác nhau trong cùng một phiên làm việc.
Bước 2: Máy khách sẽ gửi mật khẩu qua mạng mà không có một hình thức mã hóa nào.
Bước 3: Máy dịch vụ sẽ tìm kiếm mật khẩu trong có sở dữ liệu.
Bước 4: Máy dịch vụ sẽ xác định xem mật khẩu đó có quyền truy cập vào những tài nguyên nào của hệ thống.
Khi sử dụng hình thức này, mỗi người sử dụng phải nhập mật khẩu cho mỗi máy dịch vụ khác nhau, mỗi máy dịch vụ sẽ lưu lại dấu vết của các mật khẩu này cho mỗi người sử dụng.
Xác thực dựa trên chứng chỉ số
Chứng chỉ số có thể thay thế 3 bước đầu chứng thực bằng mật khẩu với một cơ chế cho phép người sử dụng chỉ phải nhập mật khẩu một lần mà không phải truyền qua mạng và người quản trị có thể điều khiển quyền truy nhập một cách tập trung.
Các bước ở hình trên có sử dụng thêm giao thức bảo mật SSL. Máy khách phải có một chứng chỉ số để cho máy dịch vụ có thể nhận diện. Sử dụng chứng chỉ số để chứng thực được xem là có lợi thế hơn khi dùng mật khẩu. Bởi vì nó dựa trên những gì mà người sử dụng có : Khóa bí mật và mật khẩu để bảo vệ khóa bí mật. Nhưng có một điều cần chú ý là chỉ có chủ của máy khách mới được phép truy nhập vào máy khách và phải nhập mật khẩu để vào cơ sở dữ liệu của chương trình có sử dụng khóa bí mật (mật khẩu này có thể phải nhập lại trong một khoảng thời gian định kỳ cho trước).
Cả hai cơ chế chứng thực dựa trên mật khẩu và chứng chỉ số đều cần phải truy nhập mức vật lý tới các máy cá nhân và mật khẩu. Mã hóa khóa công khai chỉ có thể kiểm tra việc sử dụng một khóa bí mật tương ứng với một khóa khóa công khai trong một chứng chỉ số. Nó không đảm nhận trách nhiêm bảo vệ mức vật lý và mật khẩu sử dụng khóa bí mật. Trách nhiệm này thuộc về người sử dụng. Các bước trong hình trên:
Bước 1: Phần mềm máy khách (ví dụ như Communicator) quản lý cơ sở dữ liệu về các cặp khóa bí mật và khóa khóa công khai. Máy khách sẽ yêu cầu nhập mật khẩu để truy nhập vào cơ sở dữ liệu này chỉ một lần hoặc theo định kỳ. Khi máy khách truy cập vào một máy dịch vụ có sử dụng SSL và cần chứng thực máy khách dựa trên chứng chỉ số, người sử dụng chỉ phải nhập mật khẩu một lần, họ không cần phải nhập lại khi cố gắng truy nhập lần thứ hai hoặc truy nhập vào một máy dịch vụ khác.
Bước 2: Máy khách sẽ sử dụng khóa bí mật tương ứng với chứng chỉ cần thiết, và sử dụng khóa bí mật đó để ký cho một vài dữ liệu mà được tạo ra một cách ngẫu nhiên cho mục đích chứng thực từ cả phía máy khách và máy dịch vụ. Dữ liệu này và chữ ký số thiết lập một bằng chứng để xác định tính hợp lệ của khóa bí mật. Chữ ký số có thể được kiểm tra bằng khóa công khai tương ứng với khóa bí mật đã dùng để ký, nó là duy nhất trong mỗi phiên làm việc của giao thức SSL.
Bước 3: Máy khách sẽ gửi cả chứng chỉ và bằng chứng (một phần của dữ liệu được tạo một cách ngẫu nhiên và được ký) qua mạng.
Bước 4: Máy dịch vụ sẽ sử dụng chứng chỉ số và bằng chứng đó để chứng thực người sử dụng.
Bước 5: Tại bước này máy dịch vụ có thể thực hiện một cách tùy chọn các nhiệm vụ chứng thực khác, như việc xem chứng chỉ của máy khách có trong một cơ sở dữ liệu dùng để lưu trữ và quản lý các chứng chỉ số. Máy dịch vụ tiếp tục xác định xem người sử dụng có những quyền gì đối với tài nguyên của hệ thống.
o Chứng chỉ khóa công khai
Khi một người (người gửi) thông báo muốn sử dụng kỹ thuật khóa công khai để mã hóa một thông báo và gửi cho người nhận, người gửi cần một bản sao khóa công khai của người nhận. Khi một thành viên bất kỳ muốn kiểm tra chữ ký số - chữ ký số này được thành viên khác sinh ra, thành viên kiểm tra cần một bản sao khóa công khai của thành viên ký. Cả hai thành viên mã hóa thông báo và thành viên kiểm tra chữ ký số được gọi là những người sử dụng khóa công khai.
Khi một giá trị khóa công khai được gửi đến cho một người sử dụng khóa công khai thì không cần thiết phải giữ bí mật giá trị khóa công khai này. Tuy nhiên, người sử dụng khóa công khai phải đảm bảo rằng khóa công khai được sử dụng đúng là dành cho thành viên khác (có thể là người nhận thông báo có chủ định hoặc bộ sinh chữ ký số được yêu cầu). Nếu một kẻ truy nhập có thể dùng một khóa công khai khác thay thế cho khóa công khai hợp lệ, các nội dung của thông báo đã mã hóa có thể bị lộ, những thành viên không chủ định khác sẽ biết được và các chữ ký số có thể bị làm giả. Nói cách khác, cách bảo vệ (được tạo ra từ các kỹ thuật này) bị ảnh hưởng hoàn toàn nếu một kẻ truy nhập có thể thay thế các khóa công khai không xác thực.
Đối với các nhóm thành viên nhỏ yêu cầu này có thể được thỏa mãn một cách dễ dàng. Ví dụ trong trường hợp có hai người quen biết nhau, khi người này muốn truyền thông an toàn với người kia, họ có thể có được bản sao khóa công khai của nhau bằng cách trao đổi các đĩa có chứa các giá trị khóa công khai của từng người, vì vậy đảm bảo ràng các giá trị khóa công khai được lưu giữ an toàn trên mỗi hệ thống cục bộ của từng người. Đây chính là hình thức phân phối khóa công khai thủ công. Tuy nhiên, hình thức phân phối khóa công khai thủ công này bị coi là không thực tế hoặc không thỏa đáng trong phần lớn các lĩnh vực ứng dụng khóa công khai, đặc biệt khi số lượng người sử dụng trở nên quá lớn và/hoặc ở phân tán. Các chứng chỉ khóa công khai giúp cho việc phân phối khóa công khai trở nên có hệ thống.
Một hệ thống khóa công khai làm việc như sau : một CA phát hành các chứng chỉ cho những người nắm giữ cặp khóa công khai và khóa riêng. Một chứng chỉ gồm có một giá trị khóa công khai và thông tin dùng để nhận dạng duy nhất chủ thể (subject) của chứng chỉ. Chủ thể của chứng chỉ có thể là một người, thiết bị, hoặc một thực thể khác có nắm giữ khóa riêng tương ứng (xem hình dưới). Khi một chủ thể của chứng chỉ là một người hoặc một thực thể hợp pháp nào đó, chủ thể thường được nhắc đến như là một thực thể (subscriber) của CA. Các chứng chỉ được CA ký, bằng cách sử dụng khóa riêng của CA.
Một khi các chứng chỉ này được thiết lập, nhiệm vụ của người sử dụng khóa công khai rất đơn giản. Giả thiết rằng, một người sử dụng đã có khóa công khai của CA một cách bí mật (ví dụ: thông qua phân phối khóa công khai thủ công) và người sử dụng khóa công khai tin cậy CA phát hành các chứng chỉ hợp lệ. Nếu người sử dụng cần khóa công khai của một trong các thuê bao của CA này, người sử dụng có thể thu được khóa công khai của một thuê bao bằng cách lấy một bản sao chứng chỉ của thuê bao, lấy ra giá trị khóa công khai, kiểm tra chữ ký của CA có trên chứng chỉ hay không bằng cách sử dụng khóa công khai của CA. Một người sử dụng khóa công khai sử dụng các chứng chỉ như cách trên được coi là một thành viên tin cậy. Kiểu hệ thống này tương đối đơn giản và kinh tế khi thiết lập trên diện rộng và theo hình thức tự động bởi vì một trong các đặc tính quan trọng của chứng chỉ là :“Các chứng chỉ có thể được phát hành mà không cần phải bảo vệ thông qua các dịch vụ an toàn truyền thông để đảm bảo sự tin cẩn xác thực và tính toàn vẹn.
Giá trị khóa công khai không cần giữ bí mật, và như thế các chứng chỉ cũng không phải là bí mật. Hơn nữa, ở đây không đòi hỏi các yêu cầu về tính xác thực và toàn vẹn do các chứng chỉ tự bảo vệ (chữ ký số của CA có trong chứng chỉ cung cấp bảo vệ xác thực và toàn vẹn). Một kẻ truy nhập trái phép định làm giả một chứng chỉ khi chứng chỉ này đang được phát hành cho những người sử dụng khóa công khai, những người sử dụng này sẽ phát hiện ra việc làm giả này bởi vì chữ ký số của CA được kiểm tra chính xác. Chính vì thế các chứng chỉ khóa công khai được phát hành theo các cách không an toàn ví dụ như: thông qua các máy chủ, các hệ thống thư mục và/hoặc các giao thức truyền thông không an toàn.
Lợi ích cơ bản của một hệ thống cấp chứng chỉ là : một người sử dụng khóa công khai có thể có được một số lượng lớn các khóa công khai của các thành viên khác một cách đáng tin cậy, xuất phát từ thông tin về khóa công khai của một thành viên, đó chính là khóa công khai của CA. Lưu ý rằng một chứng chỉ chỉ hữu ích khi người sử dụng khóa công khai tin cậy CA phát hành các chứng chỉ hợp lệ.
Mô hình CA
Nếu việc thiết lập một CA (có thể phát hành các chứng chỉ khoá công khai cho tất cả những người nắm giữ các cặp khoá công khai và khoá riêng trên thế giới) là khả thi và khi tất cả những người sử dụng khoá công khai tin cậy vào các chứng chỉ được CA này phát hành thì có thể giải quyết vấn đề phân phối khoá công khai. Rất tiếc là điều này không thể thực hiện được. Đơn giản vì nó không thực tế đối với một CA. CA không thể có đầy đủ thông tin và các mối quan hệ với các thuê bao đề có thể phát hành các chứng chỉ được tất cả những người sử dụng khoá công khai chấp nhận. Vì vậy, cần chấp nhận sự tồn tại của nhiều CA trên thế giới.
Giả thiết khi có nhiều CA, một người sử dụng khoá công khai nắm giữ khoá công khai của một CA xác định (CA này đã phát hành một chứng chỉ cho thành viên mà người sử dụng khoá công khai muốn truyền thông an toàn) một cách bí mật là không thực tế. Tuy nhiên, để có được một khoá công khai của CA, người sử dụng khoá công khai có thể tìm ra và sử dụng một chứng chỉ khác, chứng chỉ này có khoá công khai của CA này nhưng do CA khác phát hành – khoá công khai của CA này được người sử dụng khoá công khai nắm giữ an toàn.
Hình 4.4Chứng thực đệ qui
Vì vậy, một người sử dụng có thể áp dụng đệ quy chứng chỉ để thu được khoá công khai của các CA và khoá công khai của những người sử dụng từ xa. Điều này dẫn đến một mô hình, được gọi là dây chuyền chứng thực hoặc đường dẫn chứng thực dựa vào các hệ thống phân phối khoá công khai như hình vẽ trên.
Thời hạn tồn tại và việc thu hồi chứng chỉ.
Chứng chỉ cơ bản và các mô hình đường dẫn chứng thực được mô tả như trên đòi hỏi yêu cầu nào đó đối với từng ứng dụng thực tế. Trước hết , phải nhận ra tính đúng lúc, cặp khoá công khai và cặp khoá riêng không phải hợp lệ mãi mãi.
Trong một hệ thống kỹ thuật, một cặp khoá bất kỳ có thời gian tồn tại bị giới hạn nhằm kiểm soát các cơ hội thẩm mã và hạn chế thời gian có thể xảy ra tấn công thoả hiệp. Vì vậy, một chứng chỉ có thời gian hợp lệ được quy định trước, định nghĩa