כלים ללכידה ולהמרה של האינטרנט

כיצד להגן על תוכן הצילומים?

לכידות מוצפנות

בעידן החוקים כמו תקנת הגנת המידע הכללית, או 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 Cryptography Extension (JCE) Unlimited Strength Jurisdiction 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, ואז זה משמש להצפנת הלכידה. אותו מפתח הצפנה משמש לאחר מכן כדי לפענח את התוצאה באופן אוטומטי על ידי העברה נאמנה לשיטת DataURI, שאותה ניתן לקרוא בשיטת ה-callback.

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

בדוגמה שלמטה נוצר מפתח מאובטח מבחינה קריפטוגרפית ונשלח ל-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

המדריך הזה הוא מאוד טכני ומטרתו לעזור למפתחים להבין איך ההצפנה שלנו עובדת. זה אמור להועיל במיוחד למפתחי Perl, מכיוון שלשפה אין חבילת Perl בקוד פתוח שאינה דורשת השלמה או התקנה של כלי צד שלישי כמו Open SSL.

לכידות מוצפנות משתמשת בהצפנה של 256 סיביות Advanced Encryption Standard (AES). הוא גם משתמש במצב פעולת צופן בלוקים של צופן בלוק (CBC).

כדי ש-GrabzIt יצפין לכידת מפתח הצפנה בסיס של 64 שאורכו 44 תווים צריך לעבור לאובייקט האופציה. כדי ליצור מפתח הצפנה זה, עליך לבחור 32 בתים אקראיים מאובטחים מבחינה קריפטוגרפית. לאחר מכן יש לקודד את אלה לבסיס 64. מכיוון שהם בתים מאובטחים מבחינה קריפטוגרפית, יהיה קשה לחזות אותם ולכן קשה יותר לפיצוח.

כאשר GrabzIt מקבל בקשת לכידה עם מפתח הצפנה, הלכידה מוצפנת וקטור האתחול (IV) מוכנס בתחילת הקובץ. ה-IV הזה הוא באורך 16 בתים ויש להסירו מחזית הקובץ לפני הפענוח. יש להעביר את ה-IV גם לאלגוריתם AES כדי לאפשר פענוח. כאשר לכידה מוצפנת לא מתווסף ריפוד לקובץ ולכן בעת ​​פענוח הריפוד צריך להיות מושבת.

זכור אם יצרת שיפור לאחד מממשקי ה-API של הלקוח הקיימים שלנו או לשפה חדשה לגמרי, תוכל לשתף אותו עם הקהילה באמצעות GitHub.