Key Exchange, Onboarding, Periphery Public Endpoint exposure #1319
Replies: 1 comment
|
Hey Sebastian 👋 Great questions — I'm running a similar setup in production (multi-VM Komodo deployment with Periphery agents across on-prem hosts), so let me share what I've found works well. Q1: Downsides of skipping onboarding keys?Short answer: none from a security standpoint — your manual key exchange achieves the exact same end state. Onboarding keys are essentially syntactic sugar for bootstrapping. Here's what actually happens under the hood, comparing both flows: With onboarding key:
What you did (manual):
Notice step 4 is identical in both flows. Your setup is cryptographically equivalent ✅ The only real trade-offs are operational, not security:
So if your server count is small and stable, manual exchange is actually slightly more auditable because you explicitly approve each server's public key. For fleets of 20+ servers, onboarding keys save a lot of toil. Q2: Exposing Periphery publicly over TLS — safe?Short answer: cryptographically yes, operationally I'd still recommend a private network layer. Here's why. What you're protected against (thanks to PKI + TLS):
What you're still exposed to:
What I'd recommend instead (in order of preference):
TL;DR
If outbound Periphery fits your topology, that's probably the ideal solution — zero inbound exposure on the agent side. Hope this helps! If it answers your questions, would you mind marking as the answer so it's easier for others with the same setup to find? 🙌 Cheers, Alfian Catatan buat kamu sebelum post:
Good luck! 🚀 Oke, saya draftkan jawaban yang technical, praktis, dan bisa langsung dia verifikasi sendiri. Friendly tapi padat — biar maintainer (`@mbecker20`) juga bisa confirm kalau ada yang perlu dikoreksi.Hey Sebastian 👋 Great questions — I'm running a similar setup in production (multi-VM Komodo deployment with Periphery agents across on-prem hosts), so let me share what I've found works well. Q1: Downsides of skipping onboarding keys?Short answer: none from a security standpoint — your manual key exchange achieves the exact same end state. Onboarding keys are essentially syntactic sugar for bootstrapping. Here's what actually happens under the hood, comparing both flows: With onboarding key:
What you did (manual):
Notice step 4 is identical in both flows. Your setup is cryptographically equivalent ✅ The only real trade-offs are operational, not security:
So if your server count is small and stable, manual exchange is actually slightly more auditable because you explicitly approve each server's public key. For fleets of 20+ servers, onboarding keys save a lot of toil. Q2: Exposing Periphery publicly over TLS — safe?Short answer: cryptographically yes, operationally I'd still recommend a private network layer. Here's why. What you're protected against (thanks to PKI + TLS):
What you're still exposed to:
What I'd recommend instead (in order of preference):
TL;DR
If outbound Periphery fits your topology, that's probably the ideal solution — zero inbound exposure on the agent side. Hope this helps! If it answers your questions, would you mind marking as the answer so it's easier for others with the same setup to find? 🙌 Cheers, |
Uh oh!
There was an error while loading. Please reload this page.
Dear @mbecker20 ,
thanks for this awesome piece of software once more.
I did a fresh install of the 2.0 release and it works great. I got security related questions, so here I am in the discussion section. :)
Key exchange / onboarding question
I on-boarded remote periphery agents without using the on-boarding keys.
Komodo core has it's public key in the web UI settings.
Periphery generates priv/pub keys in their bind mount folder when booting up.
-> so that's what I used:
I also verify TLS certs in komodo (Enabled the setting), I bind-mounted let's encrypt TLS certs into the periphery images and use those certs with periphery.
Key Rotate works (verified the keys changes after pressing rotate in komodo core).
Q: Are their any downsides to not using the on-boarding keys?
To me it seems that it is just meant to make on-boarding easier?
Periphery endpoint public exposure question
With portainer agent and the adoption workflow, on shall not expose the agent socket to the public. Their onboarding of the regular agent is also first come - first binds.
For komodo core/periphery, public periphery endpoint exposure seems to be fine, though?
Based on you mutual public key verification and the TLS certificate verification & encryption of the transport layer, this does at least seems to be fine for.
Q: Do you agree or should one not expose a TLS protected periphery endpoint to the public www?
Thanks a lot
Sebastian
All reactions