חדשות היום

“אבטחת האינטרנט של הדברים” (IOT) – הצפנה במפתח ציבורי

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

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

אימות חתימה מבוססת מפתח ציבורי
השיטות הקיימות להצפנה עם מפתח ציבורי מאמתות את השלמות (Integrity) והאימות (Authenticity) של תוכן ספרתי. שני המאפיינים היסודיים האלו מסופקים על ידי שיטת החתימה הספרתית ונדרשים כדי שהתקן אלקטרוני יוכל להסתמך על התוכן הספרתי (כלומר על הקוד הבינארי הניתן לביצוע). שלמות התוכן הספרתי מובטחת על ידי ‘תמצות מסרים’ (אבטחת אלגוריתם גיבוב), כמוהו כ’בדיקת על יתירות מחזורית’ (CRC), אך כזו שמפיקה יותר בתים בפלט ולא מאפשרת לזייף תוכן ספרתי.
שני תכנים ספרתיים אקראיים שונים מפיקים שני ערכי גיבוב שונים. לכן, אם ישתנו כמה בתים של התוכן הספרותי, ישתנה גם ערך הגיבוב של התוכן הספרתי. בנוסף, שלא כמו בבדיקת CRC, לא ניתן להוסיף כמה בתים לתוכן הספרתי שעבר שינוי, באופן כזה שערך הגיבוב הנובע, יהיה תואם לערך הגיבוב של התוכן הספרתי המקורי, שלא עבר שינוי. לכן, עם אלגוריתם גיבוב ששומר על התוכן הספרתי, לא ניתן לערוך בהסתר שינוי של תוכן ספרתי זה. בנוסף, במחשוב ערך גיבוב, כמו במחשובCRC, לא מעורבים בו מפתחות הצפנה.
אימות התוכן הספרתי מובטח על ידי שיטת החתימה הספרתית, מבוססת המפתח הציבורי. הצפנה של מפתח ציבורי מבוססת על זוג מפתחות. מפתח פרטי שמאוחסן באופן סודי (למשל KPRIV), ומפתח ציבורי (למשל KPUB) זמין לכל אחד. במפתח הפרטי אפשר להשתמש כדי לחתום תוכן ספרתי. המנפיק של התוכן הספרתי משתמש במפתח הפרטי שלו המוחזק באופן סודי, על מנת לזהות את עצמו כמנפיק. המפתח הציבורי יכול לשמש כל אחד כדי לאמת חתימה של תוכן ספרתי. שני מפתחות אלו קשורים יחד. למעשה, חתימה על תוכן עם המפתח KPRIV מפיקה חתימות ספרתיות שאפשר לאמת אותן בהצלחה רק על ידי המפתח KPUB. אין עוד מפתח ציבורי אחר שיכול לעשות את העבודה. בניגוד לכך, אם חתימה אומתה בהצלחה בעזרת מפתח KPUB, אין כל ספק שהיא נחתמה על ידי מפתח KPRIV ולא על ידי כל מפתח אחר.
הפקה של חתימה ספרתית כרוכה בשני צעדים (1) גיבוב של התוכן הספרתי והפקת ערך גיבוב עם התכונות המוסברות לעיל (2) ערך הגיבוב הקודם “נחתם” בעזרת מפתח פרטי שמוחזק בבעלות ייחודית, שאינה חשופה, של מחבר התוכן הספרתי. רק הבעלים של המפתח הפרטי יכול להשתמש במפתח הפרטי לחתימה על תוכן. על המפתח הפרטי צריך לשמור באופן סודי, על המפתח הציבורי אין צורך.
את השלמות, האימות והזהות של המפתח הציבורי צריך להבטיח – על ידי מתן אישור עצמי – כלומר, מקבל התוכן הספרתי מקבל את המפתח הציבורי מהשולח, באופן אישי, או בדרך שאינה מותירה ספק לגבי המקור החוקי והבעלות שלו. במפתח הציבורי הזה (נקרא גם מפתח השורש) אפשר לבטוח כל עוד אנשים לא מורשים לא יוכלו לשנותו. או – דרך אישור היררכי – כאשר ההיררכיה של המאמתים מבטיחה את המקוריות של המפתח הציבורי. התשתיות של המפתח הציבורי (PKI) מספקות את הגדרות ההיררכיות. הקשר הפיסי בין מפתח ציבורי והזהות של בעלי המפתח, מהווה אישור. אישורים נחתמים על ידי גופים מתווכים (למשל, הרשויות מעניקות האישורים) של ההיררכיה של PKI.
למשל גוף מבקש שיהיה לו מפתח ציבורי מאושר. אם אושר, המידע לגבי הזיהוי (שם, ארגון, כתובת וכיו”ב) מוצמד למפתח הציבורי והמסמך הנובע מכך נחתם על ידי המפתח הפרטי של הרשות מעניקת האישור. אם חלק מהזהות ייפרץ (למשל, ערך המפתח הציבורי או חתימת האישור), החתימה המאושרת תהפוך להיות לא תקפה. תוקף האישור מאומת על ידי שימוש באותה שיטת אימות חתימה בהצפנה כמו זו ששימשה עבור התוכן הספרתי. אימות החתימה של האישור מבטיח את השלמות והאימות של האישור, וכתוצאה מכך, את אלו של פריטי המידע הנכללים באישור: המפתח הציבורי והזהות.
לכן, לפני שימוש במפתח ציבורי, יש לבחון את תוקף האישור שלו על ידי שימוש במפתח ציבורי של רשות מעניקה אישורים. לאחר מכן, לוודא שיש תוקף גם לאישור המפתח הציבורי של הרשות מעניקת האישורים, על ידי שימוש במפתח ציבורי של ‘הרשות האב’ מעניקת החתימה, וכך הלאה.
טכניקה זו של חתימת מפתח ציבורי מאפשרת לתת אמון בקוד בינארי ניתן לביצוע. התוכנה כמוה כתוכן ספרתי. השולח של התוכן הספרתי הזה הוא המאשר של התוכנה, המקבל הוא ההתקן האלקטרוני. מאשר התוכנה יוצר זוג מפתחות וטוען את מפתח האימות הציבורי אל תוך ההתקן האלקטרוני במהלך הייצור. המפתח הפרטי נשמר במקום בטוח. מאשר התוכנה חותם את הקוד שנוצר לפני טעינתו אל תוך ההתקן האלקטרוני על ידי שימוש במפתח הפרטי שלו, לאחר מכן, ההתקן האלקטרוני יכול להשתמש במפתח הציבורי שנטען מראש לאישור השלמות והאימות של הקוד הבינארי.

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

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

הידיעה נמסרה באדיבות חברת טרייטק.

Yann Loise & Stephane di Vito, Maxim Integrated

תגובות סגורות