SSH là gì? Tổng hợp chi tiết [A-Z] về SSH cho người bắt đầu
Thịnh Văn Hạnh 21/11/2019 1710 Lượt xem Chia sẻ bài viết
SSH là gì? Cách sử dụng SSH như thế nào? SSH hoạt động ra sao? Bài viết sau đây BKNS sẽ giải đáp thắc mắc cho bạn về SSH một cách chi tiết nhất. Hãy theo dõi bài viết sau đây nhé.
Tóm Tắt Bài Viết
1. Khái niệm về SSH
SSH ( tên tiếng anh là Secure Shell) được hiểu là giao thức kết nối giữa máy khách và máy chủ điều khiển từ xa cho phép người sử dụng chỉnh sửa và kiểm soát server từ xa nhưng vẫn đảm bảo được an toàn. Server sẽ không bao giờ bị đánh cắp thông tin được truyền đi giữa máy chủ và máy tính nếu sử dụng SSH để kết nối vps. Giao thức SSL và SSH đều mã hoá đường truyền dữ liệu. Người dùng có khả năng sử dụng để chuyển tập tin, chạy chương trình, chuyển tiếp khác kết nối TCP / IP bằng đường truyền đã được bảo mật.
Hiện nay, những công cụ SSH phổ biến là: Bitvise SSH, OpenSSH và PuTTY.
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.
À, nếu bạn chưa biết các lệnh cơ bản trong SSH là gì, hãy tham khảo bài viết dưới đây ngay: Các lệnh cơ bản của SSH: Bạn có biết?
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?
Đối với người dùng dùng Linux và MAC, mở terminal và thực hiện theo hướng dẫn dưới đây
Lệnh SSH có 3 phần: ssh {user}@{host}
SSH có ý nghĩa là người dùng muốn mở kết nối được mã hoá Secure Shell Connection.
- {user} là tài khoản người dùng được truy cập. Chẳng hạn, muốn truy cập user root, người dùng chỉ thay root ở đây. User root là quản trị hệ thống người dùng với toàn quyền để chỉnh sửa mọi thứ trên hệ thống
- {host} đại diện cho máy tính muốn người dùng truy cập có thể là một tên miền (www.tenmien.com) hoặc một địa chỉ IP (244.23.23.18)
Sau khi Enter, hệ thống yêu cầu người dùng nhập mật khẩu tương ứng cho tài khoản. Khi nhập mật khẩu, nếu không có bất cứ dấu hiệu nào hiện lên màn hình là khi bạn đã nhập đúng mật khẩu và click enter, sau đó tự động bạn vào hệ thống và đăng nhập hoàn tất.
3 kỹ thuật mã hoá khác nhau:
SSH có ưu điểm vượt trội so với các giao thức cũ là khả năng truyền tải dữ liệu bảo mật giữa client và host và khả năng mã hoá. Host đại diện cho sự kết nối giữa máy chủ từ xa client điều này có nghĩa là máy tính của bạn với mục đích truy cập tới host. Để mã hoá qua SSH sử dụng 3 sau đây:
- Hashing
- Asymmetrical encryption
- Symmetrical encryption
4.1 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.
4.2 Asymmetric 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.
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 Symmetric 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.
Bài viết trên đây BKNS đã cung cấp cho bạn những thông tin đầy đủ nhất về SSH. Mong rằng với bàu viết này, bạn sẽ hiểu hơn về SSH là gì, so sánh giữa SSL/TLS và SSH, độ an toàn bảo mật SSH và cách hoạt động của SSH. Hy vọng bài viết trên sẽ giúp cho bạn hiểu thêm phần nào về ssh. Nếu bạn có thắc mắc gì xin hãy để lại bình luận hoặc liên hệ với chúng tôi để được giải đáp nhanh nhất. Đừng quên truy cập website bkns.vn để biết thêm nhiều thông tin hữu ích khác nữa nhé.
>> Tìm hiểu thêm: Kiến thức kết nối tới máy chủ qua SSH với chương trình Putty