14.4.1. מושגים: אמון, מפתחות ופורמט קבצים¶
לפני כל פקודה, שלושה פריטי רקע החלים על כל עמוד אחר בחלק זה.
14.4.1.1. מודלי אמון¶
חיבור TLS יכול לספק שלוש רמות הולכות וגדלות של ודאות:
הצפנה בלבד – התעבורה מוצפנת אך אף צד אינו מוכיח מי הוא. קל להגדרה (ללא אימות אישורים) אך חשוף להתקפת man-in-the-middle. השתמש רק לבדיקות מקומיות.
אימות שרת – הלקוח מאמת את אישור השרת מול אישור מהימן (מודל ה-HTTPS המוכר). ה-OpenMV Cam יכול לפעול כלקוח (מאמת שרת מרוחק) או כשרת (מציג את האישור שלו עצמו).
אימות הדדי (mTLS) – שני הקצוות מציגים ומאמתים אישורים. נמצא בשימוש כאשר השרת חייב גם להיות בטוח בזהות הלקוח.
14.4.1.2. בחירת סוג מפתח¶
בניית mbedTLS של המצלמה תומכת ב-ECDSA על עקומות ה-prime של NIST/SEC וב-RSA. ישנן שלוש דרכים מעשיות לייצר מפתח; ECDSA P-256 (prime256v1) מומלץ:
ECDSA P-256 (prime256v1) – אבטחה של כ-128 ביט עם מפתח של 256 ביט. מפתחות וחתימות זעירים, ובמידה ניכרת לחיצת היד המהירה ביותר מבין האפשרויות הנתמכות על Cortex-M (פעולות עקומה אליפטית זולות בהרבה מפעולות מפתח-פרטי של RSA). נתמך באופן אוניברסלי על ידי עמיתי TLS. זהו האיזון הטוב ביותר של אבטחה, מהירות, שימוש ב-RAM/flash ותאימות במכשיר מוטמע, ולכן זו ברירת המחדל כאן.
ECDSA P-384 (secp384r1) – אבטחה של כ-192 ביט. עדיין עקומה אליפטית, כך שיעיל באופן סביר, אך גדול ואיטי יותר מ-P-256 עבור מרווח אבטחה שפריסות IoT טיפוסיות אינן זקוקות לו. השתמש רק אם אישור ארוך-טווח או דרישת ציות מחייבים זאת.
RSA-2048 – אבטחה של כ-112 ביט. תואם באופן אוניברסלי, כולל עם עמיתים ישנים מאוד, אך מפתחות ואישורי RSA גדולים בהרבה ופעולות מפתח-פרטי של RSA (המבוצעות על ידי הצד המציג את האישור) הן האפשרות האיטית והרעבה ביותר לזיכרון על מיקרו-בקר. השתמש רק כאשר עמית אינו יכול לבצע ECDSA.
הערה
מפתחות Ed25519 / Curve25519 אינם נתמכים. בניית mbedTLS של ה-OpenMV Cam אינה מפעילה EdDSA או Curve25519, כך שאישור או מפתח Ed25519 ייכשל בטעינה או בלחיצת היד. השתמש באחת משלוש האפשרויות לעיל.
14.4.1.3. פורמט קבצים: השתמש ב-DER¶
בניית mbedTLS המשמשת את ה-OpenMV Cam אינה כוללת ניתוח PEM, ולכן המצלמה קוראת אישורים ומפתחות רק בצורת DER (הקידוד הבינארי). רוב הכלים פולטים את צורת ה-PEM (טקסט base64) כברירת מחדל, ולכן כל קובץ המיועד למצלמה מומר תחילה ל-DER – כל מתכון בחלק זה מסתיים בשלב המרה זה. תזדקק ל:
מפתח פרטי – נשמר בסוד, משמש את הצד שמציג אישור.
אישור – החלק הציבורי, המוצג לצד השני במהלך לחיצת היד.
אישור CA / אמון – האישור שהצד המאמת טוען כדי להחליט אם העמית מהימן. עבור הגדרה עצמי-חתומה זהו פשוט האישור של העמית עצמו.