Security of BigFix Relay exposed to public Internet

The certificate does not need to come from somewhere if it is self signed. I’m talking about an untrusted unauthenticated but encrypted connection. Encryption is beneficial even if it conveys no other security other than the encryption itself. I am not talking about a full blown PKI infrastructure with trust.

Clients and relays could use Diffie–Hellman key exchange to encrypt traffic between each other without the need for PKI at all, which would reduce the load. Encryption alone would not prevent man-in-the-middle attacks, but it is still preferred over no encryption at all.

I’m basically asking for something between authenticating relays and regular relays. An option to enable optional encryption on certain relays without the need to authenticate the client’s certificate.

The authenticating relays authenticate the client to make sure that the client is allowed into the system.


Related:

A root CA does not need to be reachable by the client, the CA certificate could be distributed as part of the client installer in order for the client to trust it. The CRL could be distributed by Relays as part of the normal BES infrastructure rather than though an online web site; as long as the CRL is properly signed by the root server the client should be able to accept it.

This would allow for an encrypted channel between the client and relay, without the additional overhead of requiring the client first connect to a non-authenticating relay. The client can authenticate the Relay and encrypt traffic, without the Relay necessarily authenticating the client.

1 Like

The root CA could be in the masthead.

The client already has a certificate it trusts and knows about which is what we are using. There is still a problem of performance however.

I can present the idea that both @JasonWalker and @jgstew have come up with here but again this will affect your performance characteristics

1 Like

Since this last post in 2015, has there been any changes to how external facing Relays can be secured/best practices?

Our deployment will have clients and a Relay at a remote site and will traverse the internet to reach an on-prem external facing Relay.

  1. What are the best practices for securing those Client & Relay communications over the internet (message level encryption?)
  2. What are the best practices for locking down the external facing BES Relay?

Message level encryption would be a good idea, yes, but in particular, configuring the external facing Relays to be authenticating. Please see the following for reference:

2 Likes

thanks. Can Message Level Encryption be set only on specific clients and relays or is it deployment wide?

While it’s enabled deployment-wide, it is configurable per Client via _BESClient_Report_Encryption. The default for that setting is optional, so, if you’ve enabled MLE via BESAdmin, by default, most/all Clients will encrypt their reports. You can set _BESClient_Report_Encryption to none or required as desired depending on the connectivity of the device.

Note that you can also have decrypting Top Level Relays if that is of interest as a means to offload some of the work from the Root Server: https://help.hcltechsw.com/bigfix/9.5/platform/Platform/Config/c_creating_top_level_decrypting_.html

I guess due to the assumed overhead, there’s no reason to use MLE for the entire deployment except for those traversing the internet. If the clients won’t be traversing the internet but just Relay to Relay communications will be, would MLE still be necessary?

Internally, MLE is perhaps not as necessary, especially given that communication would still generally leverage HTTPS (even without MLE).

is there a comparison between bigfix https communications and MLE ?

The basics are that https is “on the wire” and MLE is “on the disk”.

MLE prevents reports from being read off of the Relay’s disk storage in the case the Relay itself is stolen or compromised; useful for example if you have deployed Relays to field storefronts or offices where you can’t physically protect the Relay.

The consequence of MLE is that the Relay cannot combine reports from clients, so there can be added network traffic and processing required to decrypt & combine or import the reports upstream. Thus it is common to employ “Decrypting Relays” as top-level relays; these relays need access to the deployment’s private key in order to decrypt the reports and combine them, reducing the processing load on the root server.

1 Like