Broken links

To content | To menu | To search

Monday 6 October 2014

Howto come rinnovare la chiave GPG

Quando si crea una chiave Gpg si viene istruiti di come sia buona cosa creare un certificato di revoca da conservare in luogo sicuro da usare nel caso la chiave venga compromessa e naturalmente di indicare una data di scadenza della chiave, in modo che se la chiave venisse compromessa e non si fosse in grado di revocarla, che almeno scada naturalmente. Questo non significa che alla scadenza della chiave si debba crearne una nuova, infatti si perderebbe in questo modo il web of trust venutosi a creare colle firme. Il procedimento per aggiornare una chiave prima della scadenza è il seguente:

Editare la chiave, aggiornare la data di scadenza, salvare e uscire.

Importante: aggiornare anche la subkey (flaggata E per encoding).

ad esempio:

  gpg --edit-key <key-ID>

  expire
  1y
  passphrase
  key 1
  expire
  1y
  passphrase
  save
  quit

Verificare che la chiave sia stata aggiornata con  gpg --list-ket <Key-ID>

E' il caso di firmare nuovamente la chiave nel caso siano sopraggiunti dei cambiamenti come l'aggiunta di un nuovo indiirizzo email e infine aggiornare il keyserver. Se la chiave non viene aggiornata sul keyserver, rimarrà tale solo in locale e ai miei corrispondenti risulterà scaduta.

  gpg -v --keyserver pgp.mit.edu --send-key <Key-ID>


Sunday 21 September 2014

Watch: questo non è un orologio

Apple ha cominciato a pubblicizzare sul suo sito Watch, una device a forma di orologio per cui è prevista l'uscita nel 2015. Considerando le folle di sibariti che si sono appena accalcate per comperare l'ultimo telefono, pure che lo stesso viene ceduto a una cifra considerevole, penso che valga la pena di portarsi avanti e fare due considerazioni anticipate sull'arrivo dell'oggetto, perché di innovazione tecnologica con ricadute sociali si tratta.

Dalla pagina di presentazione di Apple Watch, alla voce specifiche tecniche: " [...] uno speciale sensore usa infrarossi e luci LED e fotodiodi per rilevare il battito cardiaco, insieme all'accellerometro, al GPS e al Wi-Fi del tuo iPhone, per misurare tutti i tipi di movimento fisici, dal semplice stare in piedi all'allenamento intensivo. Questo permette ad Apple Watch di avere un quadro comprensivo della tua attività giornaliera [...] "

Non è un orologio, ma è un computer appoggiato al corpo, per ascoltarlo e monitorarlo. il nuovo iWatch si presenta con la caduta della collaudata formula della "i" davanti, in uso da Apple dall'iMac in poi e mira a conquistare il mercato della salute. È l'estensione di una device, lo smartphone iPhone, col quale dialoga costantemente tramite bluetooth. È in grado di dare informazioni sull'ora, il tempo e sui messaggi ricevuti. Quello che lo rende innovativo è la capacità di misurare i battiti cardiaci. Viene presentato come uno strumento per atleti dilettanti, i quali potranno misurare le loro prestazioni mettendo a confronto il tempo utilizzato per percorrere una data distanza con lo sforzo consumato, potranno così archiviare i loro dati e metterli a confronto con quelli degli amici.

Non è l'unica funzionalità possibile, uno strumento in grado ascoltare il polso permette di presentare a un medico uno storico del proprio cuore, non limitando l'analisi alla valutazione momentanea del medico e permettendo delle diagnosi più accurate. Qualunque persona abbia o abbia avuto problemi di cuore avrà un naturale beneficio dalla capacità di monitorarsi.

Il Watch è in grado di sapere se una persona è viva o morta, si accorge delle variazioni dei battiti cardiaci e in questo senso si propone a come strumento di monitoraggio di anziani e persone sole, superando il salvavita Beghelli.

Il battito cardiaco è legato a variazioni dell'umore ed emozioni, unendo queste informazioni al luogo, il tempo e come precisato da Apple stessa, dalla conoscenza del tipo di attività in corso, è ipotizzabile che si crei lo spazio per nuovi sistemi di profilazione degli utenti. Non ci sarà più bisogno di chiedergli se hanno gradito il film che hanno visto al cinema, se sono spaventati dall'aumento della polizza vita, se sono ancora innamorati, se si preoccupano guardando il Tg.

Essendo in grado di sapere e di comunicare lo stato delle funzioni vitali della persona che lo indossa, nonché il luogo dove si trova, rappresenterà anche uno strumento utile per il controllo sociale, ad esempio ad uso di un genitore apprensivo che desidera sapere che i figli non stanno correndo pericoli e sono raggiungibili mentre giocano lontani dalla sua vista. Un doppio tap sull'iconcina del contatto procurerà alla persona una vibrazione del polso. Per dire: ti penso, i like you, tutto ok? Torna a casa in fretta che ho buttato la pasta.

Uno strumento formidabile per indagini di mercato, indispensabile per la salute delle persone a rischio, utilissimo per chi compie attività fisica, capace di controllare e monitorare. Parliamo dunque di atleti, malati, anziani, persone sole e bambini. Manca qualcuno? Ci sono tutti presupposti perché l'ingresso di Apple nella biometrica rappresenti un successo. I competitori seguiranno appena le condizioni bio-legali lo permetteranno, Google e Facebook sanno già troppe cose sui loro clienti per permettersi di entrare adesso nella biometrica, il compito di aprire la strada è delegato ad Apple l'innovatrice e al suo raffinatissimo pubblico della classe egemone.

Uno strumento di misurazione corporea perennemente collegato in rete è qualcosa che George Orwell non poteva immaginare nella sua implementazione pratica, ma sicuramente non poteva ipotizzare la perversione di saperlo distribuito a carico economico dell'individuo che viene monitorato. Il bracciale elettronico infatti non è una punizione per i devianti dalla norma, ma un oggetto molto costoso, che rappresenta lo status di appartenenza alla élite sociale. Bisogna avere il contante per dimostrare di appartenervi a questa classe, non è gratis.

È possibile che in futuro le assicurazioni sulla vita saranno disponibili a fare sconti per chi mette a disposizione i suoi dati corporei aggregati, gli incontri sentimentali potranno essere preceduti da uno scambio di dati a certezza della buona salute, assenza di MST e bontà dei geni trasmettibili. I dati sono una merce di scambio.

Un oggetto salva vita. Una vita da subalterni. Le positività sono notevoli e l'utilità sociale anche, dunque gli oggetti che interagiscono col corpo si diffonderanno ampliando la loro area d'azione. Potranno ad esempio sempre dal polso monitorare il livello di acidità del sudore ed estendere la possibilità di diagnosi.

L'autorità, pur cercando modi non punitivi per prevenire problemi, sarà sicuramente interessata nella possibilità di conoscere lo stato emotivo e fisico, oltre al luogo dove si trova una persona. Ecco che potremmo avere l'automobile che non parte se non ha l'ok dell'oggetto (potrebbe essere un Watch?) che garantisce che l'autista è sobrio e in buona salute. Sarà necessario togliersi l'orologio (disconnettersi dal sistema) per assumere droghe senza prescrizione, ma bisognerà attendere di essere nuovamente sobri prima di rimetterlo. Plausibilmente esisterà una funzione di disattivazione che solo chi potrà permettersi di aumentare il bonus/malus della sua vita utilizzerà, in quanto disconnettersi dal sistema sarà rischioso e costoso.

Il passo successivo potrebbe essere lasciare che l'oggetto senza limitarsi ad ascoltarlo, comunichi col corpo, come una permanent flebo, ad esempio fornendo l'insulina ad un diabetico quando la necessita, senza bisogno del suo intervento. La stessa cosa potrà essere fatta per gli ansiolitici e i tranquillanti, ma in questo futuribile caso il nome dell'oggetto sarà iSoma l'anti-anomico.

Wednesday 12 March 2014

Fuga da Google

Prima di tutto: Non è facile.
Se quello di cui si ha bisogno è convenienza e ampio parcheggio, sarà difficile battere Google, se si vuole fare a meno di Google ed usare dei servizi simili ci vuole una buona motivazione ideale del _perché_ farlo.

Qui parleremo di come sincronizzare un telefono Android e un Pc-server-di-casa.

Give me convenience or give me death.

In breve: Google non è gratis, offre il suo ottimo servizio in cambio dei dati dell'utente. Il business di google è la pubblicità, non la beneficenza.
Se questo non è un problema, meglio continuare a usare Google e ad apprezzarne la convenienza. Se invece questo è un fastidio da risolvere, allora andiamo avanti.

La Google suite offre dei servizi davvero ottimi: spazio per le foto, documenti condivisi, calendario, indirizziario, email, eccetera. Non è gratis, il servizio si paga con i propri dati, che hanno un valore. Si tratta quindi di uno scambio che ognuno deve sentirsi libero di accettare valutandone coscientemente i pro e contro. I servizi "gratis" Non sono eterni né garantiti, difatti ad esempio Google Reader, il servizio di sincronizzazione Rss, che era davvero utilissimo, è stato chiuso e pazienza per chi lo usava e stica**i per chi ne era dipendente. Io ho usato Google reader, e so che chi non impara dalla storia è condannato a riviverla. Dunque sono sempre alla ricerca di sistemi alternativi per organizzare la mia vita digitale in modo quanto più possibile indipendente.

Quattro alternative:

  • Affidarsi a un servizio in cambio di dati (Google, Dropbox, eccetera)
pro: funziona ed non ha costi in denaro, zero fatica
contro: perdita di privacy, le conseguenze a lungo termine sono imprevedibili.


  • Usare un servizio a pagamento (Gandi, Silent Circle, vboxx eccetera)
pro: funziona, zero fatica
contro: costa soldi


  • Farsi da sé i propri servizi sul server di casa
pro: hai pieno controllo su tutto
contro: non è detto che funzioni, è fatica, costa la corrente elettrica.


  • Costruirsi una comunità in modo da ridurre i costi e la fatica.
Non più il server di casa, ma il server del gruppo. Esistono community privacy-aware come Autistici e RiseUp da cui prendere esempio, e se quelle citate non offrono servizi SaaS, nessuno vieta di farti la tua comunità e avere una nuvola condivisa coi tuoi amici. Esci dalla stanzetta, frequenti gente, ti confronti, impari cose nuove e trovi la ragazza/o scoprendo che il SaaS è secondario alla tua vita.

pro: funziona, conosci gente interessante
contro: nessuno


Qui parleremo della parte server-di-casa, con i seguenti strumenti: Pc con GNU/Linux (Debian) e cellulare con Android.

Sono i miei appunti di viaggio, quanto più possibile ordinati, spero che siano utili a qualcuno.

Quello che voglio ottenere è un server di casa che offra gli stessi servizi di Google, anzi di più. Voglio sincronizzare i files tra Pc e telefonino, fare in modo che tutte le foto scattate dal telefonino vengano automagicamente caricate sul mio server di casa, voglio sincronizzare il calendario, l'indirizziario, voglio editare un file da qualsiasi computer mi trovi, voglio che i dati nel mio server siano crittografati, voglio accedere al server usando SSL, voglio usare il server per scambiare files cogli amici, voglio la scrittura condivisa con formattazione da ufficio, voglio il mio sync Rss, voglio che tutto sia bello bello bello e fruibile e facile da usare, voglio l'ampio parcheggio con privacy. voglio tutto e lo voglio ora. ecche diamine, siamo nel 2014.

Ehi dimenticavo: stai configurando Owncloud sul server per sincronizzare contatti, files e calendario con Android e quant'altro? Kudos! Complimenti!

Brevemente occorre:

Installare F-Droid sul telefonino, che dà accesso a un repositorio di applicazioni libere.

usare OwnCloud per sincronizzare i propri dati (pagando un provider o installandolo sulla propria macchina di casa)

Cominciamo col fare una Cloud personale, con un Pc, Debian e OwnCloud, per sincronizzare files, calendario e address book.

Avendo installato sul sistema di casa una Debian 7, procedo coll'installare OwnCloud

Comincio col diventare root, e farò molta attenzione a non spararmi nel piede.

$ sudo -s

Aggiungo al respositorio in /etc/apt/sources.list i sorgenti del software OwnCloud

deb http://download.opensuse.org/repositories/isv:ownCloud:community/Debian_7.0/ /

scarico la chiave pubblica di OwnCloud

$ wget http://download.opensuse.org/repositories/isv:ownCloud:community/Debian_7.0/Release.key

e la aggiungo al mio portachiavi

$ apt-key add - < Release.key

A questo punto installo OwnCloud

$ apt-get update ; apt-get install owncloud

Abilito Apache a usare https

Voglio collegarmi al mio server usando https, in modo da non far passare la password in plain text, per fare ciò dovrò abilitare https.

$ a2enmod rewrite
$ a2ensite headers
$ a2ensite default-ssl
$ a2enmod ssl
$ service apache2 restart

e riavvio Apache

$ service apache2 restart

Creo il mio certificato SSL

Dovrò anche avere un certificato SSL valido, escludo l'idea di comperarne uno e me lo faccio a mano.

Creo la directory dove terrò i miei certificati

$ mkdir /etc/apache2/ssl

Devo fare in modo che il certificato che vado a creare sia X.509v3, altrimenti Android si rifiuterà di usarlo.

Edito il file /usr/share/ssl-cert/ssleay.cnf, cambiando

[ v3_req ]
basicConstraints=CA:FALSE

con
[ v3_req ]
basicConstraints=CA:TRUE

Bisogna che quando mi sarà richiesto dia come common name al mio certificato il site address, che d'ora in poi chiameremo: IP_SERVER, ossia qualcosa come server.org, altrimenti avrò problemi in seguito.

Procediamo con la creazione del certificato:

$ make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.crt

ora ricavo i files apache.key e apache.pem

$ cp /etc/apache2/ssl/apache.crt /etc/apache2/ssl/apache.pem
$ cp /etc/apache2/ssl/apache.crt /etc/apache2/ssl/apache.key

edito il file /etc/apache2/ssl/apache.pem e lascia solo la parte da BEGIN CERTIFICATE ad END CERTIFICATE

edito il file /etc/apache2/ssl/apache.key e lascia solo la parte da BEGIN PRIVATE KEY a END PRIVATE KEY

edito il file /etc/apache2/sites-enabled/default-ssl e modifico le righe SSL per indirizzare Apache al certificato che ho appena creato, in questo modo:

SSLCertificateFile /etc/apache2/ssl/apache.pem
SSLCertificateKeyFile /etc/apache2/ssl/apache.key

Mi assicuro che il file apache.key non sia pubblicamente leggibile

$ chmod 600 /etc/apache2/ssl/apache.key

e riavvio apache

$ service apache2 restart

A questo punto posso con un browser visitare una pagina del mio server e constaterò che alle richieste https mi viene detto che il certificato non è sicuro, in quanto non è garantito da nessuna delle entità certificatorie, ma l'ho fatto io a manina e il mio browser non lo può sapere. Dunque accetto il certificato insicuro e procedo il mio cammino di indipendenza o morte canticchiando: Sono un ribelle mamma, degli Skiantos. Ed è subito pausa caffé.

OwnCloud Setup

Raggiungo owncloud a https://IP_SERVER/owncloud
e creo il primo utente amministratore, un nuovo gruppo (user) e gli utenti, tra cui me.

Installo anche sul telefonino OwnCloud e OwnCloud-Client sul Pc e potrò così sincronizzare file in allegria.

Esportare la chiave pubblica del certificato per importarla in Android

Con Android userò DavDroid, che sincronizzerà calendario e indirizziario col mio server permettendomi di non usare i server di Google. I contatti e gli eventi sincronizzati saranno comunque visibili usando le apps di google, al momento in cui scrivo si chiamano Calendar e People, ma potrei usare altre applicazioni, come ad esempio aCalendar o aCal.

Perché DavDroid possa collegarsi al mio server dovrà sapere che Android accetta il mio certificato, perché Android accetti, pur malvolentieri, il mio certificato, esso dovrà essere X.509v3.
Per pura fortuna (guarda che combinazione) il certificato che abbiamo creato era proprio X.509v3=TRUE

Dunque ora basta che lo esportiamo in formato DER e che lo salviamo in formato CER, in modo di fare contenti tutti sia Android che DavDroid.

$ openssl x509 -in/etc/apache2/ssl/apache.pem -outform DER -out /etc/apache2/ssl/certificato-del-mio-server.cer

ora posso copiare il certificato e importarlo nello smartphone, ad esempio usando scp per copiare certificato-del-mio-server.cer sul Desktop e poi copiarlo nella SDCard dello smartphone dopo averlo collegato via usb al Desktop. Ma potrei anche mettere il certificato-del-mio-server.cer sul web e visitarlo col browser del cellulare. O anche potrei usare OwnCloud e sincronizzare il file. Importante è che metta il file certificato-del-mio-server.cer nella root della SDcard storage, non in una sottocartella.

A questo punto importo il certificato in Android, dal telefonino trovo i settaggi:
Settings / Security / Credential storage: "Install from device storage".

Android mi chiederà se sono sicuro sicuro e rimarrà sempre un pò scettico sulla bontà delle mie azioni, pazienza. Non si possono fare contenti tutti.

scetticoandroid.jpg

Questo è come Android vede l'importazione del mio certificato. E' inaudito incredibile assurdo perlomeno curioso che non si possa in pieno possesso delle proprie facoltà dichiarare una volta per tutte che è ok, non si deve preoccupare, l'ho fatto io il certificato. Non si può, il mio telefonino, mio nel senso che l'ho comperato e potrei farne ciò che voglio in teoria, è petulante e tremebondo e ci tiene a stare all'erta. Ora, è vero che se qualcuno mi installasse di nascosto un certificato sul telefonino è bene farmelo sapere, ma se qualcuno mette le mani sul mio telefonino fino a quel punto il messaggino che mi avvisa è l'ultimo dei miei problemi. Il mio Android sogna un wallet garden e mi ricorderà le conseguenze delle mie azioni ad ogni riavvio e per levare il fastidioso avviso dovrò diventare root sul telefonino e mergiare il mio certificato a quelli ufficiali. Per il senso di questo howto, lo teniamo come un problema estetico.

Ora ho il mio certificato tra gli user trusted certificates, e posso configurare DavDroid.

Installare e configurare DavDroid

Per installare DavDroid userò F-Droid e lo punterò rispettivamente per calendario e contatti a questi indirizzi, entrambi rintracciabili dall'interfaccia di OwnCloud:

https://IP_SERVER/owncloud/remote.php/caldav/

https://IP_SERVER/owncloud/remote.php/carddav/addressbooks/USERNAME/contacts

Sync calendario e contatti da Desktop

Evolution funziona per calendario e task, ma non per i contatti.

Non è chiaro ma non accetta un CardDav address, vuole un WebDav address, diamine glielo dico ma non funziona uguale. Aspé, ora funziona.. Al riavvio se lo scorda.. Ok, non ci tengo per il momento.

Userò allora IceDove (aka Thunderbird per i simpatici amici che usano Mac o Win)

configurare IceDove con Sogo

anzi no, visto che Sogo molti lamentano che non funziona, e IceDove verrà dismesso.

Faccio comunque la prova, installo IceOwl plugin per il calendario con apt-get e configuro il tutto e funziona,
Questo è l'indirizzo che devo dare in pasto a IceOwl

https://IP_SERVER/owncloud/remote.php/caldav/calendars/USERNAME/defaultcalendar

Finisco col preferire usare solo l'interfaccia di OwnCloud quando non sono sul telefonino e fare un backup direttamente dal server senza passare fuori dalla rete, usando questo script suggerito da Tanghus che dovrò editare per adattarlo alla mia configurazione.

#!/bin/bash

DATE=`date +"%Y-%m-%d"`

wget --no-check-certificate --auth-no-challenge --no-clobber --http-user=USERNAME --http-password=PASSWORD \
 -O $HOME/backup/pimdata/contacts-$DATE.vcf "https://192.168.1.3/owncloud/index.php/apps/contacts/addressbook/local/2/export" ;
gzip -f $HOME/backup/pimdata/contacts-$DATE.vcf ;

wget --no-check-certificate --auth-no-challenge --no-clobber --http-user=USERNAME --http-password=PASSWORD \
  -O $HOME/backup/pimdata/calendar-$DATE.ics "https://192.168.1.3/owncloud/index.php/apps/calendar/export.php?calid=2" ;
gzip -f $HOME/backup/pimdata/calendar-$DATE.ics

Setup Finale

Sarebbe molto meglio ricominciare una vita digitale da capo, a questo punto, piuttosto che pretendere di esportare il calendario e i contatti da Google e sdegnarsi se non dovesse andare tutto perfetto. Come si è visto prima, Android è scettico su quello che stai facendo. Sarebbe molto meglio cominciare a immettere dati senza pretendere di portarsi appresso il passato.. No eh? Passiamo allora al:

Calendar Setup

Esporto il cal.ics da google attraverso l'interfaccia web e lo importo in OwnCloud, funziona.
Stacco la sincronizzazione dal telefono per il calendario di google
Dico al calendar viewer di visualizzare solo il mio calendario.

Contact Setup

Esporto i contatti in un contact.vcf file direttamente dal telefonino
Trasferisco contact.vcf sul Pc
Disattivo la sinconizzazione per i contatti di google, attraverso la app People
Importo contact.vcf in owncloud
Attivo il sync da davdroid
Una volta che tutto è ok, cancello i contatti da google via web

nota: se hai scritto molto nelle note, sappi che verrà salvata solo una riga circa,
inoltre si dimenticherà tutti i compleanni di cui non sia impostato anche l'anno di nascita. (si, lo so, infatti li scrivevi nelle note..) e infine si scorderà tutti i campi proprietari di Android, (ogni evento eccetto il compleanno).
In compenso importerà tutti i campi regolari compresa la fotina.
A seconda del personale setup di ognuno, direi che funziona bene.

Intervallo di sincronizzazione

Contatti ed eventi vengono sincronizzati automaticamente una volta al giorno, oppure ogni volta che un contatto o un evento viene cambiato, o quando forzi un sync dalla app Calendar o da Settings/ Account/ DAVdroid.

Considerazione finale

I miei contatti provengono dal Palm Pilot, hanno fatto una lunga strada e sono passati da Google solo perché non trovai un altro modo per convertirli in un formato accettabile per WebOS, che usavo nel mio precedente telefonino. Sono più che lieto di riportarli finalmente a una dimensione privata.

- page 2 of 57 -