Avatar
0
tvd12 Enlightened
tvd12 Enlightened
Không có CA có được không?
Không có CA có được không? Khi có ý kiến cho rằng nếu ko trust ca mà trust all thì có khả năng bị middle attack ạ.
  • Answer
ssl
Remain: 5
2 Answers
Avatar
tvd12 Enlightened
tvd12 Enlightened
Đầu tiên em cần hiểu về việc mã hoá trao đổi dữ liệu đã. Client và server trao đổi khoá và mã hoá dữ liệu như sau:
  1. Client kết nối đến server.
  2. Client thực hiện bắt tay với server, ở bước này thì hoặc là client hoặc là server sẽ tạo ra một cặp khoá bí mật/công khai, sau đó gửi cho bên còn lại khoá công khai, ở đây, giả sử là server sẽ tạo ra cặp khoá và gửi cho client khoá công khai.
  3. Client khi nhận được khoá công khai sẽ tạo ra một session key, và dùng khoá công khai để mã hoá session key này và gửi cho session key đã được mã hoá cho server.
  4. Server sẽ dùng private key để giải mã và nhận được session key gốc.
  5. Từ sau đó client và server sẽ sử dụng session key để mã hoá dữ liệu, ví dụ là dùng thuật toán mã hoá AES.

Nhìn vào các bước ở trên em không thấy có sự xuất hiện của CA đúng không? Vậy vai trò của CA là gì?

CA có vai trò cốt lõi là một nơi để lưu chứng chỉ (thông tin) của server, nghĩa là nơi để lưu khoá công khai của server ánh xạ tới một số thông tin như email, trụ sở, ... Sau đó thì khi client nhận được khoá công khai của server thì sẽ gọi đến CA để kiểm tra, nếu được CA trả về là trust thì ok, ko thì ngắt kết nối.

Từ vai trò này phát sinh ra những tranh cãi về vai trò cao hơn của CA,. CA có cần xác thực độ tin cậy và hợp pháp của tên miền không? Bởi vì đối với người dùng bình thường họ chỉ cần nhìn thấy là https, chạy được trình duyệt bình thường là được, và họ tin, bởi vì họ không thể nào có kiến thức chuyên sâu để hiểu về chứng chỉ là gì, CA là gì vân vân.

Tuy nhiên ngày nay có thể thấy rằng, các CA ra đời như nấm, thậm chí là miễn phí, vậy thì chẳng có sự xác thực nào ở đây cả, thế cho nên hoàn toàn có thể mặc định giao thức HTTP là có mã hoá, bỏ CA đi, vậy cho đơn giản và tiết kiệm, đó cũng là một ý kiến đáng ghi nhận.

  • 0
  • Reply
Dạ ví dụ 1 case như vậy nha,

user request đến server có domain là example.com tuy nhiên có middle ở giữa, nếu ko có CA thì thì middle có thể hoàn toàn gửi một cert tương tự example.com về vì là self-cert. Anh giải thích giúp em rõ hơn về trường hợp này nha

 –  ronggiatdien 1698244795000
Ý em ở đây là middle attacker sẽ giả mạo luôn IP của server?  –  tvd12 1698244923000
dạ middle attacker sẽ chặn request đến server và tạo 1 request khác đến á anh, thì lúc này CA sẽ đóng vai trò verify cái cert đó, chỉ đc cấp mới owner  –  ronggiatdien 1698246391000
Avatar
tvd12 Enlightened
tvd12 Enlightened
CA
  • 0
  • Reply
CA  –  tvd12 1699573865000
CA  –  monkey 1699574053000
CA  –  tvd12 1699574066000