Deep Security Dive
🛡️ الأمان في Aliens Treasury
كل طبقة من طبقات الأمان هنا متحققة من الكود — مش وعود تسويقية.
AES-256-GCM + HKDF
internal/services/encrypt.go:96كل سر يستمد مفتاحاً مستقلاً من المفتاح الرئيسي مع ملح عشوائي 16 بايت. اختراق سر واحد لا يكشف جيرانه.
go|internal/services/encrypt.go:96
1// internal/services/encrypt.go2func EncryptWithHKDF(masterKey, salt, plaintext []byte) ([]byte, error) {3 uniqueKey := hkdf.Extract(sha256.New, masterKey, salt)4 block, _ := aes.NewCipher(uniqueKey)5 gcm, _ := cipher.NewGCM(block)6 nonce := make([]byte, gcm.NonceSize())7 io.ReadFull(rand.Reader, nonce)8 return gcm.Seal(nonce, nonce, plaintext, nil), nil9}End-to-End Zero Knowledge
internal/services/encrypt_e2e.goبمفتاح X25519، السيرفر يستقبل السر مشفراً لا يملك مفتاح فكه. أنت وحدك من يرى القيمة.
go|internal/services/encrypt_e2e.go
1// internal/services/encrypt_e2e.go2func EncryptE2E(publicKey, plaintext []byte) ([]byte, error) {3 ephemeral := make([]byte, 32)4 rand.Read(ephemeral)5 shared := curve25519.X25519(ephemeral, publicKey)6 return encrypt(shared, plaintext), nil7}Challenge-Response (Ed25519)
internal/services/auth_service_challenge.goمفاتيح الخدمة تُصادق بدون إرسال أي API key على الشبكة. حتى اعتراض الاتصال لا يكشف مفتاحاً.
go|internal/services/auth_service_challenge.go
1// internal/services/auth_service_challenge.go2func ChallengeResponse(privateKey ed25519.PrivateKey, nonce []byte) []byte {3 return ed25519.Sign(privateKey, nonce)4}SO_PEERCRED Authentication
cmd/vault-client/internal/server/socket.govault-client يتأكد من هوية كل عميل عبر UID/GID/PID قبل تسليم أي سر.
go|cmd/vault-client/internal/server/socket.go
1// cmd/vault-client/internal/server/socket.go2func authenticatePeer(conn *net.UnixConn) (*syscall.Ucred, error) {3 file, _ := conn.File()4 creds, _ := syscall.GetsockoptUcred(int(file.Fd()), syscall.SOL_SOCKET, syscall.SO_PEERCRED)5 return creds, nil6}Memory Safety + Core Dump Protection
internal/crypto/zero.goمسح آمن للذاكرة بعد الاستخدام + منع core dumps عبر PR_SET_DUMPABLE=0.
go|internal/crypto/zero.go
1// internal/crypto/zero.go2func SecureZero(b []byte) {3 for i := range b { b[i] = 0 }4 runtime.KeepAlive(b)5}6// PR_SET_DUMPABLE = 07syscall.Prctl(syscall.PR_SET_DUMPABLE, 0)🛡️ تنبيه أمني
⚠️ شفافية: Master Key محفوظ على خادمك في ملف 0600 — مش في أي Cloud. أنت المسؤول الوحيد عن حمايته. استخدم Shamir Split عشان تقلل مخاطر الضياع.