Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.

Announcement

Collapse
No announcement yet.

Hàm hash trong mật mã học

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Hàm hash trong mật mã học



    🔐 Hàm Băm (Hash Function) trong Mật mã học – Vai trò và Ứng dụng Thực tế

    Trong lĩnh vực bảo mật, hàm băm (hash function) là một công cụ cực kỳ quan trọng để đảm bảo tính toàn vẹn của dữ liệu (Chữ I trong CIA – Integrity), tính chính xác, nhất quán và đáng tin cậy trong suốt vòng đời của nó. Nó bao gồm việc ngăn chặn người dùng (những người không được ủy quyền) sửa đổi dữ liệu, dù dữ liệu đang được truyền tải hay lưu trữ.


    Bạn có thể hiểu đơn giản: nếu dữ liệu là một món quà, thì giá trị băm là dấu niêm phong – chỉ cần có ai đó can thiệp mở hộp quà, dấu này sẽ thay đổi ngay lập tức.

    Xác minh tính toàn vẹn dữ liệu – Một ứng dụng phổ biến của Hashing!

    Ví dụ thực tế: Khi bạn tải một bản cập nhật phần mềm từ trang chính thức của Cisco, họ thường cung cấp sẵn giá trị băm (MD5, SHA256...) kèm theo file đó. Sau khi tải xong, bạn có thể dùng công cụ như verify md5 trong thiết bị Cisco IOS, hoặc shasum, md5sum trên Linux/macOS để kiểm tra xem giá trị băm của file bạn tải có khớp với giá trị gốc không. Nếu file bạn đang download không phải là “hàng chính hãng”, giá trị hàm băm của file download sẽ khác với giá trị hash được công bố bởi hãng.

    Nếu hai giá trị khớp nhau file không bị chỉnh sửa. Nếu khác file có thể đã bị thay đổi trong quá trình tải về (do lỗi hoặc bị tấn công).

    🔁 Cơ chế hoạt động: Hash chỉ là Một chiều và chống giả mạo
    Hàm băm hoạt động theo nguyên lý một chiều: Dữ liệu đầu vào (dù dài đến đâu) sẽ được chuyển thành một chuỗi có độ dài cố định. Quan trọng hơn, không thể "dịch ngược" từ giá trị băm để biết dữ liệu ban đầu là gì. Quay trở lại ví dụ trên, bạn có thể biết là 3 trái cam khi ship đi có bị thay đổi hay không. Tuy nhiên, bạn không thể khôi phục 3 trái cam từ lượng nước cam đã xay ra.

    Ví dụ, thuật toán SHA-512 tạo ra giá trị băm dài 512 bit, thường được viết dưới dạng 128 ký tự thập lục phân. Trong khi đó, MD5 cho kết quả ngắn hơn – 128 bit, tương ứng 32 ký tự hex. Dữ liệu khi được gửi sẽ bao gồm data và giá trị hash kèm theo (ví dụ như trong VPN)

    🔍 Minh họa qua dòng lệnh Linux cho các bạn CISSP.

    Giả sử bạn có ba tệp văn bản:
    $ cat file1.txt
    The rabbit is fast.
    The turtle is slow.

    $ cat file2.txt
    This is file 2. File two. File dos...

    $ cat file3.txt
    The rabbit is fast.
    The turtle is slow.

    Rõ ràng file1.txt và file3.txt có nội dung giống nhau. Khi chạy băm:

    $ shasum file1.txt file2.txt file3.txt
    9a88d5f65e6136d351b20bc750038254c2ff6533 file1.txt ß Giống với file 3
    04aebe7d04587fad725588c1a8a49f7c7558252c file2.txt
    9a88d5f65e6136d351b20bc750038254c2ff6533 file3.txt ß Giống với file 1

    $ md5sum file1.txt file2.txt file3.txt
    738316215d0085ddb4c3ca4af2c928a1 file1.txt
    3bb237acac848be493cdfb005d27c0f0 file2.txt
    Các giá trị băm giống nhau chứng minh file1 và file3 là hoàn toàn giống nhau, bất kể tên tệp khác nhau.

    ⚠️ Những rủi ro khi sử dụng các thuật toán băm lỗi thời
    MD5 – Đã bị khai tử trong thế giới bảo mật
    MD5 từng rất phổ biến, nhưng giờ đây không còn được xem là an toàn. Các lý do bao gồm:
    • Dễ bị collision: Hai thông điệp khác nhau có thể cho ra cùng một giá trị băm.
    • Tấn công tìm ảnh ngược (pre-image attack): Có thể tìm ra thông điệp tương ứng với một giá trị băm cụ thể.
    • Thuật toán yếu: Với năng lực tính toán hiện nay, việc phá MD5 là hoàn toàn khả thi.
    • Không còn được khuyến nghị: NIST và nhiều tổ chức đã ngưng hoàn toàn việc sử dụng MD5 trong các ứng dụng bảo mật.
    🎯 Ví dụ: Một hacker có thể tạo ra hai hợp đồng số khác nhau nhưng có cùng giá trị MD5, khiến chữ ký số không còn đáng tin cậy.
    SHA-1 – Từng là tiêu chuẩn, giờ cũng bị loại bỏ
    SHA-1 cho kết quả 160-bit nhưng cũng đã chứng minh có lỗ hổng nghiêm trọng. Hiện không còn được sử dụng trong các ứng dụng yêu cầu độ tin cậy cao.

    🔐 Các hàm băm hiện đại và an toàn
    Nếu bạn đang phát triển hệ thống hoặc làm việc trong môi trường yêu cầu bảo mật, nên sử dụng các hàm băm sau:
    Thuật toán Độ dài Đặc điểm
    SHA-2 224–512 bit Vẫn được sử dụng rộng rãi, bảo mật cao. iPhone dùng SHA2.
    SHA-3 224–512 bit Cấu trúc "bọt biển", chống tấn công tốt hơn
    BLAKE2 256/512 bit Tốc độ nhanh, hiệu quả cao, thay thế SHA-2
    Whirlpool 512 bit Bảo mật tốt, dùng trong một số ứng dụng chuyên biệt
    📌 Gợi ý: Nếu bạn cần tốc độ xử lý cao cho lượng dữ liệu lớn (ví dụ hệ thống log hoặc malware scanner), hãy dùng BLAKE2.

    🧪 Băm trong phân tích phần mềm độc hại (malware)
    Một trong những ứng dụng quan trọng của hàm băm là trong việc theo dõi và phân tích mã độc. Thay vì chia sẻ trực tiếp file mã độc – vốn tiềm ẩn rủi ro lây nhiễm – các nhà phân tích thường chỉ chia sẻ giá trị băm của file.
    🎯 Ví dụ: Giải pháp bảo mật cho đầu cuối hay sử dụng băm để nhận diện, so sánh và tra cứu mẫu mã độc một cách nhanh chóng và an toàn.

    📈 Băm trong thời kỳ hậu lượng tử (Quantumn) (Cái này sẽ có trong các bài sau)
    Máy tính lượng tử đang đặt ra thách thức mới đối với các thuật toán mật mã truyền thống. Tuy nhiên, một số thuật toán như:
    • SHA-384, SHA-512
    • AES-256
    … được cho là có khả năng chống lại các cuộc tấn công lượng tử và đang được nghiên cứu, chuẩn hóa cho giai đoạn hậu lượng tử (post-quantum cryptography).

    📌 Kết luận
    • Hàm băm là một công cụ cốt lõi để đảm bảo tính toàn vẹn dữ liệu của mật mã học.
    • Không nên sử dụng MD5 và SHA-1 trong bất kỳ hệ thống bảo mật nào.
    • Ưu tiên dùng các thuật toán hiện đại như SHA-3 hoặc BLAKE2.
    • Trong bảo mật, kích thước băm càng lớn thì độ an toàn càng cao, nhưng cần cân đối giữa hiệu suất và yêu cầu bảo mật.
    • Các giá trị băm giúp chia sẻ, phân tích dữ liệu (như mã độc) mà không làm lộ hoặc lây lan nội dung thật.
      Click image for larger version

Name:	Hashing.jpg
Views:	11
Size:	441.8 KB
ID:	429563
    Đặng Quang Minh, CCIEx2#11897 (Enterprise Infrastructure, Wireless), DEVNET, CCSI#31417

    Email : dangquangminh@vnpro.org
    https://www.facebook.com/groups/vietprofessional/
Working...
X