Funciones

Mantén las credenciales fuera del entorno del agente

Para HTTP y SSH integrados, Sallyport autoriza la operación, se comunica con el destino y adjunta la credencial solo dentro de la aplicación. El agente obtiene el resultado, no la clave. El límite exacto está escrito en el modelo de seguridad.

Se ejecuta en tu MacSin cuenta de SallyportSin plano de control en la nubeHTTP · SSH · MCP upstream
Ruta de la solicitud

HTTP y SSH integrados separan las rutas de solicitud y credencial

La solicitud indica una operación y un destino. Sallyport comprueba el proceso activo, aplica la escalera de autorización, escribe una intención duradera y solo entonces entrega la operación al ejecutor HTTP o SSH.

Haz clic o usa Touch ID cuando sea necesario

Límite local de Sallyport
Proceso del agenteOperación, destino y payload
Identidad del proceso activo
Escalera de autorización
Intención de auditoría duradera
Ejecutor HTTP o SSH
Bóveda cifradaCredencial proporcionada internamente
Destino solicitado / configuradoURL HTTP o host SSH configurado
solicitud de operaciónruta interna de la credencialresultado visible para el agentela credencial almacenada no se añade intencionadamente
Un agente pide a Sallyport una operación HTTP o SSH integrada. Sallyport verifica la identidad del proceso activo, aplica los controles de aprobación, escribe una intención de auditoría duradera y entrega la operación al ejecutor del canal. La bóveda proporciona la credencial a ese ejecutor. El resultado del destino se devuelve sin inspeccionar ni reescribir su contenido y puede incluir datos sensibles.
Canales de ejecución

Cada invocación admitida pasa por la misma puerta

HTTP, SSH, MCP remoto y stdio local tienen límites de confianza distintos. Sus invocaciones de herramientas pasan por las mismas comprobaciones de bóveda, aprobación, ciclo de vida y auditoría.

01

HTTP

http.request → método + URL + cuerpo

Si coinciden host y ruta, Sallyport puede adjuntar autenticación Bearer, Basic, por cabecera personalizada, AWS SigV4 o cliente OAuth2. Sin coincidencia, la solicitud se ejecuta sin credenciales.

Las solicitudes con credenciales no siguen redirecciones. Las que no llevan credenciales pueden seguir una cadena limitada en el mismo host y puerto sin degradar HTTPS. Los resultados y errores se devuelven dentro de los límites de tamaño sin inspeccionar su contenido y pueden incluir datos sensibles.

02

SSH

ssh.exec → host + comando visible

La app firma las solicitudes de autenticación para el helper sin estado sp-ssh. La clave privada permanece en Sallyport.app y el helper puede devolver una grabación para que la app la selle.

La política predeterminada accept-new guarda la primera clave de host y rechaza cambios posteriores; strict exige una clave conocida. La salida SSH devuelta y las grabaciones selladas pueden contener datos sensibles.

03

MCP remoto

server.tool → argumentos tipados

Sallyport llama al servidor remoto mediante HTTP transmisible y adjunta su clave de API o token OAuth 2.1 configurado. Ese servidor es el destinatario autorizado de la credencial.

El servidor es un destinatario de confianza de la credencial. Los resultados, errores y metadatos autenticados del catálogo se devuelven sin filtrado según credenciales, sujetos a los límites documentados de tamaño y descripción, y pueden incluir credenciales u otros datos sensibles.

04

MCP stdio local

server.tool → argumentos tipados

El proceso hijo recibe las credenciales vinculadas en su entorno y hereda el entorno del proceso de Sallyport. Considera de confianza el código del servidor y sus dependencias.

Un proceso hijo sin aprobación por llamada puede seguir activo hasta bloquear, reconfigurar o cerrar la app. Uno por llamada se inicia tras aprobar una invocación y se detiene al terminar.

MCP remoto por HTTP transmisible

MCP stdio local

Invocación del agente
Puerta de invocaciónIdentidad, aprobación, intención duradera
Solicitud autenticadaHTTP transmisible
Servidor MCP remotoDestinatario de confianza de credenciales API / OAuth
clave de API / token OAuth configuradoinitialize + tools/list autenticadosmetadatos sin auditoría; se devuelven tal como llegan
Invocación del agente
Puerta de invocaciónIdentidad, aprobación, intención duradera
Proceso hijo stdio localRecibe secretos vinculados + entorno heredado de la app
Ciclo de vida de la bóvedaLista, bloqueo, reconfiguración, cierre
las credenciales entran en el entorno del proceso hijosin aprobación por llamada: puede seguir activopor llamada: aprobar, iniciar, invocar, detenerconfía en el código y las dependencias del servidor upstream
En MCP remoto, una invocación admitida pasa por Sallyport, que adjunta autenticación de API u OAuth a la solicitud remota. El servidor remoto es un destinatario de confianza de la credencial. Los resultados, errores y metadatos autenticados del catálogo se devuelven sin filtrado según credenciales, sujetos a los límites documentados de tamaño y descripción, y pueden incluir datos sensibles. La inicialización y el catálogo siguen fuera de la escalera de invocación. En MCP stdio local, el proceso hijo recibe credenciales vinculadas y el entorno de la app. Los procesos sin aprobación por llamada pueden permanecer activos mientras la bóveda esté lista; los procesos por llamada se ejecutan una vez tras la aprobación.

Límite estricto: initialize y tools/list gestionan el catálogo upstream fuera de la escalera de invocación. Sallyport no filtra el contenido según credenciales; siguen aplicándose los límites documentados de tamaño y descripción. Los nombres, descripciones y esquemas siguen siendo contenido arbitrario controlado por el upstream y pueden incluir datos sensibles.

Autorización

Una ruta fija para cada invocación de herramienta admitida

No existe un lenguaje de políticas definido por el usuario. La inicialización y el descubrimiento del catálogo son tráfico de gestión, no invocaciones admitidas, y no reciben filas de intención.

  1. 01 · estado

    Exigir que la bóveda esté lista

    Una bóveda bloqueada, en proceso de desbloqueo o en cuarentena deniega las acciones de los agentes. Al bloquearla también se borran las sesiones, las aprobaciones pendientes, las solicitudes de credenciales y los procesos MCP por stdio.

    denegar o continuar
  2. 02 · resolución

    Resolver el destino y la credencial

    Sallyport rechaza las llamadas cuando no puede resolver el destino requerido o los metadatos de la credencial.

    denegar o continuar
  3. 03 · por llamada

    Pedir aprobación para cada uso marcado

    Una clave o un servidor upstream marcado para aprobación por llamada exige un clic o Touch ID, incluso en una sesión aprobada o incluida en la lista permitida.

    preguntar o continuar
  4. 04 · proceso

    Comprobar la sesión, la lista permitida o el modo observación

    Una sesión activa vincula el PID y la hora de inicio del kernel con los datos del ejecutable y de la firma de código. Admite el proceso, no cada paquete ni origen de bytes. Una coincidencia en la lista permitida solo omite la tarjeta de sesión.

    preguntar o continuar
  5. 05 · intención

    Escribir antes del efecto secundario

    Cada invocación de herramienta requiere una intención de auditoría cifrada y duradera antes de ejecutarse. Si falla la escritura, la operación no comienza.

    denegar o ejecutar
  6. 06 · resultado

    Ejecutar y cerrar la fila

    Sallyport ejecuta el canal, intenta añadir la fila de resultado y devuelve el resultado acotado del ejecutor sin inspeccionar ni reescribir su contenido. Los resultados pueden incluir datos sensibles.

    devolver el resultado

La escalera y la intención de auditoría cubren invocaciones de herramientas, no la inicialización ni el catálogo. Un cambio de ciclo de vida antes de ejecutar deniega la admisión. Durante la ejecución descarta el resultado, pero no puede deshacer un efecto secundario ya completado.

Bóveda y registro

Los secretos y las pruebas siguen rutas separadas

La bóveda se abre con una clave protegida por hardware. El registro de auditoría puede aceptar filas cifradas mientras la bóveda está bloqueada, pero para leerlas hay que desbloquearla.

desbloqueo y descifrado de registros

ruta de auditoría con escritura ciega

Secure EnclaveClave P-256 protegida por Touch ID
Identidad sellada de la bóveda
DEK de la bóveda
Registros cifradosClave derivada y contexto autenticado por registro
Intención + resultado
Filas selladas con ECIES
Cadena de hashes firmada
Punto de control local firmado
Clave pública de auditoría
verificación de cadena + punto de control
La clave de Secure Enclave abre una identidad sellada de la bóveda, que desenvuelve la clave de cifrado de datos usada para los registros cifrados. Por separado, una clave pública de auditoría sella las filas de intención y resultado. La cadena firmada de texto cifrado detecta ediciones, cambios de orden, huecos internos y sustitución del firmante. Un punto de control local firmado detecta reversiones anteriores a ese punto.
01 · Sin revelación ni exportación
Sallyport no ofrece ninguna vía para revelar, exportar ni recuperar credenciales. Si se pierden las claves de la bóveda, hay que volver a emitir las credenciales con sus proveedores.
02 · Metadatos cifrados
Los nombres, proveedores, hosts vinculados, el inventario SSH y los ajustes se sellan junto con los valores secretos.
03 · Límite de reversión definido
La cadena detecta ediciones, cambios de orden, huecos internos y sustitución del firmante. El punto de control local detecta reversiones anteriores; tras un cierre no limpio puede perderse una cola posterior. Una reversión local completa exige un testigo externo.

Instala Sallyport

Instala la app firmada para Mac, añade una credencial y conecta tu cliente MCP.

$brew install --cask olegsotnikov/tap/sallyport

macOS 14+ · Apple Silicon

Sallyport

Sallyport ejecuta llamadas de API y comandos SSH por tu agente de IA. Las claves se quedan en una bóveda local de tu Mac; tú apruebas cada ejecución y cada acción queda en un registro sellado.

© 2026 Sallyport · Código abierto bajo Apache-2.0 · Oleg Sotnikov