• Programmazione Android
  • CORSI ONLINE
  • Web Agency

Logo

Corsi di programmazione web e mobile online
Navigation
  • Home
  • CORSI ONLINE
  • Tutorial Pratici
  • GUIDE COMPLETE
    • Corso completo di C
    • Corso videogame con Cocos2d
    • Programmazione Cocoa Touch
  • Sezioni
    • Libri e manuali
    • Tips & Tricks
    • Risorse utili
    • Strumenti di Sviluppo
    • Materiale OpenSource
    • Framework
    • Guide Teoriche
    • Guide varie
    • Grafica e Design
    • iPad
    • News
    • Video Tutorial
    • Windows Phone
  • Pubblicità
  • About
    • Chi siamo
    • Pubblicazioni
    • Collabora
    • Sostieni devAPP

Crittografia: concetti di base per ogni uso

By Giuseppe Maggi | on 6 Dicembre 2017 | 0 Comment
Senza categoria
Tutorial crittografia

Per crittografia si intende l’insieme delle tecniche finalizzate a codificare in maniera indecifrabile messaggi con la possibilità di riportarli “in chiaro”. Esiste da millenni ed è sempre stata utilizzata per lo più da militari, spie e diplomatici. Negli ultimi decenni, è entrata nelle nostre vite proteggendo connessioni Internet in https, home banking, e-commerce, app mobile e altro ancora.

Incontriamo e incontreremo spesso nei nostri articoli la crittografia pertanto vogliamo esporne in questo post alcuni concetti fondamentali di utilità generale ed infine proporre un piccolo esperimento da riga di comando.

La crittografia può essere per lo più di due tipi:

  • simmetrica, dove con una stessa password si può cifrare e decifrare un messaggio. Il suo utilizzo è molto pratico in locale ma si scontra con grandi difficoltà nell’utilizzo in remoto: quando si deve inviare un messaggio cifrato attraverso la rete è piuttosto complesso condividere in maniera sicura la password che metterebbe il destinatario in condizione di leggerne il contenuto;
  • asimmetrica o a chiave pubblica, si basa sull’uso di due chiavi: una pubblica per cifrare ed una privata per decifrare. Chi invia il messaggio cifra i dati con la chiave pubblica del destinatario il quale li potrà decifrare con quella privata. Su questo tipo di crittografia si basano certificati digitali e protocolli di rete “sicurizzati”.

In base al tipo di crittografia che si vuole utilizzare si potrà scegliere l’algoritmo che si preferisce specificando nella maggior parte dei casi il numero di bit che comporranno la chiave di cifratura. Nel caso di crittografia simmetrica, uno degli algoritmi più utilizzati attualmente è AES, possibilmente fissando la chiave ad una lunghezza di 256 bit.

Possiamo sperimentare un pò di crittografia utilizzando vari software. Qui prenderemo in considerazione openssl, solitamente disponibile nelle installazioni Linux.

Scriviamo un file di testo in cui mettiamo alcune frasi di esempio. Il nostro conterrà:

Frasi di esempio.
Questo testo sarà cifrato

Decidiamo di nominarlo in.txt, il seguente comando ne produrrà una versione cifrata:

> openssl enc -aes-256-cbc -salt -in in.txt -out in.txt.enc

La password per la cifratura simmetrica sarà scelta al momento: openssl ci chiederà di fornirla e di confermarla. Vedremo così apparire nella cartella di lavoro il file in.txt.enc il cui contenuto non sarà più leggibile.

E’ stato utilizzato AES con chiave a 256 bit con CBC (modalità per cui si evita che blocchi uguali in chiaro vengano cifrati alla stessa maniera). L’opzione -salt  richiede che venga applicato il meccanismo del Salt che impone di aggiungere dei caratteri casuali alla password prima della cifratura al fine di rendere più difficile attacchi alla sicurezza del testo cifrato. Per decifrare il contenuto del file in.txt.enc, potremo utilizzare la seguente invocazione di openssl:

> openssl enc -aes-256-cbc -salt -d -in in.txt.enc

Ci verrà chiesta la password che abbiamo usato per la cifratura e vedremo in output il contenuto iniziale del file. Notare che il comando utilizzato è sempre enc ma è l’opzione -d che ordina di riportare in chiaro il messaggio.

La crittografia è una tematica vastissima e spesso complessa, una scienza al confine tra informatica e matematica, ma conoscerne le basi è molto utile sia per utilizzarla come protezione di dati sensibili utili al nostro lavoro sia per padroneggiare meglio argomenti come certificati digitali, https e sistemi di protezione vari.

Alla prossima!

 

 

 

Share this story:
  • tweet

Tags: aescertificati digitalicrittografiacrittografia asimmetricacrittografia simmetricaopensslTutorial Pratici

Recent Posts

  • Parte il percorso programmatori iOS in Swift su devACADEMY.it

    20 Dicembre 2017 - 0 Comment
  • Android, crittografare dati velocemente con Encryption

    24 Settembre 2018 - 0 Comment
  • Sql2o, accesso immediato ai database tramite Java

    3 Settembre 2018 - 0 Comment
  • Okio, libreria per ottimizzare l’input/output in Java

    27 Agosto 2018 - 0 Comment

Related Posts

  • Android, crittografare dati velocemente con Encryption

    24 Settembre 2018 - 0 Comment
  • Un server HTTPS con Node.js

    21 Settembre 2016 - 0 Comment

Author Description

No Responses to “Crittografia: concetti di base per ogni uso”

Leave a Reply

Your email address will not be published. Required fields are marked *


*
*

Corso online di programmazione android e java

SEZIONI

  • Android
  • Comunicazioni
  • Contest
  • Corsi ed Eventi
  • Corso completo di C
  • Corso programmazione videogiochi
  • Framework
  • Grafica e Design
  • Guida rapida alla programmazione Cocoa Touch
  • Guide Teoriche
  • Guide varie
  • iPad
  • Le nostre applicazioni
  • Libri e manuali
  • Materiale OpenSource
  • News
  • Pillole di C++
  • Progetti completi
  • Risorse utili
  • Strumenti di Sviluppo
  • Swift
  • Tips & Tricks
  • Tutorial Pratici
  • Video Tutorial
  • Windows Phone

Siti Amici

  • Adrirobot
  • Allmobileworld
  • Apple Notizie
  • Apple Tribù
  • Avvocato360
  • Blog informatico 360°
  • bubi devs
  • fotogriPhone
  • GiovaTech
  • iApp-Mac
  • iOS Developer Program
  • iPodMania
  • MelaRumors
  • Meritocracy
  • SoloTablet
  • TecnoUser
  • Privacy & Cookie Policy
©2009-2018 devAPP - All Rights Reserved | Contattaci
devAPP.it è un progetto di DEVAPP S.R.L. - Web & Mobile Agency di Torino
Str. Volpiano, 54 - 10040 Leini (TO) - C.F. e P.IVA 11263180017 - REA TO1199665 - Cap. Soc. € 10.000,00 i.v.

devACADEMY.it

Vuoi imparare a programmare?

Iscriviti e accedi a TUTTI i corsi con un’unica iscrizione.
Oltre 70 corsi e migliaia di videolezioni online e in italiano a tua disposizione.

ISCRIVITI SUBITO