Firme digitali e crittografia in Linux con GnuPG

Introduzione e usi pratici

Giacomo Catenazzi <cate@cateee.net>
TiLUG day primavera 2007 9 giugno 2007

Introduzione

La crittografia non aumenta la sicurezza!

GnuPG (gpg)

Crittografia a chiave simmetrica

Chiave simmetrica con gpg

Crittografia a chiave pubblica

Chiave publica per criptare, chiave privata per decodificare.

Crittografia: sistemi ibridi

  1. Generazione di una chiave simmetrica (session key)
  2. criptare il documento con la chiave simmetrica
  3. criptare la chiave simmetrica con la chiave publica
  4. distribuire il documento e la chiave criptata

Crittografia a chiave pubblica con gpg

In realta' e' un sistema ibrido

Codificare: gpg --encrypt  --recipient alice@tilig.ch doc.txt
  • anche con piu' --recipient
  • supporta --output, --armor
  • comprime il file (tranne con --armor

Decodificare: gpg --decypt doc.txt.gpg

Hashing a senso unico

MD5, SHA1, SHA256

Un codice di integrita':
  • riassume un documento in pochi bit (da 128bit)
  • praticamente impossibile trovare due documenti identici
  • praticamente impossibile modificare un documento mantenendo la stessa hash

Firma digitale

Combina l'hasing a senso unico con la crittografia publica, ma funziona solo con alcuni algoritmi

Si certifica ogni singolo byte (e nella giusta posizione), spazi bianchi compresi

OpenPGP (RFC-2440) definisce lo standard di interoperabilita'

Serve la chiave del mittente

Firma digitale con gpg

firma: gpg --sign doc.txt (comprime e file binario)

verifica: gpg --verify doc.txt

Verificare ed estrarre: gpg --decrypt doc.txt

Firma chiara (non modifica il testo, usato nelle email): --clearsign

Firma staccata --detach (e --verify per controllare), usata per verificare gli archivi

Gestione delle firme

creare una nuova chiave: gpg --gen-key

Revokation certificate:

exportare una chiave:
  • file: gpg --armor --export chiave
  • key server: gpg --send-key chiave
importare una chiave
  • file: --import
  • key server: recv-key

Fingerprint

rete di fiducia (Web of trust)

blabla

include:: licence.en.rst .. include:: common.inc .. footer:: TiLUG day primavera 2007 9 giugno 2007