Các khái niệm an ninh được sử dụng trong SSL

Một phần của tài liệu Công nghệ mạng riêng ảo SSL VPN và ứng dụng trong xây dựng hệ thống truyền tệp (Trang 37)

2.2.1 M hóa

Kỹ thuật bảo mật dữ liệu đơn giản nhất đó là mã hoá. Mã hoá được xây dựng dựa trên ý tưởng biến đổi dữ liệu đầu vào (ở dạng bản rõ, dễ đọc) sang một dạng mới (dạng bản mã, khó nhận biết) bằng cách sử dụng một khoá cụ thể, thường là một chuỗi ngẫu nhiên có độ dài từ 8 đến 24 byte. Sơ đồ quá trình mã hoá và giải mã dữ liệu được mô tả trong hình vẽ 2.3.

Trước khi trao đổi dữ liệu, bên gửi và bên nhận thống nhất với nhau về thuật toán và khoá dùng cho quá trình mã hoá và giải mã. Bên gửi mã hoá dữ liệu rồi gửi cho bên nhận. Khi tới đích, bên nhận giải mã dữ liệu rồi chuyển cho ứng dụng. Trên đường truyền dữ liệu có thể bị chặn bởi kẻ tấn công, tuy nhiên do không có khoá giải mã nên kẻ tấn công không thể đọc được nội dung dữ liệu. Mức độ can thiệp của kẻ tấn công phụ thuộc phần lớn vào thuật toán dùng để mã hoá, một thuật toán được gọi là an toàn khi nó thoả mãn các điều kiện: kích thước của khoá phải lớn, độ mật của khoá phải cao.

Lược đồ mã hoá sử dụng chung một khoá cho việc mã hoá và giải mã thường được gọi là hệ thống mã hoá khoá đối xứng hay mã hoá khoá bí mật. Một số thuật toán mã hoá khoá đối xứng được sử dụng phổ biến hiện này là: DES, AES, Triple- DES, RC2, và RC4… ([2], [6]).

Mã hoá Giải mã

Bản rõ Bản mã Bản rõ Khoá giải Khoá mã

Hình 2.3 Sơ đồ hệ thống mã hoá khoá đối xứng

Các thuật toán mã hoá khoá đối xứng chỉ an toàn khi khoá chia sẻ được giữ bí mật. Nếu bên gửi và bên nhận ở xa nhau thì việc trao đổi khoá sẽ gặp rất nhiều khó khăn. Tuy nhiên, vấn đề trên sẽ được giải quyết khi hệ thống mã hoá khoá công khai hay mã hoá khoá bất đối xứng được đưa vào sử dụng.

Mã hoá khoá công khai là giải pháp tốt nhất cho vấn đề quản lý và trao đổi khoá. Trái ngược với mã hoá khoá bí mật, mã hoá khoá công khai sử dụng một cặp khoá khác nhau cho việc mã hoá và giải mã. Khoá mã hóa (public key) được công bố rộng rãi, trong khi đó khoá giải mã (private key) được giữ bí mật bởi người sở hữu nó. Bằng cách này, hai bên tham gia giao tiếp có thể trao đổi khoá cho nhau an toàn mà không cần gặp nhau. Lược đồ mã hoá khoá công khai được mô tả bởi hình vẽ 2.4.

Mã hoá Giải mã Bản rõ Bản mã Bản rõ Khoá riêng Khoá công khai

Hình 2.4 Sơ đồ hệ thống mã hoá khoá công khai

Bên gửi dùng khoá công khai của bên nhận để mã hoá thông điệp rồi gửi cho bên nhận, khi nhận được thông điệp, bên nhận dùng khóa riêng của mình để giải mã thông điệp, chỉ có khoá riêng của người nhận mới có thể giải mã được thông điệp.

Một số thuật toán mã hoá khoá công khai thường được sử dụng là: RSA (Ron Rivest, Adi Shamir và Leonard Adleman) và thuật toán DH (Diffie-Hellman)…

2.2.2 Hàm băm và bản tóm lược thông điệp

Hàm băm một chiều nhận một chuỗi đầu vào có độ dài bất kỳ và sinh ra một chuỗi có độ dài cố định. Chuỗi này thể hiện đặc trưng nội dung của thông điệp ban

đầu và được gọi là bản tóm lược thông điệp. Các bản tóm lược thông điệp có hai đặc tính quan trọng:

1. Tính một chiều: khả năng lấy lại thông điệp ban đầu từ bản tóm lược của nó là điều cực kỳ khó khăn.

2. Tính bất xung đột: khó có thể sinh ra một bản tóm lược từ hai thông điệp khác nhau.

Bản tóm lược thông điệp thường được dùng để tạo ra chữ ký điện tử và mã xác thực thông điệp, cả hai sẽ được đề cập đến trong phần tiếp theo. Các thuật toán băm thường được sử dụng hiện này là MD5, SHA-1, SHA-256, SHA-512. Hàm băm MD5 cho bản tóm lược dữ liệu có độ dài 16 bytes, hàm băm SHA-1 cho độ dài bản tóm lược là 20 bytes ([26]).

2.2.3 M xác thực thông điệp - MAC

Mã xác thực thông điệp dùng để đảm bảo tình toàn vẹn của dữ liệu trên đường truyền. MAC được tạo ra qua việc sử dụng hàm băm một chiều trên thông điệp gửi đi và khoá bí mật dùng để mã hoá thông điệp. MAC luôn luôn phụ thuộc vào cả thông điệp đang được xử lý lẫn khoá được dùng để mã hoá.

Bên gửi tính toán MAC rồi bổ sung vào thông điệp trước khi gửi đi, tại nơi nhận một giá trị MAC mới được tính từ dữ liệu thu được và so sánh với MAC được bên gửi đích kèm. Nếu hai giá trị này giống nhau, thông điệp gửi đi không bị thay đổi, ngược lại, thông điệp bị thay đổi nội dung trên đường truyền. Chỉ có bên nhận và bên gửi mới tạo được ra mã xác thực giống nhau vì chí có họ mới có khoá bí mật.

2.2.4 M hoá khoá công khai và chữ ký điện tử

Mã hoá khoá công khai ngoài mục đích giải quyết vấn đề quản lý, phân phối khoá còn được dùng vào việc xác thực, trong trường hợp này khoá riêng được dùng để tạo ra tài liệu xác thực, tài liệu đó được gọi là chữ ký điện tử. Chữ ký điện tử được dùng để xác nhận các bên tham gia giao tiếp và tránh sự tấn công kiểu trung gian xảy ra. Quan hệ giữa chữ ký điện tử và MAC có thể so sánh với quan hệ giữa mã hoá khoá công khai và mã hoá khoá đối xứng; người gửi dùng khoá riêng để ký vào thông điệp và người nhận dùng khoá công khai của người gửi để xác nhận chữ ký của người gửi. Chữ ký điện tử còn có một thuộc tính quan trọng hơn đó là tính không thể chối cãi (nonrepudation). Cả người gửi và người nhận có thể tạo ra mã xác thực thông điệp nhưng chỉ có người ký thông điệp mới có thể tạo ra chữ ký. Vì vậy, người nhận luôn luôn chứng minh rằng người gửi đã ký vào thông điệp và không thể chối cãi được. Hình vẽ 2.5 là sơ đồ xác thực dữ liệu của người dùng qua việc sử dụng chữ ký điện tử ([26]).

Chữ ký điện tử Dữ liệu ban đầu Bản tóm lược dữ liệu Internet Khoá riêng của người gửi

Chữ ký điện tử Bản tóm lược dữ liệu Bản tóm lược dữ liệu Dữ liệu ban đầu So sánh Hàm băm Hình 2.5 Sơ đồ xác thực dữ liệu dùng chữ ký điện tử

Nơi gửi nhậnNơi

Hàm

băm Khoá công khai của người gửi

2.2.5 Chứng chỉ số và cơ quan cung cấp chứng chỉ số

Do khoá công khai được công bố một cách rộng rãi cho nên khi người gửi và người nhận trao đổi khoá công khai với nhau, kẻ tấn công có thể chặn các khoá này trên đường truyền và thay vì gửi khoá đó, họ sẽ gửi khoá của mình có cho các bên. Vậy làm thế nào để các bên tham gia giao tiếp nhận được khoá công khai của nhau? Ta có thể gửi trực tiếp, tuy nhiên như đã nói, cách này không an toàn.

Vấn đề sẽ được giải quyết với sự tham gia của bên thứ ba tin cậy, gọi là cơ quan chứng thực (CA). Tài liệu dùng để chứng thực gọi là chứng chỉ số (hay chứng chỉ điện tử - digital certificate). Mỗi chứng chỉ số thông thường bao gồm các thông tin sau:

• Version: Phiên bản của chứng chỉ số

• Serial Number: số sê ri của chứng chỉ số

• Issuer Name: tên của người ký chứng chỉ số (như VeriSign).

• Subject Name: tên của chứng chỉ/người giữ khoá (như www.ikea.com).

• Period of validity: ngày hết hạn của chứng chỉ.

• Subject: bao gồm những thông tin về thực thể được chứng nhận.

• Public key: khóa công khai được chứng nhận.

• Signature: chữ ký điện tử do CA ký trên toàn bộ tài liệu có trong chứng chỉ nhằm đảm bảo giá trị của chứng thực của chứng chỉ số ([7]).

Như vậy, giải pháp quản lý khoá chánh sự tấn công trung gian đã được tạo ra. CA không có quyền truy cập đến khoá riêng của bất kỳ ai, có nghĩa CA không thể

đọc được bất kỳ thông điệp nào. Hơn nữa, một chứng chỉ số có thể được sử dụng để xác nhận khoá công khai của một người đối với một người, một CA không cần phải tham gia trực tiếp vào quá trình chứng thực khoá công khai của hai bên. Đây là một điều rất thuận lợi trong quá trình giao tiếp.

Các kỹ thuật an ninh được mô tả ở trên (mã hoá, hàm băm, mã hoá khoá công khai và chữ ký điện tử) được coi là các biện pháp an ninh cơ bản. Các biện pháp này có thể được tổ hợp để xây dựng một cơ chế bảo mật phức tạp. PKC có thể chậm hơn SKC hàng nghìn lần nhưng có thể kết hợp hai kỹ thuật này một cách đơn giản, sử dụng PKC để trao đổi các khoá bí mật và SKC mã hoá dữ liệu trao đổi. Tương tự, chữ ký điện tử thường khá chậm và chỉ hiệu quả với các thông điệp nh tuy nhiên có thể kết hợp chữ lý điện tử với các bản tóm lược thông điệp. Đầu tiên tính toán bản tóm lược của một thông điệp, sau đó dùng khoá riêng ký vào bản tóm lược đó. Như vậy, các thông điệp lớn có thể ký một cách dễ dàng. Tổ hợp của bản tóm lược thông điệp với chữ ký điện tử được dùng để đảm bảo tính toàn vẹn dữ liệu và xác thực người gửi mà không cần khoá chia sẻ.

2.3 Giao thức đường hầm SSL

Giao thức SSL là một bộ gồm 4 giao thức được phân thành hai tầng, tầng trên gồm có giao thức bắt tay SSL (Handshake Protocol), giao thức cảnh báo (Alert Protocol), giao thức Change Cipher Spec. Các giao thức này được sử dụng để khởi tạo một phiên, điều khiển lỗi và thực hiện các thay đổi khác khi cần thiết. Tầng dưới gồm giao thức bản ghi SSL (Record Protocol) quy định cách thức vận chuyển dữ liệu giữa bên gửi và bên nhận. Trong phiên bắt tay hai bên sẽ lựa chọn các thuật toán mã hoá, các thuật toán băm và các tham số bảo mật khác dùng cho phiên SSL.

2.3.1 Giao thức bắt tay SSL

Giao thức bắt tay SSL làm nhiệm vụ khởi tạo một phiên SSL và thiết lập kết nối. Có hai kiểu kết nối SSL được sử dụng: một là kiểu kết nối có xác thưc máy chủ và không xác thực máy khách (đây là kiểu kết nối phổ biến nhất), hai là kiểu kết nối có xác thực cả máy chủ và máy khách.

Mục đích của việc bắt tay trong giao thức SSL nhằm:

(1). Giúp máy chủ và máy khách thương lượng các thuật toán bảo vệ dữ liệu trong một phiên làm việc.

(2). Giúp máy chủ và máy khách trao đổi các thông tin cần thiết để tạo khoá phiên. (3). Giúp máy khách và máy chủ xác thực lẫn nhau.

SSL có nhiều phiên bản khác nhau trong luận văn tác giả trình bày các vấn đề liên quan trong phiên bản SSL 3.0.

2.3.1.1 Khởi tạo phiên giao tiếp SSL không xác thực máy khách.

Trong phiên bắt tay, máy chủ và máy khách trao đổi các thông điệp với nhau, các bước và thông điệp trong quá trình bắt tay được mô tả trong bảng 2-1 ([5], [6]).

Bảng 2-1: Các bước thực hiện trong bắt tay SSL

Bước Hành động

1 Máy khách gửi thông điệp ClientHello tới máy chủ đề xuất các tuỳ chọn cho phiên SSL.

2 Máy chủ trả lời máy khách bằng thông điệp ServerHello đáp ứng các tuỳ chọn SSL.

3 Máy chủ gửi thông điệp Certificate để máy khách xác thực.

4 Máy chủ kết thúc phiên thương lượng của nó với thông điệp ServerHelloDone gửi cho máy khách

5 Máy khách cung cấp thông tin tạo khoá phiên qua thông điệp ClientKeyExChange. 6 Máy khách gửi thông điệp ChangeCipherSpec để kích hoạt dịch vụ bảo mật. 7 Máy khách gửi thông điệp Finished để máy chủ kiểm tra tính toàn vẹn của

các thông điệp đã gửi.

8 Máy chủ gửi thông điệp ChangeCipherSpec để kích hoạt dịch vụ bảo mật.

9 Máy chủ gửi thông điệp Finished để máy khách kiểm tra tính toàn vẹn của các thông điệp đã gửi.

Các bước trên được thể hiện qua hình vẽ 2.6.

` Máy khách Máy chủ ClientHello ServerHello Certificate ClientKeyExChange ChangeCipherSpec Finished

Hình 2.6 Sơ đồ quá trình bắt tay, không xác thực máy khách

trong giao thức SSL ServerHelloDone ChangeCipherSpec Finished 1 2 3 4 5 6 7 8 9

2.3.1.2 Khởi tạo phiên giao tiếp SSL có xác thực máy khách.

Xác thực máy khách là một tùy chọn được hỗ trợ trong SSL 3.0. Các bước và thông điệp khởi tạo phiên SSL có xác thực máy khách được mô tả trong bảng 2-2.

Bảng 2-2: Các bước thực hiện quá trình bắt tay SSL có xác thực máy khách

Bước Hành động

1 Máy khách gửi thông điệp ClientHello tới máy chủ đề xuất các tuỳ chọn cho phiên SSL.

2 Máy chủ trả lời máy khách bằng thông điệp ServerHello đáp ứng các tuỳ chọn cho phiên SSL.

3 Máy chủ gửi thông điệp Certificate để máy khách xác thực.

4 Máy chủ gửi tiếp thông điệp CertificateRequest để yêu cầu xác thực máy khách 5 Máy chủ kết thúc phiên thương lượng của nó với thông điệp

ServerHelloDone gửi cho máy khách

6 Máy khách gửi thông điệp Certificate để máy chủ xác thực.

7 Máy khách gửi tiếp thông điệp CertificateVerify phục vụ cho việc xác thực 8 Máy khách cung cấp thông tin để tạo khoá phiên qua thông điệp

ClientKeyExChange.

9 Máy khách gửi thông điệp ChangeCipherSpec để kích hoạt dịch vụ bảo mật. 10 Máy khách gửi thông điệp Finished máy chủ kiểm tra tính toàn vẹn của các

thông điệp đã gửi.

11 Máy chủ gửi thông điệp ChangeCipherSpec để kích hoạt các dịch vụ bảo mật. 12 Máy chủ gửi thông điệp Finished để máy khách kiểm tra tính toàn vẹn của

các thông điệp đã gửi.

` Máy khách Máy chủ ClientHello ServerHello Certificate ClientKeyExChange ChangeCipherSpec Finished

Hình 2.7 Sơ đồ quá trình bắt tay, có xác hực máy khách trong giao thức SSL ServerHelloDone ChangeCipherSpec Finished CertificateRequest CertificateVerify Certificate 12 11 10 9 8 7 6 5 3 4 2 1

2.3.1.3 Các thông điệp trao đổi trong pha thiết lập liên kết

(1). Thông điệp ClientHello

Thông điệp ClientHello được máy khách gửi để bắt đầu phiên giao tiếp SSL. Bảng 2-3 liệt kê các thành phần trong thông điệp ClientHello.

Bảng 2-3: Các thành phần trong thông điệp ClientHello Tên trường Ý nghĩa

Version Phiên bản SSL cao nhất mà máy khách hỗ trợ.

RandomNumber Một số ngẫu nhiên 32 bytes dùng để tính toán các tham số bí mật trong phiên SSL.

SessionID Số định danh phiên SSL.

CipherSuites Danh sách các tham số bảo mật mà máy khách hỗ trợ. CompressionMethod Danh sách các phương thức nén dữ liệu mà máy khách hỗ trợ.

Trường Version chứa giá trị cho biết phiên bản SSL cao nhất mà máy khách hỗ trợ. Nếu máy khách gửi tới máy chủ phiên bản SSL 3.0 mà khi đó máy chủ chỉ hỗ trợ phiên bản SSL 2.0 thì máy chủ có thể trả lời với phiên bản SSL 2.0 và máy khách có thể tiếp tục phiên SSL với phiên bản 2.0 hoặc có thể hủy b phiên giao tiếp.

Trường RandomNumber chứa một số ngẫu nhiên 32 byte dùng để tạo các tham số bí mật mật cho phiên SSL. 4 bytes đầu chứa giá trị ngày và giờ hiện tại nhằm mục đích bảo vệ sự tấn công trở lại, 28 bytes còn lại là chuỗi ngẫu nhiên được sinh bởi bộ sinh số ngẫu nhiên.

Trường SessionID chứa giá trị cho biết số định danh phiên. Giá trị này có thể bằng 0 hoặc khác 0 tùy thuộc vào phiên mà máy khách muốn thiết lập.

Trường CipherSuites là danh sách các dịch vụ mã hoá mà máy khách hỗ trợ, bao gồm các thuật toán mã hoá, thuật toán trao đổi khoá, thuật toán băm và kích thước khoá. Máy chủ căn cứ vào danh sách này để chọn ra các thuật toán dùng cho phiên SSL.

Trường CompressionMethod là danh sách các thuật toán nén được hỗ trợ bởi máy khách ([6]).

(2). Thông điệp ServerHello

Thông điệp ServerHello được máy chủ gửi cho máy khách để cung cấp các tham số bảo mật dùng cho phiên. Nội dung thông điệp được liệt kê trong bảng 2-4.

Một phần của tài liệu Công nghệ mạng riêng ảo SSL VPN và ứng dụng trong xây dựng hệ thống truyền tệp (Trang 37)

Tải bản đầy đủ (PDF)

(89 trang)