SSH khác với Telnet như thế nào?

Tác giả sysadmin, T.Ba 14, 2023, 09:09:49 SÁNG

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

SSH khác với Telnet như thế nào?


TELNET không có bất kỳ mã hóa nào, vì vậy mọi thứ được truyền dưới dạng văn bản rõ. SSH được mã hóa, vì vậy nó riêng tư và an toàn. Đó là lý do tại sao nên sử dụng SSH thay vì TELNET.


SSH và TELNET đều cho phép bạn kết nối với các máy tính nối mạng từ xa và sử dụng chúng như thể bạn đang ngồi trước mặt chúng. Vì vậy, sự khác biệt giữa hai giao thức đáng kính này là gì và có thực sự luôn có lợi thế khi sử dụng SSH trên TELNET không?

1. TELNET và SSH: Câu chuyện nguồn gốc

Cần thiết là mẹ của sáng chế. Quản trị viên hệ thống cần một cách để truy cập và quản lý các máy tính được đặt ở nơi khác. Nếu việc quản trị viên ngồi trước máy tính là không thực tế hoặc bất tiện, họ cần một cách để truy cập vào máy tính từ xa cho phép họ đưa ra các lệnh giống như khi họ đang nhập chúng vào máy tính đó.

TELNET, viết tắt của  tel etype over  net work protocol, được phát triển vào năm 1969 như một giải pháp cho vấn đề đó. Miễn là máy tính từ xa có thể truy cập mạng, nó cho phép quản trị viên hoặc bất kỳ người được ủy quyền nào khác kết nối với nó và sử dụng nó như thể họ đang nhấn các phím của bàn phím từ xa.

SSH được tạo ra muộn hơn nhiều—vào năm 1995—như một phản ứng trực tiếp đối với Telnet và các giải pháp tương tự khác. Điều cần thiết lần này là an ninh. TELNET,  rlogin,  FTP và các giao thức khác của thời đại đó được thiết kế mà không có bất kỳ sự cân nhắc nào hoặc nhận thấy nhu cầu về bảo mật.

SSH là viết tắt của  s ecure  shell, vì vậy bạn có thể thấy rằng bảo mật là nguyên tắc chỉ đạo ngay từ khi mới thành lập. Ngày nay, SSH gần như đã thay thế hoàn toàn TELNET.

2. TELNET là cơn ác mộng bảo mật văn bản gốc

Vấn đề lớn với TELNET là nó sử dụng bản rõ. Nó không mã hóa bất kỳ lưu lượng truy cập nào, bao gồm tên người dùng và mật khẩu. Bất cứ thứ gì nó truyền dọc theo mạng đều có thể được ghi lại bằng cách đánh hơi và đọc gói một cách dễ dàng nhất. Đây là một rủi ro bảo mật ngay cả trên mạng cục bộ, trừ khi bạn là người dùng duy nhất. Bất kỳ người dùng nào cũng có thể chặn lưu lượng TELNET và lấy thông tin đăng nhập mà họ không có quyền.

Nếu máy tính từ xa ở bên ngoài, yêu cầu phải thực hiện kết nối qua internet để truy cập nó, thì vấn đề sẽ trở nên nghiêm trọng hơn rất nhiều. TELNET là sản phẩm của thời đó, và công bằng mà nói, các tác giả gần như chắc chắn không mong đợi hơn 50 năm sau mọi người sẽ sử dụng nó thành thạo, trong bối cảnh CNTT đã khác rất nhiều ngày nay.

Mặc dù TELNET xứng đáng có vị trí trong danh sách các chương trình quan trọng đã cùng nhau giúp đưa chúng ta đến vị trí ngày nay, nhưng đó không phải là thứ mà chúng ta vẫn nên sử dụng trong thế giới ngày nay.

3. SSH khác với TELNET như thế nào?

Nhìn bề ngoài, TELNET và SSH là hai câu trả lời cho cùng một vấn đề. Cả hai đều cho phép bạn truy cập cửa sổ đầu cuối trên máy tính từ xa và ra lệnh cho nó. Nhưng vì SSH được phát triển muộn hơn TELNET rất nhiều nên vấn đề được hiểu thấu đáo hơn và câu trả lời được thiết kế tốt hơn.

TELNET được thiết kế dành cho  các mạng riêng , nhưng SSH được thiết kế để đối phó với  các mạng công cộng và nhu cầu duy trì quyền riêng tư và bảo mật khi truyền dữ liệu và thực hiện các kết nối từ xa.

TELNET sử dụng cổng 23 và không thể thay đổi số cổng đó. Theo mặc định, SSH sử dụng cổng 22, nhưng điều này có thể được cấu hình và thay đổi. Định cấu hình SSH để sử dụng số cổng không rõ ràng khiến kẻ tấn công khó xác định cổng SSH hơn. Nếu cổng SSH có thể được xác định, thì việc thực hiện một cuộc tấn công vũ phu trong đó hàng ngàn mật khẩu thu được từ các vi phạm dữ liệu lần lượt được thử lần lượt bằng phần mềm tự động là một vấn đề nhỏ.

Thậm chí tốt hơn, SSH có thể phân phối hoàn toàn bằng mật khẩu. Nó có thể sử dụng mã hóa khóa công khai  để xác thực với các máy tính từ xa. Mật khẩu hoàn toàn không bao giờ được truyền đi vì không cần gửi chúng đến máy tính từ xa. Mã hóa dữ liệu và xác thực khóa SSH của nó có nghĩa là SSH có thể cung cấp các kết nối và liên lạc an toàn qua các mạng không an toàn như internet.

Trên thực tế, SSH có thể được sử dụng để xác thực với các dịch vụ khác nhau, không chỉ các máy tính từ xa chạy máy chủ SSH. Ví dụ: bạn có thể truy cập kho Git được lưu trữ trên GitHub,  GitLab và  BitBucket  bằng SSH thay vì mật khẩu.

Một ưu điểm khác khi sử dụng SSH trên TELNET là SSH có thể thực hiện đường hầm SSH đảo ngược. Điều này yêu cầu máy chủ thiết lập kết nối với máy khách. Cho đến khi người dùng cục bộ muốn tạo kết nối với máy chủ, kết nối sẽ bị bỏ qua.

Khi máy khách muốn kết nối với máy chủ, người dùng sẽ thiết lập kết nối SSH với máy tính của chính họ. SSH gửi kết nối xuống kết nối đã được thiết lập tới máy chủ. Điều này cung cấp một đường hầm riêng bên trong kết nối đã được mã hóa từ máy chủ đến máy khách.

Chiến thắng duy nhất cho TELNET là nó sử dụng ít băng thông hơn. Nhưng đây không phải là năm 1969 khi băng thông khan hiếm và SSH cũng không hẳn là một kẻ ngốn băng thông.

4. SSH cũng có vấn đề

Mặc dù SSH vượt qua TELNET khi nói về bảo mật, nhưng chúng ta phải nhớ rằng nó vẫn là phần mềm và phần mềm có thể có lỗi. Những lỗi đó có thể dẫn đến các lỗ hổng mà tội phạm mạng có thể khai thác. Ngoài ra, các tiêu chuẩn và thuật toán mã hóa thay đổi theo thời gian và được thay thế. Giống như tất cả các phần mềm dựa trên mã hóa, khi các phiên bản SSH cũ hơn, chúng có thể trở nên kém an toàn hơn. Đó là lý do tại sao điều quan trọng là đảm bảo rằng bạn đang sử dụng phiên bản SSH mới nhất.

Phiên bản SSH được sử dụng trong hầu hết các máy tính Linux là OpenSSH, một triển khai SSH được xây dựng dựa trên bộ công cụ và thư viện OpenSSL. Vào năm 2012, thư viện OpenSSL đã vô tình đưa ra một lỗi cho phép kẻ tấn công yêu cầu phản hồi từ máy chủ SSL và chỉ định lượng dữ liệu chứa trong câu trả lời.

Họ có thể yêu cầu phản hồi (giả sử) 64KB khi phản hồi thực tế không cần quá 64 byte. Chuỗi byte đầu tiên trong dữ liệu đó sẽ là phản hồi chính hãng, được mong đợi, tiếp theo là bất kỳ thứ gì xảy ra trong bộ nhớ được OpenSSL sử dụng gần đây. Những gì chứa trong dữ liệu đó là may rủi, nhưng nó có thể chứa thông tin nhạy cảm như cookie phiên và mật khẩu hoặc thông tin khác cho phép kẻ tấn công có được khóa riêng chẳng hạn.

Sau khi được phát hiện vào năm 2014, lỗ hổng được gọi là  Heartbleed. Nó đã nhanh chóng được sửa trong phần mềm. Tuy nhiên, lỗ hổng không biến mất vào thời điểm đó. Lỗ hổng chỉ bị vô hiệu hóa hoàn toàn khi tất cả các máy tính chạy phần mềm có lỗ hổng đã cài đặt phiên bản sửa lỗi. Nói cách khác, khi máy tính đã được vá lỗi. Do nhiều quản trị viên phản ứng chậm nên việc tiếp nhận phần mềm đã sửa lỗi bị chậm.

Cũng đáng lo ngại là hai năm giữa năm 2012 khi lỗi này được đưa ra và năm 2014 khi nó được phát hiện và xử lý. Trong hai năm đó, mọi máy chủ SSH chạy phiên bản OpenSSL dễ bị tổn thương đều gặp rủi ro.

Công bằng mà nói, điều đó đã xảy ra trên thực tế cách đây một thập kỷ và kể từ đó đã có nhiều bản phát hành, cải tiến, sửa lỗi và đánh giá mã.

5. Bạn nên sử dụng SSH hay TELNET?

Thật khó để nghĩ ra lý do bạn cần sử dụng TELNET ngay hôm nay. Điều đó không giống như nói rằng có bất kỳ tình huống nào an toàn khi sử dụng TELNET. Trong một mạng độc lập không được kết nối với thế giới bên ngoài và bạn chắc chắn rằng không ai sẽ đánh hơi gói lưu lượng truy cập của bạn, bạn có thể sử dụng TELNET. Nhưng không có lý do để. Sự đánh đổi an ninh không thể được biện minh.

SSH an toàn hơn và linh hoạt hơn—đó là lợi thế khi sử dụng SSH trên TELNET. Việc triển khai OpenSSH miễn phí cho mọi mục đích sử dụng kể cả thương mại và có sẵn cho tất cả các hệ điều hành phổ biến.