קובץ שאלות מבוא לאבטחה )סייבר(

‫קובץ שאלות מבוא לאבטחה (סייבר)‬
‫‪ .1‬בשאלה זו‪ ,‬יש להסביר על כל אחד מסוגי התוקפים את הפרטים הבאים‪ :‬מהן יכולות התוקף‪,‬‬
‫מה הסביבה בה הוא פועל‪ ,‬האם הוא מסוגל לזייף חבילות (‪ )spoofing‬ולהציג דוגמא של‬
‫התקפה בה תוקף זה בא לידי ביטוי‪.‬‬
‫‪.Eavesdropper .a‬‬
‫‪.MitM .b‬‬
‫‪.Off-Path .c‬‬
‫‪.Puppet .d‬‬
‫‪.One Time Pad .2‬‬
‫‪ .a‬הוכח כי ‪ OTP‬היא סכמת הצפנה בעלת סודיות מושלמת‪.‬‬
‫‪ .b‬מה החיסרון בשימוש במפתח 𝑛‪ 0‬בהצפנה זו‪.‬‬
‫𝑛‬
‫‪ .c‬האם ‪ OTP‬היא סכמת הצפנה בעלת סודיות מושלמת ללא המפתח ‪.0‬‬
‫‪ .d‬מה הסכנה בשימוש באותו מפתח עבור ‪ 2‬הודעות שונות‪.‬‬
‫‪ .3‬מודלים של תקיפה‪ .‬עבור כל סעיף יש לפרט מדוע‪.‬‬
‫‪ .a‬אליס בנתה אנטנה שיכולה לקלוט את כל תשדורת הסלולר המוצפנת שנמצאת‬
‫בטווח שלה‪ .‬מהו מודל התקיפה של אליס?‬
‫‪ .b‬אליס בנתה אנטנה שיכולה לקלוט את כל תשדורת הסלולר המוצפנת שנמצאת‬
‫בטווח שלה‪ .‬אליס יודעת כי בוב מבצע שיחות טלפון קבועות וידועות מראש והיא‬
‫מקליטה את שיחתו המוצפנת‪ .‬מהו מודל התקיפה של אליס?‬
‫‪ .c‬אליס בנתה אנטנה שיכולה לקלוט את כל תשדורת הסלולר המוצפנת שנמצאת‬
‫בטווח שלה‪ .‬בכל פעם שאליס מעוניינת לקבל את ההצפנה עבור הודעה מסוימת‪,‬‬
‫היא מתקשרת לתא קולי שלה ומשאירה שם את ההודעה המבוקשת‪ .‬מהו מודל‬
‫התקיפה של אליס?‬
‫‪ .d‬אליס בנתה אנטנה שיכולה לקלוט את כל תשדורת הסלולר המוצפנת שנמצאת‬
‫בטווח שלה‪ .‬כעת אליס שמה לב שאם היא שולחת רצף ביטים אקראיים אל‬
‫התמסורת של אחד מאנטנות הסלולר אזי היא יכולה לקבל עבור רצף זה את פענוחו‬
‫לקובץ שמע‪ .‬מהו מודל התקיפה של אליס?‬
‫‪ 𝐺1, 𝐺2 .4‬הינם ‪ PRG‬בטוחים בטווח 𝑛‪ ,{0,1}𝑛 → {0,1}2‬כך ש‪ . 𝐺1 ≠ 𝐺2-‬האם 𝐺 בהכרח‬
‫‪ ?PRG‬הוכח‪.‬‬
‫‪𝐺(𝑠) = 𝐺1(𝑠 ) 𝑋𝑂𝑅 𝐺2(𝑠 ) .a‬‬
‫̅̅̅̅̅̅̅̅̅ = )𝑠(𝐺‬
‫‪𝐺1(𝑠 ) 𝑋𝑂𝑅 𝐺2(𝑠 ) .b‬‬
‫‪𝐺(𝑠) = 𝐺1(𝑠 ) 𝑋𝑂𝑅 𝐺2(𝑠 𝑋𝑂𝑅 1|𝑠| ) .c‬‬
‫̅̅̅̅̅̅̅̅̅ = )𝑠(𝐺‬
‫‪𝐺1(𝑠 ) 𝑋𝑂𝑅 𝐺2(𝑠 𝑋𝑂𝑅 1|𝑠| ) .d‬‬
‫‪𝐺(𝑠) = 𝐺1(𝑠 ) 𝑋𝑂𝑅 𝐺2(0|𝑠| ) .e‬‬
‫‪.f‬‬
‫̅̅̅̅̅̅̅̅̅ = )𝑠(𝐺‬
‫) |𝑠|‪𝐺1(𝑠 ) 𝑋𝑂𝑅 𝐺2(0‬‬
‫̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅ = )𝑠(𝐺‬
‫‪𝐺1(𝑠 ) 𝑋𝑂𝑅 𝐺2(0|𝑠| ) .g‬‬
‫‪ 𝐺′ .5‬הינו ‪ PRG‬בטווח ‪ .{0,1}𝑛 → {0,1}𝑛+1‬האם 𝐺 בהכרח ‪ ?PRG‬הוכח‪.‬‬
‫‪ .𝐺′(𝑠 ) = 𝐺(𝑠 𝑋𝑂𝑅 𝑠 𝑅 ) .a‬כאשר 𝑅 מסמל ‪.reverse‬‬
‫‪ .𝐺′(𝑠 ) = 𝐺(𝑠 𝑋𝑂𝑅 𝐺(𝑠)1,..,𝑛 ) .b‬כאשר 𝑛‪ 𝐺(𝑠)1,..,‬מציין את ‪ n‬הביטים הראשונים‬
‫של )𝑠(𝐺‪.‬‬
‫‪.Block cipher .6‬‬
‫‪ .a‬תאר התקפת ‪ CPA‬על ‪ ,ECB Encryption Mode‬בה התוקף מסוגל להבחין בין שתי‬
‫הודעות שונות שהוצפנו‪.‬‬
‫‪.CBC Encryption Mode .b‬‬
‫תזכורת‪:‬‬
‫) ‪𝑐1 = 𝐸𝑘 (𝐼𝑉 𝑋𝑂𝑅 𝑚1‬‬
‫) 𝑖𝑚 𝑅𝑂𝑋 ‪𝑐𝑖 = 𝐸𝑘 (𝑐𝑖−1‬‬
‫‪ .i‬תאר מהן הבלוקים הנכללים ב‪ ciphertext-‬עבור הצפנה‪.‬‬
‫‪ .ii‬תאר מהן הבלוקים הנכללים ב‪ ciphertext-‬עבור ‪ tag‬של ‪.MAC‬‬
‫‪ .iii‬הסבר מהי הבעייתיות בשימוש בבלוק הצפנה האחרון של הודעה ‪ ,i‬עבור‬
‫הצפנה של ההודעה ‪ .i+1‬כיצד תכונה זו יכולה לעזור לתוקף להבחין בין ‪2‬‬
‫הודעות? הדגם‪.‬‬
‫‪.Initialization Vector .iv‬‬
‫‪ .1‬כיצד נבחר ‪ IV‬עבור הצפנה‪ .‬הסבר מדוע‪.‬‬
‫‪ .2‬כיצד נבחר ‪ IV‬עבור ‪ tag‬של ‪ .MAC‬הסבר מדוע‪.‬‬
‫‪ .v‬הנח כי אלגוריתם 𝑘𝐸‪ ,‬בו משתמשים ב‪ , CBC Mode-‬עובד ע"פ שיטת‬
‫הצפנה של 𝑃𝑇𝑂 ועבור כל הודעה משתמשים במפתח 𝑘 חדש‪.‬‬
‫‪ .1‬תאר התקפת ‪ CPA‬בה התוקף מסוגל להבחין בין שתי הודעות‬
‫שונות שהוצפנו‪.‬‬
‫‪ .2‬האם ההצפנה בטוחה עבור הודעה עם מספר בלוקים זוגי? אי‪-‬‬
‫זוגי? לעולם אינה בטוחה?‬
‫‪ .c‬הודעה 𝑙𝑚 ‪ 𝑚 = 𝑚1 , … ,‬הוצפנה בעזרת ‪ .Block cipher‬לאחר קבלת ההודעה נודע‬
‫לך כי הבלוק 𝑖𝑐 השתבש ושונה במהלך שליחתו‪ .‬הסבר והדגם איזה בלוקים‬
‫בהודעה 𝑚 ישתבשו בעת הפענוח כתוצאה מכך‪ .‬עבור ה‪ Modes-‬הבאים‪:‬‬
‫‪.ECB Encryption Mode .i‬‬
‫‪.CBC Encryption Mode .ii‬‬
‫‪.OFB Encryption Mode .iii‬‬
‫‪.CTR Encryption Mode .iv‬‬
‫‪ .7‬על כל אחד מהרכיבים הבאים‪ ,‬קבע אם הוא פומבי או פרטי‪.‬‬
‫‪ .i‬אלגוריתם ההצפנה‪.‬‬
‫‪ .ii‬אלגוריתם הפענוח‪.‬‬
‫‪ .iii‬מפתח הפענוח‪.‬‬
‫‪.IV .iv‬‬
‫‪ .8‬תאר את היתרונות והחסרונות של ‪ Block Cipher‬על פני ‪.Stream Cipher‬‬
‫‪.MAC .9‬‬
‫‪ .a‬מהן שתי התכונות ששימוש ב‪ MAC-‬מבטיח? פרט על כל אחת מהן‪.‬‬
‫‪ .b‬האם הצפנה בעזרת ‪ Block cipher‬מבטיחה את תכונות אלה?‬
‫‪ .c‬תאר את תהליך ההצפנה ואת תהליך הפענוח עבור השילובים הבאים של‬
‫‪ Encryption‬ו‪.MAC-‬‬
‫‪MAC then Encrypt .i‬‬
‫‪Encrypt then MAC .ii‬‬
‫‪MAC and Encrypt .iii‬‬
‫‪ .11‬תאר מהן שתי התכונות החשובות לבטיחותה של פונקציית ‪ hash‬קריפטוגרפית‪.‬‬
‫‪ 𝐺 .11‬הינו ‪ PRG‬המשמש להצפנה באמצעות ‪ stream cipher‬המוגדר בצורה הבאה‪:‬‬
‫‪ 𝐺 .a‬מקבל מחרוזת אקראית ‪ 𝑠0‬אשר נבחרה מהתפלגות אחידה‪.‬‬
‫‪ .b‬הפלט של שלב ה‪ i-‬הינו 𝑁 𝑑𝑜𝑚 )‪ 𝑠𝑖 = (𝑠𝑖−1 (𝑁 + 1) + 1‬עבור … ‪.𝑖 = 1,2,3,‬‬
‫נתח את בטיחותו של ה‪ ,PRG-‬כלומר הוכח בטיחות או לחלופין בנה מבחין עבור 𝐺‪.‬‬
‫‪ .12‬אתה נדרש לתכנן כספומט בטוח מפני תוקפים‪ .‬מהן הדרישות שלך מכספומט כזה?‬
‫בתשובתך התייחס לנקודות הבאות‪:‬‬
‫‪ .a‬באיזה אופן יש לשמור מידע על המשתמשים השונים‪.‬‬
‫‪ .b‬כיצד משתמש יכול להזדהות בפני הכספומט על מנת לקבל שירות‪.‬‬
‫‪ .c‬כיצד ניתן לשמור על שלמותו של המידע הנשלח בין הכספומט והמשתמש‪.‬‬
‫‪ .13‬לאליס ובוב יש מפתח משותף 𝑘‪ .‬אליס רוצה לוודא כי בוב אכן מחזיק באותו המפתח‪ .‬לצורך‬
‫כך היא בוחרת מחרוזת ראנדומית באורך המפתח‪ ,‬מבצעת 𝑅𝑂𝑋 של המחרוזת הראנדומית‬
‫עם המפתח‪ ,‬ושולחת את התוצאה‪ ,‬נסמנה באות 𝑐‪ ,‬לבוב‪ .‬בוב מבצע 𝑅𝑂𝑋 של המחרוזת 𝑐‬
‫עם המפתח 𝑘 ומחזיר את תוצאת ה‪ 𝑋𝑂𝑅-‬לאליס‪ .‬אליס בודקת האם המחרוזת שבוב שלח‬
‫לה שווה למחרוזת הראנדומית שהיא הגרילה בתחילת הפרוטוקול‪ .‬אם כן‪ ,‬אליס יודעת כי‬
‫בוב מחזיק באותו המפתח‪ .‬האם פרוטוקול זה בטוח? כנגד אלה מודלים של תקיפה?‬
‫‪ .14‬נתון אלגוריתם ההצפנה הסימטרי הבא עבור ‪ plaintetext‬באורך ‪ 32‬ביט‪.‬‬
‫‪𝑐 = (𝑝 𝑋𝑂𝑅 𝑘0 ) + 𝑘1‬‬
‫כאשר 𝑏‪ ,|𝑘0 | = |𝑘1 | = 32‬ו‪ 𝐾 = 𝑘1 ||𝑘2 -‬הינו המפתח‪.‬‬
‫א‪ .‬תאר כיצד ניתן לפענח את ‪.c‬‬
‫ב‪ .‬האם אלגוריתם הצפנה זה בטוח עבור הודעה אחת? הודעות רבות?‬
‫‪ .15‬לאליס ובוב יש מפתח סימטרי 𝑘 עבור האלגוריתם 𝐶𝐴𝑀‪ .‬אליס ובוב משדרים אחד לשני‬
‫הודעות דרך ערוץ בו מלורי משמש 𝑀𝑡𝑖𝑀‪ .‬מלורי לא יודע מהו המפתח 𝑘‪ ,‬ולא יכול לנחש‬
‫אותו בזמן יעיל‪.‬‬
‫‪.𝑚 = "𝑇𝑟𝑎𝑛𝑠𝑓𝑒𝑟 $1000 𝑡𝑜 𝐶ℎ𝑎𝑟𝑙𝑖𝑒" .a‬‬
‫אליס שולחת לבוב את ההודעה הבאה‪.(𝑚, 𝑀𝐴𝐶𝑘 (𝑚)) :‬‬
‫מלורי יירט את ההודעה והחליף את השם 𝑒𝑖𝑙𝑟𝑎‪ ,𝐶ℎ‬בשם מלורי‪.‬‬
‫האם בוב יבחין בשינוי? אם כן הסבר מדוע‪ .‬אחרת‪ ,‬הצע פתרון לבעיה‪.‬‬
‫‪.𝑚 = "𝑇𝑟𝑎𝑛𝑠𝑓𝑒𝑟 $1000 𝑡𝑜 𝑀𝑎𝑙𝑙𝑜𝑟𝑦" .b‬‬
‫אליס שולחת לבוב את ההודעה הבאה‪.(𝑚, 𝑀𝐴𝐶𝑘 (𝑚)) :‬‬
‫מלורי יירט את ההודעה ושלח אותה ‪ 111‬פעמים לבוב‪.‬‬
‫האם בוב יהיה מודע לכך שמלורי שלח את ההודעה ‪ 111‬פעמים ולא אליס? הסבר‬
‫מדוע והצע פתרון לבעיה‪.‬‬
‫‪.𝑚 = "𝑇𝑟𝑎𝑛𝑠𝑓𝑒𝑟 $1000 𝑡𝑜 𝐶ℎ𝑎𝑟𝑙𝑖𝑒" .c‬‬
‫בוב קיבל את הצמד הבא‪.(𝑚, 𝑀𝐴𝐶𝑘 (𝑚)) :‬‬
‫גם אליס וגם דוד (משתמש לגיטימי ולא תוקף) טוענים בתוקף כי הם שלחו את צמד‬
‫זה‪.‬‬
‫האם בוב יכול להבחין מי מהם באמת שלח את ההודעה? הסבר מדוע והצע פתרון‬
‫לבעיה‪.‬‬
‫‪.𝑚 = "𝑇𝑟𝑎𝑛𝑠𝑓𝑒𝑟 $1000 𝑓𝑟𝑜𝑚 𝐴𝑙𝑖𝑐𝑒 𝑡𝑜 𝐵𝑜𝑏" .d‬‬
‫בוב טוען כי קיבל את הצמד הבא‪.(𝑚, 𝑀𝐴𝐶𝑘 (𝑚)) :‬‬
‫אליס טוענת כי לעולם לא שלחה צמד זה‪ ,‬ופונה לשופט כדי בכדי שיכריע בעניין‪.‬‬
‫האם השופט יכול להכריע מי משניהם צודק? אם כן‪ ,‬הסבר מדוע‪.‬‬