venerdì 29 aprile 2011

La password a cipolla

Stamattina, preso dall'euforia del caso Sony, ho deciso che era il caso di anticipare di qualche giorno il consueto giro trimestrale di cambio password. Mi sono quindi seriamente posto il problema di come crearne una sicura. Premesso che l'ingegneria sociale... brute force... bla bla bla mi si sono presentati alcuni problemi
  • la mia ridotta fantasia
  • la volontà di non usare la stessa password
  • la mia ridotta memoria (non è vero, ma i vuoti bisogna sempre considerarli)
Ci sono molti modi per generare una password inattaccabile... "cala cala merlino (cit.)" e ricostruibile a chi conosce il metodo (quindi anche un eventuale malintenzionato che scopre il metodo), ma successivamente mostrerò solo quello che attualmente sto utilizzando io.

Prendete
  • una struttura base
  • una manciata di bash (facoltativa)
  • un po' di pazienza
Partiamo spiegando cosa è, nella mia idea, la struttura di base. Lavorando in PHP, utilizzo quotidianamente le sue variabili predefinite (ed es $_POST o $_SESSION) quindi ho pensato di utilizzare questo stesso metodo per contenere le password.

Perché?

Perché aggiunge un caos ordinato, mnemonico e incrementa la lunghezza complessiva della password.

Consideriamo quindi di utilizzare come struttura base un bel

$_PWD[]

Ok, non è troppo lunga ed è abbastanza facile da ricordare, ma soprattutto include al suo interno un paio di caratteri speciali.

Ora è il momento di mescolare la manciata di bash. Ok ho la struttura di base e potrei inserire la mia password che, per semplicità di utilizzo, facciamo coincidere con il nome del sito e il mese in cui sto cambiando la password, ad esempio

$_PWD[twitter04]

ma nel caso di una "fuga di informazioni" sarebbe troppo facile risalire a tutte le altre (presupponendo un cambio contemporaneo delle password ovviamente).  Quello che io ho pensato di fare è un ciclo di md5, condito con il mese, tante volte quante le lettere del sito in questione e prendere i 4 caratteri a partire dalla posizione corrispondente al mese...

eh?

#! /bin/bash
lunghezzasito=${#1}
i=0
mese=`date +%m`
password=`echo $1$mese`
while [ "$i" -lt "$lunghezzasito" ]
do
   pass=`echo $password$mese | md5sum`
   let i++
done
echo ${password:$mese:4}

Chiaro, no? Tornando all'esempio di twitter, supponendo di aver salvato il file e dato un chmod +x otteniamo questo

overflowsith@icarus:~$ ./password twitter
19a8

di conseguenza la nostra password completa diventa:

$_PWD[19a8]

Ah, un po' di pazienza dicevo. Sì, quella serviva per arrivare fino a qui e leggere questo delirio :)

martedì 12 ottobre 2010

Considerazioni molto superficiali su Ubuntu 10.10

Sottotitolo: superficiali quanto inutili. Disclaimer: come si può intuire dal titolo parlerò solo del livello estetico e le percentuali sono calcolate con lo stesso metodo con qui il PresDelCons calcola il tasso di approvazione.

Diciamo subito che l'ho provato per un giorno con l'utilizzo da utonto (un po' di internet, un po' di streaming, un po' di chat) e non ho approfondito l'utilizzo escluso il cambiare subito metà delle impostazioni di default.

Non è una novità, ma è sempre più marcata l'apparente inutilità di un terminale che per quanto possa far storcere il naso al 91% degli utenti linux può soltanto far sorridere il resto del mondo. Il restante 91% della popolazione probabilmente chiederebbe cosa è un terminale, ma torniamo seri. L'impatto è molto solido, coerente, i menu sono chiari e in pochi click si può cominciare ad utilizzare il sistema fresco di installazione. Tutto funziona (ma forse sono solo stato fortunato). Le cose che si collegano a Internet sono nel menu Applicazioni > Internet quelle per l'ufficio Applicazioni > Ufficio... fantastico (nulla di nuovo comunque eh ma per uno che è la prima volta che vede gnome ehm volevo dire ubuntu è tanta roba...)

L'Ubuntu Software Center è ben fatto, la suddivisione in categorie funziona così come pure la ricerca, ma data la grande disponibilità di alternative non è semplice districarsi nelle numerose proposte.

"La bellezza è una feature" di stampo "Jobsiano" sta prendendo forma non solo come idea, ma anche come scelte stilistiche, ma per introdurre il paragrafetto totto è ottimo dato che l'85% (cifra generata automaticamente) degli utenti a***e lo sono perché il m*c è bello.


Io sto con Mark Shuttleworth e ammiro il suo progetto. So benissimo che è un'azienda e che il principale obiettivo è fare i soldi, ma sembra avere una chiara visione di dove vuole portare la distro linux più usabile da chiunque.


In conclusione

Consiglio di provare questa nuova release a chiunque abbia un minimo di curiosità.

Sono legato nostalgicamente a Ubuntu come lo si può essere alla prima ragazza delle medie, sì, quella che poi hai lasciato ed è diventata molto attraente col tempo. Forse ti penti di non averla seguita, ma poi guardi alle tue necessità e capisci che non riusciresti a gestirla.

Mi rendo conto di non aver detto nulla di nuovo, ma era più per dire.

Io intanto la disinstallo

martedì 19 gennaio 2010

Oggi sbattevo la testa su javascript

Oggi ho sbattuto un po' la testa su javascript per un problema stupido, ma dato che le cose stupide sono quelle riutilizzate più spesso... Comunque, non escludo la presenza di funzioni "ufficiali", ma visto che è soddisfacente sbattere la testa ho scritto queste due funzioncine

String.prototype.nl2br = function() {
var breakTag = '<br />';
return (this + '').replace(/([^>]?)\n/g, '$1'+ breakTag +'\n');
}

String.prototype.br2nl = function() {
var breakTag = '\n';
return (this + '').replace(/([^>]?)\n/g, '$1'+ breakTag +'\n');
}


la parte interessante è il poterle poi richiamare in questo modo
myString.nl2br();

myString.br2nl();

lunedì 30 novembre 2009

Un po' di twitter

Capita spesso (per lo meno a me) di non aver voglia di aprire il browser per comunicare alla mia cerchia di amici quello che sto facendo in quel momento, le API di Twitter mi sono quindi giunte in aiuto.
curl -u "utente:password" -d status="twittare da shell, priceless :D" / http://twitter.com/statuses/update.xml

Io per comodità mi sono scritto un piccolo script
#!/bin/bash
curl -u "utente" -d status="$1" http://twitter.com/statuses/update.xml

$ sh tweet "twittare da shell, priceless :D"

verrà proposto l'inserimento della password e les jeux sont faits

martedì 10 novembre 2009

Chi è connesso alla LAN

Usando nbtscan si può verificare il nome del computer corrispondente ad un IP.

Per ottenere le informazioni di un IP specifico
nbtscan 192.168.80.123

Per fare lo scan di tutti i pc connessi alla LAN
nbtscan 192.168.80.0/24

Facendo questo si vede CHI è connesso alla LAN e di conseguenza può essere molto utile per scoprire eventuali visitatori estranei connessi alla WLAN.

Per avere più dettagli su uno specifico IP
nbtscan -vh 192.168.80.123

venerdì 6 novembre 2009

Introduzione

Come ogni buon libro che si rispetti potrei cominciare con una dedica e una citazione. La dedica va alla Microsoft, che mi consente di adorare sempre di più, ogni giorno che passa, GNU/Linux in tutte le sue forme. La citazione scelta per cominciare questa nuova avventura la prenderò da un film:

"Prima o poi capirai, come ho fatto anch'io, che una cosa è conoscere il sentiero giusto, un'altra è imboccarlo."

Inutile quindi negare che l'obiettivo sarà quello di portare avanti uno zibaldone di installazioni e configurazioni di personale utilità, con la speranza che qualche altro possa trovarle utili. Non esiste arroganza, nessuno si reputa un guru. Solo consigli e riassunti per chi, come me, sta muovendo i primi, seri passi.