מפתח SSH הועתק או סוכן הועבר הלאה? שני סיכונים שונים
חתימה אינה קובץ מפתח, וסוכן מיופה אינו חשיפה. הפרידו בין עובדת הפרוטוקול לשאלת האמון בנקודת הקצה, ואז הגיבו.
התחברות שמשתמשת במפתח SSH דרך VPN אינה אומרת שהמפתח הפרטי נמסר למפעיל הרשת, וההרגעה הזו צרה יותר ממה שאנשים שומעים. אימות במפתח ציבורי שולח מפתח ציבורי וחתימה שהלקוח מפיק מקומית. העברת סוכן הלאה היא סידור אחר עם חשיפה אחרת, והיא עלולה להשאיר יכולת אימות שמישה על מכונה שאינכם שולטים בה. התגובה שאתם חייבים תלויה בכך איזה משני הדברים באמת קרה.
מה אימות במפתח ציבורי שולח
בשיטה הסטנדרטית של מפתח ציבורי הלקוח מציע מפתח ציבורי, השרת מחליט אם הוא מקבל את המפתח הזה, והלקוח חותם על אתגר במפתח הפרטי, שנשאר בקובץ שלו או בסוכן שלו. מה שעובר ברשת הוא המפתח הציבורי והחתימה הנובעת ממנו. שום דבר בחילוף הזה אינו דורש שהשרת, המנהרה או מישהו בדרך יחזיק בחומר הפרטי.
מפרט האימות מגדיר את ההוכחה הזו, והמפתח הפרטי אינו שדה בבקשה.
זו אמירה על פרוטוקול, לא תעודת אופי לכל נקודת קצה מעורבת. בדיקת זהות המארח חייבת להישאר שלמה, מפני ששרת שאינו יכול להוכיח מי הוא עשוי לאסוף חתימות למטרה שלא התכוונתם לה. מכונה וירטואלית שכורה, מבצר בירושה ומחשב נייד שמריץ הרחבה לא מוכרת הם שלוש שאלות אמון נפרדות. החזיקו אותם נפרדים מהשאלה הקריפטוגרפית, שאכן הוכרעה.
מה העברת סוכן הלאה מייפה
העברת סוכן הלאה פותחת ערוץ מהמארח המרוחק חזרה לסוכן על המכונה שלכם, כך שתהליכים במארח הזה יכולים לבקש מהסוכן לחתום בלי להחזיק אי פעם במפתח הפרטי. המפתח נשאר במקומו, והיכולת לא. כל דבר שמסוגל להגיע לשקע המועבר הזה במארח המרוחק, למשך חיי ההפעלה, יכול לבקש פעולות אימות כאחת הזהויות הטעונות. זו סמכות מיופה, ולכן העברה הלאה ראויה למדיניות צרה יותר מאשר מסירת מפתח ציבורי.
קובץ מפתח שהועתק הוא חשיפה. סוכן שהועבר הלאה הוא הרשאה, והשניים זקוקים לתשובות שונות.
הפעילו העברה הלאה לצורך נקוב ולמארחים נקובים, ובדקו מה הלקוח עושה בפועל ולא מה שנראה שהתצורה אומרת. ההגדרות האפקטיביות הן שקובעות, מפני שבלוק מארח עוקף בשקט ברירת מחדל גלובלית. אותו היגיון חל בצד השרת, שיכול לסרב להעברה הלאה לחלוטין כשהפריסה אינה זקוקה לה מעולם.
קראו את הראיות לפני בחירת תגובה
אם מאמינים שקובץ מפתח פרטי או זהות חתימה שקולה נחשפו, התגובה היא החלפה וביטול דרך התהליך של הארגון שלכם, ובנוסף הסרת הקבלה שלו מכל שירות שסמך עליו. מחיקת עותק מקומי אחד אינה מבטלת את העותקים שאינכם רואים.
אם החשש הוא גישה זמנית של סוכן, התגובה צרה יותר: עצרו את הייפוי המיותר, עברו על ההפעלות והזהויות המעורבות, ותנו לבעל האירוע להחליט אם החלפה מוצדקת. ראיות חשובות כאן, מפני שלא נצפה ייצוא אינו מוכיח שלא נעשה שימוש לרעה באימות, ושינוי נתיב לבדו אינו אבחנה של מפתח גנוב. רשמו איזה רכיב היה מהימן, אם ההעברה הייתה מופעלת ומה נצפה בפועל. אחר כך בחרו את התגובה שמתאימה לרשומה הזו ולא את הדרמטית ביותר הזמינה.
ssh-add -l
ssh -G host.example | grep -i forwardagent
הריצו אותם לפני שינוי ואחריו כדי שההשוואה תאמר משהו. הפעלה שהוקמה קודם שומרת על הייפוי שניתן לה, יהיה מה שיהיה שנאמר בהגדרות כעת.
שתי בקרות שאינן ניתנות להחלפה
הגנה על חומר פרטי, הגבלת מי רשאי לבקש חתימה עליו, ואימות זהות הצד האחר הם שלושה בקרות קשורים, ואף אחד לא מחליף אחר. צוות שמסיר העברה הלאה בלי לבדוק מפתחות מארח תיקן חצי בעיה. צוות שמחליף מפתח מפני שהנתיב השתנה לא תיקן דבר.
נקודת קצה נפגעת היא שאלה רביעית, מפני שתוכנה עם הרשאות על המכונה שלכם יכולה לעשות הרבה יותר מאשר לצפות במנות.
מינו את האירוע לקטגוריות האלה לפני שאתם נוגעים במשהו, ותנו לכל אחת בעלים. נהלו רשומה קצרה של מה שהיה מהימן, מה יופה ומה אומת, מפני שהרשומה הזו היא מה שהופך את הסקירה הבאה לזולה במקום לוויכוח נוסף. אם קטגוריה כלשהי אינה ידועה, כתבו לא ידוע במקום להניח את המקרה המיטיב. ההבחנה מעשית ולא אקדמית: היא קובעת אם אתם מחליפים אישור, מבטלים הפעלה, או פשוט מפסיקים להעביר הלאה.