Giao thức ChangeCipherSpec

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) 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 Luận văn ThS. Công nghệ thông tin 1.01.10 (Trang 58)

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

2.3.4 Giao thức ChangeCipherSpec

ChangeCipherSpec là giao thức đơn giản nhất trong các giao thức thành phần của SSL và được dùng để kích hoạt các dịch vụ bảo mật trong phiên giao tiếp. Thông điệp ChangeCipherSpec báo hiệu sự thay đổi trạng thái các tham số bảo mật trong phiên SSL. Khuôn dạng thông điệp ChangeCipherSpec được mô tả trong hình 2.24, ngoài phần tiêu đề khuôn dạng thông điệp bản ghi nội dung của nó chỉ gồm 1 byte với giá trị bằng 1 ([6], [26]).

Cont: 20

Hình 2.23 Khuôn dạng thông điệp ChangeCipherSpec ChangeCipherSpec

Vers: 3 0 Len: 0 CCS: 1

2.3.5 Khuôn dạng các thông điệp của giao thức bắt tay

Các thông điệp của giao thức bắt tay được trao đổi trong quá trính bắt tay thiết lập phiên giao tiếp và được đóng gói bởi giao thức bản ghi SSL, mỗi thông điệp bản ghi SSL có thể chứa một hoặc nhiều thông điệp bắt tay. Hình vẽ 2.25 mô tả các thông điệp bắt tay được đóng gói trong thông điệp của giao thức bản ghi SSL.

Cont:22 Length..

Hình 2.24 Tổ hợp các thông điệp bắt tay trong bản ghi SSL bắt tay trong bản ghi SSL

Ver: 3 0 Handshake Messages Msg Type Msg Length Msg Type Msg Length Handshake Messages ……..

Mỗi thông điệp handshake bắt đầu với 1 byte trường Msg Type (kiểu thông điệp) và 3 byte trường Msg Length (độ dài thông điệp). Độ dài thông điệp không tính 4 byte đầu. Bảng 2-10 là các giá trị mà trường Msg Type có thể nhận.

Bảng 2-10: Các giá trị trường Msg type Value MessageType 0 HelloRequest 1 ClientHello 2 ServerHello 11 Certificate 13 Certificaterequest 14 ServerHellodone 15 Certificateverify 16 ClientkeyExchange 20 Finished

2.3.5.1 Thông điệp HelloRequest

Thông điệp HelloRequest được máy chủ gửi để yêu cầu máy khách bắt đầu lại quá trình thương lượng SSL. Nếu một kết nối tồn tại quá lâu, mức độ bảo mật sẽ

yếu đi, máy chủ có thể gửi thông điệp này để yêu cầu máy khách thương lượng các khoá phiên mới. Thông điệp HelloRequest khá đơn giản, được cho bởi hình vẽ 2.25

Cont:22

Hình 2.25 Khuôn dạng thông điệp HelloRequest HelloRequest

Vers: 3 0 Len: 0 Type: 0

4 Len: 0 0 0

Trường Msg Type có giá trị 0, độ dài của thông điệp bằng 0, nội dung rỗng.

2.3.5.2 Thông điệp ClientHello.

Khuôn dạng thông điệp ClientHello được mô tả trong hình vẽ 2.26. Trường Msg type có giá trị là 1, tiếp theo là 3 byte trường Msg Length và 2 byte trường Version.

Sau trường Version là 1 số ngẫu nhiên 32 byte và 1 byte độ dài trường SessionID. SSL giới hạn trường Session ID tối đa 32 byte, nội dung của Session ID có thể là 0 hoặc một số khác 0, tuỳ thuộc vào việc máy khách muốn khôi phục phiên cũ hay tạo phiên mới.

Cont:22 Length..

Hình 2.26 Thông điệp ClientHello

Ver: 3 0 Session ID Type:1 ...Msg Length… ID Len ClientRandomValue (32 bytes) Ver: 3

CipherS Length CipherSuite 1 Cipher- Suite 2

CipherSuite n Cmp len Cmp 1 Cmp 2

Cmp 3 …….. Cmp n

CipherSuite 3 ……. 0

Trong danh sách các CipherSuite, 2 byte đầu là kích thước của danh sách, kích thước này được đo bằng byte. Mỗi CipherSuite trong danh sách chiếm 2 byte.

Sau danh sách các CipherSuite là danh sách các phương pháp nén được SSL hỗ trợ, byte đầu tiên là độ dài của danh sách, các byte tiếp theo mỗi byte là một giá trị tương ứng với một phương thức nén được đề xuất.

2.3.5.3 Thông điệp SeverHello

Khuôn dạng thông điệp ServerHello được mô tả trong hình vẽ 2.27. Trường Msg Type giá trị 2.Tiếp theo là 3 byte độ dài và 2 byte Version.

Cont:22 Length..

Hình 2.27 Thông điệp ServerHello Ver: 3 0 Session ID Type:2 … Msg Length... ID Len ClientRandomValue (32 bytes) Ver: 3 CipherSuite Cmp 0

Nội dung thông điệp gồm 1 số ngẫu nhiên 32 byte, độ dài trường SessionID chiếm 1 byte. SSL giới hạn trường Session ID tối đa 32 byte, nội dung của Session ID là 1 số khác 0 do máy chủ chọn.

Các trường tiếp theo là CipherSuite chiếm 2 byte và Cmp chiếm 1 byte chứa các thuật toán được máy chủ chọn trong danh sách do máy khách gửi.

2.3.5.4 Thông điệp Certificate

Khuôn dạng thông điệp Certificate được mô tả trong hình vẽ 2.28.

Cont:22 Length..

Hình 2.28 Thông điệp Certificate Ver: 3 0

………..

Type:11 ...Msg Length...

Certificate 1

Certifi- cate Chain Length

Certificate n Length

Certificate n

cate Chain Length ...Certificate 1 Length...

Trường Msg Type có giá trị 11, tiếp theo là 3 byte độ dài thông điệp và 3 byte độ dài danh sách chứng chỉ số. Nội dung thông điệp bao gồm một danh sách các chứng chỉ số, 3 byte đầu trong mỗi chứng chỉ số là độ dài của nó. SSL cho phép hỗ

trợ một hệ thống phân cấp chứng chỉ. Chứng chỉ đầu tiên luôn luôn là chứng chỉ của người gửi và chứng chỉ cuối cùng là chứng chỉ của CA gốc.

2.3.5.5 Thông điệp CertificateRequest

Khuôn dạng thông điệp CertificateRequest được mô tả bởi hình vẽ 2.30

Hình 2.29 Thông điệp CertificateRequest Ver: 3 0

Type:13 ...Msg Length... CT Len

DN of CA 1

CT 1 CT 2 ... CT n CAs Length CA 1 Length

………..

Length Cont: 22

Trường Msg Type có giá trị 13, tiếp theo là 3 byte cho biết độ dài thông điệp. Nội dung thông điệp chứa một danh sách các kiểu chứng chỉ số có thể được máy chủ chấp nhận và danh sách các CA mà máy chủ tin cậy.

Byte đầu tiên trong danh sách các kiểu chứng chỉ số là độ dài của danh sách, các byte tiếp theo mỗi byte chứa giá trị cho biết một kiểu chứng chỉ cụ thể. Chi tiết các kiểu chứng chỉ số có thể xem trong phụ lục E cuối luận văn.

Trong danh sách các CA cung cấp chứng chỉ số, 2 byte đầu tiên là độ dài của danh sách, 2 byte tiếp theo là độ dài tên của CA1, rồi tên tên của CA1, 2 byte chứa độ dài tên của CA2, rồi đến tên của CA2…vv cho đến CAn.

2.3.5.6 Thông điệp ServerHelloDone

Thông điệp ServerHelloDone thông báo kết thúc quá trình thương lượng phía máy chủ. Khuôn dạng thông điệp ServerHelloDone được mô tả trong hình vẽ 2.31.

Cont:22

Hình 2.30 Khuôn dạng thông điệp ServerHelloDoneVers: 3 0 Len: 0 Vers: 3 0 Len: 0

Type: 14

4 Len: 0 0 0

Trường Msg Type có giá trị là 14, trường length có độ dài 0. Thông điệp này không chứa thông tin, nội dung rỗng.

2.3.5.7 Thông điệp ClientKeyExChange

Thông điệp ClientKeyExChange cung cấp thông tin cho việc tạo khoá phiên. Khuôn dạng chính xác của thông điệp phụ thuộc vào thuật toán trao đổi khoá mà hai bên sử dụng. Hình vẽ 2.32 là khuôn dạng của thông điệp ClientKeyExchange với phương thức trao đổi khoá là RSA.

Cont:22

Hình 2.31 Thông điệp ClientKeyExchange với RSA Vers: 3 0 ...Length...

Type: 16 ...Msg Length….. Encrypted Premaster Secret

Trường Msg Type có giá trị 16, tiếp theo là 3 byte độ dài. Nội dung thông điệp là Premaster Secret được mã hoá bởi khoá công khai của máy chủ. Chi tiết các thuật toán trao đổi khoá có thể xem phụ lục F cuối luận văn.

2.3.5.8 Thông điệp CertificateVerify

Khuôn dạng thông điệp CertificateVerify được mô tả trong hình vẽ 2.32

Cont:22

Hình 2.32 Thông điệp CertificateVerify Vers: 3 0 ...Length.. Type: 15 ...Msg Length...

Signed SHA hash (20 bytes) Signed MD5 hash

(16 bytes)

Trường Msg type có giá trị là 15, tiếp theo là 3 byte trường độ dài thông điệp. Nội dung thông điệp là giá trị băm nội dung các thông điệp mà hai bên đã trao đổi cho tới thời điểm này và được ký bởi máy khách. Khuôn dạng chính xác của thông điệp phụ thuộc thuật toán dùng để ký vào chứng chỉ số của máy khách. Với chứng chỉ số được ký bở thuật toán RSA, nội dung thông điệp gồm hai giá trị băm bởi các hàm băm MD5 và SHA được kết hợp với nhau và được ký; đối với chứng chỉ số được ký bởi thuật toán DSA, nội dung thông điệp chỉ gồm giá trị băm bởi hàm băm SHA và được ký ([6]).

2.3.5.9 Thông điệp Finished

Đây là thông điệp cuối cùng trong phiên bắt tay. Khuôn dạng của nó được mô tả trong hình vẽ 2.33.

Cont: 22

Hình 2.33 Khuôn dạng thông điệp FinishedVers: Vers: 3 0 Len: 0 Type: 20 Len: 0 0 36 SHA hash (20 bytes) MD5 hash (16 bytes) MAC (16 bytes) Handshake message Encrypted 56

Trường Msg type chứa giá trị 20, trường độ dài có giá trị là 36. Nội dung thông điệp chứa hai giá trị băm của tất cả các thông điệp đã được trao đổi trong phiên bắt tay, một được tạo ra từ hàm băm MD5 và một được tạo ra từ hàm băm SHA. Thông điệp Finished đươc bổ sung mã xác thực MAC và được mã hoá bằng dịch vụ bảo mật đã thương lượng.

Trên đây là các khái niệm được sử dụng trong giao thức SSL cũng như cấu trúc và nguyên tắc hoạt động của giao thức này. Phần tiếp theo tác giả trình bày việc thiết lập đường hầm trong mạng SSL VPN dựa trên và so sánh mạng SSL VPN với mạng IPSec VPN.

2.4. Thiết lập đường hầm trong SSL VPN

Đường hầm trong mạng SSL VPN là một kênh giao tiếp an toàn giữa hai máy tính trong một môi trường truyền thông không in cậy. Khi đường hầm được thiết lập, hai máy tính trao đổi dữ liệu với nhau thông qua đường hầm, máy tính thứ 3 không thể truy cập được vào kênh giao tiếp đó. Các đường hầm thực hiện việc mã hoá tất cả lưu lượng truyền thông giữa hai máy, kẻ tấn công xâm nhập kênh truyền dù có lấy được dữ liệu cũng không thể giải mã được nội dung thực sự của dữ liệu.

Với SSL VPN, đường hầm không phải là khái niệm mới. Đường hầm có thể được tạo bởi các giao thức PPTP, L2TP và IPSec, các giao thức này hoạt động ở lớp mạng trở xuống trong mô hình tham chiếu 7 lớp OSI. SSL VPN tạo các đường hầm bảo mật qua việc thực hiện 2 chức năng sau:

 Yêu cầu xác thực các bên tham gia giao tiếp. Bằng cách này, chỉ có các bên giao tiếp được xác thực mới có thể tiết lập được các đường hầm. Giao thức đường hầm SSL sử dụng cơ chế xác thực dựa trên chứng chỉ khoá công khai được cung cấp bởi một CA. Xác thực máy chủ SSL VPN là yêu cầu bắt buộc, còn xác thực máy khách SSL VPN là tuỳ chọn.

 Mã hoá tất cả dữ liệu được truyền giữa hai bên tham gia giao tiếp. Cũng giống như giao thức IPSec và các giao thức khác, giao thức đường hầm SSL mã hoá tất cả dữ liệu trao đổi khi một kết nối được thiết lập, các thuật toán mã hoá được sử dụng trong SSL Version 3.0 là khá an toàn cho phiên giao tiếp ([27]). Các đường hầm hoạt động ở tầng mạng hoặc thấp hơn được thiết lập với cơ chế phức tạp, cần một phần mềm hoạt động tại các điểm cuối đường hầm. Do đó, việc quản lý cũng trở nên khó khăn hơn. Với SSL VPN, như đã giới thiệu mục đích ban đầu của giao thức SSL là nhằm vào việc truyền thông dựa trên web, các chức năng của SSL được tích hợp sẵn trên trình duyệt web, chính vì vậy mà việc tạo ra một đường hầm SSL dựa trên web là không quá phức tạp. Các hệ điều hành hiện nay đều hỗ trợ sẵn các trình duyệt web, khi máy khách ở xa dùng trình duyệt web để truy cập vào máy chủ, các chức năng của giao thức SSL tích hợp sẵn trên trình duyệt thực hiện việc tạo đường hầm bảo mật giữa trình duyệt và máy chủ. Mạng SSL VPN kiểu này còn được gọi là các VPN dựa trên nền web.

SSL còn có khả năng tạo ra các đường hầm cho các ứng dụng không dựa trên nền web, nó sử dụng một phần mềm chuyển tiếp cổng (port forwarding applet) vào quá trình trao đổi dữ liệu. VPN kiểu này thực hiện hai cơ chế, một là chuyển tiếp các lưu lượng gửi tới các cổng cụ thể, hai là truyền dữ liệu qua các cổng của các giao thức khác như FTP, Telnet….

Để thiết lập kết nối, SSL VPN gửi một đoạn mã (thường là một điều khiển ActiveX hoặc Java applet) tới máy người dùng và bằng cách đó tạo một “virtual network adapter” trên máy người dùng. Tiếp theo SSL VPN gán cho người dùng một địa chỉ IP trên mạng nội bộ, và sử dụng đường hầm SSL để thiết lập một kết nối giữa mạng nội bộ và máy truy cập từ xa. Trong nhiều trường hợp phương thức giao tiếp này giống với công nghệ mạng IPSec VPN, virtual network adapter có thể chuyển tiếp tất cả các lưu lượng TCP, UDP, IP, ICMP,… Toàn bộ gói tin được mã hoá bởi SSL và bọc thành một gói mới sau đó truyền qua mạng tới điểm cuối.

2.5 So sánh SSL VPN và IPSec VPN

Có nhiều nhân tố khác nhau góp phần đánh giá cho một giải pháp VPN, khi ước tính chi phí cho bất kỳ một giải pháp công nghệ thông tin nào ta cũng phải dựa trên

nhiều nhân tố chứ không chỉ tập chung vào đánh giá chi phí cho phần cứng và phần mềm. Dưới đây là các khía cạch được xem xét khi so sánh SSL VPN và IPSec VPN.

(1). Kiểu kết nối, kiểu truy cập: Các mạng IPSec VPN thường thích hợp cho các kết nối theo kiểu site-to-site, liên kết các mạng LAN ở xa với nhau hoặc giữa mạng LAN ở xa với mạng trung tâm. Giải pháp mạng IPSec VPN được đề xuất cho các kết nối yêu cầu băng thông rộng, hiệu suất cao, dữ liệu lớn, kết nối liên tục, và thường cố định. Tuy nhiên, đối với các yêu cầu truy cập mạng từ xa, truy cập từ các người dùng di động tới một tài nguyên tập chung thì giải pháp IPSec VPN t ra có nhiều bất cập và đó chính là ưu điểm của SSL VPN.

(2). Phần mềm khách (Client software): IPSec VPN yêu cầu cần phải có phần mềm client cài đặt tại các máy tính để bàn hoặc máy tính của người dùng di động. Do đó không thể kết nối được VPN nếu không có phần mềm VPN cài trên máy khách truy cập mạng, điều này làm hạn chế tính linh động của người dùng trong mạng IPSec VPN. Với SSL VPN, chỉ cần hệ điều hành có tích hợp một trình duyệt (browser) bất kỳ hỗ trợ SSL là thực hiện được một kết nối an toàn. Các thiết bị cầm tay cũng như máy tính hiện nay đa phần đều hỗ trợ các trình duyệt kiểu này, do đó tính phong phú của người dùng được mở rộng hơn, việc triển khai SSL VPN cũng trở nên dễ dàng hơn.

Đối với các SSL VPN hoạt động không dựa trên nền web cũng yêu cầu phần mềm máy khách, tuy nhiên các phần mềm này thường đơn gian, dễ viết, dễ tích hợp và triển khai.

Khi số lượng người dùng tăng, chi phí cài đặt phần mềm, quản trị, cấu hình trên các thiết bị truy cập từ xa cũng tăng theo. Do đó sẽ làm tăng chi phí trong triển khai giải pháp IPSec VPN. SSL VPN thật sự là giải pháp hiệu quả trong trường hợp này.

(3). Độ tin cậy của thiết bị truy nhập hay mạng từ xa: Với IPSec VPN, người dùng từ xa hay mạng LAN từ xa kết nối với trung tâm có thể dễ dàng truy cập đến toàn bộ tài nguyên mạng bình đẳng giống như tại trung tâm. Vì vậy, các thiết bị hay mạng từ xa phải tin cậy, mặt khác vì các thiết bị truy cập cần phải được quản lý và cài đặt cấu hình nên giải pháp IPSec VPN là thích hợp trong trường hợp này. Tuy nhiên, đối với những người dùng di động và những thiết bị cầm tay thì giải pháp IPSec VPN sẽ kém hiệu quả, và SSL VPN là một lựa chọn thích hợp.

(4). Kiểm soát truy cập (Access Control): IPSec VPN được thiết kế để mở rộng phạm vi của mạng LAN. Yêu cầu bình đẳng truy cập tài nguyên tại các mạng LAN ở xa đòi h i phải có một chính sách an ninh mạng thống nhất trong toàn bộ các điểm kết nối và truy cập mạng. Do đó các giải pháp IPSec được áp dụng rất

hiệu quả cho mô hình site-to-site. Tuy nhiên, đối với các người dùng di động giả pháp SSL VPN thường hiệu quả hơn.

(5). Độ bảo mật (security): Khi so sánh độ bảo mật của SSL VPN và Ipsec VPN, không thể đánh giá được mức độ tốt, xấu trong hai giải pháp đó. Mặc dù SSL và IPSec là hai công nghệ hoàn toàn khác nhau, nhưng chúng đều sử dụng chung một cơ chế để đảm bảo tính bảo mật đó là xác thực, mã hoá và trao đổi khoá. Các thuật toán mã hoá được sử dụng trong hai giao thức tương đối mạnh, đó là: Triple DES, 128-bit RC4, AES, DES… các thuật toán xác thực thông điệp là MD5,

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) 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 Luận văn ThS. Công nghệ thông tin 1.01.10 (Trang 58)