Инструменты для захвата и конвертирования Интернета

Как защитить содержимое снимков?

Зашифрованные Захваты

В эпоху законов, таких как Общее положение о защите данных или GDPR, защита информации пользователя стала более важной, чем когда-либо. Когда происходит захват, он на короткое время кэшируется на наших серверах, чтобы его можно было загрузить. Хотя наши серверы безопасны, и мы не проверяем захваты пользователя без разрешения. В некоторых случаях этого недостаточно для защиты личной информации.

Первое потенциальное улучшение заключается в том, чтобы больше не кэшировать перехваты путем изменения длины кеша на ноль минут на вашем счетом страница, Однако обратите внимание, что это будет означать, что захват не будет доступен для загрузки в течение очень долгого времени, поэтому должен быть загружен сразу после его создания.

Другая возможная проблема безопасности - фактический процесс отправки нам конфиденциальных данных. Для того, чтобы защитить эти данные, вы должны сначала включить SSLзатем, как только мы получим данные и обработаем их, что происходит довольно быстро, они будут автоматически удалены из нашей системы, чтобы гарантировать отсутствие нарушений безопасности.

Больше безопасности может также быть добавлено к захватам PDF или DOCX защита паролем документов, Это гарантирует, что только те пользователи с правильным паролем могут получить доступ к защищенному файлу.

Однако, если вы собираете очень конфиденциальную информацию, такую ​​как больничные записи и т. Д., И хотите получить дополнительный уровень защиты, вы можете зашифровать полученные снимки самостоятельно. Для этого вы указываете ключ шифрования при каждом запросе, эти ключи не хранятся в GrabzIt. Этот ключ используется для шифрования перехвата, защищающего информацию. Поскольку мы не храним ключ, мы не можем помочь вам восстановить зашифрованные записи. Как только вы получите захват, используйте ключ, который вы сгенерировали ранее, чтобы расшифровать его.

В приведенном ниже примере криптографически безопасный ключ создается и отправляется в GrabzIt, который затем используется для шифрования перехвата. Этот же ключ шифрования затем используется для расшифровки результата.

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

В приведенном ниже примере криптографически безопасный ключ создается и отправляется в GrabzIt, который затем используется для шифрования перехвата. Этот же ключ шифрования затем используется для расшифровки результата.

Чтобы использовать зашифрованные перехваты с Java 6, 7 и 8, пожалуйста, установите файлы политики неограниченной юрисдикции расширения криптографии Java (JCE) into все папки / jre / lib / security / установочных папок 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);

В приведенном ниже примере криптографически безопасный ключ автоматически создается и отправляется в GrabzIt, который затем используется для шифрования перехвата. Этот же ключ шифрования затем используется для автоматического дешифрования результата путем передачи значения true в метод DataURI, который затем можно прочитать в методе обратного вызова.

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

В приведенном ниже примере криптографически безопасный ключ создается и отправляется в GrabzIt, который затем используется для шифрования перехвата. Этот же ключ шифрования затем используется для расшифровки результата.

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

К сожалению, Perl не может дешифровать шифрование AES изначально и требует внешних исполняемых файлов или компиляции Си. Поэтому мы не добавили эту функцию в наш Perl API, вместо этого вы можете добавить эту функцию самостоятельно, используя приведенное ниже руководство.

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

В приведенном ниже примере криптографически безопасный ключ создается и отправляется в GrabzIt, который затем используется для шифрования перехвата. Этот же ключ шифрования затем используется для расшифровки результата.

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

В приведенном ниже примере криптографически безопасный ключ создается и отправляется в GrabzIt, который затем используется для шифрования перехвата. Этот же ключ шифрования затем используется для расшифровки результата.

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)

В приведенном ниже примере криптографически безопасный ключ создается и отправляется в GrabzIt, который затем используется для шифрования перехвата. Этот же ключ шифрования затем используется для расшифровки результата.

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)

Как работает шифрование захвата GrabzIt

Это руководство очень техническое и призвано помочь разработчикам понять, как работает наше шифрование. Он должен быть особенно полезен для разработчиков Perl, так как язык не имеет пакета Perl с открытым исходным кодом, который не требует завершения или установки сторонних инструментов, таких как Open SSL.

Зашифрованные перехваты используют шифрование с использованием расширенного стандарта шифрования (AES) битов 256. Он также использует режим работы блочного шифрования Cipher Block Chaining (CBC).

Чтобы GrabzIt зашифровал перехват, необходимо передать базовый ключ шифрования 64, который в течение долгого времени должен передаваться символу 44 в объект опции. Для создания этого ключа шифрования вы должны выбрать случайные криптографически безопасные байты 32. Затем они должны быть закодированы в базовый 64. Поскольку они являются криптографически защищенными байтами, их будет сложно предсказать, и, следовательно, их будет сложнее взломать.

Когда GrabzIt получает запрос на захват с ключом шифрования, захват шифруется и вектор инициализации (IV) вставляется в начало файла. Этот IV имеет длину 16 байт и должен быть удален с начала файла перед расшифровкой. IV также должен быть передан алгоритму AES, чтобы разрешить дешифрование. Когда захват зашифрован, в файл не добавляется заполнение, поэтому при дешифровании заполнение необходимо отключить.

Помните, что если вы создали улучшение для одного из наших существующих клиентских API или для совершенно нового языка, вы можете поделиться им с сообществом через GitHub.