Tôi nghi ngờ câu trả lời là "không", nhưng vẫn:
Trong WireGuard [1], có một khái niệm về khóa riêng và khóa chung cho các đồng nghiệp; khóa công khai bắt nguồn từ khóa riêng và kết nối giữa hai bên chỉ có thể được thiết lập khi các khóa khớp nhau. Giả sử chúng ta có hai đồng nghiệp Một và b. Để kết nối chúng, mỗi người phải:
- tạo khóa riêng;
- tạo khóa công khai bằng cách sử dụng khóa riêng từ bước trước;
- chia sẻ khóa công khai với bên kia.
Cấu hình của họ sẽ như thế này:
ngang nhau Một:
[Giao diện]
PrivateKey = <khóa riêng của A>
[Ngang nhau]
PublicKey = <khóa công khai của B>
ngang nhau b:
[Giao diện]
PrivateKey = <khóa riêng của B>
[Ngang nhau]
PublicKey = <khóa công khai của A>
Điều này rất đơn giản và tạo ra kết nối một-một.
Bây giờ, giả sử chúng ta có một tập hợp các đồng nghiệp N, mỗi người có cặp khóa riêng/công khai. Cũng có đồng môn z, đã chia sẻ khóa công khai của nó với mọi người trong N, Vì thế z có thể kết nối với bất kỳ N không có vấn đề (với thay đổi cấu hình có liên quan của [Ngang nhau]
tiết diện).
Có thể làm smth như thế cho z:
[Giao diện]
PrivateKey = <khóa riêng của Z>
[Ngang nhau]
Khóa công khai = f(N1, N2, ...Ni)
Ở đâu f(...)
là một hàm "kết hợp" tất cả các khóa công khai trong tập hợp N, cho phép z để kết nối với bất kỳ từ N không thay đổi cấu hình?
- https://www.wireguard.com/protocol/