WireGuardlà giao thức VPN tạo kết nối mạng ảo (đường hầm) được mã hóa giữa hai thiết bị nhận dạng nhau bằng khóa chung.
Ứng dụng StageVPN (iPhone·iPad·Android) sử dụng WireGuard này để gửi thông tin liên lạc IPv4/IPv6 và truy vấn DNS cho toàn bộ thiết bị tới máy chủ VPN. Bài viết này đặt ra tám câu hỏi để giải thích tại sao WireGuard được đánh giá là nhanh và dễ đánh giá. Đối với mỗi câu hỏi, đầu tiên tôi viết ra câu trả lời gồm hai câu, sau đó giải thích các nguyên tắc bằng bảng và sơ đồ bên dưới. Số liệu dựa trên sách trắng của WireGuard và tài liệu giao thức chính thức.
- Khoảng 4.000 dòng
- Kích thước mã triển khai nhân Linux tại thời điểm phát hành sách trắng năm 2017
- 1 chuyến khứ hồi
- Số lượng chuyến đi khứ hồi cần thiết cho quá trình bắt tay để tạo khóa phiên
- 120 giây
- Khi nào bắt đầu thay đổi khóa phiên bằng một cái bắt tay mới
- 1 điều
- Số lượng kết hợp mật khẩu cố định được sử dụng mà không cần thương lượng
Hình ảnh bên dưới tập hợp ba thuộc tính quan trọng nhất trong bài viết này vào một trang. Thiết bị và máy chủ đồng ý về khóa phiên trong một chuyến đi. Khóa được làm mới khoảng hai phút một lần. Máy chủ nhận dạng thiết bị khác bằng khóa chung chứ không phải địa chỉ IP của thiết bị đó. Đọc tiếp để tìm ra câu trả lời cho từng câu hỏi trong số ba thuộc tính.

H. WireGuard là gì, ai đã tạo ra nó và tại sao?
WireGuard là một giao thức và triển khai VPN do Jason A. Donenfeld thiết kế và phát hành vào năm 2017. Mục tiêu là giảm số lượng mục cấu hình, sửa phương thức mã hóa thành một và đặt kích thước đó ở mức mà các chuyên gia có thể đọc và xem lại toàn bộ mã.
Giao thức VPN là một bộ quy tắc để các thiết bị và máy chủ nhận dạng lẫn nhau, chia sẻ khóa mã hóa cũng như đóng gói và trao đổi dữ liệu. Các giao thức hiện tại có nhiều tùy chọn và các bước đàm phán để thích ứng với nhiều môi trường khác nhau. Nhiều tùy chọn hơn dẫn đến mã lớn hơn. Khả năng tạo cấu hình yếu do lỗi cấu hình cũng tăng lên. WireGuard đã thực hiện cách tiếp cận ngược lại. Chúng tôi đã giảm số lượng lựa chọn và làm cho mã ngắn hơn.
| quan điểm | trường hợp | nghĩa |
|---|---|---|
| 2017 | Sách trắng trình bày tại hội nghị NDSS | Mục tiêu thiết kế, bắt tay và định tuyến khóa mã hóa được nêu trong tài liệu công khai |
| tháng 3 năm 2020 | Được bao gồm theo mặc định trong nhân Linux 5.6 | Có thể được sử dụng trên máy chủ Linux mà không cần cài đặt các mô-đun riêng biệt |
| Sau khi sách trắng được phát hành | Các bản triển khai chính thức được phát hành cho Windows, macOS, iOS và Android | Ứng dụng điện thoại thông minh kết nối với máy chủ bằng cùng một giao thức |
| Hôm nay | Tích lũy nghiên cứu xác minh định dạng như Tamarin và CryptoVerif | Sự an toàn của thiết kế giao thức đã được xem xét về mặt học thuật |
Kích thước mã phụ thuộc vào việc triển khai và thời gian. Vì vậy, 'khoảng 4.000 dòng' không nên được đọc là giá trị hiện tại chính xác mà là 'một mức độ nhỏ hơn so với các triển khai VPN khác'. Ứng dụng StageVPN sử dụng triển khai WireGuard này trên iPhone·iPad và Android. StageVPN dành cho Chrome, một tiện ích mở rộng của Chrome, là proxy HTTPS chứ không phải WireGuard. Sự khác biệt giữa hai phương pháp là VPN trình duyệt và VPN ứng dụngNó được bao phủ trong
Câu hỏi: Các kết nối WireGuard được thực hiện theo thứ tự nào?
Một kết nối được tạo ra bằng cách bắt tay hai tin nhắn, một chuyến đi khứ hồi. Khi người khởi tạo gửi tin nhắn bắt đầu và người phản hồi trả về tin nhắn phản hồi, cả hai bên sẽ tính toán cùng một khóa phiên và trao đổi dữ liệu ngay lập tức.
- tin nhắn khởi độngNgười khởi tạo (thiết bị) gửi khóa chung tạm thời, khóa tự công khai được mã hóa và dấu thời gian được mã hóa.
- tin nhắn phản hồiNgười phản hồi (máy chủ) gửi khóa chung tạm thời của nó và xác minh người khởi tạo.
- Tính toán khóa phiênTừ kết quả trao đổi khóa, cả hai bên rút ra một cặp khóa đối xứng để gửi và nhận.
- truyền dữ liệuMỗi gói được mã hóa bằng ChaCha20-Poly1305 và được gán một số thứ tự (bộ đếm).
Bắt tay là một quá trình trong đó hai bên nhận dạng nhau và đồng ý về khóa mã hóa trước khi bắt đầu liên lạc. Quá trình bắt tay của WireGuard tuân theo mẫu IK của khung Noise. Mẫu IK yêu cầu người khởi tạo phải biết trước khóa công khai của người phản hồi. Ứng dụng StageVPN đáp ứng điều kiện này vì nó nhận được khóa chung của máy chủ để kết nối trong cấu hình VPN.
| tin nhắn | kích cỡ | Nội dung bao gồm | vai trò |
|---|---|---|---|
| Bắt tay bắt đầu (loại 1) | 148 byte | Khóa chung tạm thời, khóa chung tĩnh được mã hóa, dấu thời gian được mã hóa, 2 MAC | Bằng chứng về danh tính người khởi xướng, chặn các cuộc tấn công phát lại |
| Phản hồi bắt tay (loại 2) | 92 byte | Khóa công khai tạm thời của người phản hồi, bản mã trống để xác minh, 2 MAC | Thỏa thuận chính đã hoàn tất |
| Phản hồi của cookie (loại 3) | 64 byte | cookie được mã hóa | Kiểm tra địa chỉ khởi hành khi máy chủ quá tải |
| Dữ liệu (Loại 4) | Tiêu đề 16 byte và bản mã | Số người nhận, bộ đếm, gói IP được mã hóa và thẻ xác thực | truyền thông thực tế |
Dấu thời gian trong thông báo khởi động sẽ ngăn chặn các cuộc tấn công lặp lại. Tấn công phát lại là một cuộc tấn công trong đó kẻ tấn công ghi lại một tin nhắn bình thường và gửi lại sau đó. Máy chủ sẽ loại bỏ tin nhắn nếu dấu thời gian cũ hơn lần gửi trước đó từ cùng một thiết bị.
MAC đầu tiên có thể được tạo bằng cách biết khóa chung của máy chủ. Do đó, máy chủ không phản hồi các gói được gửi bởi máy quét không biết khóa chung của máy chủ. Nhìn từ bên ngoài, rất khó để biết liệu có máy chủ VPN trên cổng đó hay không. Khi máy chủ bị quá tải, phản hồi cookie sẽ được gửi trước khi thực hiện các phép tính nặng. Nó là một thiết bị chỉ xử lý các yêu cầu có địa chỉ nguồn được xác nhận là chính hãng, ngăn chặn các cuộc tấn công khiến máy chủ luôn bận rộn với các địa chỉ giả mạo.
Câu hỏi: WireGuard sử dụng kỹ thuật mã hóa nào?
Chỉ đặt một phương thức mã hóa cho mỗi vai trò và sử dụng nó mà không cần thương lượng. Nếu phát hiện sự cố với một kỹ thuật, thay vì thêm tùy chọn, chúng tôi sẽ thay đổi phiên bản giao thức để tất cả quá trình triển khai đều di chuyển cùng nhau.
Tên đầy đủ của cái bắt tay được ghi trong tài liệu chính thức là Noise_IKpsk2_25519_ChaChaPoly_BLAKE2s. Tên là kế hoạch. IK là viết tắt của mẫu bắt tay, psk2 là viết tắt của khóa chia sẻ trước tùy chọn, 25519 là viết tắt của đường cong trao đổi khóa, ChaChaPoly là viết tắt của mật mã dữ liệu và BLAKE2s là viết tắt của hàm băm.
| vai trò | kỹ thuật | tài liệu hỗ trợ | đặc trưng |
|---|---|---|---|
| Thiết kế bắt tay | Mẫu Noise_IKpsk2 | Khung giao thức tiếng ồn | Xác thực lẫn nhau, thỏa thuận khóa và bảo vệ danh tính người khởi tạo trong một chuyến đi khứ hồi |
| trao đổi chìa khóa | Curve25519(X25519) | RFC 7748 | Khóa chung 32 byte, đường cong elip được thiết kế để giảm lỗi khi triển khai |
| Mã hóa và toàn vẹn dữ liệu | ChaCha20-Poly1305 | RFC 8439 | Xử lý mã hóa và kiểm tra giả mạo cùng một lúc, nhanh chóng ngay cả khi không tăng tốc phần cứng |
| Mã hóa cookie | XChaCha20-Poly1305 | Tài liệu về giao thức WireGuard | Sửa đổi để ghi các giá trị ngẫu nhiên dài một cách an toàn |
| Băm và MAC | BLAKE2s | RFC 7693 | Băm nhanh, cũng được sử dụng để tính toán MAC có khóa |
| đạo hàm chính | HKDF | RFC 5869 | Trích xuất khóa phiên từ kết quả trao đổi khóa |
| bảng băm nội bộ | Nhâm nhiHash24 | Giấy Aumasson·Bernstein | Ngăn chặn các cuộc tấn công thao túng nhắm vào bảng băm |
Điều quan trọng cần lưu ý là không có giai đoạn đàm phán. Trong các giao thức trao đổi danh sách mật mã, chẳng hạn như TLS hoặc IKEv2, các cuộc tấn công hạ cấp đã được nghiên cứu để lừa kẻ tấn công chọn mật mã yếu. WireGuard không có danh sách riêng để lựa chọn. Vì vậy, không có lý do gì để một cuộc tấn công như vậy được thiết lập.
psk2 hoặc khóa chia sẻ trước, là một tính năng tùy chọn. Bằng cách thêm một lớp khóa đối xứng lên trên mật mã khóa công khai, đây là một biện pháp bảo vệ bổ sung để bảo vệ nội dung liên lạc ngay cả khi máy tính lượng tử trong tương lai phá vỡ Curve25519. Đây là tính năng tùy chọn nên tính khả dụng sẽ khác nhau tùy theo dịch vụ. StageVPN không cung cấp tính năng mã hóa kháng lượng tử như một tính năng được cung cấp.
Sự an toàn của thiết kế đã được xem xét về mặt học thuật nhiều lần. Dự án WireGuard tập hợp nghiên cứu xác minh chính thức trên trang web chính thức của mình, bao gồm xác minh biểu tượng bằng cách sử dụng bộ chứng minh Tamarin và bằng chứng tính toán bằng CryptoVerif. Tuy nhiên, xác minh chính thức là bằng chứng về thiết kế giao thức. Chúng tôi không đảm bảo chất lượng triển khai hoặc hoạt động máy chủ của từng ứng dụng. Vì vậy, vẫn cần phải cập nhật ứng dụng và kiểm tra chính sách ghi nhật ký của nhà điều hành.
Câu hỏi: Khóa phiên thay đổi bao lâu một lần?
Các khóa phiên được thay thế bằng một cái bắt tay mới khoảng hai phút một lần. Việc thay thế diễn ra trong khi liên lạc với khóa hiện có, do đó người dùng không nhận thấy bất kỳ sự gián đoạn nào.
- 0 giâyBắt tay hoàn tất
Bắt đầu truyền dữ liệu bằng khóa phiên mới.
- 120 giâyBắt đầu một cái bắt tay mới
Khi bạn có dữ liệu cần gửi, hãy tạo khóa mới (REKEY_AFTER_TIME). Chìa khóa cũng được thay thế nếu tin nhắn được gửi tới lũy thừa 2 60.
- 180 giâyTừ chối chìa khóa cũ
Các gói có khóa cũ hơn thời gian này sẽ không được nhận (REJECT_AFTER_TIME).
- 540 giâyDọn dẹp nhàn rỗi
Sau ba lần 180 giây mà không bắt tay mới, hãy xóa tất cả các khóa tạm thời và trạng thái phiên.
Lý do bạn thường xuyên thay đổi chìa khóa là vì tính bảo mật phía trước. Bảo mật chuyển tiếp là thuộc tính ngăn nội dung liên lạc của phiên đã kết thúc được phát hành ngay cả khi khóa riêng dài hạn của thiết bị sau đó bị lộ. WireGuard tạo một khóa tạm thời mới cho mỗi lần bắt tay và xóa mọi khóa đã sử dụng khỏi bộ nhớ. Ngay cả khi một khóa phiên bị rò rỉ, phạm vi tác động sẽ bị giới hạn trong vài phút khóa được sử dụng.
Ngoài ra còn có các quy tắc cho nỗ lực bắt tay. Nếu không có phản hồi, nó sẽ thử lại sau mỗi 5 giây (REKEY_TIMEOUT). Nếu không có phản hồi trong 90 giây (REKEY_ATTEMPT_TIME), quá trình thử sẽ dừng lại. Nếu không có dữ liệu nào để gửi trong vòng 10 giây (KEEPALIVE_TIMEOUT) kể từ khi nhận dữ liệu, một gói lưu giữ trống sẽ được gửi để bên kia có thể xác nhận phản hồi.
WireGuard được thiết kế để không thực hiện bắt tay nếu không có dữ liệu để gửi. Tuy nhiên, các thiết bị đằng sau bộ định tuyến hoặc thiết bị sóng mang (NAT) thường sử dụng cài đặt (PersistentKeepalive) gửi các gói trống đều đặn để ngăn thông tin kết nối bị xóa. Hướng dẫn chính thức khuyến nghị khoảng thời gian là 25 giây. Cấu hình VPN của ứng dụng StageVPN cũng sử dụng 25 giây theo mặc định (kể từ tháng 9 năm 2026).

Câu hỏi: WireGuard khác với OpenVPN và IKEv2/IPsec như thế nào?
WireGuard là một giao thức giúp giảm bớt các tùy chọn và giảm mã. OpenVPN và IKEv2/IPsec là các giao thức có nhiều thỏa thuận và tùy chọn để phù hợp với nhiều môi trường khác nhau.
Hình trên cho thấy sự khác biệt về kích thước mã, phương thức truyền và phương thức đàm phán mật khẩu. Bảng dưới đây tóm tắt những khác biệt còn lại không được thể hiện trong hình. Cả ba hiện đang được sử dụng rộng rãi, nhưng triết lý thiết kế của chúng khác nhau chứ không phải là một triết lý vượt trội vô điều kiện.
| mục | WireGuard | OpenVPN | IKEv2/IPsec |
|---|---|---|---|
| Mở/tiêu chuẩn | Sách trắng 2017, bao gồm nhân Linux 2020 | Được phát hành lần đầu tiên vào năm 2001, giao thức nguồn mở của riêng nó | Tiêu chuẩn IETF (IKEv2 là RFC 7296) |
| Phương thức xác nhận đối tác | Khóa công khai 32 byte | Chủ yếu có thể kết hợp chứng chỉ X.509, tên người dùng và mật khẩu | Chứng chỉ, khóa chia sẻ trước, EAP, v.v. |
| Chuyến đi khứ hồi thỏa thuận quan trọng | 1 chuyến khứ hồi (2 tin nhắn) | Nhiều lần, bao gồm cả cái bắt tay TLS. | Tối thiểu 2 trao đổi (4 tin nhắn) |
| thay đổi mạng | Kết quả từ hành vi mặc định (chuyển vùng) | Chủ yếu là kết nối lại, một số hỗ trợ tùy theo cài đặt | Tiếp tục hỗ trợ cho MOBIKE (RFC 4555) |
| Mục cài đặt | Một vài dòng: khóa, địa chỉ, IP được phép, v.v. | Rất nhiều chứng chỉ và tùy chọn | Có nhiều phương thức xác thực và mục chính sách |
| Hệ điều hành tích hợp | Nhân Linux tích hợp, các nhân khác được cung cấp dưới dạng ứng dụng | Cài đặt chương trình riêng | Tích hợp cho Windows, iOS, Android, v.v. |
Tốc độ không được xác định chỉ bởi giao thức. Khoảng cách đến máy chủ, chất lượng đường truyền cục bộ, tắc nghẽn máy chủ và hiệu suất thiết bị đều đóng một vai trò. WireGuard có các quy trình đơn giản và hoạt động mã hóa nhẹ nhàng nên thường nhanh trong cùng điều kiện. Điều đó không có nghĩa là nó luôn nhanh. Nếu tốc độ nhận thấy thấp, điều đầu tiên cần làm là chuyển sang máy chủ gần đó và so sánh.
Câu hỏi: 'Định tuyến khóa mã hóa' trong đó khóa chung trở thành địa chỉ là gì?
Định tuyến khóa mã hóa là phương pháp kết hợp khóa chung của bên kia và dải địa chỉ IP (AllowedIP) mà bên kia có thể sử dụng và sử dụng gói này để xác định cả khi gửi và nhận gói. Khi gửi, hãy xác định khóa chung nào sẽ mã hóa bằng địa chỉ đích và khi nhận, hãy kiểm tra xem khóa chung được giải mã thành công có đủ điều kiện để sử dụng địa chỉ nguồn hay không.
Cấu trúc này có hai ưu điểm: Thứ nhất, máy chủ chỉ nhận dạng các gói từ IP đường hầm là chính hãng nếu chúng được giải mã bằng khóa chung gắn với IP đó. Ngay cả khi một thiết bị khác bắt chước IP đường hầm, nó không thể được giải mã và gói sẽ bị loại bỏ. Thứ hai, các quy tắc tường lửa và quy tắc mật khẩu được kết hợp thành một. Quản trị viên chỉ cần duy trì một dòng: 'Khóa công khai này là dải địa chỉ này.'
Nếu bạn đặt AllowedIPs thành 0.0.0.0/0 và ::/0 trên thiết bị người dùng, tất cả các giao tiếp IPv4 và IPv6 sẽ trở thành một đường hầm đầy đủ đến một máy chủ. Ứng dụng StageVPN sử dụng phương pháp này. Các mục chính của cấu hình WireGuard mà ứng dụng nhận được từ máy chủ được liệt kê bên dưới.
| Các mục cấu hình | Cài đặt ứng dụng StageVPN | Ý nghĩa đối với người dùng |
|---|---|---|
| IP được phép | 0.0.0.0/0, ::/0 | Bảo vệ tất cả các thiết bị trong đó tất cả giao tiếp IPv4/IPv6 đều đi qua đường hầm |
| DNS | Máy chủ DNS được chỉ định trong cấu hình VPN và các truy vấn cũng được chuyển tiếp vào đường hầm. | Khó nhìn thấy các miền được nhà cung cấp dịch vụ hoặc nhà khai thác Wi-Fi tra cứu |
| Đường hầm IP (Địa chỉ) | Gán địa chỉ nội bộ trong máy chủ cho từng tài khoản | Máy chủ xác định các thiết bị sử dụng khóa chung và địa chỉ nội bộ. |
| MTU | Mặc định 1280, có thể thay đổi tùy theo cài đặt máy chủ | Giảm các vấn đề cắt gói trong mạng di động và đóng gói kép |
| Kiên trìKeepalive | Mặc định 25 giây | Duy trì thông tin kết nối ngay cả sau bộ định tuyến hoặc thiết bị của nhà cung cấp dịch vụ |
| vị trí kết nối | Chọn từ các quốc gia có máy chủ do nhà điều hành quản lý hoặc tự động chọn | IP của máy chủ đã chọn sẽ được hiển thị trên các trang web đã truy cập. |
MTU là kích thước tối đa của gói có thể được gửi cùng một lúc. WireGuard mã hóa gói gốc và đặt nó trở lại gói UDP, tăng kích thước theo tiêu đề. Do đó, MTU trong đường hầm phải được đặt nhỏ hơn MTU trên đường truyền để tránh các gói bị phân mảnh hoặc bị loại bỏ. Những gì và bao nhiêu hồ sơ truy cập được lưu giữ? Truy cập thông báo lưu trữ hồ sơNó mở cửa cho công chúng.
Hỏi. Nếu WireGuard mạnh thì toàn bộ quá trình sử dụng Internet của tôi có an toàn không?
KHÔNG. Phần mà WireGuard bảo vệ là từ thiết bị của bạn đến máy chủ VPN và mức độ an toàn ngoài phần đó được xác định bởi HTTPS của trang web và chính sách ghi nhật ký của nhà điều hành.
- thiết bị của tôiỨng dụng StageVPN
- Mã hóa WireGuard
- Mạng Wi-Fi/truyền thông công cộngCà phê·LTE
- Mã hóa WireGuard
- Máy chủ VPNStageVPN
- HTTPS
- Máy chủ trang web/ứng dụngNgân hàng/thư
- Mã hóa VPN
- Trang web HTTPS
- Các khu vực có thể bị lộ
Ở hai phần bên trái của hình ảnh, những người dùng Wi-Fi công cộng khác, nhà điều hành Wi-Fi và nhà mạng khó có thể nhìn thấy nội dung và đích đến của giao tiếp. Sau khi bạn rời khỏi máy chủ VPN, nó sẽ giống như internet thông thường. Vì vậy, một lần nữa, điều quan trọng là địa chỉ đó có phải là trang web bắt đầu bằng https:// hay không. Rủi ro ngoài giao thức phải được chuẩn bị riêng.
- Phần sau máy chủ VPN: Các trang web không sử dụng HTTPS không được mã hóa từ máy chủ VPN đến trang web.
- Tin tưởng vào các nhà khai thác: Do cấu trúc của nó, máy chủ WireGuard biết khóa chung, IP đường hầm và địa chỉ truy cập cuối cùng của từng thiết bị. Đây cũng là nơi bạn có thể thấy IP đích của kết nối của mình. Theo Đạo luật bảo vệ bí mật liên lạc, StageVPN tự động xóa hồ sơ truy cập sau 93 ngày và không ghi lại nội dung liên lạc. Lý do là Tại sao chúng tôi tiết lộ chính sách lưu giữ hồ sơ truy cập của mình?giải thích.
- Các mối đe dọa bên trong thiết bị của bạn: Ứng dụng độc hại hoặc trang lừa đảo là các sự cố xảy ra bên trong đường hầm, tức là trên thiết bị của bạn. Giao thức không ngăn chặn nó. Sự phân chia là Những gì VPN ngăn chặn và không thể ngăn chặnVui lòng tham khảo.
- Khoảnh khắc mất kết nối: Trong khi đường hầm bị ngắt kết nối, thông tin liên lạc có thể đi ra ngoài theo tuyến đường thông thường. Kiểm tra trạng thái kết nối của ứng dụng trước khi thực hiện bất kỳ thao tác nhạy cảm nào. Thói quen trên mạng công cộng Quy tắc an toàn Wi-Fi công cộngTôi đã tổ chức nó ở định dạng .
- DNS và IPv6: Nếu một ứng dụng VPN khác hoặc cài đặt DNS riêng trên thiết bị của bạn thay đổi tuyến đường, các truy vấn có thể đi ra ngoài đường hầm. Cách kiểm tra Hướng dẫn về rò rỉ DNS và rò rỉ WebRTCNó ở trong
Khi bạn kết nối lần đầu, iPhone sẽ yêu cầu bạn thêm cấu hình VPN và Android sẽ yêu cầu bạn cho phép yêu cầu kết nối VPN. Bạn phải cho phép điều này để các ứng dụng có thể tạo đường hầm WireGuard. Đặt hàng theo thiết bị Bắt đầu trên iPhone/iPadVà Bắt đầu trên Androidvà phạm vi cung cấp là Tính năng và phạm vi cung cấpBạn có thể kiểm tra nó ở đây.
H. Tại sao kết nối vẫn duy trì ngay cả khi chuyển từ Wi-Fi sang LTE?
Điều này là do WireGuard xác định thiết bị bằng khóa chung chứ không phải địa chỉ IP. Ngay cả khi mạng thay đổi và IP thay đổi, máy chủ vẫn nhớ địa chỉ nơi gói được giải mã đến lần cuối và phản hồi bằng địa chỉ đó.
Cách phân biệt kết nối bằng địa chỉ IP
- Các kết nối hiện có bị mất khi mạng thay đổi
- Cần xác thực lại và đồng ý về khóa
- Giao tiếp ứng dụng có thể dừng tại thời điểm chuyển đổi
WireGuard (được phân biệt bằng khóa chung)
- Các gói từ một địa chỉ mới cũng được nhận dạng là cùng một bên nếu chúng được giải mã bằng cùng một khóa chung.
- Cập nhật địa chỉ mà máy chủ phản hồi bằng địa chỉ mới
- Nếu phím còn sống, nó sẽ tiếp tục ngay lập tức mà không cần bắt tay.
Hành vi này được gọi là chuyển vùng. Điện thoại thông minh chuyển đổi giữa Wi-Fi gia đình, Wi-Fi quán cà phê và LTE/5G khi đang di chuyển nhiều lần trong ngày. Nếu VPN được kết nối lại từ đầu mọi lúc, sẽ có lúc việc nhắn tin và phát trực tuyến sẽ dừng lại. WireGuard xử lý quá trình chuyển đổi này như hành vi mặc định của giao thức. Không cần cài đặt riêng biệt.
WireGuard chỉ sử dụng UDP. UDP là một phương thức truyền tải nhẹ không yêu cầu thủ tục thiết lập kết nối. Nó không chồng chéo với việc kiểm soát truyền lại các thông tin liên lạc TCP qua lại trong đường hầm. Có một vấn đề đã biết là khi TCP được xếp chồng lên trên TCP, khi xảy ra mất mát, cả hai lớp sẽ truyền lại đồng thời và tốc độ giảm đáng kể. Về mặt kiến trúc, WireGuard tránh được vấn đề này.
Trong khi đó, StageVPN ghi lại địa chỉ IP mà thiết bị đã truy cập vào máy chủ VPN khi nó thay đổi, như một trong những bản ghi kết nối theo luật. Thực tế là việc chuyển vùng xảy ra có nghĩa là nó vẫn còn trên máy chủ.
Xin vui lòng biết Có những hạn chế đối với các thiết kế chỉ sử dụng UDP. Một số mạng khách sạn, công ty và trường học chặn liên lạc UDP ngoài truy cập web. Kết nối WireGuard có thể không hoạt động ở những nơi như vậy. Trong trường hợp này, hãy thử chuyển sang Wi-Fi hoặc dữ liệu di động khác. Nếu vẫn không hoạt động, hãy liệt kê kiểu thiết bị, hệ điều hành và phiên bản ứng dụng cũng như thời gian xảy ra sự cố. hỗ trợ khách hàngVui lòng liên hệ với chúng tôi.

bảng chú giải thuật ngữ
Tôi đã sắp xếp các thuật ngữ trong bài viết này từng câu một. Ý nghĩa tương tự được sử dụng khi đọc các tài liệu VPN khác.
- cái bắt tay
- Đây là quá trình hai thiết bị nhận dạng lẫn nhau và thống nhất về khóa mã hóa trước khi bắt đầu liên lạc.
- 1-RTT (1 chuyến khứ hồi)
- Điều này có nghĩa là quá trình được hoàn thành chỉ bằng cách gửi tin nhắn một lần và quay lại một lần.
- Khóa tĩnh (khóa chung/khóa riêng)
- Cặp khóa được lưu giữ trên thiết bị của bạn trong thời gian dài và được sử dụng để xác minh danh tính của bạn. Khóa chung được bên kia biết và khóa riêng không được gửi ra khỏi thiết bị.
- khóa tạm thời
- Khóa này được tạo lại cho mỗi lần bắt tay và bị xóa vào cuối phiên.
- khóa phiên
- Khóa đối xứng được tạo do quá trình bắt tay mã hóa dữ liệu thực tế.
- Chuyển tiếp bảo mật
- Thuộc tính này ngăn không cho nội dung của phiên đã kết thúc được phát hành ngay cả khi khóa riêng dài hạn sau đó bị lộ.
- AEAD
- ChaCha20-Poly1305 là một phương pháp mã hóa xử lý mã hóa và phát hiện giả mạo cùng một lúc.
- MAC
- Đây là một giá trị ngắn được tính toán và gắn vào khóa để đảm bảo rằng tin nhắn không bị giả mạo.
- tấn công lại
- Đây là cuộc tấn công đánh lừa hệ thống bằng cách ghi lại một tin nhắn bình thường và gửi lại sau đó.
- Định tuyến khóa mã hóa
- Phương pháp buộc khóa chung và phạm vi IP được phép của WireGuard để xác định khóa nào cần mã hóa và gói nào sẽ chấp nhận.
- IP được phép
- Đây là dải địa chỉ IP mà đối tác của khóa chung cụ thể có thể gửi và nhận từ đó. 0.0.0.0/0 và ::/0 đề cập đến tất cả các địa chỉ.
- điểm cuối
- Đây là địa chỉ Internet và cổng UDP thực tế của bên kia và máy chủ sẽ cập nhật các giá trị này khi chuyển vùng xảy ra.
- chuyển vùng
- Ngay cả khi địa chỉ IP của thiết bị thay đổi, đường hầm tương tự vẫn tiếp tục.
- NAT
- Đây là phương pháp trong đó bộ định tuyến hoặc thiết bị của công ty viễn thông chuyển đổi địa chỉ của nhiều thiết bị thành một địa chỉ công cộng.
- lưu giữ
- Đây là gói không có nội dung được gửi định kỳ để ngăn thông tin kết nối bị xóa.
- MTU
- Đây là kích thước tối đa của các gói có thể được gửi cùng một lúc.
- UDP
- Đây là một phương thức truyền tải nhẹ, gửi các gói mà không cần thủ tục thiết lập kết nối và không cần truyền lại.
tài liệu tham khảo
- Giao thức & Mật mã — Định dạng và kích thước tin nhắn, mật mã, giá trị bộ đếm thời gian (dự án WireGuard)
- WireGuard: Đường hầm mạng hạt nhân thế hệ tiếp theo — Mục tiêu thiết kế, kích thước mã, định tuyến khóa mã hóa, chuyển vùng (Jason A. Donenfeld, sách trắng NDSS 2017)
- Xác minh chính thức — Danh sách các nghiên cứu xác minh chính thức, bao gồm Tamarin, CryptoVerif, v.v. (dự án WireGuard)
- Bắt đầu nhanh - Cài đặt PersistentKeepalive và các khoảng thời gian được đề xuất (dự án WireGuard)
- Khung giao thức tiếng ồn — Định nghĩa mẫu bắt tay IK (Dự án tiếng ồn)
- RFC 8439: ChaCha20 và Poly1305 cho giao thức IETF - Phương pháp mã hóa dữ liệu (IETF)
- RFC 7748: Đường cong elip để bảo mật — Trao đổi khóa Curve25519 (IETF)
- RFC 7693: Băm mật mã BLAKE2 và MAC - Tính toán băm và MAC (IETF)
- RFC 7296: Giao thức trao đổi khóa Internet phiên bản 2 (IKEv2) - Quy trình trao đổi IKEv2 (IETF)
- RFC 4555: Giao thức di động và đa phương tiện IKEv2 (MOBIKE) — Xử lý thay đổi mạng trong IKEv2 (IETF)



