Chương 2 : Các phương pháp mã hoá và bảo mật thông tin
3.3 Quản lý khoá mã
Như đã đề cập trong các chương trước, việc trao đổi khoá mã, quản lý, huỷ bỏ khoá mã là một trong những vấn đề rất phức tạp. Các hệ thống mã hoá có thể sử dụng để cung cấp tính bảo mật cho thông tin, kiểm ra tính toàn vẹn của thông tin, xác thực nguồn gốc của thông tin, chống phủ nhận thông tin, nhưng các hệ thống mã hoá dù mạnh đến đâu cũng trở nên vô nghĩa nếu khoá mã bí mật bị đánh cắp, bị thay đổi hay bị lỗi. Do đó khoá mã bí mật cần được cấp phát đến đúng đối tượng, phải được quản lý chặt chẽ và cập nhật thường xuyên [5].
Hệ thống mã hoá dựa trên cơ sở tin tưởng lẫn nhau. Người sử dụng tin tưởng lẫn nhau để bảo vệ khoá mã, người sử dụng tin tưởng người quản lý khoá mã, họ tin tưởng hệ thống máy chủ kiểm soát, duy trì và phân phát khoá mã.
Quản lý khoá mã bí mật là vấn đề làm đau đầu các nhà quản trị nhiều nhất khi triển khai hệ thống mã hoá. Nếu hệ thống sử dụng thuật toán mã hoá đối xứng để bảo vệ thông tin thì số lượng khoá mã bí mật rất lớn. Trong hệ thống mã hoá đối xứng số lượng khoá mã cần phải quản lý là n(n1)/2 với n là số người sử dụng trong hệ thống. Như vậy nếu có 1,000 sử dụng hệ thống thì ta cần có 499,500 khoá mã bí mật - một con số rất lớn nếu so với 2,000 khoá được dùng trong hệ thống mã hoá bất đối xứng [5]. Bảng bên dưới so sánh số lượng khoá mã sử dụng trong hệ thống DES và hệ thống RSA [7].
Số lượng người sử dụng trong hệ thống
10 100 1,000 10,000 100,000
Hệ thống RSA 20 200 2,000 20,000 200,000 Hệ thống DES 45 4,950 499,500 49,995,000 4,999,950,000 Khoá mã bí mật cần phải được bảo vệ khi truyền đi, khi lưu trữ trên máy trạm và trên máy chủ. Khoá mã cần phải được tạo ra, huỷ đi và khôi phục lại một cách chính xác.
Khi khoá mã được gửi đến cho một người, khoá mã ấy cần phải được lưu vào một chỗ an toàn trong hệ thống file hệ thống. Khoá mã, cấu hình và các thông số được lưu trong một module và cần phải bảo vệ chặt chẽ. Nếu kẻ tấn công lấy được các thông tin này, hắn có thể giả danh người sử dụng để giải mã, đọc và mã hoá các thông tin không phải gửi cho hắn.
Về mặt quá khứ, khoá mã được lưu trong một hộp an toàn và có những người hộ tống khi chuyển đi. Khoá mã có thể được phân phát cho một máy chủ chính, người quản trị mạng sau đó sẽ phân phát các khoá mã bằng cách đem đến cài đặt trên từng máy tính. Một số hệ thống khác lại gửi đi một khoá mã chủ (master key) và người sử dụng sẽ dùng khoá mã chủ này để tạo ra một khoá mã bí mật duy nhất cho riêng mình.
Ngày nay, phần lớn các hệ thống phân phát khoá mã đều phải tuân theo một giao thức và được tự động hoá hoàn toàn. Điều quan trọng với các công ty muốn phát triển hệ thống quản lý khoá mã đó là mức độ an toàn và hiệu quả đầu tư.
Khi sử dụng giao thức Keberos, trung tâm phân phát khoá mã KDC được sử dụng để lưu trữ, phân phối và duy trì khoá mã session. Phương pháp này cho phép tự động hoá quá trình phân phát khoá mã. Khi một máy tính muốn trao đổi thông tin với một máy tính khác, máy tính đó sẽ phải yêu truy nhập thông qua trung tâm KDC. KDC sau đó sẽ tính toán khoá mã phiên sử dụng giữa hai máy tính. Quá trình tự động hoá này giảm thiểu các lỗi có thể xảy ra với hệ thống trao đổi khoá bán công. Tuy nhiên nếu KDC bị chiếm quyền điều khiển thì sẽ rất nguy hiểm cho tất cả các máy tính và dịch vụ trong hệ thống [6].
Một số giao thức khác hiện đang được sử dụng rất phổ biến trong các hệ thống máy tính và trong thương mại điện tử để trao đổi khoá là RSA và Diffie-Hellman.
Trên thực tế, có rất nhiều công ty sử dụng hệ thống mã hoá khoá công khai nhưng rất hiếm khi thay đổi khoá mã. Điều này có thể do công việc thay đổi khoá mã đòi hỏi quá nhiều công sức, do người quản trị mạng quá bận rộn hoặc do không nhận thức được tầm quan trọng của việc thay đổi khoá. Tần suất sử dụng khoá mã có mối quan hệ trực tiếp đến tần suất mà khoá mã phải thay đổi. Càng sử dụng nhiều khoá mã càng có nhiều khả năng bị ăn cắp và phá vỡ. Nếu một khoá mã càng ít được sử dụng, nó càng ít có khả năng bị đánh cắp và do đó rủi ro cũng giảm xuống rất nhiều. Mức độ bảo mật và tần suất sử dụng khoá có thể giúp xác định tần suất cần cập nhật khoá mã. Ví dụ một viện dinh dưỡng bà mẹ và trẻ em chỉ cần thay đổi khoá mã sáu tháng một lần còn một tổ chức quân sự cần phải thay đổi khoá mã hàng ngày. Điều quan trọng là khoá mã cần phải được thay đổi một cách an toàn, chính xác.
Quản lý khoá mã là một trong những vấn đề trở ngại nhất của hệ thống mã hoá.
3.3.1 Nguyên tắc quản lý khoá mã
Khoá mã không thể tồn tại dưới dạng cleartext ở bên ngoài thiết bị mã hoá. Do rất nhiều thuật toán mã hoá khoá công khai công bố chi tiết cách thức thực hiện khiến cho việc bảo vệ khoá mã chịu nhiều áp lực hơn. Nếu một kẻ tấn công hiểu rõ cách thức làm việc của thuật toán mã hoá, tất cả các việc hắn phải làm là tìm được khoá mã để thâm nhập vào hệ thống [5]. Đó là lý do tại sao khoá mã quan trọng và không thể được lưu dưới dạng cleartext.
Các quy trình quản lý, duy trì, phân phát khoá mã cần phải được làm một cách tự động và tránh để cho người sử dụng biết. Các bước này cần phải được tích hợp vào phần mềm ứng dụng và hệ điều hành vì nếu để người sử dụng quản lý thì xác suất xảy ra lỗi sẽ nhiều hơn và nguy cơ rủi ro sẽ cao hơn. Khoá mã có thể bị mất, bị phá vỡ hoặc bị hỏng do đó cần phải có hệ thống sao lưu dự phòng. Hệ thống này cũng phải được bảo vệ an toàn nhưng cũng phải đảm bảo truy cập dễ dàng khi cần thiết. Nếu dữ liệu được mã hoá và sau đó vô tình người sử dụng đánh mất khoá mã thì dữ
liệu đó vĩnh viễn không bao giờ khôi phục lại được nếu không có hệ thống sao lưu dự phòng. Ứng dụng quản lý phải có chức năng khôi phục khoá mã và phải có chức năng sao lưu khoá mã để cất sang một nơi an toàn khác.
Dĩ nhiên có thêm một hệ thống sao lưu khoá mã thì càng tăng khả năng các khoá mã ấy bị đánh cắp. Do đó cần phải bảo vệ chặt chẽ hệ thống quản lý khoá mã cũng như hệ thống sao lưu dự phòng.
Nguyên tắc sử dụng và quản lý khoá mã [5]
- Chiều dài khoá mã phải đủ lớn để cung cấp độ an toàn cần thiết - Khoá mã phải được lưu trữ và truyền đi một cách an toàn
- Khoá mã phải có tính ngẫu nhiên cao và phân bố đều trong dải khoá mã - Thời gian hiệu lực của khoá mã phải tương ứng với độ nhạy cảm của thông
tin (thông tin càng nhạy cảm thì thời gian hiệu lực của khoá mã càng ngắn và ngược lại)
- Càng sử dụng nhiều khoá mã thì thời gian hiệu lực của khoá mã càng phải ngắn
- Khoá mã phải được lưu dự phòng và có khả năng khôi phục khi cần thiết - Khoá mã phải huỷ bỏ tuyệt đối khi hết thời gian hiệu lực
Chu trình cần thực hiện khi quản ký khoá mã 5]
- Tạo khoá - Phân phát khoá - Lưu trữ khoá - Sử dụng
- Khôi phục vào giao cho đối tượng thứ ba quản lý - Thay thế và huỷ bỏ khoá
Hình 3.8: Chu trình quản lý khoá mã