Non va bene un cazzo
"Beh, ma ormai a L'Aquila a parte il centro storico va tutto bene, no? Cioè, ti sei salvato, stai ricostruendo casa, chi non lo può fare ha avuto una nuova casa... di che vi lamentate?"
Già, di che ci lamentiamo? Permettetemi una piccola digressione.
C'era una piccola stradina, Via del Cembalo di Colantoni, una strada ripida e stretta su cui si affacciava la porta di una scuola di musica/sala prove. La "mia" sala prove, dove ho passato delle giornate e delle serate fantastiche (eccezion fatta per gli urli quando non studiavo le parti). La sera, dopo le prove con la big band, ognuno se ne andava per i cazzi propri e inevitabilmente dovevo fare il tragitto da quella viuzza fino a Piazza del Teatro (sono abitudinario, lasciavo sempre la macchina lì), passando per Piazza Duomo e il Corso: a volte c'era gente, a volte no, ma fare quel breve tratto a piedi sotto le luci giallastre delle lampade al sodio era meraviglioso.
Freddo, caldo, nebbia, pioggia... non me ne poteva fregare di meno: girare per L'Aquila sotto quella luce giallastra per me era un'ispirazione. E ora, dopo quel 6 aprile 2009, non girerò più sotto quelle luci, non passerò più per molti di quei luoghi e i luoghi in cui passerò non saranno mai più gli stessi.
Certo, siamo vivi, abbiamo dove alloggiare (non tutti) e stiamo ricostruendo le case (pochi, troppo pochi). Ma tutto questo non è vivere, questo è il minimo indispensabile per poter sopravvivere. I posti familiari, i vicoli, le piazze... per voi che vivete normalmente sono cose scontate, quasi "superficiali". Per noi che li abbiamo persi no.
Va tutto bene a L'Aquila, dite voi? No, non va bene un cazzo.
Memoria ad personam
Leggo con un certo disappunto che nel maxiemendamento al Milleproroghe è stato inserito un comma che istituisce la "Giornata della memoria per le vittime del terremoto" per il 6 aprile. Come mai se ne sono ricordati solo ora?
Ve lo dico io: perché dovevano creare un legittimo impedimento a comparire dinanzi ai giudici per Silvio Berlusconi, stavolta sulla pelle dei nostri amici e parenti che non ci sono più.
Se c'è qualche pidiellino all'ascolto, voglio sapere che ne pensa - soprattutto considerando che è più di un anno che il suddetto impedito non si fa vedere a L'Aquila se non dentro la blindatissima caserma della GdF e che non lo vogliamo alle commemorazioni dei morti, visto che ha spergiurato sulle loro bare.
PS: i commenti sono moderati ora non più, sfogatevi pure (se ne avete coraggio).
QuickLaTeX
Lo so, le formule sono allineate alla cazzo, appena avrò dieci minuti di tempo le sistemerò. Risolto (era un bug del plugin).
Tagline di un certo livello
A parte le rotture di balle, cosa si guadagna ad essere IRC Operator su Azzurra IRC Network? Ma le tagline, ovvio!
Siccome mi sento buono (e per far rosicare di meno una certa persona che si whoisa ogni 10 minuti per vedere "is an IRC Operator" su un'altra rete semideserta - pseudoclient di BotServ a parte, ovvio), ve ne faccio leggere una selezione completamente ad cazzum. Ovviamente molti nick sono censurati per ovvi motivi.
Enjoy!
Computer e donne:
<@anonimo1> i computer per me sono come le femmine
<@anonimo1> mi piacciono tutte
<@anonimo2> anonimo1 : a me invece, come per le donne, mi piaciono solo quelle aperte
<@anonimo2> o che si lasciano aprire
Vestiti di carnevale:
<@Alex1> son stato a una festa di carnevale
<@Alex1> e ovviamente ho vinto il premio per il costume più originale
<@Alex1> mi son vestito da merda
Libidine:
*** Notice -- Received KILL message for Troietta!~bella@XXX.XXX.XXX.XXX. From Gastaman Path: penguin!staff.azzurra.org!Gastaman (Godi senza spammare, grazie.)
Photoschiopp:
<@anonimo1> Ho scoperto come spogliare le ragazze con photoshop
<anonimo2> anonimo1, poi ti insegno come spogliare le ragazze dal vero
Allucinazioni:
<@Raynk> [22:20:00] <@samy90> Sonic PISELLLONNNEEEEEEEEEEE ci seeeeii?
<@Shaka> poverina, ha già le allucinazioni a quell'età
Dimostrazioni rigorose:
<@IppatsuMan> dfa: argomentazione non valida: il cervello degli uomini è perennemente inibito dagli ormoni
<@IppatsuMan> dimostrazione: (.)(.)
<OverMe> POPPEEE
<@IppatsuMan> QED
Registrazione disabilitata
FYI, ho disabilitato la registrazione dei nuovi utenti a causa di alcuni spammer MOLTO persistenti.
A quanto pare, reCAPTCHA non è sufficiente per tenerli alla larga...
Epic math fail
Prendiamo l'esempio canonico di una firma ECDSA:
$$ \begin{aligned} r &= (k G)_x&\pmod n \\ s &= k^{-1}(z + r d_A)&\pmod n \end{aligned} $$
Un avversario conosce tutti i parametri, ad eccezione della chiave privata \( d_A \) e del parametro random \( k \).
In teoria, ogni firma è un sistema di due equazioni con due incognite, ma la prima equazione non è per niente facile da risolvere, quindi il sistema è sicuro - a patto che il parametro random non sia prevedibile o derivabile in alcun modo.
Mettiamo ora il caso di avere davanti due firme ECDSA \( (r_1, s_1) \) e \( (r_2, s_2) \) generate con la stessa chiave privata (a noi ignota) tali che \( r_1 = r_2 \). Questo significa che:
$$ \begin{aligned} (k_1 G)_x &\equiv (k_2 G)_x &\pod n \\ k_1 &\equiv k_2 &\pod n \end{aligned} $$
Ouch: il parametro random non è né random né imprevedibile, bensì è identico per entrambe le firme. Non sappiamo ancora il suo valore, ma possiamo tranquillamente calcolarlo attaccando \( s_1 \) e \( s_2 \) (ricordate: la parte computazionalmente ardua del problema è invertire la moltiplicazione scalare tra il parametro random e il punto generatore!):
$$ \begin{aligned} s_1 - s_2 &= k^{-1}(z_1 + r d_A) - k^{-1}(z_2 + r d_A) &\pmod n \\ s_1 - s_2 &= k^{-1}(z_1 - z_2) &\pmod n \\ k &= (s_1 - s_2)^{-1}(z_1 - z_2) &\pmod n \end{aligned} $$
Uh-oh... improvvisamente l'incognita è una sola: \( d_A \), ovvero la chiave privata usata per generare la firma.
A questo punto, non ci resta che inserire il valore appena calcolato in una delle due equazioni relative a \( s \) e risolvendola rispetto a \( d_A \):
$$ \begin{aligned} s_i &= k^{-1}(z_i + r d_A) &\pmod n \\ s_i k &= z_i + r d_A &\pmod n \\ s_i k - z_i &= r d_A &\pmod n \\ d_A &= r^{-1}(s_i k - z_i) &\pmod n \\ d_A &= (r(s_1 - s_2))^{-1}(z_1 s_2 - z_2 s_1) &\pmod n \end{aligned} $$
Lo so, state pensando: "belle seghe mentali, nessuno è così stupido da usare due volte lo stesso parametro random".
In effetti è vero, nessuno l'ha usato solo due volte, ma c'è chi l'ha usato per ogni singola firma generata: $REDACTED
EDIT: ho rimosso il nome e il link di chi ha fatto la pirlata in questione visto che tira aria di citazioni in giudizio. E' stato presentato al 27C3 e riguarda una console, Google è vostro amico.
Giochini in Erlang
Esempio rubato spudoratamente da OpenDLM:
-module(dig_test).
-export([run_test/0]).
-export([init/0]).
-spec(run_test() -> pid()).
run_test() ->
spawn(?MODULE, init, []).
-spec(init() -> none()).
init() ->
TWFG = digraph:new(),
%% Simulate the same TWFG present in OpenDLM specs
C1 = add_client(TWFG, c1),
R1 = add_resource(TWFG, r1),
C2 = add_client(TWFG, c2),
R2 = add_resource(TWFG, r2),
R3 = add_resource(TWFG, r3),
C3 = add_client(TWFG, c3),
digraph:add_edge(TWFG, C1, R1),
digraph:add_edge(TWFG, R1, C2),
digraph:add_edge(TWFG, C2, R2),
digraph:add_edge(TWFG, C2, R3),
digraph:add_edge(TWFG, R2, C3),
digraph:add_edge(TWFG, R3, C1),
detect_deadlock_for(TWFG, R1),
digraph:delete(TWFG),
exit(normal).
-spec(add_client(digraph(), atom()) -> digraph:vertex()).
add_client(WaitForGraph, ClientName) ->
add_vertex(WaitForGraph, {client, ClientName}).
-spec(add_resource(digraph(), atom()) -> digraph:vertex()).
add_resource(WaitForGraph, ResourceName) ->
add_vertex(WaitForGraph, {resource, ResourceName}).
-spec(add_vertex(digraph(), term()) -> digraph:vertex()).
add_vertex(WaitForGraph, Label) ->
Vertex = digraph:add_vertex(WaitForGraph),
digraph:add_vertex(WaitForGraph, Vertex, Label).
-spec(detect_deadlock_for(digraph(), digraph:vertex()) -> ok).
detect_deadlock_for(WaitForGraph, Vertex) ->
case digraph:get_cycle(WaitForGraph, Vertex) of
false ->
io:format("No deadlocks detected for ~p~n", [vertex_name(WaitForGraph, Vertex)]);
VList ->
io:format("Deadlock detected between ~p~n", [vertices_names(WaitForGraph, VList)])
end.
-spec(vertex_name(digraph(), digraph:vertex()) -> term()).
vertex_name(WaitForGraph, Vertex) ->
{_, Name} = digraph:vertex(WaitForGraph, Vertex),
Name.
-spec(vertices_names(digraph(), nil() | [digraph:vertex()]) -> nil() | [term()]).
vertices_names(WaitForGraph, VList) ->
vertices_names(WaitForGraph, VList, []).
-spec(vertices_names(digraph(), nil() | [digraph:vertex()], nil() | [term()]) -> nil() | [term()]).
vertices_names(_WaitForGraph, [], Acc) ->
lists:reverse(Acc);
vertices_names(WaitForGraph, [Vertex|Tail], Acc) ->
vertices_names(WaitForGraph, Tail, [vertex_name(WaitForGraph, Vertex)|Acc]).
(se vi state chiedendo perché TWFG non varia, la risposta è che digraph usa ETS per mantenere lo stato del grafo).
Yet another switch
Stavolta da lighttpd a nginx. Appena ho 5 minuti di tempo posto un po' di dettagli.
Trova le differenze
Proposto ed approvato all'unanimità:
La Camera,
premesso che:
- in attuazione del decreto-legge n. 39 del 2009, convertito, con modificazioni, dalla legge n. 77 del 2009, nel mese di aprile 2009 sono stati emanati vari provvedimenti che hanno prima sospeso e poi prorogato sino al 30 giugno 2010 i pagamenti di tasse e contributi per le popolazioni colpite dal sisma del 6 aprile 2009;
- nel mese di luglio 2010 dopo due consistenti manifestazioni di cittadini avvenute a L'Aquila e a Roma e dopo numerose proteste unitarie promosse dai sindaci dei comuni colpiti dal sisma, dalle forze imprenditoriali, sociali e produttive del territorio è stato prorogato al 1o gennaio 2011 l'avvio della restituzione di quanto sospeso fino al 30 giugno 2010, lasciando invariata la data del 30 giugno per la fine della sospensione della tasse e dei contributi correnti escludendo solo i titolari da reddito di impresa o di lavoro autonomo con volume di affari non superiore ai 200.000 euro;
- il 29 luglio 2010 il Governo ha accolto, senza alcuna condizione, l'ordine del giorno 9/3638/229 che lo impegnava a predisporre le misure necessarie per prevedere nei confronti dei cittadini colpiti dal sisma del 6 Aprile 2009 lo stesso trattamento riservato ai cittadini delle Marche, dell'Umbria e del Molise colpiti dal terremoto o dei cittadini di Alessandria colpiti dall'alluvione;
- dal 1o gennaio 2011 i cittadini colpiti dal sisma dovranno cominciare a restituire le somme sospese;
- le condizioni previste per la restituzione di quanto sospeso ai cittadini aquilani colpiti dal sisma sono completamente diverse da quanto previsto per le popolazioni colpite da altre calamità naturali poiché nessuno ha dovuto restituire il 100 per cento di quanto sospeso dopo appena 20 mesi,
impegna il Governo
a concretizzare, nel primo provvedimento utile, quanto si è impegnato a fare accogliendo l'ordine del giorno 9/3638/229 del 29 luglio 2010 prevedendo per i cittadini colpiti dal sisma del 6 aprile 2009 lo stesso trattamento riservato ai cittadini delle Marche, dell'Umbria e del Molise colpiti dal terremoto o dei cittadini di Alessandria colpiti dall'alluvione, cominciando col rimandare l'avvio della restituzione di quanto sospeso dal 1o gennaio 2011 al 1o gennaio 2012.
9/3778/105. Lolli, Toto, Di Stanislao, Mantini, Catone, D'Incecco, Ginoble, Tenaglia, Livia Turco.
Accolto dal Governo (e accettato da Lolli):
La Camera,
premesso che:
- in attuazione del decreto-legge n. 39 del 2009, convertito, con modificazioni, dalla legge n. 77 del 2009, nel mese di aprile 2009 sono stati emanati vari provvedimenti che hanno prima sospeso e poi prorogato sino al 30 giugno 2010 i pagamenti di tasse e contributi per le popolazioni colpite dal sisma del 6 aprile 2009;
- nel mese di luglio 2010 dopo due consistenti manifestazioni di cittadini avvenute a L'Aquila e a Roma e dopo numerose proteste unitarie promosse dai sindaci dei comuni colpiti dal sisma, dalle forze imprenditoriali, sociali e produttive del territorio è stato prorogato al 1o gennaio 2011 l'avvio della restituzione di quanto sospeso fino al 30 giugno 2010, lasciando invariata la data del 30 giugno per la fine della sospensione della tasse e dei contributi correnti escludendo solo i titolari da reddito di impresa o di lavoro autonomo con volume di affari non superiore ai 200.000 euro;
- il 29 luglio 2010 il Governo ha accolto, senza alcuna condizione, l'ordine del giorno 9/3638/229 che lo impegnava a predisporre le misure necessarie per prevedere nei confronti dei cittadini colpiti dal sisma del 6 Aprile 2009 lo stesso trattamento riservato ai cittadini delle Marche, dell'Umbria e del Molise colpiti dal terremoto o dei cittadini di Alessandria colpiti dall'alluvione;
- dal 1o gennaio 2011 i cittadini colpiti dal sisma dovranno cominciare a restituire le somme sospese;
- le condizioni previste per la restituzione di quanto sospeso ai cittadini aquilani colpiti dal sisma sono completamente diverse da quanto previsto per le popolazioni colpite da altre calamità naturali poiché nessuno ha dovuto restituire il 100 per cento di quanto sospeso dopo appena 20 mesi,
impegna il Governo
a valutare l'opportunità di concretizzare, nel primo provvedimento utile, quanto si è impegnato a fare accogliendo l'ordine del giorno 9/3638/229 del 29 luglio 2010 prevedendo per i cittadini colpiti dal sisma del 6 aprile 2009 lo stesso trattamento riservato ai cittadini delle Marche, dell'Umbria e del Molise colpiti dal terremoto o dei cittadini di Alessandria colpiti dall'alluvione, cominciando col rimandare l'avvio della restituzione di quanto sospeso dal 1o gennaio 2011 al 30 giugno 2011.
9/3778/105. Lolli, Toto, Di Stanislao, Mantini, Catone, D'Incecco, Ginoble, Tenaglia, Livia Turco.
(fonti: Resoconto stenografico della seduta del 19 novembre 2010 della Camera dei Deputati e Ordini del Giorno dell'Assemblea del 19 novembre 2010)
Retrosecurity
A quanto pare, c'è in giro una fortissima "ansia da prestazione" per colpa di Firesheep, un'estensione per Firefox che permetterebbe di "rubare" le credenziali d'accesso di chiunque si trovi sul vostro stesso segmento di rete non switchata (ad esempio, una rete wireless con chiavi pre-shared o un hotspot privo di autenticazione).
Tradotto: dopo 15 anni di (Open)SSH, SSL/TLS e VPN varie ci si rende conto che TCP/IP non dà garanzie di riservatezza solo perché esce l'ennesimo sniffer, però dedicato al cookie stealing.
Benvenuti nel 1995, forse tra 15 anni avrete smesso di dire che la crittografia serve solo a chi ha qualcosa da nascondere.
(PS: sarebbe interessante sviluppare una variante di Firesheep che appenda una ceppa ascii ad ogni post su fB infilandola nello stream TCP/IP della vittima tramite TCP session hijacking)
(PPS: una caramella in regalo a chi è in grado di ricordarsi il nome del più famoso tool di TCP session hijacking dell'epoca)
IRC, fiducia e OpenSource
Tanto tempo fa, quando si parlava di Azzurra andava di moda dire "quelli loggano tutto". Ovviamente, per una rete (all'epoca) con 10000 utenti la cosa era pressoché impossibile, ma il mito resisteva. Anzi, uscì rafforzato quando qualche anno dopo uno degli autori dell'ircd (il buon Marcello Barnaba) parlò ad un suo amico dello spamfilter e del "famigerato" snow.azzurra.org.
Ammetto di essermi preoccupato un po' anche io, anche perché la descrizione che ne faceva Marcello era un po' allarmistica. Di lì a poco, però, qualcuno (e sia chiaro: non fu Marcello - no, non dirò manco sotto tortura chi è stato :-P ) pubblicò sull'ormai defunto sorciazzurra.altervista.org un bel tgz con tutto il repository SVN di Azzurra.
Tralasciando il (ridicolo) tentativo di metterci una pezza pubblicando sorgenti ufficiali ma non aggiornati di ircd e services, il leak mi permise di verificare in prima persona cosa era 'sto benedetto spamfilter, come funzionava e se loggava qualcosa. (e incidentalmente, anche di verificare che l'algoritmo di cloak degli host è fatto come si deve e non usa porcate facilmente attaccabili con Google Code Search, un po' di aritmetica modulo 2 e un pizzico di bruteforce, ma questa è un'altra storia)
Recentemente, un gruppo di utenti storici di Azzurra ha deciso di "mettersi in proprio", sviluppare da zero un ircd integrato coi loro siti e dare vita ad una micro rete IRC monoserver. Tralasciando l'aspetto tecnico del risultato (hint: RPL_ISUPPORT non è qualcosa che potete omettere senza creare problemi ai client), la cosa che mi ha colpito è la scelta di tenere gelosamente riservato il codice dell'ircd. Per carità, possono esserci miliardi di motivi (magari è pieno di password hardcoded per le varie backend o l'algoritmo di cloak degli host funziona tramite una buona dose di security through obscurity, chi lo sa), ma la cosa comunque non ispira fiducia.
Tant'è che già ha cominciato a girare il famigerato "quelli loggano tutto" :-)
Pretendo spiegazioni
Fino a 20 minuti fa l'adsl funzionava regolarmente, portante a circa 5 Mbps downstream. Di botto la connessione si resetta, la portante non syncha a più di 1.8 Mbps e ho questi valori di rumore e attenuazione:
relative capacity occupation: 99%
noise margin downstream: 12.0 db
output power upstream: 12.0 dbm
attenuation downstream: 40.0 db
A questo punto, PRETENDO delle spiegazioni da Telecom.
A volte ritornano
Avevo solennemente annunciato la morte per vecchiaia del fork di Bahamut di Azzurra IRC Network e dei relativi Services, ma a quanto pare non avevo tenuto conto di due noiosissimi metodi per rompere i coglioni via IPv6.
E così, mi tocca fare gli straordinari (a onor del vero, la parte più rognosa se l'è sbrogliata Sonic :P).
Sadismo
Sto leggendo con un certo piacere sadico i post delle persone che s'incazzano per il recente botto di uno degli storage di Tophost.
Perché piacere sadico? Perché il 99.9999% delle lamentele proviene da persone che non hanno MAI effettuato un backup del proprio sito e il restante 0.0001% da persone che pretendono di ottenere con €8.99+IVA all'anno anche un backup giornaliero. Magari su Tivoli Storage Manager¹, già che ci siamo.
¹ Seeweb fa pagare un backup bisettimanale su TSM €475+IVA all'anno per una singola macchina. Non so quante macchine abbia Tophost per i clienti, ma ho come la sensazione che i costi complessivi siano proibitivi rispetto ai loro prezzi (senza contare che il ripristino di un singolo sito da un backup su TSM è un po', come dire... complesso).




