Tổng hợp từ A-Z cho người mới bắt đầu về SSH

1. SSH là gì?

SSH là giao thức kết nối giữa máy khách và máy chủ điều khiển từ xa

SSH (Secure Shell) là giao thức kết nối giữa máy khách và máy chủ điều khiển từ xa. Nó cho phép người sử dụng chỉnh sửa và kiểm soát server từ xa nhưng vẫn đảm bảo an toàn. Server sẽ không bao giờ bị mất thông tin được truyền đi giữa máy chủ và máy tính nếu sử dụng SSH để kết nối VPS. Cả 2 giao thức SSL và SSH đều mã hoá đường truyền dữ liệu. Người dùng có khả năng sử dụng để chuyển tập tin, chuyển tiếp khác kết nối TCP/IP, chạy chương trình bằng đường truyền đã được bảo mật. 

Hiện tại, những công cụ SSH phổ biến là: PuTTY, Bitvise SSH, OpenSSH.

2. So sánh SSL/TLS và SSH

Giao thức SSH

Giống nhau: Đều đảm bảo bảo mật dữ liệu giao tiếp trong việc vận chuyển dữ liệu và xác thực các bên.

Khác nhau:

  • Giao thức SSH dựa vào một mã nhị phân đơn giản. Nó được dùng như một lớp an toàn cho SCP và SFTP để chuyển tập tin, truy cập trong môi trường bảo mật, và chuyển tiếp các kết nối cho những ứng dụng khác.
  • SSH như một phiên bản đơn giản của TLS. Do nó độc lập có chủ ý từ chứng chỉ X.509 (là tiêu chí giao tiếp chuẩn, bảo đảm bảo mật giữa máy chủ, máy khách và đường truyền). SSH được phát triển độc lập qua chứng chỉ X.509. Chính vì thế SSH có thể kết nối máy khách và máy trạm một cách đáng tin cậy. Còn giao thức TLS thì kém bảo mật hơn. 
  • SSL/TLS có xu hướng dùng giấy chức nhận X.509 dựa trên bảng mã ASN.1. Nó được sử dụng một lớp bảo mật cho SMTP. HTTP và truyền tải tập tin qua FTP. 

    Nếu bạn chưa biết các lệnh cơ bản trong SSH là gì, hãy tham khảo bài viết sau: Các lệnh cơ bản của SSH

3. Độ an toàn bảo mật của SSH

Độ an toàn bảo mật của SSH

SSH2 là SSH phiên bản 2, cung cấp các dịch vụ máy chủ như: 

  • Xác thực khách hàng
  • Mã hoá và xác thực
  • Xác minh dữ liệu toàn vẹn

Máy chủ xác thực được thực hiện bằng ECDSA, DSA hoặc RSA thuật toán công khai mã hoá. Vài thuật toán đã được đưa ra mà mỗi sản phẩm SSH có thể làm trong khoảng thời gian nhất định để xác minh toàn vẹn dữ liệu và mã hoá. Dùng khoá công khai, mật khẩu, chỉ một tài khoản được phép đăng nhập trong một thời điểm và các phương pháp khác để xác thực khách hàng. 

Giao thức SSH2 có các đặc điểm kỹ thuật đã được thông qua bởi một số người thực hiện công khai, độc lập. Khi sử dụng và thực hiện đúng, các giao thức được cho là an toàn. Nó chống lại tất cả những cuộc tấn công mật mã được biết đến.

SSH hoạt động với 3 bước cơ bản: định danh host, mã hoáchứng thực.

Bước 1: Định danh host là máy khách-máy tính điều khiển. Xác minh định danh của hệ thống tham gia SSH

Quá trình trao đổi khoá được thực hiện thông qua việc định danh host. Mỗi máy điều khiển SSH có duy nhất một khoá định danh. Có 2 phần ở khoá là khoá công cộng và khoá riêng tư. Khoá công cộng được dùng bằng khoá công khai. Chỉ có thể giải mã bằng khoá riêng. Nếu ở máy chủ có bất cứ thay đổi nào như: hệ điều hành thay đổi, thay đổi của chương trình SSH, thay đổi ở khoá định danh.

Để đăng nhập được vào máy chủ, người dùng sử dụng SSH. Máy chủ cũng được thông báo về sự thay đổi này. Máy chủ sẽ gửi khoá công cộng của máy chủ khi một phiên làm việc SSH của hai hệ thống bắt đầu. Mã hoá khoá và một khoá phiên ngẫu nhiên được tạo ra từ máy khách bằng khoá công cộng của máy chủ. Sau đó gửi cho máy chủ. Bằng khoá riêng của mình, máy chủ sẽ giải mã và sẽ nhận được khoá phiên. Khoá phiên này đồng thời là khoá sử dụng với mục đích trao đổi dữ liệu giữa hai máy. Quá trình này cũng được coi như là các bước nhận diện máy khách và máy chủ. Kiểu mã hoá an toàn tập tin trên đường truyền này của SSH giống với cơ chế của SSL.

Bước 2: Mã hoá dữ liệu

Thiết lập kênh làm việc mã hoá

Quá trình trao đổi dữ liệu hoạt động thông qua giải mã hoặc mã hoá làm bước trung gian. Đây đồng nghĩa với việc dữ liệu nhận và gửi trên đường truyền đều được giải mã/ mã hoá theo thoả thuận trước đây giữa máy khách và máy chủ. Máy khách thường được quyết định lựa chọn các cơ chế mã hoá. Ba cơ chế mã hoá thông dụng là: IDEA, Blowfish và 3DES. Máy khách và máy chủ sẽ trao đổi mã hoá cho nhau khi chọn cơ chế mã hoá. Việc trao đổi khoá mã hoá này luôn được bảo mật thông qua định danh kín của các máy. Thông tin trên đường truyền trao đổi khó có thể bị đánh cắp và giải mã. Vì những kẻ tấn công sẽ không biết khoá mã hoá. Sau đây là các thuật toán mã hoá:

  • Blowfish: Bảo mật và tốc độ nhanh. Tuy nhiên, các phương pháp mã hoá còn hạn chế nhưng vẫn đang được cải tiến
  • IDEA:  phương pháp này nhanh hơn 3DES, nhưng hoạt động lại chậm hơn Blowfih và Arcfour
  • 3DES: mặc định là phương pháp mã hoá cho SSH
  • Arcfour: nhanh, có xảy ra vấn đề bảo mật

Bước 3: Giải mã và chứng thực

Xác minh quyền đăng nhập hệ thống của người dùng

Ở 3 bước hoạt động của SSH thì đây là bước cuối cùng. Tại đây, kênh trao đổi đã được bảo mật. Lượt truy cập và định danh của người dùng được cung cấp theo nhiều cách khác khau. Ví dụ kiểu chứng thực rhosts được dùng nhưng không có sẵn, chỉ có mục đích kiểm tra định danh của máy khách được liệt kê theo địa chỉ IP và DNS (file rhost). Định danh người dùng qua xác thực mật khẩu là cách được nhiều người dùng. Bên cạnh đó còn có cách khác như xác thực RSA, dùng ssh-keygen và ssh-agent để xác thực những cặp khoá. 

4. SSH hoạt động như thế nào?

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

Đối với người dùng dùng MAC và Linux, mở terminal và thực hiện như sau:

Lệnh SSH có 3 phần: ssh {user}@{host} 

SSH nghĩa là người dùng muốn mở kết nối được mã hoá Secure Shell Connection.

  • {user} là tài khoản người dùng được truy cập. Ví dụ, muốn truy cập user root, người dùng chỉ thay root ở đây. User root là quản trị hệ thống người dùng với đầy đủ quyền để chỉnh sửa mọi thứ trên hệ thống
  • {host} đại diện cho máy tính muốn người dùng truy cập. Có thể là một tên miền (www.tenmien.vn) hoặc một địa chỉ IP (8.8.4.4)

Sau khi Enter, hệ thống yêu cầu người dùng nhập password tương ứng cho tài khoản. Khi nhập password, nếu không có bất cứ dấu hiệu nào hiện lên màn hình tức là bạn đã nhập đúng mật khẩu và click enter. Sau đó tự động bạn vào được hệ thống -> đăng nhập hoàn tất.

3 kỹ thuật mã hoá khác nhau:

SSH có ưu điểm so với các giao thức cũ là khả năng truyền tải dữ liệu bảo mật giữa client và host cũng như khả năng mã hoá. Host đại diện cho sự kết nối giữa máy chủ từ xa client. Điều này nghĩa là máy tính của bạn truy cập được tới host. Để mã hoá qua SSH bạn sử dụng 3 kỹ thuật sau đây:

  1. Hashing
  2. Asymmetrical encryption
  3. Symmetrical encryption

4.1. Hashing 

Hashing một chiều là dạng mã hoá sử dụng trong Secure Shell Connections. Hash một chiều không được sinh ra để giải mã. Đây cũng là điểm khác biệt so với hai cách còn lại. Nó tạo ra một giá trị duy nhất với độ dài nhất định cho mỗi lần nhập dữ liệu mà không có cách nào để khai thác. Nhược điểm của nó là không quay lại để giải mã được.

4.2. Asymmetric Encryption

Để giải mã và mã hoá asymmetric encryption cần dùng 2 khoá khác nhau. Hai khoá này là public key và  private key. Cả 2 khóa này hình thành nên một cặp khoá là private-public key pair.

  • Private key phải luôn được bảo đảm an toàn
  • Public key là khoá sẽ được công khai với tất cả các bên liên quan. Public key không cho phép private key tính toán ra. Mặc dù nó có liên quan mật thiết tới private key. 

Sự liên quan này diễn ra rất phức tạp như: chỉ được giải mã bằng private key của chính máy đó và thư chỉ có thể được giải mã bằng private key. Sự liên quan một chiều này tức là public key không thể giải mã bất cứ thứ gì được mã hoá bằng private key hoặc không thể giải mã chính thư của nó sở hữu.

4.3. Symmetric Encryption

Symmetric Encryption

Symmetric Encryption là dạng mã hoá sử dụng secret key ở cả 2 chiều giải mã và mã hoá tin nhắn bằng cả client và host. Tức là ai nắm được khoá đều có thể giải mã tin nhắn trong quá trình truyền đi.

Symmetrical Encryption còn gọi là shared secret hoặc shared key encryption. Vì nó có một khoá được dùng, hoặc cặp khoá mà một khoá có thể được tính ra từ khoá kia. 

Người sử dụng mã hoá toàn bộ liên lạc trong phiên bản giao dịch SSH bằng cách sử dụng symmetric keys. Cả server và client tạo chung thành một key bí mật như là một phương thức thoả thuận. Key đó không được tiết lộ cho bên thứ 3. Quá trình tạo ra symmetric key được thực hiện bởi key exchange algorithm.

Bài viết trên DGsolution đã cung cấp cho bạn những thông tin đầy đủ nhất về SSH. Hi vọng với bài viết này, bạn sẽ hiểu hơn về SSH là gìso sánh giữa SSL/TLS và SSHđộ an toàn bảo mật SSH và cách hoạt động của SSH. Mong rằng bài viết trên sẽ giúp cho bạn hiểu thêm phần nào về ssh. 

Trả lời

Email của bạn sẽ không được hiển thị công khai.

0387 109 109
Chat Zalo