13 điểm bởi GN⁺ 2026-03-22 | 6 bình luận | Chia sẻ qua WhatsApp
  • Trên Ubuntu 26.04 LTS, khi chạy lệnh sudo, phản hồi trực quan bằng dấu sao (*) cho mỗi ký tự mật khẩu nhập vào sẽ được bật mặc định
  • Tính năng này khả thi nhờ việc áp dụng sudo-rs được viết lại bằng Rust, và Canonical đã chọn nó làm sudo mặc định từ Ubuntu 25.10
  • Một số người dùng phản đối vì rủi ro làm lộ độ dài mật khẩu, nhưng đội ngũ phát triển nhấn mạnh rằng rủi ro là rất nhỏ và thay đổi này giúp nhất quán với màn hình đăng nhập
  • Để khôi phục cách cũ, chỉ cần thêm Defaults !pwfeedback vào tệp sudoers là có hiệu lực ngay
  • Thay đổi này là một phần trong quá trình hiện đại hóa hệ thống của Ubuntu 26.04, cùng với GNOME 50, Linux kernel 7.0, coreutils dựa trên Rust

Lịch sử nhập mật khẩu sudo

  • Năm 1980, tại Đại học SUNY Buffalo, Bob Coggeshall và Cliff Spencer đã phát triển sudo đầu tiên
    • Khi đó, terminal thường là môi trường dùng chung, nên để ngăn “nhìn trộm qua vai” (shoulder surfing), mọi ký tự nhập đều bị ẩn hoàn toàn
    • Thiết kế này sau đó được duy trì gần 46 năm trên hầu hết các bản phân phối Linux lớn
  • Linux Mint là bên đầu tiên thử thay đổi khi bật phản hồi trực quan theo mặc định trong cấu hình riêng của mình
    • Trong khi đó, các bản phân phối lớn như Ubuntu vẫn giữ cách nhập im lặng truyền thống trong thời gian dài

sudo-rs và quá trình thay đổi của Ubuntu

  • sudo-rs** là phiên bản triển khai** viết lại hoàn toàn sudo vốn dựa trên C bằng Rust

    • Canonical đã thay thế sudo mặc định bằng nó trong Ubuntu 25.10, nhưng từ góc nhìn người dùng thì hành vi vẫn như cũ
    • Tháng 2/2026, upstream của sudo-rs đã hợp nhất bản vá bật pwfeedback mặc định
    • Canonical đưa thay đổi này vào bản dựng phát triển của 26.04, làm bùng lên tranh luận trong cộng đồng
    • Dòng thời gian chính
    • 1980: sudo nguyên bản ra đời, mặc định nhập im lặng
    • Tháng 10/2025: Ubuntu 25.10 áp dụng sudo-rs
    • Tháng 2/2026: hợp nhất bản vá bật pwfeedback mặc định
    • 23/4/2026: dự kiến phát hành Ubuntu 26.04 LTS, mặc định hiển thị dấu sao

Hai phía của tranh luận bảo mật

  • Lập luận của bên chỉ trích

    • Việc hiển thị dấu sao làm lộ độ dài mật khẩu, từ đó làm suy yếu mô hình bảo mật trước đây
    • Đã có báo cáo lỗi cho rằng thay đổi này “phá vỡ một biện pháp bảo mật mang tính lịch sử”
  • Phản biện từ phía nhà phát triển

    • Trên thực tế, rủi ro từ việc lộ độ dài mật khẩu là rất nhỏ; nếu đứng đủ gần, người ta cũng có thể đoán qua tiếng gõ phím hoặc chuyển động tay
    • Mật khẩu sudo của đa số người dùng cũng chính là mật khẩu đăng nhập, và trên màn hình đăng nhập thì các ký tự đã được hiển thị bằng dấu chấm (dot)
    • Vì vậy, việc chỉ giữ terminal ở trạng thái im lặng chẳng qua chỉ là “security theatre”
    • Tóm tắt so sánh
Hạng mục sudo cũ (im lặng) sudo-rs + pwfeedback
Phản hồi trực quan Không có Hiển thị dấu sao theo từng ký tự nhập
Lộ độ dài mật khẩu Không
Tính nhất quán với màn hình đăng nhập Không khớp Khớp
Trải nghiệm người dùng mới Dễ bối rối Có thể xác nhận đang nhập
Phiên SSH Im lặng Vẫn hiển thị dấu sao
Có thể khôi phục hay không Có (!pwfeedback)

Cách khôi phục kiểu cũ

  • Mở tệp sudoers bằng lệnh sudo visudo rồi thêm một dòng sau
    Defaults !pwfeedback  
    
  • Lưu lại, thay đổi có hiệu lực ngay trong phiên terminal mới
  • Không cần khởi động lại hệ thống

Hiện đại hóa trên Ubuntu 26.04

  • Thay đổi lần này là một phần trong quá trình hiện đại hóa hệ thống tổng thể của Ubuntu 26.04 LTS “Resolute Raccoon”
    • Bao gồm GNOME 50 (chỉ dùng Wayland), Linux kernel 7.0, và coreutils dựa trên Rust (uutils/coreutils)
    • Canonical đang thúc đẩy việc áp dụng Rust để tăng cường an toàn bộ nhớtrải nghiệm người dùng hiện đại
  • Tranh cãi quanh việc hiển thị dấu sao của sudo-rs tượng trưng cho xung đột giữa triết lý Unix truyền thống và UX hiện đại
    • Người dùng luôn có thể quay lại cách cũ chỉ với một dòng cấu hình
    • Giá trị mặc định được quyết định theo hướng ưu tiên “đa số người dùng thích dấu sao hơn là những người mới hoang mang trước màn hình trống”
  • Ubuntu 26.04 LTS dự kiến phát hành chính thức vào ngày 23/4/2026 và hiện vẫn đang trong quá trình phát triển
    • Gói sudo-ws hiện tại không bị ảnh hưởng bởi thay đổi pwfeedback này

6 bình luận

 
sonnet 2026-03-22

Nếu việc để người khác có thể nhìn trộm và đoán được độ dài mật khẩu là một lỗ hổng bảo mật nghiêm trọng, thì tại sao lại không bắt buộc tất cả bàn phím dùng để truy cập terminal Linux phải có tấm che chống nhìn trộm? Chỉ cần nhìn vào bàn phím, hoặc quay lại bằng camera giấu kín là xong mà.

 
ndrgrd 2026-03-22

Nếu đến mức có thể nhìn lén qua vai mà thấy được điều đó, thì có lẽ nên lo hơn về việc chính các ngón tay đang gõ cũng bị nhìn thấy...
Ở khoảng cách như vậy thì thậm chí còn có thể ghi âm âm thanh để đếm xem có bao nhiêu ký tự nữa.
Nếu an ninh là mối lo lớn và quan trọng đến thế, thì nên dùng khóa bảo mật vật lý chứ.

 
yukinpl 2026-03-22

Khi người dùng đăng nhập qua terminal thì mật khẩu không được hiển thị, và ngay cả với ssh truy cập từ xa thì mật khẩu cũng không bị lộ. Từ sudo, su, passwd, ssh cho đến đăng nhập terminal, chưa từng có cái nào hiển thị mật khẩu. Chỉ riêng màn hình đăng nhập GUI là được hiển thị theo cách khác. Ngược lại, thay đổi lần này lại càng phá vỡ tính nhất quán hơn nữa.

 
GN⁺ 2026-03-22
Ý kiến trên Hacker News
  • Có thể chọn cấu hình ẩn hoàn toàn mọi dấu hiệu trực quan khi nhập mật khẩu
    Trên KDE, thêm ShowPasswordEcho=false vào /etc/sddm.conf.d/hide-password.conf rồi khởi động lại,
    với sudo, thêm Defaults !pwfeedback vào /etc/sudoers.d/password-no-visual-echo,
    trên GNOME thì cần sửa unlockDialog.js, đổi thành set_password_char('') hoặc echo_char=null rồi khởi động lại

    • Tò mò không biết có thể đổi ký tự hiển thị mật khẩu thành emoji được không
  • Khi dùng kết nối SSH độ trễ cao, nhiều lúc rất khó biết liệu lúc nhập sudo phím có thực sự ăn hay không
    Lại còn dính cả VPN và xác thực IAM nên thậm chí không chắc mật khẩu mới đã được áp dụng chưa
    Trong tình huống như vậy, tính năng phản hồi khi nhập mật khẩu có vẻ thực sự hữu ích. Sẽ còn tốt hơn nữa nếu Red Hat áp dụng nó

    • Tôi vẫn nhớ hồi 2004 cài Mandrake Linux, đến màn hình nhập mật khẩu mà không thấy phản hồi gì nên tưởng là lỗi và thất bại
      Nếu UI khi đó khác đi thì có lẽ tôi đã dùng Linux sớm hơn nhiều
    • Quá nhiều lần tôi đang nhập dở mới nhận ra đã gõ sai, rồi phải nhấn liên tục phím delete
    • Có lần vì bàn phím bị lỗi, tôi không chắc đã nhập đúng nên phải gõ mật khẩu vào file văn bản rồi copy-paste
      Dù không an toàn nhưng lúc đó cũng không có ai nhìn trộm qua vai
    • Trên máy chủ từ xa, tôi nghĩ tốt hơn là không nhập trực tiếp mật khẩu sudo, mà nên cấu hình tài khoản nopassword và xác thực bằng khóa công khai
    • Có thể nhìn nháy con trỏ để biết vẫn đang nhập được, nên không hẳn là nó bị “đứng” hoàn toàn
  • Màn hình đăng nhập macOS cũng cần được sửa
    Ô nhập mật khẩu quá hẹp nên dù nhập mật khẩu dài cũng không có phản hồi nào
    Nếu bàn phím không ổn định thì quá trình đăng nhập cực kỳ khó chịu

    • Có lần tôi đặt Capslock thành phím chuyển đổi ngôn ngữ, rồi khi máy đang khóa thì không thể nhập chữ thường và phải khởi động lại
    • Tôi đã dùng Open Core Legacy Patcher (OCLP) để cài macOS mới trên máy Mac cũ, nhưng sau khi nâng cấp thì ở màn hình đăng nhập, mỗi lần nhấn phím bị trễ 20~30 giây
      Mật khẩu dài 18 ký tự nhưng chỉ hiện đến ký tự thứ 13 nên tôi tưởng việc nhập đã bị treo. Kết quả là mất 30 phút mới đăng nhập được
    • Tôi thích kiểu cũ như Lotus 1-2-3, mỗi lần nhập thì thay đổi một ký hiệu khác nhau (ví dụ chữ tượng hình)
      Dù vẫn lộ độ dài mật khẩu nhưng với người dùng thì phản hồi nhập liệu rất rõ ràng
      Có thể xem thảo luận liên quan tại Security StackExchange
  • Sẽ hay nếu có một **bản đùa hiển thị chuỗi hài hước thay cho ***
    Ví dụ như hiện ra mật khẩu giả kiểu “iloveyouiloveyou”, “12345612345”

    • Cũng vui nếu mỗi lần nhập lại đổi thành chữ tượng hình như Lotus Notes
    • Nhưng cách này lại có thể khiến việc đếm độ dài mật khẩu khi nhìn trộm qua vai trở nên dễ hơn
    • Dù vậy, nếu cài được thì tôi vẫn muốn thử ngay
  • Tôi nghĩ đây thực sự là một thay đổi rất tốt
    Ban đầu có thể hơi bối rối nhưng sẽ quen nhanh, và trên thực tế hầu như không ảnh hưởng lớn đến bảo mật

    • Tuy vậy, trong các kịch bản rủi ro cao như kính viễn vọng, giám sát đường điện, tấn công timing thì vẫn cần cẩn thận
    • Có lần tôi hỗ trợ từ xa cho bố mà không biết mật khẩu Linux của ông chỉ có một ký tự
      Dấu nhắc im lặng đã che giấu điều đó, nhưng dù sao thì mật khẩu một ký tự cũng vô nghĩa
    • Trước đây nhiều người cùng dùng một máy tính, và việc lộ độ dài mật khẩu có thể hỗ trợ tấn công
      Giờ chuyện đó ít quan trọng hơn, và nếu muốn thì vẫn có thể chuyển lại về chế độ im lặng
    • Nếu kẻ tấn công đang nhìn trực tiếp vào màn hình thì nhìn bàn phím còn hiệu quả hơn
      Cuối cùng thì ý nghĩa lớn hơn nằm ở cải thiện UX hơn là bảo mật
  • Việc có phản hồi cho thao tác gõ là tốt, nhưng có lẽ một cách khác sẽ hay hơn là chỉ ánh xạ 1:1
    Ví dụ, xsecurelock cho phản hồi bằng cách làm di chuyển các chấm trên một đường khi người dùng nhập
    Cách này vẫn giữ được cảm giác đang nhập mà không làm lộ độ dài mật khẩu
    Với sudo, có thể đạt hiệu ứng tương tự bằng Defaults !pwfeedback
    Trên thực tế, nếu tấn công với quyền truy cập vật lý đã khả thi thì thường cũng đã có nhiều cách khác để xâm nhập, nên tôi xem đây chủ yếu là một cải tiến UX

    • Với những người dùng mật khẩu ngắn, việc lộ độ dài có thể rủi ro hơn
    • Ngược lại, có lúc hiển thị độ dài nhập lại rất hữu ích
      Khi nhập sai mật khẩu, việc không biết phải xóa bao nhiêu ký tự thật sự rất bực bội, và tính năng này giải quyết đúng vấn đề đó
  • Có lẽ chỉ cần cung cấp hành vi mới này dưới dạng tùy chọn là đủ
    Nếu đổi mặc định thì khi stream và nhập sudo, độ dài mật khẩu có thể bị lộ

    • Nhưng streamer thường biết rủi ro này, và sẽ mở shell root trước khi phát hoặc tắt tính năng đi
      Hơn nữa, chỉ nghe tiếng bàn phím cũng có thể đoán được độ dài
    • Việc đổi mặc định sẽ giúp ích cho đa số người dùng, trong khi rủi ro bảo mật là không đáng kể
    • Trên thực tế, nếu mật khẩu đó không trùng với mật khẩu cục bộ thì cũng không thành vấn đề lớn
      Hơn nữa, đang phát sóng mà phải dùng sudo cũng là chuyện hiếm
    • Live streaming là tình huống khá đặc biệt, nên giữ nguyên mặc định như vậy là hợp lý
    • Nếu mục tiêu là cải thiện khả năng tiếp cận, thì bật mặc định có lẽ tốt hơn
  • Cần có văn hóa quay đi chỗ khác khi ai đó đang nhập mật khẩu
    Ngược lại, nếu nhìn thấy dấu nhắc nhập mật khẩu trên màn hình của người khác thì bản thân cũng nên tự quay mặt đi

  • Nếu mỗi lần nhập hiện một ký tự quay vòng như / - \\ | thì có lẽ vừa tạo phản hồi nhập liệu vừa che được độ dài

    • Trước đây từng có phần mềm nào đó (có lẽ thuộc dòng Lotus Notes) hiển thị số lượng dấu sao ngẫu nhiên sau mỗi lần nhập
      Khi xóa cũng giảm theo cùng quy tắc, nên vẫn có phản hồi nhưng lại gây nhiễu về độ dài
    • Nhưng điều đó vẫn có thể khiến người dùng bối rối và không mang lại lợi ích thực tế nào
    • Kẻ tấn công vẫn có thể đếm số lần gõ qua âm thanh bàn phím, nên khác biệt không nhiều
    • Với người mới dùng Ubuntu, cách đó có thể còn gây khó hiểu hơn
    • Ngay cả thời IBM Notes, kiểu “số dấu sao không khớp” này cũng đã khiến người dùng bối rối
  • Việc sudo mặc định ẩn mật khẩu là tàn dư từ thời terminal dùng chung và máy in giấy (tty)
    Ngày xưa, nội dung nhập vào thực sự được in ra giấy nên cần phải ẩn vì lý do bảo mật

    • Ngoài ra khi đó, mỗi terminal lại có chuỗi điều khiển khác nhau để hiển thị ký tự thay thế, nên rất khó tương thích
      Còn bây giờ thì trong hầu hết môi trường điều đó không còn là vấn đề, và 1% người dùng vẫn có thể đổi lại bằng cấu hình
 
kayws426 2026-03-22

Tôi phản đối điều này.

 
kh0324 2026-03-22

Bắt chước Mac, đổi thứ đang yên đang lành sang Rust
Hôm nay cũng lại thế này nữa à.