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

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

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

בעידן החוקים כמו תקנת הגנת המידע הכללית, או 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) ללא הגבלה על חוזק מוגבל. 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, אותה ניתן לקרוא בשיטת התקשרות חוזרת.

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

בדוגמה שלמטה נוצר מפתח שנמצא מאובטח קריפטוגרפי ונשלח ל- 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. לכן לא הוספנו פונקציונליות זו לממשק ה- 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 עם קוד פתוח שאינה דורשת השלמה או התקנה של כלים של צד שלישי כמו Open SSL.

תצלומים מוצפנים משתמשים בהצפנת 256 bit Advanced Encryption Standard (AES). זה גם משתמש במצב הצפנה של חסימת בלוקים (CBC).

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

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

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