ניהול מפתחות

אחד מהשימושים הנפוצים במערכות HSM מאובטחות הינו ניהול מפתחות הצפנה. ניהול מפתחות כולל: חילול מפתחות,  שמירת מפתחות , שימוש במפתחות לאורך חיי המפתח בפרט גישה מאובטחת למפתח על ידי בעל המפתח , מחיקה או חידוש המפתח בעת פג תוקפו. כל פעולות אלו נדרשות לביצוע תוך הקפדה על רמה גבוהה של אבטחת מידע.  אפליקציה המבקשת לתקשר מול ה HSM בכדי לבצע פעולות כגון חילול מפתח, שימוש במפתח (הצפנה / חתימה) או מחיקתו, עושה שימוש בממשקים המוצעים על ידי ה HSM, לדוגמא ממשק CNG CSP של Microsoft או ממשק PKCS#11 של חברת RSA. קיימים ממשקים נוספים בהתאם למודל ה HSM הנבחר. 

מפתחות עזר

Key  Activation Key – KAK   – מפתחות המשמשים לצורך אקטיבציה ושפעול של מפתח קיים ב HSM.  מפתח זה הינו מפתח עזר הנמצא ברשותו הבלעדית של המשתמש ובאמצעותו מופעלת הפעולה במפתח ההצפנה העיקרי.

Key Encryption Key – KEK – מפתח המשמש להצפנה של מפתחות עיקריים בעיקר בזמן העברתם בין HSM אחד למשנהו או בתהליך של הפצת המפתח בין שני צדדים.

חילול מפתחות

חילול המפתח מבוצע בתוך ה HSM תוך בחירת סוג המפתח אותו נדרש לחולל ושימוש במחולל מספרים רנדומאליים אמיתי – True Random Number Generator, חילול מפתח הינו פעולה יקרה יחסית מבחינת כח עיבוד ותלוי כמובן גודל המפתח המחולל. למשל, חילול של מפתחות RSA בגודל 4096 bit יארך זמן ארוך יותר מחילול מפתח AES בגודל 512 bit.  המפתח המחולל נוצר ב HSM ואין אפשרות לחלצו מתוך ה HSM אלא באופן מוצפן (על ידי מפתח אחר) לצורך גיבוי שלו או העברתו בצורה בטוחה ליעד (למשל לHSM אחר).

שמירת המפתח

לאורך קיומו המפתח נשמר ב HSM וחלקי הסוד אינם נחשפים לעולם. חלקי הסוד – ערכו של המפתח הפרטי.  היישום המתקשר מול ה HSM יכול לעשות שימוש במפתח – הצפנה / חתימה  אך אינו יכול לחלץ את ערכו של המפתח הפרטי כאמור.  גיבוי המפתח לצורך העברתו לרכיב HSM אחר (למשל בעת החלפת חומרה) מתבצע באמצעות הצפנתו באמצעות מפתח אחר כך שערכו לא יחשף בעת שהוא מחוץ ל HSM, שיטה זו נקראת Key Wrapping והיא אפשרית ומקובלת בתהליך ניהול מפתחות.

שימוש במפתחות

שימוש במפתחות נעשה באמצעות שימוש במשתמש ייחודי המוגדר בHSM. זהו משתמש היכול לבצע פעולות Cryptogaphy אך לא פעולות ניהוליות של ה HSM  ובכך נשמרת הפרדה בין תפקידים ברמת ה HSM, קיימים מספר תפקידים שונים המיועדים לביצוע פעולות שונות ב HSM. אם כן משתמש ה CryptoUser משמש לביצוע פעולות במפתחות השמורים ב HSM כגון פעולות הצפנה / חתימה. מפתחות מסוג Key Activation Keys  או בקיצור KAK  הינם מפתחות ייחודיים המשמשים לצורך הפעלה של מפתחות אחרים. מפתחות אלו מהווים שכבת הגנה נוספת לצורך שימוש במפתחות הצפנה קיימים.  כך למשל משתמש Crypto User יוכל להשתמש במפתח הצפנה קיים רק אם הוא ביצע אקטיבציה של המפתח באמצעות ה KAK שנמצא ברשותו הבלעדים של החותם.  לאחר השימוש במפתח לא ניתן להשתמש בו יותר אלא אם כן מבוצע אקטיבציה מחדש. ניתן לבצע אקטיבציה למספר פעולות קריפטוגרפיות מראש  בכדי לשפר ביצועי מערכת. למשל ניתן לאקטב מפתח לשימוש ל 10 פעולות חתימה מראש. כל פעולה תיספר כך שברגע שיסתיימו 10 הפעולות המשתמש יהיה חייב לאקטב שוב את המפתח למספר פעולות נוספות. אופן פעולה זה תואם את תקן eIDAS האירופאי לנושא חתימה דיגיטאלית.

תרחישי יישום נפוצים

עבודה עם מפתחות הצפנה בתהליך eIDAS מחייב שימוש במפתח נוסף KAK לצורך הפעלה של מפתח ההצפנה העיקרי.  מפתח ה KAK נשמר בחזקת המשתמש מחזיק המפתח העיקרי.  חילול KAK, חילול מפתח הצפנה (עיקרי) , שיוך ה KAK למפתח הצפנה עיקרי, שיוך זה מאפשר הפעלה של מפתח ההצפנה (עיקרי) באמצעות ה KAK. טרם ביצוע פעולה קריפטורגפית יש לבצע הפעלת המפתח בעמצעות ה KAK , בתהליך זה מפתח ההצפנה “נפתח” לשימוש על ידי בעל מפתח ה KAK שהוא המשתמש החותם.