Ferramentas para capturar e converter a Web

Como proteger o conteúdo das capturas?

Capturas criptografadas

Na era das leis, como o Regulamento Geral de Proteção de Dados ou o GDPR que protege as informações do usuário, tornou-se mais importante do que nunca. Quando uma captura é realizada, ela é armazenada em cache por um curto período de tempo em nossos servidores para permitir o download. Embora nossos servidores estejam seguros e não inspecionemos as capturas de um usuário sem permissão. Isso não é proteção suficiente em alguns cenários ao lidar com informações pessoais.

A primeira melhoria em potencial é não armazenar mais as capturas em cache, alterando o tamanho do cache para zero minutos, no seu página da conta. Observe, no entanto, que isso significa que a captura não ficará disponível para download por muito tempo e, portanto, deverá ser baixada imediatamente após ser criada.

Outra possível preocupação de segurança é o processo real de envio dos dados confidenciais para nós. Para proteger esses dados, você deve primeiro ativar SSL, depois que recebermos os dados e forem processados, o que acontece muito rapidamente, eles serão excluídos automaticamente do nosso sistema para garantir que não haja violação de segurança.

Mais segurança também pode ser adicionada às capturas de PDF ou DOCX por senha protegendo os documentos. Isso garante que apenas os usuários com a senha correta possam acessar um arquivo protegido.

No entanto, se você estiver capturando informações muito confidenciais, como registros hospitalares, etc. e desejar um nível extra de proteção, poderá criptografar as capturas resultantes. Para fazer isso, você especifica uma chave de criptografia com cada solicitação, essas chaves não são armazenadas pelo GrabzIt. Essa chave é usada para criptografar a captura que protege as informações. Como não armazenamos a chave, não podemos ajudá-lo a recuperar capturas criptografadas. Depois de receber a captura, use a chave gerada anteriormente para descriptografá-la.

No exemplo abaixo, uma chave criptograficamente segura é criada e enviada ao GrabzIt, que é usada para criptografar a captura. Essa mesma chave de criptografia é usada para descriptografar o resultado.

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

No exemplo abaixo, uma chave criptograficamente segura é criada e enviada ao GrabzIt, que é usada para criptografar a captura. Essa mesma chave de criptografia é usada para descriptografar o resultado.

Para usar capturas criptografadas com Java 6, 7 e 8, instale os Arquivos de Política de Jurisdição de Força Ilimitada da Java Cryptography Extension (JCE) into todas as pastas / jre / lib / security / das pastas de instalação 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);

No exemplo abaixo, uma chave criptograficamente segura é criada e enviada automaticamente para o GrabzIt, que é usada para criptografar a captura. Essa mesma chave de criptografia é usada para descriptografar o resultado automaticamente, passando true para o método DataURI, que pode ser lido no método de retorno de chamada.

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

No exemplo abaixo, uma chave criptograficamente segura é criada e enviada ao GrabzIt, que é usada para criptografar a captura. Essa mesma chave de criptografia é usada para descriptografar o resultado.

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

Infelizmente, o Perl não pode descriptografar a criptografia AES nativamente e requer executáveis ​​externos ou compilação em C. Portanto, não adicionamos essa funcionalidade à nossa API Perl. Em vez disso, você pode adicionar essa funcionalidade usando o guia abaixo.

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

No exemplo abaixo, uma chave criptograficamente segura é criada e enviada ao GrabzIt, que é usada para criptografar a captura. Essa mesma chave de criptografia é usada para descriptografar o resultado.

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

No exemplo abaixo, uma chave criptograficamente segura é criada e enviada ao GrabzIt, que é usada para criptografar a captura. Essa mesma chave de criptografia é usada para descriptografar o resultado.

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)

No exemplo abaixo, uma chave criptograficamente segura é criada e enviada ao GrabzIt, que é usada para criptografar a captura. Essa mesma chave de criptografia é usada para descriptografar o resultado.

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)

Como a criptografia de captura do GrabzIt funciona

Este guia é muito técnico e tem como objetivo ajudar os desenvolvedores a entender como nossa criptografia funciona. Deve ser de uso particular para desenvolvedores Perl, pois o idioma não possui um pacote Perl de código aberto que não exija a conclusão ou instalação de ferramentas de terceiros como o Open SSL.

As capturas criptografadas usam criptografia AES (Advanced Encryption Standard) de bits 256. Ele também usa um modo de operação de bloco de encadeamento de blocos de codificação (CBC).

Para o GrabzIt criptografar uma captura, é necessária uma chave de criptografia 64 básica que os caracteres 44 precisem ser transmitidos ao objeto de opção. Para criar essa chave de criptografia, você deve escolher bytes criptograficamente seguros 32 aleatórios. Estes devem ser codificados para a base 64. Como são bytes criptograficamente seguros, será difícil prever e, portanto, mais difícil de decifrar.

Quando o GrabzIt recebe uma solicitação de captura com uma chave de criptografia, a captura é criptografada e o vetor de inicialização (IV) é inserido no início do arquivo. Este IV tem 16 bytes e precisa ser removido da frente do arquivo antes da descriptografia. O IV também deve ser passado para o algoritmo AES para habilitar a descriptografia. Quando uma captura é criptografada, nenhum preenchimento é adicionado ao arquivo; portanto, ao descriptografar o preenchimento, é necessário desativá-lo.

Lembre-se de que você criou uma melhoria em uma de nossas APIs clientes existentes ou, em um idioma totalmente novo, é possível compartilhá-lo com a comunidade por meio de github.