Mã khoá công khai trong mạng riêng ảo (PKI và VPN)

Hiện nay nhiều mạng riêng ảo (VPN) đang thể hiện sự hạn chế bởi chính hệ thống bảo mật quá đơn giản. Trong bài này chúng ta sẽ bàn đến một số sửa đổi cần thiết để có thể đáp ứng yêu cầu phát triển một mạng riêng ảo lớn và có tính bảo mật cao. Đa số các mạng riêng ảo ngày nay đang được khai thác không sử dụng sự hỗ trợ của cơ sở hạ tầng mã khoá công khai (PKI). Các điểm kết cuối của các mạng VPN này (các cổng bảo mật hoặc các máy khách) nhận thực lẫn nhau thông qua thiết lập các "đường ngầm" IP. Một cách đơn giản nhất, điều đó có thể thực hiện được thông qua việc thiết đặt cầu hình tại cả hai đầu của đường ngầm VPN cùng chia sẻ một bí mật chung - một cặp mật khẩu (password). Phương pháp giải quyết "thô sơ" này có thể hoạt động tốt trong một mạng VPN nhỏ nhưng sẽ trở nên kồng kềnh, khó điều khiển trong một mạng VPN lớn khi số lượng điểm truy nhập lên tới hàng trǎm, thậm chí hàng ngàn điểm. Hãy so sánh với một câu lạc bộ nhỏ, ở đó mọi người đều biết nhau vì số lượng người ít và hầu như họ đã quen biết nhau từ trước. Không có gì khó khǎn trong việc ghi nhớ tên và nhận dạng của các thành viên trong một nhóm nhỏ. Nhưng với một câu lạc bộ có hàng trǎm thành viên thì chắc chắn cần phải có thẻ hội viên. Các thành viên mới có thể chứng minh họ là ai khi họ xuất trình thẻ hội viên. Với "hạ tầng" như vậy, hai người hoàn toàn không quen biết có thể nhận dạng và tin cậy nhau đơn giản là vì họ tin vào thẻ hội viên của nhau. Tương tự như vậy, hai đầu cuối VPN có thể nhận thực nhau thông qua giấy chứng nhận điện tử - Một loại "thẻ hội viên điện tử" không thể thiếu trong các mạng VPN lớn. Vậy tại sao hiện nay không phải mạng VPN lớn nào cũng sử dụng chứng nhận điện tử? Bởi vì việc triển khai mạng lớn không chỉ đòi hỏi chứng nhận điện tử mà yêu cầu xây dựng một hạ tầng hoàn thiện bao gồm: khối cung cấp chứng nhận điện tử, phương cách bảo đảm để khởi tạo và phân phối chúng, cách thức truy xuất dễ dàng để xác nhận tính hợp lệ. Nói một cách ngắn gọn, đó chính là cơ sở hạ tầng mã khoá công khai - PKI. Khoá công khai là gì và tác dụng? Để hiểu được yêu cầu và các đòi hỏi của PKI, chúng ta cần biết một số kiến thức sơ lược về khoá mật mã công khai. Hệ thống này xây dựng trên cơ sở một cặp khoá mã có liên hệ toán học với nhau trong đó một khoá sử dụng để mã hoá thông điệp và chỉ có khoá kia mới giải mã được thông điệp và ngược lại. Khi đó chúng ta có thể công khai hoá một khoá trong cặp khoá này. Nếu ai cần gửi cho chúng ta các thông điệp bảo đảm, họ sẽ có thể sử dụng khoá đã được cung cấp công khai này để mã hoá thông điệp trước khi gửi đi và bởi vì chúng ta đã giữ bí mật khoá mã còn lại nên chỉ chúng ta mới có thể giải mã được thông điệp bảo đảm đó. Cặp khoá này còn dùng để xác nhận thông điệp. Người gửi sẽ tạo một đoạn mã bǎm (hash) của thông điệp - một dạng rút gọn của thông điệp nguyên bản - với một số thuật toán (ví dụ như MD5, SHA-1 ...). Người gửi sẽ mã hoá đoạn mã bǎm bằng khoá riêng của mình và người nhận sẽ dùng khoá công khai của người gửi để giải đoạn mã bǎm của người gửi, sau đó so sánh với đoạn mã bǎm của thông điệp nhận được (được tạo bằng cùng một thuật toán). Nếu trùng nhau thì người nhận có thể tin rằng thông điệp nhận được không bị thay đổi trong quá trình truyền tải trên mạng và xuất phát từ người gửi xác định. Cách thực hiện này được gọi là chữ ký điện tử. Nhưng cần nhắc lại là chúng ta yêu cầu không chỉ chữ ký - chúng ta cần một thẻ hội viên điện tử. Chính vì thế mà xuất hiện khái niệm giấy chứng nhận điện tử. Một chứng nhận điện tử gắn tên của hội viên hay thiết bị với một cặp khoá, tương tự như thẻ hội viên gắn tên của hội viên với chữ ký và ảnh của họ. Để đảm bảo giấy chứng nhận là hợp lệ, chúng ta thường yêu cầu giấy chứng nhận phải được cấp do một tổ chức tin cậy. Đối với giấy chứng nhận điện tử, tổ chức này được gọi là hệ thống cung cấp chứng nhận (CA-Certification Authority) Các mạng VPN sử dụng chứng nhận điện tử như thế nào? Khi đường ngầm IP đã được khởi tạo, các điểm kết cuối sẽ nhận thực lẫn nhau thông qua chứng nhận điện tử. Ví dụ cổng bảo mật X sẽ tự chứng nhận và ký (điện tử) thông điệp bằng khoá mã riêng của nó. Cổng bảo mật Y sẽ nhận chúng nhận điện tử của X và sử dụng khoá công khai của X để kiểm tra chữ ký điện tử. Nếu đúng thì cổng bảo mật X được xác nhận vì chữ ký điện tử chỉ có thể được tạo ra bằng khoá mã riêng được gắn liền với chứng nhận điện tử của X. Tại sao giấy chứng nhận điện tử lại có tính mở rộng hơn kiểu chia sẻ khoá bảo mật chung? Rõ ràng chúng ta không còn cần phải cung cấp những cặp mã khoá chia sẻ cho mỗi cặp thiết bị VPN. Mỗi thiết bị VPN chỉ cần một giấy chứng nhận điện tử. Và chúng ta cũng không cần phải thiết lập lại cấu hình của tất cả các điểm đã có của VPN mỗi khi chúng ta mở thêm một điểm mới. Thay vào đó, chúng ta có thể chứng nhận cho mỗi thiết bị thông qua hệ thống thư mục công cộng - ví dụ như qua LDAP. Cao hơn nữa, chúng ta có thể kết hợp hai mạng VPN sẵn có thông qua việc cộng tác giữa hai CA trong trao đổi cơ sở dữ liệu và trong việc phát hành giấy chứng nhận. Điều đó cũng tương tự như việc công nhận hộ chiếu của một nước khác như là một giấy chứng minh hợp lệ vậy. Cũng như hộ chiếu, mỗi giấy chứng nhận điện tử cũng phải có thời hạn hợp lệ và có thể bị nơi phát hành thu hồi khi cần thiết. Xuất trình chữ ký điện tử liên quan đến một giấy chứng nhận điện tử không hợp lệ, không tồn tại hay đã bị thu hồi sẽ dẫn đến việc truy nhập không thành công. Vấn đề này có thể trở nên phức tạp nếu người kiểm tra (nơi nhận) không thường xuyên kiểm tra tình trạng hợp lệ của giấy chứng nhận tại nơi phát hành giấy chứng nhận (CA). Thậm chí, nếu việc kiểm tra được thực hiện thì có thể danh sách các giấy chứng nhận điện tử bị thu hồi cũng đã "lạc hậu". Vậy thì cần phải kiểm tra các danh sách này hàng tháng, hàng tuần hay hàng ngày, hàng giờ? đó là vấn để của thực tế khi áp dụng các chính sách bảo mật của mỗi nhà quản trị mạng cụ thể. Các thành phần của PKI VPN không phải là dịch vụ bảo mật duy nhất ứng dụng PKI. Có rất nhiều yêu cầu bảo mật khác có thể được thoả mãn khi sử dụng PKI như thư bảo mật (email-secured with S/MINE), các giao dịch bảo mật của Web (Web transaction secured with SSL) ... Các yêu cầu đó có thể khác nhau do tính chất của mỗi dịch vụ hay ứng dụng, tất cả đều dựa trên một "Cơ sở hạ tầng mã khoá công khai - PKI" bao gồm các thành phần cơ bản như Hình 1- Xây dựng mã khoá công khai PKT Nền tảng của PKI là CA. CA phát hành các giấy chứng nhận điện tử. Nó có thể thuộc riêng về một doanh nghiệp hoặc thuộc một tổ chức thuộc bên ngoài các doanh nghiệp (chuyên cung cấp dịch vụ trong lĩnh vực này). Các CA có thể uỷ nhiệm sự tin cậy cho nhau thông qua kiến trúc phân cấp. CA gốc (root CA) là CA cung cấp trực tiếp các giấy chứng nhận điện tử cho doanh nghiệp, CA phụ thuộc (subordinate CA) là CA được công nhận gián tiếp thông qua mối liên hệ với CA gốc. CA gốc có thể mặc nhiên được công nhận (đối với nội bộ doanh nghiệp). Các CA phụ thuộc được công nhận thông qua chứng nhận của CA gốc và tạo nên chuỗi các CA uỷ thác. Mỗi khi tạo ra một giấy chứng nhận điện tử mới, một cặp khoá mã được phát ra cho mỗi thực thể - thiết bị VPN, máy chủ Web, người sử dụng thư điện tử ... Những thực thể sẽ giữ các khoá riêng (private key) dùng để tạo ra chữ ký điện tử. Còn khoá công khai (public key), tên của thực thể, tên của CA phát hành, tất cả sẽ được tập hợp trong giấy chứng nhận điện tử, và tất cả sẽ được xác nhận thông qua chữ ký điện tử của chính CA. Với mục đích tránh sự không công nhận của mỗi thực thể, chỉ có chính bản thân họ mới được sử dụng đến khoá bảo mật riêng. Với cách làm như vậy, các thực thể không thể phủ nhận được việc đã "ký" tên vào thông điệp vì không ai khác có thể "ký" như vậy được. Cũng chính vì nguyên nhân như vậy, mã khoá riêng này cần được lưu giữ an toàn. Khi mã khoá này bị lộ vì một nguyên nhân nào đó, giấy chứng nhận điện tử cần phải được thu hồi. Để thuận tiện trong việc phân phát, các giấy chứng nhận thường được công bố qua hệ thống uỷ nhiệm. Để tǎng khả nǎng truy xuất, tìm kiếm và độ an toàn của hệ thống, các giấy chứng nhận trong các hệ thống uỷ nhiệm thường được công bố trong các "thư mục che phủ nhiều tầng" - (Multiple shadow directories). Do yêu cầu thiết kế và nhu cầu thực tế, cả CA đều cần phải được bảo mật tốt nên hai thành phần này thường được phân cách không những theo logic mà còn phải được phân cách cả vị trí vật lý. Chức nǎng quản lý được giao cho RA - Thành phần cấp quyền đǎng nhập (Registration Authorities). RA có nhiệm vụ quản trị việc đǎng ký tên, khởi tạo hoặc lưu trữ các cặp khoá mã, xác nhận các thực thể trong giai đoạn đǎng ký, yêu cầu CA cấp chứng nhận, chuyển các khoá mã đến các thực thể, khởi tạo hoặc thu hồi các giấy chứng nhận điện tử. RA là một cơ chế hỗ trợ CA rất hiệu quả, và cũng như trường hợp trên, do yêu cầu bảo mật, RA và CA thường cũng được phân cách nhau cả về mặt vật lý và do các nhóm quản trị mạng khác nhau chịu trách nhiệm. Đó là các thành phần cǎn bản của một hệ thống PKI. Ngoài ra, trong thực tế có thể có một số thành phần và dịch vụ phụ trợ khác trong PKI hoặc có liên quan đến hoạt động của PKI cũng như không phải một hệ PKI nào cũng có đủ các thành phần cơ bản như trên. Chúng ta cũng có hai cách lựa chọn triển khai PKI: Sử dụng dịch vụ từ nhà cung cấp hoặc tự xây dựng nên hệ thống của mình. Sử dụng PKI từ nhà cung cấp dịch vụ Trên mạng Internet có rất nhiều nhà cung cấp hạ tầng PKI, những người sẽ bán các giấy chứng nhận điện tử. Dưới đây là danh sách một số nhà cung cấp như vậy. Cần nhắc lại là nếu bạn muốn xây dựng một mạng VPN sử dụng công nghệ nhận thực bằng giấy chứng nhận điện tử thì tất cả các thực thể trong mạng của bạn đều cần được chứng nhận và nếu mạng quá lớn, chi phí mua giấy chứng nhận từ nhà cung cấp sẽ là không nhỏ. Sau đó cần xây dựng các chính sách về quản trị, điều hành và bảo mật thích hợp. Một điểm cần chú ý khác là bạn nên chọn nhà cung cấp VPN có hỗ trợ cho thiết bị VPN của bạn. Xây dựng hạ tầng mã khoá công khai của riêng bạn Nếu bạn chọn phương án PKI riêng, dưới đây là một số sản phẩm đã được thương mại hoá mà bạn có thể tham khảo được. Các sản phẩm khác nhau sẽ có các đặc trưng riêng khác nhau, và điều quan trọng nhất cần phải hiểu là việc mua một sản phẩm phần mềm hỗ trợ PKI chỉ là một phần nhỏ trong toàn bộ chi phí để xây dựng một hệ PKI. Nên chọn một nhóm chuyên gia tư vấn để xây dựng chính sách bảo mật và kiến trúc của PKI sao cho phù hợp với thực tế và nhu cầu phát triển trong tương lai. Hầu hết các công ty cung cấp kể trên đều có thể giúp đỡ bạn trong công việc hoạch định đó. Kết luận Cơ sở hạ tầng mã khoá công khai sẽ đóng vai trò quan trọng trong việc xây dựng thành công các mạng VPN lớn. Dù cho bạn là một doanh nghiệp đang tìm cách xây dựng mạng riêng ảo VPN hay một nhà cung cấp dịch vụ đang tìm cách cung cấp dịch vụ VPN cho khách hàng của mình, bây giờ chính là thời điểm nên bắt đầu nghiên cứu áp dụng PKI. Các sản phẩm và dịch vụ ban đầu đã sẵn sàng và bạn có thể bắt đầu làm quen với công nghệ này. Chắc rằng hầu hết trong chúng ta sẽ thấy được sự quan trọng và hiệu quả của việc nghiên cứu, triển khai công nghệ này. Nguyễn Đức Kiên (Trưởng Đài Hỗ trợ VDC1)
Thứ Tư, 10/12/2003 02:28
31 👨 3.483
0 Bình luận
Sắp xếp theo