Strumenti per acquisire e convertire il Web

Come proteggere il contenuto delle acquisizioni?

Catture crittografate

Nell'era di leggi come il Regolamento generale sulla protezione dei dati o il GDPR che protegge le informazioni dell'utente è diventato più importante che mai. Quando viene eseguita un'acquisizione, questa viene memorizzata nella cache per un breve periodo sui nostri server per consentirne il download. Mentre i nostri server sono sicuri e non controlliamo le acquisizioni di un utente senza autorizzazione. Questa non è una protezione sufficiente in alcuni scenari durante la gestione delle informazioni personali.

Il primo potenziale miglioramento è quello di non memorizzare più nella cache modificando la lunghezza della cache in zero minuti, sul tuo pagina dell'account. Nota, tuttavia, ciò significa che l'acquisizione non sarà disponibile per il download per molto tempo, quindi deve essere scaricata immediatamente dopo la sua creazione.

Un'altra possibile preoccupazione per la sicurezza è l'effettivo processo di invio dei dati sensibili a noi. Per proteggere questi dati dovresti prima abilitare SSL, quindi una volta che riceviamo i dati e questi vengono elaborati, cosa che accade abbastanza rapidamente, verranno automaticamente eliminati dal nostro sistema per garantire che non vi siano violazioni della sicurezza.

Inoltre, è possibile aggiungere maggiore sicurezza alle acquisizioni PDF o DOCX proteggere con password i documenti. Ciò garantisce che solo quegli utenti con la password corretta possano accedere a un file protetto.

Tuttavia, se si stanno acquisendo informazioni molto sensibili come i registri ospedalieri ecc. E si desidera un ulteriore livello di protezione, è possibile crittografare le acquisizioni risultanti stesse. Per fare ciò, si specifica una chiave di crittografia con ogni richiesta, queste chiavi non sono memorizzate da GrabzIt. Questa chiave può essere utilizzata per crittografare l'acquisizione proteggendo le informazioni. Poiché non memorizziamo la chiave, non possiamo aiutarti a recuperare acquisizioni crittografate. Una volta ricevuta l'acquisizione, utilizzare la chiave generata in precedenza per decrittografarla.

Nell'esempio seguente viene creata e inviata a GrabzIt una chiave crittograficamente sicura, che viene quindi utilizzata per crittografare l'acquisizione. Questa stessa chiave di crittografia viene quindi utilizzata per decrittografare il risultato.

GrabzItClient grabzIt = new GrabzItClient("Sign in to view your Application Key", "Sign in to view your Application Secret");
grabzIt.UseSSL(true);

string encryptionKey = grabzIt.CreateEncryptionKey();

ImageOptions options = new ImageOptions();
options.EncryptionKey = encryptionKey;

grabzIt.URLToImage("http://www.spacex.com", options);
GrabzItFile encryptedCapture = grabzIt.SaveTo();

GrabzItFile decryptedCapture = grabzIt.Decrypt(encryptedCapture, encryptionKey);

Nell'esempio seguente viene creata e inviata a GrabzIt una chiave crittograficamente sicura, che viene quindi utilizzata per crittografare l'acquisizione. Questa stessa chiave di crittografia viene quindi utilizzata per decrittografare il risultato.

Per utilizzare le acquisizioni crittografate con Java 6, 7 e 8, installare i file delle politiche sulla giurisdizione illimitata di Java Cryptography Extension (JCE) into tutte le cartelle / jre / lib / security / delle cartelle di installazione Java.

GrabzItClient grabzIt = new GrabzItClient("Sign in to view your Application Key", "Sign in to view your Application Secret");
grabzIt.UseSSL(true);

String encryptionKey = grabzIt.CreateEncryptionKey();

ImageOptions options = new ImageOptions();
options.setEncryptionKey(encryptionKey);

grabzIt.URLToImage("http://www.spacex.com", options);
GrabzItFile encryptedCapture = grabzIt.SaveTo();

GrabzItFile decryptedCapture = grabzIt.Decrypt(encryptedCapture, encryptionKey);

Nell'esempio seguente una chiave crittograficamente sicura viene automaticamente creata e inviata a GrabzIt, quindi viene utilizzata per crittografare l'acquisizione. Questa stessa chiave di crittografia viene quindi utilizzata per decrittografare il risultato automaticamente passando true al metodo DataURI, che può quindi essere letto nel metodo di callback.

<html>
<head>
<script src="https://cdn.jsdelivr.net/npm/@grabzit/js@3.4.8/grabzit.min.js"></script>
</head>
<body>
<img id="capture"></img>
function callback(dataUri)
{
    document.getElementById('capture').src = dataUri;
}
<script type="text/javascript">
GrabzIt("Sign in to view your Application Key").UseSSL().Encrypt().ConvertURL("http://www.spacex.com").DataURI(callback, true);
</script>
</body>
</html>

Nell'esempio seguente viene creata e inviata a GrabzIt una chiave crittograficamente sicura, che viene quindi utilizzata per crittografare l'acquisizione. Questa stessa chiave di crittografia viene quindi utilizzata per decrittografare il risultato.

var grabzit = require('grabzit');

var client = new grabzit("Sign in to view your Application Key", "Sign in to view your Application Secret");
client.use_ssl(true);

var encryptionKey = client.create_encryption_key();

client.url_to_image("http://www.spacex.com", {"encryptionKey":encryptionKey});
client.save_to(null, function (error, result){
    if (error != null){
        throw error;
    }
    var decryptedBytes = client.decrypt(result, encryptionKey);
}); 	

Sfortunatamente Perl non può decodificare la crittografia AES in modo nativo e richiede eseguibili esterni o compilazione C. Pertanto non abbiamo aggiunto questa funzionalità alla nostra API Perl, ma puoi aggiungere tu stesso questa funzionalità usando la guida qui sotto.

$grabzIt = GrabzItClient->new("Sign in to view your Application Key", "Sign in to view your Application Secret");
$grabzIt->UseSSL(1);

$options = GrabzItImageOptions->new();
$options->encryptionKey("UUK2Xo9OLT2dFvN0wPBGOMZRYqD6WxqFtrZK9YrG+Hg=");
$grabzIt->URLToImage("http://www.spacex.com", $options);
//needs to be decrypted
$data = $grabzIt->SaveTo();

Nell'esempio seguente viene creata e inviata a GrabzIt una chiave crittograficamente sicura, che viene quindi utilizzata per crittografare l'acquisizione. Questa stessa chiave di crittografia viene quindi utilizzata per decrittografare il risultato.

$grabzIt = new \GrabzIt\GrabzItClient("Sign in to view your Application Key", "Sign in to view your Application Secret");
$grabzIt->UseSSL(true);

$encryptionKey = $grabzIt->CreateEncryptionKey();

$options = new \GrabzIt\GrabzItImageOptions();
$options->setEncryptionKey($encryptionKey);

$grabzIt->URLToImage("http://www.spacex.com", $options);
$encryptedData = $grabzIt->SaveTo();

$decryptedData = $grabzIt->Decrypt($encryptedData, $encryptionKey);

Nell'esempio seguente viene creata e inviata a GrabzIt una chiave crittograficamente sicura, che viene quindi utilizzata per crittografare l'acquisizione. Questa stessa chiave di crittografia viene quindi utilizzata per decrittografare il risultato.

grabzIt = GrabzItClient.GrabzItClient("Sign in to view your Application Key", "Sign in to view your Application Secret")
grabzIt.UseSSL(True)

encryptionKey = grabzIt.CreateEncryptionKey()

options = GrabzItImageOptions.GrabzItImageOptions()
options.encryptionKey = encryptionKey

grabzIt.URLToImage("http://www.spacex.com", options)
encryptedData = grabzIt.SaveTo()

decryptedData = grabzIt.Decrypt(encryptedData, encryptionKey)

Nell'esempio seguente viene creata e inviata a GrabzIt una chiave crittograficamente sicura, che viene quindi utilizzata per crittografare l'acquisizione. Questa stessa chiave di crittografia viene quindi utilizzata per decrittografare il risultato.

grabzIt = GrabzIt::Client.new("Sign in to view your Application Key", "Sign in to view your Application Secret")
grabzIt.use_ssl(true)

encryptionKey = grabzIt.create_encryption_key()

options = GrabzIt::ImageOptions.new()
options.encryptionKey = encryptionKey

grabzIt.url_to_image("http://www.spacex.com", options)
encryptedData = grabzIt.save_to()

decryptedData = grabzIt.decrypt(encryptedData, encryptionKey)

Come funziona la crittografia di acquisizione di GrabzIt

Questa guida è molto tecnica e mira ad aiutare gli sviluppatori a capire come funziona la nostra crittografia. Dovrebbe essere particolarmente utile per gli sviluppatori Perl, poiché la lingua non ha un pacchetto Perl open source che non richiede il completamento o l'installazione di strumenti di terze parti come Open SSL.

Le acquisizioni crittografate utilizzano la crittografia 256 bit Advanced Encryption Standard (AES). Utilizza inoltre una modalità operativa di cifratura a blocchi Cipher Block Chaining (CBC).

Per GrabzIt per crittografare un'acquisizione una chiave di crittografia 64 di base che i caratteri 44 devono essere passati a lungo all'oggetto opzione. Per creare questa chiave di crittografia dovresti scegliere 32 byte crittograficamente casuali sicuri. Questi dovrebbero quindi essere codificati per basare 64. Dato che sono byte crittograficamente sicuri, saranno difficili da prevedere e quindi più difficili da decifrare.

Quando GrabzIt riceve una richiesta di acquisizione con una chiave di crittografia, l'acquisizione viene crittografata e il vettore di inizializzazione (IV) viene inserito all'inizio del file. Questo IV è lungo 16 byte e deve essere rimosso dalla parte anteriore del file prima della decrittografia. Il IV deve anche essere passato all'algoritmo AES per abilitare la decodifica. Quando un'acquisizione viene crittografata, nessun padding viene aggiunto al file, quindi quando è necessario disabilitare la decodifica del padding.

Ricorda se hai creato un miglioramento a una delle nostre API client esistenti o per una lingua completamente nuova puoi condividerlo con la community tramite github.