Query regarding security supported in ioFog (ECN)

microservices
iofog-controller
iofog-agent

(Jay Sharma) #1

Hello All,
I am going through the documentation available at:
https://iofog.org/docs/2/getting-started/whats-new.html

I could see the following from security perspective:

(1) From remote deployment perspective we have to share the keys for deploying on remote hosts.

(2) As per the architecture mostly components (controller, agents) are communicating via REST.
In below section, I can see in schemes it is showing http and https:
https://iofog.org/docs/2/reference-controller/rest-api.html

But I could not find more details about security.
Any thing I am missing …


(Pixcell) #2

Hi @jay11ca39,

I will mention @kilton here, because he’s the man to talk to about security. But I can already tell you that SSH Keys are not shared.

iofogctl does require read access to your private ssh key file in order to establish an ssh connection to your remote hosts to install the software, but the content of the key is not stored, nor shared (outside of SSH protocol).

Regards,


(Kilton Hopkins) #3

Hi, Jay.

For the iofogctl “EdgeOps” command-line tool, you put your SSH key or keys into the remote hosts in order to facilitate deployment. This is similar to DevOps tools. The private key is not placed in the remote host, of course!

By default, ioFog is installed with security features set to “open” for an easier experience getting started. When you are ready to put a bit more work into your ioFog deployment and prepare for production, you should activate several security features.

The communication between ioFog Agent instances and the Controller is private but to enable encrypted communication you need to turn off “developer mode” on Controller and Agents. When you do this, you will need to have an identity certificate loaded onto Controller and the public cert will need to be placed on Agent instances so each instance can verify the identity of Controller and then communicate securely if the identity checks are OK.

Additionally, you will probably want to activate the “isolated containers” mode on Agent. This is a watchdog feature that prevents non-authorized edge microservices from running. With this feature activated, only microservices authorized by Controller are allowed to run on the edge node.

I have been doing some work to document the security architecture of ioFog in detail and release it as part of the docs. While I get that ready, please let us know if you have additional particular questions.

Also - here is a document about security challenges at the edge that I published at the CNCF along with some great contributions from co-authors. It does not solve security issues but gives you a good framework for evaluating which security issues are meaningful for your use case or situation:


(Jay Sharma) #4

Hello @kilton,
Thank you for detailed reply. I will check more on the options, you suggested for controller and agent.

Once document that you are working on is public. I will go through it.


#5

Hi Jay,

Can you share more about what you are wanting to achieve? What kind of setup/deployment are you aiming for? What use case are you trying to solve?

All feedback and input is super helpful as we plan our roadmaps.

Thanks!


(Jay Sharma) #6

Hello @drluckyspin,
I understand, more specific details will help in understanding the problem statement/roadmaps etc.
Currently, We are in initial understanding of ioFog, just seeing from feature point of view: What can be done with ioFog and what can not be done.

Once, we finalize something regarding our use case, I will share more detail…

Thanks and Regards,
Jay


#7

Sounds good! If you are exploring, you might have more luck getting real time answers in the iofog slack channel at iofog.slack.com. All of the developers and community hang out there =)