SSH là gì? Secure Shell (SSH) là một giao thức mật mã mạng cho phép giao tiếp an toàn qua một mạng không an toàn. Giao thức này được phát triển để thay thế các giao thức cũ không an toàn, tăng tính bảo mật và quyền riêng tư trên tất cả các hệ điều hành.
Tham gia kênh Telegram của AnonyViet 👉 Link 👈 |
SSH là gì?
SSH là viết tắt của Secure Shell và còn được gọi là Secure Socket Shell.
SSH là một giao thức mạng kết nối an toàn. Giao thức này chủ yếu được sử dụng bởi các quản trị viên mạng để kết nối với các thiết bị từ xa một cách an toàn, nhưng SSH cũng có một loạt các chức năng chung.
Trước khi SSH được phát triển, người dùng và quản trị viên thường sử dụng các giao thức mạng không an toàn, chẳng hạn như Telnet, để giao tiếp với các thiết bị từ xa. Các giao thức hiện đã lỗi thời này gửi thông tin quan trọng như mật khẩu và thông tin đăng nhập ở dạng văn bản thuần (plaintext), khiến chúng trở thành mục tiêu dễ bị tấn công.
SSH thường giao tiếp qua port 22.
Sự khác biệt giữa SSH1 và SSH2
Có hai phiên bản SSH. Mình nói “hai” vì giữa hai phiên bản đó, đã có rất nhiều bổ sung và cập nhật từ SSH1 đến SSH2.
Như bạn đoán, SSH2 là giao thức an toàn hơn. Nó cung cấp khả năng bảo vệ tốt hơn chống lại những kẻ tấn công và nghe trộm, hỗ trợ các thuật toán mã hóa mạnh hơn và tạo ra hàng đống cải tiến chung so với giao thức SSH ban đầu.
OpenSSH là gì?
OpenSSH là một phiên bản mã nguồn mở được sử dụng rộng rãi của SSH. Phiên bản miễn phí ban đầu của SSH được phát triển bởi Tatu Ylönen. Các phiên bản sau này của Ylönen là độc quyền, có nghĩa là chúng ta phải tốn tiền để mua giấy phép và sử dụng, và bạn không thể thực hiện các thay đổi trái phép đối với giao thức này.
Do đó, một nhóm các nhà phát triển đã tách phiên bản miễn phí ban đầu của SSH ra và đặt tên cho nó là OpenSSH, hiện được phát triển như một phần của OpenBSD (một hệ điều hành mã nguồn mở). Tất cả các hệ điều hành chính, chẳng hạn như Windows, macOS và nhiều bản phân phối Linux, đều hỗ trợ OpenSSH.
SSH hoạt động như thế nào?
Để hiểu cách thức hoạt động của SSH, bạn cần hiểu hai điều.
Đầu tiên, shell là gì? Thứ hai, khóa công khai (public-key) hoạt động như thế nào? Hãy tìm hiểu xem thực chất shell là gì trước khi xem xét sâu hơn về các chi tiết của kết nối SSH.
Shell là gì?
Shell là một phần mềm cho phép bạn giao tiếp với hệ điều hành đang lưu trữ nó. Thông thường, bạn sử dụng các lệnh để tương tác với shell, mặc dù vẫn có tồn tại các giao diện người dùng đồ họa (GUI).
Một điều quan trọng nữa là bạn không cần phải ngồi trước máy tính để sử dụng shell. Bạn có thể vận hành một shell từ xa qua kết nối mạng bằng cách sử dụng SSH.
Public-key là gì?
Trong máy tính hiện đại, có hai kiểu mã hóa chính:
- Thuật toán đối xứng: Sử dụng cùng một khóa cho cả mã hóa và giải mã. Cả hai bên phải đồng ý về khóa của thuật toán trước khi bắt đầu giao tiếp.
- Thuật toán không đối xứng: Sử dụng hai khóa khác nhau: khóa công khai (public key) và khóa cá nhân (private key). Điều này cho phép việc mã hóa trở nên an toàn hơn khi giao tiếp mà không cần phải thiết lập thuật toán trước.
SSH là một loại mật mã khóa công khai (public-key cryptography), sử dụng cả hai loại mã hóa trên để tạo kết nối an toàn trong mô hình client-server. Khi client cố gắng tạo kết nối với server, mỗi bên sẽ giao tiếp thông qua các giao thức mã hóa riêng biệt.
Sau khi giải quyết một giao thức mã hóa phù hợp, client và server sử dụng Thuật toán trao đổi khóa Diffie-Hellman để đi đến khóa mã hóa dùng chung như một phần của thuật toán đối xứng. Khóa mã hóa này vẫn là một bí mật trong toàn bộ kết nối và được sử dụng để mã hóa mọi thông tin liên lạc giữa hai bên.
Vậy, tính năng mã hóa bất đối xứng ở đâu?
Trong mật mã khóa công khai, bạn có hai khóa: public key và private key. Bạn có thể gửi public key cho người khác, và người được bạn gửi public key chỉ biết private key. Cùng với nhau, chúng tạo thành một cặp.
Trước khi quá trình trao đổi khóa đối xứng diễn ra và kênh liên lạc an toàn được thiết lập, SSH sử dụng mã hóa bất đối xứng để tạo ra một cặp khóa tạm thời. Client và server trao đổi public key, xác thực lẫn nhau trước khi quá trình tạo khóa đối xứng bắt đầu.
SSH sử dụng thuật toán mã hóa nào?
Vì SSH sử dụng mã hóa đối xứng để bảo mật kết nối của bạn, nên bạn có thể định cấu hình SSH để sử dụng nhiều thuật toán mã hóa đối xứng khác nhau như AES, Blowfish, Twofish, Salsa20 / ChaCha20, 3DES, IDEA,….
SSH có giống SSL/TLS không?
Mặc dù trước đây cả SSH và SSL/TLS đều cung cấp bảo mật cho giao thức mạng không an toàn, nhưng SSH và SSL/TLS không giống nhau.
Secure Sockets Layer (SSL) và người kế nhiệm của nó, Transport Layer Securit (TLS), cung cấp một đường hầm giao tiếp được mã hóa. Bạn sử dụng TLS hàng ngày khi gửi email hoặc duyệt web. SSL và TLS là các giao thức lớp ứng dụng. Trong các mạng truyền thông internet, lớp ứng dụng chuẩn hóa thông tin liên lạc cho các dịch vụ người dùng cuối.
Trong khi cả SSL/TLS và SSH đều cung cấp khả năng mã hóa, bản thân các giao thức mạng được thiết kế cho những mục đích khác nhau. SSL/TLS được thiết kế để bảo vệ kết nối dữ liệu của bạn, trong khi SSH được thiết kế để cho phép bạn truy cập máy tính từ xa an toàn và thực thi lệnh.
Tuy nhiên, bạn có thể sử dụng SSH kết hợp với SSL để truyền tệp, sử dụng Giao thức truyền tệp SSH (SFTP) hoặc Giao thức sao chép an toàn (SCP). Tình cờ thay, bạn cũng có thể sử dụng SCP để sao chép dữ liệu từ PC của mình sang Raspberry Pi.
SSH có giống VPN không?
Giống như câu hỏi trên, Mạng riêng ảo (VPN) cũng cung cấp một đường hầm được mã hóa cho giao tiếp của bạn. Nhưng khi SSH cung cấp kết nối an toàn trong cấu hình client-server tới một máy tính cụ thể, thì VPN cung cấp kết nối an toàn giữa máy tính của bạn và máy chủ VPN.
Bạn không tthể hực hiện các lệnh từ xa trên máy chủ VPN. Thay vào đó, khi bạn bật VPN, việc truyền dữ liệu đến và đi từ máy tính của bạn sẽ đi qua đường hầm được mã hóa tới máy chủ VPN trước khi đi ra mạng internet.
Vì vậy, SSH cho phép kết nối an toàn với một máy tính để thực hiện các lệnh từ xa, trong khi VPN cung cấp đường hầm được mã hóa dữ liệu giữa máy tính của bạn và máy chủ VPN.
Quá trình này có thể ẩn vị trí máy tính của bạn và bổ sung một số bảo mật khi sử dụng kết nối internet. Bạn có thể đọc bài viết này để hiểm rõ hơn về cách hoạt động của VPN.
SSH có sẵn trên nền tảng nào?
Miễn là hệ điều hành bạn đang sử dụng có ứng dụng SSH client hoặc chức năng SSH tích hợp, thì giao thức mạng an toàn này sẽ có sẵn cho bạn.