AI Connect/Reference/セキュリティ

セキュリティ

VinkiusについてAIに質問

@vinkius/connectのセキュリティモデル:サーバーサイドの1つのシークレット、書き込み専用の認証情報、アプリケーションにランタイムトークンを保持しない設計、マスキングされたオブザーバビリティ、脆弱性の開示ポリシー。

@vinkius/connect は、インテグレーターが管理する必要のあるシークレットの露出面を最小限に抑えるように設計されています。このページでは、モデル、保証、脆弱性開示ポリシーについて説明します。

シークレットは 1 つだけ

SDK は、公開アプリケーション ID(vk_app_*)と 1 つの秘密アプリケーションキー(vk_app_sk_*)で初期化します。シークレットは HTTPS 上の Authorization: Bearer ヘッダーとしてのみ送信されます。

  • すべてのリクエストに識別情報を含める。 各呼び出しは vk_app_* アプリ ID を運び、サーバー側でキーに対して検証されます。キーは自分のアプリケーションに代わってのみ動作できます。漏えいした vk_app_sk_* は 1 つのアプリケーションに限定され、API はテナント間アクセスを 404 で拒否します。
  • サーバー側に置く。 環境変数かシークレットマネージャーに保管します。ブラウザ、モバイルアプリ、ユーザーが管理するあらゆるクライアントに送ってはいけません。

ランタイムトークンは SDK に届かない

ツールの実行は Vinkius API がプロキシします。内部のデータプレーン用トークン(vk_live_*)は、作成、ローテーション、使用のすべてがサーバー側で完結します。アプリケーションが保存や漏えいを心配すべきランタイムシークレットは存在しません。ランタイムエンドポイント経由の呼び出しはすべて計測され、取り消し可能(キルスイッチ)です。

認証情報は書き込み専用

エンドユーザーの認証情報は API 経由で保存され、返されることはありません。SDK が報告できるのはどのキーが設定されているかだけで、値は決して分からず、モデルが生のシークレットを受け取ることもありません:

typescript
const state = await github.credentials.status();
// state.configured: Record<string, boolean> — flags, not values

ランタイム依存はゼロ

コアはサードパーティのランタイム依存なしで提供され、サプライチェーンの露出面を最小に保ちます。

デフォルトでマスキング

オブザーバビリティフックはマスキングされたヘッダーとボディを受け取ります。Authorization、トークン、認証情報に類するフィールドが、SDK を通じてロガーに届くことはありません。マスキングは、大文字小文字を区別しない正確なフィールド名(authorizationtokenapi_keycredentialspasswordsecretclient_secret など)の固定リストに対して、最大 6 段階の深さまで適用されます。完全なリストは API Reference を参照してください。

トランスポートの安全性

localhost 以外の http:// ベース URL はコンソール警告を出力します。本番環境では必ず https:// を使用してください。

脆弱性の報告

セキュリティの問題は security@vinkius.com へ非公開で報告してください。脆弱性について公開の issue を作成しないでください。報告は 3 営業日以内に確認応答され、トリアージ後に修正スケジュールが伝えられます。

サポート対象バージョン

1.0 未満のリリースは、最新のマイナーバージョンに対してセキュリティ修正を受け取ります。@vinkius/connect を最新に保ってください:

bash
npm install @vinkius/connect@latest

次のステップ