Vai al contenuto

root / tags / determinisme

#déterminisme

2 fiches

Qualità e Sicurezza Traduzione verificata automaticamente

Your Browser Does Math Differently on Every OS, and Anti-Bot Systems Read the Bits

Articolo tecnico pubblicato il **12 luglio 2026** da **Scrapfly Engineering**, su un canale di *fingerprinting* del browser poco conosciuto: **gli ultimi bit di un numero in virgola mobile tradiscono il sistema operativo**. **Il meccanismo**: lo standard IEEE 754 definisce come viene memorizzato un `double`, ma **non impone** che `sin`, `cos`, `tanh` o `exp` siano correttamente arrotondati; ogni sistema distribuisce quindi una **libm** che scambia una frazione di ULP contro la velocità, con i propri coefficienti minimax, tabelle e costanti di riduzione. Ne risulta che `Math.tanh(0.8)` restituisce **tre valori diversi** a seconda di glibc (Linux), libsystem_m (macOS) e UCRT (Windows) — *« una singola chiamata a tanh sull'input giusto è una firma per-OS. Dichiara macOS, restituisci bit matematici di Linux, e hai contraddetto il tuo stesso User-Agent. »* **L'indizio è recente e datato con precisione**: fino a **Chrome 147**, V8 calcolava `tanh` con una porta **fdlibm** integrata, identica ovunque e senza alcuna fuga; il commit V8 `c1486295ae5` l'ha sostituita con `std::tanh`, distribuito in V8 14.8.57, ossia **Chrome 148** — 148, 149 e 150 presentano la fuga, 147 e le versioni precedenti no. **Tre superfici concentrano le fughe**: `Math.tanh` (l'**unica** funzione `Math.*` interessata, poiché V8 integra e collega staticamente il resto), **tutte le funzioni trigonometriche CSS** (Blink chiama direttamente la libm dell'host, dopo una riduzione dell'angolo in gradi che non condivide codice con `Math.sin`), e **Web Audio** (dove il compressore resta sulla libsystem_m scalare mentre le fasi FFT e vettoriali passano attraverso **Accelerate**). **Quattro trappole** rendono difficile la contromisura: solo alcune funzioni presentano la fuga — quindi **falsificare le altre crea un'incoerenza rilevabile**; JavaScript e CSS sono percorsi di codice distinti; **macOS integra due librerie matematiche che divergono tra loro** (scalare vs. Accelerate, dal 10 all'89% degli input a seconda della funzione: `cos(0)` restituisce `1.0` da un lato, `0.9999999999999999` dall'altro); e **anche l'architettura presenta una fuga** (la propagazione FMA e del segno di NaN differisce tra ARM e x86). **La contromisura scartata e quella scelta**: aggiungere rumore fallisce due volte — il valore non corrisponde a **nessun** OS reale, e il non-determinismo a ogni chiamata è a sua volta un indizio. L'unica via è la **riproduzione bit a bit**: estrarre i coefficienti della libm target, trascriverli **in esadecimale** (una trascrizione decimale arrotonderebbe in modo diverso), scrivere ogni fused multiply-add esplicitamente come `fma()`, e compilare con `-ffp-contract=off` affinché il compilatore non ne inventi né ne ometta alcuno. **Nota sulla trasparenza**: l'editore dichiara fin dall'inizio che *« i post qui presenti sono redatti con l'IA, »* mentre i meccanismi, i dati e il codice restano propri.

#fingerprinting#browser fingerprint#anti-bot

**Scrapfly Engineering** — équipe d'ingénierie de **Scrapfly** · fournisseur d'infrastructure de collecte web. Le texte annonce sa position d'intérêt sans détour : *« Scrapfly ships a browser that has to match a real one across hundreds of signals · and math is one of the harder ones. »* On lit donc un **attaquant du problème de détection** · qui documente le canal parce qu'il doit le neutraliser.

Trasformazione e Adozione Traduzione verificata automaticamente

IFTTD #351 - AWS Summit : Rester aux commandes des agents de code (avec Julien Lépine)

Episodio #351 del podcast francofono **If This Then Dev** (Bruno) con **Julien Lépine**, Chief Technology Officer di **AWS France** (13 anni in Amazon), registrato a margine dell'**AWS Summit Paris** (1° aprile 2026, ~10.000 partecipanti). Tesi centrale: nell'era agentica, scrivere codice diventa secondario, e il valore si sposta verso **la comprensione del contesto, i compromessi architetturali e la responsabilità umana**. Prova centrale: **la riprogettazione di Amazon Bedrock** — una piattaforma critica che gestisce migliaia di miliardi di richieste — realizzata da un team di **6 persone in 72 giorni** (contro una stima di 30 persone / 18 mesi), **codice interamente generato dall'IA**, senza vibe coding. AWS sta **standardizzando internamente su Kiro** (IDE + CLI, basato su Claude Sonnet/Opus) per ~30.000 sviluppatori (annunciato da Matt Garman a re:Invent). Filo conduttore: **mantenere il controllo** senza rivedere tutto — tramite **modellazione formale (TLA+)** e **Raisonnement automatisé** per dimostrare invarianti e delimitare gli agenti, **blameless post-mortem**, e il principio secondo cui "la responsabilità dell'azione di un agente ricade su chi lo opera". Emergenza dell'**AI DLC** (sprint → più **Bolt** giornalieri) e rischio di **sovraccarico cognitivo / burn-out**.

#AWS Summit Paris#Amazon Web Services#agenti di codice

**Julien Lépine** — Directeur de la technologie (CTO) d'Amazon Web Services France · 13+ ans chez Amazon ; ses équipes accompagnent les clients AWS sur le cloud · la data et l'IA. **Hôte** : Bruno (créateur et animateur du podcast *If This Then Dev*).