Những điều cơ bản về an ninh mạng: MẬT MÃ ĐỐI XỨNG

13/07/2023 Đăng bởi: Aucontech HMS Network VN

Mã hóa và chữ ký bằng mật mã không đối xứng

Hơn 2000 năm trước, Caesar đã bảo vệ các thông điệp quân sự của mình bằng cách mã hóa chúng. Nó có khả thi ở thời nay không?

Một trong những bài cuối cùng của những điều cơ bản an ninh mạng, họ thấy rằng mật mã đối xứng, ngay cả khi cung cấp tính bảo mật cho đến một mức độ nhất định, vẫn không đủ để đảm bảo tính xác thực và tính toàn vẹn. Vậy, mật mã bất đối xứng có thể giải được phương trình này như thế nào?

Hãy lấy một ví dụ và đặt tên Alice và Bob là 2 người muốn trao đổi một tin nhắn bí mật. Mỗi loại có một khóa công khai và khóa riêng tương ứng.

Điều cần biết như một định đề: Một thông điệp được mã hóa bằng khóa công khai chỉ có thể được giải mã bằng khóa riêng tư (bí mật) tương ứng. Một thông báo được mã hóa bằng khóa riêng tư chỉ có thể được giải mã bằng khóa công khai tương ứng (chúng ta sẽ thấy lợi ích của việc này ở phần sau của bài viết này).

Dựa trên tình huống trên, Alice muốn gửi một tin nhắn cho Bob, sẽ mã hóa nó bằng khóa công khai của Bob. Trong trường hợp đó, chỉ Bob mới có thể giải mã nó bằng khóa bí mật của riêng mình.

Chúng tôi vừa trả lời về nhu cầu bảo mật.

Nhưng làm sao Bob có thể chắc chắn rằng Alice chính là người đã gửi tin nhắn cho anh ta? Làm thế nào anh ta có thể chắc chắn rằng tin nhắn không bị sửa đổi khi chuyển tiếp? Để trả lời câu hỏi này, Alice cũng sẽ sử dụng cơ chế chữ ký.

Trước khi nói về chữ ký, chúng ta phải giới thiệu khái niệm “hash function”. “hash function” là một “mill” biến văn bản thành chữ ký (còn được gọi là dấu vân tay).

“Mill” này có 5 thuộc tính:

  • Đối với cùng một chức năng, số lượng ký tự trong vân tay luôn giống nhau,
  • Dấu vân tay không cho phép tái tạo văn bản gốc,
  • Không thể đoán trước được dấu vân tay,
  • Dữ liệu giống hệt nhau cung cấp một dấu vân tay giống hệt nhau,
  • Dữ liệu khác nhau dẫn đến một dấu vân tay hoàn toàn khác nhau.

“MD5”“SHA” là hai hash function nổi tiếng. Với MD5, văn bản “Ewon: IIoT dẫn đầu trong 20 năm” được chuyển đổi thành chuỗi 32 ký tự: “5b184c5cafcad9ef410afbcb0fab5518”. Nội dung hoàn chỉnh của Wikipedia cũng sẽ dẫn đến một chuỗi (hoàn toàn khác) gồm 32 ký tự.

Không gì dễ dàng hơn là chuyển đổi theo một hướng: chỉ cần sử dụng một trong những công cụ trực tuyến dễ tìm thấy trên internet. Không cần phải nói rằng điều ngược lại không phải là dễ dàng 😉

Phần trên đang được xem xét, hãy quay lại ví dụ của Ewon:

Để ký một tài liệu, trước tiên Alice tạo dấu vân tay của tài liệu bằng hàm băm (như https://www.md5hashgenerator.com/ hoặc bất kỳ chức năng nào khác mà bạn có thể tìm thấy trên internet. Sau đó, cô ấy mã hóa dấu vân tay này bằng khóa cá nhân của mình. Cô ấy có được chữ ký trên tài liệu của cô ấy mà cô ấy có thể gửi cho Bob cùng với tài liệu gốc.

Sau đó Bob sẽ giải mã chữ ký bằng khóa công khai của Alice. Nếu điều đó không hiệu quả, đó là vì tài liệu không được gửi bởi Alice (người duy nhất sở hữu khóa cá nhân). Nếu điều này hiệu quả, anh ta có thể chắc chắn rằng chính Alice là người đã ký vào tin nhắn.

Do đó, Bob có được dấu vân tay đầu tiên của tài liệu.

Sau khi đạt được bước này, Bob sẽ tạo dấu vân tay của tài liệu gốc mà anh ta cũng nhận được, sử dụng cùng một hàm băm như Alice.

Nếu cả hai dấu vân tay đều giống hệt nhau, thì anh ta hoàn toàn chắc chắn rằng tài liệu không bị sửa đổi từ thời điểm Alice gửi nó đến khi anh ta nhận được nó.

Sự kết hợp giữa mã hóa và chữ ký là cách duy nhất để đồng thời mã hóa và ký một tài liệu và đảm bảo tính bí mật, toàn vẹn và xác thực của thông điệp.

Điều đó rất hay nhưng có thể có một vấn đề cuối cùng: Thật vậy, làm sao Alice có thể chắc chắn rằng cô ấy đang sử dụng khóa công khai của Bob khi cô ấy mã hóa một tin nhắn? Thật vậy, nếu một hacker (hãy gọi anh ta là Eve) sẽ tạo ra một cặp khóa (riêng tư / công khai) và sau đó sẽ truyền chúng cho Alice bằng cách khiến cô ấy tin rằng chúng là khóa của Bob, Alice sẽ tiếp tục mã hóa các tin nhắn và truyền chúng đến Bob. Trong trường hợp đó, chỉ có Eve mới có thể giải mã và đọc tin nhắn ...

Vì vậy, Alice cần có khả năng xác thực Bob trước khi sử dụng khóa công khai của Bob. Để thực hiện việc này, Bob có thể có khóa công khai của mình được Certification Authorit (CA) công nhận. Cơ quan này sẽ đảm bảo rằng anh ta là chủ sở hữu của khóa công khai này. Bảo hiểm này có dạng một chứng chỉ mà CA cung cấp cho Bob. Chứng chỉ này chứa thông tin để xác định Bob và khóa công khai của Bob. Nó lần lượt được ký bởi Cơ quan cấp giấy chứng nhận để đảm bảo tính hợp pháp.

Điều này sẽ cho phép Alice liên hệ với cơ quan này để xác nhận rằng khóa công khai mà cô ấy đang sử dụng là của Bob.

Mật mã bất đối xứng chỉ có một nhược điểm so với mật mã đối xứng; nó chậm hơn. Để đạt được tốc độ, một kết nối an toàn sử dụng cả hai loại mã hóa, đối xứng và không đối xứng.

Khi mạng internet thiết lập kết nối an toàn với máy chủ, trước tiên nó sẽ tạo một khóa phiên đối xứng (tạm thời). Sau đó, nó sẽ sử dụng khóa công khai của máy chủ (có tính xác thực và hợp lệ được xác minh nhờ chứng chỉ của nó) để mã hóa khóa phiên này và gửi nó trở lại máy chủ, sau khi được giải mã nó sẽ có thể giao tiếp với trình duyệt của tôi trong một cách đối xứng.

Cách tiếp cận này là giải pháp cho vấn đề Caesar 2000 năm tuổi. Nhờ đó, hai phía biết nhau có thể trao đổi bí mật mà không cần thỏa thuận trước về khóa mã hóa / giải mã.

 

 Tags: Ewon
zalo