8.1 הצפנה וקריפטוגרפיה
הצפנה וקריפטוגרפיה
קריפטוגרפיה היא מושג ליבה בתחום אבטחת הסייבר ושזור בתוכו. רוב הנושאים בהגנת סייבר (ברמה גבוהה או נמוכה, מנהלתית או תפעולית) דורשים רמה מסוימת של הבנה בקריפטוגרפיה. במרבית המקרים נדרשת הבנה חלקית מאוד, אך עדיין נדרשת.
נדגיש את הטרמינולוגיה, את מושגי היסוד ושימושים טיפוסיים של קריפטוגרפיה בתחום אבטחת הסייבר.
פרק האדריכלות הטכנולוגית בפרט (וקורס הגנת סייבר בכלל) חייב להתחיל בהבנה של קריפטוגרפיה שכן היא משמשת כיסוד להמשך הקורס (לדוגמה, קוראים לא יוכלו להבין כיצד בקרות גישה שונות ללא היכרות ראשונה עם מנגנוני הצפנה השומרים על אינטגרציה).
אנחנו נדגיש את הבדלי הליבה בין קריפטוגרפיה 'סימטרית' ל'א-סימטרית'. נתמקד בסוגיות של ניהול (הפקה, הפצה, הגנה מאובטחת וכו') והגנה על אמינות (ולא רק סודיות).
נדון גם בקריפטוגרפיה אסימטרית, מושגי אימות הודעות ומימושים מעשיים של מושגי PKI.
פרק ההצפנה (Encryption) מספק את כל הטרמינולוגיות, ההגדרות והמושגים החיוניים. ההמשך מספק את כל ה"מכשירים" הדרושים כדי להבין כיצד נעשה שימוש בקריפטוגרפיה בתכנון ארכיטקטוני טכנולוגי הוליסטי של מערכות סייבר.
התוכן כאן, הבנה של עקרונות הליבה, אך עם זאת להימנע מצלילה עמוקה מדי לתוך פירוט טכני ומתמטי ביותר. גם כך, פרק זה קשה להבנה.
הצפנה היא תהליך המשמש להגנה על מידע על ידי הפיכתו לפורמט בלתי קריא. רק מי שיש לו מפתח מיוחד יכול לפענח ולקרוא את המידע. התהליך כולל המרת 'טקסט רגיל' (נתונים קריאים) ל'טקסט צופן' (נתונים מוצפנים) באמצעות אלגוריתם ומפתח הצפנה.
הגנת סייבר משתמשת בקריפטוגרפיה כדי להפוך מידע שמיש לצורה שהופכת אותו לבלתי שמיש על ידי בלתי מורשה; תהליך זה נקרא הצפנה. מידע שהוצפן ניתן לאחזור לצורתו השימושית המקורית על ידי משתמש מורשה המחזיק במפתח הקריפטוגרפי, דרך תהליך הפענוח. קריפטוגרפיה משמשת בהגנת סייבר כדי להגן על מידע מפני גילוי בלתי מורשה או מקרי בזמן שהמידע במעבר (אלקטרונית או פיזית) ובזמן שהמידע מאוחסן.
סביבת הצפנה עושה שימוש באבני בניין מבוססות הצפנה כגון צופן סימטרי, צופן זרם, מפתח פומבי, פונקציות גיבוב, קוד אימות מסרים, מחולל פסבדו אקראי וכדומה. נכיר בהמשך את המונחים.
יישומיה רבים ומגוונים וכוללים בין היתר, אבטחת רשתות תקשורת, תקשורת סלולרית, חומת אש, מסופי משיכה, כרטיסי אשראי, דואר אלקטרוני, מסחר אלקטרוני, הצבעה ממוחשבת ועוד. גם את היישומים של הקריפטוגרפיה יש להכיר.
- קריפטולוגיה – תורת ההסתרה אשר מסתעפת למגוון סוגי הצפנה והסתרת מידע.
- קריפטוגרפיה – ענף במתמטיקה ובמדעי המחשב העוסק באלגוריתמים של הגנת סייבר.
- סגנוגרפיה – ענף העוסק בהסתרת המידע ולא בהצפנתו.
- הצפנת נתונים – הפיכתו של פריט מידע בעזרת אלגוריתם (צופן) לצורה לא קריאה ע"י הכלל חוץ ממי שמחזיק את מפתח ההצפנה.
מטרות הקריפטוגרפיה
- הגנה על מידע מאוחסן (Data at rest).
- הגנה על מידע בזמן מעבר ממקום למקום (Data in transit).
- שימושים בקריפטוגרפיה
- חסיון מידע.
- אמינות המידע ושלמותו.
- אימות זהויות.
- מניעת הכחשה.
מושגי יסוד
- צופן (אלגוריתמים): נוסחה או תהליך הנועד לקבוע את צורת ההצפנה והפיענוח של מידע.
- מפתח: קלט לאגוריתמים ההצפנה שמגדיר את אופן הפעלת האלגוריתמים.
- Clear text: תצוגה של מידע הקריא לאדם ללא עזר או תהליך נוסף.
- Plain text: קלט תהליך ההצפנה (לאוו דווקא קריא לבני אדם). (PT).
- Chipher text: פלט תהליך ההצפנה. (CT).
- Stream ciphers: צופן שמקבל סיבית, עושה פעולה ומחזיר סיבית אחת: פעולות רלוונטיות, כדוגמת XOR.
- Block ciphers: צופן שעובד ע"ב בלוקים.
ענפי ההצפנה
הצפנה סימטרית
הצפנה סימטרית (symmetric encryption) היא אלגוריתם הצפנה שבו משתמשים במפתח הצפנה יחיד הן להצפנה של הטקסט הקריא והן לפענוח של הטקסט המוצפן. בפועל המפתח הוא בדרך-כלל סוד משותף לשנים או יותר משתתפים ובדרך-כלל מתאים לכמות מוגבלת של נתונים. הסיבה שהצופן נקרא סימטרי היא כי נדרש ידע שווה של חומר סודי (מפתח) משני הצדדים.
צופן סימטרי מקבל טקסט קריא ומפתח הצפנה ובעזרתו ממיר את הטקסט הקריא לטקסט מוצפן שאינו מובן לאיש ואותו הוא שולח ליעדו. בצד המקבל אלגוריתם הפענוח מבצע את הפעולה ההפוכה, הוא מקבל את הטקסט המוצפן ואותו מפתח הצפנה שבו השתמש השולח ומשחזר את הטקסט המקורי. כדי שהפענוח יצליח המפענח חייב להחזיק במפתח פענוח מתאים שמאפשר את הפיכת פעולת ההצפנה. לאור זאת על השולח להעביר את מפתח ההצפנה לידיעת המקבל בערוץ בטוח כלשהו כמו במפגש אישי, על ידי שליח מהימן או באמצעות פרוטוקול שיתוף מפתח קריפטוגרפי. מציאת ערוץ בטוח להעברת המפתח היא בעיה בפני עצמה שנדונה רבות והיא נקראת בעיית הפצת מפתחות.
הדרישה שיהיה מפתח אחד משותף לשולח והמקבל היא התכונה העיקרית המבדילה בין הצפנה סימטרית להצפנה אסימטרית שבה מפתח הפענוח שונה ממפתח ההצפנה. שמות אחרים להצפנה סימטרית הם הצפנת מפתח-יחיד (single-key), הצפנת מפתח פרטי (private-key) או הצפנת מפתח סודי (secret key).
קיימים אלגוריתמים סימטריים רבים, אך אלגוריתם שנקרא DES הוא הדוגמה הקלאסית הטובה ביותר לצופן סימטרי מודרני, הוא הראשון שהופץ בקנה מידה גדול ואף הפך לתקן הצפנה רשמי.
אלגוריתמים נוספים הם 3DES, IDEA, FEAL, SAFER, RC5, RC4, Blowfish, ARIA וסרפנט.
סודיות "מושלמת"
בשיטת הצפנה (סימטרית) "מושלמת" מצפינים מחרוזת מסר על ידי חיבור XOR של סיביות המסר בזו אחר זו, עם מפתח שנבחר באופן אקראי "אמיתי" וחד-פעמי ובאורך המסר המיועד להצפנה, ואז הצופן יהיה בעל סודיות מושלמת, והוא בטוח ללא סייג. אין שום דרך לשחזרו ללא המפתח.
שיטה זו אינה מעשית במרבית היישומים כי הכנת מפתח אקראי (אמיתי) באורך המסר קשה ויקרה, והצורך בהעברת מפתח ההצפנה הסודי לידי המקבל כרוך בעצמו בסיכון שפוגע בסודיות, ובלתי אפשרי כאשר לא היה קשר מוקדם בין הצדדים המתקשרים (דוגמת מסחר ברשת האינטרנט).
הצפנה א-סימטרית (מפתח ציבורי)
בהצפנת מפתח ציבורי (Public key encryption) מפתח ההצפנה שונה ממפתח הפענוח. כלומר, כל משתמש מכין לעצמו זוג מפתחות: מפתח ציבורי (Public key) שהוא מפתח הצפנה הנגיש לכל ומפתח פרטי (Private key) מתאים, הנשמר בסוד ומשמש לפענוח. ההתאמה היא חד-חד-ערכית (לכל מפתח ציבורי קיים אך ורק מפתח פרטי יחיד המתאים לו, ולהפך). כדי להצפין מסר בשיטה זו על המצפין להשיג לידיו עותק אותנטי של המפתח הציבורי של המקבל, שבעזרתו הוא מצפין ושולח לו את המסר. רק המקבל מסוגל לשחזר את הטקסט המוצפן בעזרת המפתח הפרטי המתאים שברשותו. ביטחון שיטת המפתח הציבורי נשען על הקושי שבחישוב המפתח הפרטי מתוך המפתח הציבורי. מסיבה זו מכונה שיטה זו "אסימטרית", בניגוד לשיטת הצפנה סימטרית, שבה מפתח הפענוח זהה למפתח ההצפנה (על כל פנים ניתן לחישוב בקלות מתוך מפתח ההצפנה).
המונח הצפנת מפתח ציבורי מתייחס לשיטות קריפטוגרפיות שהדגש בהן הוא שימוש במפתח הצפנה לא סודי. השימושים העיקריים במפתח ציבורי הם:
- הצפנת מסרים: מסר המוצפן באמצעות המפתח הציבורי של המקבל, ניתן לפענוח רק על ידי המקבל המחזיק בידיו את המפתח הפרטי המתאים. במקרה זה הצפנת מפתח ציבורי מספקת סודיות או חשאיות.
- חתימה דיגיטלית: מסר שנחתם באמצעות המפתח הפרטי של השולח, ניתן לאימות על ידי כל מי שיש לו גישה למפתח הציבורי של השולח. באמצעותו ניתן להוכיח מי הוא מקור המסמך. במקרה זה ההצפנה מספקת זיהוי.
- אימות מסרים: מסר המאומת על ידי השולח שמייצר תג אימות מתאים ושולח אותו יחד עם המסר איתו המקבל יכול לוודא שלא בוצעו במסמך שינויים זדוניים בידי גורם זר ללא ידיעתו. במקרה זה הצפנת מפתח ציבורי מספקת אימות.
- שיתוף מפתחות: בפרוטוקול שיתוף מפתח השולח והמקבל מחליפים ביניהם מידע כלשהו בערוץ פתוח הנגיש לכול ובתום חילופי המסרים המשתתפים חולקים ביניהם מידע סודי, כך שאיש לא יודע מהו, ממנו המשתתפים מכינים מפתח הצפנה.
המכנה המשותף של כל המערכות האסימטריות בימינו לעומת הצפנה סימטרית, הוא היעילות החישובית. השימוש בהצפנה אסימטרית בדרך-כלל מוגבל לכמות מועטה של מידע והוא משולב במערכת היברידית עם הצפנה סימטרית לניצול של היתרונות שבשתי השיטות: מפתח ציבורי משמש להעברת מפתח הצפנה סודי, ואת ההצפנה מבצעים עם אלגוריתם סימטרי מהיר כמו AES.
פרוטוקולים ומנגנונים קריפטוגרפיים
מערכת הצפנה שלמה היא מערכת קריפטוגרפית המשלבת מספר רכיבים, המספקים כל אחד מהם תכונות יסודיות הקשורות בהגנת סייבר כמו סודיות, אימות או הבטחת שלמות, יחד הם משלימים זה את זה למערכת שלמה שלה מספר יעד אבטחה מוגדר בהתאם לסביבה בה היא פועלת מחד ודרישות הלקוח מאידך. אלגוריתם איננו מערכת הצפנה. RSA, למשל, נקרא בטעות מערכת הצפנה אף על פי שאסור להשתמש בו לבדו להצפנה כי ההצפנה לא תהיה בטחה כלל.
מערכת אמורה לספק ביטחון לאורך זמן של שירותי גיבוי ואחסון מידע, או התקשרות דו כיוונית בין שרת ולקוח או בין מספר משתתפים במקרה זה היא תקרא 'פרוטוקול קריפטוגרפי. דוגמאות למערכת הצפנה הן RSA, אל-גמאל או חלוקת סוד ואפס ידיעה וכדומה. דוגמאות לפרוטוקול קריפטוגרפי הן: SSL, PGP, קרברוס, ארנק אלקטרוני ו-GSM.
סוגי אלוגריתמים (תקנים וצופן)
RC4
צופן RC4 הוא צופן זרם א-סינכרוני המיועד לתוכנה, פשוט ביותר וקל ליישום והטמעה בחומרה ובתוכנה. עקב פשטותו הרבה היה בעבר בשימוש נרחב בפרוטוקולי אבטחה רבים כגון SSL לאבטחת תעבורת הרשת וכן WEP. אולם עקב חולשות שהתגלו בו הוא אינו בטוח ואינו מומלץ לשימוש קריפטוגרפי כיום, אף על פי שעדיין נתמך בכמה פרוטוקולי אבטחה עקב תאימות לאחור.
RC4 פותח על ידי רונלד ריבסט ב-1987 במעבדות RSA. שמו נגזר מראשי התיבות Rivest Cipher 4, אולם לעיתים מפרשים RC כ-Ron's code (הקוד של רון). פיתוחים נוספים שלו הם RC5 וכן RC6 שנימנה בין המועמדים המובלים לתקן ההצפנה החדש שבו זכה AES. עד 1994 נשמר צופן RC4 כסוד מסחרי עד שפורסם ברבים, תחילה באופן אנונימי בקבוצות דיון קריפטוגרפיות ומשם עשה דרכו לרשת האינטרנט. ריבסט לא רשם כל פטנט על הצופן שלו, השם RC4 הוא סימן מסחרי ומוגן בזכויות יוצרים, אולם באופן לא רשמי השימוש בצופן מותר, אם כי לא תחת שמו המקורי. היות שמעבדות RSA מעולם לא פרסמו את פרטי האלגוריתם באופן רשמי, יש המכנים אותו ARCFOUR שפירושו "כביכול RC4".
צופן RC4 מייצר רצף סיביות פסבדו-אקראי הנקרא "זרם מפתח" באמצעות מחולל פסבדו-אקראי (PRG) מובנה. זרם הסיביות האקראי משולב עם הטקסט הקריא בית אחר בית, באמצעות חיבור בינארי (XOR) בדומה לצופן ורנם. פענוח מתבצע בדרך זהה. הזיכרון הפנימי או המצב הפנימי (Internal State) של האלגוריתם מורכב משני חלקים.
זרם המפתח שבעזרתו מצפינים את המסר מופק באמצעות אלגוריתם הכנת מפתח - Key Scheduling Algorithm (בקיצור KSA). תחילה המערך מאותחל ולאחר מכן באמצעות פונקציית החלפה Swap מערך הבתים מעורבב תוך שימוש בכל בתי מפתח ההצפנה בטכניקה הקרויה Shuffle בדומה לערבוב קלפים והתוצאה היא תמורה פסאודו-אקראית שאיתה הצופן מייצר בשלב הבא את זרם המפתח (Key Stream). המפתח הסודי יכול להיות בכל אורך רצוי בין 40 ל-256 סיביות.
WEP (Wired Equivalent Privacy)
הכיל בתוכו אלגוריתם RC4 אך לא מדובר בהצפנה!
WEP הוא אלגוריתם אבטחה לרשתות נתונים אלחוטיות העומדות בתקן IEEE 802.11. מטרת פיתוחו של האלגוריתם הייתה, לספק פרוטוקול אבטחה לרשתות אלחוטיות באותה רמת אבטחה שסופקה לרשתות נתונים קוויות. תפישת הפעולה מתבססת על הצפנת הנתונים לצורך העברתם בצורה מאובטחת. כשלי אבטחה שנתגלו בפרוטוקול הקריפטוגרפי הובילו בהמשך לפיתוח ה-WPA.
השמועה גורסת שארגון ה-NSA הוא זה שהתערב במטרה להחליש את WEP במכוון למרות שאין עדויות לכך. ממסמכים שנחשפו בעקבות פרשת סנודן עולה שבמקרה הטוב הם ידעו על החולשות הקיימות בפרוטוקול והסתירו זאת מנימוקים השמורים עמם.
AES (Advanced Encryption Standard)
AES הינו תקן הצפנה מתקדם. AES הוא צופן בלוקים סימטרי שאומץ על ידי המכון הלאומי לתקנים וטכנולוגיה (NIST) של ארצות הברית כתקן הצפנה רשמי שהתקבל בעולם כולו, להצפנת נתונים מאסיבית. AES פותח והוצע במהלך פרויקט בחירת התקן שאורגן על ידי NIST בשנת 2000.
לאחר שזכה בתחרות אומץ על ידי ממשלת ארצות הברית באופן רשמי להצפנת נתונים מסווגים עבור הממשל והחליף בכך את קודמו DES שיצא לאור ב-1977. אלגוריתם AES נמצא בשימוש מעשי נרחב בכל העולם הן בתוכנה והן בחומרה וידוע כאלגוריתם בטוח.
AES הוכרז כתקן הצפנה FIPS PUB 197 בנובמבר 2001 ואושר רשמית במאי 2002 על ידי מזכיר המסחר של ארצות הברית וכן נכלל בתקן איזו (ISO/IEC 18033-3). זהו הצופן הסימטרי הפומבי הראשון שקיבל את אישור הסוכנות לביטחון לאומי האמריקאי כראוי להצפנת נתונים המוגדרים ברמת סיווג SECRET וכן TOP SECRET עבור ממשלת ארצות הברית, אם נעשה בו שימוש כחלק ממודול הצפנה מאושר.
HASH - גיבוב
בתקשורת ספרתית ובמדעי המחשב, פונקציית גִּיבּוּב (Hash Function) לעיתים פונקציית ערבול, פונקציית תמצות ואף פונקציית טחינה, והגיבוב ממלא תפקיד חיוני בשלמות הנתונים, אימות הנתונים והאבטחה עצמה. היא פונקציה שממירה קלט חופשי באורך משתנה לפלט באורך קבוע, בדרך-כלל קצר בהרבה. אין זה רצוי, אך עם זאת בלתי נמנע, שפונקציית גיבוב תיתן לעיתים פלט זהה לקלטים שונים, ולכן פונקציות גיבוב נמדדות בהסתברות להפקת פלט זהה. לפונקציות גיבוב יש שימושים בבעיות אלגוריתמיות רבות, ובהן מיון וחיפוש בטקסטים ארוכים ובהצפנה.
ה- HASH עצמו הינו אלגוריתם מתמטי שהופך נתונים למחרוזת תווים בגודל קבוע המכונה בדרך-כלל גם "ערך HASH" או קוד HASH".
גיבוב הוא תהליך הכולל נטילת קלט כגון קובץ או הודעת נתונים מסוימת והפעלתו באמצעות אלגוריתם גיבוב על מנת ליצור מחרוזת תווים ייחודית ורנדומלית באורך קבוע המכונה בדרך-כלל גם 'טביעת אצבע'.
הגיבוב עצמו הוא דטרמיניסטי, משמע: בהינתן אותו קלט, פונקציית ה- HASH תמיד תייצר את אותו HASH, והיא חד כיוונית, משמע: זה בלתי אפשרי מבחינה חישובית למחזר את הקלט המקורי מערך ה- Hash עצמו והיא תמיד תהיה כפלט באורך קבוע ללא תלות בגודל הטקסט (קלט) שמשתמש הקצה סיפק.
אלגוריתמי גיבוב משתמשים בפונקציות מתמטיות שונות כגון MD5, SHA-1, SHA-256 או Bcrypt למטרת עיבוד נתוני קלט. האלגוריתם שנבחר לוקח את הקלט מהמשתמש ומחיל סדרה של שלבים חישוביים וכתוצאה מהם נוצר ערך הגיבוב עצמו.
פונקציות הגיבוב השונות נועדו להיות מהירות ויעילות בכדי להתאים לדרישות העיבוד של מערכי נתונים גדולים.
פונקצית גיבוב קריפטוגרפית
פונקציית גיבוב קריפטוגרפית היא פונקציה חד-כיוונית הממירה קלט באורך כלשהו לפלט באורך קבוע וידוע מראש. פונקציית גיבוב קריפטוגרפית מתוכננת כך שכל שינוי בקלט יגרום לשינוי משמעותי בפלט. בדרך זו ניתן להתמודד עם בעיית הבטחת שלמות מסרים גדולים, על ידי השוואת הערך המגובב שלהם במקום להשוותם ישירות. בשל היותו קטן משמעותית, קל יותר להגן על הערך המגובב מאשר על המסר המקורי.
פונקציות גיבוב קריפטוגרפיות הן מאבני הבסיס של ההצפנה המודרנית ומשמשות כחתימות דיגיטליות, קודי אימות, שמירת סיסמאות ומחולל מספרים פסידו-אקראיים. ביישומים שאינם קריפטוגרפיים הן משמשות לעיתים כמזהה ייחודי של קובץ לצורך בדיקת שלמותו או נכונותו וכן לזיהוי קבצים זהים.
פונקציית גיבוב קריפטוגרפית בטוחה מקיימת את התנאים הבאים:
- בהינתן פלט מסוים, מציאת ערך קלט מתאים (כלומר קלט כזה שהפעלת הפונקציה עליו תייצר את הפלט הזה), קשה מבחינה חישובית (Preimage).
- בהינתן קלט כלשהו קשה חישובית למצוא קלט אחר המוביל לאותו פלט (Second Preimage).
- מציאת שני קלטים שונים המובילים לאותו פלט קשה מבחינה חישובית (התנגשות, Collision).
- קשה, ואולי אפילו בלתי אפשרי להוכיח שפונקציית גיבוב מסוימת היא בטוחה, וקורה שפונקציה מסוימת נחשבת "בטוחה", ומאוחר יותר מתברר שאינה כזו, כאשר נמצאת שיטה יעילה יחסית (כלומר שיטה שעלותה החישובית נמוכה משמעותית מגודל הפלט) למצוא Preimage, Second Preimage או Collision. במקרה כזה נזנח השימוש בפונקציית הגיבוב הזו לצרכים קריפטוגרפיים. גורל כזה פקד למשל את הפונקציה MD5.
SALT
מאפשרת יכולת הצפנת סיסמאות ב-DB. בעצם מוסיף מידע רנדומאלי לפונקציית Hash כדי לוודא חד ערכיות של הפלט. זוהי פונקצייה חד כיוונית, ז"א מרגע שקידדנו את הסיסמא ויש בידינו את המחרוזת המקודדת, לא נוכל לחזור ממנה לסיסמא המקורית.
תהליך הגיבוב עצמו מורכב מכמה שלבים בסיסיים :
- המשתמש מספק קלט באורך שרירותי כגון קובץ או הודעה.
- נתוני הקלט מעובדים באמצעות אלגוריתם הגיבוב שנבחר.
- האלגוריתם יוצר ערך Hash באורך קבוע לנתוני הקלט.
קיימת אפשרות (נדירה) של התנגשות בערכי ה- Hash שמתרחשת כאשר שני קלטים שונים מקבלים את אותו הפלט אך אלגוריתמי גיבוב מודרניים יותר שואפים למזער את האפשרות של כל התנגשות.
הגיבוב עצמו ממומש היישומים בתחומים שונים. דוגמאות:
- גיבוב משמש להבטחת שלמות הנתונים עצמם על ידי אימות שלמות הקבצים וזיהוי שינוי או שיבוש שנגרם לתוכן המקורי על ידי השוואת ערך ה- Hash של קובץ לפני ואחרי השידור עצמו ובכך לראות האם היו שינויים בתוכן המקורי.
- גיבוב נמצא גם בעולם אחסון הסיסמאות. במקום לאחסן אותן כקובץ טקסט רגיל וחשוף, מערכות מאחסנות את התוכן המגובב וכאשר משתמש נכנס, הסיסמא שהוא מקליד עוברת גיבוב והשוואה לערך המאוחסן. במידה וישנה התאמה מלאה, הסיסמא נכונה והמשתמש מורשה להיכנס.
- תהליך גיבוב גם מקל על יצירה ואימות של חתימות דיגיטליות. נוצר ערך Hash של מסמך ומוצפן עם המפתח הפרטי של החותם על מנת ליצור חתימה דיגיטלית.
- הנמען יכול לאמת את תקינות ואותנטיות המסמך על ידי פענוח החתימה הדיגיטלית באמצעות המפתח הציבורי של החותם.
למרות שגיבוב הינו מרכיב בסיסי בהגנת סייבר, הוא אינו חסין מפני מתקפות.
תוקפים יכולים לנצל נקודות תורפה במנגנון, למשל כזו היא טכניקה בשם "Pass The Hash" שבה תוקף מקבל גישה בלתי מורשית למערכת באמצעות שימוש בערך הגיבוב עצמו במקום בסיסמא.
התקפה זו מוכרת ושכיחה, ובעיקר באה לכדי פוטנציאל כאשר מערכות מאחסנות ומשוות את ערכי הגיבוב במקום סיסמאות בפועל, שכן ניתן ליירט את ערכי ה- Hash ולנצל אותם לגישה בלתי מורשית למערכת.
ישנן עוד כמה מתקפות על אלגוריתמי הגיבוב :
- מתקפת התנגשות (Collision) : למרות שהן די נדירות, תוקפים יכולים לייצר בכוונה שני קלטים המייצרים את אותו פלט גיבוב ובכך לפגוע באמינות של מערכות הנשענות על ייחודיות ה- Hash.
- מתקפת Rainbow Table : תוקפים יכולים לחשב מראש טבלה של ערכי גיבוב ואת הערכים המקוריים שלהם, בכך משווים ערכי גיבוב ממערכות שנפרצו אל התוכן הקיים בטבלה שהכינו ואם ישנה התאמה, גם הקלט וגם הפלט חשופים בפניהם.
- מתקפת יום הולדת (Birthday Attack) : בהן תוקפים מנצלים את פרדוקס יום ההולדת הקובע שההסתברות ששני קלטים יפיקו את אותו הפלט עולה ככל שמספר הקלטים גדל.
תוקפים יכולים לנסות למנף את העובדה הזו על מנת למצוא התנגשויות בין הערכים בשביל לפגוע במנגנון.
כדי להתגונן ממתקפות שכאלו ומניצול זדוני של מנגנון הגיבוב, אפשר ליישם מספר שיטות עבודה ואמצעי נגד. למשל, שימוש באלגוריתמי גיבוב חזקים ומודרניים בלבד כמו SHA-256, שעמידים מפני מתקפות ידועות, תוך כדי מעקב תכוף אחרי ההמלצות לשימושים בפרוטוקולים העומדים בתקני האבטחה המחמירים ביותר.
שיטה נוספת תהיה להשתמש ב- Salted Hash A שבו ערך ייחודי נוסף לכל סיסמא לפני תהליך הגיבוב עצמו, מה שמונע מתוקפים להשתמש בטבלאות מוכנות מראש מכיוון שיצטרכו לחשב מחדש את ערך ה- Salt עבור כל סיסמא בנפרד.
גיבוב הינו תהליך חיוני באבטחת המידע המודרנית שלנו, מה שמבטיח את שלמות הנתונים ואמינותם על ידי המרת נתונים קיימים (קלט) לפלט באורך קבוע ולא בכדי אנו משתמשים בהם על מנת לתת ולידציה של המידע עצמו ואפילו למטרת חתימות דיגיטליות.
עם זאת, חשוב מאוד לזכור שאלגוריתמים אלו אינם חסינים לגמרי מפני מתקפות שונות ומומלץ להתעדכן בתקני האבטחה המחמירים ביותר על מנת ליישם טכניקות הגנה ובכך להפחית סיכונים פוטנציאליים לארגון ולמידע.
דוגמה:
בוא ונניח שיש לי אתר, נגיד אתר לוחות בשם Haliva.COM ובו יש טבלה בשם users. הטבלה נראית כך:
הטבלה היא פשוטה מאד וכל מתכנת אמור לדעת לכתוב אליה ולקרוא ממנה נתונים. גם קל מאד לשחזר ממנה את הסיסמה במידה והמשתמש שוכח ממנה. הבעיה העיקרית היא שאם הטבלה נחשפת לגורם עוין (ובמעגל האבטחה השלישי אנו מניחים שהיא נחשפה) הוא יכול לעשות עם המידע הזה המון. מה זאת אומרת? הסכנה היא לאו דווקא בלקחת את שם המשתמש ולהכנס במקומו לאתר. אלא בלקחת את הסיסמה של הלקוח ולנסות להכנס איתה לחשבון המייל שלו. שם יכול להיות נזק רציני. אפשר לקחת את שם המשתמש של הלקוח ולבדוק אם הוא קיים בפייסבוק/טוויטר/אתר אחר. רוב האנשים נוטים לשמור על שמות משתמש זהים בכל האתרים וגם בדרך-כלל משתמשים באותה סיסמה.
איך נמנעים מזה? שימו לב לאותה טבלה, אך הפעם מאובטחת יותר.
תעודת SSL
Secure Sockets Layer (בקיצור: SSL), ובגרסתו המעודכנת יותר Transport Layer Security (אבטחת שכבת התעבורה; בקיצור: TLS) הם פרוטוקולי האבטחה הפופולריים והחשובים ביותר של רשת האינטרנט. כמעט כל אתרי האינטרנט המוגנים באמצעים קריפטוגרפיים מסתמכים על פרוטוקולים המהווים חלק מהחבילה SSL/TLS. מסחר אלקטרוני, בנקאות מקוונת, דואר אלקטרוני, VoIP, מחשוב ענן ועוד. SSL/TLS נתמך על ידי מרבית הדפדפנים המודרניים.
SSL/TLS הוא פרוטוקול ורסטילי שמטרתו אבטחת שיחת שרת/לקוח בשיטות קריפטוגרפיות חזקות והוא אמור למנוע ציתות, זיוף, או חבלה (שינוי זדוני) של המידע העובר בין השרת והלקוח. מאפשר חיבור אנונימי, אימות שרת (חד-צדדי) או אימות דו-צדדי, תוך שמירה על דיסקרטיות ושלמות המסרים.
בהצפנה אסימטרית השרת שולח מפתח ציבורי. אך בשלב שלפני התקשורת המוצפנת עדיין איננו יודעים את הזהות של השרת, ושאין מדובר באתר מתחזה (דוגמה: אתר שמתחזה לדף הבנק). תעודת SSL אמורה לפתור את הבעיה הזאת. שלוש נקודות עיקריות שהפרוטוקול אמור לתת להן מענה הן:
- פרטיות - המושגת באמצעות הצפנה סימטרית.
- אימות - המושג באמצעות תעודת מפתח ציבורי.
- אותנטיות - המושגת באמצעות קוד אימות מסרים.
בפרוטוקול תקשורת שתומך במצב SSL כאופציה, על הלקוח ליידע את השרת על רצונו לעבור לתקשורת מאובטחת, דרך אחת היא להשתמש בפורט ייעודי (מקובל להוסיף את האות s) שהוקצה על ידי ICANN כמו שער 443 של HTTPS או שערים 989/990 של FTPS. דרך אחרת היא לנצל מנגנון תלוי פרוטוקול ספציפי (כמו בקשת STARTTLS בדואר אלקטרוני) כדי לשלוח לשרת בקשה לעבור למצב של SSL/TLS.
מבנה סכמתי של פרוטוקול SSL/TLS
לפי מודל ה-OSI פרוטוקול SSL שוכן בשכבת השיחה, בין שכבת התעבורה (4) לשכבת היישום (7). בהקשר של פרוטוקולי האינטרנט המשמעות היא בטווח שבין TCP/IP ל-HTTP ,FTP, SMTP וכדומה. SSL אינו כולל מנגנון סינכרון מובנה ומסתמך על שכבת הקו שתחתיו. SSL מתחלק לשתי שכבות עיקריות, כמתואר בתרשים.
שכבת לחיצת יד (Handshake layer). שמתחילה תהליך התקשרות, קובעת מספר פרמטרים משותפים כמו מספר גרסה ואלגוריתמים נתמכים (cipher suits). במהלך לחיצת היד המשתתפים משלימים תהליך אימות זהויות ומייצרים את מפתח השיחה. שכבה זו מניחה כברירת מחדל מצב "צופן NULL" שמשמעו ללא הצפנה ואימות כלל.
שכבת רקורד (Record layer). בשכבה זו מבוצעת חלוקת המידע העובר בקו לרשומות בגודל לכל היותר 2 בחזקת 14 בתים. כאשר לכל רשומה צמוד תג אימות HMAC. שכבה זו תומכת בדחיסת נתונים, אם כי מסיבות של זכויות יוצרים לא מצוינת טכנולוגיה ספציפית למעט אלגוריתם NULL מנדטורי שאינו עושה דבר. בכך דחיסה הופכת לאופציה לא תקנית תלוית מימוש.
מבנה רשומת TLS
בלחיצת היד משיגים שלושה יעדים:
- הצדדים מסכמים ביניהם על "חבילת צופן", ערכה של אלגוריתמים קריפטוגרפיים (וגודל מפתחות ההצפנה) שייעשה בהם שימוש לצורך הפרוטוקול.
- הצדדים מייצרים סוד משותף על מנת לגזור ממנו מפתחות שיחה.
- הצדדים מאמתים את זהותם. אף על פי ש-SSL תומך באנונימיות, אימות חד-צדדי או אימות דו-צדדי, מקובל בשלב זה לוודא רק את זהות השרת.
תעודת SSL (Secure Sockets Layer) היא מסמך דיגיטלי המאשר את הזהות של האתר ומאפשר תקשורת מוצפנת, לצד פרוטוקול מתחרה הנקרא TLS.
שיטת האימות בה נעשה שימוש קובעת את המידע שייכלל בתעודת SSL/TLS של אתר. הגופים שמנפיקים את התעודות עושים את הבדיקות הנדרשות בהתאם לאחת מ-3 רמות אבטחה:
- אימות דומיין: ברמה הנמוכה מוודאים שה-DNS של הדומיין רשום בשליטת הישות שביקשה את האישור (Domain Validated).
- ברמה השנייה, רמת ה- Organization Validation. האישורים כוללים את שם האימות של עסק או ארגון אחר (OV), או של אדם בודד (IV).
- ברמה השלישית, Extended Validation Certificates: אישורים מייצגים את הסטנדרט הגבוה ביותר באמון באינטרנט ומחייבים את המאמץ הרב ביותר של ה- CA לאמת. תעודות EV מונפקות רק לעסקים וארגונים רשומים אחרים, לא ליחידים, וכוללות את שם האימות של אותו ארגון.
ניתן לראות את תעודת SSL של כל אתר בדפדפן.
פרוטוקול HTTPS
HTTPS (Hypertext Transfer Protocol Secure) הוא פרוטוקול תקשורת להגנת סייבר ברשתות מחשבים הנפוץ במיוחד באינטרנט. באופן רשמי, הוא אינו פרוטוקול תקשורת כשלעצמו, אלא שימוש בפרוטוקול HTTP על שכבת SSL/TLS ובכך מקנה יכולות אבטחה של סטנדרט SSL/TLS לתקשורת HTTP רגילה.
בשימושו הנפוץ באינטרנט מקנה אימות של זהות האתר, ויוצר חיבור בין שרת אינטרנט ללקוח שיוצר עמו קשר כנגד התקפת אדם באמצע. בנוסף, השימוש מאפשר הצפנה דו-כיוונית של תעבורת המידע בין הלקוח לשרת, אשר מגינה מפני האזנת סתר או שינוי של תוכן המידע העובר בין הצדדים. כפועל יוצא, הפרוטוקול מבטיח כי גולש האינטרנט הניגש לאתר כלשהו, אכן יתקשר עם אותו האתר שהתכוון להתקשר עמו.
https משתמש בפרוטוקול הצפנה כדי להצפין תקשורת כך:
- כאשר מבקרים באתר https, הדפדפן מבקש את תעודת SSL ומוודא שהיא תקינה. בשלב הבא הדפדפן מבקש את המפתח הציבורי של השרת.
- המחשב של הגולש משתמש במפתח הציבורי כדי להצפין את המפתח הפרטי של הגולש ושולח את ההודעה המוצפנת בחזרה לשרת.
- אחרי שהמחשבים העבירו מפתחות, הם בונים מפתח שבעזרתו כל התקשורת משלב זה והלאה מוצפנת.
במקור, HTTPS שימש בעיקר לפעולות העברת כספים באינטרנט, דואר אלקטרוני והעברת מידע רגיש במערכות מידע של תאגידים. בסוף שנות ה- 2000 השימוש ב-HTTPS התרחב ונעשה שימוש באימות נתונים בסוגים שונים של אתרים, אשר הקנו אבטחה לחשבונות משתמש, לתקשורת בין משתמשים, זהות המשתמש ומידע המאוחסן על ידו בשרתים.
השימוש ב- HTTPS חשוב במיוחד ברשתות לא מוצפנות, כמו WiFi למשל, בהן כל משתמש באותה הרשת מסוגל לבצע "רחרוח" אחר תעבורת המידע הנשלחת ברשת ולגלות מידע רגיש. יתר על כן, גם רשתות שהשימוש בהן מוגבל יכולות לעשות שימוש במידע העובר דרכן ואף משנות אותו, לעיתים לצורכי פרסום ולעיתים גם באופן זדוני.
מ- 2014 קבעה גוגל את השימוש ב-HTTPS כ"גורם דירוג" (Ranking Factor) המשפיע בפועל על דירוג האתר בהצגת תוצאות החיפוש במנוע החיפוש של גוגל.
HTTPS אינו פרוטוקול תקשורת בפני עצמו, אלא יישום של פרוטוקול HTTP. הוא זהה לו מבחינת המבנה, אך מורה לדפדפן להוסיף שכבת הצפנה כדי להגן על תעבורת המידע. היישום של מודל SSL על פני HTTP מתאים במיוחד מפני שניתן לאבטח את המידע אפילו אם רק זהותו של צד אחד בתקשורת מאומתת. בתקשורת HTTP על גבי האינטרנט, זהותו של השרת (אתר) לרוב מאומתת על ידי השוואה בין Public key certificate של האתר לזה השמור בדפדפן.
הרעיון הבסיסי ב-HTTPS הוא ליצור ערוץ מאובטח על גבי רשת פרוצה. ערוץ זה מאפשר הגנה סבירה מפני האזנת סתר והתקפת אדם באמצע. זאת, בהסתמך על רמה סבירה של חליפת ההצפנה והיכולת לסמוך על certificate מאומת ואמין.
בדפדפני האינטרנט שמור מראש (בעת ההתקנה) מידע אשר מאפשר להם לאמת את ה-certificate שנשלח מהאתר. גורמים בעלי סמכות לנפק certificate חייבים לקבל את אמונו של הדפדפן, בין אם מראש או בערבות הוספה של ה-certificate לרשימה על ידי המשתמש. באופן לוגי, ניתן לסמוך על חיבור HTTPS אם ורק אם מתקיימים התנאים הבאים:
- המשתמש בוטח שהדפדפן מיישם נכונה את פרוטוקול ה-HTTPS וה-certificates שהותקנו בו מראש אמינים.
- המשתמש בוטח בגורמים המנפקים certificate כי ינפקו אישורים רק לאתרים לגיטימיים.
- האתר מנפק certificate מאושר על ידי סמכות.
- ה-certificate תואם את האתר שהמשתמש ניגש אליו (כלומר, כאשר הדפדפן מבקר ב"https://example.com", ה-certificate יתאים ל"example.com" ולא לדומיין אחר.)
- ה-certificate בתוקף.
- תוצאת ה-hash של ה-certificate מתאימה לשדה ה-hash ב-certificate. סעיף זה נעשה כדי לוודא את אמינות ה-certificate המכיל בין היתר גם מפתח ציבורי להמשך ההתקשרות.
- נקודות הצומת בין המקור ליעד נתונים לבטחה, או שפרוטוקול שכבת ההצפנה (TLS/SSL) מאובטח דיו כנגד האזנות סתר.
תשתית מפתח ציבורי PKI
אחרי שלמדנו על הצפנה הסימטרית והאסימטרית, אפשר להתמקד במערכת המפתחות הציבוריים, או PKI, שמגלה את הפוטנציאל האמיתי של ההצפנה האסימטרית ומפנה את דרכה לאפליקציות הגנת סייבר מרובות.
תשתית מפתח ציבורי (PKI) היא מערכת הגנת סייבר המשתמשת בהצפנה אסימטרית כדי לספק אמינות ואימות בין צדדים המבצעים תקשורת בטוחה.
היא שילוב של תוכנה, סטנדרטים ונהלים המאפשרות לגופים לבצע אימות הדדי ולהשתמש בהצפנה לשמירה על תוכן המידע. באמצעות PKI, מידע נשלח בצורה מאובטחת בין הצדדים, באמצעות מפתח ציבורי ומפתח פרטי. PKI מורכבת ממספר רכיבים, כולל:
- רשות אישורים (CA: Certificate Authority): רשות אמון היא גוף מוסמך להנפיק תעודות דיגיטליות. תעודות דיגיטליות הן מסמכים אלקטרוניים המכילים מידע על מפתח ציבורי וזהות המחזיק במפתח הפרטי המקביל.
- מרכז רישום (RA: Registration Authority): מרכז רישום הוא גוף המאמת את זהות המבקשים תעודות דיגיטליות מרשויות אמון.
- מפתח ציבורי: מפתח ציבורי הוא מפתח המשמש להצפנת מידע. המפתח הציבורי ניתן לשיתוף באופן חופשי, מכיוון שהוא לא יכול לשמש לפענוח מידע שהוצפן באמצעותו.
- מפתח פרטי: מפתח פרטי הוא מפתח המשמש לפענוח מידע שהוצפן באמצעות מפתח ציבורי. המפתח הפרטי נשמר בסוד על ידי הבעלים שלו.
איך PKI עובד?
PKI עובד על ידי שימוש בהצפנה אסימטרית כדי ליצור קשר מאובטח בין צדדים המבצעים תקשורת בטוחה. הצפנה אסימטרית היא סוג של הצפנה המשתמשת בשני מפתחות שונים: מפתח ציבורי ומפתח פרטי. המפתח הציבורי ניתן לשיתוף באופן חופשי, בעוד שהמפתח הפרטי נשמר בסוד על ידי הבעלים שלו.
כאשר צד אחד רוצה לשלוח הודעה לצד שני, הוא משתמש במפתח הציבורי של הצד השני כדי להצפין את ההודעה. רק הצד השני, שמחזיק במפתח הפרטי המקביל, יכול לפענח את ההודעה.
בנוסף להצפנה, PKI משמש גם לחתימות דיגיטליות. חתימות דיגיטליות הן דרך לאמת את זהות השולח של מסמך או הודעה. חתימות דיגיטליות נוצרות על ידי שימוש במפתח הפרטי של השולח. רק הבעלים של המפתח הפרטי יכול ליצור חתימות דיגיטליות אותנטיות.
היתרונות של PKI
PKI מציע מספר יתרונות חשובים, כולל:
- אמינות: PKI מספק אמינות בין צדדים המבצעים תקשורת בטוחה.
- אימות: PKI מאפשר לאמת את זהות השולח של מסמך או הודעה.
- שלמות: PKI מסייע להגן על שלמות מסמכים או הודעות.
- הצפנה: PKI מספק הצפנה חזקה למידע רגיש.
החסרונות של PKI
PKI מציע מספר חסרונות, כולל:
• עלויות: הקמת תשתית PKI יכולה להיות יקרה.
• מורכבות: PKI יכולה להיות מורכבת להטמעה ולניהול.
• אבטחה: PKI תלויה באמון ברשויות האמון.
שימושים ספציפיים של PKI
PKI משמש במגוון רחב של יישומים, כולל:
- דואר אלקטרוני מאובטח: PKI משמש להצפנה של דואר אלקטרוני רגיש.
- חתימות דיגיטליות: PKI משמש ליצירת חתימות דיגיטליות למסמכים או הודעות.
- מסחר אלקטרוני: PKI משמש לאבטחת תשלומים מקוונים.
- אימות זהות: PKI משמש לאימות זהות משתמשים באתרי אינטרנט.
תשתית מפתח ציבורי (PKI) היא טכנולוגיה חשובה להגנת סייבר. PKI מספק אמינות ואימות בין צדדים המבצעים תקשורת בטוחה, וכן הגנה על מידע רגיש
חתימה דיגיטלית
בהגנת סייבר ובקריפטוגרפיה, חתימה דיגיטלית או חֲתִימָה סִפְרָתִית (Digital Signature) היא שיטה מתמטית המאפשרת להוכיח אותנטיות של מסמך או מסר דיגיטלי. חתימה דיגיטלית תקפה אמורה לשכנע את המקבל שהמסר או המסמך שקיבל נוצרו במקור מהשולח המוכר לו (אימות), השולח אינו יכול להכחיש שהוא זה שהכין את המסמך או המסר (אי-הכחשה) וכן שהמסמך או המסר לא שונו במהלך המשלוח אם בגלל תקלה בתקשורת, באמצעי האחסון או בזדון על ידי צד שלישי (שלמות).
חתימה דיגיטלית היא מרכיב חשוב במערכות הצפנה והגנת סייבר ונכללת בפרוטוקולים קריפטוגרפיים רבים, בין היתר ברשתות תקשורת, עדכוני תוכנה, מסרים מידיים, מסחר אלקטרוני, מחשוב ענן, ניהול חוזים ומכרזים מקוונים ובכל מקרה שבו יש חשיבות לאתר זיוף או חבלה. לחתימה הדיגיטלית שימושים נוספים כמו אמצעי מניעת התכחשות וחותם-זמן נוטריוני. דוגמה לחתימה דיגיטלית נפוצה היא DSA שהוכרה לראשונה מבחינה חוקית על ידי ממשלת ארצות הברית ומשמשת כיום כחתימה דיגיטלית תקנית במדינות רבות, בהן ישראל.
מקובל לראות בחתימה דיגיטלית כתת-קבוצה של חתימה אלקטרונית. כלומר חתימה דיגיטלית מאפשרת ביצוע חתימה אלקטרונית באופן קריפטוגרפי. אולם חוק החתימה האלקטרונית בישראל הלך בעקבות השפה הגרמנית וכולל בביטוי חתימה אלקטרונית גם חתימה דיגיטלית. החוק מבחין בין שלושה סוגים:
- חתימה אלקטרונית שהיא מידע או סימן אלקטרוני כלשהו המוצמד או נקשר למסר אלקטרוני. סימן כזה יכול להיות תוכנה, סריקה של חתימה ידנית, סימן כלשהו המופק באמצעות מכשיר כמו עט דיגיטלי או משטח רישום דיגיטלי.
- חתימה אלקטרונית מאובטחת היא אמצעי חתימה הנתון לשליטתו הבלעדית של החותם, המאפשר את זיהויו לכאורה וכן מאפשר לאתר כל שינוי אם אירע בתוכן המסר או המסמך החתום.
- חתימה אלקטרונית מאושרת היא חתימה אלקטרונית מאובטחת שמתלווה אליה תעודה אלקטרונית שהונפקה על ידי גורם מאשר ותפקידה לאמת את תקפות החתימה באופן כזה שהחותם אינו יכול להתכחש אליה.
חתימה אלקטרונית מקבילה במובנים מסוימים לחתימה פיזית כגון חתימה ידנית בכלי כתיבה או באמצעים פיזיים אחרים. באנלוגיה לחתימה קונבנציונלית, החתימה היא סימן היכר ייחודי לחותם ונפרדת מהמידע החתום. למשל אדם חותם בחתימת ידו על גבי המחאה, חוזה מכירה או מסמך כלשהו. חתימת ידו משמשת גם לזיהויו וגם להתחייבותו לתוכן המסמך, כאשר ביטחונה נשען על הקושי הטכני שבזיוף החתימה. בחתימה דיגיטלית (אלקטרונית) בניגוד לחתימה רגילה, אין די בכך שתהיה ייחודית לחותם ונפרדת מהמידע, מאחר שהעתקה והדבקה של מידע דיגיטלי קלה למדי ואין דרך להבחין בין החתימה המקורית לבין עותקים דיגיטליים שלה. חתימה דיגיטלית חייבת אם כן, להיות ייחודית ושונה עבור כל מסמך, באופן שלא יהיה ניתן להעתיק חתימה דיגיטלית שנעשתה על מסמך אחד ולהדביקה למסמך אחר. לפרשנויות השונות השלכות חוקיות. ערך זה עוסק בחתימה דיגיטלית הנקראת בלשון החוק חתימה אלקטרונית מאובטחת באמצעים קריפטוגרפיים והיא נקראת, באופן לא רשמי גם חתימה דיגיטלית.
KERBEROS
קרברוס הוא פרוטוקול אימות ושיתוף מפתח הצפנה, המאפשר ליישומי תקשורת מבוססי שרת/לקוח לאמת זהויות באופן בטוח וכן לנהל תקשורת בטוחה באמצעות מפתחות הצפנה סודיים מעל גבי רשת פתוחה. הפרוטוקול הוא חלק מחבילת תוכנה חופשית שפותחה על ידי MIT המשתמשת בעקרונות קריפטוגרפיים שונים ומיישמת בין היתר את הפרוטוקול בעיקר כמודל שרת-לקוח.
הפרוטוקול מאפשר גם אימות זהויות הדדי, בו הלקוח והשרת יכולים לאמת זה את זהותו של זה.
פרוטוקול קרברוס מסתמך על הצפנה סימטרית בלבד ודורש סיוע של צד שלישי נאמן. מהלכי הפרוטוקול מוגנים מפני ציתות והתקפת שידור חוזר. לעומת פרוטוקול סיסמה רגיל הנקרא "אימות חלש", פרוטוקול קרברוס מציע מה שמוגדר "אימות חזק", כיוון שהוא מערב הצפנה כדי להגן על מפתחות ההתקשרות מפני ציתות בזמן העברתם.
קרברוס נועד לרמה ארגונית, ואינו מתאים לשימוש ברשת האינטרנט. מיקרוסופט אימצה את קרברוס כברירת המחדל עבור תהליכי אימות זהויות של Active Directory. טכנולוגיות SAP כמו CyberSafe מיישמות את מימוש MIT של קרברוס. מערכות הפעלה רבות תואמי יוניקס תומכות בפרוטוקול קרברוס, בהן Red Hat, מערכת ההפעלה FreeBSD, מערכת ההפעלה Mac OS X של אפל על מחשבי מקינטוש, סולאריס ועוד.
יעדי הפרוטוקול
קרברוס פותח במטרה לספק אימות מהימן בין משתמשים ברשת תקשורת פתוחה שבה אפשר לצותת לחילופי המסרים וליירטם. הצלחת הפרוטוקול תלויה באמינות המחשבים המשתתפים בתקשורת. שרתי האימות, ספקי השירותים והלקוחות חייבים להיות בטוחים ומעודכנים באופן כזה שלא יכילו פרצות כך שניתן יהיה להבטיח את תהליך האימות. במילים אחרות, פרוטוקול קרברוס הוא פרוטוקול אימות בין מחשבים אמינים ברשת לא אמינה. אם מישהו מצליח לפרוץ לאחד המחשבים המשתתפים בפרוטוקול אין כל תועלת בו, לכן הנחת היסוד של הפרוטוקול היא שכל המשתתפים "הגונים". יעדי הפרוטוקול הם:
- סיסמת המשתמש לעולם לא תשודר באופן גלוי ברשת.
- סיסמת המשתמש לעולם לא תשמר במחשב הלקוח אלא תושמד מיד לאחר השימוש בה.
- סיסמת המשתמש לעולם לא נשמרת במצב גלוי, גם לא במסד הנתונים של שרת האימות.
- המשתמש נדרש להקיש סיסמה רק פעם אחת בתחילת השיחה.
- ניהול מידע האימות של כל הלקוחות מרוכז במקום אחד. ספק השירותים או שרת היישומים לא אמור להכיל כל מידע אימות של לקוחותיו. עובדה זו מאפשרת למנהל הרשת לעדכן סיסמת משתמש או לבטל משתמש בפעולה אחת ללא צורך בעדכון שרתים נוספים. בנוסף לכך שמספר המקומות המכילים מידע אימות סודי קטן ככל האפשר.
- לא רק הלקוחות אלא גם השרתים ייתכן שיידרשו לאמת עצמם מול הלקוחות, מה שקרוי אימות דו צדדי.
- בגמר האימות וההרשאה, הלקוח והשרת יוכלו להתחיל בקישור מוצפן. לשם כך הפרוטוקול מספק תמיכה ישירה ביצירה והחלפה של מפתחות הצפנה סודיים.