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

השוו את שני העיצובים במקום שבו הם באמת נבדלים

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

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

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

detect window -> authenticate request -> authorize -> issue
-> deliver and stage -> activate -> verify fresh auth -> retire old material

אתרו את החלון מתוך התעודה עצמה

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

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

אשרו את הבקשה לפני שמונפק משהו

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

מחשב נייד שהוצא משירות ושהוא עדיין מריץ את המשימה המתוזמנת שלו לא אמור לקבל הרשאה חדשה. RFC 7030 שווה קריאה כאן, משום שהוא מפריד בין רישום מחדש מאומת לבין הרשאה ומדיניות בצד השרת; זהו מודל לשאול ממנו, לא טענה ש-OpenVPN או EasyRSA מספקים את הפרוטוקול הזה.

מסירה, הכנה והפעלה כשלבים נפרדים

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

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

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

תכננו קודם את השחזור של החלון שהוחמץ

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

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

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

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