Bănuiesc că răspunsul este „nu”, dar totuși:
În WireGuard [1], există un concept de chei private și publice pentru egali; cheia publică derivă dintr-una privată și conexiunea între două părți poate fi stabilită numai atunci când cheile se potrivesc. Să presupunem că avem doi colegi A și B. Pentru a le conecta, fiecare trebuie să:
- generați cheia privată;
- generați cheia publică folosind una privată de la pasul anterior;
- partajați cheia publică cu o altă parte.
Configurația lor va arăta astfel:
egal A:
[Interfață]
PrivateKey = <cheia privată a lui A>
[Peer]
PublicKey = <cheia publică a lui B>
egal B:
[Interfață]
PrivateKey = <cheia privată a lui B>
[Peer]
PublicKey = <cheia publică a lui A>
Acest lucru este foarte simplu și creează o conexiune unu-la-unu.
Acum, să presupunem că avem un set de colegi N, fiecare cu propria pereche de chei private/publice. Există și peer Z, care și-a partajat cheia publică tuturor celor din N, asa de Z se poate conecta la oricare dintre N fără probleme (cu modificarea configurației relevante a [Peer]
secțiune).
Este posibil să faci așa ceva pentru Z:
[Interfață]
PrivateKey = <cheia privată a lui Z>
[Peer]
PublicKey = f(N1, N2, ...Ni)
Unde f(...)
este o funcție care „combină” toate cheile publice din set N, permițând astfel Z pentru a se conecta la oricare de la N fără modificări de configurare?
- https://www.wireguard.com/protocol/