웹 캡처 및 변환 도구

캡처 내용을 보호하는 방법은 무엇입니까?

암호화 된 캡처

일반 데이터 보호 규정 또는 사용자의 정보를 보호하는 GDPR과 같은 법률 시대에 그 어느 때보 다 중요해졌습니다. 캡처가 이루어지면 서버에서 잠시 동안 캐시되어 다운로드가 가능합니다. 서버는 안전하지만 허가없이 사용자의 캡처를 검사하지 않습니다. 개인 정보를 처리 할 때 일부 시나리오에서는 충분한 보호가되지 않습니다.

잠재적 인 첫 번째 개선점은 캐시 길이를 0 분으로 변경하여 더 이상 캡처를 캐시하지 않는 것입니다. 계정 페이지. 그러나 이것은 캡처를 매우 오랫동안 다운로드 할 수 없으므로 생성 후 즉시 다운로드해야한다는 것을 의미합니다.

또 다른 가능한 보안 문제는 민감한 데이터를 우리에게 보내는 실제 프로세스입니다. 이 데이터를 보호하려면 먼저 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에서 암호화 된 캡처를 사용하려면 JCE (Java Cryptography Extension) 무제한 강도 관할 정책 파일을 설치하십시오. intJava 설치 폴더의 모든 / jre / lib / security / 폴더

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

아래 예에서 암호화 보안 키가 생성되어 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 암호화를 기본적으로 해독 할 수 없으며 외부 실행 파일이나 C 컴파일이 필요합니다. 따라서이 기능을 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의 캡처 암호화 작동 방식

이 가이드는 매우 기술적 인 것으로 개발자가 암호화 작동 방식을 이해하도록 돕습니다. 언어에는 Open SSL과 같은 타사 도구를 완료하거나 설치할 필요가없는 오픈 소스 Perl 패키지가 없으므로 Perl 개발자에게 특히 유용합니다.

암호화 된 캡처는 256 비트 AES (Advanced Encryption Standard) 암호화를 사용합니다. 또한 CBC (Cipher Block Chaining) 블록 암호 작동 모드를 사용합니다.

GrabzIt에서 캡처를 암호화하려면 64 문자를 옵션 개체에 전달해야하는 기본 44 암호화 키를 캡처하십시오. 이 암호화 키를 만들려면 32 랜덤 암호화 보안 바이트를 선택해야합니다. 그런 다음 64 기반으로 인코딩해야합니다. 암호화 적으로 안전한 바이트이므로 예측하기 어려워서 크랙하기가 더 어려워집니다.

GrabzIt이 암호화 키로 캡처 요청을 받으면 캡처가 암호화되고 초기화 벡터 (IV)가 파일의 시작 부분에 삽입됩니다. 이 IV는 16 바이트 길이이며 암호를 해독하기 전에 파일 앞쪽에서 제거해야합니다. 해독을 가능하게하려면 IV를 AES 알고리즘으로 전달해야합니다. 캡처가 암호화되면 파일에 패딩이 추가되지 않으므로 패딩 해독을 비활성화해야합니다.

기존 클라이언트 API 중 하나를 개선했거나 완전히 새로운 언어를 위해이를 통해 커뮤니티와 공유 할 수 있음을 기억하십시오 github.