Kỹ thuật kiểm tra việc sử dụng khóa

Một phần của tài liệu tìm hiểu các giao thức tạo lập khóa bí mật và các kỹ thuật quản trị khóa (Trang 58 - 78)

3.3.1Tách biệt khóa và ràng buộc việc dùng khóa

Những thông tin có thểđưa thêm vào kết hợp với khóa sẽ dùng để mã hóa có thể là những tham số hạn chế những sử dụng trên khóa đó bao gồm:

1) Người sở hữu giá trị khóa đó. 2) Thời gian khóa còn hợp lệ. 3) Định danh khóa.

5) Thuật toán riêng nào đó.

6) Hệ thống hay môi trường dựđịnh sẽ dùng, những sử dụng được phép. 7) Tên cá thể gắn với quá trình tạo, đăng ký, xác nhận khóa.

8) Kiểm tra tính toàn vẹn trên khóa.

Nguyên lý của việc tách biệt khóa là các khóa có chức năng khác nhau phải được tách bạch về mặt mã hóa, tránh dùng cùng khóa cho nhiều mục đích khác nhau ví như không nên dùng khóa mã hóa khóa giống như khóa mã hóa dữ liệu, hoặc như khóa đối xứng và khóa dùng để ký cũng phải phân biệt rõ ràng vì vòng đời của chúng là không giống nhau. Những sai lầm chúng ta thường mắc phải là: dùng khóa công khai trong cả sơđồ ký và phần hỏi – đáp nhằm xác thực thực thể; khóa dùng cả trong mã hóa và xác thực thực thể (rất dễ bị tấn công chọn bản rõ); sử dụng khóa đối xứng cả trong mã hóa và xác thực văn bản.

3.3.2Các kỹ thuật điều khiển việc sử dụng khóa

3.3.2.1. To đuôi khóa và các biến th khóa

Tạo đuôi khóa là phương pháp tương đối đơn giản để mô tả những sử dụng được phép trên khóa (khóa dùng để mã hóa dữ liệu hay mã hóa khóa). Nó là một vecto bit hay một trường có cấu trúc đi cùng khóa trong toàn bộ thời gian sống của khóa. Vecto này được mã hóa cùng với khóa, và chỉ có thể nhận được nó ở dạng tường minh sau khi giải mã khóa.

Phương pháp đơn giản nhất để phân tách khóa là các khóa khác nhau đó được xác định từ một giá trị nào đó nhờ các hàm, các giá trịđó gọi là các biến thể khóa.

- Kỹ thuật đơn giản nhất là kỹ thuật lấy phần bù khóa. Thay vì dùng khóa K (khóa mã hóa các khóa khác) ta sẽ sử dụng giá trị K⊕N trong đó N tăng lên sau mỗi lần sử dụng.

- Kỹ thuật thứ hai sử dụng phần bù theo mặt nạ định sẵn. Giả sử trong hệ thống có ba lớp khóa, khi đó các khóa sẽ được xác định từ hai biến thể

1 1 K v

K = ⊕ và K2 =Kv2 của khóa chính K, với v1, v2 là các giá trị mặt nạ công khai có sẵn.

Lưu ý rằng các phép toán trên phải không khả nghịch (một chiều), nếu không giá trị ban đầu có thể tính được từ các biến thể của nó.

3.3.2.2. Chng nhn khóa

Yêu cầu chống lại sự tráo đổi khóa xuất hiện trong hầu hết các giao thức tạo lập khóa. Một trong những kỹ thuật dùng để ngăn ngừa việc tráo đổi khóa là đặc tả rõ ràng danh tính các bên có liên quan tới giá trị khóa đó, và chỉ khi có các thông tin định danh đúng đắn mới có thể xác định được khóa. Khi đó, khóa được gọi là dành riêng cho các danh tính đó, hay được chứng nhận cho các bên đó.

Hệ thống có thể thực hiện chứng nhận khóa bằng cách đơn giản như sau: Phục vụ được uỷ quyền (hoặc có thể là bên nào đó) dùng khóa mã hóa khóa K để mã hóa khóa phiên S cho bên gửi i và bên nhận j dưới dạng: EK⊕(i||j)(S), trong đó giá trị i và j là duy nhất xác định thực thể trong hệ thống. Khi đó hai bên để tính được S phải có chung giá trị K, và các giá trị i, j đúng đắn.

3.3.2.3. Vecto điu khin

Là giải pháp kết hợp ý tưởng tạo đuôi khóa và chứng nhận trên khóa. Mỗi khóa S sẽ đi kèm với một vecto C, chỉ rõ mục đích sử dụng khóa. Vecto này sẽ ràng buộc S thông qua sự thay đổi khóa mã khóa K trước khi mã hóa: EKC(S).

Việc giải mã để nhận được khóa yêu cầu phải cung cấp vecto C đúng đắn cũng như K, còn nếu giá trị KCkhông đúng thì kẻ tấn công sẽ không thu được thông tin gì.

3.4.Quản lý khóa trong hệ thống đa vùng

Các kỹ thuật ta đã xét trong các phần trên chủ yếu hoạt động trong vùng chỉ có một cơ quan được uỷ thác (CA). Tuy nhiên trong thực tế có những hệ thống gồm nhiều vùng, mỗi vùng có một CA riêng. Vậy thì làm thế nào để các bên uỷ thác vào CAX nào đó có thể tin cậy vào các giá trị khóa của các thành viên uỷ thác vào CAy.

3.4.1Quan hệ tin cậy giữa hai vùng

Nếu hai bên U và V, trong đó U thuộc vùng DU có cơ quan được uỷ thác TU, còn V là thành viên của vùng DV, uỷ quyền TV, muốn truyền tin cho nhau, thì có thể thực hiện một trong hai cách sau:

1. (dùng chung khóa đối xứng) thiết lập khóa chung KUV chỉ có hai bên (có thể có uỷ quyền) biết. Quá trình để U và V có chung một giá trị khóa có thể phác thảo các bước như sau:

- U thông báo cho TU muốn có khóa với V

- TU, TV thiết lập khóa bí mật ngắn hạn KUV

- TU chuyển KUV cho U, TV chuyển cho V an toàn và tin cậy

- U dùng KUVđể truyền thông trực tiếp với V.

2. (chia sẻ khóa công khai tin cậy) giá trị khóa công khai tin cậy sẽđược sử dụng như là cầu nối tin cậy giữa các vùng. U có thể nhận được khóa công khai tin cậy từ V như sau:

- U yêu cầu TU cung cấp khóa công khai của V

- TU nhận được giá trịđó từ TV xác thực

- TU chuyển khóa này cho U

- U sử dụng khóa này để truyền thông trực tiếp với V

Để thực hiện được một trong hai trường hợp trên thì giữa TU và TV phải có quan hệ tin cậy, nó có thể là trực tiếp “tin” vào nhau, hoặc cả hai cùng “tin” vào một bên trung gian thứ ba.

Bây giờ chúng ta sẽ nói đến một khái niệm thường xuyên được nhắc đến trong phần tiếp theo.

Chng ch giao chéo (cross - certificate) là chứng chỉ do một CA tạo ra, chứng nhận khóa công khai của CA khác.

3.4.2Các mô hình tin cậy với nhiều CA

Có rất nhiều mô hình khác nhau để tổ chức quan hệ tin cậy giữa các CA trong hệ thống gồm nhiều CA, để phân biệt với mô hình truyền thông người ta gọi đó là mô hình dùng để chứng nhận. Các quan hệ tin cậy được thiết lập như thế nào để các thành viên của một CA nào đó có thể kiểm thửđược chứng chỉ do CA khác cấp.

3.4.2.1. Sự tin cậy trên các vùng riêng biệt

Mô hình này có các CA khác nhau xác định trên các vùng khác nhau, giữa chúng không có quan hệ tin cậy. Người dùng ở vùng này không thể kiểm thử tính xác thực của chứng chỉ trong vùng khác.

3.4.2.2. Mô hình tin cậy có thứ bậc chặt chẽ

Mô hình này gồm có một nút gốc, và mọi sự chứng nhận đều xuất phát từ gốc, vì thế nó còn được gọi là mô hình tin cậy tập trung.

Nhược điểm của mô hình này là:

- mọi sự tin cậy của hệ thống phụ thuộc vào gốc

- luôn luôn yêu cầu một dãy các bước chứng nhận kể cả với hai thực thể trên cùng một vùng.

- khi cây có độ cao lớn thì dãy các bước chứng nhận càng lớn.

. . . ) 1 ( r E ) 1 ( 1 E CA1 ) 2 ( s E ) 2 ( 1 E CA2 . . . Hình 3.4 Các vùng riêng biệt

- không thật tự nhiên, vì thông thường sự tin cậy bao giờ cũng bắt nguồn từ những nút cục bộ chứ không phải gốc ở xa.

Hình 3.5 Mô hình tin cậy có thứ bậc chặt chẽ

3.4.2.3. Chứng chỉ ngược thứ bậc và mô hình tổng quát

Để khắc phục nhược điểm sự tin cậy tập trung quá nhiều vào gốc của mô hình trước, người ta đưa ra một mô hình tổng quát hơn cho phép các CA con ở mức dưới có thể chứng nhận chứng chỉ của các CA cha. Vì thế trong mô hình này có hai loại chứng chỉ: loại đúng thứ bậc do CA cha chứng nhận cho các CA con, loại ngược thứ bậc do các CA con chứng nhận CA cha. Mô hình này tự nhiên hơn mô hình trước vì CA của mỗi vùng sẽ chứng nhận khóa công khai của thực thể trong vùng đó. Tuy nhiên mô hình này vẫn còn không thuận tiện khi phải thiết lập quan hệ tin cậy giữa hai thực thể thuộc hai vùng khác nhau.

) 2 ( 1 E CA5 CA3 CA4 CA1 CA2 ) 1 ( r E ) 1 ( 1 E … (2) s E … (4) 1 E (2) r E … …

Hình 3.6 Mô hình tin cậy ngược thứ bậc.

Khi đó mô hình tin cậy không tập trung, không có nút gốc, có dạng đồ thị có hướng, trong đó quan hệ tin cậy được thể hiện bởi các cung của đồ thị là mô hình tổng quát và phù hợp với yêu cầu thực tế nhất trong số các mô hình đã xét.

Ngoài ra, đôi khi người ta phải giới hạn phạm vi của dãy chứng nhận có thể chỉ nhỏ hơn một giá trị nào đó, hoặc các vùng hợp lệ trong khi chứng nhận.

3.5.Vòng đời khóa

Cách quản lý khóa đơn giản nhất là dùng khóa vĩnh cửu nghĩa là giá trị của nó không thay đổi mỗi khi sử dụng. Tuy nhiên điều này rất nguy hiểm, vì vậy khóa phải được cập nhật một cách định kỳđể tránh sự phụ thuộc giữa khóa mới và khóa cũ trong quá khứ. Dãy các trạng thái thể hiện sự thao tác trên chất liệu khóa trong

CA5 CA3 CA4 CA1 CA2 CA5 CA3 CA4 CA1 CA2

toàn bộ thời gian sống của nó được gọi là vòng đời quản lý khóa. Các giai đoạn này thường bao gồm:

1 đăng ký thành viên - thực thể trở thành thành viên của vùng. Giai đoạn này yêu cầu một thực thể nào đó khi gia nhập vùng phải cung cấp một số PIN, hay mật khẩu.

2 khởi tạo người dùng - thực thể bắt đầu thực hiện ứng dụng mã hóa, thường là hoạt động sử dụng hay cài đặt chất liệu khóa ban đầu thu được sau khi đăng ký.

3 sinh khóa – sinh ra khóa để mã hóa. Thành viên có thể tự lấy khóa của mình hoặc yêu cầu từ một uỷ quyền nào đó.

4 cài đặt khóa - chất liệu khóa được cài đặt thực sựđể sử dụng

5 đăng ký khóa – cùng với cài đặt khóa, chất liệu khóa phải chính thức được ghi lại cùng với tên để phân biệt các thành viên.

6 sử dụng thông thường - sử dụng khóa để mã hóa theo sơđồ mã hóa nào đó. 7 sao lưu khóa – sao lưu chất liệu khóa một cách độc lập bằng phương tiện lưu

giữ tin cậy.

8 cập nhật khóa - trước khi khoảng thời gian mã hóa hết liệu lực, chất liệu khóa phải được thay bằng giá trị mới.

9 lưu trữ lại - chất liệu không còn được dùng nữa có thể được lưu giữ lại phục vụ cho một vài trường hợp nhất định nào đó.

10 đăng ký lại và huỷ bỏ - mỗi khi không còn yêu cầu khóa hay duy trì nó nữa, thì cần phải đăng ký lại (loại bỏ tất cả bản ghi chính thức các khóa đang có) và loại bỏ tất cả cá bản sao của khóa. Nếu là khóa bí mật thì mọi sự theo dấu cũng phải được xóa bỏ hẳn.

11 khôi phục khóa - nếu chất liệu khóa bị mất không phải vì để lộ (ví dụ như thiết bị hư hỏng hay quên mật khẩu), cần phải khôi phục lại từ bản sao lưu của nó.

12 thu hồi khóa - việc làm cần thiết khi loại bỏ khóa đã dùng hết hạn. Nếu sử dụng chứng chỉ khóa công khai điều này có nghĩa là thu hồi chứng chỉ. Các giai đoạn này thường được sử dụng trong hệ mã công khai, còn với hệđối xứng thì không cần giai đoạn: đăng ký, sao lưu, huỷ bỏ hay lưu trữ lại.

Chương 4 - MỘT SỐ CÁCH TỔ CHỨC CÁC DỊCH VỤ QUẢN TRỊ KHÓA

4.1.Giới thiệu

Ngày nay hầu như tất cả các doanh nghiệp đều có Web site riêng của mình và trong các công ty thì việc sử dụng Internet ngày càng trở nên hết sức bình thường. Hệ quả của nó là mọi người ngày càng quan tâm thực sựđến thương mại điện tử (TMĐT) trên nền tảng Web. TMĐT với sự tham gia của rất nhiều tổ chức, doanh nghiệp khác nhau với nhiều giao dịch điện tử, không có giấy tờ, chỉ có truyền thông mạng và máy tính, truyền thông có thể là công khai hoặc bí mật, hoặc cũng có thể là sự hợp thành của cả hai. Trước đây TMĐT chủ yếu tập trung vào trao đổi dữ liệu điện tử, và đó là phương thức chính để thực hiện các hoạt động kinh doanh giữa các bên đã thiết lập quan hệ làm ăn trước đó. Nhưng giờđây dưới sự phát triển của trình duyệt và HTML, TMĐT đã được mở rộng như là các hoạt động kinh doanh thông qua Internet thậm chí có thể giữa các bên mà có thể trước đây chưa hề biết nhau, còn Web được coi là hình thức thông dụng cho việc chuyển vận thông tin. Việc giao dịch sử dụng cơ sở hạ tầng của mạng công khai Internet có thể giảm chi phí cho các doanh nghiệp. Nó sẽ cho phép tất cả các công ty lớn, vừa, nhỏ vươn tới các khách hàng thực sựở khắp mọi nơi.

Tuy nhiên chúng ta phải đối mặt với một thực tế là Internet và Web cực kỳ nhạy cảm với các kiểu tấn công, và vì thế nhu cầu tất yếu ởđây đòi hỏi cần phải phát triển các dịch vụđảm bảo an toàn.

Trong chương này luận văn sẽ tập trung vào hai vấn đề ngày càng trở nên quan trọng hơn và gần nhưđã trở thành một phần của thương mại Web: giao thức Socket an toàn SSL và cơ sở hạ tầng khóa công khai PKI.

4.2.Giao thức SSL

SSL (Secure Socket Layer) do Netscape đưa ra dùng để cung cấp tính bí mật và tin cậy giữa hai ứng dụng đang giao tiếp.

SSL Handshake Protocol cho phép server và client thực hiện việc xác thực lẫn nhau, thỏa thuận một thuật toán mã hóa và các khóa bí mật trước khi giao thức ứng dụng gửi hoặc nhận dữ liệu.

4.2.1Kiến trúc của SSL

Hình 4.1 Chồng giao thức SSL

Giao thức SSL Record cung cấp các dịch vụ an ninh chủ yếu cho các giao thức khác ở tầng trên. Đặc biệt là giao thức HTTP (Hypertext Transport Protocol) cung cấp dịch vụ tương tác Web giữa client/server có thể hoạt động trên nền của SSL. Ba giao thức mức cao hơn có thể coi là một phần của SSL: giao thức SSL Handshake, giao thức Change Cipher Spec, và giao thức Alert. Ngoài ra có hai khái niệm quan trọng của SSL là phiên làm việc SSL và kết nối SSL:

− kết nối SSL: Một kết nối là một chuyển vận (được xác định trong mô hình OSI) cung cấp loại dịch vụ phù hợp. Với SSL, kết nối là quan hệ ngang hàng (peer-to-peer). Kết nối xảy ra rất nhanh chóng, và luôn luôn gắn liền với một phiên làm việc nào đó.

− phiên làm việc SSL: luôn luôn gắn giữa client và server. Chúng được tạo ra bởi giao thức Handshake, xác định các tham số an toàn mã hóa có thể dùng chung cho nhiều kết nối. Sử dụng phiên làm việc để giảm chi phí

Giao thức SSL Handshake Giao thức Change Cipher Spec Giao thức SSL Alert HTTP Giao thức SSL Record TCP IP

thương lượng tham số mới mỗi khi kết nối. Một phiên làm việc gồm nhiều kết nối.

4.2.2Giao thức SSL Record

Giao thức này cung cấp hai dịch vụ cho kết nối SSL:

− bí mật: Giao thức Handshake xác định khóa bí mật dùng chung để sử dụng mã hóa đối xứng cho payload SSL.

− toàn vẹn dữ liệu: Giao thức Handshake cũng xác định khóa bí mật dùng chung sử dụng để hình thành mã xác thực văn bản (MAC).

Hình vẽ dưới đây sẽ chỉ rõ hơn toàn bộ hoạt động của giao thức SSL Record:

Hình 4.2 Hoạt động giao thức SSL Record

Đầu tiên là phân mảnh dữ liệu thành các khối có kích thước nhỏ hơn hoặc bằng 214

Một phần của tài liệu tìm hiểu các giao thức tạo lập khóa bí mật và các kỹ thuật quản trị khóa (Trang 58 - 78)