Một kho lưu trữ ZIP có thể có 2 mật khẩu không? Tại sao vậy?

ỨNG DỤNG


Các kho lưu trữ ZIP được bảo vệ bằng mật khẩu là một phương pháp phổ biến để nén và chia sẻ các tệp từ dữ liệu nhạy cảm đến mã độc một cách an toàn.

Tuy nhiên, bạn có biết rằng một tệp ZIP có thể có tối đa 2 mật khẩu chính xác và cả hai đều tạo ra cùng một kết quả khi tệp ZIP được giải nén?

Một tệp ZIP có thể có hai mật khẩu?

Arseniy Sharoglazov, một nhà nghiên cứu an ninh mạng tại Positive Technologies, đã chia sẻ vào cuối tuần qua một thí nghiệm có vẻ đơn giản nhưng kỳ diệu. Trong đó, anh đã tạo một tệp ZIP được bảo vệ bằng mật khẩu có tên x.zip.

Mật khẩu mà Sharoglazov chọn để mã hóa tệp ZIP là một cách chơi chữ của hit Never Gonna Give You Up năm 1987 của Rick Astley, đã trở thành một meme phổ biến trong thế giới công nghệ:

Nev1r-G0nna-G2ve-Y8u-Up-N5v1r-G1nna-Let-Y4u-D1wn-N8v4r-G5nna-D0sert-You

Nhưng nhà nghiên cứu cũng chứng minh rằng khi giải nén tệp x.zip bằng một mật khẩu hoàn toàn khác, anh ta không gặp bất kỳ lỗi nào.

Trên thực tế, việc sử dụng một mật khẩu khác cho phép giải nén thành công tệp ZIP, nội dung gốc vẫn nguyên vẹn:

pkH8a0AqNbHcdw8GrmSp


Hình 1 của Kho lưu trữ ZIP có thể có 2 mật khẩu không?  Tại sao vậy?

Làm thế nào điều này xảy ra?

Làm cách nào để Sharoglazov có thể sử dụng hai mật khẩu cho một tệp ZIP? Người dùng Twitter Unblvr giải thích: Khi tạo tệp ZIP với mật khẩu có bật chế độ AES-256, định dạng ZIP sử dụng thuật toán PBKDF2 và băm mật khẩu do người dùng cung cấp, nếu mật khẩu quá dài. . Mật khẩu trên 64 byte (ký tự) sẽ quá dài.

Sau đó, thay vì mật khẩu đã chọn của người dùng (trong trường hợp này là “Nev1r-G0nna-G2ve-.”, Hàm băm mới được tính toán trở thành mật khẩu thực của tệp.

Khi người dùng giải nén tệp và nhập mật khẩu dài hơn 64 byte (“Nev1r-G0nna-G2ve-.”), Những gì người dùng nhập lại sẽ được ứng dụng ZIP băm và so sánh lại với mật khẩu chính xác (mật khẩu bây giờ là một băm). Kết quả so sánh khớp với nhau để giải nén tệp thành công.

Mật khẩu thay thế được sử dụng trong trường hợp này (“pkH8a0AqNbHcdw8GrmSp”) trên thực tế là biểu diễn ASCII của hàm băm SHA-1 của mật khẩu dài (“Nev1r-G0nna-G2ve-.”).

Checksum SHA-1 của “Nev1r-G0nna-G2ve-.” = 706b4838613041714e6248636773847726d5370.

Tổng kiểm tra này, sau khi được chuyển đổi thành ASCII, sẽ tạo ra: pkH8a0AqNbHcdw8GrmSp.

Tuy nhiên, bạn nên nhớ rằng khi mã hóa hoặc giải mã một tệp, quá trình băm chỉ xảy ra nếu độ dài của mật khẩu lớn hơn 64 ký tự.

Nói cách khác, mật khẩu ngắn hơn sẽ không được băm ở cả giai đoạn nén và giải nén của tệp ZIP.

Tuy nhiên, cần lưu ý rằng biểu diễn ASCII của hàm băm SHA-1 của một mật khẩu dài không phải lúc nào cũng là một chuỗi ký tự và số. Đôi khi nó tạo ra một tập hợp các byte vô nghĩa, không thể nhập được vào ô mật khẩu.

Bản thân Sharoglazov cũng phải sử dụng công cụ khôi phục mật khẩu mã nguồn mở hashcat với một chút sửa đổi để tìm ra mật khẩu có biểu diễn ASCII hợp lý. Anh ấy đã thử các biến thể của “Nev0r, Nev1r, Nev2r.” cho đến khi anh ấy nghĩ ra một mật khẩu sạch chỉ gồm các chữ cái và số (pkH8a0AqNbHcdw8GrmSp).

Đối với người dùng thông thường, sử dụng tệp ZIP có mật khẩu được đảm bảo an toàn. Tuy nhiên, bài kiểm tra này cho bạn cái nhìn sơ lược về một trong những bí ẩn xung quanh các tệp ZIP được mã hóa cũng như cách lấy 2 mật khẩu cho các tệp ZIP của bạn.



Source link

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *