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

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

שני כשלים שחולקים מילה אחת

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

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

השוו מה התהליך הרץ באמת טען

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

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

השוו את ערוץ הבקרה לערוץ הנתונים

שני מנגנונים מאמתים חלקים שונים של חיבור ומוגדרים בנפרד, כפי ש מסמך האפשרויות 2.6 מתאר. tls-auth מוסיף HMAC לחבילות ערוץ הבקרה ומקבל ארגומנט כיוון שחייב להיות הפוך בשני העמיתים, בעוד ש tls-crypt מגן על ערוץ הבקרה במפתח משותף במקום. אף אחד מהם אינו בדיקת השלמות של ערוץ הנתונים עצמו. בצופן נתונים AEAD הבדיקה הזו מובנית בצופן, ולכן auth התקציר הנפרד אינו משמש כפי שהוא משמש בצופן שאינו AEAD.

כלומר, שורה של auth שנעתקה מפריסה לא־AEAD שעובדת עשויה להיות חסרת רלוונטיות בפריסת AEAD, ופריסת AEAD עדיין עשויה להיכשל בערוץ הבקרה אם tls-auth המפתח או הכיוון שלו שגויים. השוו כל הגדרה לעמית ולא לתצורה שנזכרת.

השוו את התיקון לתכונה שאתם מוותרים עליה

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

קראו את האירוע הרלוונטי הראשון בשני הקצוות לפני שמשנים דבר, ואז שנו רק את אי־ההתאמה שהוא נוקב בה.

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

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