Questo template permette di inserire facilmente nella propria pagina utente un hash, che consente all'utente di dimostrare la proprietà dell'account in caso di compromissione tramite uno schema di commitment.
Parametri
[modifica wikitesto]Inserire l'hash come primo parametro posizionale, la funzione hash (se diversa da SHA-512) come secondo parametro facoltativo. Sono disponibili tre parametri opzionali per personalizzare lo stile del box.
|
{{Committed identity
|hash =
|funzione hash =
|sfondo =
|bordo =
|extra-style =
}}
Uso
[modifica wikitesto]Generare l'hash di una stringa o di un file. Una funzione hash robusta permette di risalire da una stringa o un file all'hash, ma non è ragionevolmente possibile fare il contrario (se non con un attacco bruteforce). Per questo motivo il file o la stringa che generano l'hash devono essere poi mantenuti rigorosamente segreti e comunicati solo a personale affidabile in caso di reale necessità. Si consiglia di utilizzare una funzione hash robusta: per tale motivo è sconsigliata la funzione MD5, e si raccomanda di usare una funzione SHA (possibilmente SHA-512 o superiore).
Si consiglia di usare caratteri e simboli casuali nella stringa, per evitare la vulnerabilità ad un attacco a dizionario, possibilmente includendo identità wikipediana o recapito mail nella stringa stessa, insieme ad altre eventuali informazioni aggiuntive (evitando di inserire informazioni che non si vuole in ogni caso rendere note a terzi: anche se l'hash sarà ragionevolmente indecifrabile, potrebbe essere necessario comunicare il contenuto della stringa ad un amministratore o a un altro utente con privilegi nel caso fosse necessario provare la propria identità). Se la stringa contiene caratteri casuali, è possibile generarne una nuova e sicura in caso di necessità conservando la parte di contatto e cambiando solo i caratteri casuali.
Esempi
[modifica wikitesto]Seguono alcuni esempi di stringhe ragionevolmente robuste (esempi puramente indicativi, come già detto la scelta delle informazioni personali da includere o non includere è assolutamente libera):
Buona identificabilità: email, recapito telefonico e una stringa di caratteri casuali:
joe@example.com 555-123-3456 fFfwq0DuDmMXj8hYTM3NTKeDhk
Identificabilità avanzata: proprio contatto dettagliato, contatto di un amico affidabile, caratteri casuali:
Joe Schmoe. joe@example.com. 555-123-3456. P.O. Box 1234, San Jose, CA. My best friend Bob's email: bob@example.com. fFfwq0DuDmMXj8hYTM3NTKeDhk
Paranoico: estremi di documenti, aggiunta di più contatti, link a profili social e link ad una propria immagine (certificata aggiungendo l'hash dell'immagine stessa) per un eventuale riconoscimento facciale in videochat:
Joe Schmoe. joe@example.com. 555-123-3456. P.O. Box 1234, San Jose, CA. My best friend Bob's contact info: bob@example.com, 555-234-5678 My wife's contact info: anne@example.com, 555-345-6789 Other accounts: http://www.youtube.com/user/joeschmoe http://flickr.com/photos/joeschmoe/ Driver's license number: 123456789, SSN: 123-45-6789, passport number: 9876H432L SHA-512 of joeschmoe.jpg: 747ec1836486a3dbe8a5d6805a2cc080fb8dc427d9535579ecb04c750d7a4a515641fd0411ed6bb97242a3e63ab9cbd4d6d66c27611ff5f98aa84497bf64b8a8 NSffKWSHaGbcTm3WGtE8hyUQ
Come generare l'hash
[modifica wikitesto]Assicurarsi di conservare una copia esatta della stringa che genera l'hash (attenzione: maiuscole, spazi, rientri a capo e caratteri invisibili sono significativi), avendo cura di non scegliere una stringa banale o indovinabile e comunque diversa dalla propria password (l'hash potrebbe rendersi utile proprio nel caso l'utenza sia compromessa, e quindi la password nota all'aggressore). Si raccomanda l'uso di algoritmi di hash robusti, possibilmente SHA-512 o superiore, evitando MD5 (vulnerabile) e SHA-1 (la cui sicurezza non è garantita sul lungo periodo, visti i progressi della crittanalisi).
Gli utenti di sistemi Unix-like possono ricorrere ai comandi sha224sum
, sha256sum
, sha384sum
e sha512sum
, forniti da GNU Core Utilities. Un comando di esempio può essere il seguente:
echo -n 'Inserire qui la propria stringa' | sha512sum
Gli utenti Windows possono usare alternative di terze parti (possibilmente programmi eseguiti client side, per motivi di sicurezza; alcune possibilità sono SHA512 Encrypt, jsSHA e HashCalc 2.01) oppure il seguente comando PowerShell:
[bitconverter]::tostring((new-object security.cryptography.sha512managed).computehash([text.encoding]::utf8.getbytes("Inserire qui la propria stringa"))).replace("-", "")
Per verificare il corretto funzionamento della procedura, si può testare eseguendo l'hashing della stringa 'My name is Joe Schmoe, and I can be contacted at: joe@example.com' (senza gli apici), il cui hash SHA-512 è: