Cách mã hóa VPN hoạt động

Tác giả sysadmin, T.Sáu 08, 2023, 01:25:02 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

Cách mã hóa VPN hoạt động


VPN mã hóa kết nối của bạn, trước tiên bằng cách cắt xén kết nối, sau đó thêm các lớp mã hóa trên các khóa mở khóa.


Mạng riêng ảo là một dịch vụ cho phép bạn kết nối với các máy chủ ở bất cứ đâu trên thế giới, cho phép bạn giả vờ như bạn đang ở một nơi nào đó mà bạn không ở đó và đảm bảo kết nối của bạn trong quá trình này. Tuy nhiên, mã hóa VPN hoạt động như thế nào? Đây là cách nó giữ kết nối của bạn an toàn.

1. Giao thức VPN

Để hiểu mã hóa VPN, trước tiên chúng ta cần xem qua các giao thức VPN. Đây là những chương trình chi phối cách VPN giao tiếp với các thực thể khác trên mạng, chẳng hạn như máy chủ hoặc trang web—nó sử dụng thuật ngữ "giao thức" theo nghĩa tương tự như "một bộ quy tắc".

Có một số giao thức bạn có thể chọn, bao gồm một số giao thức do chính các nhà cung cấp VPN phát triển như Nordlynx của NordVPN hoặc Lightway của ExpressVPN. Những cái đáng tin cậy nhất không bị ràng buộc với một VPN cụ thể có lẽ là OpenVPN đã được thử và đúng và WireGuard tương đối mới.

Việc lựa chọn giao thức quyết định một số điều: ví dụ: WireGuard nhanh hơn rất nhiều so với hầu hết các giao thức khác, trong khi OpenVPN được coi là một trong những giao thức an toàn nhất. Điều này là do một số yếu tố, nhưng trong trường hợp này, thật thú vị vì giao thức cũng xác định loại mã hóa bạn có thể sử dụng trên đường hầm VPN của mình.

2. Khái niệm cơ bản về mã hóa

Khi bạn mã hóa thông tin, nó sẽ trở nên vô nghĩa bằng cách sử dụng một thuật toán thường xáo trộn thông tin nhiều lần. Ví dụ, khi còn nhỏ, bạn có thể đã tạo một thông điệp bí mật bằng cách thay thế các chữ cái trong bảng chữ cái bằng các con số, vì vậy tên của người bạn Al của bạn trở thành 1-12.

Một thuật toán thực hiện điều này, nhưng phải tiến thêm vài nghìn bước nữa, thay thế các chữ cái bằng các ký hiệu, sau đó chúng được thay thế lặp đi lặp lại. Cách duy nhất để mở khóa mớ hỗn độn này và làm cho nó có thể đọc lại được là sử dụng cái gọi là chìa khóa.

Trong trường hợp này, "chìa khóa" là một phần dữ liệu có thể mở khóa thông tin được mã hóa. Thật hấp dẫn khi coi nó như một mật khẩu, nhưng nó còn hơn thế nữa: nó thường là một chuỗi dài các chữ cái, số và ký hiệu hiển thị cho thuật toán mà bạn được phép giải mã thông tin.

3. Mã hóa đối xứng

Với bản thân thông tin được bảo mật, tất nhiên, câu hỏi đặt ra là bạn sẽ làm gì với chìa khóa, vì đó là điểm yếu của bất kỳ mã hóa nào: nếu bạn có chìa khóa, bạn có thể mở khóa bất cứ thứ gì mà nó đang bảo vệ. Cách cơ bản nhất để xử lý khóa là mã hóa đối xứng, còn được gọi là mã hóa khóa dùng chung. Trong trường hợp của bạn và người bạn Al trước đó, bạn chỉ cần nói cho Al biết hệ thống hoạt động như thế nào, nghĩa là cả hai bạn đều nắm giữ chìa khóa, điều hiển nhiên là như vậy.

Trong các hệ thống phức tạp hơn, mã hóa đối xứng hoạt động ít nhiều theo cùng một cách: khóa được sử dụng để mã hóa thông tin do cả hai bên nắm giữ. Trong trường hợp VPN, ứng dụng hoặc ứng dụng khách của bạn sẽ mã hóa dữ liệu của bạn bằng một khóa cũng được giữ bởi máy chủ VPN mà bạn đã kết nối, vì vậy, nó có thể giải mã thông tin khi nó đến một cách đơn giản.

4. AES và Blowfish

Các loại mã hóa đối xứng phổ biến nhất, được gọi là mật mã, là Tiêu chuẩn mã hóa nâng cao (AES) và Blowfish. AES được phát triển bởi chính phủ Hoa Kỳ và là mã hóa cấp độ quân sự nên nhiều công ty muốn khoe khoang. Blowfish được phát triển như một mật mã mã nguồn mở, nhưng có rất nhiều cuộc thảo luận về mức độ an toàn của nó.

Bất kể bạn sử dụng cái nào, sức mạnh của nó phụ thuộc rất nhiều vào số lượng bit mà nó có, về cơ bản là đoạn mã đóng vai trò là khóa dài bao nhiêu. Càng dài càng tốt, vì vậy AES-256 (vì vậy 256 bit) an toàn hơn AES-128. AES-256 có lẽ là biến thể phổ biến nhất và cũng an toàn nhất, vì vậy chúng tôi khuyên bạn nên sử dụng biến thể đó trong hầu hết các trường hợp.

5. Truyền phím

Tất nhiên, có một lỗ hổng rõ ràng trong tất cả những điều trên: nếu cả hai bên trong trao đổi đều có khóa không an toàn, một nhà điều hành hiểu biết có thể chặn khóa bằng cách nào đó và sau đó giải mã thông tin cho chính họ. Có một số cách để làm điều này, chẳng hạn như mạo danh một nút mạng ở giữa hoặc các hình thức chặn khác.

Để ngăn điều này xảy ra, bạn cần mã hóa bằng cách nào đó các khóa dùng chung được gửi. Bây giờ, bạn có thể làm như vậy bằng cách sử dụng nhiều khóa chia sẻ hơn, nhưng điều đó sẽ chỉ thêm một bước cho bất kỳ ai đang lắng nghe. Thay vào đó, tốt hơn nhiều là giới thiệu một loại mật mã mới, sử dụng mã hóa khóa chung.

"Khóa công khai" là một thuật ngữ khó hiểu, bởi vì "công khai" và "bảo mật" có khá nhiều từ trái nghĩa. Tuy nhiên, khóa công khai chỉ là một nửa của phương trình. Trong hệ thống khóa dùng chung, cả người gửi và người nhận đều có cùng khóa, trong hệ thống khóa chung, chỉ một nửa của người gửi là công khai, trong khi của người nhận là bí mật và chỉ họ biết.

Đây thực sự là một cách khéo léo để khắc phục sự cố: trong khi dữ liệu thực tế được gửi bằng các khóa dùng chung, bí mật nhưng dễ bị chặn, thì bạn tự truyền các khóa bằng một hệ thống mở được bảo vệ ở đầu bên nhận. Bằng cách này, dữ liệu có thể được truyền ít nhiều tự do nhưng an toàn không bị can thiệp hoặc nghe trộm.

6. Bảo mật tầng vận chuyển

Cách thức hoạt động của việc phân phối và kiểm tra khóa công khai là thông qua chứng nhận, về cơ bản có bên thứ ba xác định cho bạn rằng khóa được gửi là có thật. Cách phổ biến nhất để thực hiện việc này là sử dụng giao thức Lớp bảo mật vận chuyển, một cách mà các máy tính giao tiếp với nhau một cách an toàn trên web.

TLS được sử dụng trong tất cả các loại ứng dụng: thông thường khi bạn đăng nhập vào một trang web hoặc dịch vụ khác, mật khẩu của bạn sẽ được kiểm tra kỹ thông qua TLS. Bản thân TLS cũng sử dụng mã hóa để bảo mật thông tin, thường sử dụng một mật mã mã hóa đơn giản hơn gọi là RSA.

Chuỗi RSA dài hơn rất nhiều (thường trong phạm vi 1024 bit hoặc thậm chí dài hơn) so với chuỗi được sử dụng bởi AES hoặc Blowfish, nhưng vì nó không xáo trộn thông tin nhiều lần nên nó không được coi là an toàn. Do đó, nó được sử dụng tốt hơn để gửi khóa qua web vì nó giải mã nhanh hơn vì nó đơn giản hơn, nhưng có lẽ tốt nhất là không nên sử dụng cho lưu lượng VPN thực tế.

7. Hàm băm

Ngoài RSA, TLS còn có một thủ thuật nữa, đó là băm. Trong trường hợp này, băm là một hình thức bổ sung để kiểm tra xem yêu cầu truy xuất khóa dùng chung có hợp lệ hay không. Nó hoạt động như một dự phòng an toàn trong trường hợp kẻ tấn công tìm ra cách giả mạo chứng chỉ.

Có một số loại thuật toán băm: loại được sử dụng phổ biến nhất là SHA, cụ thể hơn là SHA-2. Tuy nhiên, có một số kiểu con của mật mã này, vì vậy bạn sẽ thường bắt gặp các thuật ngữ như SHA-256 hoặc SHA-512.

Vì bước băm là một hình thức kiểm tra kỹ xem mọi thứ có ổn không trước khi chuyển sang giải mã, nên không phải VPN nào cũng sử dụng bước này. Tuy nhiên, hầu hết các giao thức đều cho phép điều đó và nhiều nhà cung cấp sẽ tự hào nói với bạn rằng họ sử dụng nó.

8. Lớp Trên Lớp

Kết quả cuối cùng là một hỗn hợp các hàm băm, thuật toán và khóa có thể khiến bạn phải bối rối, nhưng kết quả cuối cùng là một VPN tốt sẽ bảo vệ bạn nhiều lần: đầu tiên, kết nối thực tế được mã hóa bằng AES hoặc Blowfish, sau đó các khóa mở khóa mã hóa này được bảo vệ lại, thường là nhiều lần.

Tất cả các VPN tốt nhất hiện có đều tuân theo kế hoạch chi tiết này và chúng tôi khuyên bạn nên kiểm tra kỹ xem VPN bạn chọn có làm như vậy không. Thông thường, các VPN sẽ cung cấp thông tin này trong các tài liệu quảng cáo của họ để bạn có thể tự mình xem nó hoạt động như thế nào.