A. Định nghĩa về SSH ?
SSH là viết tắt của 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 giữa hai thiết bị mạng, cho phép người dùng truy cập và điều khiển từ xa các thiết bị mạng, máy chủ hoặc máy tính khác trên mạng. SSH sử dụng mã hóa để bảo vệ các thông tin được truyền qua mạng và xác thực để đảm bảo rằng chỉ những người được ủy quyền mới có thể truy cập vào hệ thống. Do tính bảo mật cao, SSH thường được sử dụng để quản lý hệ thống và truy cập từ xa vào các thiết bị mạng.
B. Cách hoạt động của SSH
SSH hoạt động theo mô hình client-server để xác thực hai bên và mã hóa dữ liệu giữa chúng. Client sẽ là thành phần tạo phiên kết nối SSH đến thành phần khác, còn Server sẽ cho phép Client mở phiên SSH kết nối vào chính mình.
SSH hoạt động theo thứ tự các bước sau:
Lưu ý: SSH Client và SSH Server thương lượng với nhau để xác định cơ chế xác thực sẽ sử dụng thậm chí có thể yêu cầu nhiều kiểu xác thực để thiết lập kết nối an toàn trong quá trình trao đổi dữ liệu giữa chúng.
C. Các loại version của SSH
Bước 1.Khi Client khởi tạo 1 kết nối TCP tới port 22 ở Server, sẽ có 2 thông tin được trao đổi:
Nếu phiên bản Protocol của Server phù hợp với Client thì kết nối mới được tiếp tục. Ngay sau khi Client tiếp tục kết nối, Server và Client sẽ chuyển sang sử dụng bộ giao thức Binary Packet Protocol dài 32 bit.
Bước 2. Server sẽ gửi các thông tin quan trọng tới Client, đây là những thông tin nắm vai trò chính trong session hiện tại:
Dựa vào danh sách các phương thức mã hóa mà Server hỗ trợ, Client tạo ra 1 Symmetric Key ngẫu nhiên và gửi cho Server. Key này sẽ được sử dụng để mã hóa và giải mã trong toàn bộ quá trình giao tiếp giữa 2 bên trong session hiện tại, đây còn được gọi là Session Key. Session Key sẽ được mã hóa kép, mã hóa đầu tiên dựa vào RSA Public Key và mã hóa thứ 2 dựa vào Server Key. Việc mã hóa kép đảm bảo cho dù RSA Public Key có bị lộ thì cũng không thể giải mã gói tin do còn 1 lớp mã hóa bằng Session Key được thay đổi theo thời gian.
Cho đến lúc này Client vẫn chưa thể xác thực được Server, nó chỉ biết được định danh của Server dựa vào RSA Public Key. Để xác thực Server thì Client phải chắc chắn Server có khả năng giải mã được Session Key. Bởi vậy sau khi gửi Session Key xong Client sẽ chờ hồi âm từ phía Server. Nếu nhận được thông báo xác nhận Client đã sẵn sàng để xác thực được Server thì quá trình này hoàn tất.
Bước 3. Server xác thực Client: có nhiều phương pháp, trong đó có 2 phương pháp phổ biến nhất:
Kể từ giờ kết nối SSH đã sẵn sàng, Client và Server cũng đã có thể gửi các gói tin cho nhau
Tuy nhiên SSH version 1 rất hạn chế trong việc hỗ trợ sử dụng nhiều thuật toán để trao đổi Session Key, Message Authentication Code (MAC), thuật toán nén. Còn đối với SSH version 2 chẵng những cung cấp nhiều lựa chọn cho Client để sử dụng các thuật toán trao đổi Key mà còn có không gian để có thể thêm thuật toán tùy chỉnh riêng của người sử dụng.
SSH version 2 là giao thức SSH mặc định được sử dụng ngày nay bởi một số tiến bộ trong version 2 so với version 1 như cải tiến các chuẩn mã hóa, Public Key Certification, Message Authentication Code tốt hơn và phân bố lại Session Key.
SSH Version 1 |
SSH Version 2 |
Sau khi chọn một thuật toán trong danh sách từ Server hỗ trợ, Client tạo 1 Session Key, mã hóa kép và gửi đến Server, mã hóa lần đầu bởi Public Key, mã hóa lần 2 bởi Server Key. |
Không có khái niệm Server Key. Thay vào đó, Server cung cấp thêm danh sách các phương thức trao đổi khóa mà nó hỗ trợ, từ đó Client chọn một phương thức. SSH version 2 hoạt động dựa trên phương thức diffie-hellman-group1-sha1 và diffie-hellman-group14-sha1 để trao đổi khóa.
|
Trong hoạt động của SSH version 1, Trong SSH version 2, Sự thay đổi thứ hai trong SSH version 2 là một khái niệm gọi là cơ quan cấp chứng chỉ (Certificate Authority - CA), CA sẽ ký vào Public Key được sử dụng trong giao tiếp giữa Client và Server.
Message Authentication Code được sử dụng trong bất kỳ giao tiếp bảo mật nào để xác minh tính toàn vẹn của dữ liệu. Ngay cả phiên bản SSH 1 cũng sử dụng Message Authentication Code được gọi là CRC-32. CRC mặc dù kiểm tra sự thay đổi trong dữ liệu, nhưng không được coi là tốt nhất. SSH version 2 sử dụng Message Authentication Code nâng cao. Một số Message Authentication Code SSH version 2 hỗ trợ như: hmac-md5; hmac-sha1; Hmac-ripemd160
Rekeying Session Key: Trong SSH version 1, chỉ có một Session Key được sử dụng cho toàn bộ session làm việc của SSH. Trong SSH version 2 có bổ sung tính năng Rekeying Session Key cho phép thay đổi Session Key mà không làm mất session làm việc hiện tại.
SSH trong Cisco IOS
SSH được sử dụng rất nhiều trong các ứng dụng và được cài đặt, tích hợp vào nhiều hệ thống, hệ điều hành, trên Cisco IOS cũng vậy, nhưng chỉ những phiên bản IOS có kí tự k9 với version từ 12.1 trở về sau thì mới hỗ trợ SSH, đối với IOS phiên bản 12.2 trở về trước thì chỉ hỗ trợ SSH version 1, còn những phiên bản từ 12.3 trở lên sẽ hỗ trợ cả SSH version 2. Có thể dùng lệnh “show version” để xem phiên bản IOS.
Ví dụ 1 phiên bản IOS có hỗ trợ SSH: c2800nm-adventerprisek9-mz.124-24.T8.bin. SSH được tích hợp vào Cisco IOS cho phép thiết bị vừa có thể thực hiện SSH đến 1 SSH Server khác vừa có thể làm 1 SSH Server để 1 Client khác kết nối vào. Ngoài ra còn có thể sử dụng kết hợp chứng thực SSH Client thông qua cặp username/password cục bộ hoặc thông qua 1 RADIUS Server hoặc TACACS+ Server.
-> Link chi tiết: https://drive.google.com/file/d/15hzHWLD15ZXY7ctqLqxTBJi7IYJnIFIN/view?usp=share_link