Fonctionnalités

Gardez les identifiants hors de l'environnement de l'agent

Pour HTTP et SSH intégrés, Sallyport autorise l'opération, communique lui-même avec la cible et ne joint l'identifiant qu'à l'intérieur de l'application. L'agent obtient le résultat, pas la clé. La limite exacte est décrite dans le modèle de sécurité.

S'exécute sur votre MacAucun compte SallyportAucun plan de contrôle cloudHTTP · SSH · MCP en amont
Parcours de la requête

HTTP et SSH intégrés séparent requêtes et identifiants

La requête indique une opération et une cible. Sallyport vérifie le processus actif, applique la chaîne d'autorisation, écrit une intention durable, puis confie l'opération à l'exécuteur HTTP ou SSH.

Vous

Cliquez ou utilisez Touch ID si nécessaire

Limite locale de Sallyport
Processus de l'agentOpération, cible et charge utile
Identité du processus actif
Chaîne d'autorisation
Intention d'audit durable
Exécuteur HTTP ou SSH
Coffre-fort chiffréIdentifiants fournis en interne
Cible demandée / configuréeURL HTTP ou hôte SSH configuré
demande d'opérationparcours interne des identifiantsrésultat visible par l'agentles identifiants stockés ne sont pas ajoutés intentionnellement
Un agent demande à Sallyport une opération HTTP ou SSH intégrée. Sallyport vérifie l'identité du processus actif, applique les contrôles d'approbation, écrit une intention d'audit durable et transmet l'opération à l'exécuteur du canal. Le coffre-fort fournit les identifiants à cet exécuteur. Le résultat de la cible est renvoyé sans inspection ni réécriture du contenu et peut contenir des données sensibles.
Canaux d'exécution

Chaque invocation admise passe par le même sas

HTTP, SSH, MCP distant et stdio local ont des limites de confiance différentes. Leurs invocations d'outils passent par les mêmes contrôles du coffre-fort, de l'approbation, du cycle de vie et de l'audit.

01

HTTP

http.request → méthode + URL + corps

Si l'hôte et le chemin correspondent, Sallyport peut joindre une authentification Bearer, Basic, par en-tête personnalisé, AWS SigV4 ou client OAuth2. Sans correspondance, la requête part sans identifiants.

Les requêtes avec identifiants ne suivent aucune redirection. Les autres peuvent suivre une chaîne limitée sur les mêmes hôte et port, sans rétrograder HTTPS. Les résultats et erreurs sont renvoyés dans les limites de taille sans inspection du contenu et peuvent contenir des données sensibles.

02

SSH

ssh.exec → hôte + commande visible

L'app signe les demandes d'authentification pour l'assistant sans état sp-ssh. La clé privée reste dans Sallyport.app, et l'assistant peut renvoyer un enregistrement que l'app scellera.

La règle accept-new par défaut stocke la première clé d'hôte et refuse tout changement ultérieur ; strict exige une clé connue. La sortie SSH renvoyée et les enregistrements scellés peuvent contenir des données sensibles.

03

MCP distant

server.tool → arguments typés

Sallyport appelle le serveur distant via HTTP streamable et joint sa clé d'API ou son jeton OAuth 2.1 configuré. Ce serveur est le destinataire autorisé des identifiants.

Le serveur est un destinataire de confiance des identifiants. Les résultats, erreurs et métadonnées authentifiées du catalogue sont renvoyés sans filtrage selon les identifiants, sous réserve des limites documentées de taille et de description, et peuvent contenir des identifiants ou d'autres données sensibles.

04

MCP stdio local

server.tool → arguments typés

Le processus enfant reçoit les identifiants liés dans son environnement et hérite de l'environnement du processus Sallyport. Faites confiance au code du serveur et à ses dépendances.

Un enfant sans approbation par appel peut rester actif jusqu'au verrouillage, à la reconfiguration ou à la fermeture. Un enfant par appel démarre après approbation pour une invocation, puis s'arrête.

MCP distant en HTTP streamable

MCP stdio local

Invocation de l'agent
Sas d'invocationIdentité, approbation, intention durable
Requête authentifiéeHTTP streamable
Serveur MCP distantDestinataire de confiance des identifiants API / OAuth
clé d'API / jeton OAuth configuréinitialize + tools/list authentifiésmétadonnées sans audit ; renvoyées telles quelles
Invocation de l'agent
Sas d'invocationIdentité, approbation, intention durable
Processus enfant stdio localReçoit les secrets liés + l'environnement hérité de l'app
Cycle de vie du coffre-fortPrêt, verrouillage, reconfiguration, fermeture
les identifiants entrent dans l'environnement de l'enfantsans approbation par appel : peut rester actifpar appel : approuver, démarrer, invoquer, arrêterfaites confiance au code et aux dépendances du serveur en amont
Pour le MCP distant, une invocation admise passe par Sallyport, qui joint l'authentification API ou OAuth à la requête distante. Le serveur distant est un destinataire de confiance des identifiants. Les résultats, erreurs et métadonnées authentifiées du catalogue sont renvoyés sans filtrage selon les identifiants, sous réserve des limites documentées de taille et de description, et peuvent contenir des données sensibles. L'initialisation et le catalogue restent hors de la chaîne d'invocation. Pour le MCP stdio local, l'enfant reçoit les identifiants liés et l'environnement de l'app. Les enfants sans approbation par appel peuvent rester actifs tant que le coffre-fort est prêt ; les enfants par appel s'exécutent une fois après approbation.

Limite stricte : initialize et tools/list gèrent le catalogue en amont hors de la chaîne d'invocation. Sallyport ne filtre pas le contenu selon les identifiants ; les limites documentées de taille et de description s'appliquent toujours. Les noms, descriptions et schémas restent du contenu arbitraire contrôlé par le serveur en amont et peuvent contenir des données sensibles.

Autorisation

Un parcours fixe pour chaque invocation d'outil admise

Il n'existe aucun langage de règles défini par l'utilisateur. L'initialisation et la découverte du catalogue sont du trafic de gestion, pas des invocations admises, et ne reçoivent aucune ligne d'intention.

  1. 01 · état

    Exiger un coffre-fort prêt

    Un coffre-fort verrouillé, en cours de déverrouillage ou en quarantaine refuse les actions des agents. Le verrouillage efface aussi les sessions, les approbations en attente, les demandes d'identifiants et les processus MCP en stdio.

    refuser ou continuer
  2. 02 · résolution

    Résoudre la cible et les identifiants

    Sallyport rejette les appels si la cible requise ou les métadonnées des identifiants ne peuvent pas être résolues.

    refuser ou continuer
  3. 03 · par appel

    Demander l'approbation de chaque utilisation marquée

    Une clé ou un serveur en amont marqué pour une approbation par appel exige un clic ou Touch ID, même dans une session approuvée ou autorisée par l'allowlist.

    demander ou continuer
  4. 04 · processus

    Vérifier la session, l'allowlist ou le mode observation

    Une session active lie le PID et l'heure de démarrage du noyau aux données de l'exécutable et de la signature de code. Elle admet le processus, pas chaque paquet ou source d'octets. Une correspondance dans l'allowlist ignore uniquement la carte de session.

    demander ou continuer
  5. 05 · intention

    Écrire avant l'effet de bord

    Chaque appel d’outil exige une intention d’audit chiffrée et durable avant le démarrage de l’exécuteur. Si cette écriture échoue, l’opération ne démarre pas.

    refuser ou exécuter
  6. 06 · résultat

    Exécuter et fermer la ligne

    Sallyport exécute le canal, tente d'ajouter la ligne de résultat et renvoie le résultat borné de l'exécuteur sans inspection ni réécriture du contenu. Les résultats peuvent contenir des données sensibles.

    renvoyer le résultat

La chaîne et l'intention d'audit couvrent les invocations d'outils, pas l'initialisation ni le catalogue. Une modification du cycle de vie avant l'exécution refuse l'admission. Pendant l'exécution, elle écarte le résultat sans pouvoir annuler un effet de bord terminé.

Coffre-fort et journal

Les secrets et les preuves suivent des parcours distincts

Le coffre-fort s'ouvre avec une clé protégée par le matériel. Le journal d'audit peut accepter des lignes chiffrées quand le coffre-fort est verrouillé, mais leur lecture exige toujours son déverrouillage.

déverrouillage et déchiffrement des enregistrements

parcours d'audit en écriture aveugle

Secure EnclaveClé P-256 protégée par Touch ID
Identité de coffre-fort scellée
DEK du coffre-fort
Enregistrements chiffrésClé dérivée et contexte authentifié par enregistrement
Intention + résultat
Lignes scellées par ECIES
Chaîne de hachage signée
Point de contrôle local signé
Clé publique d'audit
vérification de la chaîne + du point de contrôle
La clé Secure Enclave ouvre une identité de coffre-fort scellée, qui déchiffre la clé de chiffrement des données utilisée pour les enregistrements chiffrés. Séparément, une clé publique d'audit scelle les lignes d'intention et de résultat. La chaîne signée de textes chiffrés détecte les modifications, changements d'ordre, lacunes internes et substitutions du signataire. Un point de contrôle local signé détecte les restaurations antérieures à ce point.
01 · Aucune révélation ni exportation
Sallyport ne permet ni de révéler, ni d'exporter, ni de récupérer les identifiants. Si les clés du coffre-fort sont perdues, les fournisseurs doivent réémettre les identifiants.
02 · Métadonnées chiffrées
Les noms, les fournisseurs, les liaisons d'hôtes, l'inventaire SSH et les réglages sont scellés avec les valeurs secrètes.
03 · Limite de restauration définie
La chaîne détecte les modifications, changements d'ordre, lacunes internes et substitutions du signataire. Le point de contrôle local détecte les restaurations antérieures ; une fin de chaîne ultérieure peut disparaître après un arrêt brutal. Une restauration locale complète exige un témoin externe.

Installez Sallyport

Installez l'app Mac signée, ajoutez des identifiants et connectez votre client MCP.

$brew install --cask olegsotnikov/tap/sallyport

macOS 14+ · Apple Silicon

Sallyport

Sallyport exécute les appels d'API et les commandes SSH à la place de votre agent IA. Les clés restent dans un coffre-fort local sur votre Mac ; vous approuvez chaque exécution et chaque action est consignée dans un journal scellé.

© 2026 Sallyport · Open source sous Apache-2.0 · Oleg Sotnikov