- vừa được xem lúc

Ngăn chặn tấn công Man-in-the-middle khi triển khai hệ thống trao đổi khóa Elliptic Curve Diffie-Hellman

0 0 13

Người đăng: Hiếu Võ

Theo Viblo Asia

Chào mọi người, trong phần trước mình có trình bày về giao thức trao đổi khóa Diffie-Hellman trên đường cong Elliptic (ECDH). Tuy nhiên, hệ thống ECDH đơn giản có thể bị tấn công Man-in-the-middle (MITM) như sau:

Vẫn là ví dụ như lần trước, Alice và Bob thỏa thuận khóa nhưng lần này sẽ có thêm Mark đứng giữa thực hiện giả mạo để tấn công MITM. Đầu tiên, Mark chọn private key nM và tạo public key của mình là Qm = nM * G. Khi bắt được public key từ Alice gửi đến Bob, Mark tiến hành giả mạo Bob và gửi public key Qm của mình cho Alice, đồng thời tiến hành giả mạo Alice để gửi public key Qm của mình cho Bob. Khi đó, Bob nhận được Qm sẽ gửi lại public key của mình là Qb cho Mark. Như vậy, Mark đứng giữa đã thực hiện tạo khóa phiên dùng chung với Alice là nA * Qm = nM * Qa = nA * nM * G, và với Bob là nM * Qb = nB * Qm = nM * nB * G. Do đó, mọi thông tin Alice và Bob gửi cho nhau đều bị Bob bắt được và giải mã.

Việc dễ dàng bị tấn công MITM là do hệ thống không thể xác thực các bên tham gia. Để giải quyết vấn đề này, thông thường sẽ có một số tổ chức (Certificate Authorities) đứng ra cấp phát chứng chỉ như giao thức SSL/TLS. Chứng chỉ SSL/TLS bao gồm một số thông tin sau:

  • Tên miền của server được chứng thực
  • Thông tin về tổ chức chứng thực
  • Thời hạn hiệu lực
  • Khóa công khai public key của server được chứng thực.
  • Chữ ký số: Chứng chỉ SSL/TLS sẽ chứa chữ ký số được tạo ra bằng cách sử dụng khóa riêng của tổ chức chứng thực để xác thực tính xác thực của chứng chỉ.

Như vậy, Alice và Bob cần kiểm tra chứng chỉ để so khớp domain name với public key trước khi chấp nhận public key của người kia. Tóm lại, chứng chỉ ssl/tls dùng để đảm bảo public key ứng với một domain cụ thể. Do đó, để trao đổi thông tin an toàn cần làm các công việc sau:

  • Các bên tham gia đăng kí chứng chỉ SSL/TLS
  • Khi các bên tương tác với nhau cần kiểm tra chứng chỉ để đảm bảo không ai bị giả mạo
  • Sử dụng ECDH để tạo khóa phiên
  • Sau khi có khóa phiên thì dùng một số loại mã hóa đối xứng an toàn như AES để mã hóa thông tin cần trao đổi trong phiên đó.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Tìm bug với Eyewitness

. Chào các bạn, trong bài này mình sẽ viết về tool Eyewitness. Eyewiteness có tính năng chính là chụp hình lại giao diện trang web sau đó tạo một report thông qua file .

0 0 24

- vừa được xem lúc

[I passed OSWE] Nguồn gốc và sức mạnh | Tự tin và sự cố gắng

1. Giới thiệu.

0 0 17

- vừa được xem lúc

Tôi đã đánh cắp tên miền của MIT như thế nào?

. Chào cả nhà, lại là mình đây! Hôm này mình mang tới chủ đề mới đó là subdomain takeover hay nói cách đơn giản chiếm subdomain của người khác. Lỗi này rất thú vị và khá đơn giản để tìm kiếm.

0 0 33

- vừa được xem lúc

Keyboard from Scratch: Từ A tới Z

Keyboard from Scratch: Từ A tới Z. Sau khi kết thúc hai phần trước, chúng ta đã có những kiến thức cơ bản về chiếc bàn phím cơ, không để các bạn đợi lâu, ở phần này chúng ta sẽ thực sự bắt tay vào làm

0 0 27

- vừa được xem lúc

Keyboard from Scratch: Debounce

Keyboard from Scratch: Debounce. Bạn đang xem phần hai của một sê ri nhiều phần, nhiều chừng nào, nhiều đến khi nào, thì chưa biết được. . .

0 0 24

- vừa được xem lúc

Keyboard from Scratch: Prototype

Keyboard from Scratch: Prototype. Là một lập trình viên, bàn phím là một vật dụng bạn phải sờ vào hằng ngày, thậm chí số lần bạn sờ nó còn nhiều hơn số lần bạn sờ vào vợ hoặc bạn gái.

0 0 21