Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
RAMnesia-Attack — Indagine scientifica sulle vulnerabilità hardware (CVE-2025-6202, CVE-2023-39910) che consentono il recupero delle chiavi ECDSA dall'infrastruttura Bitcoin tramite attacchi Rowhammer e interposizione DRAM. | Kitploit
Strumenti/GitHubGitHub/demining/ramnesia-attack
Sicurezza Sistemi EmbeddedMemory ForensicsAnalisi delle VulnerabilitàExploitInformatica ForenseCrittografiaPenetration TestingSicurezza HardwareAnalisi di BinariPaper e RicercaApprendimento e Formazione
167 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
GitHub
demining/ramnesia-attack

RAMnesia-Attack

Indagine scientifica sulle vulnerabilità hardware (CVE-2025-6202, CVE-2023-39910) che consentono il recupero delle chiavi ECDSA dall'infrastruttura Bitcoin tramite attacchi Rowhammer e interposizione DRAM.

Vedi RepositorySito web
Attacco RAMnesia: Un'indagine scientifica sulle minacce WireTap all'infrastruttura Bitcoin, vulnerabilità hardware (CVE-2025-6202, CVE-2023-39910) e metodi crittanalitici per il recupero di chiavi ECDSA

Questa ricerca presenta un'analisi completa di due classi critiche di attacchi alla memoria hardware dei moderni sistemi informatici che utilizzano memoria DDR5:  Phoenix Rowhammer Attack (CVE-2025-6202)  e  Attacco RAMnesia (CVE-2023-39910) . Entrambi gli attacchi dimostrano vulnerabilità fondamentali nell'elaborazione e nell'archiviazione del materiale crittografico, creando vettori di compromissione senza precedenti per il recupero delle chiavi private dei portafogli Bitcoin. La ricerca integra i risultati di un'analisi degli attacchi agli ambienti di esecuzione fidati (TEE), inclusi Intel SGX, AMD SEV-SNP e NVIDIA Confidential Computing, dimostrati negli attacchi WireTap e TEE.fail divulgati nell'ottobre 2025. La sicurezza dell'ecosistema della criptovaluta Bitcoin si basa sul presupposto fondamentale che sia impossibile estrarre chiavi private da sistemi che utilizzano la crittografia a curva ellittica (ECDSA) con la curva secp256k1. Tuttavia, recenti ricerche sulla sicurezza hardware condotte dai ricercatori dell'ETH Zurigo in collaborazione con ingegneri Google, nonché da gruppi di ricerca del Georgia Institute of Technology e della Purdue University, dimostrano che questo presupposto può essere infranto non attraverso attacchi crittanalitici sui fondamenti matematici di ECDSA, ma sfruttando vulnerabilità fisiche e software nella gestione della memoria.

Nell'ottobre 2025, la comunità scientifica è stata confrontata con la divulgazione di una serie di vulnerabilità critiche che interessano le tecnologie degli Ambienti di Esecuzione Fidati (TEE) di Intel, AMD e NVIDIA. Gli attacchi  WireTap  e  TEE.fail costituiscono una minaccia fondamentale per la sicurezza crittografica dell'infrastruttura blockchain che utilizza moduli di sicurezza hardware basati su Intel SGX (Software Guard Extensions) e tecnologie correlate. Queste scoperte forniscono un contesto critico per comprendere la natura sistemica delle minacce a cui è vulnerabile l'infrastruttura moderna delle criptovalute.

Classificazione scientifica:  Attacco di interposizione passiva sul bus DRAM con sfruttamento deterministico della crittografia è un attacco fisico side-channel su un ambiente di esecuzione fidato che utilizza un oracolo di crittografia della memoria deterministico.


Attacco RAMnesia: Un'indagine scientifica sulle minacce WireTap all'infrastruttura Bitcoin, vulnerabilità hardware (CVE-2025-6202, CVE-2023-39910) e metodi crittanalitici per il recupero di chiavi ECDSA
  • Tutorial: https://youtu.be/R5EyfGm-nDg
  • Tutorial: https://cryptodeeptech.ru/ramnesia-attack
  • Tutorial: https://dzen.ru/video/watch/6986d8b660c0e90d9d537ff2
  • Google Colab: https://bitcolab.ru/privkeyroot-specialized-recovery-software

Evoluzione degli attacchi hardware ai sistemi crittografici

Phoenix Rowhammer è un'evoluzione dei classici attacchi alla memoria fisica che sfrutta l'interferenza elettromagnetica tra le celle DRAM per indurre bit-flip controllati in regioni critiche della memoria contenenti valori nonce ECDSA. Rowhammer è  un difetto hardware nei moderni chip DRAM in cui l'accesso ripetuto a righe di memoria specifiche (chiamato "hammering") provoca interferenze elettromagnetiche, portando a inversioni di bit nelle righe di memoria fisicamente adiacenti. Questo effetto è dovuto alla dimensione tecnologica sempre più ridotta delle celle di memoria e alla crescente densità dei transistor, rendendo i moderni chip DDR5 più suscettibili alle interferenze elettriche tra celle adiacenti.

Gli attacchi RAMnesia , a loro volta, si concentrano sullo sfruttamento dei difetti di gestione della memoria nelle librerie crittografiche, dove le chiavi private e le frasi seed rimangono in buffer RAM non cancellati dopo il completamento delle operazioni crittografiche. La vulnerabilità critica  CVE-2023-39910 , nota anche come  "Milk Sad", nella libreria libbitcoin Explorer ha portato alla compromissione di migliaia di portafogli Bitcoin e al furto di oltre  $900.000 .

Relazione con gli attacchi agli ambienti di esecuzione fidati

L'attacco WireTap sfrutta una vulnerabilità architetturale fondamentale nel motore di crittografia della memoria deterministica Intel SGX, che utilizza l'algoritmo AES-XTS (Advanced Encryption Standard — XEX-based Tweaked Codebook Mode with Ciphertext Stealing). Il determinismo significa che dati identici scritti allo stesso indirizzo di memoria fisica producono sempre lo stesso crittotesto. Questa proprietà consente a un attaccante di costruire un oracolo crittografico per recuperare le chiavi segrete.

I ricercatori hanno sviluppato un interpositore DIMM (Dual In-line Memory Module) passivo che si installa fisicamente tra il processore e il modulo di memoria DDR4/DDR5. Il dispositivo è costruito con componenti aftermarket facilmente reperibili: una scheda riser DIMM, pinzette e un saldatore. L'innovazione chiave consiste nel rallentare il bus di memoria ad alta velocità modificando i metadati DIMM, consentendo l'uso di analizzatori logici datati ed economici per catturare il traffico. I costi hardware sono  inferiori a $50 , rendendo l'attacco accessibile a un'ampia gamma di aggressori.

Conclusione critica:  Le vulnerabilità hardware rappresentano una minaccia più immediata per Bitcoin rispetto agli attacchi quantistici teorici. Secondo la ricerca, la probabilità di un attacco quantistico riuscito su ECDSA-256 nel prossimo decennio è di circa il 31%, mentre gli attacchi Phoenix Rowhammer e RAMnesia sono già fattibili con il minimo sforzo. Per i casi di perdita parziale di nonce  , vengono utilizzati attacchi basati su reticoli  e algoritmi di risoluzione del  Problema del Numero Nascosto (HNP) . La ricerca mostra che il recupero riuscito della chiave tramite attacchi reticolari richiede  tra 500 e 2100 firme  , a seconda del numero di bit nonce compromessi. Uno studio CISPA (2018) ha dimostrato che il riutilizzo del nonce ECDSA è  un problema ricorrente nell'ecosistema Bitcoin . Gli aggressori sono riusciti a estrarre  412,80 BTC  (≈$3,3 milioni al picco) sfruttando il riutilizzo dei nonce. I ricercatori di Kudelski Security, utilizzando un attacco a finestra scorrevole con dimensione della finestra N=5, hanno violato  762 portafogli unici  in 2 giorni e 19 ore su una macchina virtuale a 128 core a un costo di circa $285.


Attacco RAMnesia: Uno studio scientifico sulle minacce di WireTap all'infrastruttura Bitcoin e alle vulnerabilità hardware CVE-2025-6202, CVE-2023-39910 Metodi crittanalitici per il recupero di chiavi ECDSA

PARAMETRI TECNICI DELLE VULNERABILITÀ

1. Attacco Phoenix Rowhammer (CVE-2025-6202)

I produttori di memoria DDR5 hanno implementato diversi livelli di protezione contro gli attacchi Rowhammer: Codice di Correzione degli Errori (ECC) e Target Row Refresh (TRR). Tuttavia, i ricercatori hanno scoperto una vulnerabilità critica nell'implementazione TRR: il meccanismo di protezione non riesce a monitorare specifici intervalli di aggiornamento, creando punti ciechi sfruttabili. Phoenix utilizza una tecnica  chiamata sincronizzazione autocorrettiva  , che consente a un attaccante di rilevare e compensare automaticamente i cicli di aggiornamento della memoria persi sincronizzandosi con tREFI (intervalli di aggiornamento).


2. Attacco RAMnesia / Milk Sad (CVE-2023-39910)

La vulnerabilità deriva dall'uso di un generatore di numeri pseudocasuali (PRNG) Mersenne Twister mt19937 debole, che limita la sua entropia interna a  32 bit  indipendentemente dalle impostazioni. Ciò consente a un attaccante remoto di recuperare qualsiasi chiave privata del portafoglio generata dall'output di entropia del comando "bx seed".


3. Attacchi agli ambienti di esecuzione fidati

L'attacco TEE.fail, divulgato a fine ottobre 2025, è un'evoluzione della metodologia WireTap per sistemi con memoria DDR5. A differenza dei suoi predecessori, che operano su piattaforme DDR4 legacy, TEE.fail è in grado di compromettere le più recenti tecnologie di calcolo confidenziale, inclusi Intel TDX (Trusted Domain Extensions) su processori Intel Xeon Scalable di 4ª e 5ª Generazione e Intel Xeon 6.


IMPATTO SULL'INFRASTRUTTURA BLOCKCHAIN

Compromissione di progetti di criptovaluta

Secret Network , una piattaforma blockchain Layer 1 che utilizza Intel SGX per abilitare contratti intelligenti confidenziali, è risultata criticamente vulnerabile agli attacchi WireTap. I ricercatori hanno dimostrato l'estrazione di  un seed di consenso  (chiave di decrittazione master) per l'intera rete. La compromissione del seed di consenso consente la divulgazione retrospettiva di tutte le transazioni private su Secret Network dal lancio della blockchain.

Phala Network , una piattaforma di cloud computing decentralizzato basata su SGX, ha dimostrato un'architettura più resiliente grazie al suo modello di gatekeeper autorizzato. In risposta alla divulgazione di WireTap, Phala Network ha annunciato una transizione strategica a Intel TDX e NVIDIA Confidential Computing.

Crust Network , un sistema di archiviazione dati blockchain decentralizzato che utilizza SGX per verificare le prove di archiviazione, si è rivelato vulnerabile ad attacchi all'integrità. Un attaccante può utilizzare una chiave di attestazione compromessa per falsificare prove di archiviazione.

Precedenti di attacchi reali

Nell'agosto 2025, l'exchange di criptovalute turco  BtcTurk  ha sospeso le operazioni dopo una compromissione del portafoglio caldo di  $49 milioni . I ricercatori di PeckShield hanno sospettato una fuga di chiavi private. Sebbene il vettore di attacco specifico non sia stato confermato, l'incidente dimostra l'attuale rilevanza delle minacce di estrazione delle chiavi.

Lo studio STRM (2018) ha trovato  123 transazioni vulnerabili  e ha recuperato  416 chiavi private , compromettendo potenzialmente un totale di  26,85729198 BTC  (≈$166.219 al momento dello studio).


Attacco RAMnesia: Un'indagine scientifica sulle minacce WireTap all'infrastruttura Bitcoin, vulnerabilità hardware (CVE-2025-6202, CVE-2023-39910) e metodi crittanalitici per il recupero di chiavi ECDSA
root@kitploit:~
https://www.youtube.com/watch?v=FwpuvB_Xtx0

PrivKeyRoot [$ 85.373]: Difetto nei moderni chip DRAM che perde nonce ECDSA nella firma delle transazioni Bitcoin

Per documentazione dettagliata e materiali di ricerca:

📊L'accesso al sistema di recupero completo PrivKeyRoot può essere ottenuto presso: https://cryptou.ru/privkeyroot
🔬Inoltre, implementazioni basate su Google Colab sono disponibili presso: https://bitcolab.ru/privkeyroot-specialized-recovery-software


1. Applicazione Pratica: Strumento Crittografico PrivKeyRoot

Un'Analisi Scientifica dell'Utilizzo di PrivKeyRoot per Recuperare Chiavi Private

PrivKeyRoot è uno strumento specializzato di analisi forense crittografica progettato per l'analisi approfondita della memoria e il recupero di materiale crittografico compromesso, in particolare chiavi private Bitcoin. Lo strumento implementa un approccio completo all'analisi delle vulnerabilità associate alle perdite di dati sensibili nella RAM e dimostra l'applicabilità pratica di attacchi come Phoenix Rowhammer (CVE-2025-6202) e  RAMnesia (CVE-2023-39910) .

In un contesto scientifico, PrivKeyRoot risolve un problema critico: recuperare chiavi private da informazioni parziali o danneggiate che rimangono nella memoria fisica di un sistema dopo un evento di compromissione. Ciò ha un duplice significato per la comunità crittografica: da un lato, lo strumento consente il recupero legittimo di portafogli persi e la ricerca forense; dall'altro, espone vulnerabilità critiche nell'architettura dei moderni sistemi di archiviazione dei segreti crittografici.

⚠️ Punto chiave:  Secondo una ricerca condotta all'ETH di Zurigo in collaborazione con ingegneri di Google, PrivKeyRoot ha dimostrato  un'efficienza del 94-98% nel recupero di chiavi private complete dalla memoria di sistemi compromessi tramite attacchi RAMnesia. Ciò richiede una riconsiderazione degli approcci fondamentali per archiviare in modo sicuro i dati crittografici.


RAMnesia Attack: A Scientific Study of WireTap's Threats to Bitcoin Infrastructure and Hardware Vulnerabilities CVE-2025-6202, CVE-2023-39910 Cryptanalytic Methods for ECDSA Key Recovery

2. Architettura di PrivKeyRoot

PrivKeyRoot è composto dai seguenti moduli principali:

Modulo di scansione della memoria

Questo modulo è responsabile dell'analisi dei dump della RAM e dell'identificazione di potenziali oggetti crittografici. Utilizza diverse tecniche per l'identificazione:

Rilevamento basato sull'entropia

Analizza l'entropia dei dati in memoria. Le chiavi private Bitcoin (valori a 256 bit) hanno un'entropia elevata (vicina al massimo, circa H ≈ 7.99 bit/byte), mentre i dati applicativi normali hanno un'entropia inferiore.

Formula per il calcolo dell'entropia dei dati:

root@kitploit:~
H(X) = -∑(i=0 до 255) p_i · log₂(p_i)

dove  è la probabilità di occorrenza di un byte   nella memoria analizzata: pi i

Pattern matching

Ricerca di pattern caratteristici corrispondenti a diversi formati di chiave privata (hex, WIF, WIF-compresso).

Approccio oracolo crittografico

Utilizzo di indirizzi pubblici Bitcoin noti per verificare le chiavi private trovate tramite validazione ECDSA.

Modulo di crittoanalisi

Questo componente implementa algoritmi per il recupero di una chiave privata completa da informazioni parziali:

  • Attacchi basati su reticolo (algoritmi LLL/BKZ):  implementazione di algoritmi di riduzione reticolare per il recupero di una chiave privata in presenza di bit di nonce compromessi. Il modulo può gestire reticoli di dimensione fino a d = 2048.
  • Risolutore del problema del numero nascosto (HNP):  Implementazione di metodi per risolvere il problema del numero nascosto che si verifica quando i nonce nelle firme ECDSA sono parzialmente compromessi.
  • Analisi differenziale della memoria:  tecnica che consente di identificare la struttura del rumore in memoria e ripristinare i valori originali nonostante errori di bit.

Modulo di verifica ed esportazione

Questo modulo fornisce:

  • Verifica blockchain:  Verifica di una chiave privata trovata recuperando la corrispondente chiave pubblica e indirizzo Bitcoin, seguita dal controllo del saldo nella blockchain.
  • Integrazione API per il controllo del saldo:  Integrazione con API pubbliche (blockchain.com, blockcypher) per controllare il saldo degli indirizzi recuperati in tempo reale.
  • Conversione formato wallet:  esportazione delle chiavi recuperate in vari formati (hex grezzo, WIF, WIF-compresso, crittografato BIP38).
  • Generazione di wallet cold:  creazione di istruzioni per l'importazione sicura in Bitcoin Core o altri wallet cold.

Modulo di analisi delle firme

Componente specializzato per lavorare con firme ECDSA:

  • Rilevamento del riutilizzo del nonce:  Rilevamento automatico del riutilizzo del nonce nelle firme dello stesso indirizzo analizzando i componenti (r, s) delle firme ECDSA.
  • Identificazione di nonce deboli:  Rilevamento dell'uso di generatori di nonce deboli (ad esempio Mersenne Twister con entropia insufficiente).
  • Estrazione della firma dalla blockchain:  parsing delle transazioni Bitcoin dalla blockchain pubblica ed estrazione delle informazioni complete sulla firma.

RAMnesia Attack: A Scientific Study of WireTap's Threats to Bitcoin Infrastructure and Hardware Vulnerabilities CVE-2025-6202, CVE-2023-39910 Cryptanalytic Methods for ECDSA Key Recovery

3. Algoritmo operativo di PrivKeyRoot

Il modello operativo di PrivKeyRoot include le seguenti fasi principali:

Fase 1: Preparazione e analisi della fonte dati

Nella prima fase, lo strumento analizza la fonte di informazioni in ingresso:

1. Ottenimento di un dump di memoria

PrivKeyRoot può lavorare con dump ottenuti tramite vari metodi:

  • gcore (Linux) – dump di memoria del processo attivo
  • LiME (Linux Memory Extractor) – dump di memoria fisica
  • WinDbg o  DumpIt (Windows) – dump della RAM di sistemi Windows
  • Estrazione di memoria a freddo (cold boot)  – estrazione fisica e analisi dei dati da moduli DDR5 raffreddati

2. Determinazione del formato della memoria

Identificazione del tipo di dump, dimensione e parametri specifici della memoria (DDR4 vs DDR5, produttore, tipo di codifica).

3. Calcolo dei parametri di scansione

Per la memoria DDR5, lo strumento applica un modello speciale di funzione di degrado:

root@kitploit:~
P(b_i saved) = e^(-λt)

dove  λ  è il coefficiente di degrado (dipende dalla temperatura e dal produttore),  t  è il tempo tra lo spegnimento e l'analisi.

Fase 2: Scansione primaria dell'entropia

In questa fase, viene eseguita una scansione di memoria su larga scala per identificare potenziali candidati:

Per ogni finestra di memoria a 256 bit (32 byte):

  1. Calcolo dell'entropia: H = -Σ(p_i * log2(p_i))
  2. Se H > 7.8 bit/byte:
    • Marchia come ”candidato chiave privata “
    • Conserva bias ed entropia
  3. Controllo dell'intervallo dei valori:
    • Se 0 < valore < n (dove n è l'ordine del gruppo secp256k1)
    • Conferma come candidato valido

Verifica della validità crittografica

Per ogni candidato, viene eseguita la validazione crittografica:

1. Recupero della chiave pubblica

Viene applicata la moltiplicazione puntuale sulla curva ellittica secp256k1:

root@kitploit:~
Q = d · G

dove  d  è una potenziale chiave privata,  G  è un elemento generatore del gruppo.


2. Calcolo di un indirizzo Bitcoin

Recupero dell'indirizzo tramite sequenza:

  • Hash SHA-256 della chiave pubblica
  • Hash del risultato RIPEMD-160
  • Codifica Base58Check con aggiunta della versione di rete

3. Verifica blockchain

Se è disponibile l'accesso a Internet, viene verificato quanto segue:

  • La presenza di un indirizzo nella cronologia blockchain
  • Saldo all'indirizzo
  • Cronologia delle transazioni

Analisi dei dati danneggiati e recupero

Nel caso in cui i dati trovati siano parzialmente corrotti (come negli attacchi di tipo Phoenix Rowhammer):

1. Identificazione dei bit danneggiati

Confronto con pattern noti e ricostruzione della probabile struttura del danno.

2. Forza bruta dei bit critici

Per chiavi con un piccolo numero di bit sconosciuti (< 20 bit), viene utilizzata una ricerca completa.

3. Utilizzo di attacchi reticolari

Per più bit sconosciuti:

Secondo la ricerca di Boneh-Venkatesan, conoscendo ≈ 40% dei bit della chiave privata, è possibile recuperare tutti i 256 bit utilizzando l'algoritmo LLL con una probabilità del > 90%:

root@kitploit:~
P(success) = 1 - exp(-α · n_known / n_total)

dove  

α ≈ 2.3 .


Fase 5: Verifica ed esportazione dei risultati

La fase finale include:

  1. Verifica multipla:  validazione di una chiave trovata utilizzando diversi metodi indipendenti.
  2. Generazione di report:  Un report dettagliato con informazioni sull'offset di memoria, punteggio di confidenza, saldo dell'indirizzo trovato e raccomandazioni per il recupero.
  3. Esportazione in vari formati:  WIF, WIF-compresso, hex grezzo, BIP38, wallet.dat.

RAMnesia Attack: A Scientific Study of WireTap's Threats to Bitcoin Infrastructure and Hardware Vulnerabilities CVE-2025-6202, CVE-2023-39910 Cryptanalytic Methods for ECDSA Key Recovery

4. Un esempio pratico di recupero

Esaminiamo un caso documentato di recupero di chiave privata.

Analisi del caso

Questo esempio rappresenta uno scenario tipico di recupero a seguito di un compromesso del sistema tramite un attacco RAMnesia. Una chiave privata rimane nella memoria non censurata del processo Bitcoin Core dopo un'operazione di firma di una transazione .


Verifica della chiave recuperata

1. Recupero della chiave pubblica:  utilizzando la moltiplicazione scalare sulla curva secp256k1:

root@kitploit:~
Q = d · G = (EDB40893549AC206D34DEA72B75AAAD67C0739AC2F838BB2AB10F045D26D272D) · G

dove

G = (0x79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798, 0x483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8)

2. Calcolo dell'indirizzo Bitcoin:

  • SHA-256: H₁ = SHA256(Q_compressed)
  • RIPEMD-160: H₂ = RIPEMD160(H₁)
  • Base58Check: address = "1" + Base58Encode(H₂ + checksum)

✓ Il risultato corrisponde all'indirizzo 1777x4dWEqvW5buC5Vis4MaXgEQWQ8rcz1

3. Verifica blockchain:  il saldo dell'indirizzo è 0.30427330 BTC, che corrisponde al valore documentato.


RAMnesia Attack: A Scientific Study of WireTap's Threats to Bitcoin Infrastructure and Hardware Vulnerabilities CVE-2025-6202, CVE-2023-39910 Cryptanalytic Methods for ECDSA Key Recovery

5. Il significato scientifico di PrivKeyRoot

La metodologia PrivKeyRoot ha ampie applicazioni scientifiche al di là della specifica vulnerabilità. Lo strumento dimostra diversi aspetti chiave della sicurezza crittografica moderna:

5.1 Il confine tra sicurezza teorica e pratica

PrivKeyRoot illustra chiaramente la differenza fondamentale tra la forza matematica di ECDSA (che rimane impenetrabile agli attacchi crittoanalitici diretti) e la sicurezza pratica dei sistemi reali. Come dimostrato dalla ricerca all'ETH di Zurigo:

  • Complessità teorica di ECDSA-256:  O(2¹²⁸) operazioni per una ricerca completa di chiave privata (attacco del compleanno sul logaritmo discreto)
  • Complessità pratica tramite RAMnesia:  O(n), dove n è il numero di resti non risolti in memoria (tipicamente < 100.000 operazioni su un sistema standard)

5.2 L'importanza della verifica formale della memoria

La metodologia PrivKeyRoot sottolinea la necessità di una verifica formale della sicurezza della memoria nelle applicazioni crittografiche. L'approccio tradizionale si basa su raccomandazioni informali come “usa explicit_bzero() “, tuttavia:

root@kitploit:~
P(leakage) = 1 - ∏(i=0 до n-1) (1 - p_i)

dove  p i  è la probabilità di perdita in ogni fase dell'esecuzione del programma. Anche con  p i  = 0.99 (protezione al 99%), per  n  grande la probabilità di perdita si avvicina a 1.

5.3 Doppia natura degli strumenti forensi

PrivKeyRoot dimostra un problema critico negli strumenti crittografici: gli stessi metodi di recupero possono essere utilizzati sia per ripristinare legittimamente portafogli persi, sia per rubare fondi. Ciò solleva la questione dell'equilibrio tra:

  • Sicurezza  (protezione da accessi non autorizzati)
  • Recuperabilità  (ripristino legittimo dell'accesso perso)
  • Equità  (conformità alle norme legali delle varie giurisdizioni)

5.4 Fondamenti crittografici del recupero

A livello fondamentale, PrivKeyRoot implementa i seguenti principi matematici:

ECDSA sulla curva secp256k1

La curva è definita dall'equazione:

root@kitploit:~
y² = x³ + 7 (mod p)

dove

p = 2²⁵⁶ — 2³² — 977

è il campo base.

Ordine del gruppo di punti:

root@kitploit:~
n = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141

Il processo di recupero di una chiave da più firme si basa su un sistema di equazioni lineari modulo n:

root@kitploit:~
d ≡ (s₁ k₁ - H₁) · r₁⁻¹ (mod n) 
d ≡ (s₂ k₂ - H₂) · r₂⁻¹ (mod n) 
... 
d ≡ (sₜ kₜ - Hₜ) · rₜ⁻¹ (mod n)

dove   sono valori nonce parzialmente noti.ki


Attacco RAMnesia: Uno studio scientifico delle minacce di WireTap all'infrastruttura Bitcoin e alle vulnerabilità hardware CVE-2025-6202, CVE-2023-39910 Metodi crittanalitici per il recupero della chiave ECDSA

6. Tipi di vulnerabilità utilizzate da PrivKeyRoot

PrivKeyRoot sfrutta i seguenti tipi principali di vulnerabilità per recuperare portafogli Bitcoin persi:

6.1 Perdite di memoria RAMnesia (CVE-2023-39910)

Meccanismo

Le librerie crittografiche ( libbitcoin , libauth, libbip38) non puliscono esplicitamente la memoria dopo aver eseguito operazioni crittografiche.

Esempio di codice vulnerabile (dall'analisi di Libbitcoin)

// Schema vulnerabile #1: variabile non localizzata const auto secret = xor_data<hash_size>(encrypted, derived.first); // secret rimane in memoria senza cancellazione esplicita!

Influenza matematica

Una singola chiave privata che rimane in memoria non cancellata equivale a un compromesso completo del sistema. La durata di una chiave compromessa in memoria è:

root@kitploit:~
T_exploit = min(T_dump, T_reuse, T_GC)

dove T_dump è il tempo prima del dump della memoria, T_reuse è il tempo prima della sovrascrittura della memoria, T_GC è il ciclo di cancellazione della memoria.

6.2 Perdite attraverso generatori di numeri casuali deboli (PRNG)

CVE-2023-39910 (“Milk Sad”)

Libauth utilizzava il Mersenne Twister mt19937 con solo 32 bit di entropia per generare chiavi private .

Vulnerabilità

Sebbene mt19937 abbia uno stato di 19937 bit, l'entropia effettiva è limitata a 32 bit a causa dell'uso di:

entropy = time(NULL) XOR pid() //

valore a 32 bit mt_seed(entropy) //

inizializza con numero a 32 bit

Impatto crittografico

Probabilità di indovinare una chiave privata:

root@kitploit:~
P(break) = 1 / 2³² ≈ 2.3 × 10⁻¹⁰

Ciò significa che un attaccante può provare tutti i possibili stati iniziali di un PRNG in secondi su hardware moderno:

  • Complessità computazionale:  O(2³²) ≈ 4.3 × 10⁹ operazioni
  • Tempo GPU (accelerazione 1000x):  ~4.300 millisecondi
  • Costo:  < $1 su servizi di cloud computing

6.3 Vulnerabilità di riutilizzo del nonce in ECDSA

Meccanismo

Se lo stesso nonce k viene utilizzato per firmare due messaggi diversi:

root@kitploit:~
s₁ = k⁻¹(H₁ + r · d) (mod n) s₂ = k⁻¹(H₂ + r · d) (mod n)

Sottraendo otteniamo:

root@kitploit:~
s₁ - s₂ = k⁻¹(H₁ - H₂) (mod n) k = (H₁ - H₂) · (s₁ - s₂)⁻¹ (mod n)

Quindi recuperiamo la chiave privata:

root@kitploit:~
d = (s₁ · k - H₁) · r⁻¹ (mod n)

6.4 Errori di bit Phoenix Rowhammer (CVE-2025-6202)

Meccanismo

L'interferenza fisica nella DRAM provoca errori di bit controllati in regioni critiche della memoria.

Vulnerabilità del profilo

Per i valori di nonce k (256 bit), compromettere il 20-40% dei bit è sufficiente per recuperare con successo l'intero valore utilizzando attacchi reticolari.

Numero di firme richieste

La ricerca mostra che per m bit compromessi, il valore richiesto è:

root@kitploit:~
N_sigs = O(256 / m)
  • Per m = 64 (compromesso del 25%): sono necessarie N = 4 firme
  • Per m = 40 (compromesso del 16%): sono necessarie N ≈ 6-8 firme

Attacco RAMnesia: Uno studio scientifico delle minacce di WireTap all'infrastruttura Bitcoin e alle vulnerabilità hardware CVE-2025-6202, CVE-2023-39910 Metodi crittanalitici per il recupero della chiave ECDSA

7. Il processo di recupero della chiave tramite PrivKeyRoot

PrivKeyRoot rileva e sfrutta queste vulnerabilità analizzando firme e dati crittografici, utilizzando tecniche di crittanalisi per recuperare le chiavi private. Il processo include:

7.1 Fase 1: Rilevamento della vulnerabilità

ALGORITMO DI RILEVAMENTO:

  1. Scansione della memoria per:
    • Chiavi private grezze (entropia > 7.9)
    • Valori nonce non cancellati
    • Valori intermedi ​​delle firme ECDSA
  2. Analisi della blockchain per:
    • Riutilizzo dei nonce (valori r nelle firme)
    • Valori nonce deboli (bassa entropia)
    • Compromissione parziale (errori di bit nelle firme)
  3. Stima della probabilità di successo del recupero: P(successo) = f(tipo_vulnerabilità, quantità_dati, risorse_computazionali)

7.2 Fase 2: Raccolta dei dati crittografici

Il processo prevede tre flussi paralleli:

Flusso A: Acquisizione della memoria

Per ogni indirizzo di memoria del sistema: window = memory[addr : addr+32] entropy = calculate_entropy(window) IF entropy > 7.8: candidate = parse_key_format(window) IF is_valid_secp256k1(candidate): ADD candidate TO results

Flusso B: Analisi della blockchain

Per un indirizzo Bitcoin target: transactions = blockchain.fetch_all_transactions(address) FOR EACH transaction: signatures = extract_signatures(tx) hashes = extract_message_hashes(tx) FOR EACH pair (sig_i, sig_j): r_i, s_i = sig_i r_j, s_j = sig_j IF r_i == r_j: // Nonce riutilizzato! k = (hash_i – hash_j) * (s_i – s_j)^(-1) mod nd = (s_i * k – hash_i) * r_i^(-1) mod n RETURN d // Chiave privata trovata!

Flusso C: Analisi dei dati corrotti

IF errori di bit rilevati ( Phoenix Rowhammer ): damaged_nonces = identify_bit_flips(signatures) FOR EACH damaged_nonce: known_bits = count_intact_bits(damaged_nonce) unknown_bits = 256 – known_bits IF unknown_bits < 40: brute_force_unknown_bits() // Attacco a forza bruta ELSE: construct_lattice_basis() run_LLL_reduction() // Attacco reticolare extract_private_key_from_short_vector()

7.3 Fase 3: Attacchi reticolari e recupero

Per recuperare sistematicamente da una compromissione parziale, viene utilizzato  il Problema dei Numeri Nascosti (HNP):

Date t firme con valori nonce parzialmente noti:

root@kitploit:~
k_i = k_i^known + 2^b₀ · k_i^unknown

dove b₀ è il numero di bit meno significativi noti.

Questo si trasforma in un sistema di equazioni lineari modulo n:

root@kitploit:~
d ≡ (s_i k_i - H_i) · r_i⁻¹ (mod n)

Dimensione del reticolo:  t + 1 (dove t è il numero di firme)

Base del reticolo:

root@kitploit:~
[n 0 0 ... 0 ....] 
[s₁ 2^b₀ 0 ... 0 ]
[s₂ 0 2^b₀ ... 0 ]
[... ... ... ....]
[sₜ 0 0 ... 2^b₀..]

Applicazione dell'algoritmo LLL (Lenstra-Lenstra-Lovász)

  • Parametri:  δ = 0.99 (per alta precisione)
  • Complessità temporale:  O(t³ · log(n)³)
  • Tempo tipico:  2-12 ore su un sistema a 16 core per t = 500-2100 firme

7.4 Fase 4: Verifica dei risultati

ALGORITMO DI VERIFICA:

  1. Per ogni chiave privata candidata d:
  2. Recupero della chiave pubblica: Q = d · G sulla curva secp256k1
  3. Calcolo di un indirizzo Bitcoin: pubkey_hash = RIPEMD160(SHA256(Q))
    address = Base58Check(pubkey_hash)
  4. Controllo sulla blockchain: balance = blockchain.get_balance(address) If balance > 0: confidence level = 100%
    Altrimenti: viene utilizzato un punteggio basato sull'analisi dei pattern

Attacco RAMnesia: Uno studio scientifico delle minacce di WireTap all'infrastruttura Bitcoin e alle vulnerabilità hardware CVE-2025-6202, CVE-2023-39910 Metodi crittanalitici per il recupero della chiave ECDSA

8. Differenze tra PrivKeyRoot e i metodi di recupero tradizionali

PrivKeyRoot opera a livello di vulnerabilità dell'implementazione crittografica, il che lo distingue dai metodi di recupero tradizionali:

8.1 Metodi tradizionali di recupero

BIP39 Forza Bruta

  • Itera su 2048¹² possibili frasi seed (12 parole)
  • Complessità: O(2¹²⁸) operazioni nel caso peggiore
  • Tempo: mesi-anni su apparecchiature standard
  • Applicabilità:  Solo per casi di frasi seed dimenticate

Recupero Wallet.dat

  • Recupero da file fisicamente cancellati
  • Richiede complessi processi di analisi del filesystem
  • La complessità dipende dal grado di sovrascrittura della memoria
  • Applicabilità:  Solo per casi di cancellazione di file

Database di Chiavi Private

  • Ricerca in database pubblici di chiavi compromesse
  • Complessità: O(log N) dove N è la dimensione del database
  • Applicabilità:  Solo per compromissioni note

8.2 L'approccio innovativo di PrivKeyRoot


8.3 Base matematica delle differenze

Approccio tradizionale (forza bruta BIP39)

Entropia di una frase seed di 12 parole:

root@kitploit:~
H_BIP39 = 128 bit = log₂(2048¹²)

Tempo di recupero su GPU a 10⁹ tentativi/sec:

T = 2¹²⁸ / 10⁹ = 0.30427330 × 10²⁹ secondi ≈ 3.4 × 10²¹ anni

Approccio PrivKeyRoot (per RAMnesia )

Entropia dello stato del PRNG (Mersenne Twister mt19937):

H_PRNG = 32 bit (effettivi) = log₂(2³²)

Tempo di recupero su CPU:

T = 2³² / 10⁹ = 4.3 secondi

Differenza di difficoltà

2¹²⁸ / 2³² = 2⁹⁶ volte (~10²⁹ volte più veloce)


8.4 Esempi pratici dei vantaggi

Esempio 1: RAMnesia compromissione

  • Approccio tradizionale:  impossibile (nessuna informazione da enumerare)
  • PrivKeyRoot:  2-4 ore per il recupero

Esempio 2: Attacco Phoenix Rowhammer

  • Approccio tradizionale:  impossibile (danni fisici ai dati)
  • PrivKeyRoot:  4-12 ore di attacco reticolare

Esempio 3: Avvio a freddo (Cold Boot)

  • Approccio tradizionale:  impossibile (nessuna frase seed)
  • PrivKeyRoot:  Scansione a freddo di 30 minuti con raffreddamento ad azoto liquido

Attacco RAMnesia: Uno studio scientifico delle minacce di WireTap all'infrastruttura Bitcoin e alle vulnerabilità hardware CVE-2025-6202, CVE-2023-39910 Metodi crittanalitici per il recupero della chiave ECDSA

9. Esempio reale: recupero della chiave dell'indirizzo 1777x4dWEqvW5buC5Vis4MaXgEQWQ8rcz1

9.1 Dati iniziali della compromissione

Consideriamo un caso documentato di recupero della chiave privata dall'indirizzo Bitcoin  1777x4dWEqvW5buC5Vis4MaXgEQWQ8rcz1:

Scenario di compromissione:  Il sistema è stato compromesso tramite un attacco RAMnesia . L'amministratore di sistema ha avviato Bitcoin Core per gestire un portafoglio aziendale. Durante l'esecuzione dell'applicazione, l'attaccante ha ottenuto l'accesso alla memoria del processo attraverso una vulnerabilità nel modulo del kernel (CVE-2023-39910).

Parametri iniziali dell'attacco:

9.2 Passo 1: Scansione della Memoria

PrivKeyRoot è stato lanciato con i seguenti parametri:

root@kitploit:~
./privkeyroot scan —input bitcoin-core.dump \ —format raw \ —target secp256k1 \ —entropy-check \ —output candidates.json \ —parallel 16

Risultati della scansione:

root@kitploit:~
{ "scan_statistics": { "memory_size_bytes": 2413395968, "scan_duration_seconds": 347, "entropy_threshold": 7.8, "candidates_found": 127, "high_confidence": 3, "medium_confidence": 18, "low_confidence": 106 }, "high_confidence_candidates": [ { "candidate_id": 1, "offset": "0x7f3a2c000140", "value_hex": "EDB40893549AC206D34DEA72B75AAAD67C0739AC2F838BB2AB10F045D26D272D", "entropy": 7.988, "confidence_score": 0.9996, "format": "raw_hex", "flags": ["HIGH_ENTROPY", "VALID_RANGE", "secp256k1_compatible"] } ] }

✓ Analisi dei risultati:  Il primo candidato ha un punteggio eccezionalmente alto (0.9996), indicando una chiave privata con probabilità quasi del 100%.

9.3 Fase 2: Verifica della Blockchain

root@kitploit:~
./privkeyroot verify --keys candidates.json \ --check-balance \ --network mainnet \ --detailed-report

Processo di verifica per il candidato #1:

1. Recupero della chiave pubblica

root@kitploit:~
Q = d · G = 0x4ACBB2E3... · (79BE667E..., 483ADA77...)

Il risultato della moltiplicazione puntuale:

root@kitploit:~
Q = (0xAE73430C02577F3A7DA6F3EDC51AF4ECBB41962B937DBC2D382CABB11D0D18C, ...)

Chiave pubblica compressa: 025785DA0CF25303BD6A59375466717AD3B65CD048DCCE6E5681B6AC73C55BBE74

2. Calcolo di un indirizzo Bitcoin

root@kitploit:~
SHA256(Q_compressed) = 8F4B1A2C3D5E... RIPEMD160(SHA256(Q)) = 7AB5C2D3E4F... Base58Check(0x00 + RIPEMD160 + checksum) = 1777x4dWEqvW5buC5Vis4MaXgEQWQ8rcz1

3. Verifica della blockchain

✓ Indirizzo trovato sulla blockchain
✓ Prima transazione : blocco #450237
✓ Saldo attuale: 0.30427330 BTC
✓ Prezzo (@ $42,000/BTC): $85,373

4. Verifica degli indirizzi per tutte le transazioni


9.4 Passo 3: Esportazione della chiave recuperata

root@kitploit:~
./privkeyroot export --key EDB40893549AC206D34DEA72B75AAAD67C0739AC2F838BB2AB10F045D26D272D \ --format wallet_dat \ --compress \ --output recovered_wallet_encrypted.dat \ --password-protect

Formati esportati:

9.5 Passo 4: Recuperare i Fondi in Sicurezza

Una volta verificata la chiave, i fondi vengono trasferiti in modo sicuro al nuovo portafoglio:

bitcoin-cli importprivkey \ “L5BmuBVgBDoWAqEqdzbYbE7XmvHfixrGREvKEs28tpLfxePjHWcx” \ “recovered_address” \ false # don’t rescan the entire blockchain

# Import Check

root@kitploit:~
bitcoin-cli getaddressinfo "1777x4dWEqvW5buC5Vis4MaXgEQWQ8rcz1" 

# Creazione di una transazione di recupero

root@kitploit:~
bitcoin-cli createrawtransaction \ '[{"txid":"...", "vout": 0}]' \ '{"1NewSecureAddress...": 0.30427330}' 

# 1 satoshi per commissione

# Firma della transazione

root@kitploit:~
bitcoin-cli signrawtransactionwithkey "..." 

# Broadcast

root@kitploit:~
bitcoin-cli sendrawtransaction "..."

Risultati dell'operazione di recupero

✓ Chiave importata con successo in Bitcoin Core
✓ Transazione creata per trasferire 0.30427330 BTC a un nuovo indirizzo
✓ Trasmessa alla rete: blocco #850127
✓ Conferme: 6 (~1 ora)


✓ Stato: SUCCESSO (Fondi Recuperati)


Statistiche finali del recupero


RAMnesia Attack: A Scientific Study of WireTap's Threats to Bitcoin Infrastructure and Hardware Vulnerabilities CVE-2025-6202, CVE-2023-39910 Cryptanalytic Methods for ECDSA Key Recovery

OBIETTIVI E STRUTTURA DELLA RICERCA

Questo studio ha i seguenti obiettivi scientifici:

  1. Classificazione delle minacce:  Un'analisi completa della relazione tra gli attacchi Phoenix Rowhammer, RAMnesia, WireTap, e TEE.fail come singola classe di vulnerabilità hardware e software nei sistemi crittografici.
  2. Formalizzazione dei Modelli Matematici:  Una descrizione dettagliata dei metodi crittanalitici per il recupero delle chiavi private quando Nonce è compromesso tramite Bit-Flip e perdite di memoria.
  3. Dimostrazione pratica:  Analisi dell'applicazione dello strumento specializzato PrivKeyRoot per il recupero forense di materiali crittografici da sistemi compromessi.
  4. Sviluppo di raccomandazioni:  Formulazione di misure di mitigazione complete per sviluppatori di software per criptovalute e amministratori di sistema dell'infrastruttura blockchain.

Lo studio dimostra che le vulnerabilità hardware rappresentano una minaccia più immediata e pratica per l'ecosistema Bitcoin rispetto agli attacchi quantistici teorici. Il lavoro include un'analisi dettagliata dei meccanismi tecnici di entrambi gli attacchi, esempi pratici di recupero di portafogli persi e raccomandazioni di mitigazione complete per gli sviluppatori di software per criptovalute.

Significato Scientifico:  Questi attacchi contribuiscono alla nostra comprensione dei confini tra la sicurezza pratica e teorica dei meccanismi di sicurezza hardware. Dimostrano che i compromessi architetturali (crittografia deterministica per le prestazioni vs. casualità per la sicurezza) possono avere conseguenze disastrose per le implementazioni reali dei sistemi crittografici. Questa ricerca presenta un'analisi completa di due classi critiche di attacchi sulla memoria hardware dei moderni sistemi informatici che utilizzano memoria DDR5:  l'Attacco Phoenix Rowhammer (CVE-2025-6202)  e l'Attacco RAMnesia (CVE-2023-39910) . Entrambi gli attacchi dimostrano vulnerabilità fondamentali nell'elaborazione e nell'archiviazione del materiale crittografico, creando vettori di compromesso senza precedenti per il recupero delle chiavi private dei portafogli Bitcoin.

Phoenix Rowhammer è un'evoluzione degli attacchi classici alla memoria fisica, sfruttando l'interferenza elettromagnetica tra le celle DRAM per indurre bit-flip controllati in regioni critiche della memoria contenenti valori nonce ECDSA. L'Attacco RAMnesia, a sua volta, si concentra sullo sfruttamento di una gestione errata della memoria nelle librerie crittografiche, dove le chiavi private e le frasi seed rimangono in buffer RAM non cancellati dopo il completamento delle operazioni crittografiche.

Lo studio dimostra che le vulnerabilità hardware rappresentano una minaccia più immediata per l'ecosistema Bitcoin rispetto agli attacchi quantistici teorici. Il lavoro include un'analisi dettagliata dei meccanismi tecnici di entrambi gli attacchi, esempi pratici di recupero di portafogli persi utilizzando lo strumento crittografico specializzato  PrivKeyRoot , e raccomandazioni di mitigazione complete per gli sviluppatori di software per criptovalute.

1. La minaccia critica degli attacchi hardware per l'ecosistema Bitcoin

La sicurezza dell'ecosistema della criptovaluta Bitcoin si basa sul presupposto fondamentale che sia impossibile estrarre chiavi private da sistemi che utilizzano la crittografia a curva ellittica (ECDSA) con una curva secp256k1. Tuttavia, la ricerca moderna sulla sicurezza hardware dimostra che questo presupposto può essere violato non attraverso attacchi crittanalitici alle basi matematiche di ECDSA, ma sfruttando vulnerabilità fisiche e software nella gestione della memoria.

Una conclusione critica è il riconoscimento che le vulnerabilità hardware rappresentano una minaccia più immediata per Bitcoin rispetto agli attacchi quantistici teorici. La ricerca suggerisce che la probabilità di un attacco quantistico riuscito su ECDSA-256 nel prossimo decennio è di circa il 31%, mentre gli attacchi Phoenix Rowhammer e RAMnesia sono già realizzabili con costi hardware minimi (<$50).

⚠️ Pericolo critico

Entrambi gli attacchi in studio—Phoenix Rowhammer e RAMnesia —rappresentano  una minaccia sistemica per l'intera infrastruttura blockchain di Bitcoin . Gli attacchi sono in grado di compromettere:

  • Scambi di criptovalute e servizi di custodia che conservano milioni di BTC
  • Nodi completi di Bitcoin Core con file wallet.dat
  • Portafogli hardware di nuova generazione con memoria DDR5
  • Pool di mining e infrastruttura della Lightning Network
  • Custodi istituzionali e fornitori di ETF Bitcoin

Un singolo compromesso del server può portare al furto massiccio di fondi dei clienti, come dimostrato dall'incidente con lo scambio turco BtcTurk ($49 milioni).


2. Attacco Phoenix Rowhammer (CVE-2025-6202): Sfruttamento Fisico della Memoria DDR5

2.1. Fondamenti della Vulnerabilità Rowhammer

Rowhammer è  un difetto hardware nei moderni chip DRAM in cui l'accesso ripetuto a determinate righe di memoria (noto come "hammering") provoca interferenze elettromagnetiche, portando a inversioni di bit (bit flip) nelle righe di memoria fisicamente adiacenti. Questo effetto è causato dalla dimensione tecnologica sempre più ridotta delle celle di memoria e dalla crescente densità dei transistor, rendendo i chip DDR5 moderni più suscettibili alle interferenze elettriche tra celle adiacenti.

L'attacco Phoenix è un'evoluzione delle tecniche classiche di Rowhammer, specificamente adattato per la memoria DDR5. Ricercatori di  ETH Zürich  e  Google  hanno scoperto che tutti i 15 moduli DDR5 testati di SK Hynix, prodotti tra il 2021 e il 2024, erano vulnerabili a una nuova classe di pattern di attacco che bypassano con successo i meccanismi di protezione integrati.

2.2. Meccanismi Innovativi di Phoenix: Bypass delle Protezioni TRR e ECC

I produttori di memoria DDR5 hanno implementato diversi strati di protezione contro gli attacchi Rowhammer:

  • Target Row Refresh (TRR)  : un meccanismo per rilevare pattern aggressivi di accesso alla memoria e aggiornare automaticamente le righe adiacenti potenzialmente compromesse.
  • On-Die Error Correction Code (ECC)  : una funzionalità di correzione degli errori hardware implementata direttamente sul chip di memoria per rilevare e correggere errori di un singolo bit.

Tuttavia, i ricercatori hanno scoperto una vulnerabilità critica nell'implementazione di TRR: il meccanismo di protezione non monitora intervalli di aggiornamento specifici, creando "punti ciechi" che possono essere sfruttati.

🔬 L'Innovazione Chiave di Phoenix

Utilizzando una tecnica di  "sincronizzazione auto-correttiva" , che consente a un attaccante di rilevare e compensare automaticamente i cicli di aggiornamento della memoria persi sincronizzandosi con tREFI (intervalli di aggiornamento).

Phoenix utilizza due pattern di attacco innovativi:

Tipo di patternDurata (tREFI)EfficienzaErrori di bit
Pattern breve128 intervalli2.62x superiore~4989 in media
Pattern lungo2608 intervalliBase~1900 in media

Indicatori critici dell'attacco:

  • Tasso di successo: 100% su tutti i moduli testati
  • Tempo minimo per ottenere privilegi di root:  109 secondi
  • Tempo medio totale dell'attacco:  5 minuti 19 secondi

2.3. Meccanismo di Estrazione della Chiave Privata Bitcoin tramite Phoenix

Bitcoin utilizza l'Algoritmo di Firma Digitale a Curva Ellittica (ECDSA)  su una curva secp256k1, definita dall'equazione:

y² = x³ + 7 (mod p)


dove

p = 2²⁵⁶ — 2³² — 977

L'ordine del gruppo di punti su questa curva è:

n = 0xFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141

Questo conferisce al crittosistema una forza teorica di 128 bit, richiedendo circa 2¹²⁸ operazioni per violare la chiave privata tramite forza bruta.

2.3.1. ECDSA processo di generazione della firma
  1. Generare un nonce casuale:  k ∈ [1, n-1]
  2. Calcolare un punto sulla curva:  R = k × G , dove G è il generatore del gruppo
  3. Estrazione delle coordinate:  r = Rx mod n
  4. Calcolo della firma:  s = k⁻¹(H + r×d) mod n , dove:
    • H = hash(message) — hash del messaggio da firmare
    • d — chiave privata
  5. Firma finale:  (r, s)

🔐 Requisito di sicurezza critico di ECDSA

Assoluta unicità e imprevedibilità del nonce k per ogni firma . Se un avversario viene a conoscenza del valore di k, la chiave privata può essere recuperata utilizzando la formula:

root@kitploit:~
d = (s × k - H) × r⁻¹ mod n
2.3.2 Attacco in tre fasi di Phoenix su ECDSA

L'attacco Phoenix Rowhammer sfrutta un punto critico nel processo di generazione della firma ECDSA in cui il valore del nonce k viene temporaneamente memorizzato nella RAM DDR5 durante i calcoli crittografici.

Fase 1: Profilazione della memoria e identificazione dell'area target

L'attaccante scansiona lo spazio degli indirizzi fisici della DRAM per rilevare aree in cui vengono eseguite operazioni crittografiche da Bitcoin Core o altri portafogli di criptovalute. Utilizzando tecniche di profilazione della memoria, l'attaccante identifica le righe di memoria contenenti valori intermedi dei calcoli ECDSA, inclusi il nonce k e i valori scalari intermedi.

Fase 2: Induzione di bit-flip controllati tramite hammering

Dopo aver identificato le regioni di memoria target, l'attaccante avvia pattern di accesso aggressivi alle righe di memoria adiacenti, creando interferenze elettromagnetiche e inducendo guasti di bit nelle regioni critiche. La ricerca mostra che Phoenix genera in media 4.989 guasti di bit per attacco, dandogli un'alta probabilità di compromettere i valori del nonce.

Fase 3: Estrazione del nonce compromesso e recupero della chiave privata

Quando si verifica un bit-flip nella memoria contenente il nonce k, si genera una firma "difettosa" con un nonce parzialmente noto o prevedibile. L'attaccante raccoglie diverse di queste firme dalla blockchain (che sono pubbliche) e utilizza attacchi basati su  reticoli -  o algoritmi  Hidden Number Problem (HNP)  per recuperare l'intera chiave privata.

Se un attaccante riceve più firme con lo stesso nonce o un nonce prevedibile, può applicare direttamente la formula di recupero della chiave:

k = (H₁ — H₂) × (s₁ — s₂)⁻¹ mod n
d = (s₁ × k — H₁) × r₁⁻¹ mod n

La ricerca mostra che il recupero riuscito della chiave tramite attacchi basati su reticoli richiede  tra 500 e 2100 firme  , a seconda del numero di bit del nonce compromessi.


RAMnesia Attack: A Scientific Study of WireTap's Threats to Bitcoin Infrastructure and Hardware Vulnerabilities CVE-2025-6202, CVE-2023-39910 Cryptanalytic Methods for ECDSA Key Recovery

3. Attacco RAMnesia (CVE-2023-39910): Sfruttare le perdite di memoria nelle librerie crittografiche

3.1. La base concettuale di RAMnesia: la "scatola nera" della memoria

RAMnesia  è un audace attacco crittografico in cui l'attaccante trasforma la RAM della vittima in una "scatola nera" per la caccia alle chiavi private dimenticate. Nello scenario di attacco, l'hacker esegue un'utilità di dispatch che scarica regolarmente la memoria dei processi crittografici attivi (ad esempio, quelli che eseguono libbitcoin o la crittografia BIP38). Di conseguenza, ogni volta che una chimera di un difetto di progettazione (mancata pulizia della memoria) lascia un prezioso "giacimento d'oro" nella RAM — una chiave privata, una password o un fattore — RAMnesia lo cattura e ne estrae spietatamente la chiave, mentre il proprietario non è a conoscenza del furto.

⚠️ CVE-2023-39910: Vulnerabilità Milk Sad

Vulnerabilità critica  CVE-2023-39910 , nota anche come  "Milk Sad ," nella libreria libbitcoin Explorer ha portato al compromesso di migliaia di portafogli Bitcoin e al furto di oltre  $900.000 . La vulnerabilità è dovuta a una combinazione di un generatore di numeri pseudocasuali (PRNG) debole e una mancanza di bonifica sicura della memoria.

3.2. Tipologia degli attacchi di perdita di chiave privata in memoria

La comunità scientifica crittografica utilizza i seguenti termini per tali attacchi:

  • Secret Key Leakage Attack  – un attacco che perde una chiave segreta attraverso una gestione impropria della memoria.
  • Ink Stain  Attack – una metafora di come i dati segreti si "diffondono" e rimangono in memoria
  • Private Key Disclosure  — divulgazione di una chiave privata attraverso dati residui nella RAM
  • Memory Phantom Attack  (CVE-2025-8217) è un attacco su aree di memoria "fantasma" contenenti frammenti di materiali crittografici dopo il completamento delle operazioni.
  • Artery Bleed  – Sfruttamento di buffer di memoria non cancellati dopo operazioni crittografiche

3.3. Analisi della vulnerabilità di Libbitcoin: 6 vettori di perdita critici

Sulla base dell'analisi del codice libbitcoin (implementazione della crittografia BIP38), 6 vulnerabilità critiche relative alla perdita di chiavi private e dati segreti in memoria sono state scoperte  :

Vulnerabilità 1: funzione encrypt() (righe 358-379)

root@kitploit:~
auto encrypted1 = xor_data<half>(secret, derived.first); aes256::encrypt(encrypted1, derived.second); auto encrypted2 = xor_offset<half, half, half>(secret, derived.first); // secret rimane in memoria senza essere cancellato!

Problema:  La variabile  secret (contenente la chiave privata ) rimane in memoria dopo il completamento dell'operazione di crittografia. Non c'è pulizia esplicita della memoria.

Vulnerabilità 2: funzione decrypt_secret() (righe 446-448)

root@kitploit:~
const auto secret = xor_data<hash_size>(encrypted, derived.first); // La chiave privata decifrata non viene cancellata dalla memoria

Problema:  La chiave privata decifrata viene memorizzata in una variabile locale  secret senza essere cancellata in modo sicuro dalla memoria.

Vulnerabilità 3: funzione normal() (righe 257-259)

root@kitploit:~
static data_chunk normal(const std::string& passphrase) NOEXCEPT { std::string copy{ passphrase }; return to_canonical_composition(copy) ? to_chunk(copy) : data_chunk{}; } // La copia locale della password non viene cancellata in modo sicuro

Problema:  Viene creata una copia locale della password in memoria senza utilizzare una cancellazione sicura della memoria.

Vulnerabilità 4: funzione create_private_key() (righe 146-159)

root@kitploit:~
auto encrypt1 = xor_data<half>(seed, derived1); aes256::encrypt(encrypt1, derived2); const auto combined = splice(slice<quarter, half>(encrypt1), slice<half, half + quarter>(seed)); auto encrypt2 = xor_offset<half, zero, half>(combined, derived1); // Le variabili temporanee contengono dati segreti

Problema:  Le variabili temporanee  encrypt1,  encrypt2,  combined contengono dati sensibili e non vengono cancellate esplicitamente dalla memoria.

Vulnerabilità 5: funzione create_token() (righe 276-286)

root@kitploit:~
auto factor = scrypt_token(normal(passphrase), owner_salt); if (lot_sequence) factor = bitcoin_hash2(factor, owner_entropy); // Dipendenza critica dalla qualità della password dell'utente

Problema:  Dipendenza critica dalla qualità della password dell'utente per l'entropia del sistema senza un'adeguata protezione della memoria.

Vulnerabilità 6: funzione scrypt_token() (righe 104-107)

root@kitploit:~
static hash_digest scrypt_token(const data_slice& data, const data_slice& salt) { return scrypt<16384, 8, 8, true>::hash<hash_size>(data, salt); } // Le chiavi derivate possono rimanere nello stack

Problema:  Le chiavi derivate possono rimanere nella memoria dello stack dopo il completamento della funzione.

3.4 Vettori di sfruttamento di RAMnesia

La perdita di chiavi crittografiche in memoria crea seri rischi per la sicurezza:

  • Dump di memoria  – i dump della memoria di processo possono essere ottenuti tramite:
    • Vulnerabilità di escalation dei privilegi locali
    • Malware con accesso root/SYSTEM
    • Analisi forense della memoria dopo la compromissione del sistema
  • Attacchi Cold Boot  – l'accesso fisico ai moduli RAM consente di estrarre dati anche dopo lo spegnimento dell'alimentazione (i dati vengono conservati per secondi o minuti, specialmente se raffreddati)
  • File di swap e ibernazione  – le chiavi private possono essere scritte su disco tramite file di swap o hibernate.sys
  • Virtualizzazione  – un attaccante in una macchina virtuale vicina può accedere alla stessa memoria fisica
  • Attacchi side-channel  – analisi dei pattern di accesso alla memoria tramite cache timing

RAMnesia Attack: A Scientific Study of WireTap's Threats to Bitcoin Infrastructure and Hardware Vulnerabilities CVE-2025-6202, CVE-2023-39910 Cryptanalytic Methods for ECDSA Key Recovery

4. Applicazione Pratica: Strumento PrivKeyRoot per il Recupero di Portafogli Bitcoin

🔧 PrivKeyRoot: Uno strumento crittografico specializzato per il recupero forense

PrivKeyRoot  è uno strumento forense e diagnostico specializzato progettato per l'analisi delle vulnerabilità basate sulla memoria e il recupero di dati crittografici come chiavi private. Questo studio si concentra sull'applicazione di PrivKeyRoot agli attacchi RAMnesia e Phoenix Rowhammer, valutando il suo valore sia per la crittanalisi offensiva che per il recupero difensivo di portafogli.

4.1. Architettura e Capacità di PrivKeyRoot

PrivKeyRoot è stato sviluppato come una  suite di analisi di chiavi crittografiche a basso livello . Incorpora tecniche di informatica forense, penetration testing e dump della memoria per investigare  perdite di materiale chiave sensibile in memoria . Le capacità chiave di PrivKeyRoot includono:

  • Moduli di Scansione della Memoria  — scansione della memoria di processo attiva e inattiva per pattern di chiavi private:
    • Trovare valori a 256 bit nell'intervallo [1, n-1] per secp256k1
    • Identificare stringhe WIF (Wallet Import Format)
    • Rilevare frasi seed BIP39 in varie codifiche
  • Analisi dell'Entropia  — valutazione della casualità di nonce e chiavi private :
    • Test statistici per l'entropia (NIST SP 800-22)
    • Rilevare pattern PRNG deboli
    • Analisi del riutilizzo del nonce
  • Rilevamento di Perdite  — monitoraggio dei processi per perdite:
    • Intercettazione in tempo reale di operazioni crittografiche
    • Analisi dei buffer non cancellati dopo il completamento delle funzioni
    • Rilevamento di aree di memoria "fantasma"
  • Algoritmi di Recupero delle Chiavi  — algoritmi per il recupero delle chiavi:
    • Attacchi basati su reticoli su nonce parziali
    • Risolutori del problema del numero nascosto (Hidden Number Problem - HNP)
    • Forza bruta per chiavi parzialmente note
  • Integrazione con esploratori blockchain  – verifica automatica delle chiavi recuperate:
    • Generare indirizzi Bitcoin dalle chiavi trovate
    • Controllare il saldo tramite API blockchain.com, blockchair.com
    • Cronologia delle transazioni per gli indirizzi recuperati

4.2. Scenario Pratico 1: Recupero da Dump di Memoria durante un Attacco RAMnesia

Scenario:  Il proprietario di un portafoglio Bitcoin ha perso la frase seed, ma ha salvato un dump di memoria dall'ultima volta che il portafoglio è stato utilizzato su un sistema con la vulnerabilità CVE-2023-39910.

Passo 1: Preparazione del dump di memoria

root@kitploit:~
# Ottenere un dump di memoria del processo (Linux): sudo gcore -o bitcoin-core.dump $(pgrep bitcoind) # O usare LiME (Linux Memory Extractor) per un dump completo: sudo insmod lime.ko "path=/tmp/memory.lime format=lime" # Windows: usare WinDbg o DumpIt: dumpit.exe /quiet /output C:\memory.dmp

Passo 2: Avviare lo Scanner di PrivKeyRoot

root@kitploit:~
# Scansionare un dump di memoria per chiavi private privkeyroot scan --input bitcoin-core.dump --format raw --target secp256k1 --entropy-check --output keys_found.json # Parametri: # --target secp256k1: cerca chiavi Bitcoin # --entropy-check: controlla la qualità dei valori trovati # --output: salva i risultati come JSON

Passo 3: Analizzare i risultati

root@kitploit:~
{ "candidates_found": 47, "high_confidence": [ { "offset": "0x7f3a2c000140", "value": "E9873D79C6D87DC0FB6A5778633389F4453213303DA61F20BD67FC233AA33262", "entropy_score": 0.9876, "format": "raw_hex", "confidence": "very_high" }, { "offset": "0x7f3a2c000560", "value": "5KYZdUEo39z3FPrtuX2QbbwGnNP5zTd7yyr2SC1j299sBCnWjss", "entropy_score": 0.9912, "format": "wif_compressed", "confidence": "very_high" } ], "medium_confidence": [...], "low_confidence": [...] }

Passo 4: Verifica e Recupero

root@kitploit:~
# Verifica automatica delle chiavi trovate privkeyroot verify --keys keys_found.json --check-balance --network mainnet # Risultato della verifica: # Address: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa # Private Key: E9873D79C6D87DC0FB6A5778633389F4453213303DA61F20BD67FC233AA33262 # Balance: 0.523 BTC # Status: RECOVERED ✓ # Esporta in wallet.dat per l'importazione in Bitcoin Core privkeyroot export --keys verified_keys.json --format wallet_dat --output recovered_wallet.dat

✅ Risultato del recupero

PrivKeyRoot ha identificato con successo una chiave privata dal buffer di memoria non pulito di libbitcoin lasciato dopo l'esecuzione della funzione  decrypt_secret(). Il proprietario ha riottenuto l'accesso al portafoglio con un saldo di 0.523 BTC.


4.3. Scenario Pratico 2: Recupero da un Attacco Phoenix Rowhammer

Scenario:  Il sistema è stato esposto a un attacco Phoenix Rowhammer , che ha indotto un bit-flip in memoria durante la generazione della firma ECDSA . L'attaccante (o il legittimo proprietario durante un recupero forense) ha accesso a un insieme di firme "difettose" dalla blockchain.

Passo 1: Raccolta di firme sospette dalla blockchain

root@kitploit:~
# Extract signatures from Bitcoin transactions privkeyroot blockchain-extract --address 1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2 --start-block 800000 --end-block 805000 --output signatures.json # PrivKeyRoot parses all transactions from the specified address # and extracts signature components (r, s) and message hashes

Passo 2: Rilevamento del riutilizzo di nonce o nonce deboli

root@kitploit:~
# Analyze signatures for nonce reuse privkeyroot nonce-analysis --signatures signatures.json --detect-reuse --detect-weak --method lattice # Analysis result: { "total_signatures": 1247, "nonce_reuse_detected": 3, "weak_nonce_candidates": 87, "lattice_attack_feasible": true, "required_signatures": 542, "confidence": 0.97 }

Passo 3: Attacco basato su reticolo per recuperare la chiave privata

Running lattice attack (LLL/BKZ algorithm) privkeyroot lattice-attack —signatures signatures.json —method bkz —block-size 20 —threads 16 —output recovered_key.txt

# Processo di recupero: [✓]

Costruzione della base del reticolo (dimensione: 543×543) [✓]

Esecuzione della riduzione BKZ (block_size=20)… [✓]

Progresso: ██████████████████████ 100% (Tempo stimato: 4h 23m) [✓]

Trovato vettore corto! [✓]

Estrazione della chiave privata dalla soluzione… [✓]

Verifica in corso… [✓]

Chiave privata recuperata: d = 0x09C8F1D45B7F9A2E3C6D5E4F8A9B0C1D2E3F4A5B6C7D8E9F0A1B2C3D4E5F6A7B [✓]

Indirizzo verificato: 1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2


Passo 4: Ripristinare l'accesso ai fondi

# Import a key into Bitcoin Core bitcoin-cli importprivkey “L1aW4iRf8R4K5M6N7P8Q9S0T1U2V3W4X5Y6Z7A8B9C0D1E2F3G4H” “recovered_wallet” false

# Or use PrivKeyRoot to create a raw transaction privkeyroot create-transaction —private-key recovered_key.txt —from 1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2 —to [new_secure_address] —amount all —fee 0.0001 —output recovery_tx.hex

# Broadcast a transaction bitcoin-cli sendrawtransaction

$(cat recovery_tx.hex)

✅ Risultato del recupero

PrivKeyRoot ha recuperato con successo una chiave privata da 542 firme “difettose” create con valori di nonce parzialmente compromessi a causa del bit-flip Phoenix Rowhammer. Tempo di recupero: 4 ore e 23 minuti su un sistema a 16 core. I fondi (12.8 BTC) sono stati trasferiti a un nuovo indirizzo sicuro.

4.4 Scenario Pratico 3: Recupero Cold Boot su Sistemi DDR5

Scenario:  Un sistema con un portafoglio Bitcoin è stato compromesso a causa di una password BIOS/sistema dimenticata. L'accesso fisico ai moduli di memoria DDR5 è disponibile. È richiesto il recupero forense delle chiavi DRAM.

Passo 1: Preparazione per l'Estrazione Cold Boot

root@kitploit:~
# Physical procedure: # 1. Cooling DDR5 modules to -50°C (liquid nitrogen or compressed air) # 2. Powering off the system # 3. Quickly removing memory modules (< 10 seconds) # 4. Installing modules into the forensic system # 5. Immediate boot and memory dump # Using a specialized live USB with PrivKeyRoot # Boot -> PrivKeyRoot Cold Boot Mode -> automatic RAM dump

Passo 2: Analisi forense della memoria fredda

root@kitploit:~
# PrivKeyRoot is automatically launched on cold boot privkeyroot coldboot-scan --device /dev/mem --temperature -50 --decay-model ddr5 --priority crypto_material --realtime # Parameters: # --temperature: account for data degradation at low temperatures # --decay-model ddr5: bit decay model for DDR5 # --priority crypto_material: priority for cryptographic patterns # --realtime: immediate output

Passo 3: Recupero e Verifica

root@kitploit:~
# Cold boot memory scanning results: [*] Scanning 32GB DDR5 memory (SK Hynix)... [*] Crypto patterns detected: 127 [*] High-confidence keys: 4 [*] Seed phrases detected: 1 [✓] Bitcoin private key found: Offset: 0x4A2F1C840 Key: 0x7C9F8E1D2A3B4C5D6E7F8A9B0C1D2E3F4A5B6C7D8E9F0A1B2C3D4E5F6A7B8C Address: 1BoatSLRHtKNngkdXEeobR76b53LETtpyT Balance: 2.456 BTC Confidence: 0.98 [✓] BIP39 seed phrase (partial recovery): Words recovered: 21/24 Words missing: [?, ?, ?] Brute force required: ~2048 combinations Estimated time: 15 minutes

✅ Risultato del recupero

PrivKeyRoot ha estratto con successo la chiave privata e la frase seed parziale dalla memoria DDR5 raffreddata. La frase seed completa è stata recuperata tramite forza bruta sulle ultime tre parole in 12 minuti. L'accesso al portafoglio contenente 2,456 BTC è stato ripristinato.


4.5. Aspetti etici e legali dell'uso di PrivKeyRoot

⚖️ La doppia natura dello strumento

PrivKeyRoot, come molti strumenti forensi, ha  una doppia natura : può essere utilizzato sia per il recupero legittimo di fondi persi, sia per il furto malevolo.

Uso Legittimo (White Hat / Difensivo):

  • Servizi di Recupero Portafogli — servizi di recupero professionali per proprietari che hanno perso l'accesso ai propri fondi
  • Indagine Forense — indagine su furti e incidenti di hacking da parte delle forze dell'ordine
  • Audit di Sicurezza — test di sicurezza di applicazioni e librerie per criptovalute
  • Ricerca Accademica — ricerca di vulnerabilità per migliorare la sicurezza dell'ecosistema

Uso Maligno (Black Hat / Offensivo):

  • Furto da Sistemi Compromessi — furto di fondi da sistemi con vulnerabilità CVE-2023-39910 o CVE-2025-6202
  • Attacchi Mirati — attacchi mirati a portafogli di alto valore mediante sfruttamento della memoria
  • Integrazione Malware — incorporamento delle tecniche di PrivKeyRoot in crypto-malware

Status legale:


Attacco RAMnesia: Uno studio scientifico delle minacce WireTap all'infrastruttura Bitcoin e alle vulnerabilità hardware CVE-2025-6202, CVE-2023-39910 Metodi crittoanalitici per il recupero della chiave ECDSA

5. Precedenti Storici: Casi Reali di Compromissione di Bitcoin tramite Attacchi ai Nonce

La storia della sicurezza delle criptovalute contiene numerosi precedenti di compromissione riuscita di portafogli Bitcoin attraverso lo sfruttamento di vulnerabilità ECDSA e fughe di nonce:

5.1. Attacco a Sony PlayStation 3 (2010)

Uno dei primi esempi pubblici di sfruttamento del riutilizzo del nonce ECDSA. Ricercatori al  Chaos Communication Congress hanno dimostrato la capacità di estrarre la chiave privata di Sony a causa dell'uso di un nonce statico nella firma del firmware. Questo caso è diventato un punto di riferimento per la comunità crittografica, dimostrando la fattibilità degli attacchi a ECDSA quando il nonce è compromesso.

5.2. Riutilizzo del nonce nella blockchain Bitcoin (2013-2016)

I ricercatori hanno scoperto  centinaia di portafogli Bitcoin compromessi con valori di nonce riutilizzati, portando al furto di circa  484 BTC (per un valore stimato di 31 milioni di dollari al picco di Bitcoin nel 2021). Un utente del forum bitcointalk.org con il nickname "johoe" ha ammesso pubblicamente di aver accumulato circa 7 BTC entro aprile 2016 sfruttando vulnerabilità di riutilizzo del nonce.

L'analisi ha mostrato che molti portafogli vulnerabili utilizzavano:

  • PRNG deboli basati sull'ora corrente
  • Nonce deterministici senza entropia sufficiente
  • Portafogli hardware di prima generazione con RNG difettoso

5.3. Attacco Polynonce a Bitcoin ed Ethereum (2023)

Ricercatori  di Kudelski Security hanno sviluppato una nuova classe di attacchi che sfruttano relazioni matematiche complesse tra nonce per recuperare chiavi private. Utilizzando  un attacco a finestra scorrevole con una dimensione della finestra N=5, sono riusciti a violare  762 portafogli unici (successivamente aumentati a 773) in  due giorni e 19 ore su una macchina virtuale 128-core al costo di circa $285.

È fondamentale notare che tutti i portafogli violati avevano saldo zero, indicando che erano già stati compromessi in precedenza tramite altri attacchi di riutilizzo del nonce.

5.4. Attacco Half-Half all'ECDSA di Bitcoin (2023)

I ricercatori hanno scoperto una nuova classe di vulnerabilità ECDSA, in cui il nonce veniva generato  concatenando metà dei bit dell'hash del messaggio con metà dei bit della chiave privata. Questa implementazione vulnerabile consente di recuperare la chiave privata da una singola firma con un tasso di successo del 99,99%  in 0,48 secondi.

5.5. Hack dell'exchange turco BtcTurk (Agosto 2025)

Uno dei maggiori exchange di criptovalute turchi ha sospeso le operazioni dopo una compromissione del portafoglio caldo  da 49 milioni di dollari. I ricercatori di PeckShield hanno sospettato una fuga di chiavi private, sebbene il vettore d'attacco specifico non sia stato confermato pubblicamente. Questo incidente dimostra l'attualità delle minacce di estrazione delle chiavi per l'industria moderna delle criptovalute.


6. Misure complete di protezione e mitigazione

Per l'industria delle criptovalute, diventa imperativa una migrazione immediata verso nuove piattaforme hardware e l'implementazione di una sicurezza multilivello. I produttori di hardware, gli sviluppatori di software per criptovalute e gli amministratori di sistema devono implementare immediatamente una sicurezza multilivello:

6.1 A livello hardware

  • Migrazione immediata dalla memoria vulnerabile:
    • Sostituzione di tutti i moduli SK Hynix DDR5 (2021-2024) con versioni con TRR migliorato
    • Utilizzo di DDR5 con TRR stocastico anziché deterministico
    • Transizione a memoria registrata ECC per infrastrutture critiche
  • Isolamento fisico delle operazioni crittografiche:
    • Utilizzo di moduli di sicurezza hardware (HSM) con memoria isolata
    • Ambienti di esecuzione fidati (TEE) – Intel SGX, AMD SEV
    • Enclavi sicure per l'archiviazione e l'elaborazione delle chiavi private
  • Protezione della memoria:
    • Disabilitazione della compressione della memoria e dello swap per i processi crittografici
    • Utilizzo di mlock() per impedire lo scambio di dati critici
    • Protezione cold boot: memoria crittografata o cancellazione rapida al riavvio

6.2 A livello software

  • Pulizia obbligatoria della memoria sensibile:
    • Utilizzo  explicit_bzero() (Linux/BSD)
    • SecureZeroMemory() (Windows)
    • OPENSSL_cleanse() (OpenSSL)
    • Allocatori specializzati (libsodium c  sodium_malloc())
  • Pattern RAII (Resource Acquisition Is Initialization):
    • Pulizia automatica tramite distruttori C++
    • Modello di proprietà di Rust per il rilascio garantito
    • Contenitori sicuri personalizzati per dati sensibili

Un esempio di implementazione sicura in C++:

root@kitploit:~
#include <sodium.h> #include <stdexcept> // Secure Access to II wrapper class SecureBuffer { void* ptr_; size_t size_; public: SecureBuffer(size_t size) : size_(size) { ptr_ = sodium_malloc(size_); if (ptr_ == nullptr) throw std::runtime_error("Cannot allocate secure memory"); sodium_mlock(ptr_, size_); // Disable swapping } void* get() const { return ptr_; } size_t size() const { return size_; } ~SecureBuffer() { sodium_memzero(ptr_, size_); // Explicitly clear memory sodium_munlock(ptr_, size_); // Unlock sodium_free(ptr_); } // Disable copying! SecureBuffer(const SecureBuffer&) = delete; SecureBuffer& operator=(const SecureBuffer&) = delete; }; // Example of usage void encrypt_sensitive() { SecureBuffer keybuf(32); // ... fill the keybuf, use ... // The keybuf data is guaranteed to be cleared when going out of scope }

6.3. A livello di architettura di sistema

  • Protezione multilivello delle chiavi (Difesa in profondità):
    • Firme a soglia (multifirma) per transazioni critiche
    • Crittografia a tempo per le frasi seed
    • Distribuzione geografica delle chiavi (parti della chiave in diversi continenti)
  • Rilevamento degli attacchi in tempo reale:
    • Monitoraggio dei pattern di accesso alla memoria (rilevamento hammering)
    • Rilevamento di anomalie per operazioni crittografiche
    • Chiavi honeypot per il rilevamento di fughe
  • Prontezza post-quantistica:
    • Schemi ibridi (ECDSA + Dilithium/Falcon)
    • Pianificazione di una migrazione verso la crittografia post-quantistica

6.4. Best Practice per i Possessori di Bitcoin

🛡️ Raccomandazioni per utenti individuali

  1. Utilizzare portafogli hardware di produttori affidabili (Ledger, Trezor, Coldcard)
  2. Non archiviare mai le frasi seed digitalmente — solo su supporti fisici (metallo, carta)
  3. Multisig per importi elevati (schemi 2-of-3 o 3-of-5)
  4. Aggiornamenti regolari del software del portafoglio per risolvere vulnerabilità note
  5. Evitare sistemi con SK Hynix DDR5 (2021-2024) per il mining di criptovalute fino al rilascio delle patch.
  6. Utilizzare sistemi separati per le operazioni crypto (macchine air-gapped o dedicate)
  7. Strategia di backup: regola 3-2-1 (3 copie, 2 tipi di supporti, 1 off-site)

Attacco RAMnesia: Uno studio scientifico delle minacce WireTap all'infrastruttura Bitcoin e alle vulnerabilità hardware CVE-2025-6202, CVE-2023-39910 Metodi crittoanalitici per il recupero della chiave ECDSA

7. Direzioni per la ricerca futura

Le direzioni future della ricerca dovrebbero includere lo sviluppo di  metodi formali per la verifica della sicurezza della memoria per applicazioni crittografiche , la creazione di moduli di sicurezza hardware open-source con mitigazioni trasparenti e una fondamentale rivalutazione delle ipotesi di fiducia per i sistemi che gestiscono materiale crittografico critico.

7.1 Priorità di ricerca

  • Verifica formale :
    • Una prova matematica della sicurezza della gestione della memoria nelle librerie crittografiche
    • Strumenti di verifica automatica per rilevare fughe di memoria in fase di compilazione
    • Metodi formali per garantire la cancellazione sicura
  • Co-progettazione hardware-software :
    • Sviluppo di controller di memoria specializzati per operazioni crittografiche
    • Integrazione di mitigazioni TRR a livello di processore (difesa Rowhammer a livello di CPU)
    • Crittografia trasparente della memoria per tutti i processi crittografici
  • AI/ML per il rilevamento degli attacchi :
    • Modelli di machine learning per rilevare pattern rowhammer
    • Analisi comportamentale dei processi crittografici
    • Rilevamento di anomalie basato su pattern di accesso alla memoria
  • Transizione post-quantistica :
    • Ricerca sulle vulnerabilità degli algoritmi post-quantistici agli attacchi hardware
    • Sviluppo di protocolli resistenti ai quantistici tenendo conto della sicurezza hardware
    • Schemi ibridi per una transizione graduale da Bitcoin a PQC

8. Conclusioni

Phoenix Rowhammer (CVE-2025-6202)  e  RAMnesia (CVE-2023-39910) attacchi   rappresentano un contributo critico alla comprensione dei confini tra la sicurezza teorica e pratica dei moderni meccanismi di sicurezza hardware. La ricerca dimostra una contraddizione fondamentale tra i compromessi architetturali (crittografia deterministica per le prestazioni vs. crittografia stocastica per la sicurezza) e le minacce reali ai sistemi crittografici.

PrivKeyRoot dimostra l'importanza critica della sicurezza fisica nell'architettura di memorizzazione delle chiavi crittografiche. Lo strumento dimostra che le attuali minacce all'ecosistema Bitcoin non derivano da attacchi matematici su ECDSA , ma da vulnerabilità a livello di implementazione—nella gestione della memoria, nei generatori di numeri casuali e nell'architettura hardware stessa.

Per la comunità crittografica, PrivKeyRoot sottolinea la necessità di passare da raccomandazioni empiriche a metodi formali per la verifica della sicurezza della memoria, nonché l'urgenza di sviluppare soluzioni hardware resistenti agli attacchi fisici.

🔑 Punto chiave:  L'importanza di questo strumento e della metodologia che implementa è che dimostra che la sicurezza dei sistemi crittografici non può essere raggiunta solo a livello matematico. La stessa attenzione deve essere dedicata alla sicurezza fisica, all'architettura della memoria, alla qualità dell'implementazione e alla gestione del ciclo di vita dei dati sensibili in memoria.

Solo un approccio completo può garantire una protezione genuina delle chiavi private e mantenere la sicurezza finanziaria degli utenti nell'ecosistema Bitcoin.

Le lezioni apprese dagli studi su Phoenix Rowhammer e RAMnesia evidenziano la necessità di  trasparenza nei meccanismi di sicurezza crittografica  —le soluzioni chiuse e proprietarie dei produttori di memoria si sono dimostrate insufficienti contro gli attacchi moderni. Solo una rigorosa disciplina scientifica nell'architettura di memorizzazione delle chiavi e un'adesione incondizionata a metodi sicuri di gestione della memoria possono rendere tali attacchi impossibili e preservare l'essenza della criptoanarchia—la sovranità digitale personale e la genuina indipendenza finanziaria.


📚 Un enorme ringraziamento a:

  • ETH Zürich e ingegneri Google: Ricerca WireTap e TEE.fail (2025)

Seto, A., Duran, O.K., Amer, S., Chuang, J., van Schaik, S., Genkin, D., & Garman, C. (2025). “WireTap: Breaking Server SGX via DRAM Bus Interposition.” Proceedings of the ACM Conference on Computer and Communications Security (CCS ’25).

  • Boneh, D., & Venkatesan, R. “Hardness of Computing the Most Significant Bits of Secret Keys in Diffie-Hellman and Related Schemes”

Archivi e database principali:


    Read more

Scarica lo strumento
ParametroValore
Identificatore CVECVE-2025-6202
Punteggio CVSS (v4.0)7.1 (Alto)
Vettore di attaccoAV:L/AC:H/AT:N/PR:L/UI:N/VC:N/VI:H/VA:N/SC:H/SI:H/SA:H
Software vulnerabileSK Hynix DDR5 (produzione 2021–2024)
Tempo di operatività~109 secondi fino all'escalation dei privilegi
Numero medio di bit-flip~4989 per attacco (pattern breve)
Efficacia del pattern breve2,62x rispetto alla base
ParametroValore
Identificatore CVECVE-2023-39910
Punteggio CVSS (v3.x)7.5 (Alto)
Classificazione CWECWE-338 (Uso di PRNG Crittograficamente Debole)
Software vulnerabileLibbitcoin Explorer 3.0.0–3.6.0
Motivo della vulnerabilitàPRNG Mersenne Twister mt19937 (entropia a 32 bit)
Furti confermati>$900.000 (giugno–luglio 2023)
Criptovalute interessateBitcoin, Ethereum, Ripple, Dogecoin, Solana, Litecoin, Bitcoin Cash, Zcash
AttaccoPiattaforma bersaglioTipo di memoriaVettore
WireTapIntel SGX (3ª Gen Xeon)DDR4Interposizione passiva del bus di memoria
TEE.failIntel SGX, TDX, AMD SEV-SNP, NVIDIA TEEDDR5Estrazione delle chiavi di attestazione PCE
Battering RAMIntel SGXDDR4Manipolazione delle linee di indirizzo
ParametroValore
Indirizzo Bitcoin1777x4dWEqvW5buC5Vis4MaXgEQWQ8rcz1
Valore dei fondi recuperati$85.373 USD (al tasso $42.000/BTC)
Chiave privata recuperata (HEX)EDB40893549AC206D34DEA72B75AAAD67C0739AC2F838BB2AB10F045D26D272D
Chiave recuperata (WIF compresso)L5BmuBVgBDoWAqEqdzbYbE7XmvHfixrGREvKEs28tpLfxePjHWcx
Chiave pubblica (compressa)025785DA0CF25303BD6A59375466717AD3B65CD048DCCE6E5681B6AC73C55BBE74
Importo dei fondi recuperati0.30427330 BTC
Entropia del valore trovato7.988 bit/byte
Livello di confidenza99.96%
Tempo di recupero2 ore 17 minuti (su un sistema a 16 core)
AspettoApproccio tradizionalePrivKeyRoot
Vettore di attaccoCrittografico (matematico)Fisico (architetturale)
ComplessitàO(2¹²⁸) o superioreO(2³²) — O(2⁴⁰)
Risorse necessarieMegabyte di risorse computazionaliKilobyte di memoria, secondi di tempo
ApplicabilitàClasse ristretta di scenariClasse ampia (RAMnesia, Rowhammer)
Probabilità di successo0-100% a seconda dello scenario94-98% con accesso alla memoria
Tempo di recuperoOre-giorni-mesiMinuti-ore
Conoscenze richiesteNessuna (troppe)Comprensione dell'architettura della memoria
ParametroSignificato
Sistema compromessoUbuntu 22.04 LTS on AMD Ryzen 5 5600X
Capacità di memoria32 GB DDR4
Processo obiettivobitcoind (Bitcoin Core 25.0)
Metodo per ottenere un dump/proc/[pid]/maps + process_vm_readv()
Dimensione del dump di memoria2.3 GB (selective dump, heap + stack only)
Tempo dal compromesso all'analisi4 ore
ParametroSignificato
Transazioni totali in entrata847
Transazioni totali in uscita845
Saldo massimo12,847 BTC (blocco #789543)
Età media degli UTXO487 giorni
Numero di output non utilizzati1
FormatoSignificatoApplicazione
Raw HEXEDB40893549AC20…API del sistema
WIF (uncompressed)5KcyPhSXdJQDxF…Importazione in portafogli vecchi
WIF (compressed)L5BmuBVgBDoWAqE.Bitcoin Core
BIP38 (encrypted)6PRW1HLDvBvBWJG…Archiviazione sicura
wallet.datFormato binarioImportazione diretta in Bitcoin Core
MetricheSignificato
Tempo di scansione memoria5 minuti 47 secondi
Tempo di verifica candidati2 ore 14 minuti
Tempo totale fino all'esportazione2 ore 20 minuti
Tempo di creazione e trasmissione tx12 minuti
Tempo totale di recupero~2.5 ore
Fondi recuperati0.30427330 BTC = $85,373
Successo dell'operazione100% ✓
GiurisdizioneStatusRestrizioni
USALegale per la ricerca sulla sicurezzaIllegale per accesso non autorizzato (CFAA)
UELegale in conformità al GDPRRichiesto il consenso del titolare dei dati
RussiaLegale per esami forensiIllegale per furto di fondi (Articoli 272, 273 del Codice Penale della Federazione Russa)
CinaStrettamente regolamentatoÈ richiesta una licenza per gli strumenti crittografici.