Thiết lập khả năng bảo mật Establish Security Capabilities:- Máy khách gửi thông điệp "client_hello" đến máy chủ, chứa các tham số như phiên bản TLS cao nhất mà máy khách hỗ trợ, một cấu
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN
THÔNG Khoa An toàn thông tin
TIỂU LUẬN MÔN: CƠ SỞ AN TOÀN THÔNG TIN
Tìm hiểu về giao thức bảo mật SSL/TLS: Kiến trúc,
hoạt động và ứng dụng
Giảng viên : Đinh Trường Duy
Sinh viên thực hiện : Nguyễn Anh Tuấn – B22DCAT268
Đặng Đức Tài – B22DCAT251 Phạm Văn Quyết – B22DCAT243 Phạm Hải An – B22DCAT004
Vũ Đức Mạnh – B22DCAT187
Trang 2MỤC LỤC
Phần I: Giới thiệu về SSL/TLS 3
Phần II: Các giao thức chính 4
1 Giao thức Handshake 4
2 Giao thức ChangeCipherSpec 6
3 Giao thức Alert 7
4 Giao thức Record 7
Phần III: Hoạt động 9
1 Xác thực và Đàm phán 9
2 Giao thức handshake 9
3 Quá trình giải mã và mã hóa 9
4 Xác thực và xác nhận 10
5 Quá trình kết thúc 10
Phần IV: Ứng dụng 11
1 Bảo mật website (HTTPS) 11
2 Bảo mật email 11
3 Truyền tin an toàn 11
4 Bảo mật trong truyền dữ liệu tương tác 12
5 Iot (Internet of things) 13
6 Các ứng dụng thanh toán trực tuyến 13
7 VPN (Virtual Private Network) 13
8 Truyền thông trong điện toán đám mây 14
I Giới thiệu về SSL/TLS
SSL là chữ viết tắt của Secure Sockets Layer (Lớp socket bảo mật) Một loại bảo mật giúp
mã hóa liên lạc giữa website và trình duyệt Công nghệ này đang lỗi thời và được thay thế hoàn toàn bởi TLS
Trang 3TLS là chữ viết tắt của Transport Layer Security, nó cũng giúp bảo mật thông tin truyền giống như SSL Nhưng vì SSL không còn được phát triển nữa, nên TLS mới là thuật ngữ đúng nên dùng
Website được cài đặt chứng chỉ SSL/TLS có thể dùng giao thức HTTPS để thiết lập kênh kết nối an toàn tới server Tóm lại, các điều cơ bản về SSL là:
- Mục tiêu của SSL/TLS là bảo mật các thông tin nhạy cảm trong quá trình truyền trên internet như, thông tin cá nhân, thông tin thanh toán, thông tin đăng nhập
- Nó là giải pháp thay thế cho phướng pháp truyền thông tin văn bản dạng plain text, văn bản loại này khi truyền trên internet sẽ không được mã hóa, nên việc áp dụng
mã hóa vào sẽ khiến cho các bên thứ 3 không xâm nhập được bào thông tin của bạn, không đánh cắp hay chỉnh sửa được các thông tin đó
- Hầu hết mọi người đều quen thuộc với các chứng chỉ SSL/TLS, đang được dùng bởi các website lớn và các webmaster nghiêm túc trong việc bảo vệ các giao dịch người dùng
- Người dùng thể biết được website có đang dùng chứng chỉ bảo mật SSL/TLS hay không đơn giản bằng cách nhìn vào icon trong URL ngay trong thanh địa chỉ
II Các giao thức chính
1 Giao thức Handshake
TLS handshake là một quá trình khởi động phiên giao tiếp sử dụng giao thức TLS Trong quá trình này, hai bên (máy khách và máy chủ) trao đổi thông điệp để xác minh,
Trang 4xác nhận lẫn nhau, thiết lập các thuật toán mã hóa, xác thực, và thống nhất về khóa phiên (session keys) TLS handshake là nền tảng trong cách hoạt động của HTTPS Quá trình TLS handshake xảy ra khi người dùng truy cập vào một trang web qua HTTPS, trình duyệt bắt đầu truy vấn máy chủ gốc của trang web, hoặc khi có các giao tiếp khác sử dụng HTTPS, như gọi API hoặc truy vấn DNS qua HTTPS Quá trình này diễn ra sau khi kết nối TCP đã được mở thông qua quá trình bắt tay TCP
Trong quá trình TLS handshake, máy chủ và máy khách sẽ thực hiện các bước sau:
1 Chỉ định phiên bản TLS sẽ sử dụng (TLS 1.0, 1.2 hoặc 1.3)
2 Quyết định bộ mật mã (cipher suite) sẽ sử dụng
3 Xác thực danh tính máy chủ thông qua khóa công khai và chữ ký số của cơ quan cấp chứng chỉ SSL
4 Tạo khóa phiên để mã hóa đối xứng sau khi quá trình bắt tay hoàn tất
Quá trình TLS handshake bao gồm bốn giai đoạn chính:
Trang 5Thiết lập khả năng bảo mật (Establish Security Capabilities):
- Máy khách gửi thông điệp "client_hello" đến máy chủ, chứa các tham số như phiên bản TLS cao nhất mà máy khách hỗ trợ, một cấu trúc ngẫu nhiên (random) để đảm bảo tính duy nhất trong trao đổi khóa, định danh phiên (session ID), danh sách các thuật toán mật mã (CipherSuite) và phương pháp nén (compression method) mà máy khách hỗ trợ
Xác thực máy chủ và trao đổi khóa (Server Authentication and Key Exchange):
Trang 6- Máy chủ gửi chứng chỉ của mình, chứa các chứng chỉ X.509 để xác thực Nếu cần thiết, máy chủ có thể gửi thêm thông điệp "server_key_exchange" để cung cấp thông tin cho việc trao đổi khóa
Xác thực máy khách và trao đổi khóa (Client Authentication and Key Exchange):
- Máy khách xác minh chứng chỉ của máy chủ và kiểm tra tính hợp lệ của các thông
số trong thông điệp "server_hello" Nếu cần thiết, máy khách sẽ gửi chứng chỉ của mình và thông điệp "client_key_exchange" Tùy thuộc vào loại trao đổi khóa (RSA, Diffie-Hellman, v.v.), nội dung thông điệp này sẽ khác nhau Máy khách có thể gửi thêm thông điệp "certificate_verify" để xác minh rõ ràng chứng chỉ của mình
Kết thúc giao thức Handshake (Finalizing the Handshake Protocol):
- Máy khách gửi thông điệp "change_cipher_spec" để áp dụng các thuật toán mã hóa
đã thống nhất Sau đó, thông điệp "finished" sẽ được gửi để xác minh rằng quá trình trao đổi khóa và xác thực đã thành công Sau khi hoàn tất, cả hai bên sử dụng
bí mật chung (master secret) để tạo khóa mã hóa cho việc bảo mật dữ liệu được truyền trong suốt phiên giao tiếp
TLS handshake hoàn tất khi cả máy khách và máy chủ đã thống nhất về các tham số bảo mật và sẵn sàng trao đổi dữ liệu an toàn
2 Giao thức ChangeCipherSpec
Giao thức ChangeCipherSpec là một phần quan trọng trong quá trình thiết lập kết nối bảo mật SSL/TLS Nó đảm bảo rằng cả máy khách và máy chủ đã hoàn tất quá trình trao đổi thông tin về các tham số mật mã và sẵn sàng sử dụng các khóa, thuật toán và bí mật mới Dưới đây là một số điểm chính về giao thức này:
- Chức năng chính: Giao thức ChangeCipherSpec hoạt động như một tín hiệu xác nhận giữa máy khách và máy chủ, cho biết rằng họ đã đồng ý về các thông số mật mã Thông điệp này cho phép chuyển đổi từ các tham số mật
mã cũ sang các tham số mới mà hai bên đã thiết lập
- Cấu trúc thông điệp: Giao thức này bao gồm một thông điệp duy nhất có giá trị là 1 byte, được gửi từ máy khách đến máy chủ hoặc ngược lại Thông điệp này không chứa dữ liệu thực tế mà chỉ đơn giản là một tín hiệu thông báo
- Trạng thái chuyển đổi: Khi một bên nhận được thông điệp ChangeCipherSpec, nó sẽ chuyển từ trạng thái chờ xử lý sang trạng thái sử dụng các tham số mật mã mới Điều này có nghĩa là mọi thông tin trao đổi sau thông điệp này sẽ được mã hóa bằng các khóa và thuật toán đã được thiết lập
Trang 7- Vai trò trong bảo mật: Giao thức ChangeCipherSpec đóng vai trò quan trọng trong việc thiết lập một kết nối bảo mật SSL/TLS, giúp đảm bảo rằng
cả hai bên đồng bộ về các tham số mật mã Điều này không chỉ tăng cường tính bảo mật mà còn ngăn chặn các cuộc tấn công tiềm ẩn, chẳng hạn như tấn công nghe lén hoặc giả mạo dữ liệu
- Liên kết với các giao thức khác: ChangeCipherSpec thường đi kèm với các thông điệp khác trong quá trình thiết lập kết nối, chẳng hạn như thông điệp
“Finished”, để xác nhận rằng quá trình thiết lập đã hoàn tất và kết nối bảo mật đã được thiết lập thành công
3 Giao thức Alert
- SSL sử dụng Giao thức Alert để báo cáo lỗi và tình trạng bất thường Giao thức này chỉ có một loại thông điệp, đó là thông điệp cảnh báo (alert message), mô tả vấn đề và mức độ của nó (cảnh báo hoặc nghiêm trọng)
- Giao thức Alert được sử dụng để cho phép các tín hiệu được gửi giữa các bên ngang hàng Các tín hiệu này chủ yếu được dùng để thông báo cho bên ngang hàng
về nguyên nhân của sự cố giao thức
- Một tín hiệu cảnh báo bao gồm chỉ báo mức độ, có thể là nghiêm trọng (fatal) hoặc cảnh báo (warning) (dưới TLS 1.3 tất cả các cảnh báo đều là nghiêm trọng)
- Các thông báo cảnh báo được bảo vệ bởi giao thức ghi lại (record protocol), do đó thông tin bao gồm không bị rò rỉ Bạn phải cẩn thận tối đa để thông tin cảnh báo không bị rò rỉ cho kẻ tấn công tiềm năng, qua các tệp nhật ký công khai, v.v
- Mỗi thông điệp cảnh báo gồm 2 trường chính:
+ Mức độ (Level):
Warning (Cảnh báo): Thông điệp cảnh báo mức độ cảnh báo được sử dụng
để báo cáo về các vấn đề không ngiêm trọng và không làm nguy hiểm đến kết nối bảo mật Các ví dụ cho mức độ cảnh báo có thể bao gồm việc sử dụng 1 phiên bản cũ hơn của SSL/TLS, sự không tương thích giữa các tham
số mật mã hoặc việc sử dụng 1 thuật toán mã hóa yếu
Fatal (Nghiêm trọng): Thông điệp cảnh báo mức độ nghiêm trọng được sử
dụng để báo cáo về các vấn đề nghiêm trọng có thể đe dọa tính toàn vẹn và bảo mật của kết nối Ví dụ mức độ nghiêm trọng có thể được sử dụng để báo cáo về sự không hợp lệ của chứng chỉ, sự không đáp ứng của máy chủ hoặc việc tấn công từ phía người dùng giả mạo
Trang 8+ Mô tả (Description) :Mô tả thông điệp cảnh báo cung cấp thông tin chi tiết về vấn đề hoặc tình trạng bất thường mà gây ra thông điệp cảnh báo Mô tả có thể bao gồm các mã lỗi cụ thể hoặc mô tả ngắn gọn về lỗi kiểm tra
- Khi 1 bên nhận được thông điệp cảnh báo, nó có thể xử lý tình huống đó bằng cách thực hiện các hành động phù hợp:
Với mức độ cảnh báo: Kết nối bảo mật vẫn tiếp tục tuy nhiên bên nhận nên
kiểm tra và khắc phục nếu cần thiết
Với mức độ nghiêm trọng: Kết nối bảo mật sẽ được chấm dứt ngay lập tức để
đảm bảo an toàn
Thông điệp cảnh báo trong giao thức Alert giúp thông báo về các vấn đề và tình trạng không thường xảy ra trong quá trình sử dụng SSL/TLS, giúp các bên tham gia trong kết nối có thể xử lý và đáp ứng phù hợp với tình huống đó để duy trì tính toàn vẹn và an ninh của kết nối bảo mật
4 Giao thức Record
Giao thức Record của Transport Layer Security (TLS) bảo mật dữ liệu ứng dụng bằng cách sử dụng các khóa được tạo trong quá trình Bắt tay (Handshake) Giao thức Bản ghi chịu trách nhiệm bảo mật dữ liệu ứng dụng, xác minh tính toàn vẹn và nguồn gốc của
nó Nó quản lý các tác vụ sau:
- Chia các thông điệp gửi đi thành các khối có thể xử lý, và lắp ráp lại các thông điệp nhận vào
- Nén các khối gửi đi và giải nén các khối nhận vào (tùy chọn)
- Áp dụng Mã xác thực thông điệp (Message Authentication Code - MAC) cho các thông điệp gửi đi, và xác minh các thông điệp nhận vào bằng MAC
- Mã hóa các thông điệp gửi đi và giải mã các thông điệp nhận vào
Khi Giao thức Record hoàn tất, dữ liệu đã được mã hóa sẽ được chuyển xuống lớp Giao thức Điều khiển Truyền dẫn (TCP) để vận chuyển
Trang 9 Quá trình này đảm bảo tính toàn vẹn, xác thực, và bảo mật của dữ
liệu truyền qua kênh kết nối SSL/TLS
III.Hoạt động
1 Xác thực và Đàm phán
- Xác thực
+ Quá trình bắt đầu bằng việc Client gửi yêu cầu kết nối bảo mật đến Server + SSL/TLS sử dụng chứng chỉ số công khai (public key certificate) để máy khách xác thực danh tính của Server và Client(nếu cần).Server gửi chứng chỉ cho Client, Client kiểm tra chứng chỉ này để đảm bảo rằng nó đến từ một CA (Certificate Authority) đáng tin cậy
+ Trong một số trường hợp, Server có thể yêu cầu Client gửi chứng chỉ của mình
để xác thực
- Đàm phán
+ Client kiểm tra tính hợp lệ của chứng chỉ và đàm phán
+ Client và Server thương lượng các thông số bảo mật, bao gồm cipher suites (tập hợp các thuật toán mã hóa và xác thực ứng dụng) sẽ sử dụng trong phiên làm việc
Trang 102 Giao thức handshake
- Sau khi các tham số bảo mật đã được đàm phán , giao thức Handshake bắt đầu
- Trong giao thức này, Server và Client thực hiện việc trao đổi thông điệp để thỏa thuận về các tham số mã hóa và các xác thực sử dụng trong kết nối bảo mật
- Các bước trong giao thức Handshake bao gồm:
+ Client gửi một thông điệp "Client Hello" chứa thông tin về phiên bản TLS, danh sách cipher suites mà nó hỗ trợ, và một số ngẫu nhiên (random)
+ Server phản hồi với thông điệp "Server Hello", chọn phiên bản TLS, cipher suite, và cung cấp một số ngẫu nhiên khác
+ Server gửi chứng chỉ của mình cho client để xác thực
+ Server và client trao đổi thông tin cần thiết để tạo ra khóa phiên, thường thông qua các phương pháp như Diffie-Hellman hoặc RSA
+ Cả hai bên gửi thông điệp "Finished" để xác nhận rằng Handshake đã hoàn tất
và sẵn sàng để mã hóa dữ liệu
+ Hoàn tất giao thức Handshake
3 Quá trình giải mã và mã hóa
- Tạo Khóa Phiên:
+ Sau khi handshake hoàn tất, client và server sẽ tạo ra một khóa phiên (session key) từ các số ngẫu nhiên đã trao đổi trong quá trình handshake
+ Dữ liệu truyền qua sẽ được mã hóa và giải mã để đảm bảo tính bảo mật
- Mã hóa: Tất cả dữ liệu từ tầng ứng dụng(được chia thành các record nhỏ hơn) gửi qua lại sẽ được mã hóa bằng khóa phiên, sử dụng các thuật toán như AES hoặc ChaCha20
- Giải mã: Khi nhận dữ liệu, bên nhận sẽ sử dụng khóa phiên để giải mã thông tin, đảm bảo rằng chỉ bên nhận mới có thể đọc được dữ liệu
4 Xác thực và Xác nhận
- Xác thực: Quá trình xác thực diễn ra trong Handshake, nơi Client và Server xác thực lẫn nhau thông qua chứng chỉ số
- Xác nhận:
+ Sau khi dữ liệu được gửi đi, cả hai bên sử dụng hàm băm để tạo ra một giá trị xác nhận (MAC - Message Authentication Code)
+ Các mã MAC sẽ được tính toán và kiểm tra cả hai bên để đảm bảo tính toàn vẹn của dữ liệu, xác nhận rằng dữ liệu không bị thay đổi trong quá trình truyền tải và không bị tấn công từ bên thứ ba
5 Quá trình kết thúc
Trang 11Khi phiên làm việc kết thúc, các bước sau được thực hiện:
- Client và Server gửi thông điệp "Close Notify" để thông báo rằng họ sẽ ngừng gửi
dữ liệu
- Sau khi nhận thông điệp kết thúc, cả hai bên giải phóng các tài nguyên liên quan, bao gồm khóa phiên và các thông tin bảo mật khác
IV Ứng dụng
1 Bảo mật website (HTTPS)
- HTTPS là việc kết hợp giữa HTTP và giao thức bảo mật SSL/TLS để tạo ra một
kết nối an toàn
- Khi sử dụng HTTPS, trình duyệt và máy chủ web thiết lập một kênh truyền mã hóa thông qua SSL/TLS Quy trình này bao gồm các bước sau:
+ Xác thực máy chủ: Trình duyệt kiểm tra tính hợp lệ của chứng chỉ số từ máy
chủ, đảm bảo rằng nó đến từ một nguồn tin cậy
+ Thiết lập kết nối an toàn: Trình duyệt và máy chủ đàm phán và tạo ra một
khóa mã hóa chung để bảo mật thông tin truyền tải
+ Mã hóa dữ liệu: Tất cả dữ liệu trao đổi giữa hai bên được mã hóa, giúp bảo vệ
thông tin khỏi các hành vi nghe lén hoặc can thiệp
+ Xác thực người dùng: Trong một số trường hợp, người dùng có thể được yêu
cầu xác thực danh tính thông qua các phương thức như mật khẩu, chứng chỉ số hoặc xác thực hai yếu tố
2 Bảo mật email
- SSL/TLS được áp dụng để bảo vệ việc trao đổi và truyền dữ liệu qua các
giao thức email như POP3, IMAP, và SMTP
- Khi tích hợp SSL/TLS vào các giao thức này, quy trình bảo mật sẽ diễn ra như sau:
+ Thiết lập kết nối an toàn: Máy khách và máy chủ email tạo một kênh bảo mật
để truyền dữ liệu
+ Xác thực máy chủ: Máy chủ email cung cấp chứng chỉ để xác minh danh tính
và độ tin cậy của nó
+ Mã hóa dữ liệu: Tất cả các thông tin email được mã hóa để ngăn chặn việc
truy cập trái phép
+ Xác thực người dùng (nếu cần): Người dùng có thể được yêu cầu cung cấp
thông tin đăng nhập hoặc các phương thức xác thực khác nhằm đảm bảo an toàn cho tài khoản email
Trang 123 Truyền tệp tin an toàn
- SSL/TLS được sử dụng để bảo mật việc truyền tệp tin qua mạng trong
các ứng dụng như FTPS (FTP over SSL/TLS) và SFTP (SSH File
Transfer Protocol)
- FTPS là một biến thể của giao thức truyền tệp tin (FTP) truyền thống,
được mở rộng để sử dụng SSL/TLS để bảo mật kênh truyền dữ liệu Khi
sử dụng FTPS, quá trình bảo mật diễn ra như sau:
+ Thiết lập kết nối an toàn: Một kênh bảo mật được thiết lập giữa máy chủ và
máy khách
+ Mã hóa dữ liệu: Tất cả dữ liệu tệp tin được mã hóa trong quá trình truyền tải
để tránh truy cập trái phép
+ Xác thực người dùng (nếu cần thiết): Có thể yêu cầu người dùng cung cấp
thông tin đăng nhập để đảm bảo danh tính và an toàn
SFTP , tuy không phải là một biến thể của FTP, là một giao thức truyền tệp tin độc lập
sử dụng giao thức SSH (Secure Shell) để đảm bảo bảo mật Tương tự FTPS, SFTP sử dụng SSL/TLS để mã hóa dữ liệu trong quá trình truyền Quá trình bảo mật của SFTP diễn ra tương tự như FTPS
4 Bảo mật trong truyền dữ liệu tương tác
- SSL/TLS đảm bảo an toàn cho việc truyền dữ liệu tương tác qua mạng, như trong các hoạt động truyền tải trực tuyến hoặc trò chuyện trực tuyến
- Quá trình bảo mật của truyền dữ liệu trực tuyến:
+ Thiết lập kết nối an toàn: Máy khách và máy chủ tạo kênh truyền bảo mật + Mã hóa dữ liệu: Dữ liệu được mã hóa để bảo vệ thông tin khi truyền tải.
+ Xác thực máy chủ (tùy chọn): Máy chủ có thể được xác thực để đảm bảo tính
hợp pháp
- Quá trình bảo mật của trò truyện trực tuyến:
+ Thiết lập kết nối bảo mật: Tạo một kênh an toàn giữa các bên tham gia trò
chuyện
+ Mã hóa dữ liệu: Tin nhắn được mã hóa để ngăn chặn truy cập trái phép.
+ Xác thực người dùng (tùy chọn): Người dùng có thể cần xác thực để bảo mật
danh tính
- Các khía cạnh quan trọng của truyền dữ liệu trong ứng dụng máy khách – máy