Thắc mắc giữa mã hóa và hàm băm?

ciso93

W-------
17/05/2015
8
25 bài viết
Thắc mắc giữa mã hóa và hàm băm?
Chào mọi người,
Mình có 1 vấn đề liên quan đến mã hóa và hàm băm muốn hỏi mọi người.

Theo như mình biết thì hàm băm (hash) dùng để xác định tính toàn vẹn của dữ liệu khi truyền trên đường truyền mạng.
Tuy nhiên, mình có nghe đến khái niệm mã hóa hash.

Theo như mình biết thì hàm băm là hàm 1 chiều (chỉ hash không thể dịch ngược với SHA-1).
Vậy nếu như mã hóa dữ liệu bằng hàm băm thì sau đó sẽ giải mã như thế nào khi đó là hàm một chiều?
Hay việc nói đến mã hóa hàm hash ở đây ý chỉ đến việc hash key của thuật toán mã hóa và giải mã?
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Re: Thắc mắc giữa mã hóa và hàm băm?

Bổ sung thêm từ bài dẫn:
Hàm hash rất hiệu quả khi dùng kiểm tra dữ liệu không bị thay đổi ngẫu nhiên, nhưng nó không thể đảm bảo là dữ liệu không bị thay đổi cố tình. Ví dụ: Alice truyền dữ liệu (M) cho Bob. Để đảm bảo dữ liệu không bị thay đổi, Alice thực hiện băm dữ liệu H(M)=h và gửi kèm giá trị này với M. Bên Bob, khi nhận được dữ liệu sẽ băm lại H(M)=x và so sánh “x” với giá trị “h” gửi kèm. Nếu x=h thì M không bị thay đổi trong khi truyền. Tuy nhiên, giả sử có một attacker đứng giữa Alice – Bob và đánh cắp dữ liệu. Attacker biến đổi Mà M’, băm lại giá trị này H(M’)=h’ và gửi cặp (M’,h’) sang cho Bob. Phía nhận tính toán lại, H(M’)=x’ và so sánh với “h’”. Kết quả trùng nhau. Điều này có nghĩa là Bob kiểm tra và không thấy dữ liệu bị thay đổi trong hoạt động truyền (từ attacker) nhưng lại không phát hiện ra dữ liệu đã bị thay đổi so với gốc (từ Alice). Đây chính là thiếu “tính xác thực” trong hoạt động truyền.
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
Re: Thắc mắc giữa mã hóa và hàm băm?

ciso93;26996 đã viết:
Chào mọi người,
Mình có 1 vấn đề liên quan đến mã hóa và hàm băm muốn hỏi mọi người.

Theo như mình biết thì hàm băm (hash) dùng để xác định tính toàn vẹn của dữ liệu khi truyền trên đường truyền mạng.
Tuy nhiên, mình có nghe đến khái niệm mã hóa hash.

Theo như mình biết thì hàm băm là hàm 1 chiều (chỉ hash không thể dịch ngược với SHA-1).
Vậy nếu như mã hóa dữ liệu bằng hàm băm thì sau đó sẽ giải mã như thế nào khi đó là hàm một chiều?
Hay việc nói đến mã hóa hàm hash ở đây ý chỉ đến việc hash key của thuật toán mã hóa và giải mã?

2 khái niệm Hashing và Encryption (mã hóa) rất khác nhau
- Hashing là quá trình một chiều, không thể đảo ngược nhằm xác định tính duy nhất của đối tượng
- Encryption bao gồm encrypt và decrypt, là quá trình chuyển văn bản từ dạng này sang dạng khác nhằm bảo toàn tính bí mật của văn bản

Còn khái niệm Mã hóa Hash thì tôi cũng chưa nghe thấy, có thể do cách dùng từ sai
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
Re: Thắc mắc giữa mã hóa và hàm băm?

ping;27051 đã viết:
2 khái niệm Hashing và Encryption (mã hóa) rất khác nhau
- Hashing là quá trình một chiều, không thể đảo ngược nhằm xác định tính duy nhất của đối tượng
- Encryption bao gồm encrypt và decrypt, là quá trình chuyển văn bản từ dạng này sang dạng khác nhằm bảo toàn tính bí mật của văn bản

Còn khái niệm Mã hóa Hash thì tôi cũng chưa nghe thấy, có thể do cách dùng từ sai

Mã hóa Hash ở đây là tức là việc encrypt(hash_value) để tránh việc hash bị sửa đổi trên đường truyền. Ở đây có thể hiều như sau:

A gửi cho B một gói tin, A muốn đảm bảo toàn vẹn trên đường truyền nên đã hash nội dung gói tin, đính kèm thêm vào gói tin hash_value và gửi cho B. B kiểm tra tính toàn vẹn bằng cách tách hash_value và so sánh với giá trị hash tính toán từ nội dung gói tin.

Giả sử có C trên đường truyền, C bắt được gói tin A gửi đi, thực hiện việc tách hash_value, sửa đổi nội dung gói tin, tính toán lại hash_value mới và găn vào gói tin, sau đó gửi lại cho B. Như vậy B hoàn toàn không thể biết được nội dung của gói tin đã bị sửa trên đường truyền.

Để phòng tránh việc này, A sẽ mã hóa hash_value đi, nếu C bắt được gói tin, sửa đổi nội dung và tính toán lại hash_value thì C cũng không thể encrypt hash_value mới đó do không biết key và thuật toán A dùng để mã hóa hash_value. Từ đó B có thể chắc chắn được việc giá trị hash đó không bị sửa đổi trên đường truyền...
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
Re: Thắc mắc giữa mã hóa và hàm băm?

X Hunt3r;27052 đã viết:
Để phòng tránh việc này, A sẽ mã hóa hash_value đi, nếu C bắt được gói tin, sửa đổi nội dung và tính toán lại hash_value thì C cũng không thể encrypt hash_value mới đó do không biết key và thuật toán A dùng để mã hóa hash_value. Từ đó B có thể chắc chắn được việc giá trị hash đó không bị sửa đổi trên đường truyền...

Việc mã hóa hash_value ở đầu A sau đó phải giải mã ở đầu B làm tăng thêm chi phí.

Giải pháp cho vấn đề đảm bảo tính toàn vẹn đã được đưa ra ở bài viết về hệ thống mật mã. Trích dẫn:

Trong mật mã học, keyed-hash message authentication code (HMAC or KHMAC) là một kiểu của message authentication code (MAC).HMAC được tính toán bằng cách sử dụng một hàm hash cùng với secret key (là key chỉ có sender và receiver biết). Bây giờ, chúng ta có hàm hash như sau: H(M,K)=h, trong đó M là message (dữ liệu cần băm) và K là secret key. Với việc dùng thêm secret key, hàm HMAC cung cấp thêm tính năng xác thực nguồn tin và có thể chống lại man-in-the-middle attack.
149089325020150725.3.1.png


Chúng ta xem lại ví dụ “Alice truyền dữ liệu (M) cho Bob”. Để đảm bảo dữ liệu toàn vẹn và thêm tính năng xác thực bằng cách dùngsecret key (K), Alice thực hiện băm dữ liệu H(M,K)=h và gửi kèm giá trị này với M. Bên Bob, khi nhận được dữ liệu sẽ băm lại H(M,K)=xvà so sánh “x” với giá trị “h” gửi kèm. Nếu x=h thì M không bị thay đổi trong khi truyền. Giả sử có một attacker đứng giữa Alice – Bob và đánh cắp dữ liệu nhưng không biết secret key (K). Attacker biến đổi Mà M’, băm lại giá trị này H(M’,K’)=h’ và gửi cặp (M’,h’) sang choBob. Phía nhận tính toán lại, H(M’,K)=x’ và so sánh với “h’”. Kết quả khác nhau vì tập đầu vào (M’,K) phía Bob khác với (M’,K’) phíaattacker. Điều này chứng tỏ dữ liệu bị thay đổi và không phải do Alice gửi.
Các bạn tham khảo thêm ví dụ sau:
149089325020150725.3.2.png

Giao thức IP Security trong triển khai VPN sử dụng hàm HMAC để cung cấp tính năng xác thực nguồn tin và kiểm tra toàn vẹn dữ liệu.
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
Re: Thắc mắc giữa mã hóa và hàm băm?

cảm ơn mọi người :) Có vẻ như mọi thứ cũng bắt đầu rõ ràng hơn với mình rồi :)

Theo như mình hiểu thì nó sẽ như thế này:
Giả sử A muốn gửi một mesage M đến cho B.
Việc đầu tiên là A sẽ mã hóa M đó (theo mã hóa đối xứng).
Trong mã hóa đối xứng sẽ phải dùng 1 key để vừa mã hóa và giải mã gói tin. Key này sẽ được A tiếp tục mã hóa sử dụng thuật mã hóa bất đối xứng để đảm bảo an toàn.
Cuối cùng thì gói tin và key được mã hóa sẽ được đóng gói, hash lại và gửi trả cho B.

Nếu trong trường hợp C sử dụng man-in-the-middle attack thì khi tóm được M' (là gói tin mà M đã được mã hóa và hash lại) thì cũng không thể thay đổi gì được vì thứ nhất C không thể biết và giải mã được key đã được mã hóa bất đối xứng. Thứ 2 là C cũng không thể thay đổi gói tin vì đã được hash cùng với key.

Nếu sử dụng cách thức như trên thì việc mã hoá hash cũng không cần thiết nữa đúng không ạ?
Bởi vì A đã hash cả M và key rồi. Khi C bắt được cũng không thể tìm ra key để hash lại một cách chính xác được....
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
Bên trên