Các thông điệp được bảo vệ thông qua mã hoá và tính toán mã xác thực. Một mã xác thực được bổ sung vào thông điệp trước khi truyền. Tại nơi nhận, dữ liệu được giải mã, loại b mã xác thực, tính toán mã xác thực mới và so sánh với mã xác thực dữ liệu được gửi kèm. Nếu hai giá trị này giống nhau, dữ liệu không bị thay đổi trên đường truyền. Ngược lại, dữ liệu bị thay đổi trên đường truyền.
3.6.1 Tính toán m xác thực thông điệp
Hệ thống sử dụng hàm băm MD5 vào việc tính toán mã xác thực thông điệp MAC, giá trị MAC tạo ra có độ dài 16 byte được bổ sung vào đoạn dữ liệu.
Quá trình tính toán MAC được thực hiện qua 2 giai đoạn:
Giai đoạn 1 khoá tính toán mã xác thực, số thứ tự các thông điệp và nội dung thông điệp được cho qua hàm băm MD5 để tạo bản tóm lược của dữ liệu vào.
Giai đoạn 2 khoá tính toán mã xác thực thông điệp cùng với giá trị băm của giai đoạn 1 được cho qua hàm băm MD5 lần nữa. Kết quả băm trong giai đoạn hai chính là giá trị MAC được bổ sung vào thông điệp để kiểm tra tính toàn vẹn dữ liệu. Các giai đoạn trên được thể hiện qua hình vẽ 3.17.
MAC
Hình 3.17 Sơ đồ tính toán MAC trong SSLFTP
MD5 MD5 Số thứ tự của thông điệp Nội dung thông điệp Khoá tính mã xác thực Giá trị băm Khoá tính mã xác thực
Số thứ tự của thông điệp là số thông điệp mà hai bên đã trao đổi, giá trị khởi đầu của nó là 0 với thông điệp ChangeCipherSpecFTP, giá trị này được tăng thêm 1 mỗi khi thông điệp của giao thức bản ghi SSLFTP được gửi.
Sau khi tính toán và bổ sung mã xác thực tệp dữ liệu, cả dữ liệu và mã xác thực được mã hoá thuật toán mã hoá khoá đối xứng AES với độ dài khoá là 128 bit. Chi tiết thuật toán mã hoá AES có thể xem phụ lục A cuối luận văn. Thông điệp sau khi được bổ sung MAC và mã hoá có dạng như hình 3.18.
Hình 3.18 Bảo vệ thông điệp với MAC
Dữ liệu ứng dụng Mã xác thực (16 byte) Được mã hoá Kiểu nội dung: 23 Độ dài
3.7 Thiết kế module chương trình
Chương trình được viết bằng ngôn ngữ lập trình Visual Basic, công cụ giao tiếp là điều khiển Winsock hoạt động dựa trên kết nối TCP. Trong khuôn khổ luận văn tác giả chỉ trình bày lưu đồ thuật toán hoạt động của các module chương trình trong hệ thống, phần mã nguồn có thể xem chi tiết trong chương trình. Toàn bộ hệ thống gồm các module sau:
3.7.1 Module chương trình trên máy chủ xác thực
Module chương trình trên máy chủ xác thực làm nhiệm vụ lắng nghe các kết nối từ máy khách và cung cấp thông tin xác thực cho máy khách. Sơ đồ quá trình hoạt động của module trên máy chủ xác thực được mô tả trong hình 3.19
Gửi thông điệp AlertFTP
Kiểu nội dung =22
Hình 3.19 Sơ đồ hoạt động của module chương trình trên
máy chủ xác thực
Nhận một thông điệp
Đúng Đúng
Kiểu thông
điệp =11 Gửi thông điệp
AuthenRespondFTP Sai
Khi có yêu cầu xác thực từ máy khách, máy chủ xác thực kiểm tra thông điệp do máy khách gửi. Nếu kiểu của nội dung là 22 (thông điệp của giao thức bắt tay) và kiểu thông điệp là 11 (thông điệp AuthenRequest) thì máy chủ xác thực tính toán các giá trị băm từ thông tin mà nó quản lý rồi đóng gói trong thông điệp AuthenRespond và gửi cho máy khách. Ngược lại, máy chủ xác thực gửi trả lại máy khách một thông báo lỗi nhận được một thông điệp mà nó không hiểu.
3.7.2 Module chương trình trên máy chủ tệp
Module chương trình trên máy chủ tệp thực hiện nhiệm vụ khởi tạo phiên giao tiếp với máy khách, thiết lập kết nối và trao đổi dữ liệu với máy khách. Hoạt động của module trên máy chủ tệp được mô tả trong hình vẽ 3.20
Kích hoạt dịch vụ mã hoá
Đóng kết nối
Gửi thông điệp AuthenRequestFTP
Kiểu nội dung =20 Kiểu nội dung =21 Kiểu nội dung =22 Kiểu nội dung =23 Kiểu thông điệp =1 Kiểu thông điệp =14
Gửi thông điệp ChangeCipherSpecFTP Gửi thông điệp ServerHelloDoneFTP
Gửi thông điệp FinishedFTP
Kiểu thông điệp =15
Gửi thông điệp AlertFTP
Nhận một thông điệp Đúng Đúng Đúng Sai Đúng Sai Kiểm tra tính toàn vẹn Sai Đúng Đúng Tính toán MAC Giải mã dữ liệu So sánh MAC Xử lý dữ liệu Đúng Sai Đúng Sai Sai Sai
Tạo khoá phiên
Hình 3.20 Sơ đồ hoạt động của module chương trình trên
máy chủ tệp Sai
Sai
Khi nhận được một thông điệp từ máy khách nó phân tích kiểu nội dung và kiểu thông điệp nhận được rồi có bước xử lý tiếp theo dựa trên sơ đồ hình 3.20.
3.7.3 Module trên máy khách
Module chương trình trên máy khách thực hiện việc phân tích các thông điệp nhận được từ máy chủ tệp và máy chủ xác thực. Dựa trên kết quả phân tích được từ đó có các hành động tiếp theo. Sơ đồ hoạt động được mô tả trong hình 3.21
Kích hoạt dịch vụ mã hoá
Đóng kết nối
Gửi thông điệp AuthenRequestFTP
Kiểu nội dung =20 Kiểu nội dung =21 Kiểu nội dung =22 Kiểu nội dung =23 Kiểu thông điệp =13 Kiểu thông điệp =12
Gửi thông điệp ChangeCipherSpecFTP
Xác thực máy chủ tệp Gửi thông điệp ClientKeyExchangeFTP
Tạo khoá phiên
Kiểu thông điệp =15
Gửi dữ liệu đã mã hoá Tính toán MAC
Mã hoá dữ liệu
Thành công ?
Gửi thông điệp AlertFTP
Gửi hết ? Kết thúc Nhận một thông điệp Đúng Đúng Đúng Sai Đúng Sai Sai Đúng Kiểm tra tính toàn vẹn Sai Đúng Đúng Tính toán MAC Giải mã dữ liệu So sánh MAC Xử lý dữ liệu Đúng Sai Đúng Sai Đúng Sai Sai Sai
Gửi thông điệp FinishedFTP
Đóng kết nối
Hình 3.21 Sơ đồ hoạt động của module chương trình trên máy khách
Sai Sai
3.8 Cài đặt thử nghiệm
Để hệ thống vận hành và đảm bảo hiệu quả cần ít nhất là 3 máy tính được nối Internet, cấu hình mỗi máy tính như sau: bộ vi xử lý Pentium IV 3.0 GHz, 512 MB Ram, ổ cứng 30 GHz…Do điều kiện hạn chế nên trong khuôn khổ luận văn tác giả mới chỉ cài đặt thử nghiệm hệ thống trên 3 máy tính được kết nối mạng LAN với các máy được cài đặt hệ điều hành Windows XP.
3.8.1 Cài đặt trên máy chủ xác thực
Sau khi cài đặt giao diện module chương trình trên máy chủ xác thực có dạng như hình 3.22. Nút lệnh trên Form thực hiện hành động lắng nghe hoặc ngừng lắng nghe các kết nối từ máy khách. Hộp text box có giá trị 8866 là số hiệu cổng mà máy chủ xác thực đang nghe. Phía dưới là bảng trạng thái, mỗi hàng tương ứng với trạng thái của một máy khách kết nối bao gồm số định danh một kết nối (ID), trạng thái kết nối (Connected hoặc Listening) và địa chỉ IP của máy khách kết. Địa chỉ IP của máy khách được thử nghiệm là 192.168.0.20, của máy chủ xác thực là 192.168.0.10 và của máy chủ tệp là 192.168.0.5
Hình 3.22 Giao diện chương trình trên máy chủ xác thực
3.8.2 Cài đặt trên máy chủ tệp
Giao diện module chương trình trên máy chủ tệp có dạng như hình 3.23. Hộp textbox có giá trị 8866 cho biết số hiệu cổng mà máy chủ tệp đang lắng nghe. Nút lệnh thực hiện việc lắng nghe hoặc kết thúc việc lắng nghe các kết nối từ má khách. Phía dưới là bảng trạng thái kết nối và hộp danh sách các tệp đã được gửi. Trường ID là số hiệu máy khách kết nối, Remote là địa chỉ IP của máy khách đang kết nối, File Name là tên tệp mà máy khách đang gửi, Progress là phần trăm kích thước tệp đã gửi.
3.8.3. Cài đặt trên máy khách
Giao diện trên máy khách có dạng như hình 3.24. Các thuộc tính kết nối là tên máy chủ và cổng mà máy khách muốn kết nối. Nút lệnh Connect thực hiện việc kết nối tới máy chủ tệp. Khi máy khách kết nối tới máy chủ tệp, việc xác thực máy chủ tệp được diễn ra ngay trong khi thiết lập kết nối. Nút lệnh Disconnect huỷ b kết nối đang tồn tại. Phần dưới là khung cửa sổ cho phép chọn một tệp trên đĩa cứng để gửi, mục File Name là tên file sẽ gửi, nút lệnh Send File thực hiện việc gửi một file. Phía dưới là thanh trạng thái cho biết số byte đã gửi, tốc độ truyền và thời gian thực hiện.
Hình 3.24. Giao diện chương trình trên máy khách
Trên đây là một số kết quả khi thực hiện hệ thống. Hệ thống chạy ổn định và đáp ứng các yêu cầu cơ bản là mô ph ng được hoạt động của một hệ thống truyền tệp theo giao thức SSL, mức độ bảo mật của hệ thống là khá tốt. Tuy nhiên, do thời gian hạn chế nên việc tối ưu hoá hệ thống chưa được đề cập đến nhiều, tốc độ của hệ thống hệ thống còn chưa được cao….
KẾT LUẬN
Thực tiễn đã cho thấy các ứng dụng mạng ngày càng được phát triển, đặc biệt là các ứng dụng trong lĩnh vực thương mại, ngân hàng, tài chính, hàng không, an ninh, quốc phòng,... Việc phát triển loại ứng dụng này ngoài việc đảm bảo chất lượng dịch vụ còn phải đảm bảo tính mật của thông tin trên môi trường truyền thông. SSL VPN là một giải pháp hiệu quả cho vấn đề này và đang được quan tâm phát triển bởi các nhà phát triển ứng dụng ngày nay. Luận văn: “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” được thực hiện với mục đích nghiên cứu và đưa ra một phương pháp cho vấn đề an ninh mạng nói chung và hệ thống truyền tệp nói riêng và đã đạt được một số kết quả sau:
Nắm được các khái niệm sử dụng trong mạng riêng ảo, các yêu cầu kỹ thuật và các mô hình mạng khi xây dựng mạng VPN.
Nắm được cấu trúc, nguyên tắc hoạt động của giao thức SSL trong xây dựng các mạng riêng ảo.
Đề xuất, thiết kế và cài đặt thử nghiệm một ứng dụng truyền tệp hoạt động dựa trên giao thức SSLFTP.
Thử nghiệm mô hình và đưa ra kết quả.
Hướng nghiên cứu tiếp theo:
Tiếp tục hoàn thiện hệ thống truyền tệp đã xây dựng để có thể triển khai sử dụng trong các hoạt động của Ngành công an.
Cải tiến các thuật toán mã hoá sử dụng trong hệ thống nhằm nâng cao hiệu quả, tính bảo mật của hệ thống và tối ưu hoá các mô đun chương trình nhằm tương thích với các hệ thống thông tin khác.
Cải tiến thuật toán sinh số ngẫu nhiên nhằm nâng cao tính bảo mật cho việc tạo khoá, hiệu năng của hệ thống và độ an toàn của hệ thống.
Nghiên cứu tối ưu hoá hệ thống mã hoá được sử dụng trong hệ thống.
Ngày nay, lĩnh vực an ninh an toàn dữ liệu ngày càng được nhiều nhà khoa học quan tâm vì những kết quả mà nó đạt được. Những thành tựu do lĩnh vực này mang lại cho thấy vị trí quan trọng của nó trong nhiều lĩnh vực phát triển của Công nghệ Thông tin nói riêng cũng như nền kinh tế xã hội nói chung. Trong phạm vi giới hạn của đề tài và năng lực hạn chế của tác giả nên kết quả của luận văn còn khiêm tốn, để ng nhiều khả năng nghiên cứu nhằm phát triển và hoàn thiện để có thể đạt kết quả cao hơn. Tác giả rất mong được sự góp ý chỉ bảo của các thầy cô giáo và các đồng nghiệp!
TÀI LIỆU THAM KHẢO
Tiếng Việt
1. Trần Công Hùng (2002), Kỹ thuật mạng riêngảo, NXB Bưu Điện.
2. Thái Hồng Nhị, Phạm Minh Việt (2004), An toàn thông tin, NXB Khoa học kỹ thuật.
Tiếng Anh
3. Richard Deal (2005), The Complete Cisco VPN Configuration Guide, Cisco Press. 4. James Henry Carmouche, Ipsec Virtual Private Network Fundamentals, Cisco Press. 5. Ebook – Cisco Access VPN Solutions Using Tunneling Technologies, Cisco Press. 6. Stephen A.Thomas, SSL and TLS Essentials, Wiley.
7. Meeta Gupta (2003), Building a Virtual Private Network, Premier Press. 8. By Gert De Laet, Gert Schauwers (2004), Network Security Fundamentals, Cisco Press. 9. Franck Martin (2002), SSL Certificates Howto.
10. Chartlei Hosner (2004), OpenVPN and the SSL Revolution
11. Cisco systems(2002), Introduction to Secure Socket Layer, White Page
12. Kipp E. B. Hickman. The SSL Protocol, Veraion 2.0. Netscape Communications, 1995, http://wp.netscape.com/eng/security/SSL2.html (2003)
13. A. O. Freier P. Karlton and P. C. Kocher. The SSL Protocol, Version 3.0. Netscape Communications, 1996, http://wp.netscape/eng/ssl3/draft302.txt (2003)
14. T. Dierks and C. Allen. RFC2246, The TLS Protocol, Version 1.0. Network Working Group, 1999, ftp://ftp.rfc-editor.org/in-notes/rfc2246.txt (2003).
15. Eric Rescorla. SSL and TLS, Designing and Building Secure Systems. Addison Wesley, 2001, 3rd printing.
16. H. Krawczyk M. Bellare and R. Canetti. HMAC: Keyed-Hashing for Message
Authentication,RFC 2104. Network Working Group, 1997, ftp://ftp.rfc-
editor.org/innotes/rfc2104.txt (2003).
17. V. Rijmen: The block cipher Rijndael. http://www.esat.kuleuven.ac.be/ ~rijmen/rijndael/, (2001).
18. National Institute of Standards and Technology: Specification for the Advanced Encryption Standard (AES). http://csrc.nist.gov/publications/fips/fips197/fips- 197.pdf, (2001).
19. Virtual Private Networking: An Overview, (2001).
http://www.microsoft.com/technet/prodtechnol/windows2000serv/plan/vpnoverv iew.mspx
20. Virtual Private Network. http://www.d-link.co.za/pdf/7.%20D-Link%20 Virtual %20Private%20Network%20Self%20Study.pdf
21. Christopher McDonaldVirtual: Private Networks An overview.
http://www.intranetjournal.com/foundation/vpn-1.shtml 22. The VPN Overview. http://searchnetworking.techtarget.com/searchNetworking/downloads/Buildvpn1.pdf 23. VPN Overview. http://www.juniper.net/techpubs/software/junos/junos72/swconfig72-vpns /download/vpn-overview.pdf.
24. Yinglam Cheung, 2003. Multi-Protocol Label Switching (MPLS).
http://www.slb.com/media/services/consulting/infrastructure/mpls_whitepaper.pdf 25. R. Rivest. The MD-5 Message-Digest Algorithm, RFC 1321. John Wiley and Sons,
1996, ftp://ftp.rfc-editor.org/in-notes/rfc1321.txt (2003).
26. Michael Hayoz, Introducing SSL The Secure Sockets Layer Protocol. http://diuf.unifr.ch/ds/michael.hayoz/docs/hayozm_ssl.pdf.