הקלות הבלתי נסבלת של זיוף התו הירוק

כל מה שהאקר צריך לעשות זה ליצור אובייקט עם הפרטים שלו, לקודד אותו ב-base64, להמיר את מחרוזת הטקסט ל-QR Code ולשתול אותה באופן גרפי בתעודה עידן סטמבולצ'יק בטור דעה

bigstock

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

נתוני התחלואה בישראל נמצאים בנסיגה משמעותית ונראה כי החיסונים אכן יעילים בכ- 99% מהמקרים. כחלק מדרכי היציאה ממגפת הקורונה, מדינת ישראל מציעה שאזרחים שחוסנו והחלימו מהמחלה יצוידו בתעודה בעלת קוד QR. אך האם "הדרכון הירוק" בטוח לשימוש? התשובה כרגע היא כנראה שלא.

לזייף את הקוד

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

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

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

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

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

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

הפיתרון למניעת זיוף ה QR

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

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

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

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

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

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

אולי יעניין אותך גם