Genel Veri Koruma Yönetmeliği veya GDPR gibi yasaların çağında kullanıcının bilgilerini korumak her zamankinden daha önemli hale geldi. Bir yakalama alındığında, indirilebilmesini sağlamak için sunucularımızda kısa bir süre için önbelleğe alınır. Sunucularımız güvenlidir ve bir kullanıcının yakalamalarını izinsiz olarak incelemeyiz. Bu, kişisel bilgilerin işlendiği bazı senaryolarda yeterli koruma değildir.
İlk potansiyel iyileştirme, önbellek uzunluğunu sıfır dakikaya değiştirerek yakalamaları artık önbelleğe almamaktır. hesap sayfası. Ancak bunun, yakalamanın çok uzun bir süre indirilemeyeceği ve oluşturulduktan hemen sonra indirilmesi gerektiği anlamına geleceğini unutmayın.
Bir başka olası güvenlik endişesi de hassas verilerin bize gönderilmesinin fiili sürecidir. Bu verileri güvence altına almak için öncelikle şunları yapmalısınız: SSL'yi etkinleştir, daha sonra veriler elimize geçtikten ve oldukça hızlı bir şekilde işlendikten sonra, herhangi bir güvenlik ihlali olmadığından emin olmak için veriler sistemimizden otomatik olarak silinecektir.
More security can also be added to PDF or DOCX captures by belgeleri koruyan şifre. Bu, yalnızca doğru şifreye sahip kullanıcıların korumalı bir dosyaya erişebilmesini sağlar.
However, if you are capturing very sensitive information such as hospital records etc and want an extra level of protection you can encrypt the resulting captures themselves. To do this you specify an encryption key with each request, these keys are not stored by GrabzIt. This key be used to encrypt the capture protecting the information. As we don't store the key we can't help you recover encrypted captures. Once you receive the capture use the key you generated earlier to decrypt it.
Aşağıdaki örnekte kriptografik olarak güvenli bir anahtar oluşturulur ve GrabzIt'e gönderilir, bu daha sonra yakalamayı şifrelemek için kullanılır. Aynı şifreleme anahtarı daha sonra sonucun şifresini çözmek için kullanılır.
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);
Aşağıdaki örnekte kriptografik olarak güvenli bir anahtar oluşturulur ve GrabzIt'e gönderilir, bu daha sonra yakalamayı şifrelemek için kullanılır. Aynı şifreleme anahtarı daha sonra sonucun şifresini çözmek için kullanılır.
In order to use encrypted captures with Java 6, 7 and 8 please install the Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files into Java kurulum klasörlerinin tüm /jre/lib/security/ klasörleri.
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);
Aşağıdaki örnekte, kriptografik olarak güvenli bir anahtar otomatik olarak oluşturulur ve GrabzIt'e gönderilir, bu daha sonra yakalamayı şifrelemek için kullanılır. Aynı şifreleme anahtarı daha sonra DataURI yöntemine doğru iletilerek sonucun şifresini otomatik olarak çözmek için kullanılır ve bu daha sonra geri çağırma yönteminde okunabilir.
<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>
Aşağıdaki örnekte kriptografik olarak güvenli bir anahtar oluşturulur ve GrabzIt'e gönderilir, bu daha sonra yakalamayı şifrelemek için kullanılır. Aynı şifreleme anahtarı daha sonra sonucun şifresini çözmek için kullanılır.
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); });
Ne yazık ki Perl, AES şifrelemesinin şifresini yerel olarak çözemez ve harici yürütülebilir dosyalar veya C derlemesi gerektirir. Bu nedenle bu işlevselliği Perl API'mize eklemedik, bunun yerine aşağıdaki kılavuzu kullanarak bu işlevselliği kendiniz ekleyebilirsiniz.
$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();
Aşağıdaki örnekte kriptografik olarak güvenli bir anahtar oluşturulur ve GrabzIt'e gönderilir, bu daha sonra yakalamayı şifrelemek için kullanılır. Aynı şifreleme anahtarı daha sonra sonucun şifresini çözmek için kullanılır.
$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);
Aşağıdaki örnekte kriptografik olarak güvenli bir anahtar oluşturulur ve GrabzIt'e gönderilir, bu daha sonra yakalamayı şifrelemek için kullanılır. Aynı şifreleme anahtarı daha sonra sonucun şifresini çözmek için kullanılır.
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)
Aşağıdaki örnekte kriptografik olarak güvenli bir anahtar oluşturulur ve GrabzIt'e gönderilir, bu daha sonra yakalamayı şifrelemek için kullanılır. Aynı şifreleme anahtarı daha sonra sonucun şifresini çözmek için kullanılır.
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)
Bu kılavuz oldukça tekniktir ve geliştiricilerin şifrelememizin nasıl çalıştığını anlamalarına yardımcı olmayı amaçlamaktadır. Dil, Open SSL gibi üçüncü taraf araçların tamamlanmasını veya kurulmasını gerektirmeyen açık kaynaklı bir Perl paketine sahip olmadığından Perl geliştiricilerinin özellikle işine yarayacaktır.
Şifreli yakalamalarda 256 bit Gelişmiş Şifreleme Standardı (AES) şifrelemesi kullanılır. Ayrıca Şifre Blok Zincirleme (CBC) blok şifreleme çalışma modunu kullanır.
GrabzIt'in bir yakalamayı şifrelemesi için, 64 karakter uzunluğunda bir temel 44 şifreleme anahtarının seçenek nesnesine iletilmesi gerekir. Bu şifreleme anahtarını oluşturmak için 32 rastgele kriptografik olarak güvenli bayt seçmelisiniz. Bunlar daha sonra 64 tabanına kodlanmalıdır. Kriptografik olarak güvenli baytlar oldukları için tahmin edilmeleri ve dolayısıyla kırılmaları daha zor olacaktır.
GrabzIt, şifreleme anahtarıyla bir yakalama isteği aldığında, yakalama şifrelenir ve başlatma vektörü (IV) dosyanın başına eklenir. Bu IV 16 bayt uzunluğundadır ve şifre çözülmeden önce dosyanın ön kısmından kaldırılması gerekir. Şifre çözmeyi etkinleştirmek için IV'ün AES algoritmasına da aktarılması gerekir. Bir yakalama şifrelendiğinde dosyaya hiçbir dolgu eklenmez, dolayısıyla şifreyi çözerken dolgunun devre dışı bırakılması gerekir.
Mevcut istemci API'lerimizden birinde veya tamamen yeni bir dil için bir iyileştirme oluşturduysanız, bunu aracılığıyla toplulukla paylaşabileceğinizi unutmayın. github.