Cách thức hoạt động 3.1 Farme quá trình hoạt động: SSL là giao thức tầng layered protocol, bao gồm 4 giao thức con sau: + Giao thức SSL Handshake: Giao thức truyền tay + Giao thức SSL
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HỒ CHÍ MINH
Ngành: CÔNG NGHỆ THÔNG TIN Chuyên Ngành: MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG
Đề Tài: Tìm Hiểu Giao Thức SSL
MÔN: CHUYÊN ĐỀ 1
Giảng Viên Hướng Dẫn: Nguyễn Đức Quang
Sinh Viên thực hiện:
Khưu Hoàng Giang Sang 1151020034 01884688002 khuuleo@gmail.com
TP Hồ Chí Minh, Năm 2014
Trang 2Mục Lục
SSL (SECURE SOCKET LAYER) 2
1 Định Nghĩa 2
1.2 TCP/UDP 2
1.3 Port 2
2 Công Dụng 2
2.1 Môi Trường Hoạt Động 2
2.2 Mô Hình Hoạt Động 3
3 Cách thức hoạt động 3
3.1 Farme quá trình hoạt động: 3
3.2 Quá Trình Bắt Tay 6
3.3 Thứ Tự Các Packet Trong SSL 6
LAB SSL 12
1 Lab 1: openvpn sử dụng softether 12
1.1 Mô hình giả lập 1: 12
1.2 các bước chuẩn bị gồm có: 12
1.3 Các bước cấu hình cài đặt 12
1.4 Bắt gói tin trên wireshark 23
2 Lab 2: FTPS 27
2.1 Chuẩn bị: 27
2.2 Các Bước Cài đặt 27
Trang 3SSL (SECURE SOCKET LAYER)
1 Định Nghĩa
SSL (Secure Socket Layer ) là giao thức đa mục đích được thiết kế để tạo ra các giao tiếp giữa hai chương trình ứng dụng trên một cổng định trước (socket 443) nhằm mã hoá toàn bộ thông tin đi/đến, mà ngày nay được sử dụng rộng rãi cho giao dịch điện tử như truyền số hiệu thẻ tín dụng, mật khẩu, số bí mật cá nhân (PIN) trên Internet
1.2 TCP/UDP
Giao thức SSL (Secure Socket Layer) tổ hợp nhiều giải thuật mã hóa nhằm đảm bảo quá trình trao đổi thông tin trên mạng được bảo mật Việc mã hóa dữ liệu diễn ra một cách trong suốt, hỗ trợ nhiều giao thức khác chạy trên nền giao thức TCP
1.3 Port
Các cổng được gán cho các giao thức ứng dụng chạy trên SSL
2 Công Dụng
2.1 Môi Trường Hoạt Động
SSL nằm trong tầng ứng dụng của giao thức TCP/IP Do đặc điểm này, SSL có thể được dùng trong hầu hết mọi hệ điều hành hỗ trợ TCP/IP mà không cần phải chỉnh sửa nhân của hệ thống hoặc ngăn xếp TCP/IP Điều này mang lại cho SSL sự cải tiến mạnh
mẽ so với các giao thức khác như IPSec (IP Security Protocol) Vì giao thức này đòi hỏi nhân hệ điều hành phải hỗ trợ và chỉnh sửa ngăn xếp TCP/IP SSL cũng có thể dễ dàng vượt qua tường lửa và proxy, cũng như NAT (Network Address Translation) mà không cần nguồn cung cấp
Trang 42.2 Mô Hình Hoạt Động
Client-server
3 Cách thức hoạt động
3.1 Farme quá trình hoạt động:
SSL là giao thức tầng (layered protocol), bao gồm 4 giao thức con sau:
+ Giao thức SSL Handshake: Giao thức truyền tay
+ Giao thức SSL Change Cipher Spec Protocol: Giao thức thay đổi thuật toán mã hóa thông số
+ Giao thức SSL Alert: Giao thức báo động
+ SSL Record Layer
Vị trí của các giao thức trên, tương ứng với mô hình TCP/IP được minh hoạ
Hoạt Động Của Giao Thức SSL
Điểm cơ bản của SSL được thiết kế độc lập với tầng ứng dụng để đảm bảo tính bí mật, an toàn và chống giả mạo luồng thông tin qua Internet giữa hai ứng dụng bất kỳ, thí dụ như webserver và các trình duyệt khách (browsers),
do đó được sử dụng rộng rãi trong nhiều ứng dụng khác nhau trên môi trường Internet
Trang 5Toàn bộ cơ chế hoạt động và hệ thống thuật toán mã hoá sử dụng trong SSL được phổ biến công khai, trừ khoá chia xẻ tạm thời (session key) được sinh ra tại thời điểm trao đổi giữa hai ứng dụng là tạo ngẫu nhiên và bí mật đối với người quan sát trên mạng máy tính Ngoài ra, giao thức SSL còn đỏi hỏi ứng dụng chủ phải được chứng thực bởi một đối tượng lớp thứ ba (CA) thông qua giấy chứng thực điện tử (digital certificate) dựa trên mật mã công khai (thí dụ RSA)
Sau đây ta xem xét một cách khái quát cơ chế hoạt động của SSL để phân tích cấp
độ an toàn của nó và các khả năng áp dụng trong các ứng dụng nhạy cảm, đặc biệt là các ứng dụng về thương mại và thanh toán điện tử…
Trang 6ra, các ứng dụng còn trao đổi “số nhận dạng/khoá theo phiên” (session ID, session key) duy nhất cho lần làm việc đó Sau đó ứng dụng khách (trình duyệt) yêu cầu có chứng thực điện tử (digital certificate) xác thực của ứng dụng chủ (web server) Chứng thực điện tử thường được xác nhận rộng rãi bởi một cơ quan trung gian (là CA -Certificate Authority) như RSA Data Sercurity hay VeriSign Inc., một dạng tổ chức độc lập, trung lập và có uy tín Các tổ chức này cung cấp dịch vụ “xác nhận” số nhận dạng của một công ty và phát hành chứng chỉ duy nhất cho công ty đó như là bằng chứng nhận dạng (identity) cho các giao dịch trên mạng, ở đây là các Server webserver
Sau khi kiểm tra chứng chỉ điện tử của Server (sử dụng thuật toán mật mã công khai, như RSA tại trình máy trạm), ứng dụng máy trạm sử dụng các thông tin trong chứng chỉ điện tử để mã hoá thông điệp gửi lại Server mà chỉ có Server đó có thể giải mã Trên cơ sở đó, hai ứng dụng trao đổi khoá chính (master key) - khoá bí mật hay khoá đối xứng - để làm cơ sở cho việc mã hoá luồng thông tin/dữ liệu qua lại giữa hai ứng dụng chủ khách Toàn bộ cấp độ bảo mật và an toàn của thông tin/dữ liệu phụ thuộc vào một số tham số: (i) số nhận dạng theo phiên làm việc ngẫu nhiên; (ii) cấp độ bảo mật của các thuật toán bảo mật áp dụng cho SSL; và (iii) độ dài của khoá chính (key length) sử dụng cho lược đồ mã hoá thông tin
Các thuật toán mã hóa thông dụng được ssl sử dụng:
* DES: (Data Encryption Standard) là một thuật toán mã hóa có chiều dài khóa là
Trang 7* KEA (Key Exchange Algorithm) là một thuật toán trao đổi khoá đang được chính phủ Mỹ sử dụng
* MD5 (Message Digest algorithm) được phát thiển bởi Rivest
* RSA: là thuật toán mã hoá công khai dùng cho cả quá trình xác thực và mã hoá
dữ liệu được Rivest, Shamir, and Adleman phát triển
* RSA key exchange: là thuật toán trao đổi khoá dùng trong SSL dựa trên thuật toán RSA
* RC2 and RC4: là các thuật toán mã hoá được phát triển bởi Rivest dung cho RSA Data Security
* SHA-1 (Secure Hash Algorithm): là một thuật toán băm đang được chính phủ
The Hello Exchange
Khi một Client SSL và Server bắt đầu giao tiếp, họ đồng ý về một bản giao thức, chọn thuật toán mã hóa, tùy chọn xác nhận lẫn nhau, và sử dụng kỹ thuật mã hóa khóa công khai để tạo ra bí mật được chia sẻ Các quá trình này được thực hiện trong giao thức bắt tay Tóm lại, Client sẽ gửi một thông điệp Hello đến Server, và Server phải trả lời với
Trang 8một lời Hello đến Client Hello và Server Hello Client được sử dụng để thiết lập khả năng tăng cường an ninh giữa Client và Server
Client Hello:
The Client Hello gửi những thuộc tính này đến Server:
Protocol Version: Các phiên bản của giao thức SSL mà theo đó các Client có nhu
cầu giao tiếp trong phiên này
Session ID: ID của một phiên giao dịch Client muốn sử dụng cho kết nối
này Trong các Client đầu tiên Hello của việc trao đổi, session ID có sản phẩm nào (tham khảo các ảnh chụp màn hình bắt gói dữ liệu sau khi lưu ý dưới đây)
Cipher Suite: Điều này được truyền từ máy khách đến Server trong các Client
Hello tin nhắn Nó bao gồm sự kết hợp của thuật toán mã hóa được hỗ trợ bởi các Client trong thứ tự ưu tiên của Client (lựa chọn đầu tiên đầu tiên) Mỗi bộ mật mã xác định cả một thuật toán trao đổi khóa và một spec mật mã Các Server chọn một bộ mật mã hoặc, nếu không có sự lựa chọn có thể chấp nhận được trình bày, trả về một cái bắt tay không cảnh báo và đóng kết nối
Compression Method: Bao gồm một danh sách các thuật toán nén hỗ trợ bởi
client Nếu Server không hỗ trợ bất kỳ phương pháp gửi của Client, kết nối không thành Các phương pháp nén cũng có thể là null
Lưu ý: địa chỉ của máy client trong hình là 10.0.0.1 và Server là 10.0.0.2
Server Hello
Các máy chủ sẽ gửi lại các thuộc tính cho khách hàng:
Trang 9 Protocol Version: Các phiên bản lựa chọn của giao thức SSL mà khách hàng hỗ
trợ
Session ID: Đây là bản sắc của phiên tương ứng với kết nối này Nếu phiên ID gửi
của khách hàng trong các khách hàng Xin chào không phải là trống rỗng, máy chủ
sẽ tìm trong bộ nhớ cache phiên cho một trận đấu Nếu kết hợp được tìm thấy và các máy chủ sẵn sàng để thiết lập kết nối mới bằng cách sử dụng phiên nhà nước quy định, máy chủ đáp ứng với cùng một giá trị đã được cung cấp bởi khách hàng Điều này cho thấy một phiên trở lại và ra lệnh rằng các bên phải tiến hành trực tiếp các thông báo đã hoàn thành Nếu không, lĩnh vực này có một giá trị khác nhau mà xác định các phiên làm việc mới Các máy chủ có thể trở lại một sản
phẩm nào session_id để chỉ ra rằng phiên giao dịch sẽ không được lưu trữ, và do
đó không thể được nối lại
Cipher Suite: Là lựa chọn bởi các máy chủ từ danh sách đã được gửi từ khách
hàng
Compression Method: Khi lựa chọn bởi các máy chủ từ danh sách đã được gửi từ
khách hàng
Compression Method: Các máy chủ sẽ gửi cho khách hàng một danh sách của tất
cả các chứng chỉ được cấu hình trên nó, và cho phép khách hàng để chọn giấy chứng nhận nó muốn sử dụng để xác thực
Server Hello Done
Server Xin chào Xong tin nhắn được gửi bởi các máy chủ để báo hiệu kết thúc của máy chủ chào và tin nhắn liên quan Sau khi gửi thông báo này, các máy chủ chờ đợi một phản ứng của khách hàng Sau khi nhận được Server Xin chào thông điệp Done, khách hàng xác nhận rằng các máy chủ cung cấp một chứng chỉ hợp lệ, nếu cần thiết, và kiểm tra các máy chủ Xin chào các thông số được chấp nhận
Trang 10 Certificate Server, Server Key Exchange, và Certificate Request (bắt buộc)
Certificate Server: Nếu máy chủ phải có chứng thực (mà thường là trường hợp),
máy chủ sẽ gửi Giấy chứng nhận ngay sau khi Server Xin chào tin nhắn Các loại giấy chứng nhận phải phù hợp với các thuật toán mã hóa thuật toán trao đổi khóa
bộ được lựa chọn, và nói chung là Giấy chứng nhận X.509.v3
Server Key Exchange: Thông điệp chủ Key Exchange được gửi bởi các máy chủ
nếu nó không có giấy chứng nhận NếuHellman Diffie? (DH) các thông số được bao gồm trong các chứng chỉ máy chủ, thông báo này không được sử dụng
Certificate Request: Một máy chủ có thể tùy chọn yêu cầu một giấy chứng nhận
từ các khách hàng, nếu thích hợp cho các bộ mật mã được chọn
Client Exchange
Client Certificate (Optional)
Đây là thông điệp đầu tiên mà khách hàng sẽ gửi sau khi anh / cô ấy nhận được một máy chủ Xin chào nhắn Done Thông báo này chỉ được gửi nếu máy chủ yêu cầu một giấy chứng nhận Nếu không có giấy chứng nhận phù hợp có sẵn, khách hàng sẽ gửi
mộtno_certificate cảnh báo thay thế Cảnh báo này chỉ là một cảnh báo; Tuy nhiên, các
máy chủ có thể đáp lại bằng một thất bại gây tử vong bắt tay cảnh báo nếu xác thực khách hàng được yêu cầu Giấy chứng nhận khách hàng DH phải phù hợp với máy chủ xác định các thông số DH
Client Key Exchange
Nội dung của thông điệp này phụ thuộc vào các thuật toán khóa công khai lựa chọn giữa Client và Server Xin chào Xin chào tin nhắn.Các khách hàng sử dụng một phím
premaster mã hóa bằng các Rivest-Shamir-Addleman (RSA) thuật toán hoặc DH cho thỏa
Trang 11thuận quan trọng và xác thực Khi RSA được sử dụng cho máy chủ xác thực và trao đổi
khóa, một 48-byte pre_master_secret được tạo ra bởi các khách hàng, mã hóa theo máy
chủ khóa công khai, và gửi đến máy chủ Các máy chủ sử dụng khóa riêng để giải mã
pre_master_secret Cả hai bên Sau đó chuyển đổi pre_master_secret vào
master_secret
Certificate Verify (Optional)
Nếu khách hàng gửi một giấy chứng nhận có khả năng ký kết, một giấy chứng nhận có chữ ký số Xác minh tin nhắn được gửi đi để xác minh một cách rõ ràng các chứng chỉ Cipher Change
Change Cipher Spec Messages
Thông điệp Change Cipher Spec được gửi của khách hàng, và các bản sao khách hàng các cấp phát Cipher Spec (phiên bản mới) vào Cipher Spec hiện tại (một trong đó đã được sử dụng trước đó) Giao thức Change Cipher Spec tồn tại để báo hiệu quá trình chuyển đổi trong chiến lược mật mã Các giao thức bao gồm một tin nhắn duy nhất, được mã hóa và nén dưới hiện tại (không phải chờ) Cipher Spec Thông điệp này được gửi bởi cả máy khách và máy chủ để thông báo cho bên nhận rằng hồ sơ sau đó được bảo
vệ theo gần đây nhất là đàm phán Cipher Spec và các phím Tiếp nhận thông điệp này gây ra các nhận sao chép "đọc chờ" nhà nước vào "đọc hiện nay" nhà nước Các khách hàng sẽ gửi một thông điệp trao đổi khóa bắt tay Change Cipher Spec sau và Giấy chứng nhận Xác nhận tin nhắn (nếu có), và máy chủ sẽ gửi một sau khi xử lý thành công thông điệp trao đổi khóa nó nhận được từ khách hàng Khi một phiên trước đó được tiếp tục, thông báo Change Cipher Spec được gửi sau khi các thông điệp Hello Trong ảnh chụp,
Trang 12Sở Giao dịch khách hàng, thay đổi yếu, và tin nhắn Hoàn tất được gửi dưới dạng một tin nhắn đơn từ khách hàng
Trang 13LAB SSL
1 Lab 1: openvpn sử dụng softether
1.1 Mô hình giả lập 1:
1.2 các bước chuẩn bị gồm có:
+ 2 máy ảo chạy trên vmware gồm:
Máy Server chạy hdh Windowns Server 2008 Máy Client chạy hdh Windowns XP
Trang 15Trên máy server
Chạy phần mềm softetter-vpnserver
->Next để tiếp tục
Chọn dòng Softether VPN Server Manager (Admin Tools Only) > Next >
Tích vào mục “I agree to the End User License Areement” > Next để típ tục
Trang 16Tích vào mục “Advanced Install Options for Experts” và chọn “Install only on the Environment of User “Adminstrator”” > Next > Next > Finish để kết thúc quá trình cài đặt
Sau khi cài đặt xong bãng chương trình trên sẽ hiện ra Chọn “Delete Setting” > yes để xóa cài đặt mặc định của máy
Tiếp theo chạy lại phần mềm Softetter để típ tục cài đặt
Next để tiếp tục cài đặt
Trang 17Chọn dòng “Softether VPN Server” > Next >
Tích vào mục “I agree to the End User License Areement” > Next để tiếp tục cài đặt
Trang 18Chọn “C:\Program Files\Softether VPN Server” > Next > Next > Finish để kết thúc quá trình cài đặt
Chọn “Edit Setting” để cấu hình phần mềm
(Các bạn cần biết tên và tên đầy đủ của computer để cài đặt cấu hình Để biết tên và tên đầy đủ, Nhấp phải chuột vào My Computer > Propreties > chọn tap Computer Name > Chọn Change tên computer ở mục Computer Name, tên đầy đủ của computer nằm ở mục Full computer name)
(ở đây tên computer của mình là “right” và tên full là “right.11dthm.local”)
Trang 19Nhập tên computer vào phần Setting Name, tên đầy đủ computer vào phần Host Name >
OK
Trang 20Sau khi đã thực hiện xong Chọn “Connect”
Bảng trên sẽ hiện ra Các bạn tự đặt mật khẩu và chọn OK
Tích chọn “Site-to-site VPN Server or VPN Bridge” và “VPN Server that Accepts Connection from Other Sites (Center)” > Next để típ tục
Chọn Yes
Đặt tên Cho Virtual Hub Name là “VPN” > OK
Trang 21Tích chọn vào mục “Enable L2TP Server Funtion (L2TP over IPsec)” > OK > Next
Tích chọn mục “Disable VPN Azure” > OK
Chọn nút Create Users để tạo user kết nối VPN
Trang 22Đặt User Name, Full Name, và Password sác thực > OK để kết thúc quá trình cài đặt
Trên Máy Client
Chạy phần mềm Softether-vpnclient để cài đặt
Next >