Use LEFT and RIGHT arrow keys to navigate between flashcards;
Use UP and DOWN arrow keys to flip the card;
H to show hint;
A reads text to speech;
36 Cards in this Set
- Front
- Back
אלגוריתמי הצפנה Caesar Cipher |
הזזה (שיפט) של האותיות בא"ב, כך שכל אות ב- plaintext מוחלפת באות המתאימה לה ב- ciphertext.נוכל לפצח את הקידוד ע"י bruteforce של כל האפשרויות, כלומר ננסה את כל השיפטים האפשריים ונראה איזה שיפט מביא אותנו לטקסט קריא. |
|
אלגוריתמי הצפנה Substitution Cipher |
כל אות ב- plaintext מוחלפת באות מתאימה ב- cipher text ע"פ מילון של הא"ב. אין קשר בין המיפויים. נוכל לפצח את הקידוד בהתבסס על נתונים סטטיסטיים בנוגע לשימוש באותיות בשפה האנגלית (למשל). נחליף את האות שמופיעה הכי הרבה פעמים ב- cipher text באות e, כיוון שע"פ הסטטיסטיקה זוהי האות השימושית ביותר בשפה,ונמשיך הלאה באופן הבא, בציפייה להתחיל לזהות מילים הגיוניות. גישה נוספת היא לחפש מילים קצרות ונפוצות ולנסות למצוא להן מקבילות ב- cipher text. |
|
אלגוריתמי הצפנה Vigenere Cipher |
1. בחירת מפתח, למשל "lemon". 2. שרשור המפתח לעצמו ע"פ התבנית של ה- plain text. 3. כל אות בא"ב מקבלת קידוד ע"פ הסדר, כלומר a=0,b=1,c=2,…,l=11,m=12,n=13,o=14,…,z=25. 4. ה- cipher text מתקבל ע"י חיבור קידוד כל אות ב- plain text עם קידוד כל אות בטקסט המשורשר.
מיפוי האותיות נעשה באופן רנדומלי והוא אף יכול להשתנות בכל מופע של האות (בדוגמא שלנו - האות e מופתה פעם אחת ל i ופעם אחת ל- s, כיוון שהאותיות המקבילות אליה בטקסט המשורר היו שונות, פעם e ופעם o).
על מנת לפענח את הקידוד, עלינו למצוא את אורך המפתח ולאחר מכן את ערכו. נוכל לאמוד את אורך המפתח ע"י כך שנחפש רצפים שחוזרים על עצמם במרווחים מסוימים בטקסט. נשים לב שמפתח ארוך יותר מביא לאבטחה טובה יותר, כיוון שקשה יותר לגלות אותו. כמו כן, נקפיד לבחור מפתח רנדומלי. |
|
אלגוריתמי הצפנה One Time Pad |
טכניקה לפיה על אורך המפתח להיות זהה לאורך ה- plaintext ועל המפתח להיות רנדומלי לחלוטין. אלו, ביחד עם העובדה שהמפתח יהיה בשימוש פעם אחת בלבד, יביאו לאבטחה מושלמת. הבעיה - כיצד שני הצדדים יסכימו ביניהם על מפתח כזה גדול? |
|
אלגוריתמי הצפנה Stream Cipher |
ניסיון להשגת האבטחה המושלמת ע"י מפתח קצר, בשל הבעייתיות בהעברת מפתח ארוך בין הצדדים. שני הצדדים מסכימים ביניהם על מפתח קצר (ההנחה היא שעל מפתח קצר ניתן להסכים) ומשתמשים בפונקציה שמייצרת ממנו מפתח מאוד ארוך ופסאודו רנדומלי (כמעט רנדומלי). הצפנת/פענוח הטקסט ע"י אחד מהצדדים תעשה בעזרת המפתח הפסאודו רנדומלי וע"י הפעלת פונקציה כלשהי, כגון XOR בין ה- plaintext למפתח, שתייצר את ה- ciphertext. |
|
אלגוריתמי הצפנה Block Cipher |
במקום להצפין את כל הטקסט בבת אחת, אנחנו מחלקים אותו לבלוקים בגודל שווה ומצפינים כל בלוק ע"פ המפתח הקצר (אורך המפתח - כאורך כל בלוק). תהליך הפענוח זהה, רק בכיוון ההפוך. במידה והטקסט לא מתחלק במדויק באורך הבלוק, נדאג להוסיף בסופו תווים ריקים שיסדרו זאת. |
|
אלגוריתמי הצפנה Electronic Code Book (ECB) |
אלגוריתם שעובד בשיטת blockcipher - חלוקת הטקסט לבלוקים בגודל שווה והצפנת כל בלוק בנפרד בעזרת המפתח. |
|
אלגוריתמי הצפנה Cipher Block Chaining (CBC) |
- נחלק את הטקסט לבלוקים בגודל שווה. - נעשה XOR לכל בלוק עם הקידוד של הבלוק שלפניו, ורק אז נצפין אותו (את תוצאתה- XOR). |
|
Cryptanalysis
|
הצורה בה אנו מנסים לתקוף ולפרוץ לכל מיני מערכות הצפנה, אפילו כשאין לנו אין המפתח. - Bruteforce - מעבר על כל האפשרויות הקיימות. בסיסי ולא יעיל. - ניסיונות לניצול חולשות, למשל באלגוריתמי ההצפנה. |
|
סוגי תקיפות Ciphertext only attack |
התוקף מכיר רק סט מוגבל של ciphertexts. |
|
סוגי תקיפות Known plaintext attack |
התוקף מכיר רק סט מוגבל של ciphertexts ואת ה- plaintexts המתאימים להם. |
|
סוגי תקיפות Chosen plaintext attack |
התוקף יכול להשיג ciphertext של איזה plaintext שהוא בוחר. |
|
סוגי התקיפות Chosen ciphertext attack |
התוקף יכול להשיג plaintext של איזה ciphertext שהוא בוחר (כמובן לא זה שעליו לפענח). |
|
הצפנה סימטרית |
הצפנה שבה שני הצדדים מסכימים ביניהם על מפתח משותף ומצפינים/מפענחים ע"פ המפתח הזה. |
|
מנגון החלפת המפתחות Diffie Hellman |
- אליס ובוב מחליטים באופן פומבי על המפתח הציבורי, n (מספר ראשוני), ועל האלגוריתם g. - כל אחד מהם בוחר את המפתח הפרטי שלו, x, מבצע את החישוב (y=g^xmod(n ושולח לשני. - כל צד מבצע את החישוב y'^xmod(n) ,כאשר ’y הינו הערך שנשלח אליהם מהצד השני. - מובטח כי לאחר ביצוע החישוב עם ’y,שני הצדדים יקבלו את אותו המפתח. |
|
במנגון החלפת המפתוחת, איב יכולה לדעת מה הם המפתחות הפרטיים? |
נשים לב שאיב (תוקף מאזין) יכולה לדעת מהו המפתח הציבורי n, מהו האלגוריתם g, ומהן תוצאות החישובים Ya ו-Yb,אבל היא לא יודעת מהם המפתחות הפרטיים שכל אחד מהצדדים בחר, ולכן היא לא יכולה לבצע את החישוב בעצמה ולגלות את המפתח שיתקבל בסופו של דבר. זאת כיוון שפונקציית ה- mod אינה חח"ע, והיא קלה לחישוב בצד אחד אך קשה מאוד עד בלתי אפשרית לשחזור בצד השני, ללא מידע נוסף (המפתח הפרטי). פונקציות כאלו נקראות One-Way Function (“Trap Door”). |
|
הצפנה א-סימטרית |
במקום שלשני הצדדים הרוצים לתקשר ביניהם יהיה מפתח ציבורי משותף, לכל אדם יהיו שני מפתחות - ציבורי ופרטי. כך נוכל לשמור על המידע חשאי, לאמת את זהות השולח ולהימנע מבעיית הפצת המפתחות. ההצפנה מתבצעת עם המפתח הציבורי של הנמען, בעוד שהפענוח מתאפשר רק ע"י המפתח הפרטי שלו. |
|
Message Authentication Code (MAC) |
- אליס רוצה לשלוח את ההודעה m לבוב. היא מייצרת tag=MAC(m) (מפעילה את הפונקציה MAC על ההודעה) ושולחת לבוב את ההודעה m ואתה- tag. - בוב רוצה לוודא שאכן אליס היא זו ששלחה את ההודעה ושזהו תוכן ההודעה. הוא מאמת זאת באמצעות אלגוריתם מיוחד שבוחן האם יש התאמה בין m לבין ה- tag. |
|
חתימה דיגיטלית |
- אליס רוצה לשלוח הודעה לבוב. היא מייצרת חתימה דיגיטלית בעזרת פונקציית hash ומצפינה את החתימה ע"י המפתח הפרטי שלה. היא שולחת לבוב את ההודעה ומצרפת גם את החתימה המוצפנת. - בוב מפענח את החתימה המוצפנת של אליס בעזרת המפתח הציבורי שלה (שהרי הוא ידוע לכולם). בנוסף, הוא מפעיל את פונקציית ה- hash על ההודעה שאליס שלחה, ומשווה בין השניים. אם הם שווים - הוא יכול לדעת שאליס היא זו ששלחה את ההודעה ושהחתימה הדיגיטלית אכן שייכת לה. |
|
הצפנה היברידית |
שילוב בין מספר סוגי הצפנה במטרה להעלות את רמת האבטחה ואת היעילות. דוגמא לשילוב בין הצפנה סימטרית להצפנה א-סימטרית: - אליס מצפינה את ההודעה m ע"י מפתח סימטרי -> K(m). - אליס מצפינה את המפתח K ע"י המפתח הציבורי של בוב ->. - אליס שולחת לבוב את ההודעה המוצפנת ע"י המפתח הסימטרי ואת המפתח שהיא הצפינה. - בוב מפענח את המפתח שאליס שלחה ע"י המפתח הפרטי שלו ומשתמש בו על מנת לפענח את ההודעה K(m) שאליס הצפינה. |
|
WEP Insecurity |
זוהי שיטת הצפנה עבור רשתותאלחוטיות. ב- WEP כל ההודעות מוצפנות על מנת שרק מי שחבר ברשתיוכל לשלוח ולקרוא אותן. ההצפנה נעשית ע"פ streamcipher בעזרת מפתח השייך לרשת, כך שכולם משתמשיםבאותו המפתח. לשם כך, משתמשים בוקטור אתחול IV עם ערכים אקראיים עבור כל משתמש, מה שמוביל לכך שההצפנה תהיהאקראית ושונה עבור כל משתמש ברשת. אורך ה- VI הוא 24 ביט, ולכן, בהאזנה ארוכה מספיק, נוכל למצוא שתי הודעותלפחות שהוצפנו באותו המפתח, מה שיעזור לנו, בהתבסס על נתונים סטטיסטיים, לפענח את ההודעותאו למצוא את המפתח. |
|
Steganography |
החבאת מידע בתוך מידע אחר,למשל החבאת הודעה בתוך תמונה. |
|
RSA |
מנגנון ליצירת מפתח ציבוריומפתח פרטי. - בוחריםשני מספרים ראשוניים גדולים, p ו- q. - בוחרים מספר e שיהיה זר ל- φ(n). - מוצאים את d כך שיקיים: ed=1 (mod φ(n)).
המפתח הציבורי הוא (e,n) והמפתח הפרטי הוא (d,n). ההצפנה מתבצעת ע"י c^e mod(n) כאשר m זוהי ההודעההמקורית. הפענוח מתבצע ע"י c^d mod(n) כאשר d זוהי ההודעה המוצפנת. |
|
חתימה דיגיטלית באמצעות RSA |
- אליסמצפינה את ההודעה m ע"י המפתח הפרטי שלה ושולחת לבוב אתההודעה המוצפנת s: s=m^d mod(n) s=m^e mod(n) |
|
Secure Socket Layer(SSL) |
פרוטוקול שמיושם בין שכבתהאפליקציה לבין שכבת התעבורה ומטרתו להגן על המידע שנשלח ברשת. SSL מספק אבטחה רק את השכבות שמעליו, ולכן אין לו השפעה על TCP, IP וכו' - כלומר הם לא מוצפנים. |
|
ציין את יתרונות וחסרונות SSL |
יתרונות: - עובדמעל TCP ולכן "נהנה" מכל היתרונות של TCP כגון אמינות. |
|
SSL |
בשכבת ה- SSL: |
|
SSL Handshake |
אנו רוצים לקיים חיבור מאובטח בין לקוח לשרת.לשם כך, הצדדים צריכים לייצר ביניהם state,שיכיל הסכמות על כל מיני דברים בעזרתם יוכלו להצפין ולפענח. |
|
ClientHello(version, cipher_suites,client_random, sid) |
הלקוח מאתחל חיבור SSL תוך כדי הצהרה עלגרסת ה- SSL שלו, רשימת אלגוריתמי ההצפנהשהוא תומך בהם, מספר רנדומלי שישמש ליצירת המפתח ו- session id. |
|
ServerHello(version, cipher_suite,server_random, sid), Cert, [CertRequest] |
השרת מגיב ללקוח עם הפרמטרים הבאים: גרסת ה- SSL בה ישתמשו בחיבור (כזו שגם הלקוח תומך בה), אלגוריתם הצפנה אותוהוא בחר מהרשימה של הלקוח, מספר רנדומלי שישמש ליצירת המפתח, sessionid, תעודת אימות עבור המפתח הציבורי של השרת ובקשתתעודת אימות מהלקוח (אופציונאלי). |
|
ClientKeyExchange, [Certificate],[CertVerify] |
לאחר שהלקוח אימת את השרת, הוא בוחר מפתחרנדומלי זמני, (pre_master_key), מצפיןאותו ע"י המפתח הציבורי של השרת, בכדי שרק השרת יוכל לפענח אותו, ושולח אותולשרת. לאחר מכן, השרת והלקוח מייצרים את המפתח האמיתי שישמש לתקשורת ביניהם - master_secret, ע"י הפעלת פונקציית hash עלה- pre_master_key ועל המספרים האקראיים שהם בחרו בהתחלה. |
|
IPSEC |
פרוטוקול שמיושם בשכבת ה- IP ומטרתו להגן על השכבות שמעליו (תעבורה ואפליקציה). מצד אחד - מאפשר הגנה מפניהתקפות בשכבת התעבורה, ומצד שני - עלול ליצור בעיות ב- firewalls. |
|
IPSEC חלוקה ל-2 תתי פרוטוקולים |
Encapsulation Security Payload (ESP) - · מתעסק בהצפנה ו/או באימות. Authentication Header (AH) - מתעסק באימות בלבד. |
|
מצבי IPSEC |
Transport Mode - הגנה מקצה לקצה, ממחשב מסוים אל מחשב מסוים. עדשההודעה מגיעה למחשב היעד היא מוגנת, לאחר מכן היא חוזרת להיות חשופה. Tunnel Mode - אבטחהבין שתי רשתות, יצירת "מנהרה" בין הרשתות דרכה המידע מוגן.בתוך כל רשת המידע חשוף, רק ב"המנהרה"הוא מוגן. |
|
IPSEC Data Structures |
Security Association Database (SAD) - בסיס נתוניםהמכיל את כל המידע אודות אופן ביצוע התקשורת המאובטחת. עבור כל סשן ישנן שתירשומות, אחת עבור חבילות נכנסות והשניה עבור חבילות יוצאות. הרשומותיכולות להיווצר או באופן ידני או באמצעות פרוטוקול IKE שמיועד לכך. |
|
VPN - Virtualprivate network |
שימוש ב- IPSEC ב- Tunnel Mode עלמנת לייצר מעין רשת פרטית מאובטחת על גבי האינטרנט. |