Notions de base de sécurité
Notions de base de sécurité de KiloCenter — identifiants par défaut à modifier, chemins des certificats TLS et durcissement minimal pour les déploiements partagés.
Objectif
Établir une base de référence sécurisée pour les déploiements de KiloCenter.
Identifiants par défaut
Le développement local inclut des identifiants de commodité qui doivent être modifiés pour tout environnement partagé ou de production :
PostgreSQL
utilisateur kilocenter, mot de passe changez-moi
À modifier dans config.yaml et Docker Compose
broker MQTT
utilisateur admin, mot de passe KiloCenter
À modifier dans la configuration de Mosquitto et config.yaml
TLS pour la communication entre la station de base et le centre d'application
BSSCI nécessite TLS 1.2 ou supérieur. SCACI nécessite TLS 1.3 ou supérieur. Chaque connexion à KC-Core utilise le chiffrement TLS.
Modèle de confiance de l'AC
KiloCenter utilise une autorité de certification (AC) auto-signée pour émettre tous les certificats :
Certificat de l'AC
Racine de confiance ; distribué aux stations de base
20 ans
certificates/ca.crt
Clé privée de l'AC
Signe les certificats serveur et client
--
certificates/ca.key
Certificat serveur
Liaisons TLS KC-Core BSSCI/SCACI
1 an
certificates/server.crt
Clé privée du serveur
négociation TLS
--
certificates/server.key
Certificat client
TLS mutuel par station de base (facultatif)
1 an
Généré à la demande
Les stations de base font confiance à l' Certificat de l'AC , et non aux certificats serveur individuels. Cela signifie que les certificats serveur peuvent être renouvelés sans toucher aux stations de base, tant que la même AC les signe.
Si vous régénérez l'AC, tous les certificats serveur et client existants deviennent invalides et doivent être réémis. Sauvegardez ca.key en lieu sûr.
Génération des certificats
Générer les certificats AC + serveur (première configuration)
Aucune chaîne d'outils Go sur l'hôte requise — utilisez le certgen service compose :
Propriété des fichiers (Linux) : Si les fichiers générés appartiennent à root, relancez avec
UID=$(id -u) GID=$(id -g)préfixé.
Pour un FQDN de production :
Cela crée quatre fichiers dans KC-Core/certificates/:
ca.crtetca.key-- certificat et clé privée de l’ACserver.crtetserver.key-- certificat et clé privée du serveur
Le certificat du serveur inclut automatiquement localhost, 127.0.0.1, 0.0.0.0, ainsi que toutes les adresses IP du réseau local comme noms alternatifs du sujet (SAN).
Générer un certificat client
Référence de certgen
-dir
certs
Répertoire de sortie pour les fichiers de certificat
-server
localhost
Nom d'hôte du serveur (utilisé comme CN et SAN)
-days
365
Validité du certificat serveur/client en jours
-ca-years
20
Validité du certificat de l'AC en années
-ca-only
faux
Générer uniquement le certificat de l'AC
-server-only
faux
Générer uniquement le certificat serveur (l'AC doit déjà exister)
-client-only
faux
Générer uniquement un certificat client (l'AC doit déjà exister)
-client
(vide)
Nom du client pour le certificat client (par ex., EUI de station de base)
Scénarios courants
Renouveler uniquement le certificat serveur (l'AC existe déjà) :
Rotation des certificats
Via compose (recommandé pour l'automatisation) :
Via l'interface graphique (renouvellement après installation) :
Ouvrez KC-Web et accédez à Certificats.
Cliquez sur Renouveler les certificats serveur et confirmez.
Redémarrez KC-Core pour charger les nouveaux certificats.
Après la rotation :
Redémarrez KC-Core pour charger les nouveaux certificats.
Vérifiez que les reconnexions des stations de base réussissent.
Si l'AC a été modifiée, redistribuez
ca.crtà toutes les stations de base.
Configuration des certificats
KC-Core charge les certificats depuis les chemins configurés dans config.yaml (source dev) ou config/config.docker.yaml (conteneur) :
Dans le mode source dev, les chemins sont relatifs au répertoire de travail de KC-Core. KC-Core ne démarrera pas si ces fichiers sont manquants.
Exposition réseau
Limitez les ports accessibles depuis l'extérieur de votre réseau local :
5000
BSSCI
Réseaux de stations de base uniquement
5001
SCACI
Hôtes du centre d'application uniquement
9090
KC-Gateway (gRPC-web)
Réseaux des opérateurs et des consommateurs d'API
80
KC-Web (conteneur)
Réseaux des opérateurs uniquement
50051
gRPC interne de KC-Core
Bouclage uniquement, ne jamais exposer à l'extérieur
5433
PostgreSQL
Bouclage uniquement
6379
Redis
Bouclage uniquement
1883
MQTT
Réseaux des consommateurs MQTT uniquement
Liste de contrôle de durcissement
Édition Entreprise
L'Édition Entreprise ajoute des fonctionnalités de sécurité multi-tenant :
Authentification des utilisateurs avec validation JWT
Isolation des données par organisation
Contrôle d'accès basé sur les rôles
Ces fonctionnalités ne sont pas disponibles dans l'Édition Communautaire.
Mis à jour