Bộ giao thức Internet |
---|
Tầng ứng dụng (Application layer) |
|
Tầng giao vận (Transport layer) |
|
Tầng mạng (Internet layer) |
|
Tầng liên kết (Link layer) |
|
SSH (Shell Bảo mật) là một giao thức mạng được sử dụng để thiết lập kết nối an toàn. SSH hoạt động ở tầng cao trong mô hình TCP/IP. Các công cụ SSH như OpenSSH cung cấp cho người dùng cách thiết lập kết nối mạng được mã hóa để tạo kênh kết nối riêng tư. Ngoài ra, tính năng tunneling cho phép chuyển giao các dữ liệu theo các giao thức khác. Do đó, khi triển khai hệ thống mạng dựa trên SSH, ta có một VPN đơn giản.
Định nghĩa
SSH là một chương trình tương tác giữa máy chủ và máy khách, sử dụng cơ chế mã hóa mạnh nhằm ngăn chặn đánh cắp thông tin trên đường truyền. Các chương trình như telnet, rlogin không sử dụng mã hóa, cho phép bất kỳ ai cũng có thể nghe lén toàn bộ nội dung phiên làm việc. Sử dụng SSH là biện pháp hiệu quả để bảo vệ dữ liệu trên đường truyền giữa các hệ thống.
Cách thức hoạt động
SSH hoạt động qua 3 bước đơn giản:
- Định danh máy chủ – xác định danh tính của hệ thống tham gia phiên làm việc SSH.
- Mã hóa – thiết lập kênh làm việc được mã hóa.
- Xác thực – xác minh người sử dụng có quyền truy cập vào hệ thống.
Định danh máy chủ
Định danh máy chủ được thực hiện thông qua việc trao đổi khóa. Mỗi máy tính hỗ trợ giao thức SSH có một khóa định danh duy nhất. Khóa này bao gồm hai thành phần: khóa riêng và khóa công khai. Khóa công khai được sử dụng để trao đổi giữa các máy chủ trong phiên làm việc SSH, dữ liệu sẽ được mã hóa bằng khóa riêng và chỉ có thể giải mã bằng khóa công khai. Khi có sự thay đổi về cấu hình trên máy chủ như thay đổi giao thức SSH, thay đổi cơ bản trong hệ điều hành, khóa định danh cũng sẽ thay đổi. Khi đó, mọi người sử dụng SSH để truy cập vào máy chủ này sẽ nhận được cảnh báo về sự thay đổi. Khi hai hệ thống bắt đầu phiên làm việc SSH, máy chủ sẽ gửi khóa công khai của mình cho máy khách. Máy khách tạo ra một khóa phiên ngẫu nhiên và mã hóa khóa này bằng khóa công khai của máy chủ, sau đó gửi lại cho máy chủ. Máy chủ sẽ giải mã khóa phiên này bằng khóa riêng của mình và nhận được khóa phiên. Khóa phiên này sẽ được sử dụng để trao đổi dữ liệu giữa hai máy. Quá trình này có thể được coi là quá trình nhận diện máy chủ và máy khách.
Mã hóa
Sau khi hoàn thành thiết lập phiên làm việc an toàn (trao đổi khóa, xác thực), quá trình trao đổi dữ liệu diễn ra thông qua một bước trung gian là mã hóa/giải mã. Điều này đảm bảo dữ liệu gửi/nhận trên đường truyền được mã hóa và giải mã theo cơ chế đã thống nhất giữa máy chủ và máy khách. Việc chọn cơ chế mã hóa thường do máy khách quyết định. Các cơ chế thường được sử dụng bao gồm: 3DES, IDEA và Blowfish. Sau khi chọn cơ chế mã hóa, máy chủ và máy khách trao đổi khóa mã hóa cho nhau. Quá trình trao đổi này cũng được bảo mật dựa trên xác thực bí mật của các máy. Kẻ tấn công khó có thể nghe trộm thông tin trao đổi trên đường truyền vì không biết được khóa mã hóa.
- 3DES (còn gọi là Triple-DES) – phương pháp mã hóa mặc định cho SSH.
- IDEA – nhanh hơn 3DES, nhưng chậm hơn Arcfour và Blowfish.
- Arcfour – nhanh, nhưng các vấn đề bảo mật đã được phát hiện.
- Blowfish – nhanh và bảo mật, nhưng các phương pháp mã hóa đang được cải tiến.
Xác thực
Xác thực là bước cuối cùng trong ba bước, cũng là bước đa dạng nhất. Tại thời điểm này, kênh truyền dữ liệu đã được bảo mật. Mỗi định danh và quyền truy cập của người sử dụng có thể được xác định bằng nhiều cách khác nhau. Ví dụ, kiểu xác thực rhosts có thể được sử dụng, mặc dù không phải là mặc định; nó đơn giản là kiểm tra định danh của máy khách được liệt kê trong tệp rhost (theo DNS và địa chỉ IP). Xác thực mật khẩu là cách phổ biến để xác định người sử dụng, song ngoài ra còn có các phương pháp khác: xác thực RSA, sử dụng ssh-keygen và ssh-agent để xác thực các cặp khóa.
Phần mềm quản trị từ xa | |
---|---|
Chung |
|
Triển khai |
|
Triển khai gây tranh cãi |
|