Project

General

Profile

UsoDiOpenPGPCard » History » Version 20

Elena Grandi, 10/20/2016 12:00 PM

1 1 Elena Grandi
h1. Uso di OpenPGP Card
2 1 Elena Grandi
3 2 Elena Grandi
L'"OpenPGP Card":https://en.wikipedia.org/wiki/OpenPGP_card è una smartcard sulla quale si possono salvare in modo sicuro ed usare le sottochiavi segrete usate da GnuPG per crittografia, firma ed anche autenticazione; ne esistono versioni tradizionali, oppure implementate in un dispositivo USB. In ogni caso si possono caricare nuove chiavi sulla scheda, ma non si possono estrarre (per via software) quelle salvate ed è la scheda stessa ad effettuare le operazioni crittografiche.
4 1 Elena Grandi
5 2 Elena Grandi
L'obiettivo che si vuole ottenere è di non avere materiale crittografico segreto sui computer, in modo che un attaccante remoto non possa impossessarsene, mantenendo comunque la comodità di poter usare le chiavi sulla stessa macchina di uso comune. Per farlo si dovrà avere una chiave principale di lunga durata conservata offline ed usata solo saltuariamente per operazioni di gestione della chiave stessa (creazione di nuove sottochiavi, modifica delle scadenze, firma di altre chiavi per la _Web Of Trust_) e delle sottochiavi da usare quotidianamente, conservate sulla card.
6 2 Elena Grandi
7 19 Elena Grandi
L'OpenPGP Card permette di caricare tre sottochiavi con finalità di crittografia, firma ed autenticazione: le prime due si usano normalmente tramite GnuPG, la terza può essere usata per l'autenticazione ssh tramite gpg-agent.
8 2 Elena Grandi
9 3 Elena Grandi
h2. prerequisiti
10 3 Elena Grandi
11 2 Elena Grandi
Tutte le versioni di "GnuPG":https://gnupg.org/ supportano l'uso di base delle OpenPGP Card, ma per meglio sfruttarne le capacità è meglio usare la versione 2.1 (_modern_), specialmente in fase di creazione della chiave e delle sue sottochiavi.
12 1 Elena Grandi
13 20 Elena Grandi
In questa guida si da per scontato l'uso di GnuPG 2.1 installato come eseguibile @gpg@, come ad esempio su Debian da stretch in poi; versioni precedenti o altre distribuzioni potrebbero usare un eseguibile @gpg2@ o altre varianti.
14 20 Elena Grandi
15 3 Elena Grandi
Nel caso si voglia usare poi la Card per autenticazione ssh con versioni precedenti di GnuPG è necessario installare anche gpg-agent (in 2.1 usato di default).
16 3 Elena Grandi
17 3 Elena Grandi
Per il supporto della Card è poi necessario installare "PC/SC Lite":http://pcsclite.alioth.debian.org/.
18 3 Elena Grandi
19 3 Elena Grandi
Sotto distribuzioni debian o derivate (che già preinstallano @gnupg@ e @openssh-client@) i pacchetti da installare sono quindi:
20 3 Elena Grandi
21 1 Elena Grandi
<pre>
22 20 Elena Grandi
apt install pcscd gnupg-agent scdaemon
23 1 Elena Grandi
</pre>
24 20 Elena Grandi
25 20 Elena Grandi
Si consiglia di svolgere le operazioni di creazione di chiavi e tutto ciò che coinvolga la chiave principale su un sistema pulito, ad esempio una distribuzione live, meglio se scollegato da internet, e di configurare poi le macchine di uso quotidiano secondo quanto descritto nella sezione "Configurazione su una nuova macchina".
26 2 Elena Grandi
27 2 Elena Grandi
h2. creazione della chiave
28 2 Elena Grandi
29 4 Elena Grandi
Innanzitutto bisogna creare una chiave principale che verrà associata alla nostra identità; questa dovrà essere da almeno 4096 bit per garantirle sufficiente longevità, dato che la sua sostituzione comporta un nuovo ingresso nella Web of Trust.
30 4 Elena Grandi
31 4 Elena Grandi
Ovviamente, se si ha già una chiave gpg da 4096 bit si può saltare questo passaggio ed usare quella.
32 4 Elena Grandi
33 4 Elena Grandi
Innanzitutto, configurare gpg per l'uso di SHA2 aggiungendo le seguenti righe a @~/.gnupg/gpg.conf@:
34 4 Elena Grandi
35 4 Elena Grandi
<pre>
36 4 Elena Grandi
personal-digest-preferences SHA256
37 4 Elena Grandi
cert-digest-algo SHA256
38 4 Elena Grandi
default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed
39 4 Elena Grandi
</pre>
40 4 Elena Grandi
41 4 Elena Grandi
Quindi generare una nuova chiave: notare l'uso di gpg versione 2.1 e la dimensione a 4096 bit (per il resto si sono accettate le scelte di default oppure inseriti i propri dati).
42 4 Elena Grandi
43 4 Elena Grandi
<pre>
44 4 Elena Grandi
$ gpg --full-gen-key 
45 4 Elena Grandi
gpg (GnuPG) 2.1.15; Copyright (C) 2016 Free Software Foundation, Inc.
46 4 Elena Grandi
This is free software: you are free to change and redistribute it.
47 4 Elena Grandi
There is NO WARRANTY, to the extent permitted by law.
48 4 Elena Grandi
49 4 Elena Grandi
Please select what kind of key you want:
50 4 Elena Grandi
   (1) RSA and RSA (default)
51 4 Elena Grandi
   (2) DSA and Elgamal
52 4 Elena Grandi
   (3) DSA (sign only)
53 4 Elena Grandi
   (4) RSA (sign only)
54 4 Elena Grandi
Your selection? 1
55 4 Elena Grandi
RSA keys may be between 1024 and 4096 bits long.
56 4 Elena Grandi
What keysize do you want? (2048) 4096
57 4 Elena Grandi
Requested keysize is 4096 bits
58 4 Elena Grandi
Please specify how long the key should be valid.
59 4 Elena Grandi
         0 = key does not expire
60 4 Elena Grandi
      <n>  = key expires in n days
61 4 Elena Grandi
      <n>w = key expires in n weeks
62 4 Elena Grandi
      <n>m = key expires in n months
63 4 Elena Grandi
      <n>y = key expires in n years
64 4 Elena Grandi
Key is valid for? (0) 
65 4 Elena Grandi
Key does not expire at all
66 4 Elena Grandi
Is this correct? (y/N) y
67 4 Elena Grandi
68 4 Elena Grandi
GnuPG needs to construct a user ID to identify your key.
69 4 Elena Grandi
70 4 Elena Grandi
Real name: Random User
71 4 Elena Grandi
Email address: random@example.org
72 4 Elena Grandi
Comment: 
73 4 Elena Grandi
You selected this USER-ID:
74 4 Elena Grandi
    "Random User <random@example.org>"
75 4 Elena Grandi
76 4 Elena Grandi
Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? o
77 4 Elena Grandi
We need to generate a lot of random bytes. It is a good idea to perform
78 4 Elena Grandi
some other action (type on the keyboard, move the mouse, utilize the
79 4 Elena Grandi
disks) during the prime generation; this gives the random number
80 4 Elena Grandi
generator a better chance to gain enough entropy.
81 4 Elena Grandi
gpg: key 3E0EE5BAC50DF7C1 marked as ultimately trusted
82 4 Elena Grandi
gpg: directory '/home/random/.gnupg/openpgp-revocs.d' created
83 4 Elena Grandi
gpg: revocation certificate stored as '/home/valhalla/.gnupg/openpgp-revocs.d/19DB75A75734ABBEDB1124163E0EE5BAC50DF7C1.rev'
84 4 Elena Grandi
public and secret key created and signed.
85 4 Elena Grandi
86 4 Elena Grandi
pub   rsa4096 2016-10-19 [SC]
87 4 Elena Grandi
      19DB75A75734ABBEDB1124163E0EE5BAC50DF7C1
88 4 Elena Grandi
      19DB75A75734ABBEDB1124163E0EE5BAC50DF7C1
89 4 Elena Grandi
uid                      Random User <random@example.org>
90 4 Elena Grandi
sub   rsa4096 2016-10-19 [E]
91 4 Elena Grandi
</pre>
92 4 Elena Grandi
93 2 Elena Grandi
h2. creazione delle sottochiavi
94 2 Elena Grandi
95 5 Elena Grandi
Questo è il punto in cui è particolarmente importante l'uso di GnuPG 2.1, che rende molto più semplice la creazione di una chiave per l'autenticazione.
96 5 Elena Grandi
97 5 Elena Grandi
Molte delle OpenPGP Card disponibili sul mercato supportano chiavi al massimo a 2048 bit: questo non è un grosso problema dato che al momento sono considerate ancora ragionevolmente sicure, ed una loro eventuale sostituzione in futuro non è particolarmente onerosa (oltre ovviamente alla necessità di usare una Card o un dispositivo diverso).
98 5 Elena Grandi
99 5 Elena Grandi
Per generare le sottochiavi necessarie, si entra in modalità di modifica con l'opzione @--expert@ che abilita la creazione di chiavi di autenticazione.
100 5 Elena Grandi
101 5 Elena Grandi
<pre>
102 5 Elena Grandi
$ gpg --expert --edit-key 3E0EE5BAC50DF7C1
103 5 Elena Grandi
gpg (GnuPG) 2.1.15; Copyright (C) 2016 Free Software Foundation, Inc.
104 5 Elena Grandi
This is free software: you are free to change and redistribute it.
105 5 Elena Grandi
There is NO WARRANTY, to the extent permitted by law.
106 5 Elena Grandi
107 5 Elena Grandi
Secret key is available.
108 5 Elena Grandi
109 5 Elena Grandi
sec  rsa4096/3E0EE5BAC50DF7C1
110 5 Elena Grandi
     created: 2016-10-19  expires: never       usage: SC  
111 5 Elena Grandi
     trust: ultimate      validity: ultimate
112 5 Elena Grandi
ssb  rsa4096/F303978FEBB6E995
113 5 Elena Grandi
     created: 2016-10-19  expires: never       usage: E   
114 5 Elena Grandi
[ultimate] (1). Random User <random@example.org>
115 5 Elena Grandi
</pre>
116 5 Elena Grandi
117 5 Elena Grandi
Quindi si crea prima una normale sottochiave di firma (opzione 4)
118 5 Elena Grandi
119 5 Elena Grandi
<pre>
120 5 Elena Grandi
gpg> addkey 
121 5 Elena Grandi
Please select what kind of key you want:
122 5 Elena Grandi
   (3) DSA (sign only)
123 5 Elena Grandi
   (4) RSA (sign only)
124 5 Elena Grandi
   (5) Elgamal (encrypt only)
125 5 Elena Grandi
   (6) RSA (encrypt only)
126 5 Elena Grandi
   (7) DSA (set your own capabilities)
127 5 Elena Grandi
   (8) RSA (set your own capabilities)
128 5 Elena Grandi
  (10) ECC (sign only)
129 5 Elena Grandi
  (11) ECC (set your own capabilities)
130 5 Elena Grandi
  (12) ECC (encrypt only)
131 5 Elena Grandi
  (13) Existing key
132 5 Elena Grandi
Your selection? 4
133 5 Elena Grandi
RSA keys may be between 1024 and 4096 bits long.
134 5 Elena Grandi
What keysize do you want? (2048) 
135 5 Elena Grandi
Requested keysize is 2048 bits
136 5 Elena Grandi
Please specify how long the key should be valid.
137 5 Elena Grandi
         0 = key does not expire
138 5 Elena Grandi
      <n>  = key expires in n days
139 5 Elena Grandi
      <n>w = key expires in n weeks
140 5 Elena Grandi
      <n>m = key expires in n months
141 5 Elena Grandi
      <n>y = key expires in n years
142 5 Elena Grandi
Key is valid for? (0) 1y
143 5 Elena Grandi
Key expires at Thu 19 Oct 2017 12:15:49 CEST
144 5 Elena Grandi
Is this correct? (y/N) y
145 5 Elena Grandi
Really create? (y/N) y
146 5 Elena Grandi
We need to generate a lot of random bytes. It is a good idea to perform
147 5 Elena Grandi
some other action (type on the keyboard, move the mouse, utilize the
148 5 Elena Grandi
disks) during the prime generation; this gives the random number
149 5 Elena Grandi
generator a better chance to gain enough entropy.
150 5 Elena Grandi
151 5 Elena Grandi
sec  rsa4096/3E0EE5BAC50DF7C1
152 5 Elena Grandi
     created: 2016-10-19  expires: never       usage: SC  
153 5 Elena Grandi
     trust: ultimate      validity: ultimate
154 5 Elena Grandi
ssb  rsa4096/F303978FEBB6E995
155 5 Elena Grandi
     created: 2016-10-19  expires: never       usage: E   
156 5 Elena Grandi
ssb  rsa2048/40A2ADF0FE9E4620
157 5 Elena Grandi
     created: 2016-10-19  expires: 2017-10-19  usage: S   
158 5 Elena Grandi
[ultimate] (1). Random User <random@example.org>
159 5 Elena Grandi
160 5 Elena Grandi
</pre>
161 5 Elena Grandi
162 5 Elena Grandi
Una normale sottochiave per la crittografia (opzione 6)
163 5 Elena Grandi
164 5 Elena Grandi
<pre>
165 5 Elena Grandi
gpg> addkey 
166 5 Elena Grandi
Please select what kind of key you want:
167 5 Elena Grandi
   (3) DSA (sign only)
168 5 Elena Grandi
   (4) RSA (sign only)
169 5 Elena Grandi
   (5) Elgamal (encrypt only)
170 5 Elena Grandi
   (6) RSA (encrypt only)
171 5 Elena Grandi
   (7) DSA (set your own capabilities)
172 5 Elena Grandi
   (8) RSA (set your own capabilities)
173 5 Elena Grandi
  (10) ECC (sign only)
174 5 Elena Grandi
  (11) ECC (set your own capabilities)
175 5 Elena Grandi
  (12) ECC (encrypt only)
176 5 Elena Grandi
  (13) Existing key
177 5 Elena Grandi
Your selection? 6
178 5 Elena Grandi
RSA keys may be between 1024 and 4096 bits long.
179 5 Elena Grandi
What keysize do you want? (2048) 
180 5 Elena Grandi
Requested keysize is 2048 bits
181 5 Elena Grandi
Please specify how long the key should be valid.
182 5 Elena Grandi
         0 = key does not expire
183 5 Elena Grandi
      <n>  = key expires in n days
184 5 Elena Grandi
      <n>w = key expires in n weeks
185 5 Elena Grandi
      <n>m = key expires in n months
186 5 Elena Grandi
      <n>y = key expires in n years
187 5 Elena Grandi
Key is valid for? (0) 1y
188 5 Elena Grandi
Key expires at Thu 19 Oct 2017 12:18:16 CEST
189 5 Elena Grandi
Is this correct? (y/N) y
190 5 Elena Grandi
Really create? (y/N) y
191 5 Elena Grandi
We need to generate a lot of random bytes. It is a good idea to perform
192 5 Elena Grandi
some other action (type on the keyboard, move the mouse, utilize the
193 5 Elena Grandi
disks) during the prime generation; this gives the random number
194 5 Elena Grandi
generator a better chance to gain enough entropy.
195 5 Elena Grandi
196 5 Elena Grandi
sec  rsa4096/3E0EE5BAC50DF7C1
197 5 Elena Grandi
     created: 2016-10-19  expires: never       usage: SC  
198 5 Elena Grandi
     trust: ultimate      validity: ultimate
199 5 Elena Grandi
ssb  rsa4096/F303978FEBB6E995
200 5 Elena Grandi
     created: 2016-10-19  expires: never       usage: E   
201 5 Elena Grandi
ssb  rsa2048/40A2ADF0FE9E4620
202 5 Elena Grandi
     created: 2016-10-19  expires: 2017-10-19  usage: S   
203 5 Elena Grandi
ssb  rsa2048/ED9BBD7B3BFF900F
204 5 Elena Grandi
     created: 2016-10-19  expires: 2017-10-19  usage: E   
205 5 Elena Grandi
[ultimate] (1). Random User <random@example.org>
206 5 Elena Grandi
</pre>
207 5 Elena Grandi
208 5 Elena Grandi
Ed infine una sottochiave per l'autenticazione, selezionando l'opzione 8, togliendo le capacità di firma e crittografia e mettendo quella di autenticazione.
209 5 Elena Grandi
210 5 Elena Grandi
<pre>
211 5 Elena Grandi
gpg> addkey 
212 5 Elena Grandi
Please select what kind of key you want:
213 5 Elena Grandi
   (3) DSA (sign only)
214 5 Elena Grandi
   (4) RSA (sign only)
215 5 Elena Grandi
   (5) Elgamal (encrypt only)
216 5 Elena Grandi
   (6) RSA (encrypt only)
217 5 Elena Grandi
   (7) DSA (set your own capabilities)
218 5 Elena Grandi
   (8) RSA (set your own capabilities)
219 5 Elena Grandi
  (10) ECC (sign only)
220 5 Elena Grandi
  (11) ECC (set your own capabilities)
221 5 Elena Grandi
  (12) ECC (encrypt only)
222 5 Elena Grandi
  (13) Existing key
223 5 Elena Grandi
Your selection? 8
224 5 Elena Grandi
225 5 Elena Grandi
Possible actions for a RSA key: Sign Encrypt Authenticate 
226 5 Elena Grandi
Current allowed actions: Sign Encrypt 
227 5 Elena Grandi
228 5 Elena Grandi
   (S) Toggle the sign capability
229 5 Elena Grandi
   (E) Toggle the encrypt capability
230 5 Elena Grandi
   (A) Toggle the authenticate capability
231 5 Elena Grandi
   (Q) Finished
232 5 Elena Grandi
233 5 Elena Grandi
Your selection? s
234 5 Elena Grandi
235 5 Elena Grandi
Possible actions for a RSA key: Sign Encrypt Authenticate 
236 5 Elena Grandi
Current allowed actions: Encrypt 
237 5 Elena Grandi
238 5 Elena Grandi
   (S) Toggle the sign capability
239 5 Elena Grandi
   (E) Toggle the encrypt capability
240 5 Elena Grandi
   (A) Toggle the authenticate capability
241 5 Elena Grandi
   (Q) Finished
242 5 Elena Grandi
243 5 Elena Grandi
Your selection? e
244 5 Elena Grandi
245 5 Elena Grandi
Possible actions for a RSA key: Sign Encrypt Authenticate 
246 5 Elena Grandi
Current allowed actions: 
247 5 Elena Grandi
248 5 Elena Grandi
   (S) Toggle the sign capability
249 5 Elena Grandi
   (E) Toggle the encrypt capability
250 5 Elena Grandi
   (A) Toggle the authenticate capability
251 5 Elena Grandi
   (Q) Finished
252 5 Elena Grandi
253 5 Elena Grandi
Your selection? a
254 5 Elena Grandi
255 5 Elena Grandi
Possible actions for a RSA key: Sign Encrypt Authenticate 
256 5 Elena Grandi
Current allowed actions: Authenticate 
257 5 Elena Grandi
258 5 Elena Grandi
   (S) Toggle the sign capability
259 5 Elena Grandi
   (E) Toggle the encrypt capability
260 5 Elena Grandi
   (A) Toggle the authenticate capability
261 5 Elena Grandi
   (Q) Finished
262 5 Elena Grandi
263 5 Elena Grandi
Your selection? q
264 5 Elena Grandi
RSA keys may be between 1024 and 4096 bits long.
265 5 Elena Grandi
What keysize do you want? (2048) 
266 5 Elena Grandi
Requested keysize is 2048 bits
267 5 Elena Grandi
Please specify how long the key should be valid.
268 5 Elena Grandi
         0 = key does not expire
269 5 Elena Grandi
      <n>  = key expires in n days
270 5 Elena Grandi
      <n>w = key expires in n weeks
271 5 Elena Grandi
      <n>m = key expires in n months
272 5 Elena Grandi
      <n>y = key expires in n years
273 5 Elena Grandi
Key is valid for? (0) 1y
274 5 Elena Grandi
Key expires at Thu 19 Oct 2017 12:24:56 CEST
275 5 Elena Grandi
Is this correct? (y/N) y
276 5 Elena Grandi
Really create? (y/N) y
277 5 Elena Grandi
We need to generate a lot of random bytes. It is a good idea to perform
278 5 Elena Grandi
some other action (type on the keyboard, move the mouse, utilize the
279 5 Elena Grandi
disks) during the prime generation; this gives the random number
280 5 Elena Grandi
generator a better chance to gain enough entropy.
281 5 Elena Grandi
282 5 Elena Grandi
sec  rsa4096/3E0EE5BAC50DF7C1
283 5 Elena Grandi
     created: 2016-10-19  expires: never       usage: SC  
284 5 Elena Grandi
     trust: ultimate      validity: ultimate
285 5 Elena Grandi
ssb  rsa4096/F303978FEBB6E995
286 5 Elena Grandi
     created: 2016-10-19  expires: never       usage: E   
287 5 Elena Grandi
ssb  rsa2048/40A2ADF0FE9E4620
288 5 Elena Grandi
     created: 2016-10-19  expires: 2017-10-19  usage: S   
289 5 Elena Grandi
ssb  rsa2048/ED9BBD7B3BFF900F
290 5 Elena Grandi
     created: 2016-10-19  expires: 2017-10-19  usage: E   
291 5 Elena Grandi
ssb  rsa2048/5F89B668295AE797
292 5 Elena Grandi
     created: 2016-10-19  expires: 2017-10-19  usage: A   
293 5 Elena Grandi
[ultimate] (1). Random User <random@example.org>
294 5 Elena Grandi
</pre>
295 5 Elena Grandi
296 5 Elena Grandi
Si può quindi uscire dalla modalità di modifica chiave, salvando le modifiche.
297 5 Elena Grandi
298 5 Elena Grandi
<pre>
299 5 Elena Grandi
gpg> save
300 5 Elena Grandi
</pre>
301 5 Elena Grandi
302 7 Elena Grandi
h2. salvataggio su supporto esterno
303 7 Elena Grandi
304 8 Elena Grandi
A questo punto la chiave è ancora gestita nel modo tradizionale, su hard disk. Questo è il momento di salvarne un backup e di farne una copia su chiavetta USB da usare in futuro per le modifiche della chiave.
305 8 Elena Grandi
306 9 Elena Grandi
Per il backup ci sono vari metodi, da una semplice e poco efficiente copia di tutta la @~/.gnupg@ su un ulteriore supporto all'uso di "paperkey":http://www.jabberwocky.com/software/paperkey/ per salvare una copia su carta; l'importante è che venga fatto e custodito in un luogo sicuro, anche se magari remoto (cassetta di sicurezza).
307 8 Elena Grandi
308 9 Elena Grandi
Per avere una copia della chiave principale da usare sporadicamente, invece, è necessario copiare l'intera @~/.gnupg@ su una chiavetta USB o simili; una volta fatta la copia verificare che contenga quanto dovuto con 
309 9 Elena Grandi
310 9 Elena Grandi
<pre>
311 9 Elena Grandi
$ gpg --homedir indirizzo/della/chiavetta/gnupg --list-secret-keys
312 9 Elena Grandi
indirizzo/della/chiavetta/gnupg
313 9 Elena Grandi
pubring.gpg
314 9 Elena Grandi
---------------------------------
315 9 Elena Grandi
sec   rsa4096 2016-10-19 [SC]
316 9 Elena Grandi
      19DB75A75734ABBEDB1124163E0EE5BAC50DF7C1
317 9 Elena Grandi
uid           [ultimate] Random User <random@example.org>
318 9 Elena Grandi
ssb   rsa4096 2016-10-19 [E]
319 9 Elena Grandi
ssb   rsa2048 2016-10-19 [S] [expires: 2017-10-19]
320 9 Elena Grandi
ssb   rsa2048 2016-10-19 [E] [expires: 2017-10-19]
321 9 Elena Grandi
ssb   rsa2048 2016-10-19 [A] [expires: 2017-10-19]
322 9 Elena Grandi
</pre>
323 9 Elena Grandi
324 9 Elena Grandi
smontare la chiavetta e riporla in un luogo sicuro; la si userà nuovamente quando sarà necessario cambiare le date di scadenza delle sottochiavi, oppure firmare chiavi di altre persone, per la Web of Trust.
325 8 Elena Grandi
326 2 Elena Grandi
h2. spostamento delle chiavi sulla Card
327 2 Elena Grandi
328 10 Elena Grandi
Per il prossimo passaggio è estremamente importante assicurarsi di aver fatto le copie delle chiavi e sottochiavi private: in questo passaggio verranno trasferite sulla Card, dalla quale non possono più essere estratte, e cancellate dal disco.
329 10 Elena Grandi
330 10 Elena Grandi
Collegare il lettore al computer, inserire la Card e controllare che venga correttamente riconosciuta:
331 10 Elena Grandi
332 10 Elena Grandi
<pre>
333 10 Elena Grandi
$ gpg --card-status 
334 10 Elena Grandi
Reader ...........: ####
335 10 Elena Grandi
Application ID ...: ####
336 10 Elena Grandi
Version ..........: 2.0
337 10 Elena Grandi
Manufacturer .....: ####
338 10 Elena Grandi
Serial number ....: ####
339 10 Elena Grandi
Name of cardholder: [not set]
340 10 Elena Grandi
Language prefs ...: [not set]
341 10 Elena Grandi
Sex ..............: unspecified
342 10 Elena Grandi
URL of public key : [not set]
343 10 Elena Grandi
Login data .......: [not set]
344 10 Elena Grandi
Signature PIN ....: forced
345 10 Elena Grandi
Key attributes ...: rsa2048 rsa2048 rsa2048
346 10 Elena Grandi
Max. PIN lengths .: 127 127 127
347 10 Elena Grandi
PIN retry counter : 3 3 3
348 10 Elena Grandi
Signature counter : 0
349 10 Elena Grandi
Signature key ....: [none]
350 10 Elena Grandi
Encryption key....: [none]
351 10 Elena Grandi
Authentication key: [none]
352 10 Elena Grandi
General key info..: [none]
353 10 Elena Grandi
</pre>
354 10 Elena Grandi
355 12 Elena Grandi
Cambiare poi i pin della chiave:
356 12 Elena Grandi
357 12 Elena Grandi
<pre>
358 12 Elena Grandi
$ gpg --card-edit
359 12 Elena Grandi
Reader ...........: ####
360 12 Elena Grandi
Application ID ...: ####
361 12 Elena Grandi
Version ..........: 2.0
362 12 Elena Grandi
Manufacturer .....: ####
363 12 Elena Grandi
Serial number ....: ####
364 12 Elena Grandi
Name of cardholder: [not set]
365 12 Elena Grandi
Language prefs ...: [not set]
366 12 Elena Grandi
Sex ..............: unspecified
367 12 Elena Grandi
URL of public key : [not set]
368 12 Elena Grandi
Login data .......: [not set]
369 12 Elena Grandi
Signature PIN ....: forced
370 12 Elena Grandi
Key attributes ...: rsa2048 rsa2048 rsa2048
371 12 Elena Grandi
Max. PIN lengths .: 127 127 127
372 12 Elena Grandi
PIN retry counter : 3 3 3
373 12 Elena Grandi
Signature counter : 0
374 12 Elena Grandi
Signature key ....: [none]
375 12 Elena Grandi
Encryption key....: [none]
376 12 Elena Grandi
Authentication key: [none]
377 12 Elena Grandi
General key info..: [none]
378 12 Elena Grandi
379 12 Elena Grandi
gpg/card> admin
380 12 Elena Grandi
Admin commands are allowed
381 12 Elena Grandi
382 12 Elena Grandi
gpg/card> passwd
383 12 Elena Grandi
gpg: OpenPGP card no. #### detected
384 12 Elena Grandi
385 12 Elena Grandi
1 - change PIN
386 12 Elena Grandi
2 - unblock PIN
387 12 Elena Grandi
3 - change Admin PIN
388 12 Elena Grandi
4 - set the Reset Code
389 12 Elena Grandi
Q - quit
390 12 Elena Grandi
391 12 Elena Grandi
Your selection? 
392 12 Elena Grandi
393 12 Elena Grandi
[TODO: completare il cambiamento pin dopo aver sbloccato la Card di prova]
394 12 Elena Grandi
395 12 Elena Grandi
</pre>
396 12 Elena Grandi
397 10 Elena Grandi
Si può quindi passare a spostare le varie sottochiavi sulla Card, aprendo la modalità di editing della chiave:
398 10 Elena Grandi
399 10 Elena Grandi
<pre>
400 10 Elena Grandi
$ gpg --edit-key 3E0EE5BAC50DF7C1
401 10 Elena Grandi
gpg (GnuPG) 2.1.15; Copyright (C) 2016 Free Software Foundation, Inc.
402 10 Elena Grandi
This is free software: you are free to change and redistribute it.
403 10 Elena Grandi
There is NO WARRANTY, to the extent permitted by law.
404 10 Elena Grandi
405 10 Elena Grandi
Secret key is available.
406 10 Elena Grandi
407 10 Elena Grandi
sec  rsa4096/3E0EE5BAC50DF7C1
408 10 Elena Grandi
     created: 2016-10-19  expires: never       usage: SC  
409 10 Elena Grandi
     trust: ultimate      validity: ultimate
410 10 Elena Grandi
ssb  rsa4096/F303978FEBB6E995
411 10 Elena Grandi
     created: 2016-10-19  expires: never       usage: E   
412 10 Elena Grandi
ssb  rsa2048/40A2ADF0FE9E4620
413 10 Elena Grandi
     created: 2016-10-19  expires: 2017-10-19  usage: S   
414 10 Elena Grandi
ssb  rsa2048/ED9BBD7B3BFF900F
415 10 Elena Grandi
     created: 2016-10-19  expires: 2017-10-19  usage: E   
416 10 Elena Grandi
ssb  rsa2048/5F89B668295AE797
417 10 Elena Grandi
     created: 2016-10-19  expires: 2017-10-19  usage: A   
418 10 Elena Grandi
[ultimate] (1). Random User <random@example.org>
419 10 Elena Grandi
</pre>
420 10 Elena Grandi
421 10 Elena Grandi
passando alla modalità di modifica delle chiavi private
422 10 Elena Grandi
423 10 Elena Grandi
<pre>
424 10 Elena Grandi
gpg> toggle
425 10 Elena Grandi
426 10 Elena Grandi
sec  rsa4096/3E0EE5BAC50DF7C1
427 10 Elena Grandi
     created: 2016-10-19  expires: never       usage: SC  
428 10 Elena Grandi
     trust: ultimate      validity: ultimate
429 10 Elena Grandi
ssb  rsa4096/F303978FEBB6E995
430 10 Elena Grandi
     created: 2016-10-19  expires: never       usage: E   
431 10 Elena Grandi
ssb  rsa2048/40A2ADF0FE9E4620
432 10 Elena Grandi
     created: 2016-10-19  expires: 2017-10-19  usage: S   
433 10 Elena Grandi
ssb  rsa2048/ED9BBD7B3BFF900F
434 10 Elena Grandi
     created: 2016-10-19  expires: 2017-10-19  usage: E   
435 10 Elena Grandi
ssb  rsa2048/5F89B668295AE797
436 10 Elena Grandi
     created: 2016-10-19  expires: 2017-10-19  usage: A   
437 10 Elena Grandi
[ultimate] (1). Random User <random@example.org>
438 10 Elena Grandi
</pre>
439 10 Elena Grandi
440 10 Elena Grandi
e trasferendo una ad una le sottochiavi sulla Card; firma:
441 10 Elena Grandi
442 10 Elena Grandi
<pre>
443 10 Elena Grandi
gpg> key 2
444 10 Elena Grandi
445 10 Elena Grandi
sec  rsa4096/3E0EE5BAC50DF7C1
446 10 Elena Grandi
     created: 2016-10-19  expires: never       usage: SC  
447 10 Elena Grandi
     trust: ultimate      validity: ultimate
448 10 Elena Grandi
ssb  rsa4096/F303978FEBB6E995
449 10 Elena Grandi
     created: 2016-10-19  expires: never       usage: E   
450 10 Elena Grandi
ssb* rsa2048/40A2ADF0FE9E4620
451 10 Elena Grandi
     created: 2016-10-19  expires: 2017-10-19  usage: S   
452 10 Elena Grandi
ssb  rsa2048/ED9BBD7B3BFF900F
453 10 Elena Grandi
     created: 2016-10-19  expires: 2017-10-19  usage: E   
454 10 Elena Grandi
ssb  rsa2048/5F89B668295AE797
455 10 Elena Grandi
     created: 2016-10-19  expires: 2017-10-19  usage: A   
456 10 Elena Grandi
[ultimate] (1). Random User <random@example.org>
457 10 Elena Grandi
458 10 Elena Grandi
gpg> keytocard
459 10 Elena Grandi
Please select where to store the key:
460 10 Elena Grandi
   (1) Signature key
461 10 Elena Grandi
   (3) Authentication key
462 10 Elena Grandi
Your selection? 1
463 10 Elena Grandi
gpg: KEYTOCARD failed: Bad PIN
464 10 Elena Grandi
465 10 Elena Grandi
gpg> keytocard
466 10 Elena Grandi
Please select where to store the key:
467 10 Elena Grandi
   (1) Signature key
468 10 Elena Grandi
   (3) Authentication key
469 10 Elena Grandi
Your selection? 1
470 10 Elena Grandi
471 10 Elena Grandi
sec  rsa4096/3E0EE5BAC50DF7C1
472 10 Elena Grandi
     created: 2016-10-19  expires: never       usage: SC  
473 10 Elena Grandi
     trust: ultimate      validity: ultimate
474 10 Elena Grandi
ssb  rsa4096/F303978FEBB6E995
475 10 Elena Grandi
     created: 2016-10-19  expires: never       usage: E   
476 10 Elena Grandi
ssb* rsa2048/40A2ADF0FE9E4620
477 10 Elena Grandi
     created: 2016-10-19  expires: 2017-10-19  usage: S   
478 10 Elena Grandi
ssb  rsa2048/ED9BBD7B3BFF900F
479 10 Elena Grandi
     created: 2016-10-19  expires: 2017-10-19  usage: E   
480 10 Elena Grandi
ssb  rsa2048/5F89B668295AE797
481 10 Elena Grandi
     created: 2016-10-19  expires: 2017-10-19  usage: A   
482 10 Elena Grandi
[ultimate] (1). Random User <random@example.org>
483 10 Elena Grandi
</pre>
484 10 Elena Grandi
485 10 Elena Grandi
crittografia:
486 10 Elena Grandi
487 10 Elena Grandi
<pre>
488 10 Elena Grandi
gpg> key 2
489 10 Elena Grandi
490 10 Elena Grandi
sec  rsa4096/3E0EE5BAC50DF7C1
491 10 Elena Grandi
     created: 2016-10-19  expires: never       usage: SC  
492 10 Elena Grandi
     trust: ultimate      validity: ultimate
493 10 Elena Grandi
ssb  rsa4096/F303978FEBB6E995
494 10 Elena Grandi
     created: 2016-10-19  expires: never       usage: E   
495 10 Elena Grandi
ssb  rsa2048/40A2ADF0FE9E4620
496 10 Elena Grandi
     created: 2016-10-19  expires: 2017-10-19  usage: S   
497 10 Elena Grandi
ssb  rsa2048/ED9BBD7B3BFF900F
498 10 Elena Grandi
     created: 2016-10-19  expires: 2017-10-19  usage: E   
499 10 Elena Grandi
ssb  rsa2048/5F89B668295AE797
500 10 Elena Grandi
     created: 2016-10-19  expires: 2017-10-19  usage: A   
501 10 Elena Grandi
[ultimate] (1). Random User <random@example.org>
502 10 Elena Grandi
503 10 Elena Grandi
gpg> key 3
504 10 Elena Grandi
505 10 Elena Grandi
sec  rsa4096/3E0EE5BAC50DF7C1
506 10 Elena Grandi
     created: 2016-10-19  expires: never       usage: SC  
507 10 Elena Grandi
     trust: ultimate      validity: ultimate
508 10 Elena Grandi
ssb  rsa4096/F303978FEBB6E995
509 10 Elena Grandi
     created: 2016-10-19  expires: never       usage: E   
510 10 Elena Grandi
ssb  rsa2048/40A2ADF0FE9E4620
511 10 Elena Grandi
     created: 2016-10-19  expires: 2017-10-19  usage: S   
512 10 Elena Grandi
ssb* rsa2048/ED9BBD7B3BFF900F
513 10 Elena Grandi
     created: 2016-10-19  expires: 2017-10-19  usage: E   
514 10 Elena Grandi
ssb  rsa2048/5F89B668295AE797
515 10 Elena Grandi
     created: 2016-10-19  expires: 2017-10-19  usage: A   
516 10 Elena Grandi
[ultimate] (1). Random User <random@example.org>
517 10 Elena Grandi
518 10 Elena Grandi
gpg> keytocard
519 10 Elena Grandi
Please select where to store the key:
520 10 Elena Grandi
   (2) Encryption key
521 10 Elena Grandi
Your selection? 2
522 10 Elena Grandi
523 10 Elena Grandi
sec  rsa4096/3E0EE5BAC50DF7C1
524 10 Elena Grandi
     created: 2016-10-19  expires: never       usage: SC  
525 10 Elena Grandi
     trust: ultimate      validity: ultimate
526 10 Elena Grandi
ssb  rsa4096/F303978FEBB6E995
527 10 Elena Grandi
     created: 2016-10-19  expires: never       usage: E   
528 10 Elena Grandi
ssb  rsa2048/40A2ADF0FE9E4620
529 10 Elena Grandi
     created: 2016-10-19  expires: 2017-10-19  usage: S   
530 10 Elena Grandi
ssb* rsa2048/ED9BBD7B3BFF900F
531 10 Elena Grandi
     created: 2016-10-19  expires: 2017-10-19  usage: E   
532 10 Elena Grandi
ssb  rsa2048/5F89B668295AE797
533 10 Elena Grandi
     created: 2016-10-19  expires: 2017-10-19  usage: A   
534 10 Elena Grandi
[ultimate] (1). Random User <random@example.org>
535 10 Elena Grandi
</pre>
536 10 Elena Grandi
537 10 Elena Grandi
autenticazione:
538 10 Elena Grandi
539 10 Elena Grandi
<pre>
540 10 Elena Grandi
gpg> key 3
541 10 Elena Grandi
542 10 Elena Grandi
sec  rsa4096/3E0EE5BAC50DF7C1
543 10 Elena Grandi
     created: 2016-10-19  expires: never       usage: SC  
544 10 Elena Grandi
     trust: ultimate      validity: ultimate
545 10 Elena Grandi
ssb  rsa4096/F303978FEBB6E995
546 10 Elena Grandi
     created: 2016-10-19  expires: never       usage: E   
547 10 Elena Grandi
ssb  rsa2048/40A2ADF0FE9E4620
548 10 Elena Grandi
     created: 2016-10-19  expires: 2017-10-19  usage: S   
549 10 Elena Grandi
ssb  rsa2048/ED9BBD7B3BFF900F
550 10 Elena Grandi
     created: 2016-10-19  expires: 2017-10-19  usage: E   
551 10 Elena Grandi
ssb  rsa2048/5F89B668295AE797
552 10 Elena Grandi
     created: 2016-10-19  expires: 2017-10-19  usage: A   
553 10 Elena Grandi
[ultimate] (1). Random User <random@example.org>
554 10 Elena Grandi
555 10 Elena Grandi
gpg> key 4
556 10 Elena Grandi
557 10 Elena Grandi
sec  rsa4096/3E0EE5BAC50DF7C1
558 10 Elena Grandi
     created: 2016-10-19  expires: never       usage: SC  
559 10 Elena Grandi
     trust: ultimate      validity: ultimate
560 10 Elena Grandi
ssb  rsa4096/F303978FEBB6E995
561 10 Elena Grandi
     created: 2016-10-19  expires: never       usage: E   
562 10 Elena Grandi
ssb  rsa2048/40A2ADF0FE9E4620
563 10 Elena Grandi
     created: 2016-10-19  expires: 2017-10-19  usage: S   
564 10 Elena Grandi
ssb  rsa2048/ED9BBD7B3BFF900F
565 10 Elena Grandi
     created: 2016-10-19  expires: 2017-10-19  usage: E   
566 10 Elena Grandi
ssb* rsa2048/5F89B668295AE797
567 10 Elena Grandi
     created: 2016-10-19  expires: 2017-10-19  usage: A   
568 10 Elena Grandi
[ultimate] (1). Random User <random@example.org>
569 10 Elena Grandi
570 10 Elena Grandi
gpg> keytocard
571 10 Elena Grandi
Please select where to store the key:
572 10 Elena Grandi
   (3) Authentication key
573 10 Elena Grandi
Your selection? 3
574 10 Elena Grandi
575 10 Elena Grandi
sec  rsa4096/3E0EE5BAC50DF7C1
576 10 Elena Grandi
     created: 2016-10-19  expires: never       usage: SC  
577 10 Elena Grandi
     trust: ultimate      validity: ultimate
578 10 Elena Grandi
ssb  rsa4096/F303978FEBB6E995
579 10 Elena Grandi
     created: 2016-10-19  expires: never       usage: E   
580 10 Elena Grandi
ssb  rsa2048/40A2ADF0FE9E4620
581 10 Elena Grandi
     created: 2016-10-19  expires: 2017-10-19  usage: S   
582 10 Elena Grandi
ssb  rsa2048/ED9BBD7B3BFF900F
583 10 Elena Grandi
     created: 2016-10-19  expires: 2017-10-19  usage: E   
584 10 Elena Grandi
ssb* rsa2048/5F89B668295AE797
585 10 Elena Grandi
     created: 2016-10-19  expires: 2017-10-19  usage: A   
586 10 Elena Grandi
[ultimate] (1). Random User <random@example.org>
587 10 Elena Grandi
</pre>
588 10 Elena Grandi
589 11 Elena Grandi
Uscire salvando:
590 11 Elena Grandi
591 11 Elena Grandi
<pre>
592 11 Elena Grandi
gpg> save
593 11 Elena Grandi
</pre>
594 11 Elena Grandi
595 11 Elena Grandi
e a questo punto si può controllare che le sottochiavi sono sulla Card:
596 11 Elena Grandi
597 11 Elena Grandi
<pre>
598 11 Elena Grandi
$ gpg --card-status 
599 11 Elena Grandi
600 11 Elena Grandi
Reader ...........: ####
601 11 Elena Grandi
Application ID ...: ####
602 11 Elena Grandi
Version ..........: 2.0
603 11 Elena Grandi
Manufacturer .....: ####
604 11 Elena Grandi
Serial number ....: ####
605 11 Elena Grandi
Name of cardholder: [not set]
606 11 Elena Grandi
Language prefs ...: [not set]
607 11 Elena Grandi
Sex ..............: unspecified
608 11 Elena Grandi
URL of public key : [not set]
609 11 Elena Grandi
Login data .......: [not set]
610 11 Elena Grandi
Signature PIN ....: forced
611 11 Elena Grandi
Key attributes ...: rsa2048 rsa2048 rsa2048
612 11 Elena Grandi
Max. PIN lengths .: 127 127 127
613 11 Elena Grandi
PIN retry counter : 3 3 3
614 11 Elena Grandi
Signature counter : 0
615 11 Elena Grandi
Signature key ....: 2128 412C BC75 34F5 6305  9447 40A2 ADF0 FE9E 4620
616 11 Elena Grandi
      created ....: 2016-10-19 10:15:26
617 11 Elena Grandi
Encryption key....: 0B24 9C62 4A7D 19FE 7AB9  DCB3 ED9B BD7B 3BFF 900F
618 11 Elena Grandi
      created ....: 2016-10-19 10:17:57
619 11 Elena Grandi
Authentication key: 40E1 AE4A 7C13 FD8C C6EA  2C56 5F89 B668 295A E797
620 11 Elena Grandi
      created ....: 2016-10-19 10:24:14
621 11 Elena Grandi
General key info..: sub  rsa2048/40A2ADF0FE9E4620 2016-10-19 Random User <random@example.org>
622 11 Elena Grandi
sec   rsa4096/3E0EE5BAC50DF7C1  created: 2016-10-19  expires: never     
623 11 Elena Grandi
ssb   rsa4096/F303978FEBB6E995  created: 2016-10-19  expires: never     
624 11 Elena Grandi
ssb>  rsa2048/40A2ADF0FE9E4620  created: 2016-10-19  expires: 2017-10-19
625 11 Elena Grandi
                                card-no: ####
626 11 Elena Grandi
ssb>  rsa2048/ED9BBD7B3BFF900F  created: 2016-10-19  expires: 2017-10-19
627 11 Elena Grandi
                                card-no: ####
628 11 Elena Grandi
ssb>  rsa2048/5F89B668295AE797  created: 2016-10-19  expires: 2017-10-19
629 11 Elena Grandi
                                card-no: ####
630 11 Elena Grandi
</pre>
631 11 Elena Grandi
632 11 Elena Grandi
e non sono più presenti sul disco
633 11 Elena Grandi
634 11 Elena Grandi
<pre>
635 11 Elena Grandi
$ gpg --list-secret-keys 
636 11 Elena Grandi
/home/random/.gnupg/pubring.gpg
637 11 Elena Grandi
---------------------------------
638 11 Elena Grandi
sec   rsa4096 2016-10-19 [SC]
639 11 Elena Grandi
      19DB75A75734ABBEDB1124163E0EE5BAC50DF7C1
640 11 Elena Grandi
uid           [ultimate] Random User <random@example.org>
641 11 Elena Grandi
ssb   rsa4096 2016-10-19 [E]
642 11 Elena Grandi
ssb>  rsa2048 2016-10-19 [S] [expires: 2017-10-19]
643 11 Elena Grandi
ssb>  rsa2048 2016-10-19 [E] [expires: 2017-10-19]
644 11 Elena Grandi
ssb>  rsa2048 2016-10-19 [A] [expires: 2017-10-19]
645 11 Elena Grandi
</pre>
646 11 Elena Grandi
647 11 Elena Grandi
è però ancora presente la chiave principale.
648 10 Elena Grandi
649 13 Elena Grandi
h2. rimozione della chiave principale
650 13 Elena Grandi
651 14 Elena Grandi
Usando gpg 2.1 si possono rimuovere sottochiavi semplicemente cancellando file in @~/.gnupg/private-keys-v1.d/@; per scoprire quale file cancellare bisogna scoprire il _keygrip_ della chiave in questione:
652 14 Elena Grandi
653 14 Elena Grandi
<pre>
654 14 Elena Grandi
$ gpg --with-keygrip --list-key 3E0EE5BAC50DF7C1
655 14 Elena Grandi
pub   rsa4096 2016-10-19 [SC]
656 14 Elena Grandi
      19DB75A75734ABBEDB1124163E0EE5BAC50DF7C1
657 14 Elena Grandi
      Keygrip = 3BC042D5749A498AA2F904CF548C6B5DEDDF0600
658 14 Elena Grandi
uid           [ultimate] Random User <random@example.org>
659 14 Elena Grandi
sub   rsa4096 2016-10-19 [E]
660 14 Elena Grandi
      Keygrip = 0B2A484CBE52875A07F377A1A87F229C60277642
661 14 Elena Grandi
sub   rsa2048 2016-10-19 [S] [expires: 2017-10-19]
662 14 Elena Grandi
      Keygrip = AD155C5349ECE4D3725AD77269EC9E696A8191E9
663 14 Elena Grandi
sub   rsa2048 2016-10-19 [E] [expires: 2017-10-19]
664 14 Elena Grandi
      Keygrip = BFADD9EEDA2E38A77DCF925E58FFD4FFA2F50B7C
665 14 Elena Grandi
sub   rsa2048 2016-10-19 [A] [expires: 2017-10-19]
666 14 Elena Grandi
      Keygrip = D9F3249B5F583B7B4099B80DCAB343A9BA440BA8
667 14 Elena Grandi
</pre>
668 14 Elena Grandi
669 14 Elena Grandi
A questo punto è sufficiente rimuovere il file corrispondente alla chiave principale:
670 14 Elena Grandi
671 14 Elena Grandi
<pre>
672 14 Elena Grandi
$ rm ~/.gnupg/private-keys-v1.d/3BC042D5749A498AA2F904CF548C6B5DEDDF0600.key
673 14 Elena Grandi
</pre>
674 14 Elena Grandi
675 14 Elena Grandi
E si può verificare che la chiave sia stata effettivamente rimossa:
676 14 Elena Grandi
677 14 Elena Grandi
<pre>
678 14 Elena Grandi
$ gpg --list-secret-keys 3E0EE5BAC50DF7C1
679 14 Elena Grandi
sec#  rsa4096 2016-10-19 [SC]
680 14 Elena Grandi
      19DB75A75734ABBEDB1124163E0EE5BAC50DF7C1
681 14 Elena Grandi
uid           [ultimate] Random User <random@example.org>
682 14 Elena Grandi
ssb   rsa4096 2016-10-19 [E]
683 14 Elena Grandi
ssb>  rsa2048 2016-10-19 [S] [expires: 2017-10-19]
684 14 Elena Grandi
ssb>  rsa2048 2016-10-19 [E] [expires: 2017-10-19]
685 14 Elena Grandi
ssb>  rsa2048 2016-10-19 [A] [expires: 2017-10-19]
686 14 Elena Grandi
</pre>
687 14 Elena Grandi
688 14 Elena Grandi
dove @#@ dopo @sec@ indica che la chiave segreta non è presente sulla macchina in questione.
689 14 Elena Grandi
690 2 Elena Grandi
h2. configurazione di ssh
691 6 Elena Grandi
692 15 Elena Grandi
Per abilitare l'autenticazione ssh tramite chiave, aggiungere la seguente riga al file @~/.gnupg/gpg-agent.conf@:
693 15 Elena Grandi
694 15 Elena Grandi
<pre>
695 15 Elena Grandi
enable-ssh-support
696 15 Elena Grandi
</pre>
697 15 Elena Grandi
698 15 Elena Grandi
Questo dovrebbe essere sufficiente per far sì che le connessioni ssh usino la chiave gpg per l'autenticazione.
699 15 Elena Grandi
700 15 Elena Grandi
Il caso di non funzionamento più comune è che il gpg-agent non stia effettivamente girando: dato che generalmente è lanciato alla bisogna da GnuPG, è sufficiente usare un comando @gpg@, ad esempio @gpg --card-status@ e da quel momento in poi l'agent sarà disponibile per ssh,
701 15 Elena Grandi
702 15 Elena Grandi
Un secondo caso di non funzionamento potrebbe essere dovuto alla presenza di un altro agent per ssh: da Debian stretch in poi questo non dovrebbe essere presente, ma vecchie versioni o altre distribuzioni potrebbero lanciarlo ad esempio tramite degli script in @/etc/X11/Xsession.d@, da disattivare.
703 15 Elena Grandi
704 16 Elena Grandi
h2. Esportazione della chiave pubblica
705 16 Elena Grandi
706 17 Elena Grandi
Adesso che tutto è funzionante, si può inviare la propria chiave pubblica sui keyserver:
707 17 Elena Grandi
708 17 Elena Grandi
<pre>
709 17 Elena Grandi
$ gpg --send-keys 3E0EE5BAC50DF7C1
710 17 Elena Grandi
gpg: sending key 3E0EE5BAC50DF7C1 to [server]
711 17 Elena Grandi
</pre>
712 17 Elena Grandi
713 17 Elena Grandi
Nel caso non abbiate configurato un server in @~/.gnupg/dirmngr.conf@ (o in @~/.gnupg/gpg.conf@ ) lo si può specificare sulla riga di comando:
714 17 Elena Grandi
715 17 Elena Grandi
<pre>
716 17 Elena Grandi
$ gpg --keyserver keys.gnupg.net --send-keys 3E0EE5BAC50DF7C1
717 17 Elena Grandi
gpg: sending key 3E0EE5BAC50DF7C1 to hkp://keys.gnupg.net
718 17 Elena Grandi
</pre>
719 17 Elena Grandi
720 17 Elena Grandi
Se la chiave non deve essere pubblica, è comunque necessario estrarne la parte pubblica da importare su altre macchine dove si vuole usare la Card:
721 17 Elena Grandi
722 17 Elena Grandi
<pre>
723 17 Elena Grandi
gpg --armour --export 3E0EE5BAC50DF7C1 > 3E0EE5BAC50DF7C1.asc
724 17 Elena Grandi
</pre>
725 17 Elena Grandi
726 16 Elena Grandi
h2. Configurazione su una nuova macchina
727 6 Elena Grandi
728 18 Elena Grandi
Per poter usare la Card si una macchina diversa è necessario far conoscere a GnuPG la chiave: innanzitutto importando la chiave pubblica:
729 18 Elena Grandi
730 18 Elena Grandi
<pre>
731 18 Elena Grandi
gpg --recv-key 3E0EE5BAC50DF7C1
732 18 Elena Grandi
</pre>
733 18 Elena Grandi
734 18 Elena Grandi
oppure
735 18 Elena Grandi
736 18 Elena Grandi
<pre>
737 18 Elena Grandi
gpg --import 3E0EE5BAC50DF7C1.asc
738 18 Elena Grandi
</pre>
739 18 Elena Grandi
740 18 Elena Grandi
e quindi far ricreare gli stub di chiavi dalle chiavi presenti sulla card, semplicemente con 
741 18 Elena Grandi
742 18 Elena Grandi
<pre>
743 18 Elena Grandi
$ gpg --card-status 
744 18 Elena Grandi
745 18 Elena Grandi
Reader ...........: ####
746 18 Elena Grandi
Application ID ...: ####
747 18 Elena Grandi
Version ..........: 2.0
748 18 Elena Grandi
Manufacturer .....: ####
749 18 Elena Grandi
Serial number ....: ####
750 18 Elena Grandi
Name of cardholder: [not set]
751 18 Elena Grandi
Language prefs ...: [not set]
752 18 Elena Grandi
Sex ..............: unspecified
753 18 Elena Grandi
URL of public key : [not set]
754 18 Elena Grandi
Login data .......: [not set]
755 18 Elena Grandi
Signature PIN ....: forced
756 18 Elena Grandi
Key attributes ...: rsa2048 rsa2048 rsa2048
757 18 Elena Grandi
Max. PIN lengths .: 127 127 127
758 18 Elena Grandi
PIN retry counter : 3 3 3
759 18 Elena Grandi
Signature counter : 0
760 18 Elena Grandi
Signature key ....: 2128 412C BC75 34F5 6305  9447 40A2 ADF0 FE9E 4620
761 18 Elena Grandi
      created ....: 2016-10-19 10:15:26
762 18 Elena Grandi
Encryption key....: 0B24 9C62 4A7D 19FE 7AB9  DCB3 ED9B BD7B 3BFF 900F
763 18 Elena Grandi
      created ....: 2016-10-19 10:17:57
764 18 Elena Grandi
Authentication key: 40E1 AE4A 7C13 FD8C C6EA  2C56 5F89 B668 295A E797
765 18 Elena Grandi
      created ....: 2016-10-19 10:24:14
766 18 Elena Grandi
General key info..: sub  rsa2048/40A2ADF0FE9E4620 2016-10-19 Random User <random@example.org>
767 18 Elena Grandi
sec   rsa4096/3E0EE5BAC50DF7C1  created: 2016-10-19  expires: never     
768 18 Elena Grandi
ssb   rsa4096/F303978FEBB6E995  created: 2016-10-19  expires: never     
769 18 Elena Grandi
ssb>  rsa2048/40A2ADF0FE9E4620  created: 2016-10-19  expires: 2017-10-19
770 18 Elena Grandi
                                card-no: ####
771 18 Elena Grandi
ssb>  rsa2048/ED9BBD7B3BFF900F  created: 2016-10-19  expires: 2017-10-19
772 18 Elena Grandi
                                card-no: ####
773 18 Elena Grandi
ssb>  rsa2048/5F89B668295AE797  created: 2016-10-19  expires: 2017-10-19
774 18 Elena Grandi
                                card-no: ####
775 18 Elena Grandi
</pre>
776 18 Elena Grandi
777 6 Elena Grandi
h2. configurazione su una nuova macchina, con versioni precedenti di gpg