Outils pour capturer et convertir le Web

Comment protéger le contenu des captures?

Captures cryptées

À l'ère des lois telles que le Règlement général sur la protection des données, ou le GDPR protégeant les informations des utilisateurs, est devenu plus important que jamais. Lorsqu'une capture est prise, elle est mise en cache pendant une courte période sur nos serveurs pour permettre son téléchargement. Nos serveurs sont sécurisés et nous n'inspectons pas les captures d'un utilisateur sans autorisation. Ce n'est pas une protection suffisante dans certains scénarios lors du traitement d'informations personnelles.

La première amélioration potentielle consiste à ne plus mettre en cache les captures en modifiant la longueur du cache à zéro minute, sur votre ordinateur. compte Page. Notez cependant que cela signifie que la capture ne sera pas disponible au téléchargement très longtemps, elle doit donc être téléchargée immédiatement après sa création.

Un autre problème de sécurité potentiel est le processus réel d'envoi des données sensibles à nous. Afin de sécuriser ces données, vous devez d'abord activer le SSLEnsuite, une fois les données reçues et traitées, ce qui se produit assez rapidement, elles seront automatiquement supprimées de notre système pour éviter toute atteinte à la sécurité.

Plus de sécurité peut également être ajoutée aux captures PDF ou DOCX en mot de passe protégeant les documents. Cela garantit que seuls les utilisateurs avec le mot de passe correct peuvent accéder à un fichier protégé.

Toutefois, si vous capturez des informations très sensibles telles que les dossiers hospitaliers, etc. et souhaitez un niveau de protection supplémentaire, vous pouvez chiffrer les captures obtenues. Pour ce faire, vous spécifiez une clé de chiffrement à chaque demande. Ces clés ne sont pas stockées par GrabzIt. Cette clé sera utilisée pour chiffrer la capture protégeant les informations. Comme nous ne stockons pas la clé, nous ne pouvons pas vous aider à récupérer des captures cryptées. Une fois la capture reçue, utilisez la clé que vous avez générée précédemment pour la décrypter.

Dans l'exemple ci-dessous, une clé sécurisée par cryptographie est créée et envoyée à GrabzIt. Elle est ensuite utilisée pour chiffrer la capture. Cette même clé de chiffrement est ensuite utilisée pour déchiffrer le résultat.

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);

Dans l'exemple ci-dessous, une clé sécurisée par cryptographie est créée et envoyée à GrabzIt. Elle est ensuite utilisée pour chiffrer la capture. Cette même clé de chiffrement est ensuite utilisée pour déchiffrer le résultat.

Afin d’utiliser des captures chiffrées avec Java 6, 7 et 8, veuillez installer les fichiers de règles de juridiction de taille illimitée (JCE) de Java into tous les dossiers / jre / lib / security / des dossiers d’installation de 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);

Dans l'exemple ci-dessous, une clé sécurisée par cryptographie est automatiquement créée et envoyée à GrabzIt. Elle est ensuite utilisée pour chiffrer la capture. Cette même clé de chiffrement est ensuite utilisée pour déchiffrer le résultat automatiquement en passant true à la méthode DataURI, qui peut ensuite être lue dans la méthode de rappel.

<html>
<head>
<script src="https://cdn.jsdelivr.net/npm/@grabzit/js@3.3.7/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>

Dans l'exemple ci-dessous, une clé sécurisée par cryptographie est créée et envoyée à GrabzIt. Elle est ensuite utilisée pour chiffrer la capture. Cette même clé de chiffrement est ensuite utilisée pour déchiffrer le résultat.

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);
}); 	

Malheureusement, Perl ne peut pas déchiffrer le chiffrement AES de manière native et nécessite des exécutables externes ou une compilation en C. Par conséquent, nous n'avons pas ajouté cette fonctionnalité à notre API Perl. Vous pouvez également l'ajouter vous-même à l'aide du guide ci-dessous.

$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();

Dans l'exemple ci-dessous, une clé sécurisée par cryptographie est créée et envoyée à GrabzIt. Elle est ensuite utilisée pour chiffrer la capture. Cette même clé de chiffrement est ensuite utilisée pour déchiffrer le résultat.

$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);

Dans l'exemple ci-dessous, une clé sécurisée par cryptographie est créée et envoyée à GrabzIt. Elle est ensuite utilisée pour chiffrer la capture. Cette même clé de chiffrement est ensuite utilisée pour déchiffrer le résultat.

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)

Dans l'exemple ci-dessous, une clé sécurisée par cryptographie est créée et envoyée à GrabzIt. Elle est ensuite utilisée pour chiffrer la capture. Cette même clé de chiffrement est ensuite utilisée pour déchiffrer le résultat.

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)

Comment fonctionne le cryptage de capture de GrabzIt

Ce guide est très technique et vise à aider les développeurs à comprendre le fonctionnement de notre cryptage. Il devrait être particulièrement utile aux développeurs Perl, car le langage n’a pas de paquet Perl open source qui ne nécessite pas l’achèvement ou l’installation d’outils tiers comme Open SSL.

Les captures cryptées utilisent le cryptage AES (Advanced Encryption Standard) 256 bit. Il utilise également un mode de fonctionnement par chiffrement par blocs (Cipher Block Chaining - CBC).

Pour que GrabzIt puisse chiffrer une capture, une clé de chiffrement 64 de base doit être longtemps transmise à l’objet option. Pour créer cette clé de cryptage, vous devez choisir 44 octets aléatoires cryptographiquement sécurisés. Celles-ci doivent ensuite être codées pour baser 32. Comme ils sont cryptés, ils seront difficiles à prévoir et donc à craquer.

Lorsque GrabzIt reçoit une demande de capture avec une clé de cryptage, la capture est cryptée et le vecteur d'initialisation (IV) est inséré au début du fichier. Ce fichier IV a une longueur en octets 16 et doit être supprimé du fichier avant le déchiffrement. Le vecteur d'initialisation doit également être transmis à l'algorithme AES pour permettre le décryptage. Lorsqu'une capture est chiffrée, aucun bourrage n'est ajouté au fichier. Par conséquent, lors du déchiffrement, le bourrage doit être désactivé.

N'oubliez pas que si vous avez amélioré l'une de nos API clientes existantes ou si vous utilisez un tout nouveau langage, vous pouvez le partager avec la communauté via: github.