Site icon Games and Consoles

[XBOX360] XboxTLS 1.0.0 – Libreria Client TLS 1.2 per Xbox 360 Homebrew con BearSSL

XboxTLS

XboxTLS è una libreria statica standalone che porta il supporto completo per TLS 1.2 su Xbox 360 sfruttando BearSSL. Progettata per ambienti devkit o moddati (RGH/JTAG), questa libreria consente agli sviluppatori di homebrew di connettersi in modo sicuro a endpoint HTTPS moderni come GitHub, Discord, consolemods.org e altri, utilizzando una validazione robusta dei certificati X.509.

Cosa offre XboxTLS?

✅ Handshake TLS 1.2 completo + trasmissione dati sicura
🔐 Validazione dei certificati tramite anchor trust RSA o EC
⚡ Astrazione I/O ad alte prestazioni con Winsock + XNet
🧠 Utilizzo minimo dell’heap con ottimizzazione opzionale dei buffer
🔧 Generazione di entropia personalizzata via XeCryptRandom
📦 Solo statica – nessun linking dinamico a BearSSL


📷 Screenshot

Connessione TLS a consolemods.org
Connessione riuscita a consolemods.org utilizzando P-384 ECC e validazione SHA-384 su homebrew Xbox 360.


🔧 Caratteristiche

Funzionalità Supporto
Versione TLS TLS 1.2
Core BearSSL ✅ TLS & X.509 minimale
Anchor Trust RSA ✅ PKCS#1
Anchor Trust EC ✅ P-256, P-384, ecc.
Algoritmi SHA supportati SHA-1, SHA-224, SHA-256, SHA-384, SHA-512
SNI (Server Name Indication)
Modalità Socket Bloccante ✅ (possibile anche non bloccante)
Seed Random Personalizzato ✅ XeCryptRandom
Validazione Catena di Certificati ❌ (solo trust anchor)
TLS 1.3 ❌ Non implementato
Validazione Certificato Server ✅ via BearSSL

🛠️ Requisiti


🧠 Come Funziona

Struttura Interna

XboxTLS utilizza il motore TLS e il validatore X.509 minimale di BearSSL, astraendo i componenti specifici della piattaforma come:

BearSSL non esegue una validazione completa della catena di certificati. XboxTLS consente invece l’inserimento manuale di chiavi pubbliche attendibili (trust anchor).


📦 Installazione

🔗 Clonare il Repository

bash
Copy
git clone https://github.com/JakobRangel/XboxTLS.git

📄 Esempio di Utilizzo

c
Copy
XboxTLSContext ctx;
XboxTLS_CreateContext(&ctx, "example.com");
ctx.hashAlgo = XboxTLS_Hash_SHA384;

// Aggiungi un trust anchor EC
XboxTLS_AddTrustAnchor_EC(&ctx, EC_DN, sizeof(EC_DN), EC_Q, sizeof(EC_Q), XboxTLS_Curve_secp384r1);

// Opzionale: trust anchor RSA
// XboxTLS_AddTrustAnchor_RSA(&ctx, RSA_DN, sizeof(RSA_DN), RSA_N, sizeof(RSA_N), RSA_E, sizeof(RSA_E));

char ip[64];
ResolveDNS("example.com", ip, sizeof(ip));

if (XboxTLS_Connect(&ctx, ip, "example.com", 443)) {
    const char* getReq = "GET / HTTP/1.1\r\nHost: example.com\r\nConnection: close\r\n\r\n";
    XboxTLS_Write(&ctx, getReq, strlen(getReq));

    char buf[2048];
    int len;
    while ((len = XboxTLS_Read(&ctx, buf, sizeof(buf) - 1)) > 0) {
        buf[len] = '\0';
        OutputDebugStringA(buf); // Stampa nel debugger
    }

    XboxTLS_Free(&ctx);
}

✅ Per un esempio completo, consulta ExampleClient.cpp nel repository.


🔐 Dettagli sui Trust Anchor

XboxTLS supporta il caricamento manuale di trust anchor tramite:

È possibile estrarre queste informazioni con OpenSSL:

bash
Copy
openssl x509 -in cert.pem -noout -pubkey -subject

📌 Conclusione

XboxTLS è una soluzione leggera e affidabile per abilitare comunicazioni HTTPS sicure su Xbox 360, ideale per progetti homebrew che necessitano di interagire con servizi web moderni.

🔗 Repository GitHubhttps://github.com/JakobRangel/XboxTLS

🚀 Inizia a sviluppare con TLS 1.2 oggi stesso!

Condividi su :
Pubblicità
Exit mobile version