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

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 61 - 78)

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. (adsbygoogle = window.adsbygoogle || []).push({});

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 đó. (adsbygoogle = window.adsbygoogle || []).push({});

− 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 byte. Sau đó, có thể thực hiện nén dữ liệu, tuy nhiên trong phiên bản SSLv3, không áp dụng thuật toán nén nào nên trường này có giá trị null. Bước tiếp theo trong quá trình xử lý là tính mã xác thực văn bản trên dữ liệu đã nén. Để làm được điều này, phải có một khóa bí mật dùng chung. Tính toán này được xác định như sau:

Thêm MAC Phân mảnh Dữ liệu ứng dụng Nén Thêm header của SSL record Mã hóa

hash(MAC_write_secret || pad_2 || hash(MAC_write_secret || pad_1 || seq_num || SSLCompress.type || SSLCompress.length || SSLCompressed.fragment)) trong đó

MAC_write_secret : khóa bí mật dùng chung

hash : thuật toán băm (MD5 hạơc SHA-1)

pad_1 : byte 0x36 lặp lại 48 lần với MD5, 40 lần với SHA-1 pad_2 : byte 0x5C lặp lại 48 lần với MD5, 40 lần với SHA-1 seq_num : số tuần tự của văn bản

SSLCompress.type : giao thức tầng trên được dùng xử lý phân mảnh này SSLCompress.length : độ lớn của phân mảnh đã nén

SSLCompressed.fragment : phân mảnh nén

Sau đó, văn bản nén cùng với MAC được mã hóa bằng thuật toán mã hóa đối xứng, có thể là IDEA, RC2-40, DES-40, DES, 3DES, …Bước cuối cùng của giao thức là thêm header gồm các trường sau:

− Content Type (8 bit): giao thức tầng cao hơn được dùng để xử lý các phân đoạn đã đóng gói.

− Major Version (8 bit): phiên bản chính của SSL đang dùng. Với SSLv3 thì giá trị này bằng 3.

− Minor Version (8 bit): phiên bản phụđang dùng. Với SSLv3 thì giá trị này bằng 0.

− Compressed length (16 bit): độ lớn tính theo byte của phân đoạn bản rõ.

4.2.3Giao thức Change Cipher Spec

Một trong những giao thức đặc tả SSL dùng trong SSL Record và là giao thức đơn giản nhất, gói tin của nó chỉ có một byte với giá trị bằng 1, chỉ ra trạng thái treo để chờ sao chép vào trạng thái hiện thời, đang cập nhật bộ mã hóa sử dụng để kết nối.

4.2.4Giao thức Alert

Giao thức dùng để chuyển cảnh báo có liên quan đến SSL cho thực thể ngang hàng. Gói tin của giao thức gồm hai byte, byte thứ nhất có giá trị cảnh báo hoặc rất có hại để chuyển tính nghiêm trọng của vấn đề: nếu là rất có hại, SSL ngay lập tức kết thúc kết nối, kết nối khác của phiên làm việc sẽđược tiếp tục, không thiết lập kết nối mới. Byte thứ hai là mã đặc tả cảnh báo: gói tin nhận được không thích hợp, MAC nhận được không đúng, không giải nén được, handshake thất bại (tương ứng với giá trị thứ nhất là rất có hại).

4.2.5Giao thức Handshake

Phần phức tạp nhất của SSL. Giao thức cho phép server và client xác thực với nhau và thỏa thuận thuật toán mã hóa, MAC và khóa để bảo vệ dữ liệu SSL. Giao thức được gọi trước khi chuyển dữ liệu của ứng dụng. Giao thức bao gồm một dãy các các gói tin trao đổi giữa client và server như trong hình vẽ dưới đây:

Hình 4.3Hoạt động giao thức Handshake

Pha 1 Thiết lập năng lực an ninh gồm phiên bản giao thức, định danh phiên làm việc, bộ mã hóa, phương pháp nén, số ngẫu nhiên khởi tạo. (adsbygoogle = window.adsbygoogle || []).push({});

Pha 2 Server gửi chứng chỉ, trao

đổi khóa, và yêu cầu chứng chỉ. Tín hiệu server kết thúc pha chào hỏi.

Pha 3 Client gửi chứng chỉ nếu

được yêu cầu, trao đổi khóa, và gửi kiểm thử chứng chỉ (có thể).

Pha 4 Thay đổi bộ mã hóa và kết thúc giao thức bắt tay.

Mỗi gói tin đều gồm có ba trường:

− Type (1 byte): chỉ rõ gói tin này là loại nào trong số 10 gói tin. − Length(3 byte): độ lớn của gói tin tính theo byte.

− Content (≥ 1 byte): tham số kết hợp với gói tin.

Quá trình thiết lập kết nối logic giữa client và server có thể chia làm bốn pha như dưới đây:

Pha 1: Thiết lp năng lc an ninh

Thiết lập kết nối logic và thiết lập khả năng an ninh sẽ có. Quá trình trao đổi sẽ xuất phát từ client thông qua việc gửi client_hello_massage với các tham số dưới đây:

− Version: Phiên bản SSL mà client có thể hiểu được.

− Random: Cấu trúc ngẫu nhiên do client sinh ra chứa 32 bit − Session ID: Định danh phiên làm việc có độ dài thay đổi

− CipherSuite: Danh sách tổ hợp các thuật toán mã hóa client được hỗ trợ. − Compression Method: Danh sách các phương pháp nén client hỗ trợ. Sau khi nhận được gói tin client_hello, client chờđể nhận gói tin server_hello cũng có các tham số tương tự như gói tin client_hello.

Thành phần đầu tiên của Cipher Suite là phương thức trao đổi khóa: RSA, Diffie-

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 61 - 78)