قسائم موقعة توقيعاً أعمى وبيانات وصول مجهولة

AeroNyx29 يونيو 20265 دقيقة قراءة50 مشاهدة

دليل موثق لـ VPN voucher وBlind Vault RFC 9474 admission مع حدود rollout وreplay وissuer والخصوصية.

تستخدم AeroNyx blind signature في مساري تفويض مختلفين. كلاهما يقلل identity linkage لكن rollout وreplay guarantees مختلفان. توضح الصفحة ما ينفذه Rust main وما يتحكم به deployment وما لا يجوز استنتاجه من credential.

مسارا بيانات الاعتماد

يصرح VPN لـ ClientHello عبر finalized blind-signature credential. ينشئ Blind Vault V2 random self-authenticating lease بـ RFC 9474. أما V1 فهو linkable one-time bearer للتوافق وليس blind issuance.

المسارالحالة الحاليةنموذج replay/redemption
VPN ClientHello voucherمطبق؛ rollout متوافق reject_invalidلا one-time spend في VoucherVerifier
Blind Vault V2 admissionمطبق في Rust؛ يتحكم به deploymentAtomic spend وexact retry idempotent
Blind Vault V1 admissionتوافق فقط؛ يفضل V2 للجديدAtomic spend لكن issuance linkable

ثابت الخصوصية

الهدف تفويض الخدمة دون إعطاء issuance identity للعقدة. يجب فصل signer وentitlement backend وstorage node وconsole؛ جمع request-level records يكسر unlinkability.

  • تتحقق العقدة من الحق دون wallet/account identity.
  • يستقبل signer blinded bytes وkey ID لا entitlement identity.
  • لا تسجل secrets أو tokens أو randomizers أو spend/lease IDs أو private keys.
  • لا تربط aggregate counters بـ per-user traffic.
  • ليست wallet blind signing لمعاملة مجهولة.

Voucher مصافحة VPN

يرسل client امتداد AVCH محدوداً. يحلل Rust الحقول فقط ويجلب public key حسب epoch ويخزنه ساعة ويتحقق من randomized SHA-384 RSA-PSS دون wallet/account ID.

text
ClientHello fixed frame
  + magic: AVCH
  + voucher_length: u16 little-endian
  + voucher JSON (maximum 2048 bytes)
json
{
  "token": "base64-final-credential-message",
  "signature": "base64-finalized-blind-signature",
  "msg_randomizer": "base64-32-byte-randomizer",
  "epoch": "issuer-key-epoch"
}

يكون المسار blind فقط عندما يعمي client الرسالة قبل التوقيع. توقيع token مرتبط بالهوية ليس مكافئاً. Token وsignature وrandomizer وepoch bearer secrets لا تسجل.

حد rollout الحالي للـ VPN

VPN في reject_invalid: يرفض malformed/invalid ويقبل missing مؤقتاً لترحيل العملاء القدامى. هذا ليس mandatory enforcement.

text
mode = reject_invalid
valid | invalid | missing | malformed | total
valid_ratio | invalid_ratio | missing_ratio | malformed_ratio
last_observation | last_error

يتحقق VoucherVerifier ويجمع النتائج لكنه لا ينفذ atomic spend للـ VPN token. لا يوجد node one-time redemption؛ sharing وreplay وquota وexpiry تحتاج عقداً versioned.

Blind Vault V2 admission

يكتشف Blind Vault V2 epochs موقعة ويعمي RFC 9474 ويحصل على signature من issuer معزول ثم finalize محلي ويرسل إلى /api/vault/v1/lease. يلزم تفعيل API وpinned issuers.

http
GET  /api/vault/v1/issuers
POST /api/vault/v1/lease
POST /api/vault/v1/put
POST /api/vault/v1/pull
POST /api/vault/v1/delete
Content-Type: application/vnd.aeronyx.blind-vault-v1
text
client blinds RFC 9474 admission message
  -> entitlement backend authorizes issuance
  -> isolated blind issuer signs blinded bytes only
  -> client finalizes signature
  -> node verifies active public epoch
  -> atomic spend marker + random self-authenticating lease
  -> ciphertext storage operations use lease-scoped keys/capabilities

عزل issuer وتدوير المفاتيح

العملية الخاصة في aeronyx-blind-issuer تستقبل version وpublic fingerprint وbounded blinded RSA bytes فقط، بلا account model أو storage DB أو redemption visibility، وتدعم software وHSM/KMS مستقبلاً.

يحمل epoch canonical DER وSHA-256 key ID وvalidity وmax lease TTL. يتطلب update authority منفصلة وmonotonic generation وcontinuity وatomic persistence؛ rollback يفشل مغلقاً.

Atomic spend وidempotency وreplay

يتحقق V2 ويثبت spend ID وlease في immediate SQLite transaction واحدة. Credential المصروف لا ينشئ lease ثانياً، والـ exact retry idempotent.

يشترك V1/V2 في spend table مع فصل schemes: V1 raw ticket linkable وV2 spend ID unlinkable. هذه replay protection تخص Blind Vault لا VPN verifier.

Observability وNodeboard

يعرض Nodeboard aggregate validity وcapacity وsigner health وcoarse buckets فقط. لا تضف token أو wallet أو lease أو request أو per-user dimensions.

الأدلة المجمعة المسموحة:

  • VPN valid وinvalid وmissing وmalformed totals/ratios
  • issuer key وreload وcapacity وrate وtimeout وcircuit counters
  • Blind Vault aggregate leases وobjects وbytes وexpiry وcleanup
  • mode وepoch availability وlast observation وprivacy boundary

لا تكشف أبداً:

  • tokens أو signatures أو randomizers أو blinded messages أو spend IDs
  • wallet أو account أو payment أو membership أو social identity
  • per-user history أو lease/object/capability/request IDs
  • client IP أو destination أو DNS أو route أو message أو browsing metadata
  • private keys أو provider errors أو ciphertext أو plaintext أو wallet traffic

التهديدات والقيود

تقلل blind signature linkage ولا تخفي timing وregion وcapacity وclient compromise وissuer collection وtheft وcollusion وtraffic correlation؛ نحتاج blind relay وencryption وbounded logs وseparation.

  • ربط issuer collection بـ redemption timing
  • theft أو sharing أو resale أو client compromise
  • VPN replay قبل versioned policy
  • تواطؤ issuer/backend/node/operator
  • timing وregion وcapacity وtraffic correlation
  • key rollback أو broken continuity
  • تحول aggregate telemetry إلى per-user history

خريطة المصدر

يفصل source بين VPN verification وsigning وwire contracts وBlind Vault admission/API/config وreporting. هذه ownership boundaries مقصودة.

الطبقةمسار المستودعالدور
VPN verifiercrates/aeronyx-server/src/voucher_verifier.rsيحلل AVCH ويكتشف epochs ويتحقق من voucher ويسجل rollout metrics.
Blind signercrates/aeronyx-blind-issuer/src/signer.rsسياسة RSA identity-free وcustody abstraction.
Issuer APIcrates/aeronyx-blind-issuer/src/api.rsAuthenticated bounded signing وepochs وpressure وhealth.
Wire contractscrates/aeronyx-core/src/protocol/blind_vault.rsRFC 9474 contracts وepochs وspend IDs وframes وsignatures.
Blind Vault servicecrates/aeronyx-server/src/services/blind_vault.rsV1/V2 admission وatomic spend+lease.
Blind Vault APIcrates/aeronyx-server/src/api/blind_vault.rsRoutes issuers/lease/put/pull/delete وcoarse errors.
Blind Vault configcrates/aeronyx-server/src/config_blind_vault.rsPinned issuers/authority وTTL وmonotonic rotation.
Health/reportingcrates/aeronyx-server/src/api/vpn_health.rs and management/reporter.rsAggregate status بلا secrets أو wallet traffic.

قواعد التطوير

يكتمل التغيير عند توافق crypto semantics وrollout وspend وobservability وtests وكل اللغات. الادعاء الضيق الصادق أفضل.

  1. افصل VPN وBlind Vault في names/code/telemetry/docs.
  2. لا تدع mandatory VPN مع قبول missing.
  3. لا تدع one-time VPN دون atomic spend.
  4. لا تضف account/wallet/lease/node/redemption context إلى signer.
  5. حافظ على continuity وauthority fail-closed وatomicity.
  6. Aggregate health فقط بلا credential/identity dimensions.
  7. حدث tests وNodeboard والترجمات مع semantics.

Blind Vault: جهات اتصال مشفرة وأرشيف اختياري