SSH là gì? Tổng hợp A-Z về SSH cho người bắt đầu
11/03/2021 14:07 pm | Lượt xem : 3325
Contents
1. SSH là gì?
SSH, hoặc được gọi là Secure Shell, là một giao thức điều khiển từ xa cho phép người dùng kiểm soát và chỉnh sửa server từ xa qua Internet. Dịch vụ được tạo ra nhằm thay thế cho trình Telnet vốn không có mã hóa và sử dụng kỹ thuật cryptographic để đảm bảo tất cả giao tiếp gửi tới và gửi từ server từ xa diễn ra trong tình trạng mã hóa. Nó cung cấp thuật toán để chứng thực người dùng từ xa. Chuyển input từ client tới host, và relay kết quả trả về tới khách hàng.
Hình bên dưới thể hiện một giao diện Windows SSH điển hình. Bất kể user Linux hoặc macOS nào cũng đều có thể SSH tới server từ xa trực tiếp từ cửa sổ terminal. Windows users có thể sử dụng những SSH clients như là Putty. Bạn có thể thực thi lệnh shell cũng như việc bạn đang thực sự vận hành máy tính vật lý.
Bạn đã biết SSH là gì vậy hãy tiếp tục tìm hiểu về cách thức hoạt động của SSH. Bên cạnh việc tìm hiểu về công nghệ được sử dụng để đảm bảo tính an toàn cho các kết nối từ xa. Nó sẽ gồm nhiều lớp và loại mã hóa được sử dụng. Tùy thuộc vào mục đích của từng layer.
2. So sánh giữa SSL/TLS và SSH
Giống nhau: Đều đảm bảo bảo mật dữ liệu giao tiếp trong vận chuyển dữ liệu và xác thực các bên.
Khác nhau:
+ Các giao thức SSH dựa vào một mã nhị phân đơn giản, 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 được coi như một phiên bản đơn giản của TLS: Do độc lập có chủ ý từ chứng chỉ X.509 (Được hiểu 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 phát triển độc lập qua chứng chỉ X.509, vì vậy SSH có thể kết nối máy khách và máy trạm một cách đáng tin cậy, nơi mà giao thức TLS 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, và đượ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.
3. Độ an toàn bảo mật của SSH
SSH2 là SSH phiên bản 2, cung cấp dịch vụ máy chủ như:
+ Xác thực khách hàng
+ Xác minh dữ liệu toàn vẹn
+ Mã hoá và xác thực
Máy chủ xác thực được thực hiện bằng ECDSA, RSA hoặc DSA thuật toán công khai mã hoá. Để xác minh toàn vẹn dữ liệu và 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. 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à những phương pháp khác để thực hiện xác thực khách hàng.
Giao thức SSH2 có những đặc điểm kỹ thuật đã được thông qua bởi một số người thực hiện độc lập và công khai. Khi sử dụng cũng như thực hiện đúng, các giao thức được cho là an toà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 bởi 3 bước cơ bản là: định danh host, mã hoá và cuối cùng là chứng thực.
Bước 1: Định danh host được hiểu 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 làm việc SSH
Quá trình trao đổi khoá được thực hiện qua việc định danh host. Từng 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 (public) và khoá riêng tư. Khoá public được dùng bằng khoá công khai và 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ư: thay đổi của chương trình SSH, hệ điều hành thay đổi, thay đổi ở khoá định danh.
Để đăng nhập 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 được 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 đấy gửi cho máy chủ. Bằng khoá riêng của mình máy chủ sẽ giải mã và sau đó nhận được khoá phiên. Khoá phiên này cũng đồng thời là khoá sử dụng với mục đích trao đổi dữ liệu giữa hai máy. Toàn bộ 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 tim trên đường truyền này của SSH cũng 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ã/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ã và mã hoá theo thoả thuận trước đây giữa khách và máy chủ. Máy khách sẽ 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à: Blowfish, IDEA và 3DES. Máy khách và máy chủ trao đổi mã hoá cho nhau khi chọn cơ chế mã hoá. Việc trao đổi khoá mã hoá đó 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ị giải mã và đánh cắp bởi 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. Các phương pháp mã hoá còn hạn chế nhưng vẫn đang được cải tiến
+ Arcfour: nhanh, có xảy ra vấn đề bảo mật
+ 3DES: được mặc định là phương pháp mã hoá cho SSH
+ IDEA: phương pháp này nhanh hơn 3DES, nhưng lại hoạt động chậm hơn Blowfih và Arcfour
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 kết thúc. Tại đây, kênh trao đổi đã được bảo mật. Từng lượt truy cập và định danh của người dùng được cung cấp theo nhiều cách đa dạng khác khau. Ví dụ như kiểu chứng thực rhosts được dùng nhưng không phải 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 việc xác thực mật khẩu là cách được nhiều người dùng. Bên cạnh đó cũng có cách khác như xác thực RSA, dùng ssh-agent và ssh-keygen để xác thực những cặp khoá.
4. SSH hoạt động như thế nào?
Để hiểu SSH là gì thì trước tiên bạn cần phải biết nó hoạt động như thế nào. Nếu bạn đang sử dụng Linux hoặc Mac, sử dụng SSH rất đơn giản. Nếu bạn sử dụng Windows, bạn chỉ cần sử dụng những SSH client để mở kết nối SSH. Những trình SSH client phổ biến là Putty.
Đối với người dùng xài MAC và Linux, hãy mở terminal và làm theo hướng dẫn sau:
Lệnh SSH có 3 phần:
ssh {user}@{host}
SSH key command cho hệ thống biết là bạn muốn mở một kết nối được mã hóa Secure Shell Connection. {user} đại diện cho tài khoản người dùng bạn muốn dùng để truy cập. Ví dụ, bạn muốn truy cập user root, thì thay root tại đây. User root là user quản trị hệ thống với toàn quyền để chỉnh sửa bất kỳ điều gì trên hệ thống. {host} đại diện cho máy tính bạn muốn dùng để truy cập. Nó có thể là một địa chỉ IP (ví dụ 244.235.23.19) hoặc một tên miền (ví dụ, www.xyzdomain.com).
Khi bạn nhấn enter, nó sẽ hỏi bạn nhập mật khẩu tương ứng cho tài khoản. Khi bạn gõ, bạn sẽ không thấy bất kỳ dấu hiệu nào trên màn hình. Nhưng nếu bạn gõ đúng mật khẩu và nhấn enter, bạn sẽ vào được hệ thống và nhận thông báo đăng nhập thành công.
Có 3 cách khác nhau để mã hóa qua SSH:
+ Hashing
+ Asymmetrical encryption
+ Symmetrical encryption
Đừng bỏ lỡ các chương trình khuyến mãi mới nhất của Tenten:
|
4.1. Symmetrical encryption
Symmetric Encryption là một dạng mã hoá sử dụng secret key ở cả 2 chiều giải mã và mã hoá tin nhắn bởi cả client và host. Có nghĩa 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 được gọi là shared secret hoặc shared key encryption. Bởi vì 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 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 một key bí mật như là một phương thức thoả thuận, và key đó không được tiết lộ cho bên thứ 3. Quá trình tạo symmetric key được thực hiện bởi key exchange algorithm.
4.2. Asymmetrical encryption
Để giải mã và mã hoá Asymmetric Encryption dùng 2 khoá khác nhau. Hai khoá này là private key và public key.
Cả 2 đã hình thành nên một cặp khoá là private-public key pair.
+ Khoá private phải luôn được bảo đảm an toàn
+ Khoá public 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 tính toán ra mặc dù có liên quan mật thiết tới private key.
Public key không thể giải mã bất cứ thứ gì được mã hoá bằng 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ởi private key. Sự liên quan một chiều này nghĩa 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. Hashing
Hashing một chiều là một dạng mã hoá khác 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 sau. 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ó hướng nào để khai thác. Việc này có nhược điểm là không quay lại để giải mã được.