Tools zum Erfassen und Konvertieren des Webs

Wie schützt man den Inhalt von Captures?

Verschlüsselte Aufnahmen

Im Zeitalter von Gesetzen wie der Allgemeinen Datenschutzverordnung oder der DSGVO ist der Schutz der Benutzerdaten wichtiger denn je. Wenn ein Capture aufgenommen wird, wird es für kurze Zeit auf unseren Servern zwischengespeichert, damit es heruntergeladen werden kann. Während unsere Server sicher sind und wir die Erfassungen eines Benutzers nicht ohne Erlaubnis überprüfen. In einigen Szenarien reicht dieser Schutz beim Umgang mit persönlichen Daten nicht aus.

Die erste mögliche Verbesserung besteht darin, keine Erfassungen mehr im Cache zu speichern, indem Sie die Cache-Länge auf null Minuten setzen Konto-Seite. Beachten Sie jedoch, dass das Capture nicht für lange Zeit zum Herunterladen zur Verfügung steht und daher sofort nach dem Erstellen heruntergeladen werden muss.

Ein weiteres mögliches Sicherheitsrisiko ist der tatsächliche Prozess des Sendens der sensiblen Daten an uns. Um diese Daten zu sichern, sollten Sie zuerst SSL aktivierenSobald wir die Daten erhalten haben und sie verarbeitet werden, wird sie automatisch aus unserem System gelöscht, um sicherzustellen, dass keine Sicherheitsverletzung vorliegt.

PDF- oder DOCX-Erfassungen von können außerdem mit mehr Sicherheit versehen werden Passwort zum Schutz der Dokumente. Dadurch wird sichergestellt, dass nur die Benutzer mit dem richtigen Kennwort auf eine geschützte Datei zugreifen können.

Wenn Sie jedoch sehr vertrauliche Informationen wie Krankenhausunterlagen usw. erfassen und eine zusätzliche Schutzstufe wünschen, können Sie die resultierenden Aufzeichnungen selbst verschlüsseln. Dazu geben Sie bei jeder Anfrage einen Verschlüsselungsschlüssel an, diese Schlüssel werden von GrabzIt nicht gespeichert. Dieser Schlüssel wird zum Verschlüsseln des Captures verwendet, um die Informationen zu schützen. Da wir den Schlüssel nicht speichern, können wir Ihnen nicht helfen, verschlüsselte Aufnahmen wiederherzustellen. Sobald Sie das Capture erhalten haben, verwenden Sie den zuvor generierten Schlüssel, um es zu entschlüsseln.

Im folgenden Beispiel wird ein kryptografisch sicherer Schlüssel erstellt und an GrabzIt gesendet. Dieser wird dann zum Verschlüsseln des Captures verwendet. Derselbe Verschlüsselungsschlüssel wird dann zum Entschlüsseln des Ergebnisses verwendet.

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

Im folgenden Beispiel wird ein kryptografisch sicherer Schlüssel erstellt und an GrabzIt gesendet. Dieser wird dann zum Verschlüsseln des Captures verwendet. Derselbe Verschlüsselungsschlüssel wird dann zum Entschlüsseln des Ergebnisses verwendet.

Um verschlüsselte Captures mit Java 6, 7 und 8 zu verwenden, installieren Sie bitte die JCE-Richtliniendateien (Java Cryptography Extension) Unlimited Strength Jurisdiction into Alle Ordner / jre / lib / security / der Java-Installationsordner.

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

Im folgenden Beispiel wird automatisch ein kryptografisch sicherer Schlüssel erstellt und an GrabzIt gesendet. Dieser wird dann zum Verschlüsseln des Captures verwendet. Mit demselben Verschlüsselungsschlüssel wird das Ergebnis dann automatisch entschlüsselt, indem true an die DataURI-Methode übergeben wird, die dann in der Callback-Methode gelesen werden kann.

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

Im folgenden Beispiel wird ein kryptografisch sicherer Schlüssel erstellt und an GrabzIt gesendet. Dieser wird dann zum Verschlüsseln des Captures verwendet. Derselbe Verschlüsselungsschlüssel wird dann zum Entschlüsseln des Ergebnisses verwendet.

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

Leider kann Perl die AES-Verschlüsselung nicht nativ entschlüsseln und erfordert externe ausführbare Dateien oder C-Kompilierung. Aus diesem Grund haben wir diese Funktionalität nicht zu unserer Perl-API hinzugefügt. Stattdessen können Sie diese Funktionalität mithilfe der folgenden Anleitung selbst hinzufügen.

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

Im folgenden Beispiel wird ein kryptografisch sicherer Schlüssel erstellt und an GrabzIt gesendet. Dieser wird dann zum Verschlüsseln des Captures verwendet. Derselbe Verschlüsselungsschlüssel wird dann zum Entschlüsseln des Ergebnisses verwendet.

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

Im folgenden Beispiel wird ein kryptografisch sicherer Schlüssel erstellt und an GrabzIt gesendet. Dieser wird dann zum Verschlüsseln des Captures verwendet. Derselbe Verschlüsselungsschlüssel wird dann zum Entschlüsseln des Ergebnisses verwendet.

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)

Im folgenden Beispiel wird ein kryptografisch sicherer Schlüssel erstellt und an GrabzIt gesendet. Dieser wird dann zum Verschlüsseln des Captures verwendet. Derselbe Verschlüsselungsschlüssel wird dann zum Entschlüsseln des Ergebnisses verwendet.

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)

So funktioniert die Capture-Verschlüsselung von GrabzIt

Dieses Handbuch ist sehr technisch und soll Entwicklern helfen, die Funktionsweise unserer Verschlüsselung zu verstehen. Dies sollte insbesondere für Perl-Entwickler von Nutzen sein, da die Sprache kein Open-Source-Perl-Paket enthält, für das keine Fertigstellung oder Installation von Drittanbieter-Tools wie Open SSL erforderlich ist.

Bei verschlüsselten Captures wird die 256-Bit-AES-Verschlüsselung (Advanced Encryption Standard) verwendet. Es wird auch ein CBC-Blockchiffriermodus (Cipher Block Chaining) verwendet.

Damit GrabzIt ein Capture verschlüsselt, muss ein 64-Basisverschlüsselungsschlüssel mit langen 44-Zeichen an das Optionsobjekt übergeben werden. Um diesen Verschlüsselungsschlüssel zu erstellen, sollten Sie zufällig kryptografisch sichere 32-Bytes auswählen. Diese sollten dann auf Basis von 64 codiert werden. Da es sich um kryptografisch sichere Bytes handelt, sind sie schwer vorherzusagen und daher schwerer zu knacken.

Wenn GrabzIt eine Aufnahmeanforderung mit einem Verschlüsselungsschlüssel empfängt, wird die Aufnahme verschlüsselt und der Initialisierungsvektor (IV) am Anfang der Datei eingefügt. Diese IV ist 16 Bytes lang und muss vor der Entschlüsselung von der Vorderseite der Datei entfernt werden. Die IV muss auch an den AES-Algorithmus übergeben werden, um die Entschlüsselung zu ermöglichen. Wenn ein Capture verschlüsselt wird, wird der Datei kein Padding hinzugefügt, sodass beim Entschlüsseln das Padding deaktiviert werden muss.

Denken Sie daran, wenn Sie eine Verbesserung an einer unserer vorhandenen Client-APIs vorgenommen haben oder eine völlig neue Sprache verwenden, können Sie diese der Community über mitteilen github.