אריזת מפתחות היא תהליך ההצפנה של מפתח אחד באמצעות מפתח אחר כדי לשמור אותו באופן מאובטח או לשדר אותו בערוץ לא מהימן. אריזת מפתחות יכולה להתבסס על קריפטוגרפיה סימטרית או אסימטרית, בהתאם להקשר.
ב-Cloud Key Management Service, אריזת מפתחות משמשת לייבוא מאובטח של מפתחות קריפטוגרפיים שסופקו על ידי המשתמש. לייבוא מפתחות נדרש תהליך ייבוא, ולכל תהליך ייבוא יש שיטת ייבוא שמציינת את פרוטוקול אריזת המפתחות שבו יש להשתמש.
חומר המפתח המיובא צריך להיות בפורמט ספציפי ב-Cloud KMS. לפני שמבצעים אריזה של חומר המפתח לצורך ייבוא, יכול להיות שיהיה צורך להמיר אותו לפורמט ש-Cloud KMS מצפה לו. במאמר הזה מפורטים הפורמטים הנדרשים, ומוסבר איך אפשר להמיר את המפתחות לפורמט הנדרש אם צריך.
אחרי שחומר המפתח מפורמט בצורה נכונה, Google Cloud CLI יכול לארוז אותו באופן אוטומטי לפני שהוא משדר אותו בצורה מאובטחת ל-Cloud KMS. פרטים נוספים זמינים במאמר ייבוא מפתח. אפשרות אחרת היא להשתמש בפרוטוקולים קריפטוגרפיים מתאימים כדי לעטוף את המפתחות באופן ידני. במאמר הזה יש דוגמה לאופן שבו אפשר לעשות זאת באמצעות OpenSSL ב-Linux.
שיטות ייבוא
Cloud KMS מספק את שיטות הייבוא הבאות:
| שיטת ייבוא | סוג המפתח של עבודת הייבוא | אלגוריתם לעטיפת מפתחות |
|---|---|---|
| RSA_OAEP_3072_SHA1_AES_256 | RSA 3072 ביט | RSAES-OAEP with SHA-1 + AES-KWP |
| RSA_OAEP_4096_SHA1_AES_256 | RSA 4096 ביט | RSAES-OAEP with SHA-1 + AES-KWP |
| RSA_OAEP_3072_SHA256_AES_256 (מומלץ) | RSA 3072 ביט | RSAES-OAEP עם SHA-256 + AES-KWP |
| RSA_OAEP_4096_SHA256_AES_256 | RSA 4096 ביט | RSAES-OAEP עם SHA-256 + AES-KWP |
| RSA_OAEP_3072_SHA256 | RSA 3072 ביט | RSAES-OAEP עם SHA-256 |
| RSA_OAEP_4096_SHA256 | RSA 4096 ביט | RSAES-OAEP עם SHA-256 |
אלגוריתמים של עטיפת מפתחות
שיטות הייבוא ש-Cloud KMS מספק תואמות לאלגוריתמים הבאים של אריזת מפתחות:
RSAES-OAEP עם SHA-1/SHA-256 + AES-KWP
אלגוריתם עטיפת המפתח הזה הוא סכמת הצפנה היברידית שכוללת גם פעולת עטיפת מפתח אסימטרית וגם פעולת עטיפת מפתח סימטרית:
- המפתח הציבורי מעבודת הייבוא משמש להצפנה של מפתח AES-256 חד-פעמי. ההצפנה מתבצעת באמצעות RSAES-OAEP ו-MGF-1, יחד עם אלגוריתם הגיבוב שצוין בשיטת הייבוא. מפתח ה-AES-256 לשימוש חד-פעמי נוצר בזמן ההצפנה.
- המפתח AES-256 לשימוש חד-פעמי משלב 1 משמש להצפנה של חומר המפתח של היעד באמצעות AES Key Wrap with Padding.
חומר המפתח הארוז לייבוא הוא מערך בייט יחיד שמורכב מהתוצאות של שלב 1, ואחריו התוצאות של שלב 2. במילים אחרות, התוצאות של שלבים 1 ו-2 משורשרות יחד ויוצרות את חומר המפתח המוצפן.
האלגוריתם הזה זהה לאלגוריתם לעטיפת מפתחות PKCS #11 CKM_RSA_AES_KEY_WRAP. אם אתם מייבאים מפתח מ-HSM, וה-HSM תומך באלגוריתם הזה, אתם יכולים להשתמש בו ישירות. לחלופין, אפשר לבצע את שלבים 1 ו-2 שלמעלה באמצעות מנגנוני PKCS #11 CKM_RSA_PKCS_OAEP ו-CKM_AES_KEY_WRAP_PAD בהתאמה.
אם ה-HSM של המקור (או ספק מפתחות אחר אם לא משתמשים ב-HSM) לא תומך במנגנון של אריזת מפתחות RSA AES, צריך לארוז את חומר המפתח באופן ידני באמצעות המפתח הציבורי של עבודת הייבוא. דוגמה לאופן ההצפנה באמצעות OpenSSL זמינה במאמר הצפנת מפתח באמצעות OpenSSL ב-Linux.
RSAES-OAEP עם SHA-256
זוהי פעולת אריזה של מפתח אסימטרי שמשתמשת במפתח הציבורי ממשימת הייבוא עם RSAES-OAEP, באמצעות MGF-1 ואלגוריתם הגיבוב SHA-256, כדי להצפין ישירות את חומר המפתח של היעד. הוא מבוסס על מנגנון PKCS #11 RSA OAEP CKM_RSA_PKCS_OAEP. מגבלות הגודל שמשויכות לשיטת הייבוא הזו הופכות אותה ללא מתאימה לייבוא מפתחות פרטיים מסוג RSA.