SSH là gì? Những hiểu biết cơ bản về SSH

Nguyễn Hữu Dũng 02/10/2023

 

Hiện nay để thuận tiện cho các công việc trao đổi thông tin và làm việc từ xa giữa máy chủ và các máy khách một cách an toàn , người ta sử dụng các giao thức truyền dữ liệu không mã hóa qua mạng như SSH. Vậy SSH là gì? Hãy cùng Bizfly khám phá “tất tần tật” về SSH nhé.

 
 

SSH là gì?

SSH (Secure Shell) là một giao thức mạng được sử dụng để thiết lập kết nối bảo mật máy chủ, giúp quản trị dữ liệu thông qua Internet hoặc mạng nội bộ...

SSH cũng có thể được sử dụng để tạo các đường hầm an toàn (SSH Tunneling) cho các giao thức ứng dụng khác, chẳng hạn như để chạy các phiên đồ họa của Hệ thống X Window một cách an toàn từ xa. 

Khi nào nên sử dụng SSH

SSH được vận hành theo mặc định với mọi máy chủ Unix, Linux và Mac. Kết nối SSH đã được sử dụng trong các trường hợp bảo mật nhiều loại liên lạc khác nhau giữa máy cục bộ và máy chủ từ xa, bao gồm truy cập từ xa an toàn vào tài nguyên, thực thi lệnh từ xa, phân phối bản vá phần mềm và cập nhật cũng như các tác vụ quản trị hoặc quản lý khác:

  • Quản trị từ xa: Để quản lý máy chủ hoặc hệ thống từ xa, bao gồm cài đặt phần mềm, kiểm tra lỗi và tương tác với hệ thống.
  • Truy cập tập tin và dữ liệu từ xa: Để truy cập và quản lý tập tin, sao lưu dữ liệu, hoặc di chuyển dữ liệu an toàn giữa máy tính và máy chủ từ xa.
  • Xác thực và Điều khiển truy cập: Để xác thực an toàn và kiểm soát quyền truy cập vào máy chủ hoặc hệ thống, đảm bảo tính bảo mật.
  • Kết nối an toàn qua mạng công cộng: Để kết nối vào hệ thống của mình một cách an toàn từ mạng không đáng tin cậy hoặc khi ở nơi công cộng, để đảm bảo thông tin không bị đánh cắp.
  • Quản lý hệ thống tự động: Để thực hiện các tác vụ tự động hóa, scripting, và quản lý hệ thống mà không cần can thiệp của người dùng.

Kết nối an toàn qua mạng công cộng với SSH

Các chức năng chính của SSH

Nếu không sử dụng SSH hay sử dụng giao thức không bảo mật có thể dẫn đến việc tiết lộ thông tin nhạy cảm, xâm nhập vào hệ thống, và sự tổn hại đối với tính bảo mật và quản lý của hệ thống và dữ liệu. Chính vì vậy việc sử dụng SSH là hoàn toàn cần thiết cho bất kỳ cá nhân nào, bởi vì chức năng của nó trong bảo mật và an toàn trong việc truy cập và quản lý từ xa:

  • Xác thực an toàn: SSH cung cấp các phương thức xác thực mạnh mẽ như xác thực bằng mật khẩu, hoặc bằng khóa SSH (public key)
  • Quản lý từ xa và truyền tải các dữ liệu an toàn
  • Tunneling (Kết nối Tunnel): SSH cho phép bạn tạo các kết nối túnel an toàn, cho phép truyền tải các dịch vụ và ứng dụng qua mạng không an toàn một cách bảo mật.
  • Bảo vệ trước cuộc tấn công Brute Force: SSH có khả năng giới hạn số lần thử đăng nhập sai mật khẩu để bảo vệ trước cuộc tấn công Brute Force.
  • Ghi nhật ký (Logging): SSH ghi lại các hoạt động kết nối, giúp bạn theo dõi và kiểm tra các hoạt động truy cập vào hệ thống.
  • Phân quyền (Access Control): SSH cho phép bạn thiết lập các quyền truy cập cụ thể cho người dùng hoặc nhóm người dùng trên máy chủ, điều này giúp kiểm soát ai có quyền truy cập vào hệ thống và làm gì khi họ truy cập.

Ngoài ra SSH hỗ trợ hoàn hảo để ứng dụng vào hệ thống đăng nhập một lần. Theo đó, người dùng sẽ đăng nhập nhanh chóng, di chuyển qua lại giữa tài khoản mà không cần tốn thời gian nhập mật khẩu.

Cơ chế hoạt động của ssh

    Ssh hoạt động ntn?

Để hiểu rõ hơn về SSH, bạn cần phải nắm được cơ chế hoạt động của giao thức này. Giao thức SSH hoạt động theo mô hình máy khách-máy chủ, có nghĩa là kết nối được thiết lập bởi máy khách SSH (SSH Client) kết nối với máy chủ SSH (SSH Server). Máy khách SSH điều khiển quá trình thiết lập kết nối và sử dụng mật mã khóa công khai để xác minh danh tính của máy chủ SSH. Sau giai đoạn thiết lập, giao thức SSH sử dụng thuật toán băm và mã hóa đối xứng mạnh để đảm bảo quyền riêng tư và tính toàn vẹn của dữ liệu được trao đổi giữa máy khách và máy chủ. 

Hình bên dưới trình bày quy trình thiết lập đơn giản hóa của kết nối shell an toàn.


Cơ chế hoạt động của SSH   

 Cách SSH xác thực người dùng

Một cách xác thực người dùng mạnh mẽ và an toàn so với mật khẩu chính là SSH key. 

Phương pháp xác thực khóa công khai ( public key authentication) chủ yếu được sử dụng để tự động hóa và đôi khi được quản trị viên hệ thống sử dụng để đăng nhập một lần. Hiện nay nó đã được sử dụng rộng rãi hơn. Cách mà nó vận hành chính là có một cặp khóa mật mã (cryptographic key pair) - khóa chung (public key) và khóa riêng ( private key) - định hình cho cấu hình khóa chung trên máy chủ để cấp quyền truy cập và cấp cho bất kỳ ai có bản sao của khóa riêng tư quyền truy cập vào máy chủ. Các khóa được sử dụng để xác thực được gọi là SSH keys .

Hiểu về các kỹ thuật mã hóa của SSH

    Symmetric Encryption

Trong SSH, mã hóa đối xứng (Symmetric Encryption)  dùng cùng một khóa để mã hóa và giải mã dữ liệu. Các thuật toán như AES (Advanced Encryption Standard) và 3DES (Triple Data Encryption Standard) được sử dụng trong việc bảo vệ tính bí mật của dữ liệu truyền tải qua mạng.

 Mã hóa đối xứng (Symmetric Encryption)    

Asymmetric Encryption

SSH sử dụng mã hóa bất đối xứng (Asymmetric Encryption)  để xác thực và an toàn khóa truyền tải. Cặp khóa SSH, bao gồm khóa riêng tư và khóa công khai, sử dụng các thuật toán như RSA hoặc DSA. Khóa riêng tư được bảo mật trên máy tính người dùng, trong khi khóa công khai được lưu trữ trên máy chủ SSH.

    Mã hóa bất đối xứng (Asymmetric Encryption)

Hashing

Hashing được sử dụng để đảm bảo tính toàn vẹn của dữ liệu truyền tải và xác thực. SSH sử dụng các thuật toán hashing như SHA-1 (Secure Hash Algorithm 1) hoặc SHA-256 để tạo ra giá trị băm cho các thông điệp và kiểm tra tính toàn vẹn của chúng.

 

Hashing

 So sánh ssh, SSL/TLS và Telnet

Ngoài SSH, ngày nay trên thị trường có rất nhiều các loại giao thức ứng dụng xác thực giữa các bên như SSL/TLS hoặc Telnet. Vậy nên chọn giao thức nào? Dưới đây là so sánh tổng quan nhất về 3 loại giao thức này.

 

Thuộc tính

SSH

SSL/TLS

Telnet

Mục đích sử dụng

Truy cập từ xa đến hệ thống và máy chủ an toàn

Bảo vệ truyền tải dữ liệu trên Internet

Truy cập từ xa đến máy chủ (không an toàn)

Bảo mật

Mã hóa mạnh mẽ, xác thực an toàn

Mã hóa mạnh mẽ, xác thực máy chủ

Không mã hóa, không an toàn

Xác thực người dùng

Hỗ trợ nhiều phương thức xác thực, bao gồm khóa SSH

Các chứng chỉ SSL/TLS

Mật khẩu (tuy nhiên không an toàn)

Ưu điểm

An toàn, phù hợp cho việc quản lý từ xa trên Unix/Linux

Bảo vệ thông tin cá nhân và giao dịch trực tuyến

Đơn giản và dễ sử dụng

Nhược điểm

Khó cấu hình cho người mới, không phù hợp cho môi trường không cần tính bảo mật cao

Yêu cầu chứng chỉ SSL/TLS cho máy chủ

Không an toàn, dễ bị tấn công

 

Nhìn chung, SSH có khả năng bảo mật tốt nhất và sở hữu khả năng liên kết trạm máy và máy khách hiệu quả nhất trong 3 giao thức. Dù vậy SSH vẫn còn tồn tại những lỗ hổng về bảo mật và nếu không được vá kịp thời sẽ bị kẻ xấu lại dụng. Vì vậy, hãy thường xuyên cập nhật bản mới nhất của SSH để không bỏ lỡ các bản vá bảo mật quan trọng nhé.

 

Chia sẻ bài viết

Nhận ngay tin tức mới nhất từ Bizfly

Nhận ngay tin tức mới nhất từ Bizfly