AiHummer
Türkçe
Oturum açHesap
v1.1.x
{ }Swagger

Sırlar kasası

v1.1.x · güncellendi 2026-06-26

AiHummer her kimlik bilgilerini — kanal belirteçlerini, SMTP/IMAP parolalarını, OAuth belirteçlerini, kiracı başına LLM anahtarlarını (BYOK) — bir şifrelenmiş sırlar kasası. Kasa, veritabanından tek başına okunamayacak şekilde veriyi dinlenme halinde şifrelemek için zarf şifrelemesi kullanır ve bir sır olacak şekilde tasarlanmıştır asla model bağlamına veya kayıtlara yerleştirilmez.

Zarf şifreleme

Kasa, iki seviyeli bir anahtar hiyerarşisi kullanır:

  • A anahtar anahtar (KEK) — olarak sağlanmıştır AIHUMMER_MASTER_KEY, base64 ile kodlanmış 32 baytlık değer — veri anahtarlarını sarar ve açar. Asla ana bilgisayardan çıkmaz ve veritabanına asla yazılmaz.
  • A kiracı başına veri şifreleme anahtarı (DEK) gerçek gizli değerleri şifreler ile AES-256-GCM (kimliği doğrulanmış şifreleme). Her kiracının kendi DEK’i vardır, böylece bir kiracının anahtarları başka bir kiracının sırlarını çözemez.

Gizli değerler şifreli metin olarak saklanır; DEK, KEK tarafından sarılmış şekilde saklanır. Şifre çözme, bir gizli değere ihtiyaç duyulduğu anda (örneğin, bir konektör kimlik doğrulaması yaptığında) bellekte gerçekleşir ve ardından düz metin atılır.

AIHUMMER_MASTER_KEY (KEK)  ──wraps──▶  per-tenant DEK  ──AES-256-GCM──▶  secret value

[!NOTE] Kasaya PostgreSQL’in üzerine dayanıyor pgcrypto uzantı. Emin olun ki veritabanınızda mevcut — bu, standart sistem gereksinimlerinin bir parçasıdır.

Anahtar

Anahtar anahtarı bir önyükleme değeridir: başlatıldığında ortamdan okunur ve değil yönetici kullanıcı arayüzünden yapılandırılabilir. Kurulum programı (ve ağ geçidi ilk başlatıldığında) her zaman oluşturur AIHUMMER_MASTER_KEY — bu isteğe bağlı değildir, çünkü secrets-at-rest, kimlik bilgisi kasası ve her kiracı için BYOK buna bağlıdır. Bu nedenle standart bir kurulum her zaman bir tane içerir.

# /home/.aihummer/etc/gateway.env
# 32 random bytes, base64-encoded
AIHUMMER_MASTER_KEY=Base64Of32RandomBytes==

Bunu şu şekilde oluşturabilirsiniz:

openssl rand -base64 32

[!WARNING] Kasadaki her şeyi çözmek için anahtar gereklidir. Ona şöyle davranın sırlarının ve kökü ayrı olarak yedekle veritabanından — eğer onu kaybederseniz, şifrelenmiş değerler kurtarılamaz. Bakınız Operasyonlar yedekleme rehberliği için.

Anahtar eksikse

Çünkü anahtar her zaman sağlandığı için, standart bir kurulum her zaman çalışan bir kasaya sahiptir. Buradaki davranış, sıra dışı durumlar için kapalı kalma önlemidir AIHUMMER_MASTER_KEY bir şekilde ayarlanmamış (örneğin, elle düzenlenmiş bir env dosyası): kasa ve ona bağlı her şey engelli — secrets-at-rest depolama, kimlik bilgisi kasası ve her kiracı için BYOK anahtarları devre dışı bırakıldı. Bu kasıtlıdır — ürün, gizli bilgileri düz metin olarak depolamaya sessizce geri dönmez.

Sırlar asla modele ulaşmaz

Bu, kasanın en önemli özelliğidir ve bir politika hatırlatmasından ziyade yapısaldır.

[!DANGER] Sırlar asla sistem istemine enjekte edilen, konuşma tarih veya herhangi bir model tarafından görülebilen metin ve onlar asla kayıtlara yazıldı. Kimlik bilgisine ihtiyaç duyan araçlar, çağrı zamanında, içinde hazineden bunu çözer geçit ve giden isteği doğrulamak için kullanın — model sadece aracın çağrısının sonucunu gören, sırrı değil.

Çünkü etkileşim araç çağrılarıyla yönlendirilir (bkz. Koruma çitleri ve istem enjeksiyonu savunması), modelin saklanan bir sırrı “okumasını” isteyen bir istemde bulunulabilecek bir yol yoktur: modelin okuyabileceği bir kopyası yoktur.

Paylaşılan ve kullanıcı başına kimlik bilgileri

Kasalar arasında ayırır paylaşılan (çalışma alanı düzeyinde) kimlik bilgileri ve kişisel (kullanıcı başına) kimlik bilgileri. Bağlantılar akışı aracılığıyla elde edilen kullanıcı başına OAuth2 belirteçleri kasada saklanır ve işlemi gerçekleştiren kullanıcı tarafından çözülür; uygun olduğunda bir çalışma alanı yedeği kullanılır. Bu, aynı aracın farklı kullanıcıların kendi yetkilendirmeleriyle hareket etmesine olanak tanır, bir kullanıcının belirtecini diğerine asla açığa çıkarmadan.

Sonra nereye?