פריסה קטנה פונה לטביעות אצבע מפני שרשות תעודות נראית כמו תשתית שלאחר אין זמן להפעיל. האינסטינקט סביר, אבל קיצור הדרך שאנשים בוחרים בו במקום—העתקת סוד אחד של ערוץ הנתונים לשני הקצוות—אינו. תצורת peer-fingerprint שומרת על מבנה ה-TLS שלם: כל צד עדיין מחזיק במפתח הפרטי ובתעודה שלו, וכל צד עדיין מאמת את האחר. מה שמשתנה הוא היכן האימות מעוגן: ממנפיק מהימן לרשימה קצרה של תמציות מוצמדות. מכיוון שתמצית מכסה את התעודה כולה ולא שם, החידוש הופך לפעולה שבאמת גובה זמן.

למה טביעת האצבע מתחייבת באמת

טביעת אצבע של תעודה היא תמצית של התעודה כולה בקידוד DER, לא של המפתח הציבורי שלה ולא של שם הנושא שלה. לכן לשתי תעודות עם שמות זהים ואותו מפתח אך תאריכי תוקף שונים יש טביעות אצבע שונות. זה מה שהופך את ההצמדה למדויקת, וזה גם מה שהופך את החידוש למפריע. הצמדה אינה יכולה להיות אמון במפתח באופן כללי, מפני שהיא נוקבת בחפץ אחד ברגע אחד בחייו. כל אחד רשאי לדעת את התמצית, וידיעתה כשלעצמה אינה מוכיחה דבר.

openssl x509 -in server.crt -noout -fingerprint -sha256
openssl x509 -in client-07.crt -noout -fingerprint -sha256

החזקה במפתח הפרטי המתאים היא מה שמוכיח שהעמית מחזיק בתעודה ההיא, והתמצית היא הדרך שבה הצד האחר מחליט אם ציפה לתעודה הזו בכלל. ההפרדה הזו היא הסיבה לכך שהתכנון הזה אינו הסדר הסוד המשותף הישן: מפתח משותף מאמת כל מי שמכיר את אותם בתים, בעוד שהצמדה מאמתת תעודה אחת. מכשיר אחר מקבל רשומה משלו ולא עותק של אותו סוד, וזה הבדל קטן בקבצים וגדול בהיקף הנזק.

המפה הדדית, לא סימטרית

כל קצה צריך שני דברים: המפתח הפרטי שלו עם התעודה, והצהרה על אילו תעודות עמיתים הוא יקבל. אצל הלקוח ההצהרה הזו היא התמצית של תעודת השרת; אצל השרת זו רשימת התמציות של לקוחות רשומים. דוגמה רשמית לתצורה קטנה של Community 2.6 מציגה את הסדר עם peer-fingerprint, וכדאי לקרוא אותה לפני שבוחרים במודל אמון זה לפריסה אמיתית. שני הכיוונים אינם רשימה אחת הפוכה, והם אינם נכשלים באותו רגע.

Verification directionWhat is pinnedWhat never leaves that endpointHow a wrong pin shows up
Client checks the serverOne digest, for the server certificateThe server private keyThe client aborts during the TLS handshake
Server checks the clientA digest per enrolled clientEach client private keyThe server rejects the peer before a tunnel exists

הוספת מכשיר עורכת רשימת היתר בשרת, בלי להעתיק חומר פרטי של לקוח קיים ובלי להעביר את מפתח השרת לשום מקום. שני הכיוונים גם נכשלים באופן בלתי תלוי, וזה מועיל בזמן אבחון: הצד שסוגר את לחיצת היד הוא הצד שציפייתו לא התמלאה. אם הלקוח דוחה את השרת, התמצית אינה תואמת לתעודה שמוצגת. אם השרת דוחה את הלקוח, התמצית של אותו לקוח חסרה ברשימה, או שהלקוח מציג תעודה אחרת מזו שנרשמה.

רישום: כיצד מכשיר חדש מצטרף

צרו את המפתח והתעודה של המכשיר החדש במקום שבו המפתח הפרטי יחיה, ואז העבירו רק את החפץ הציבורי לצד שצריך להצמיד אותו. העבירו את התמצית הצפויה בערוץ שאתם כבר סומכים עליו, ואז השוו את התעודה השלמה ולא שם שנראה מוכר. תמצית שהועתקה מאותה הורדה לא מאומתת כמו התעודה מוכיחה רק ששני הקבצים תואמים זה לזה. זהו בדיקת עקביות ולא בדיקת זהות, וזו הדרך השקטה ביותר שבה התכנון הזה נחלש.

בשרת, הוספת התמצית היא שינוי תצורה שעובר דרך המנהל הרגיל ואחריו התחברות מחדש. אשרו שהמכשיר החדש מתחבר ושמכשיר שהתמצית שלו הוסרה כבר אינו מתחבר. בדיקה שמכסה רק את המקרה החיובי משאירה את רשימת ההיתר לא מאומתת, וזה בדיוק המצב שבו תהיו בעוד שישה חודשים.

החידוש הוא הרגע היקר

כל תעודה פגה, ולתעודה חדשה יש תמצית חדשה גם כשהמפתח והשמות נשארים זהים. תחת מנפיק, החידוש שקוף לעמיתים שסומכים על אותו מנפיק; תחת הצמדה, הוא אירוע רישום לכל עמית שמצמיד את התעודה.

תכננו את הסדר לפני תאריך הפקיעה ולא אחריו. הפיצו את התמצית החדשה לצדדים שמאמתים אותה, החילו את השינוי, ורק אז החליפו את התעודה בקצה. הסדר הזה אינו משאיר חלון שבו שני הצדדים חלוקים על איזו תעודה היא הנוכחית. החזיקו גם את הרשימה עצמה בבדיקה, מפני שרשימה מוצמדת צוברת רשומות עבור מכשירים שהוצאו משימוש לפני חודשים. כל רשומה מיושנת היא זהות שעדיין מאמתת אם המפתח שלה שורד, ולכן הסרת אחת היא פעולת אבטחה ולא סידור.

מה מפת האמון אינה מחליטה

אימות הוא שכבה אחת, והמפה המוצמדת אינה אומרת דבר על מאגר הכתובות, המסלולים הנדחפים, ה-MTU של הנתיב או מדיניות חומת האש. אלה נשארים תצורה נפרדת עם מצבי כשל נפרדים. מנהרה שמאמתת ולא מעבירה תעבורה היא חקירה אחרת מזו שלעולם לא עולה.

המפה גם אינה מתרחבת ללא גבול, והפריסות הגדולות מגיעות אל PKI מבוסס מנפיק. ההעדפה הזו היא על תפעול ולא על הצפנה, מפני שהוספה והוצאה של זהויות דרך רשות אחת זולה יותר מעריכת רשימה בכל עמית ככל שהצי גדל. היכן שמימוש לקוח אינו תומך באפשרות, התשובה היא מודל אמון תואם שאותו לקוח מתעד, או תחליף נתמך. דיכוי אזהרת האימות אינו מוסיף את התמיכה הזו, וכל ערכו של התכנון הוא שהאימות עדיין מתרחש.

מאמרים קשורים