Một Thuật Toán Băm Mật Khẩu Phổ Biến Bắt Đầu Lời Chào Tạm Biệt Dài

Khi các vụ việc vi phạm dữ liệu từ mối đe dọa đôi khi trở thành sự thực định đặc biệt trong thế kỷ 21, một câu hỏi liên tục được đặt ra khi tổ chức nạn nhân, nhà nghiên cứu an ninh mạng, cảnh sát và người dùng bình thường đánh giá hậu quả từ mỗi sự cố: Thuật toán băm mật khẩu mục tiêu đã sử dụng để bảo vệ mật khẩu người dùng của mình là gì?
Nếu câu trả lời là một hàm mật mã lỗi như SHA-1—đừng nói đến cơn ác mộng về mật khẩu được lưu trữ dưới dạng văn bản thuần túy mà không có bất kỳ mã hóa nào—thì nạn nhân sẽ phải lo lắng hơn vì điều đó có nghĩa là người đánh cắp dữ liệu có thể dễ dàng giải mã mật khẩu, truy cập trực tiếp vào tài khoản người dùng và thử những mật khẩu đó ở những nơi khác để xem liệu người dùng có tái sử dụng chúng không. Nhưng nếu câu trả lời là thuật toán có tên là bcrypt, có ít nhất một điều ít lo lắng.
Bcrypt tròn 25 tuổi trong năm nay, và Niels Provos, một trong những người đồng sáng tạo của nó, cho biết nhìn lại, thuật toán luôn mang theo năng lượng tích cực, nhờ vào sự sẵn có của mã nguồn mở và các đặc tính kỹ thuật đã thúc đẩy sự lâu dài của nó. Provos đã nói chuyện với MYTOUR về một bài xem xét về thuật toán mà ông công bố tuần này trên Usenix ;login:. Tuy nhiên, giống như nhiều công cụ số khác, hiện nay có nhiều phương án bám sát và an toàn hơn bcrypt, bao gồm các thuật toán băm có tên là scrypt và Argon2. Chính Provos cũng nói rằng mốc 25 năm là đủ cho bcrypt và ông hy vọng rằng nó sẽ mất phổ biến trước khi kỷ niệm sinh nhật lớn khác.
Phiên bản đầu tiên của bcrypt đã được phát hành với hệ điều hành mã nguồn mở OpenBSD 2.1 vào tháng 6 năm 1997. Lúc đó, Hoa Kỳ vẫn áp đặt các giới hạn xuất khẩu nghiêm ngặt đối với mật mã. Nhưng Provos, người lớn lên ở Đức, đã làm việc trên sự phát triển khi ông vẫn sống và học tại đó.
“Một điều tôi thấy ngạc nhiên là nó trở nên phổ biến như thế nào,” ông nói. “Tôi nghĩ phần nào có lẽ là vì nó thực sự đang giải quyết một vấn đề thực tế, nhưng cũng vì nó là mã nguồn mở và không bị các hạn chế về xuất khẩu nào áp đặt. Và sau đó, mọi người kết thúc bằng cách triển khai cài đặt riêng của họ trong tất cả những ngôn ngữ khác nhau. Vì vậy, vào những ngày này, nếu bạn muốn thực hiện băm mật khẩu, bcrypt sẽ có sẵn trong mọi ngôn ngữ mà bạn có thể sử dụng được. Nhưng điều thú vị khác mà tôi thấy là nó thậm chí vẫn còn liên quan sau 25 năm. Điều đó thật điên rồ.”
Provos phát triển bcrypt cùng với David Mazieres, một giáo sư an ninh hệ thống tại Đại học Stanford khi ông này đang học tại Viện Công nghệ Massachusetts khi họ cùng nhau làm việc trên OpenBSD. Cả hai gặp nhau thông qua cộng đồng mã nguồn mở và đang làm việc trên OpenBSD.
Mật khẩu băm được đưa qua một thuật toán để được biến đổi mật mã từ cái có thể đọc thành một sự lộn xộn không thể hiểu được. Những thuật toán này là “hàm một chiều” dễ chạy nhưng rất khó giải mã hoặc “bẻ khóa”, thậm chí là bởi người tạo ra hash. Trong trường hợp an ninh đăng nhập, ý tưởng là bạn chọn một mật khẩu, nền tảng bạn đang sử dụng tạo một hash của nó, và sau đó khi bạn đăng nhập vào tài khoản của mình trong tương lai, hệ thống sẽ lấy mật khẩu bạn nhập, băm nó, và sau đó so sánh kết quả với hash mật khẩu đã lưu trữ cho tài khoản của bạn. Nếu các hash khớp nhau, quá trình đăng nhập sẽ thành công. Như vậy, dịch vụ chỉ thu thập các hash để so sánh, không phải mật khẩu chính nó.
Điều độc đáo của bcrypt là nó bao gồm một tham số an ninh có thể được điều chỉnh theo thời gian để yêu cầu nhiều và nhiều công suất tính để bẻ khóa hash của bcrypt. Như vậy, khi tốc độ xử lý có sẵn rộng rãi tăng lên, hash bcrypt có thể trở nên khó khăn hơn và khó khăn hơn để bẻ khóa.
“Đây là một trong những ý tưởng mà nhìn lại thì thật là rõ ràng,” Mazieres nói. “Tất nhiên, điều thú vị là bcrypt là một thứ mà Niels và tôi đã làm. Nhưng tôi nghĩ điều quan trọng là, bất kỳ thuật toán băm mật khẩu nào chúng ta có, đều cần có một loại tham số an ninh để làm cho nó khó khăn hơn [theo một cách nào đó] phụ thuộc vào tài nguyên máy tính.
Thế hệ tiếp theo của các hàm hash yêu cầu nhiều bộ nhớ hơn để cố gắng bẻ khóa mật khẩu đã được băm, ngoài sức mạnh xử lý.
“Vấn đề là máy tính tiếp tục trở nên nhanh hơn, vì vậy một hàm mà hôm nay dường như ‘chậm’ có thể trở nhanh chóng trên máy tính của ngày mai,” nhà mật mã học của Đại học Johns Hopkins, Matthew Green nói. “Ý tưởng đằng sau bcrypt là làm cho điều này có thể điều chỉnh được. Vì vậy, sau một thời gian, bạn có thể tăng cường mức độ khó khăn một cách rất dễ dàng. Nhưng sau đó vấn đề trở thành việc mọi người đã làm cho việc đoán mật khẩu trở nên nhanh chóng hơn bằng cách tận dụng phần cứng chuyên dụng có thể tính toán nhiều điều một lúc. Điều này làm suy giảm an ninh đối với các chức năng như bcrypt. Vì vậy, ý tưởng gần đây hơn là sử dụng các chức năng cũng đòi hỏi nhiều bộ nhớ, cũng như tính toán, dựa trên giả thuyết rằng các cuộc tấn công song song sẽ không thể mở rộng tài nguyên này cũng tốt.”
An ninh mật khẩu luôn tồn tại kém, tuy nhiên, cả Provos và Mazieres đều thể hiện sự không tin và thất vọng rằng tình trạng của mật khẩu nói chung không phát triển trong nhiều thập kỷ. Ngay cả các kế hoạch mới như passkeys chỉ mới bắt đầu xuất hiện.
“Bcrypt đã nên bị thay thế từ lâu rồi,” Provos nói. “Ngạc nhiên là chúng ta vẫn phụ thuộc nhiều vào mật khẩu. Nếu bạn đã hỏi tôi 25 năm trước, tôi đã không đoán được điều đó.”
Provos đã chuyển sang tạo ra nhạc điện tử dành cho chủ đề an ninh mạng và xác thực dưới tên DJ là Activ8te như một cách để chia sẻ ý kiến về an ninh của mình với đông đảo và cố gắng tạo ra sự thay đổi văn hóa trong cách mọi người đối mặt với an ninh cá nhân của họ. Mazieres cũng nhấn mạnh rằng ngành công nghiệp công nghệ đã làm người ta tổn thương bằng cách đào tạo họ xác thực theo cách nguy hiểm - nhấp vào các liên kết và cắm mật khẩu liên tục và thường là một cách không đảm bảo.
Ngay cả khi khoảnh khắc của bcrypt đang qua, những người sáng tạo nó nói rằng vẫn đáng đầu tư thời gian và năng lượng vào các nỗ lực để cải thiện xác thực số và an ninh mạng một cách rộng lớn hơn và giúp mọi người tăng cường phòng thủ số của họ.
“Có một phiên bản của thế giới nơi tôi chỉ làm nhạc và rèn kim loại,” Provos nói. “Nhưng tình trạng an ninh vẫn khiến tôi buồn đến mức tôi vẫn cảm thấy như tôi phải đóng góp lại một cách nào đó.”
