Hướng dẫn về Hàm Hash và cách chúng hoạt động

Vi phạm dữ liệu số đã trở nên phổ biến đến mức họ không đưa ra quá nhiều báo động trừ khi bạn là một trong hàng triệu người dùng LinkedIn bị lộ hoặc nếu tài khoản MySpace cũ của bạn bị hack. Tất cả những vi phạm này chạy cùng nhau trong một vệt mờ khó hiểu cho hầu hết những người không nhận ra những gì các công ty này đã làm sai để cung cấp thông tin của bạn cho những kẻ trộm trên mạng. Một trong nhiều lý do điều này có thể xảy ra là vì thông tin của bạn không đúng băm.


Hash có thể được sử dụng thay thế cho nhau như một danh từ hoặc động từ trong mật mã. Băm là hành động thay đổi mật khẩu thành các chuỗi mã không thể nhận ra được thiết kế bởi không thể chuyển đổi trở lại. Đây cũng được gọi là băm. Một số băm có thể bị bẻ khóa đơn giản hơn các băm khác, nhưng nó vẫn là một nhiệm vụ khó khăn mà hầu hết các tin tặc mới làm quen đã giành được.

Tại sao Hash rất quan trọng

Thuật toán băm

Hầu hết các tin tặc muốn sử dụng dữ liệu để truy cập thông tin người dùng và để làm như vậy, chúng thường cần mật khẩu của bạn nhất. Những gì bọn tội phạm tìm thấy và lừa đảo từ hồ sơ của bạn không được lưu trữ ở dạng có thể đọc được bằng mắt thường, trừ khi công ty không bảo vệ dữ liệu nhạy cảm của họ.

Mật khẩu của bạn được chuyển đổi thành băm thường là chính thời điểm bạn tạo và nó trông giống như một chuỗi các chuỗi ngẫu nhiên. Nó đổi mật khẩu của bạn một cách toán học thành một thứ không thể thiếu. Trong hầu hết các trường hợp, phải mất nhiều năm để giải mã hàm băm và sau đó, bạn có thể đã thay đổi mật khẩu hoặc xóa tài khoản của mình.

Hàm Hash là gì

Hàm băm – Đây là các hàm hoặc kỹ thuật được sử dụng để mã hóa mật khẩu và văn bản thuần túy khác thành văn bản không thể đọc được để lưu trữ và truyền. Có nhiều loại hàm Hash dựa trên cách mã hóa văn bản đơn giản.

Hàm Hash là gì – Đây là các hàm hoặc kỹ thuật được sử dụng để mã hóa mật khẩu và văn bản thuần túy khác thành văn bản không thể đọc được để lưu trữ và truyền. Có nhiều loại hàm Hash dựa trên cách mã hóa văn bản đơn giản.

Băm được thiết kế như thế nào

Băm được thiết kế như thế nào

Hàm băm được thiết kế là hàm một chiều, đây là một phép toán đơn giản để thực hiện lúc đầu, nhưng nó không thể đảo ngược. Khi bạn băm dữ liệu thô, nó sẽ trở thành gobbledegook hoàn chỉnh, đó là cách tài khoản của bạn vẫn được bảo vệ khỏi tin tặc.

Băm không được thiết kế để được giải mã theo bất kỳ cách nào. Khi bạn nhập mật khẩu, hệ thống sẽ thực hiện băm và kiểm tra kết quả đối với hàm băm được tạo từ mật khẩu của bạn khi bạn đặt mật khẩu lần đầu tiên. Nó xác minh mật khẩu mà không phải lưu trữ trong hệ thống, đó là một lý do khác khiến tin tặc ghét các trang web với băm.

Sự khác biệt giữa các phương pháp Hash mạnh và yếu

Về lý thuyết, không ai có thể bẻ khóa một chuỗi băm, thậm chí công ty không lưu trữ băm. Không ai có thể chuyển đổi mật khẩu băm được lưu trữ trở lại mật khẩu ban đầu. Tuy nhiên, kế hoạch băm đã xuất hiện trong nhiều năm và một số đã trở nên yếu hơn so với những kế hoạch khác.

Chẳng hạn, trường hợp 177 triệu tài khoản LinkedIn được rao bán trên web tối cho thấy mật khẩu băm có thể bị bẻ khóa. LinkedIn chỉ sử dụng một chức năng băm đơn giản tại thời điểm được gọi là SHAI và nó không có biện pháp bảo vệ nào khác để ngăn chặn dữ liệu bị đánh cắp. Điều này cho phép tin tặc truy cập mật khẩu và cũng thử các mật khẩu đó trên các trang web khác. Đây có thể là lý do khiến tài khoản Mark Zuckerberg trên Twitter và Pinterest bị hack cùng lúc.

Một trường hợp băm sai khác là câu chuyện về vi phạm dữ liệu của Patreon. Lần này, trang web có chức năng băm rất mạnh được gọi là bcrypt. Chức năng này cung cấp thêm thời gian giữa việc vi phạm và thay đổi mật khẩu trước khi tin tặc có thể lấy được tất cả dữ liệu được lưu trong bộ nhớ cache.

Vì vậy, những gì khác biệt giữa SHAI và bcrypt? Với SHAI, tin tặc không thể đảo ngược mật khẩu băm được tạo bằng chức năng cụ thể đó. Tuy nhiên, họ có thể đoán mật khẩu và chạy qua cùng một chức năng để khám phá mật khẩu và cách nó băm.

Khi họ nhận được một nở phù hợp, họ có thể sử dụng chương trình băm băm để lọc qua các cơ sở dữ liệu lớn hơn nhiều và đoán hàng triệu mật khẩu trở lên. Sau đó, họ có thể sử dụng dữ liệu đó để so sánh với kết quả từ một nhóm mật khẩu được băm để tìm thêm kết quả khớp, do đó dẫn đến hiệu ứng domino nếu bạn sử dụng cùng một mật khẩu cho mọi trang web. Làm tốt lắm, Mark Zuckerberg!

Các đặc điểm của một hàm băm hữu ích là gì

Vì có một số hàm băm khác nhau ngoài kia, tốt nhất là bạn nên tìm những hàm có bốn đặc điểm này.

Hiệu quả và nhanh chóng

Không ai muốn chờ đợi để đăng nhập vì mật khẩu của họ được băm. Điều này có nghĩa là chức năng băm phải hiệu quả và nhanh chóng. Vì chức năng băm có thể rất tốn công, nên bắt buộc phải tìm ra cách nhanh nhất. Nếu một máy tính thông thường cần vài phút để xử lý chức năng băm và tạo đầu ra, thì nó sẽ không thực tế cho doanh nghiệp. Hầu hết các máy tính ngày nay có thể xử lý một hàm băm trong một phần năm giây.

Luôn cho kết quả tương tự

Các hàm băm cũng phải có tính xác định. Đối với bất kỳ đầu vào nào được cung cấp, hàm băm phải luôn cung cấp cùng một kết quả. Nếu bạn cắm cùng một đầu vào 5 triệu lần, lần lượt từng hàm, hàm băm cũng tạo ra cùng một đầu ra chính xác 5 triệu lần.

Nếu một hàm băm là để tạo ra các kết quả khác nhau mỗi lần cắm cùng một đầu vào, thì hàm băm sẽ quá ngẫu nhiên và vô dụng. Cũng không thể xác minh đầu vào được cung cấp, đó là toàn bộ điểm của mật khẩu băm.

Chống ảnh trước

Kết quả của bất kỳ hàm băm nào sẽ không tiết lộ bất kỳ thông tin nào về đầu vào được cung cấp. Điều này được gọi là kháng hình ảnh trước. Mặc dù các hàm băm mật mã có thể nhận được bất kỳ loại thông tin nào, cho dù đó là các chữ cái, từ, dấu chấm câu hoặc số, hàm băm phải luôn đưa ra cùng một kết quả có độ dài cố định. Điều này đúng ngay cả khi bạn nhập toàn bộ sách ký tự.

Điều này là để che giấu bất kỳ gợi ý nào về đầu vào là gì. Các hacker không thể đoán được những gì ban đầu được cung cấp. Do đó, không thể xác định chuỗi dài hay ngắn.

Chống va chạm

Đặc tính cuối cùng xác định mức độ khó có thể tìm thấy hai đầu vào khác nhau tạo ra cùng một kết quả. Điều này có nghĩa là có bất kỳ số lượng đầu vào có thể được thực hiện, nhưng đầu ra vẫn có độ dài cố định. Ngoài ra còn có rất nhiều đầu ra mà hàm băm phải tạo ra, nhưng số lượng là hữu hạn trái ngược với đầu vào, có thể là vô hạn.

Nói một cách đơn giản, mục tiêu là làm cho việc tìm kiếm hai đầu vào tạo ra cùng một đầu ra hoàn toàn không thể, và xác suất của nó có thể bị loại bỏ trước khi bất kỳ rủi ro nào được đánh giá.

Tại sao băm không thể đảo ngược

Tại sao Băm là không thể đảo ngược – Các hàm băm thường là một chiều do phần lớn văn bản đơn giản bị loại bỏ trong quá trình mã hóa. Việc so khớp được thực hiện bằng cách đưa văn bản người dùng thông qua hàm băm và so sánh nó với văn bản được mã hóa.

Tấn công Hash Collision là gì

Hash Collision Attack – Xung đột băm đề cập đến hai văn bản đầu vào có cùng một đầu ra sau khi mã hóa. Điều này được gọi là va chạm và cố gắng tìm các chuỗi như vậy được gọi là các cuộc tấn công va chạm băm. Điều này rất khó xảy ra do sự phức tạp của các khóa băm hiện tại.

Hiểu mật khẩu muối

Mật khẩu muối – Salting có nghĩa là nối thêm một chuỗi vào mật khẩu trước khi mã hóa nó. Điều này khiến kẻ tấn công khó xác định mật khẩu dựa trên bảng mật khẩu được tính toán trước được gọi là bảng cầu vồng.

Tiêu băm là gì

Các nhà mật mã muốn nêm gia vị băm của họ bằng một loại gia vị khác gọi là tiêu pepper. Điều này tương tự như kỹ thuật muối, ngoại trừ giá trị mới được đặt ở cuối mật khẩu. Có hai phiên bản của hạt tiêu. Đầu tiên là một giá trị ẩn đã biết được thêm vào từng giá trị, nhưng nó chỉ có giá trị nếu không được tin tặc biết.

Thứ hai là giá trị được tạo ra ngẫu nhiên bởi hệ thống, nhưng nó không được lưu trữ. Điều này có nghĩa là mỗi khi người dùng cố gắng đăng nhập, họ phải thử nhiều kết hợp thuật toán băm và thuật toán pepper để tìm đúng giá trị khớp với hàm băm. Điều này có nghĩa là có thể mất nhiều thời gian để đăng nhập, đó là lý do tại sao nó được sử dụng.

Cách lưu trữ mật khẩu hoạt động với chức năng Hash

Cách lưu trữ mật khẩu hoạt động với chức năng Hash – Điều này đề cập đến việc lưu trữ mật khẩu người dùng theo cách được mã hóa để đảm bảo rằng các bên ngoài không thể thao túng đăng nhập của người dùng trong trường hợp cơ sở dữ liệu bị xâm phạm.

Làm thế nào để tấn công bảng Rainbow

Bảng Rainbow – Đây là bảng mật khẩu và đầu ra của chúng khi được mã hóa bằng nhiều hàm băm đã biết. Các bảng như vậy được sử dụng để xác định mật khẩu mà không phải dành thời gian cho tính toán hàm băm.

Những công cụ cần thiết cho các hàm Hash

Các công cụ cần thiết cho các hàm băm – Các loại hàm băm khác nhau có sẵn dưới dạng các công cụ trực tuyến nơi văn bản thuần có thể được mã hóa bằng cách sao chép chúng vào một trường văn bản nhất định. MD5 và SHA-256 là một số chức năng băm phổ biến hơn.

Hiểu các lớp học cho các hàm băm mật mã

Có một số lớp khác nhau của hàm băm có sẵn. Tuy nhiên, có một vài cách phổ biến hơn được sử dụng ngày nay, bao gồm:

  •  BẠC2
  •  Thuật toán băm an toàn hoặc SHA-2 và SHA-3
  •  Đánh giá tính toàn vẹn của RACE MEssage DIGEST hoặc RIPEMD
  •  Thuật toán tiêu hóa tin nhắn 5 (MD5)

Mỗi lớp này liên quan đến các hàm băm với một số thuật toán khác nhau được kết hợp. Với SHA-2, một nhóm các hàm băm được phát triển để làm cho nó khó bị bẻ khóa hơn. Điều này bao gồm SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224 và SHA-512/256.

Mặc dù mỗi loại khác nhau theo cách chúng biến đổi một đầu vào nhất định, chúng cũng có các độ dài cố định khác nhau mà chúng tạo ra sau khi tiêu hóa đầu vào. Ví dụ: SHA-256 được sử dụng nhiều nhất trong công nghệ blockchain và nó dựa trên mã Bitcoin gốc.

Băm được xử lý như thế nào

Băm được xử lý như thế nào

Trong một từ, ngay lập tức. Đối với một lời giải thích chi tiết, quá trình phức tạp hơn một chút mặc dù nó hoàn toàn tự động và xảy ra trong vài giây. Quá trình này còn được gọi là Hiệu ứng Avalanche hoặc Hiệu ứng cánh bướm.

Về cơ bản, kích thước của khối dữ liệu khác nhau từ thuật toán băm này sang thuật toán băm tiếp theo. Đối với một thuật toán cụ thể như SHA-1, thông báo hoặc mật khẩu được chấp nhận trong các khối chỉ chứa 512 bit. Điều này có nghĩa là nếu mật khẩu chỉ có độ dài 512 bit, hàm băm sẽ chỉ chạy một lần. Nếu thông báo là 1024 bit, thì nó được chia thành các khối 512 bit riêng biệt. Hàm băm cũng chạy hai lần.

Trong hầu hết các trường hợp, một kỹ thuật gọi là Padding cũng được sử dụng, có nghĩa là toàn bộ tin nhắn hoặc mật khẩu được chia thành các khối dữ liệu có kích thước bằng nhau. Hàm băm sau đó được lặp lại nhiều lần bằng tổng số khối. Các khối này được xử lý lần lượt từng khối. Trong quá trình này, đầu ra của khối dữ liệu đầu tiên được cung cấp làm đầu vào cùng với khối dữ liệu tiếp theo.

Đầu ra của khối thứ hai sau đó được đưa đến khối thứ ba, v.v. Điều này làm cho đầu ra cuối cùng có cùng số với tổng giá trị của tất cả các khối với nhau. Nếu bạn thay đổi cắn bất cứ nơi nào trong mật khẩu hoặc tin nhắn, toàn bộ giá trị băm cũng sẽ thay đổi, do đó tên Avalanche Effect.

Kết thúc

Nếu mật khẩu của bạn được băm và muối đúng cách, thì cách duy nhất để vượt qua sẽ là một cuộc tấn công vũ phu. Với mật khẩu dài hơn có nhiều mã hóa hơn, cuộc tấn công vũ phu mất nhiều thời gian hơn, có nghĩa là nó Cấm nhiều thời gian và tốn kém hơn cho tin tặc.

Điều này có nghĩa là người dùng của bạn phải luôn tạo mật khẩu dài hơn và định cấu hình bằng các ký tự bí mật, chẳng hạn như ký hiệu hoặc chữ viết hoa. Đây cũng là lý do tại sao các chuỗi mật khẩu được tạo ngẫu nhiên an toàn hơn một từ trong từ điển, vì các cuộc tấn công vũ phu sử dụng từ điển để tìm các từ để kiểm tra.

Khi đăng ký với bất kỳ doanh nghiệp trực tuyến nào, bạn phải luôn kiểm tra xem họ xử lý mật khẩu của họ như thế nào. Chúng có được mã hóa không? Họ có băm không? Thông tin của bạn sẽ được bảo vệ như thế nào? Hầu hết các công ty có băm liệt kê điều này trong chính sách bảo mật của họ.

Công cụ đề xuất

  • VPN tốt nhất
  • Quản lý mật khẩu tốt nhất
  • Đánh giá an ninh gia đình
Kim Martin Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map