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

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

מה תעודת לקוח באמת מוכיחה

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

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

שלוש רמות של אחסון מפתח

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

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

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

Where the key livesCopyableWhat it buys you
Key file inside the profileTriviallyRevocation granularity, nothing more
OS non-exportable key storeHard, not impossibleStops casual profile sharing
TPM or PIV tokenNoBinding the server can rely on

הטבלה הזו היא כל הטיעון בשלוש שורות.

מה easy-rsa יכול לעשות ומה הוא לא יכול

הנפקת תעודות לכל מכשיר היא פשוטה. צרו שם נפוץ נפרד לכל מכשיר מול אותו CA, למשל ./easyrsa build-client-full laptop-a nopass, וחזרו על כך לכל מכשיר. רשמו איזה שם נפוץ שייך לאיזה אדם ומכונה.

הביטול ישיר באותה מידה: ./easyrsa revoke laptop-a, צרו מחדש את ה-CRL עם ./easyrsa gen-crl, וודאו שהשרת באמת קורא אותו דרך crl-verify.

מה שה-CA לא יכול לעשות הוא לאמת היכן המפתח הפרטי נמצא לאחר מכן. אם תיצרו את המפתח במארח ה-CA ותעתיקו אותו למכשיר, יצרתם עותק שני בעת ההנפקה. מפתח שאינו ניתן לייצוא חייב להיווצר במכשיר, או להיות מיובא לחומרה שלא תשחרר אותו.

בקרות ששורדות פרופיל שהועתק

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

ביטול מהיר ומתועד הוא הבקרה שעדיין עובדת אחרי שכבר נעשה עותק. כל השאר הוא מניעה.

הטענה שהשרת באמת יכול להסתמך עליה

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

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