SSH là gì? Tất tần tật về SSH mà bạn cần phải biết
SSH là gì? SSH có bảo mật không? Nó hoạt động như thế nào? Đâu là thời điểm tốt nhất để sử dụng SSH?... Tất tần tật thông tin và kiến thức về SSH mà bạn cần trang bị cho mình đều có trong bài viết này. Cùng theo dõi tiếp nhé!
SSH là gì?
SSH là giao thức đăng nhập vào server từ xa, cho phép người dùng kiểm soát, chỉnh sửa và quản trị dữ liệu của server thông qua nền tảng Internet. SSH là viết tắt của Secure Socket Shell. SSH cũng giúp việc kết nối của mạng lưới máy chủ và máy khách an toàn, hiệu quả và bảo mật thông tin tốt hơn. Vậy cơ sở hoạt động của SSH là gì? Hãy cùng tìm hiểu nhé!
Tương tự SSL, SSH cũng có chức năng mã hóa dữ liệu đường truyền. Điều này phục vụ cho quá trình chuyền tập tin, chạy chương trình. SSH cũng chuyển tiếp kết nối TCP/IP qua liên kết an toàn…
Sử dụng SSH có bảo mật không?
Giao thức SSH cung cấp các dịch vụ của máy chủ như xác thực, mã hóa, xác minh tính toàn vẹn dữ liệu và xác thực khách hàng. Máy chủ được SSH xác thực thông qua việc thực hiện DSA, RSA hoặc ECDSA thuật toán mã khóa công khai.
Để xác minh mã hóa và toàn vẹn dữ liệu, một số thuật toán được cung cấp mà mỗi sản phẩm SSH có thể thực hiện trong một khoảng thời gian nhất định. Trong khi đó, xác thực khách hàng lại được SSH thực hiện bằng cách sử dụng mật khẩu, khóa công khai, chỉ 1 tài khoản login trên 1 thời diểm (single sign-on), và các phương pháp khác.
Đặc điểm kỹ thuật giao thức SSH2 được công khai và đã được xem xét bởi một số người thực hiện độc lập. Vì vậy, khi thực hiện đúng và sử dụng chúng, giao thức này hoàn toàn an toàn để bảo mật thông tin và chống lại hầu hết tất cả các cuộc tấn công mật mã.
Khi nào nên sử dụng SSH?
SSH hoạt động ở tầng thứ 4 trong mô hình TCP/IP. Nó cho phép tương tác giữa máy chủ và máy khách, sử dụng cơ chế mã hoá nhằm ngăn chặn các hiện tượng nghe trộm, đánh cắp thông tin trên đường truyền. Đây là điều mà các giao thức trước đây như telnet, rlogin không đáp ứng được. Bạn có thể tìm hiểu thêm về mô hình TCP/IP trong bài viết: “TCP/IP là gì?“.
TCP/IP viết tắt của Transmission Control Protocol (TCP) và Internet Protocol (IP) là giao thức cài đặt truyền thông, chồng giao thức mà hầu hết các mạng máy tính ngày nay đều sử dụng để kết nối. TCP/IP được đặt theo tên của 2 giao thức là giao thức điều khiển giao vận và giao thức liên mạng.
Vì vậy, bạn nên lựa chọn sử dụng SSH nếu muốn thiết lập một kết nối mạng được mã hóa và cung cấp môi trường an toàn cho người tiêu dùng. Các công cụ SSH phổ biến hiện nay có thể kể đến như PuTTY, OpenSSH,..
SSH hoạt động như thế nào?
Quy trình hoạt động của SSH có thể tóm gọn thông qua 3 bước đơn giản sau:
Bước 1: Định danh host – xác định định danh của hệ thống tham gia phiên làm việc SSH. Đơn giản hơn, đây là bước khởi tạo kết nối SSH. Kết nối này là một kênh giao tiếp bảo mật giữa server và client. Bước 2: Mã hoá dữ liệu – thiết lập kênh làm việc mã hoá. Sau khi Client xác định được định danh của Server 1 kết nối bảo mật đối xứng được hình thành giữa 2 bên. Bước 3: Chứng thực và giải mã – xác thực người sử dụng có quyền đăng nhập hệ thống. Kết nối này sẽ được sử dụng để Server xác thực Client.
Những ưu điểm của SSH
Lý do khiến nhiều người lựa chọn sử dụng giao thức này xuất phát từ những ưu điểm vượt trội của SSH so với các giao thức khác. SSH có khả năng mã hóa và truyền tải dữ liệu an toàn giữa mạng lưới host và client. Host đại diện cho máy chủ từ xa bạn muốn kết nối tới và client là máy tính của bạn dùng để truy cập tới host.
Lợi thế thứ hai là có nhiều cách khác nhau giúp việc mã hóa qua SSH được thực hiện hiệu quả và toàn vẹn như:
- Symmetrical encryption - Asymmetrical encryption - Hashing
Các kỹ thuật mã hóa SSH
Hãy cùng chúng tôi tìm hiểu chi tiết về 3 kỹ thuật mã hóa SSH:
- SSH Symmetrical Encryption - SSH Asymmetrical Encrytion - SSH Hashing
SSH Symmetrical Encryption
Symmetric encryption là một dạng mã hóa sử dụng secret key (chìa khóa bí mật) ở cả 2 chiều mã hóa và giải mã tin nhắn bởi cả host và client. Điều này có nghĩa là bất kỳ ai nắm được khóa đều có thể giải mã tin nhắn trong quá trình chuyền.
Nguyên tắc hoạt động của Symmetrical Encryption là cả client và server tạo chung một key bí mật và key đó không được tiết lộ cho bên thứ ba. Quá trình tạo symmetric key được thực hiện bởi key exchange algorithm. Key đó được dùng như chìa khóa mã hóa cho cả hai đầu kết nối.
Điều khiến cho thuật toán này an toàn là vì key không được truyền giữa client và host. Thay vào đó, cả 2 máy tính chia sẽ thông tin chung và sau đó sử dụng chúng để tính ra khóa bí mật. Vì vậy, kể cả có máy khác bắt được thông tin chung, nó cũng không thể tính ra key bí mật vì không biết được thuật toán tạo key.
SSH Asymmetrical Encrytion
Không giống với symmetrical encryption, asymmetrical encryption sử dụng 2 khóa khác nhau để mã hóa và giải mã. 2 khóa này được gọi là public key và private key. Cả 2 hình thành nên một cặp khóa là public-private key pair. Trong đó, khóa public sẽ được công khai cho tất cả các bên liên quan còn private key phải luôn luôn được đảm bảo an toàn.
Asymmetrical Encrytion chỉ được sử dụng trong quá trình trao đổi thuật toán của khóa của symmetric encryption. trước khi bắt đầu một phiên giao dịch an toàn. Sau khi kết nối symmetrict an toàn đã được thiết lập, server sử dụng public key của client để tạo và challenge và truyền nó tới client để chứng thực. Nếu client có thể giải mã tin nhắn, có nghĩa là nó đang giữ đúng private key cần thiết cho kết nối.
SSH Hashing
Hash một chiều khác với cả 2 phương thức mã hóa trên ở chỗ nó không được sinh ra để giải mã. Thay vào đó, 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 liệu mà không có hướng nào khác để khai thác.
Vì vậy, SSH sử dụng hashes để xác nhận tính xác thực của tin nhắn. Nó được thực hiện bởi HMACs. Việc này đảm bảo lệnh không bị giả mạo bởi bất kỳ phương thức nào.
Giai đoạn thiết lập kết nối của SSH như thế nào?
Có thể thấy, phương thức hoạt động của SSH có thể dễ dàng tóm gọn trong 3 bước. Ở phần này, hãy cùng chúng tôi tìm hiểu rõ hơn về các giai đoạn thiết lập kết nối của SSH.
Xác định host
Việc định danh host được thực hiện qua việc trao đổi khoá. Mỗi máy tính điều khiển SSH có một khoá định danh duy nhất. Chúng bao gồm hai thành phần: khoá riêng tư và khoá công cộng. Khoá công cộng được sử dụng khi cần trao đổi giữa các máy chủ. Trong khi khóa riêng tư thì được dùng để giải mã riêng.
Khi hai hệ thống bắt đầu một phiên làm việc SSH, máy chủ sẽ gửi khoá công cộng của nó cho máy khách. Máy khách sinh ra một khoá phiên ngẫu nhiên. Sau đó nó mã hoá khoá này bằng khoá công cộng của máy chủ. Cuối cùng nó được gửi lại cho máy chủ. Máy chủ sẽ giải mã khoá phiên này bằng khoá riêng của mình và nhận được khoá phiên. Quá trình này được xem như các bước nhận diện máy chủ và máy khách.
Mã hóa dữ liệu
Session Encryption Negotiation còn được gọi là “Mã hóa dữ liệu”. Sau khi hoàn tất việc thiết lập phiên làm việc bảo mật (trao đổi khoá, định danh, xác định host), quá trình trao đổi dữ liệu diễn ra thông qua một bước trung gian đó là mã hoá/giải mã, Ở bước này, dữ liệu gửi/nhận trên đường truyền được giải mã theo cơ chế đã thoả thuận trước. Các cơ chế mã hoá thường được chọn bao gồm: 3DES, IDEA, và Blowfish.
Chứng thực người dùng
Chứng thực người dùng là bước cuối cùng trong ba bước. Đây cũng đồng thời là bước đa dạng nhất vì có thể sử dụng nhiều cách khác nhau để chứng thực người dùng. Thông thường, người ta thường sử dụng các cách như chứng thực rhosts, chứng thực RSA, sử dụng ssh-keygen và ssh-agent,…
SSH và SSL/TLS có điểm gì giống và khác nhau?
Điểm chung giữa hai giao thức là nó được sử dụng để xác thực các bên. Chúng dùng để đảm bảo an toàn dữ liệu giao tiếp trong khi vận chuyển dữ liệu.
So với SSL/TLS, SSH có thể được coi là một phiên bản đơn giản hơn. Tuy vậy, nó lại có khả năng kết nối máy trạm và máy khách một cách đáng tin cậy nhờ các dữ liệu đã được mã hóa, trong khi giao thức TLS thể hiện sự kém an toàn.
Mong rằng thông qua bài viết này, bạn đọc đã hiểu rõ hơn về SSH là gì cũng như hoạt động, ưu điểm, kỹ thuật mã hóa của SSH. Đừng quên đón đọc thêm những bài viết cùng chuyên mục khác của chúng tôi nhé.Nguồn bài: Internet