בהמשך יוצג:
- ניתוח הפרוטוקולים
- ניתוח חולשות בפרוטוקולים והצעות לתיקונים
- החולשות מתוך ספר הלימוד
בפרוטוקול, משתמשים בהצפנה סימטרית באמצעות CBC-AES להצפנת המסרים ובהצפנה אסימטרית באמצעות RSA להצפנת המפתח.
AES (Advanced Encryption Standard):
AES הוא אלגוריתם הצפנה מתקדם ונפוץ המשמש להצפנת מסרים בצורה סימטרית.
גודל המפתח: אורך המפתח הוא 128 ביט, מה שהוא רגיל לגרסאות AES-128.
הצפנה: CBC (Cipher Block Chaining): זהו מצב צפנה סימטרי המשמש להבטחת המסרים מתוך הקריפטוגרפיה בבלוקים.
כל בלוק מיישם הצפנה עם ביטי המסר של הבלוק הקודם.
IV (Initialization Vector): ערך אקראי ראשוני המתווסף לבלוק הראשוני ובכך בכל תהליך הצפנה, נעשה שימוש ב-IV כדי להבטיח שלא יתקבל אותו תוצאה עבור כל בלוק מסר זהה. בהקצאה קבועה כמו במקרה שהוזכר, ה-IV מאופס תמיד.
RSA (Rivest–Shamir–Adleman):
אלגוריתם אסימטרי: RSA הוא אלגוריתם אסימטרי המשתמש בזוג מפתחות, מפתח ציבורי ומפתח פרטי.
גודל המפתח: בפרוטוקול הנוכחי נעשה שימוש במפתחות עם אורך של 1024 ביט.
הצפנת מפתח: בפרוטוקול זה, יתקבל מפתח AES בצורה סימטרית ויצפן באמצעות RSA כלומר המפתח יוצפן באמצעות RSA.
-
אורך המפתח ב-RSA:
חולשה: אורך המפתח של 1024 ביט יכול להיות פחות מאובטח בימינו.
תיקון: ממליץ לשקול הגברת אורך המפתח, לפחות ל-2048 ביט או אף יותר. -
שימוש ב-IV מאופס:
חולשה: שימוש ב-IV מאופס באופן קבוע עשוי להיחשב כחולשה במקרים בהם משתמשים באותו מפתח AES חוזר וחוזר.
תיקון: שימוש ב-IV ייצמד למפתח AES ויהיה ייחודי לכל תהליך הצפנה, מה שימנע תופעת CBC replay ויבטיח עמידות נוספת. -
קביעות בדיקה ועדכון באופן קבוע :
אלגוריתם RSA משתמש בזוג מפתחות. חשוב לבדוק בקביעות את עמידותם ולעדכן אורך המפתח ואת האלגוריתם עצמם כאשר נדרש.
תיקון: יש לעדכן ולשדרג באופן קביעות את אורך המפתח ולכלול תקציב אבטחה שמתעדכן עם הזמן. -
קשר בין המפתחות:
שימוש ב-RSA להצפנת מפתח ה-AES יוצר קשר בין המפתחות. אם מפתח ה-RSA נחשף, ייתכן שהמפתח ה-AES יהיה חשוף גם.
תיקון: ניתן לשקול יצירת מנגנון נוסף שיאבטח את מפתח ה-AES בדרך אחרת ממפתח ה-RSA. זה יכול להכליל שיטה של סיסמאות, אימות דו-שלבי, או שיטה אחרת שתפחית התקפות פוטנציאליות. -
במפתחות ואימות:
חשוב לוודא שמפתחות ה-RSA וה-AES מנוהלים בצורה בטוחה, עם ניהול נכון ובזמן אמת.
תיקון: מניהול מפתחות יציב ובטוח כדי למנוע חשיפת מפתחות בזמן רציני. השגחה על פעילות מפתחות, תקצוב במדיניות אבטחה, ואמינות בין המשתמשים. -
זמן וביצועים:
שיטה זו יכולה לכלול זמני קריפטוגרפיה ארוכים ולהשפיע על ביצועי המערכת, במיוחד כאשר מטרת השימוש היא ביצוע מהיר.
תיקון: שיפור ביצועים יכול לכלול שימוש במפתחות קצרים יותר לפעמים בקבוצה מסוימת, או אופטימיזציות באלגוריתמים. אך כדאי להשקיע בשלב תכנונים נוספים לקבלת ביצועים מתקדמים. -
העברת המפתח האסימטרי:
הצורך להעביר את המפתח האסימטרי בין הלקוח והשרת מצמיד את המערכת לאפשרות של חשיפת המפתח במהל ך ההעברה.
התקפה פוטנציאלית: התקפות מתוך חשש גישה למפתח האסימטרי, שבתורו יכול להוביל לחשיפת מפתח ההצפנה הסימטרית.
תיקון: שימוש בפרוטוקולים מתקדמים יותר להעברת מפתחות יכול לספק שכבת אבטחה נוספת, לדוג', בשימוש ב Diffie-Hellman. -
ניהול מפתחות:
אם יש בעיות בניהול המפתחות הסימטריים והאסימטריים, זה יכול לביא לחשיפת המפתח ולפרצה במערכת.
התקפה פוטנציאלית: ניהול רע של מפתחות יכול לספק לגורמים מתוך חשיפה גישה למפתחות באופן לא רשותי.
תיקון: ניהול אבטחתי של המפתחות, שכולל זיהוי ואימות של המשתמשים וניהול מפתחות באמצעות טכנולוגיות בטוחות יותר ומתן המפתחות לגורמים מורשים בלבד. -
אמינות המפתח:
אם מפתח ההצפנה הסימטרי נחשף או אם יש פגיעה באמינותו, זה יכול לפגוע באבטחת המערכת.
התקפה פוטנציאלית: התקפות כדי לשבור את האמינות של מפתח ההצפנה הסימטרי עשויות להתרחש.
תיקון: שימוש במפתחות אמינים, שמאובטחים באופן יציב ונבדקים באופן תדיר, ואם יש חשש לאמינותם - החלפתם במפתחות חדשים. -
באובדן מפתח פרטי:
אם משתמש מאבד את המפתח הפרטי שמשמש להצפנת המפתח הסימטרי, ייתכן שלא יהיה ניתן לגשת למידע המוצפן.
התקפה פוטנציאלית: אם מישהו מצליח לראות את המפתח הפרטי או לגשת אליו, ייתכן שיהיה ניתן לפענח קבצים כדי לגשת למידע המוצפן.
תיקון: חשוב למצוא דרכים לאבטחה ואימות רכיבים כמו מפתחות פרטיים כך שהם לא יאבדו, כמו גם למצוא דרכים להתמודד עם אובדן מפתחות בצורה בטוחה. -
שקיפות האלגוריתם :
אם האלגוריתם אינו שקוף ואין אפשרות לבדיקה חיצונית של הצפנה/פענוח, יתכן שיהיה קשה לזהות ולתקן חולשות.
הצעה לתיקון: שימוש באלגוריתם צפנה כללי ומוכר, עם הסברים שקופים על תהליכי הצפנה ופענוח. -
בעיות של חולשה בהצפנה:
הקוד יכול לחשוף חולשות פוטנציאליות בכללי היצירה, הטיפול במפתחות, ואבטחת ההצפנה.
תיקון: Static Analysis ניתוח סטטי של הקוד הוא חשוב ויכול לשרת ככלי נוסף לאיתור ותיקון של חולשות בפרוטוקול.
סוג החולשה או התקפה | תיאור |
---|---|
Heap Spraying | התקפה שבה יתקף מופע של ++C זר מכתובת זיכרון מוקצה לערמה, ויכתוב קוד בחלק מהזיכרון הזה. |
Return Oriented Programming | התקפה שבה התוקף משתמש ברצפים של קוד קיימים במערכת כדי להריץ קוד זר, ומסתמך על פונקציות קיימות במערכת. |
Buffer Overflow | חולשה באבטחה שבה התוקף יכול להכניס יותר מדי נתונים למערכת, על ידי כתיבה יתרה לתאי הזיכרון מחוץ לגבולות המוגדרים עבור משתנה מסויים. |