• Raffaele Fanizzi su LinkedIn

Crypto Suite: le app per proteggere i propri dati

Contestualmente alla nuova grafica di questo blog, vi presento il frutto di qualche mese di lavoro: una nuova famiglia di app per iPhone che nasce con l'obiettivo di proteggere i vostri dati.

Come spesso accade nel mondo degli sviluppatori software, l'idea dietro lo sviluppo di un software scaturisce da un'esigenza personale e la suite di app in questione è stata elaborata proprio a seguito di una mia necessità: poter avere a portata di mano (o se vogliamo di app) una serie di informazioni sensibili.

Il primo esempio che mi sovviene è quello della carta di credito o prepagata. Personalmente mi è capitato più di una volta di dover effettuare acquisti su internet a casa, in ufficio o magari in viaggio e, pertanto, di dover avere sotto mano i dati dalla carta prepagata che solitamente uso per questo tipo di acquisti. Altrettanto accade per le password o il pin per accedere a siti internet o per fare operazioni bancarie. Sono sicuro che più di uno tra voi ha memorizzato questi numeri in qualche voce della vostra rubrica telefonica, una soluzione sicuramente pratica, ma assolutamente non sicura per ragioni che potete facilmente intuire.

La soluzione a questo problema è stata quella di sviluppare un'app che potesse consentirmi di immagazzinare e proteggere nel mio iPhone questi dati. Come immaginavo realizzare questo tipo di app è una sfida da molteplici punti di vista. Oggi non è infrequente nello sviluppo software concentrarsi principalmente sulle funzionalità, delegando problematiche quali le prestazioni, l'uso della RAM, ecc... ai potenti computer che abbiamo a disposizione.

Volete un esempio? Supponiamo di voler criptare un file di testo e di aver già scelto l'algoritmo di cifratura e tutte le impostazioni ad esso associato. Possiamo decidere di leggere interamente il file in memoria, di criptarlo sempre interamente in memoria e di persisterlo ad operazione conclusa. Oppure possiamo scegliere di fare un bel ciclo e, data la dimensione di un buffer, ad ogni ciclo leggere, criptare e persistere solo la quantità di informazioni presente nel buffer. Vi assicuro che il risultato finale in entrambi i casi è lo stesso, ma in termini di utilizzo della memoria le cose cambiano notevolmente.

Conosco diversi amici e colleghi che si preoccuperebbero di usare meno memoria possibile solo se messi alle strette, ma quando si sviluppa un'app per uno smartphone bisogna fare i conti con due aspetti:

  • benché oggi esistano smartphone quad core con 1 GB di RAM, la realtà è che se vogliamo sviluppare un'app che funzioni sul più ampio numero di dispositivi possibile (dal l'iPhone 3G al 4S per quanto mi riguarda) dobbiamo imporci ordini di grandezza di parecchio inferiori rispetto a quelli messi a disposizione su un PC moderno sia in termini di potenza di calcolo, sia di memoria
  • iOS non è Windows e ciò significa che non esiste pagining o un qualche altro meccanismo che, arrivati al limite della RAM fisica, vi aiuta tutto sommato ad andare avanti. In iOS se un'app consuma più di quanto il sistema operativo ritenga giusto (sul iPhone 3G parliamo di qualche decina di MB, non di più), la prima volta gli arriva un bel Memory Warning, la seconda volta viene piallata senza alcuna possibilità di gestire la cosa

Qualcuno potrà chiedersi: "ma ci vuole così tanta RAM per criptare quattro cifre del PIN?". Il problema è che come spesso accade mi sono lasciato prendere la mano e, quindi, nello sviluppo di queste app non mi sono limitato alla possibilità di criptare e memorizzare dati testuali, ma ho esteso il tutto a documenti, immagini e fotografie. Vi assicuro che in quest'ultimo caso, quando fai una foto a 8 MPixel, non stiamo parlando di pochi byte, ma di parecchi MB di dati in grado di mettere facilmente in ginocchio le limitate risorse hardware di uno smartphone.

   

Nel complesso le applicazioni che vi presento oggi sono quattro: CryptoBox Pro, CryptoBox, CryptoPic e CryptoDoc. Le prime due sono in grado di immagazzinare e criptare informazioni testuali, immagini, foto e documenti, mentre le restanti rappresentano delle versioni lite che non implementano rispettivamente la parte documentale e delle immagini.

Tutte le app utilizzano cifratura AES a 256 bit, mentre solo CryptoBox Pro affianca alla cifratura l'hashing per verificare che i dati non siano stati in qualche modo manipolati dall'esterno.

Sull'Apple Store trovate decine di app che vi consentono di proteggere i vostri dati, ma la differenza fondamentale tra le mie app e, fatte le dovute eccezioni, la maggioranza delle altre app, è che queste ultime nascondono semplicemente i dati dietro una password senza preoccuparsi di criptarli. In questi casi è sufficiente accedere al file system dell'iPhone per leggere i vostri dati bypassando l'app.

CryptoBox Pro, CryptoBox, CryptoPic e CryptoDoc, invece, proteggono le vostre informazioni in un formato che risulterebbe inutilizzabile a chiunque non conosca la password che avete scelto per criptarli: anche nel malaugurato caso in cui doveste perdere l'iPhone, non dovreste temere nulla.

Tra le altre funzionalità vi segnalo anche l'elenco degli accessi non autorizzati che riporta data, ora, posizione GPS e foto di tutti gli accessi non autorizzati, e la antipanic gesture, una gesture che vi consente di riportare rapidamente l'app nella prima schermata di accesso semplicemente coprendo lo schermo con la mano, utile se si avvicina qualcuno al quale non volete far vedere i vostri dati.

Le app in questo momento sono localizzate in inglese. Anche se penso che le funzionalità siano così semplici ed immediate da essere pienamente comprensibili da chiunque conosca anche molto superficialmente l'inglese, sto comunque lavorando alla traduzione in italiano.

Se volete maggiori informazioni su queste nuove app vi invito a visitare il nuovo sito http://cryptolab.vifani.com/

blog comments powered by Disqus

Archivio Blog