Back to Explore
 🔐 Tại sao HTTPS và SSH lại quan trọng? Đằng sau một kết nối an toàn là những gì?

🔐 Tại sao HTTPS và SSH lại quan trọng? Đằng sau một kết nối an toàn là những gì?

Khi mới học về mạng, nhiều người chỉ biết rằng HTTP dùng để truy cập website, còn SSH dùng để đăng nhập vào router hoặc server từ xa.

Website
Upvote this postSign in to upvote this article.

Khi mới học về mạng, nhiều người chỉ biết rằng HTTP dùng để truy cập website, còn SSH dùng để đăng nhập vào router hoặc server từ xa. Nhưng càng tìm hiểu sâu, mình mới nhận ra phía sau hai giao thức này là cả một hệ thống bảo mật được thiết kế rất chặt chẽ để đảm bảo dữ liệu không bị đánh cắp hoặc chỉnh sửa trong quá trình truyền trên Internet.
Dưới đây là những kiến thức mình tổng hợp được khi tìm hiểu về Advanced HTTP và SSH từ cuốn Network Programming and Automation Fundamentals.
HTTP và HTTPS khác nhau như thế nào?
HTTP (Hypertext Transfer Protocol) truyền dữ liệu dưới dạng plaintext, nghĩa là dữ liệu không được mã hóa.
Ví dụ, nếu bạn đăng nhập vào một website chỉ sử dụng HTTP, tên đăng nhập và mật khẩu có thể bị kẻ tấn công chặn và đọc được bằng các công cụ bắt gói tin như Wireshark nếu họ có quyền truy cập vào đường truyền.
HTTPS (Hypertext Transfer Protocol Secure) khắc phục vấn đề này bằng cách kết hợp HTTP với giao thức TLS (Transport Layer Security).
TLS cung cấp ba tính năng quan trọng:

Confidentiality (Tính bảo mật): dữ liệu được mã hóa nên người khác không thể đọc được.
Integrity (Tính toàn vẹn): dữ liệu không bị chỉnh sửa trong quá trình truyền.
Authenticity (Tính xác thực): xác minh rằng bạn đang kết nối đúng máy chủ chứ không phải một máy chủ giả mạo.

Ví dụ, khi truy cập vào website của ngân hàng, trình duyệt sẽ kiểm tra chứng chỉ số (Certificate) của máy chủ trước khi bắt đầu truyền dữ liệu. Nếu chứng chỉ không hợp lệ, trình duyệt sẽ cảnh báo người dùng ngay lập tức.
TLS 1.3 – Phiên bản bảo mật hiện đại
TLS 1.3 là phiên bản mới nhất của giao thức TLS và đã loại bỏ nhiều thuật toán cũ không còn an toàn.
Một ưu điểm rất lớn của TLS 1.3 là rút ngắn quá trình Handshake.
Thay vì phải trao đổi nhiều lần giữa Client và Server như trước, TLS 1.3 chỉ cần 1 Round Trip Time (1-RTT) để thiết lập kết nối an toàn.
Điều này giúp giảm đáng kể thời gian tải website, đặc biệt trên các kết nối có độ trễ cao.
Quá trình bắt tay cơ bản diễn ra như sau:

Client gửi ClientHello.
Server phản hồi ServerHello và gửi Certificate.
Hai bên thống nhất thuật toán mã hóa và tạo khóa phiên.
Sau đó toàn bộ dữ liệu được truyền dưới dạng đã mã hóa.

0-RTT – Tăng tốc nhưng có đánh đổi
TLS 1.3 còn hỗ trợ chế độ 0-RTT (Zero Round Trip Time).
Nếu Client đã từng kết nối với Server trước đó và có thông tin của phiên cũ, Client có thể gửi dữ liệu ngay trong gói ClientHello mà không cần chờ Server phản hồi.
Điều này giúp tăng tốc rất nhiều khi truy cập lại cùng một website.
Tuy nhiên, dữ liệu gửi sớm này không được bảo vệ hoàn toàn như dữ liệu sau khi Handshake kết thúc và có nguy cơ bị tấn công phát lại (Replay Attack), vì vậy chỉ nên dùng cho các yêu cầu không làm thay đổi dữ liệu.
Cipher Suite là gì?
Sau khi Client và Server kết nối, cả hai phải thống nhất cách mã hóa dữ liệu.
Tập hợp các thuật toán này được gọi là Cipher Suite.
Trong TLS 1.3 chỉ còn một số Cipher Suite hiện đại như:

TLS_AES_128_GCM_SHA256
TLS_AES_256_GCM_SHA384
TLS_CHACHA20_POLY1305_SHA256

Điểm đặc biệt là TLS 1.3 chỉ sử dụng các thuật toán AEAD (Authenticated Encryption with Associated Data).
AEAD vừa mã hóa dữ liệu vừa xác thực dữ liệu trong cùng một cơ chế, giúp đảm bảo dữ liệu không bị thay đổi trong quá trình truyền.
HTTP/2 – Nhanh hơn HTTP/1.1 như thế nào?
HTTP/1.1 đã hỗ trợ Persistent Connection, nghĩa là nhiều Request có thể sử dụng chung một kết nối TCP.
Tuy nhiên nó vẫn gặp hiện tượng Head-of-Line Blocking.
Ví dụ:
Client gửi ba yêu cầu:

Tải HTML
Tải CSS
Tải hình ảnh

Nếu phản hồi HTML bị chậm thì CSS và hình ảnh cũng phải chờ.
HTTP/2 cải thiện điều này bằng hai công nghệ quan trọng.
Binary Framing
Thay vì truyền dữ liệu dưới dạng văn bản như HTTP/1.1, HTTP/2 chia dữ liệu thành các Frame nhị phân giúp xử lý hiệu quả hơn.
Multiplexing
Nhiều Request và Response có thể chạy đồng thời trên cùng một kết nối TCP.
Điều này giúp trình duyệt tải nhiều tài nguyên cùng lúc thay vì phải chờ từng phản hồi hoàn thành.
Server Push
Một tính năng thú vị của HTTP/2 là Server Push.
Giả sử Client yêu cầu một file HTML.
Server biết rằng sau khi tải HTML, trình duyệt chắc chắn sẽ cần thêm file CSS và JavaScript.
Thay vì chờ Client gửi thêm Request, Server có thể chủ động gửi luôn các tài nguyên này thông qua khung PUSH_PROMISE.
Mặc dù ý tưởng rất hay nhưng hiện nay tính năng này ít được sử dụng do nhiều trình duyệt đã ngừng hỗ trợ.
Cookies – Giải quyết bài toán Stateless
HTTP là giao thức Stateless.
Điều này có nghĩa là mỗi Request đều độc lập và Server sẽ không nhớ những Request trước đó.
Ví dụ:
Bạn đăng nhập thành công.
Nếu không có cơ chế lưu trạng thái thì Request tiếp theo Server sẽ không biết bạn là ai.
Để giải quyết vấn đề này, Server sẽ gửi Header:
Set-Cookie
Trình duyệt lưu Cookie này và tự động gửi lại trong các Request sau.
Nhờ đó Server có thể nhận diện người dùng và duy trì phiên làm việc.
Basic Authentication và OAuth 2.0
Một trong những cách xác thực đơn giản nhất là Basic Authentication.
Client gửi Username và Password được mã hóa bằng Base64.
Tuy nhiên Base64 chỉ là mã hóa biểu diễn dữ liệu chứ không phải mã hóa bảo mật.
Nếu truyền qua HTTP, thông tin này vẫn có thể bị giải mã.
Vì vậy Basic Authentication gần như luôn được sử dụng cùng HTTPS.
OAuth 2.0 ra đời để giải quyết một vấn đề khác.
Thay vì đưa trực tiếp Username và Password cho ứng dụng bên thứ ba, người dùng chỉ cấp quyền thông qua Access Token.
Ví dụ:
Bạn đăng nhập vào một ứng dụng bằng tài khoản Google.
Ứng dụng không biết mật khẩu Google của bạn.
Google chỉ cấp cho ứng dụng một Access Token có thời hạn để truy cập những tài nguyên mà bạn cho phép.
Điều này giúp tăng tính bảo mật và dễ dàng thu hồi quyền truy cập khi cần.
SSH – Giao thức quản trị từ xa an toàn
SSH (Secure Shell) là giao thức cho phép quản trị viên điều khiển thiết bị từ xa thông qua một kết nối đã được mã hóa.
SSH mặc định sử dụng TCP Port 22.
Hầu hết Router, Switch, Firewall và Server Linux hiện nay đều sử dụng SSH thay cho Telnet vì Telnet truyền dữ liệu dưới dạng plaintext.
Kiến trúc của SSH2
SSH2 được chia thành ba lớp:
SSH Transport
Thiết lập kết nối bảo mật, xác thực Server và trao đổi khóa.
SSH User Authentication
Xác thực người dùng.
SSH Connection
Quản lý nhiều kênh logic trên cùng một kết nối SSH như Terminal, SFTP hoặc Port Forwarding.
Thiết kế này giúp SSH vừa linh hoạt vừa dễ mở rộng.
Quá trình thiết lập kết nối SSH
Một phiên SSH thông thường sẽ trải qua các bước:

Trao đổi phiên bản SSH.
Thương lượng thuật toán mã hóa và MAC.
Thực hiện trao đổi khóa Diffie-Hellman hoặc ECDH.
Xác thực Server.
Xác thực người dùng.
Gửi thông điệp SSH_MSG_NEWKEYS để bắt đầu sử dụng khóa mới.
Toàn bộ dữ liệu sau đó đều được mã hóa.

Public Key Authentication
Thay vì nhập mật khẩu mỗi lần đăng nhập, SSH có thể sử dụng cặp khóa:

Private Key lưu trên máy Client.
Public Key lưu trên Server trong file authorized_keys.

Khi kết nối, Server sẽ kiểm tra xem Client có thực sự sở hữu Private Key tương ứng hay không.
Nếu đúng, người dùng sẽ được phép đăng nhập mà không cần gửi mật khẩu qua mạng.
Đây là phương pháp xác thực an toàn và được sử dụng rộng rãi trong các hệ thống doanh nghiệp.
Cấu hình SSH trên Cisco IOS XE
Để kích hoạt SSH trên Router hoặc Switch Cisco cần:

Đặt hostname.
Cấu hình domain-name.
Tạo cặp khóa RSA.
Tạo tài khoản người dùng.
Bật SSH Version 2.
Cấu hình VTY chỉ cho phép SSH.

Sau khi cấu hình có thể kiểm tra bằng:

show ip ssh
show ssh

Khi cần phân tích lỗi có thể sử dụng:

debug ip ssh

SCP và SFTP
Cả SCP và SFTP đều hoạt động dựa trên SSH.
SCP được thiết kế để sao chép file nhanh chóng giữa hai thiết bị.
Ưu điểm là tốc độ cao và đơn giản.
Tuy nhiên SCP chỉ tập trung vào việc truyền file, không hỗ trợ quản lý thư mục hoặc tiếp tục truyền nếu kết nối bị gián đoạn.
Trong khi đó SFTP giống như một hệ thống quản lý file hoàn chỉnh.
Ngoài việc truyền file, SFTP còn cho phép tạo thư mục, đổi tên, xóa file, liệt kê nội dung thư mục và nhiều thao tác quản lý khác.
Kết luận
Khi học Networking, rất nhiều người chỉ dừng ở việc biết HTTP để truy cập website hay SSH để đăng nhập vào Router.
Tuy nhiên, khi tìm hiểu sâu hơn sẽ thấy rằng phía sau hai giao thức này là rất nhiều cơ chế quan trọng như TLS, Handshake, Cipher Suite, OAuth, Cookies, Multiplexing hay Public Key Authentication. Đây đều là những nền tảng không chỉ giúp hiểu cách Internet vận hành mà còn là kiến thức cần thiết cho các lĩnh vực như Network Automation, Cloud, DevOps và Cyber Security.
Nguồn tham khảo: Network Programming and Automation Fundamentals.

demo

Discussion (0)

You need to log in to post comments. Log In

No comments yet. Start the discussion!

Do you like this post?

Upvote to push this post higher on the community feed

Details

Posted by: @admin
Categories: Security
Date posted: 6 tháng 7, 2026