Chương 3 Xây dựng hệ thống truyền tệp dựa trên hoạt động của giao thức SSL…67
3.1 Phát biểu bài toán
Trao đổi thông tin an toàn là một trong những yêu cầu thiết thực của các cơ quan, tổ chức, đặc biệt là trong ngành Công an vấn đề đó lại càng được trú trọng hơn. Qua nghiên cứu thực tế các hoạt động trao đổi thông tin tại các đơn vị trong ngành Công an cho thấy việc áp dụng công nghệ thông tin vào hoạt động trao đổi tin còn nhiều hạn chế, chủ yếu vẫn bằng phương pháp thủ công với sự tham gia của con người, chẳng hạn như: số liệu tai nạn giao thông, số liệu về can phạm nhân, phương tiện giao thông cơ giới được đăng ký… chuyển về cơ quan bộ thường bằng đĩa mềm thông qua còn đường bưu chính viễn thông. Chính vì vậy mà việc ứng dụng công nghệ thông tin vào lĩnh vực này là hết sức cần thiết, phù hợp với chủ trương của Đảng và Nhà nước về phát triển công nghệ thông tin trong thời kỳ đổi mới, công nghiệp hoá, hiện đại hoá đất nước.
Với một hệ thống trao đổi tin dựa trên hạ tầng mạng truyền thông công cộng thì yêu cầu an ninh an toàn được đặt nên hàng đầu. Các yêu cầu đó được cụ thể hoá như sau:
Hệ thống phải đảm bảo được không có lỗi xảy ra trong quá trình tiếp, vận hành hoặc nếu có lỗi thì phải có giải pháp khắc phục.
Đảm bảo được tốc độ trao đổi thông tin.
Đảm bảo các bên tham gia phải được xác thực.
Dữ liệu trao đổi phải được mã hoá, xác thực và đảm bảo tính toàn vẹn trong khi truyền.
Từ việc nghiên cứu mô hình lý thuyết về công nghệ mạng SSL VPN và các hoạt động nghiệp vụ thực tế trong Ngành công an cho thấy vấn đề xây dựng một hệ thống truyền tệp mô ph ng theo nguyên tắc hoạt động của giao thức SSL là hoàn toàn phù hợp với các yêu cầu đặt ra ở trên. Vừa đảm bảo được tốc độ, vừa đảm bảo được an ninh an toàn cho dữ liệu, đồng thời phù hợp với yêu cầu phát triển công nghệ thông tin trong giai đoạn hiện nay.
Phần tiếp theo tác giả xin đề xuất, thiết kế và xây dựng một hệ thống truyền tệp hoạt động dựa trên giao thức SSLFTP (SSL File Transfer Protocol). Đây là một giao thức được tác giả cải tiến từ giao thức SSL. Chi tiết về giao thức SSLFTP cũng như hoạt động của hệ thống được giới thiệu trong các phần tiếp theo.
3.2 Kiến trúc hệ thống
Ngày nay, với sự phát triển của Internet các ứng dụng dựa trên nền Internet không ngừng ra tăng. Hệ thống truyền tệp được xây cũng là một trong những ứng dụng đó. ISP trong trường hợp này là cầu nối trung gian cho phép các thành phần trong hệ thống giao tiếp với nhau. Sơ đồ tổng thể về hệ thống được mô tả trong hình vẽ 3.1.
`
Máy chủ xác thực
Máy chủ tệp Internet
Máy khách
Hình 3.1 Mô hình hệ thống truyền tệp ISP
ISP
ISP
Kiến trúc tổng quan của hệ thống bao gồm các thành phần sau:
Máy chủ xác thực
Hệ thống gồm nhiều máy chủ tệp, nhiều trạm làm việc và một máy chủ xác thực. Máy chủ xác thực làm nhiệm vụ quản lý các thông tin phục vụ cho quá trình xác thực trong hệ thống. Mỗi máy chủ tệp gồm một tên máy và một khoá công khai được lưu trữ trên máy chủ xác thực. Trong pha khởi tạo và thiết lập kết nối máy khách gửi yêu cầu xác thực tới máy chủ xác thực, máy chủ xác thực tính toán giá trị băm của từng cặp tên máy và khoá công khai tương ứng rồi gửi danh sách các giá trị băm này cho máy khách. Hàm băm được sử dụng cho quá trình này là MD5. Giá trị băm tạo ra là một chuỗi 16 byte.
Máy chủ tệp
Máy chủ tệp là một thành phần quan trọng trong hệ thống cùng với máy khách tham giao vào quá trình trao đổi dữ liệu ứng dụng. Mỗi máy chủ tệp bao gồm một tên và một cặp khoá công khai, khóa riêng sử dụng với thuật toán mã hoá khoá công khai RSA. Phần mềm cài đặt trên máy chủ làm nhiệm vụ lắng nghe yêu cầu kết nối từ máy khách, thiết lập phiên giao tiếp, và trao đổi dữ liệu với máy khách.
Máy khách
Máy khách là một trong những thành phần không thể thiếu được trong hệ thống. Đây là nơi bắt đầu của mọi phiên giao tiếp, máy khách làm nhiệm vụ khởi tạo kết nối, xác thực máy chủ tệp và thực hiện quá trình trao đổi dữ liệu với máy chủ tệp.
Máy khách thực hiện việc trao đổi dữ liệu với cả máy chủ tệp và máy chủ xác thực.
Với máy chủ xác thực xảy ra trong quá trình khởi tạo phiên giao tiếp nhằm mục đích xác thực, còn với máy chủ tệp xảy ra từ đầu cho tới khi kết thúc phiên giao tiếp.
3.3 Giao thức trao đổi dữ liệu SSLFTP
Giao thức SSLFTP được thiết kế gồm 4 giao thức thành phần được phân tầng.
Tầng trên gồm các giao thức SSLFTP Handshake, SSLFTP ChangeCipherSpec, SSLFTP Alert. Tầng dưới gồm giao thức SSLFTP Record. Giao thức Handshake làm nhiệm vụ khởi tạo phiên giao tiếp, giao thức ChangeCipherSpec thông báo sự thay đổi trạng thái, giao thức Alert làm nhiệm vụ truyền các lỗi hệ thống và giao thức Record làm nhiệm vụ mã hoá, tính toán MAC và đóng gói dữ liệu trao đổi giữa hai bên. Mối quan hệ giữa các giao thức thành phần và giao thức tầng ứng dụng được mô tả trong hình vẽ 3.2.
SSLFTP Record SSLFTP
Handshake
SSLFTP Alert
Appli- cation SSLFTP
ChangeCipher HTTP
TCP
Hình 3.2 Sơ đồ quan hệ giữa các giao thức thành phần SSLFTP
3.4. Nguyên tắc hoạt động của hệ thống
Để bắt đầu phiên trao đổi dữ liệu máy khách gửi yêu cầu thiết lập phiên liên kết tới máy chủ tệp và pha thiết lập liên kết bắt đầu. Trong pha liên kết hai bên thực hiện việc xác thực, trao đổi thông tin và tạo các khoá phiên. Sau kết nối được thiết lập, dữ liệu được tính toán MAC, mã hoá trước khi truyền đi. Quá trình trao đổi thông tin được thực hiện bằng cách trao đổi các thông điệp.
3.4.1 Khởi tạo phiên giao tiếp
Các bước và thông điệp trao đổi trong phiên khởi tạo được mô tả trong bảng 3-1.
Bảng 3-1: Các trong pha thiết lập liên kết và xác thực máy chủ tệp Bước Mô tả
1 Máy khách gửi thông điệp ClientHelloFTP để yêu cầu thiết lập liên kết.
2 Máy chủ tệp cung cấp thông tin xác thực bằng thông điệp ServerHelloFTP.
3 Máy chủ gửi tiếp thông điệp ServerHelloDoneFTP thông báo kết thúc việc gửi thông điệp trong pha thương lượng.
4 Máy khách gửi thông điệp AuthenRequestFTP tới máy chủ xác thực để yêu cầu cung cấp thông tin xác thực máy chủ tệp.
5 Máy xác thực trả lời máy khách bằng thông điệp AuthenRespondFTP.
6 Máy khách gửi thông điệp ClientKeyExChangeFTP cung cấp thông tin tạo khoá.
7 Máy khách gửi thông điệp ChangeCipherSpecFTP kích hoạt dịch vụ bảo mật.
8 Máy khách gửi thông điệp FinishedFTP kết thúc phiên bắt tay.
9 Máy chủ tệp gửi thông điệp ChangeCipherSpecFTP kích hoạt dịch vụ bảo mật.
10 Máy chủ tệp gửi thông điệp FinishedFTP kết thúc phiên bắt tay.
Hình vẽ 3.3 là sơ đồ quá trình khởi tạo phiên giao tiếp
`
Máy chủ xác thực
Máy chủ tệp Máy khách
Hình 3.3 Sơ đồ khởi tạo phiên giao tiếp và xác thực máy chủ tệp
ClientHelloFTP ServerHelloFTP
ClientKeyExchangeFTP ChangeCipherSpecFTP
FinishedFTP ServerHelloDoneFTP
ChangeCipherSpecFTP FinishedFTP
1 2
3
4
9 10
7 8
5
AuthenRequestFTP AuthenRespondFTP
6
3.4.2 Các thông điệp trao đổi trong pha thiết lập liên kết (1). Thông điệp ClientHelloFTP
Thông điệp ClientHelloFTP được máy khách gửi cho máy chủ tệp để bắt đầu một phiên giao tiếp. Nội dung của thông điệp gồm một số ngẫu nhiên 32 byte được sinh bởi bộ sinh số ngẫu nhiên của máy khách và dùng cho việc tạo khoá phiên, 4 byte đầu là giá trị ngày giờ hiện tại nhằm mục đích bảo vệ sự tấn công trở lại.
(2). Thông điệp ServerHelloFTP
Thông điệp ServerHelloFTP được máy chủ tệp gửi cho máy khách nhằm cung cấp dữ liệu cho quá trình tạo khoá trên máy khách. Nội dung thông điệp giống với thông điệp ClientHelloFTP, chỉ khác là số số ngẫu nhiên được sinh bởi bộ sinh số ngẫu trên trên máy chủ tệp.
(3). Thông điệp AuthenRequestFTP
Thông điệp AuthenRequestFTP được máy khách gửi cho máy chủ xác thực để yêu cầu cung cấp thông tin xác thực. Nội dung thông điệp này rỗng.
(4). Thông điệp AuthenRespondFTP
Thông điệp AuthenRespondFTP được máy chủ xác thực gửi cho máy khách nhằm cung cấp thông tin cho máy khách xác thực máy chủ tệp. Nội dung thông điệp này gồm một danh sách các giá trị băm MD5 với đầu vào là tên máy và khoá công khai của máy chủ tệp mà máy chủ xác thực quản lý.
(5). Thông điệp ServerHelloDoneFTP
Thông điệp ServerHelloDoneFTP được máy chủ tệp gửi cho máy khách để thông báo cho máy khách biết rằng máy chủ đã gửi thông điệp cuối cùng trong pha thương lượng. Thông điệp này không chứa thông tin, nhưng nó rất quan trọng với máy khách, bởi vì khi máy khách nhận thông điệp này nó có thể chuyển sang pha thiết lập kết nối.
(6). Thông điệp ClientKeyExchangeFTP
Thông điệp này được máy khách gửi cho máy chủ tệp nhằm mục đích cung cấp thêm thông tin cho quá trình tạo khoá và đảm bảo rằng máy khách đang trao đổi thông tin với máy khủ tệp. Nội dung của thông điệp này là một giá trị ngẫu nhiên bí mật được sinh bởi máy khách và được mã hoá bằng khoá công khai của máy chủ tệp. Chỉ có khoá riêng của máy chủ tệp mới có thể giải mã được nội dung thông điệp này.
(7). Thông điệp ChangeCipherSpecFTP
Thông điệp này được cả máy khách và máy chủ tệp gửi để thông báo cho nhau biết các thông điệp tiếp theo gửi sẽ được bổ sung mã xác thực và mã hoá. Sau khi nhận được thông điệp này mỗi bên sẽ kích hoạt các dịch vụ bảo mật đã thương lượng và quá trình trao đổi dữ liệu sẽ áp dụng các dịch vụ bảo mật này.
(8). Thông điệp FinishedFTP
Sau khi gửi thông điệp ChangeCipherSpec, cả máy chủ tệp và máy khách gửi tiếp thông điệp FinishedFTP. Mục đích của thông điệp này là để hai bên kiểm tra xem các thông điệp đã gửi trong pha thương lượng có bị can thiệp trên đường truyền hay không. Nội dung của thông điệp chứa giá trị băm của tất cả các thông điệp mà hai bên đã gửi cho nhau và được mã hoá, xác thực.
3.4.3 Xác thực máy chủ tệp
Xác thực trong giao thức SSLFTP là một cải tiến so với giao thức SSL. Tài liệu dùng để xác thực gồm có khoá công khai và tên máy chủ tệp. Tuy có khác so với chứng chỉ số được sử dụng trong giao thức SSL nhưng vẫn đảm bảo được độ an toàn trong hệ thống. Quá trình xác thực được mô tả như sau: khi nhận thông điệp AuthenRespondFTP quá trình xác thực máy chủ tệp được thực hiện. Máy khách dùng hàm băm MD5 để băm tên máy và khoá công khai có trong thông điệp ServerHelloFTP do máy chủ tệp gửi. Giá trị băm này được so sánh với các giá trị băm trong danh sách giá trị băm do máy chủ xác thực gửi trong thông điệp AuthenRespondFTP. Nếu giá trị băm này nằm trong danh sách thì máy chủ tệp được xác thực, ngược lại máy chủ tệp không được xác thực. Sơ đồ thuật toán xác thực được mô tả trong hình vẽ 3.4.
Máy chủ tệp được xác thực
Giá trị cuối ?
Hình 3.4 Sơ đồ quá trình xác thực máy chủ tệp Khác
nhau
Kết thúc So sánh
Đọc một giá trị băm từ danh sách
Giống nhau
Sai
Máy chủ tệp không được xác thực
Đúng
3.4.4 Tạo các tham số phiên
Việc tính toán tham số phiên được thực hiên ngay sau khi xác thực máy chủ tệp. Các tham số phiên sử dụng trong hệ thống gồm khoá bí mật dùng để mã hoá dữ liệu và khoá bí mật dùng để tính toán mã xác thực thông điệp. Quá trình tính toán tham số phiên được thực hiện theo hai bước:
Bước 1: tạo Master Secret.
Các giá trị ngẫu nhiên sinh bởi máy khách và máy chủ tệp, giá trị bí mật sinh bởi máy khách và các ký tự A, BB được dùng vào quá trình tạo Master Secret.
Master Secret là một chuỗi 32 byte được sinh ra bởi thuật toán băm MD5 theo sơ đồ trong hình 3.5. Quá trình đó được mình hoạ bằng đoạn giả mã dưới đây:
Master Secret = MD5(Giá trị bí mật + MD5(A`+ Giá trị bí mật + Số ngẫu nhiên máy khách + Số ngẫu nhiên máy chủ)) +
+ MD5(Giá trị bí mật + MD5(BB`+ Giá trị bí mật + Số ngẫu nhiên máy khách + Số ngẫu nhiên máy chủ))
`A`
Hash Hash Master Secret
Hình 3.5 Sơ đồ quá trình tạo Master Secret trong SSLFTP
MD5
MD5
MD5
MD5
Số ngẫu nhiên máy chủ tệp Số ngẫu nhiên
máy khách Giá trị bí
mật
`BB` Số ngẫu nhiên
máy chủ tệp Số ngẫu nhiên
máy khách Giá trị bí
mật
Giá trị bí mật
Giá trị bí mật
Bước 2: tạo khoá phiên
Master Secret tạo ra cùng với số ngẫu nhiên máy khách, số ngẫu nhiên máy chủ tệp và hàm băm MD5 được dùng để tạo khoá mã hoá dữ liệu và khoá tính toán mã xác thực thông điệp. Quá trình được mô tả trong hình 3.6
`A`
Hash Hash Khoá tính toán
mã xác thực
Hình 3.6 Sơ đồ quá trình tạo khoá phiên
MD5
MD5
MD5
MD5
Số ngẫu nhiên máy chủ tệp Số ngẫu nhiên
máy khách Giá trị bí mật
`BB` Số ngẫu nhiên
máy chủ tệp Số ngẫu nhiên
máy khách Giá trị bí mật
Master Secret
Master Secret
Khoá mã hoá dữ liệu
Khoá mã hoá và khoá tính toán mã xác thực là một chuỗi 16 byte và được băm 4 lần bằng hàm băm MD5 mô tả qua đoạn giả mã dưới đây
Master Secret = MD5(Master secret + MD5(A`+ Master secret + Số ngẫu nhiên máy khách + Số ngẫu nhiên máy chủ)) +
+ MD5(Master secret + MD5(BB`+ Master secret + Số ngẫu nhiên máy khách + Số ngẫu nhiên máy chủ))
3.4.5 Đóng gói và gửi các thông điệp
Quá trình đóng gói và gửi các thông điệp tại tầng bản ghi hoàn toán giống với quá trình này trong giao thức SSL. Sau khi phiên giao tiếp được thiết lập, giao thức SSLFTPRecord đóng gói dữ liệu, tính toán giá trị MAC, mã hoá dữ liệu rồi gửi nên đường truyền.
3.4.6 Các thuật toán sử dụng trong hệ thống.
Do SSLFTP là một giao thức được cải tiến từ giao thức SSL nên các thuật toán được sử dụng trong SSLFTP không hoàn toàn giống với các thuật toán sử dụng trong SSL. Trong khuôn khổ của luận văn tác giả không thể cài đặt hết được các thuật toán sử dụng trong giao thức SSLFTP, tuy nhiên đây là một giao thức được thiết kế mở, ta có thể dễ dàng bổ sung thêm các thuật toán mà không làm thay đổi đến hoạt động của giao thức.
SSLFTP được thiết kế với thuật toán mã hoá khoá công khai RSA dùng cho việc trao đổi khoá, thuật toán băm MD5 dùng cho quá trình tính toán MAC và tạo khoá phiên, thuật toán mã hoá khoá đối xứng AES ([18], [19]) dùng cho quá trình mã hoá và giải mã dữ liệu trao đổi trong hệ thống. Với việc sử dụng AES hiệu suất của hệ thống được nâng cao đáng kể, đồng thời đảm bảo được tính an toàn dữ liệu trên đường truyền. Thực nghiệm cho thấy tốc độ và độ mật của AES có thể cao hơn so với thuật toán mã hoá 3DES.
3.5 Thiết kế các thông điệp trao đổi dữ liệu
3.5.1 Khuôn dạng thông điệp của giao thức bản ghi SSLFTP
Khuôn dạng thông điệp trao đổi giữa hai bên gồm hai phấn chính, phần tiêu đề là phần nội dung được mô tả trong hình 3.7
Kiểu nội
dung Độ dài
Thông điệp của giao thức tầng trên Mã xác thực thông điệp
(tuỳ chọn)
Hình 3.7 Khuôn dạng thông điệp bản ghi SSLFTP
Mã hoá (tuỳ chọn)
Phần tiêu đề gồm hai trường, trường kiểu nội dung gồm 1 byte, giá trị của nó cho biết thông điệp của giao thức tầng trên được đóng gói bởi giao thức bản ghi SSLFTPRecord. SSLFTP hỗ trợ 4 kiểu thông điệp của giao thức tầng trên, các kiểu này được liệt kê trong bảng 3-2 dưới đây.
Bảng 3-2: Các kiểu nội dung tầng bản ghi Giá trị trường
kiểu nội dung Thông điệp của giao thức tầng trên
20 Thông điệp của giao thức ChangeCipherSpecFTP 21 Thông điệp của giao thức AlertFTP
22 Thông điệp của giao thức HandshakeFTP 23 Dữ liệu ứng dụng
Trường độ dài gồm 2 byte cho biết độ dài thông điệp của giao thức tầng trên, giá trị của trường này không quá 214.
Phần nội dung là thông điệp của giao thức tầng trên chuyển xuống, phần này có độ dài không cố định, nó có thể được mã hoá hoặc không. Độ lớn của phần nội dung không vượt quá 16KB.