במאמר הזה מוסבר איך להצפין ולפענח נתונים באמצעות מפתחות של Key Management System (KMS) באמצעות ה-CLI של gdcloud.
המסמך הזה מיועד לקהלים בקבוצת המפעילים של האפליקציה שצריכים לבצע פעולות קריפטוגרפיות בפרויקטים של GDC. מידע נוסף מופיע במאמרי העזרה בנושא קהלים ב-GDC עם פער אבטחה.
לפני שמתחילים
לפני שמצפינים או מפענחים נתונים, צריך לוודא שיש לכם את ההרשאות הדרושות ולהכין את הסביבה.
שליחת בקשה לתפקידי IAM
כדי להצפין ולפענח נתונים, צריך לפנות לאדמין IAM בארגון ולבקש את התפקיד מפתח KMS (kms-developer) במרחב השמות של הפרויקט.
הכנת הסביבה
הצפנת נתונים
כדי להצפין נתונים, משתמשים בפקודה gdcloud kms keys encrypt. הפקודה הזו מצפינה קובץ טקסט לא מוצפן באמצעות המפתח AEAD, וכותבת אותו לקובץ מידע מוצפן (ciphertext) בשם.
כדי להצפין נתונים, מעבירים את שם המפתח ואת הפרטים הבאים:
gdcloud kms keys encrypt namespaces/NAMESPACE/aeadKeys/KEY_NAME \ --plaintext-file=PLAINTEXT_PATH \ --additional-authenticated-data-file=ADDITIONAL_AUTHENTICATED_DATA_FILE \ --ciphertext-file=CIPHERTEXT_PATHמחליפים את המשתנים הבאים:
- NAMESPACE: מרחב השמות של הפרויקט, לדוגמה:
kms-test1. - KEY_NAME: השם של המפתח ששימש להצפנת הטקסט הלא מוצפן, לדוגמה:
key-1. - PLAINTEXT_PATH: הנתיב לקובץ שמכיל את הטקסט הפשוט שרוצים להצפין.
- ADDITIONAL_AUTHENTICATED_DATA_FILE: קובץ אופציונלי שמכיל נתונים מאומתים נוספים (AAD). ה-AAD משמש לבדיקות תקינות ומגן על הנתונים מפני מתקפת confused deputy. הגודל המקסימלי של AAD ושל הטקסט הרגיל הוא 64KB.
- CIPHERTEXT_PATH: הנתיב לקובץ שמכיל את הטקסט הפשוט המוצפן.
אחרי שמריצים את הפקודה, מופיע קובץ שצוין בדגל
--ciphertext-file, שמכיל את התוכן המוצפן של קובץ הטקסט הפשוט.- NAMESPACE: מרחב השמות של הפרויקט, לדוגמה:
פענוח נתונים
כדי לפענח נתונים, משתמשים בפקודה gdcloud kms keys decrypt. הפקודה הזו מבצעת פענוח של קובץ מידע מוצפן (ciphertext) נתון באמצעות המפתח AEAD, וכותבת אותו לקובץ טקסט לא מוצפן בשם מסוים.
כדי לפענח טקסט מוצפן, מעבירים את שם המפתח ואת הפרטים הבאים:
gdcloud kms keys decrypt namespaces/NAMESPACE/aeadKeys/KEY_NAME \ --ciphertext-file=CIPHERTEXT_PATH \ --additional-authenticated-data-file=ADDITIONAL_AUTHENTICATED_DATA_FILE \ --plaintext-file=PLAINTEXT_PATHמחליפים את המשתנים הבאים:
- NAMESPACE: מרחב השמות של הפרויקט.
- KEY_NAME: השם של המפתח ששימש להצפנת טקסט לא מוצפן.
- CIPHERTEXT_PATH: הנתיב של הקובץ שרוצים לפענח.
- ADDITIONAL_AUTHENTICATED_DATA_FILE: קובץ אופציונלי שמכיל נתונים מאומתים נוספים (AAD). ה-AAD משמש לבדיקות תקינות ומגן על הנתונים מפני מתקפת confused deputy. הגודל המקסימלי של AAD ושל הטקסט הרגיל הוא 64KB.
- PLAINTEXT_PATH: הנתיב לקובץ שמכיל את הטקסט הלא מוצפן המפוענח.
אחרי שמריצים את הפקודה, רואים קובץ שצוין בדגל
--plaintext-fileומכיל את הנתונים המפוענחים.