Tools zum Erfassen und Konvertieren des Webs

Wie schützt man den Inhalt von Captures?

Verschlüsselte Aufnahmen

Im Zeitalter von Gesetzen wie der Datenschutz-Grundverordnung oder der DSGVO ist der Schutz der Benutzerdaten wichtiger denn je. Wenn eine Aufnahme gemacht wird, wird sie für kurze Zeit auf unseren Servern zwischengespeichert, damit sie heruntergeladen werden kann. Unsere Server sind zwar sicher und wir überprüfen die Aufnahmen eines Benutzers nicht ohne dessen Erlaubnis. In manchen Fällen reicht dieser Schutz beim Umgang mit personenbezogenen Daten nicht aus.

Die erste mögliche Verbesserung besteht darin, Erfassungen nicht mehr zwischenzuspeichern, indem Sie die Cache-Länge auf Ihrem Computer auf null Minuten ändern Konto-Seite. Beachten Sie jedoch, dass dies bedeutet, dass die Aufnahme nicht sehr lange zum Herunterladen verfügbar ist und daher sofort nach der Erstellung heruntergeladen werden muss.

Ein weiteres mögliches Sicherheitsrisiko ist der eigentliche Prozess der Übermittlung der sensiblen Daten an uns. Um diese Daten zu sichern, sollten Sie zunächst SSL aktivierenSobald wir die Daten erhalten und verarbeitet haben, was recht schnell geschieht, werden sie automatisch aus unserem System gelöscht, um sicherzustellen, dass keine Sicherheitsverletzung vorliegt.

Auch PDF- oder DOCX-Erfassungen können durch mehr Sicherheit hinzugefügt werden Passwort zum Schutz der Dokumente. Dadurch wird sichergestellt, dass nur Benutzer mit dem richtigen Passwort auf eine geschützte Datei zugreifen können.

Wenn Sie jedoch sehr vertrauliche Informationen wie Krankenhausakten usw. erfassen und ein zusätzliches Maß an Schutz wünschen, können Sie die resultierenden Erfassungen 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 der Erfassung und zum Schutz der Informationen verwendet. Da wir den Schlüssel nicht speichern, können wir Ihnen nicht bei der Wiederherstellung verschlüsselter Aufnahmen helfen. Sobald Sie die Aufnahme erhalten haben, verwenden Sie den Schlüssel, den Sie zuvor generiert haben, um sie zu entschlüsseln.

Im folgenden Beispiel wird ein kryptografisch sicherer Schlüssel erstellt und an GrabzIt gesendet, der dann zum Verschlüsseln der Aufnahme verwendet wird. 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, der dann zum Verschlüsseln der Aufnahme verwendet wird. Derselbe Verschlüsselungsschlüssel wird dann zum Entschlüsseln des Ergebnisses verwendet.

Um verschlüsselte Erfassungen mit Java 6, 7 und 8 zu verwenden, installieren Sie bitte die Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files into alle /jre/lib/security/-Ordner 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, der dann zum Verschlüsseln der Aufnahme verwendet wird. Anschließend wird derselbe Verschlüsselungsschlüssel verwendet, um das Ergebnis automatisch zu entschlüsseln, indem true an die DataURI-Methode übergeben wird, das dann in der Callback-Methode gelesen werden kann.

<html>
<head>
<script src="https://cdn.jsdelivr.net/npm/@grabzit/js@3.5.2/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, der dann zum Verschlüsseln der Aufnahme verwendet wird. 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, der dann zum Verschlüsseln der Aufnahme verwendet wird. 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, der dann zum Verschlüsseln der Aufnahme verwendet wird. 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, der dann zum Verschlüsseln der Aufnahme verwendet wird. 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

Dieser Leitfaden ist sehr technisch und soll Entwicklern helfen, zu verstehen, wie unsere Verschlüsselung funktioniert. Es sollte insbesondere für Perl-Entwickler von Nutzen sein, da die Sprache kein Open-Source-Perl-Paket hat, das keine Fertigstellung oder Installation von Drittanbieter-Tools wie Open SSL erfordert.

Verschlüsselte Aufnahmen verwenden die 256-Bit-AES-Verschlüsselung (Advanced Encryption Standard). Es verwendet außerdem einen CBC-Blockchiffriermodus (Cipher Block Chaining).

Damit GrabzIt ein Capture verschlüsseln kann, muss ein 64 Zeichen langer Basis-44-Verschlüsselungsschlüssel an das Optionsobjekt übergeben werden. Um diesen Verschlüsselungsschlüssel zu erstellen, sollten Sie 32 zufällige kryptografisch sichere Bytes auswählen. Diese sollten dann auf Basis 64 kodiert werden. Da es sich um kryptografisch sichere Bytes handelt, sind sie schwer vorherzusagen und daher schwieriger zu knacken.

Wenn GrabzIt eine Erfassungsanforderung mit einem Verschlüsselungsschlüssel erhält, wird die Erfassung verschlüsselt und der Initialisierungsvektor (IV) am Anfang der Datei eingefügt. Diese IV ist 16 Byte lang und muss vor der Entschlüsselung vom Anfang der Datei entfernt werden. Der IV muss auch an den AES-Algorithmus übergeben werden, um die Entschlüsselung zu ermöglichen. Wenn eine Aufnahme verschlüsselt ist, wird der Datei keine Auffüllung hinzugefügt. Daher muss die Auffüllung beim Entschlüsseln deaktiviert werden.

Denken Sie daran, wenn Sie eine Verbesserung an einer unserer bestehenden Client-APIs oder für eine völlig neue Sprache erstellt haben, können Sie diese über mit der Community teilen github.