Trang chủ Development

Password so với SSH key – sử dụng cách xác thực nào tốt hơn?

Cả SSH key và xác thực bằng mật khẩu đều có ưu và nhược điểm riêng. Hiểu rõ những khác biệt này sẽ giúp bạn đưa ra lựa chọn phù hợp nhất cho mô hình doanh nghiệp.

Vậy sử dụng phương thức nào tốt hơn cho xác thực người dùng trên máy chủ SFTP - mật khẩu hay SSH key?

Xác thực mật khẩu

Cách xác thực mật khẩu hoạt động

Chắc chắn bạn không còn xa lạ gì với cách mật khẩu hoạt động. Vì vậy bài viết sẽ nhắc lại một chút như sau:

Một người sẽ sử dụng tổ hợp tên người dùng và mật khẩu mình có để đăng nhập vào máy chủ SFTP. Máy chủ sẽ kiểm tra xem tên người dùng và mật khẩu có đúng hay không và nếu có, máy sẽ chấp thuận yêu cầu của người đó.

Ưu điểm của xác thực mật khẩu

Ưu điểm đầu tiên và lớn nhất của xác thực mật khẩu là thuận tiện cho người dùng.

Tên người dùng và mật khẩu dễ dàng được ghi nhớ và nếu có thể đăng nhập web, trình duyệt có thể tự động điền vào các trường này, khiến việc đăng nhập trở nên dễ dàng hơn.

Và mọi người đều biết cách đăng nhập bằng mật khẩu, do đó, không có rào cản nào đối với việc áp dụng.

Lợi ích tiếp theo là quản trị viên có thể tăng bảo mật tên người dùng và mật khẩu bằng cách tạo các chính sách như:

Đặt số lần thử tối đa để truy cập tài khoản của trong một khung thời gian nhất định (ví dụ: 5 lần trong vòng 15 phút) trước khi tài khoản bị khóa

Yêu cầu một số lượng chữ cái, số và ký hiệu viết hoa trong mật khẩu

Buộc người dùng đặt lại mật khẩu theo định kỳ (ví dụ: cứ sau 90 ngày).

Password so với SSH key – sử dụng cách xác thực nào tốt hơn? - Ảnh 1.

Nhược điểm của xác thực mật khẩu

Bạn có biết mật khẩu sử dụng phổ biến nhất năm 2017 là 123456 không?

Nếu bạn có lỡ dùng tạm mật khẩu này cho 1 ứng dụng nào đó thì hãy thay ngay lập tức!

Việc tạo mật khẩu dễ nhớ là một thói quen dễ hiểu. Nhưng mật khẩu đơn giản làm cho các tài khoản này cực kỳ dễ bị xâm nhập.

Và nếu những mật khẩu đơn giản này được sử dụng trên nhiều ứng dụng, khả năng vi phạm sẽ tăng lên ồ ạt.

Một nhược điểm khác của xác thực mật khẩu là tên người dùng và mật khẩu phải được truyền trực tiếp đến máy chủ đang đăng nhập, do đó phương pháp này cũng dễ bị hack hơn.

Có một vài trường hợp điều này còn có thể gây ra những sai lầm khủng khiếp. Đầu tiên, bạn có thể đăng nhập nhầm vào máy chủ hoặc website lạ và sau đó máy chủ hoặc website đó có mật khẩu của bạn. Và tin tặc không chờ gì hơn ngoài việc tạo các bản sao web nổi tiếng để đánh cắp thông tin đăng nhập người dùng.

Tiếp theo, các công ty có thể lưu trữ mật khẩu của bạn dưới dạng văn bản chi tiết trong cơ sở dữ liệu của họ. Quản trị viên hệ thống có thể thấy mật khẩu của bạn bất cứ lúc nào và nếu hacker đột nhập, họ cũng có thể thấy mật khẩu của bạn. Ngay cả khi mật khẩu được salt và hash, một hacker vẫn có thể đánh cắp mật khẩu, tấn công brute force các hàm salt và hash, và xem liệu bạn có sử dụng cùng một mật khẩu cho các ứng dụng và website khác không.

Một nhược điểm cuối cùng là nhân viên có thể không cảm thấy thoải mái với các chính sách mật khẩu do quản trị viên CNTT đặt ra để tăng tính bảo mật.

Một yêu cầu đặt mật khẩu với ít nhất 8 ký tự, cả chữ in hoa và chữ thường, chứa ít nhất một chữ số, một ký hiệu không phải là, @, !, $, Hoặc% và ký tự chữ tượng hình, có thể khiến bạn khó nghĩ. Sau đó, bạn sẽ phải nhớ nó và nghĩ về một cái khác cứ sau 90 ngày…

Như bạn có thể thấy, xác thực mật khẩu cũng có những lợi ích và hạn chế riêng.

Xác thực bằng SSH key

Xác thực SSH key hoạt động như thế nào?

Xác thực bằng các SSH key có thể phức tạp hơn một chút, nhưng giúp tăng tính bảo mật khi đăng nhập vào máy chủ SFTP.

Giải thích nhanh về cách các SSH key hoạt động để xác thực:

Một cặp SSH key, bao gồm khóa mật mã công cộng (public key) và riêng tư (private key), được tạo trên máy tính.

Public key được lưu trữ trên máy chủ mà bạn đăng nhập, còn private key được lưu trên máy tính của bạn.

Khi bạn có ý định đăng nhập, máy chủ sẽ kiểm tra public key và sau đó tạo một chuỗi ngẫu nhiên và mã hóa nó bằng public key này. Tin nhắn mã hóa này chỉ có thể được giải mã bằng private key có liên kết.

Máy chủ sẽ gửi tin nhắn đã mã hóa này đến máy tính của bạn. Khi nhận được tin nhắn, máy tính sẽ giải mã nó bằng private key và gửi tin nhắn này trở lại máy chủ. Nếu tất cả đều khớp, bạn sẽ được thông qua.

Password so với SSH key – sử dụng cách xác thực nào tốt hơn? - Ảnh 2.

Theo bạn, phương thức này liệu có phức tạp hơn xác thực mật khẩu?

Ưu điểm của xác thực SSH key

Đầu tiên là các SSH key khó bị hack hơn mật khẩu và do đó an toàn hơn.

Các SSH key có thể có độ dài lên tới 4096 bit, và do đó các SSH key này sẽ có đặc tính dài, phức tạp và khó bị tấn công. Độ dài thông thường của các khóa này ít nhất khoảng 1024 bit, tương đương với khả năng bảo mật của mật khẩu dài ít nhất 12 ký tự.

Thường thì không có nhiều người sở hữu các mật khẩu dài 12 ký tự. Và một dãy mật mã 123456789101112 không phải là một mật khẩu mạnh, bất kể nó dài bao nhiêu.

Ngoài ra, các SSH key không phải do con người tạo ra, do đó, sẽ không có các trường hợp đặt khóa dễ đoán như "123456" hay "password".

Và không giống như mật khẩu, SSH private key của bạn sẽ không được gửi đến máy chủ. Vì vậy, ngay cả khi các tác nhân độc hại hack vào máy chủ, họ sẽ không thể truy cập vào tài khoản của bạn.

Ngoài ra, kết nối SSH chỉ có thể đến từ máy tính có chứa private key trong đó. Bạn có thể đăng nhập bằng mật khẩu từ bất kỳ máy tính nào, thậm chí cả máy tính để bàn công cộng tại thư viện.

Cuối cùng, bạn còn có thể thêm mật khẩu cho xác thực SSH key (xác thực đa yếu tố) để tăng tính bảo mật hơn nữa.

Nhược điểm của xác thực SSH key

Nhược điểm đầu tiên của việc sử dụng xác thực SSH key là private key cần được lưu trữ trên thiết bị mà bạn đăng nhập. Các thiết bị này, chẳng hạn như máy tính xách tay và điện thoại di động, có thể bị mất hoặc bị đánh cắp. Và nếu chúng không được bảo vệ đúng cách, tin tặc có thể truy cập vào private key và cuối cùng là máy chủ.

Ngoài ra, các khóa SSH cần thêm một số thao tác để thiết lập.

Quản trị viên hệ thống có thể chỉ định tên người dùng và mật khẩu ban đầu và phân phối chúng cho nhân viên một cách dễ dàng. Và nhân viên có thể thay đổi các mật khẩu này để chỉ họ biết cụ thể mất khẩu đó là gì. Sysadmin sẽ không còn có quyền truy cập vào mật khẩu của nhân viên nữa.

Mặt khác, việc phân phối public key và hướng dẫn nhân viên cách sử dụng SSH key có thể sẽ phức tạp hơn một chút. Nếu sysadmin cung cấp cho nhân viên một private key, anh ta vẫn có quyền truy cập vào private key đã nói và có thể đăng nhập vào tài khoản của nhân viên.

Mặc dù các SSH key an toàn hơn, vẫn có những rào cản tiềm tàng đối với việc sử dụng chúng.

Kết luận

Việc bạn muốn sử dụng xác thực mật khẩu là hoàn toàn dễ hiểu. Phương thức này rất thuận tiện để thiết lập và mọi người đều biết cách đăng nhập bằng tên người dùng và mật khẩu.

Xác thực SSH key trong khi đó an toàn hơn nhiều. Và nếu bạn đang chuyển các tệp và dữ liệu nhạy cảm sang đám mây, bảo mật là điều tối quan trọng. Đó là lý do tại sao nhiều bên đã  sử dụng các SSH key làm phương thức xác thực mặc định cho Cổng SFTP.

Theo:BizFly Cloud tổng hợp

>> Có thể bạn quan tâm: Cải thiện tốc độ login SSH trên Linux nhanh nhất

BizFly Cloud là hệ sinh thái điện toán đám mây được vận hành bởi VCCorp - Công ty dẫn đầu trong lĩnh vực truyền thông và internet tại Việt Nam. Với đội ngũ kỹ thuật viên trình độ cao và kinh nghiệm lâu năm làm việc trên các công nghệ khác nhau như cloud, mobile, web..., chúng tôi có đủ khả năng để hỗ trợ đưa ra những lời khuyên hữu ích và công nghệ toàn diện giúp doanh nghiệp chuyển đổi số thành công. Dành cho độc giả quan tâm tới các dịch vụ đám mây do BizFly Cloud cung cấp có thể truy cập tại đây.