Kiến thức cơ bản về HOPR_Tập 3: Định tuyến ẩn danh
Theo
2 tháng 7 · 4 phút đọc
Đây là tập thứ ba trong loạt bài của chúng tôi bao gồm những kiến thức cơ bản về HOPR. Các tập trước có thể được tìm thấy tại đây (Tập 1 - HOPR là gì?) Và tại đây (Tập 2 - Siêu dữ liệu là gì?).
Lần trước, chúng ta đã biết về số lượng siêu dữ liệu kết nối khổng lồ được tạo ra mỗi khi chúng ta làm bất cứ điều gì trực tuyến. Siêu dữ liệu này có thể được sử dụng để xây dựng hồ sơ về tất cả các hoạt động của chúng ta, cả trên Internet và ngoài thực tế.
Đây là một vấn đề rất nghiêm trọng đối với quyền riêng tư, nhưng làm thế nào để có thể khắc phục được điều đó? Vì chúng ta đều biết, siêu dữ liệu là một phần thiết yếu của cách thức hoạt động của Internet. Vì thế, không chỉ đơn giản như tắt nó đi là chúng ta được bảo vệ bí mật.
Trong tập này, chúng ta sẽ tìm hiểu những điều cơ bản về định tuyến dữ liệu ẩn danh qua các mạng như HOPR.
Nghịch lý của nhắn tin ẩn danh
Hãy quay trở lại ví dụ tương tự về phong bì từ tập trước: thử tưởng tượng bạn đang gửi một tin nhắn cho bạn bè của mình qua đường bưu điện, nhưng bạn không tin tưởng những người gửi nó. Làm thế nào để bạn giữ nó bí mật? Bạn có một tùy chọn là viết tin nhắn bằng mã mà chỉ bạn và bạn bè của mình biết. Sau đó, ngay cả khi ai đó mở phong bì, thông điệp bên trong sẽ là vô nghĩa đối với họ. Điều này tương đương với mã hóa dữ liệu từ điểm đầu đến điểm cuối (end-to-end).
Nhưng lần trước chúng ta đã thấy rằng vấn đề không phải là dữ liệu, mà là siêu dữ liệu. Bạn có dám khẳng định rằng không ai biết bạn đang viết thư cho bạn mình ? Cách tiếp cận viết tin nhắn bằng mã như trên sẽ không có tác dụng. Hoặc nếu bạn viết địa chỉ giao hàng bằng mã, chắc chắn một điều là bức thư sẽ không bao giờ đến được đích.
Để giải quyết vấn đề này, một giải pháp đưa ra là ngụy tạo địa chỉ gửi đi và địa chỉ gửi đến bằng cách gửi thư qua một chuỗi người. Bạn chuẩn bị một gói phong bì, bên trong phong bì đó lại là các phong bì khác, mô hình tương tự với mô hình búp bê Nga (trong búp bê to, sẽ có một búp bê nhỏ hơn và tiếp tục như thế). Mỗi người được gửi đến sẽ gửi cho người tiếp theo trong chuỗi. Khi ai đó nhận được một gói, họ mở phong bì ngoài cùng và gửi phần còn lại của gói đến địa chỉ tiếp theo. Điều này sẽ tiếp tục cho đến khi bạn của bạn nhận được phong bì cuối cùng, phong bì có tin nhắn. Bất kỳ ai chỉ xem một lần gửi sẽ không thể biết đó là điểm đến hay chỉ là một liên kết trong chuỗi.
Mỗi người trong chuỗi gỡ bỏ một lớp mã hóa trước khi chuyển đi. Không ai có thể biết chính xác họ đang ở đâu trong chuỗi.
Đây là một phép định tuyến cơ bản tương tự như cách hoạt động của định tuyến Onion và được sử dụng trong các nền tảng của dự án Tor, dự án mà bạn có thể đã nghe nói đến (Tor là viết tắt của The Onion Router). Trong định tuyến Onion, các phong bì thực sự là các lớp được mã hóa, vì vậy không ai có thể mở nhiều hơn một lớp hoặc nhìn trước và theo dõi lộ trình mà thư sẽ đi (hoặc đã thực hiện). Khi bạn nhận được dữ liệu, bạn chỉ biết nó đến từ nút nào và nó sẽ chuyển đến nút nào tiếp theo.
Quá trình chuyển thông điệp từ người nhận này sang người nhận tiếp theo được gọi là chuyển tiếp . Đó cũng là cách HOPR lấy tên từ đó, bởi vì dữ liệu ‘nhảy’ ‘Hops’ từ người này sang người khác trước khi đến đích. Tập hợp toàn bộ các bộ chuyển tiếp được gọi là một mạng , với mỗi điểm trong mạng được gọi là một nút .
Đây là một hệ thống khá tốt, và đối với con người, nó sẽ quá phức tạp để theo dõi ai đang gửi tin nhắn cho ai. Tuy nhiên, với những ai có đủ năng lực phân tích, họ vẫn có thể bẻ khóa hay nói cách khác là giải mã được các mạng như thế này.
Nếu bạn có thể theo dõi các hoạt động trên mạng, bạn có thể bắt đầu tìm các điểm mẫu tương tự giữa các nút. Như ảnh phía trên, nếu Chāo nhận một gói dữ liệu từ Betty và sau đó gửi một gói khác đến Dmytro, bạn có thể suy ra rằng chúng đều là một phần của cùng một chuỗi. Sau khi thực hiện đủ các phép loại trừ như thế, bạn có thể xóa bỏ quyền riêng tư của các mạng đang hoạt động như thế. Điều này thậm chí còn dễ dàng hơn nếu Betty, Chāo hoặc Dmytro (hoặc thậm chí cả ba) là những kẻ tấn công!
Bạn thấy đấy, chúng ta cần được bảo vệ để chống lại hai loại kẻ tấn công đồng thời: một người có thể nhìn thấy tất cả các hoạt động mạng từ bên ngoài và một người nào đó đóng giả là một hoặc nhiều nút trung thực (hay nút được tin tưởng để chuyển tiếp dữ liệu), tấn công hệ thống từ bên trong. Hãy nhớ rằng, trong một mạng phi tập trung mở, điều quan trọng là bất kỳ ai cũng có thể tham gia vào đó. Điều này rất quan trọng đối với sự tự do, nhưng lại khiến cho việc bảo vệ sẽ khó hơn gấp nhiều lần.
Tách gói
Một cách để cải thiện bảo mật là chia nhỏ tin nhắn của chúng ta thành các gói được đánh số khác nhau . Khi tất cả các gói đến đích, việc đánh số có thể được sử dụng để tái tạo lại toàn bộ thông điệp. Hệ thống này được sử dụng trong việc truyền dữ liệu tiêu chuẩn trên Internet, nhưng nó có thêm sức mạnh mới trong một mạng như HOPR. Vì bạn có thể chọn gửi từng gói tin qua từng tuyến đường khác nhau. Sự gia tăng của các tuyến đường làm cho việc theo dõi những gì đang diễn ra trở nên khó khăn hơn và cũng làm giảm thông tin mà các nút độc hại có thể truy cập và thu thập được.
Việc chia nhỏ dữ liệu thành các gói được đánh số cho phép chúng ta gửi một tin nhắn bằng nhiều tuyến đường khác nhau, rồi tập hợp lại nó tại đích.
Tuy nhiên, khó hơn nhưng không phải là không thể. Ngay cả với tất cả sự phức tạp này, những kẻ tấn công vẫn có thể sử dụng các siêu dữ liệu khác như thời gian, kích thước tin nhắn và nhật ký kết nối để xây dựng thành một bức tranh thống nhất về lưu lượng truy cập qua mạng. Vì thế, chúng ta cần phải làm tốt hơn nữa.
Vì thế, chúng ta phải đưa cách tiếp cận này lên cấp độ tiếp theo cao hơn đó là cách trộn_Mixing , điều này sẽ làm tăng thêm một lớp mã hóa phức tạp hơn cho tin nhắn. Chúng ta sẽ xem cách đó hoạt động vào tập tiếp theo.
Jose Aguinaga,
HOPR Trưởng bộ phận Kỹ thuật
Trang web: https://www.hoprnet.org
Twitter: https://twitter.com/hoprnet
Telegram: https://t.me/hoprnet
Discord: https://discord.gg/dEAWC4G
LinkedIn: https:// www.linkedin.com/company/hoprnet
Diễn đàn: http://forum.hoprnet.org
Github: https://github.com/hoprnet