בדף הזה נסביר על רוטציית מפתחות ב-Cloud Key Management Service. רוטציית מפתחות היא התהליך של יצירת מפתחות הצפנה חדשים במקום מפתחות קיימים. החלפה של מפתחות ההצפנה בלוח זמנים קבוע או אחרי אירועים ספציפיים יכולה לצמצם את ההשלכות האפשריות של פריצה למפתח. הוראות ספציפיות לרוטציה של מפתח מופיעות במאמר רוטציה של מפתחות.
למה כדאי לבצע רוטציה של מפתחות?
בהצפנה סימטרית, מומלץ לבצע רוטציה של המפתחות באופן תקופתי ואוטומטי. חלק מהתקנים בתחום, כמו תקן אבטחת הנתונים בתחום כרטיסי התשלום (PCI DSS), מחייבים החלפה קבועה של מפתחות.
שירות Cloud Key Management לא תומך ברוטציה אוטומטית של מפתחות אסימטריים. אפשר לקרוא על שיקולים לגבי מפתחות אסימטריים במסמך הזה.
לרוטציה של מפתחות יש כמה יתרונות:
הגבלת מספר ההודעות שמוצפנות באמצעות אותה גרסת מפתח עוזרת למנוע התקפות שמתאפשרות באמצעות קריפטואנליזה. ההמלצות לגבי משך החיים של המפתח תלויות באלגוריתם של המפתח, וגם במספר ההודעות שנוצרו או במספר הכולל של הבייטים שהוצפנו באמצעות אותה גרסת מפתח. לדוגמה, משך החיים המומלץ של מפתחות הצפנה סימטריים במצב Galois/Counter Mode (GCM) מבוסס על מספר ההודעות המוצפנות, כפי שמצוין בכתובת https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38d.pdf.
אם מפתח נפרץ, רוטציה רגילה מגבילה את מספר ההודעות בפועל שפגיעות לפריצה.
אם אתם חושדים שגרסת מפתח נחשפה, השביתו אותה ובטלו את הגישה אליה בהקדם האפשרי.
רוטציית מפתחות קבועה מבטיחה שהמערכת שלכם תהיה עמידה לרוטציה ידנית, בין אם בגלל פרצת אבטחה או בגלל הצורך להעביר את האפליקציה שלכם לאלגוריתם קריפטוגרפי חזק יותר. כדאי לאמת את הנהלים שלכם לרוטציית מפתחות לפני שמתרחש אירוע אבטחה אמיתי.
אפשר גם לבצע רוטציה של מפתח באופן ידני, אם הוא נפרץ או כדי לשנות את האפליקציה כך שתשתמש באלגוריתם אחר.
תדירות רוטציית המפתחות
מומלץ לבצע רוטציה של מפתחות באופן אוטומטי לפי לוח זמנים קבוע. תזמון הרוטציה מגדיר את תדירות הרוטציה, ואפשר גם להגדיר את התאריך והשעה שבהם הרוטציה הראשונה מתרחשת. לוח הזמנים של הרוטציה יכול להתבסס על גיל המפתח או על מספר ההודעות או נפח ההודעות שהוצפנו באמצעות גרסת מפתח.
חלק מתקנות האבטחה מחייבות רוטציה תקופתית ואוטומטית של מפתחות. רוטציית מפתחות אוטומטית בפרק זמן מוגדר, למשל כל 90 יום, משפרת את האבטחה עם מורכבות ניהולית מינימלית.
כדאי גם להחליף מפתח באופן ידני אם יש חשד שהוא נחשף, או כשנדרש להעביר אפליקציה לאלגוריתם מפתח חזק יותר בהתאם להנחיות האבטחה. אפשר לתזמן רוטציה ידנית לתאריך ולשעה בעתיד. רוטציה ידנית של מפתח לא משהה, משנה או משפיעה בדרך אחרת על לוח זמנים קיים של רוטציה אוטומטית של המפתח.
אל תסתמכו על רוטציה לא סדירה או ידנית כרכיב עיקרי באבטחת האפליקציה.
אחרי שמבצעים רוטציה למפתחות
רוטציה של מפתחות יוצרת גרסאות חדשות של מפתחות פעילים, אבל לא מצפינה מחדש את הנתונים ולא משביתה או מוחקת גרסאות קודמות של מפתחות. גרסאות קודמות של המפתח נשארות פעילות וממשיכות לצבור עלויות עד שהן מושמדות. הצפנה מחדש של נתונים מאפשרת לכם להפסיק להסתמך על גרסאות מפתח ישנות, וכך להשמיד אותן כדי להימנע מעלויות נוספות. כאן מוסבר איך להצפין מחדש את הנתונים.
לפני שמשמידים גרסת מפתח, צריך לוודא שהיא כבר לא בשימוש.
שיקולים לגבי מפתחות אסימטריים
Cloud KMS לא תומך ברוטציה אוטומטית של מפתחות אסימטריים, כי נדרשים שלבים נוספים לפני שאפשר להשתמש בגרסה החדשה של המפתח האסימטרי.
במפתחות אסימטריים שמשמשים לחתימה, צריך להפיץ את החלק של המפתח הציבורי בגרסה החדשה של המפתח. לאחר מכן, תוכלו לציין את גרסת המפתח החדשה בקריאות ל-method
CryptoKeyVersions.asymmetricSignכדי ליצור חתימה, ולעדכן את האפליקציות כדי להשתמש בגרסת המפתח החדשה.במפתחות אסימטריים שמשמשים להצפנה, צריך להפיץ את החלק הציבורי של גרסת המפתח החדשה ולשלב אותו באפליקציות שמצפינות נתונים, ולתת גישה לחלק הפרטי של גרסת המפתח החדשה לאפליקציות שמפענחות נתונים.