היכן נשברת ההגנה: נקודות התורפה של אחסון קר של מפתחות
נקודת הכשל הנפוצה ביותר היא המפתח הפרטי, שחי במקום שבו הוא חותם. כל עוד השירות מחזיק את המפתח על הדיסק לצד האפליקציה, דליפה של מפתחות מארנק חם מתחילה בתלות פגיעה אחת או בגישה מיותרת אחת לשרת — ומכאן והלאה כבר לא הקוד שלכם חותם על העסקאות.
אין פעולה הפוכה ברשת: המשיכה מאושרת באופן בלתי הפיך, ו"להחזיר כמו שהיה" אינו אפשרי מבחינה טכנית.
הכשל השני הוא היעדר הפרדה של הרשאות חתימה. כשכל הפעולות עוברות דרך מפתח אחד, תשלום ללקוח והעברת בעלות על חוזה נחתמים באותן סמכויות.
גישת פנים למפתחות בתכנית כזו כמעט אינה מוגבלת: מי שיש לו גישה לשרת, יש לו גם גישה לכספים, וניתוח האירוע מצטמצם לחיפוש אחר מי שהייתה לו היכולת הטכנית לעשות זאת.
השלישי — גיבוי של המפתח בגלוי: במאגר קוד, בדאמפ של מסד נתונים, בהערה של מנהל מערכת. את הרביעי מגלים אחרונים מכולם — היעדר נוהל שחזור. אובדן הגישה לארנק אינו בא מתקיפה, אלא מכך שנשא הנתונים כשל, ואין עוד מי שיאסוף קוורום לחתימה.
התוצאה של כל הכשלים הללו זהה: כספים יוצאים בלי יכולת ערעור, והפרויקט נותר עם הנפקה מחדש של חוזים ועם שיחה עם מחזיקי הטוקנים. לכן בהמשך נפרק כיצד זה נסגר — מבידוד החתימה ועד נוהל שחזור שניתן לאימות.
חתימה מבודדת: מה משתנה בהגנה ובתפעול
חתימה מבודדת הופכת אחסון קר של מפתחות מארכיון למצב עבודה: המפתח כבר אינו שוכן בזיכרון של שירות הנגיש מהרשת. העסקה נבנית במארח ויוצאת לחתימה במנותק במעגל נפרד, וחזרה מגיעה רק התוצאה החתומה — המפתח הפרטי אינו עוזב את ההתקן בשום צורה.
חלון הגישה למפתחות
בעבר החלון היה קבוע: כל עוד השירות פעל, המפתח היה נגיש לכל תהליך עם הרשאות לקובץ או למאגר. לאחר המעבר מצטמצם החלון לסשן חתימה — עשרות דקות למשימה מוגדרת. בין הסשנים המפתח חתום, הייצוא חסום על ידי מדיניות, וניסיון חילוץ הוא כבר אירוע לחקירה.
יחד עם החלון נעלם מחלקה שלמה של כשלי אבטחה: פגיעה בבנייה, דליפה דרך לוגים ותצלומי זיכרון, גישת קבלן לשרת, גניבת עותק של תיקיית מפתחות. בעבר כל אחד מהם הוביל לדליפה של כל סט המפתחות בבת אחת.
שחזור הגישה לארנק מפסיק להיות פעולה של מזל: המפתח מתחלק למנות לפי תכנית SLIP-0039 ונאסף לפי סף, למשל 3 מתוך 5. את ההליך מריצים מראש בסביבת בדיקה, ולכן באירוע הוא אורך שעה ולא ימים.
ביקורת של פעולות החתימה הופכת לניתנת לאימות: היומן מתעד את היוזם, את טביעת האצבע של העסקה, את ההתקן ואת התוצאה, נכתב על המודול עצמו ועובר לאיסוף אירועים חיצוני. לפיו ניתן לראות את שיעור הפעולות שנדחו ואת הזמן מהבקשה ועד לחתימה.
שיטות אחסון במנותק: השוואת גישות ומגבלות
הבחירה בשיטת אחסון במנותק נשענת לא על קריפטוגרפיה, אלא על אופן העבודה של המפתח: כמה חתימות ביום הוא משרת וכמה אנשים מורשים לגשת אליו. ארנק חומרה נוח כל עוד החותם הוא אחד; מודול חתימת עסקאות — כשהפעולות זורמות ברצף.
ריבוי חתימות עם הפרדת תפקידים מחלק את הסמכויות בין המפעיל לגזבר ומסיר נקודת כשל יחידה. נשא מפתח במנותק ותכנית פיצול גיבוי פותרים משימה אחרת — שחזור חומר המפתח לאחר אובדן ההתקן.
| אפשרות | מתי מתאימה | מגבלות |
|---|---|---|
| ארנק חומרה (Ledger ודומים) | חותם אחד, עשרות פעולות ביום, נדרשת גישה מהירה | המפתח שוכן בהתקן אחד, אין הפרדת תפקידים, הכול נשען על גיבוי אחד |
| מודול חתימת עסקאות | זרימת פעולות, נדרשת אי-חילוץ של המפתח ויומן חתימות | צומת נפרד, נוהל גישה וליווי מתמיד |
| ריבוי חתימות עם הפרדת תפקידים | כמה אחראים, מגבלות על היקף הפעולות | אישור ממושך יותר, נדרשים מתאם חתימות וניהול כתובות |
| נשא מפתח במנותק | שחזור מאסטר-סיד, אחסון מחוץ לרשת למשך חודשים | הזנה ידנית, סיכון לטעות, הגנה פיזית מפני העתקה |
אפשר ואף רצוי לשלב בין הגישות: המעגל החם חותם על שגרה במסגרת המגבלה, הקר — על משיכות גדולות. המגבלה בכולן זהה — נוהל גישה ותהליך שחזור שנבדק; בלעדיהם כל תכנית מדרדרת לאדם אחד עם נשא על השולחן.
סדר ההטמעה: מביקורת ועד מסירה לתפעול
הטמעת אחסון קר אינה רכישת התקנים, אלא רצף של עבודות, שבו כל שלב מסתיים בחפץ שניתן לאימות. הסדר שלהלן בנוי כך שהמפתח הפרטי לא ימצא באף שלב על מכונה עם גישה לרשת.
- ביקורת של הטיפול במפתחות. אוספים מלאי: כמה מפתחות וכתובות, מי יוזם עסקאות, היכן נמצאים הגיבויים ומי ראה אותם. בתוצר — רשימה עם רמת קריטיות ומפת סיכונים עדכנית.
- תכנית הפרדת תפקידים. מפרידים בין יוזם הפעולה, המאשר ומחזיק מנת המפתח. עבור כתובות משמעותיות מגדירים סף חתימות m-of-n: פגיעה במשתתף אחד אינה מאפשרת למשוך כספים.
- הגדרת ההתקנים. יצירת מפתחות על התקן מבודד ללא ממשק רשת, צירוף הגיבוי — על נשא פיזי, המנות מפוזרות בין מקומות אחסון שונים.
- בדיקת החתימה במעגל בדיקה. מריצים מחזור מלא ברשת בדיקה: בניית העסקה, חתימה במנותק, שידור, השוואת כתובות וסכומים. בנפרד מוודאים שחתימה בלתי אפשרית ללא קוורום.
- נוהל שחזור המפתח. קובעים כיצד ועל ידי מי משוחזרת הגישה בעת אובדן התקן או מנה, ומבצעים שחזור תרגולי — נוהל שלא נבדק אינו נחשב לעובד.
- מסירה לתפעול. מוסרים את מפת המפתחות, הוראות למשמרת תורנית, סדר רוטציה והוצאה של התקנים משימוש, וממנים אחראים.
מכאן והלאה נותר הליווי: רוטציה, חיבור כתובות חדשות ובדיקות שחזור חוזרות לפי לוח זמנים.
מה נשאר בידי הלקוח: קונפיגורציות, תכניות, נהלים
בתוצר מקבל הלקוח לא סט של פעולות חד-פעמיות, אלא מעגל עבודה של אחסון קר: התקן שהמפתח עליו אינו עוזב את הרכיב המוגן, ונוהלים שלפיהם עובדת איתו המשמרת. כעבור חצי שנה אמור לדעת לתפעל את המעגל הזה אדם שלא השתתף בהגדרה.
- תכנית זרימת החתימה — מי יוזם את הפעולה, היכן נבנית העסקה הבלתי חתומה, על איזה התקן מאשרים וכיצד התוצאה חוזרת לרשת.
- מטריצת גישה למפתחות — תפקידים והפרדת תחומי אחריות: מי יוזם, מי מאשר, מי רואה רק את הכתובת, כמה חתימות יש לאסוף להעברה.
- נוהל רוטציה של מפתחות — מועדים מתוכננים וטריגרים להחלפה לא מתוכננת (עזיבת מחזיק, חשד לפגיעה), סדר הוצאת הכתובת הישנה משימוש.
- הוראות לשחזור גישה — תרחיש שלב-אחר-שלב בעת אובדן התקן או אי-זמינות של אחד המחזיקים, חובה עם בדיקה במעגל נפרד.
- תיעוד של נוהלי החתימה — טופס בקשה, צ'ק-ליסט לפני אישור, סדר הסלמה של פעולות שנויות במחלוקת.
- התקנים ונשאים מוגדרים עם צירופי מפתח — סדר אתחול, עותקים המפוזרים במקומות שונים גיאוגרפית, סדר ניהול והחלפה של נשאים.
מוסרים הכול בצורה המתאימה לביקורת חיצונית: שירות הביטחון או משקיע רואה שהשליטה במפתחות אינה נשענת על אדם אחד ותיקייה אחת.
מקרה בוחן: הפרדנו תפקידים והסרנו נקודת כשל יחידה
בפרויקט עם הנפקת עסקאות יומית, מפתח החתימה נשמר בארנק אחד, והגישה אליו הייתה לארבעה אנשים — כולל קבלנים שכבר לא עבדו עם הצוות. זוהי נקודת כשל קלאסית של חתימה: פגיעה או אובדן גישה עצרו את הנפקת הפעולות כולה, ולפי היומנים אי אפשר היה להבין מי בדיוק אישר את העסקה.
מה שינינו
התפקידים חולקו לשלושה מעגלים — גזברות, ביטחון ותפעול — וכל אחד קיבל אחסון חומרה נפרד Ledger עם מפתח משלו. החתימה הועברה לריבוי חתימות עם סף 3 מתוך 5: העסקה נבנית רק כשמאשרים אותה מחזיקים מתפקידים שונים, ומפתח אחד כבר אינו נותן שליטה מלאה בכספים. שני מפתחות גיבוי נמצאים במנותק אצל מחזיקים שונים, ולכן נפילה של עובד אחד אינה חוסמת את העבודה.
מדדים לפני ואחרי
מספר האנשים עם גישה מלאה למפתח הצטמצם מארבעה לשלושה חותמים עם סמכויות נפרדות. הנפקת העסקה כללה בעבר התכתבות ואישור ידני — מהבקשה ועד החתימה עברו שעות; כעת הסף נאסף במקביל וההנפקה מסתיימת בדקות.
השחזור לאחר אובדן גישה התקצר משבועות ליום אחד: די לאסוף את הסף מהמחזיקים שנותרו ולהנפיק מחדש מפתח אחד, בלי לפגוע בשאר. התלות של החתימה באדם אחד הוסרה כליל.
במה שונה חתימה חומרתית מריבוי חתימות?
אלה שתי רמות הגנה שונות, והן אינן מחליפות זו את זו. חתימה חומרתית עוסקת בבידוד ההתקן מהרשת: המפתח נוצר ונשאר בתוך שבב מוגן, העסקה יוצאת לחתימה וחזרה מגיעה רק החתימה. פגיעה במכונת העבודה או יירוט תעבורה כבר אינם חושפים את המפתח הפרטי.
ריבוי חתימות פותר משימה אחרת — פיזור האמון בין המחזיקים. הכתובת מוגדרת כך שלמשיכה נדרשות, למשל, שלוש חתימות מתוך חמש, ומפתח אחד שנפגע או אבד אינו מזיז כספים.
אבל כל מפתח בסט עדיין נשמר היכן שהוא: אם הוא מונח כקובץ על שרת עם גישה לרשת, התכנית מאבדת מערכה — די לתוקף לחזור על אותו תרגיל.
לכן בפועל מיישמים תכנית הגנה משולבת: חותמים חומרתיים אצל כמה מחזיקים, סף של כמה חתימות ובנוסף מדיניות — מגבלות על סכומים, רשימת כתובות נמען מאושרות, השהיית ביצוע של משיכות גדולות. אז גניבת התקן אחד או לחץ על אדם אחד אינם נותנים גישה לכספים.
ההבחנה לפי סיכונים פשוטה. חתימה חומרתית מסירה את הסיכון לדליפת מפתח מהתשתית, אך אינה מצילה מאובדן התקן, מכפייה על מחזיק או מטעות בנוהל עצמו. ריבוי חתימות מסיר את הסיכון לנקודת כשל בודדת ולקשר בין גורמים, אך אינו מועיל דבר אם המפתחות נמצאים על מכונות מחוברות לרשת.
אף אחת מהגישות אינה מבטלת את החלק הפרוצדורלי: הפרדת תפקידים, יומן חתימות, גיבויים של צירוף המפתח על נשאים במנותק, רוטציה של מחזיקים. תשובה קצרה: חתימה חומרתית וריבוי חתימות מכסות מחלקות שונות של כשלים, ולכתובות גזברות אנחנו מתכננים אותן יחד.
ספקות טכניים: שאלות נפוצות על ההטמעה
התנגדויות טכניות צפות בדרך כלל לא בהתחלה, אלא בשלב המסירה לתפעול: מי יחתום אם המחזיק אינו זמין, מה לעשות בעת החלפת האחראי וכיצד להשתכנע שמגבלות הגישה עובדות לא רק על הנייר. להלן תשובות לשאלות שאנחנו מסירים לרוב לפני, ולא אחרי ההשקה.
האם אפשר להתחיל בלי מעגל חומרה?
כן. את המעגל הראשון מרכיבים על מכונות מבודדות ללא גישה לרשת, את חומר המפתח מפצלים לפי תכנית סף, והחתימה נאספת רק בקוורום של מנות. כשהתהליכים מתייצבים, המנות מועברות למודולי חתימה חומרתיים בלי להחליף כתובות ובלי להנפיק מפתחות מחדש.
מה לעשות אם מחזיק המפתח אינו זמין?
תכנית הסף נבנית כך שהחתימה תיאסף בלי כל משתתף אחד — למשל, קוורום של 2 מתוך 3. אם אי-הזמינות מתמשכת, המנות מורכבות מחדש על אחראי חדש, והקודמת מבוטלת. בנפרד קובעים נוהל: חלון ההמתנה, סדר ההסלמה, מי מקבל את ההחלטה.
כיצד לוודא שמגבלות הגישה אכן עובדות?
מבצעים תרגיל: מנסים לאסוף חתימה בלי קוורום, עם מנה זרה, מהרשת החיצונית. כל הניסיונות צריכים להיכשל ולהירשם ביומן הביקורת. באופן שוטף משווים את היומנים לנוהל ומריצים עסקת בדיקה במסלול התקין.
כיצד מוחלף האחראי על המפתחות?
באמצעות טקס רוטציה: המחזיק החדש מייצר מנה משלו, הישנה מושמדת בנוכחות עדים, המפתח והכתובות נשארים זהים. אף שלב אינו מתבצע לבדו — הדבר שולל החלפה ומאפשר להוכיח את תקינות ההחלפה.
כיצד נשמר הגיבוי של חומר המפתח?
את העותקים מפזרים גיאוגרפית ושומרים על נשאים עמידים בפני השפעות חיצוניות, כל חלק בנפרד מהשאר. אחת לרבעון בודקים שחזור על מכונה נקייה: כל עוד העותק לא נפרס ולא חתם על פעולת בדיקה, הוא נחשב ללא-עובד.
תארו את תכנית התפקידים שלכם ואת הסף הנדרש — נחזור עם הערכה ותכנית הטמעה.נדון במשימה: נחזור עם הערכה ותכנית עבודה
הערכה מדויקת של היקף העבודה נשענת על נתוני הקלט, ולא על משאלות כלליות.
כדי לחזור עם תכנית הטמעה של הגנת מפתחות, ולא עם רשימה מופשטת של אמצעים, אנחנו צריכים לראות את תכנית הטיפול הנוכחית במפתחות: היכן הם נמצאים כעת, מי ובאיזה הקשר ניגש אליהם, כיצד נחתמות הפעולות ואיזה היקף נכסים משרת המעגל. תארו זאת בצורה חופשית, את הפרטים נחדד בהתכתבות.
בתוצר תקבלו:
- ביקורת של המעגל הנוכחי: מפת אחסון המפתחות, ערוצי גישה, צווארי בקבוק ונקודות שבהן החתימה מבוצעת ידנית או ממכונה עם מעגל גישה רחב.
- תכנית יעד לטיפול במפתחות — עם הפרדת תפקידים, ספי אישור וגבול ברור בין החלק החם לקר.
- תכנית הטמעה של הגנת מפתחות בשלבים: קודם נכסים קריטיים ובדיקות חובה, אחר כך נוחות תפעולית.
- נהלי גיבוי ושחזור גישה, כולל סדר הפעולות בעת אובדן חלק מהשומרים.
- מטריצת הרשאות ותיעוד פעולות ביומן: מי, מתי, לפי בקשת מי ואחרי איזו בדיקה חתם על הפעולה.
- סדר הבדיקה לאחר ההשקה: כיצד נוודא שהחתימה עוברת כשורה ושאנשים מיותרים אינם ניגשים למפתחות.
את הדיון במשימת החתימה נקיים בהתאם לאופן העבודה שלכם — פעולות חד-פעמיות, תשלומים שוטפים, כמה חותמים. תארו היכן נשמרים המפתחות כעת ומה קריטי לא לאבד — נחזור עם הערכת היקף העבודה ולוח זמנים של השלבים.







