Su principal problema es identificar quiénes son sus clientes "reales". Como el código está abierto, es fácil para cualquiera emular a un cliente. Entonces, ¿cómo puedes hacerlo?
Puedes usar cifrado asimétrico. Como las claves no están dentro del código, no hay forma de que puedan "emular" esas claves. Cada servidor tendrá sus propias claves.
Si el cifrado es demasiado para el cliente (y el envío de información no es tan importante), simplemente puede usar alguna clave compartida (como una contraseña), que se enviará siempre junto con la solicitud (algo así como una cookie de sesión) .
De cualquier manera, aún necesita saber quién es quién a través de algún tipo de autorización (por ejemplo, la página de inicio de sesión). El usuario / paso será único por servidor, por lo que puede estar seguro de que quien descargue las claves o la "contraseña", son clientes autorizados.
En el caso de que su sistema no tenga información de inicio de sesión (un software más general) es más complicado (y eso es lo que creo que es su verdadera pregunta) ...
Bueno, me temo que no hay mucho que puedas hacer. Quizás pueda almacenar alguna clave descargada de su servidor durante la instalación (puede darle a cada cliente una clave de producto específica). No es 100% seguro, pero podría ayudar.
La analítica web tampoco es 100% segura. Pueden ser falsos (solo google: 'cómo falsificar el tráfico web'), pero las empresas hacen todo lo posible para identificar a los clientes reales de los falsos con sus propios algoritmos. La ventaja que tienen, es que su código no está abierto, por lo que no sabe exactamente qué están teniendo en cuenta.
Una vez tuve el mismo dilema que tú. En opensource, cada servidor tiene su propia configuración (que es privada), y puede usarla para evitar que personas no deseadas sepan todo sobre su servicio.
Si puedo pensar en otra cosa, extenderé mi respuesta, pero eso es todo a partir de ahora.