Sécurité

Comment GnamiAI est construit.

GnamiAI est un espace IA multi-locataires. Plusieurs des choix de conception ci-dessous existent précisément parce qu'exécuter un agent pour des inconnus est un modèle de menace différent que l'exécuter pour soi-même. Cette page les liste honnêtement, limites incluses.

Authentification

Matériel cryptographique au repos

Chaque clé API de fournisseur que vous connectez (OpenAI, Anthropic, OpenRouter, Ollama, Mem0) est chiffrée dans la base avec AES-256-GCM à l'aide d'une clé de chiffrement de 32 octets détenue comme variable d'environnement serveur. Chaque clé reçoit un IV de 12 octets neuf et une étiquette d'authentification de 16 octets. Changer la clé de chiffrement sans accès à la précédente rend chaque clé stockée un cryptogramme irrécupérable — l'opérateur en fait une sauvegarde.

La clé HMAC par requête qui signe vos témoins de session est aussi une variable d'environnement de 32 octets, distincte de la clé de chiffrement. La faire tourner invalide chaque session active par conception.

Isolement par locataire

Chaque table à portée locataire porte une colonne tenant_id. Chaque gestionnaire d'API non-admin commence par requireTenant(), qui revérifie votre session contre la base et retourne l'enregistrement du locataire. Chaque requête subséquente filtre par cet identifiant. Les points d'accès admin sont en plus protégés par requireAdmin() qui relit le drapeau is_admin depuis votre ligne de base à chaque appel — jamais depuis le témoin de session.

Un client trafiqué qui soumet l'identifiant d'un autre locataire ne peut ni lire ni modifier les données de ce locataire. Les gestionnaires serveur ignorent les identifiants fournis par l'appelant là où ça compte; le filtre est toujours le locataire de la session.

Garde-fous multi-locataires

Protection SSRF

Deux fonctionnalités acceptent des URLs que vous fournissez : l'intégration Ollama (URL de base) et l'installation de compétence depuis une URL. Les deux passent l'URL dans une garde qui rejette :

Le réattachement DNS est un risque résiduel; nous le documentons plutôt que prétendre autrement. Pour le déploiement le plus sécurisé, les opérateurs font passer les récupérations par un proxy de sortie qui résout et épingle les IP.

Ce que GnamiAI ne peut explicitement pas faire