מיסור שלא לפרסום

בקריפטוגרפיה, מיסור שלא לפרסום או מיסור שלא לציטוט (באנגלית: Off-the-Record Messaging, או בקיצור OTR),, הוא פרוטוקול קריפטוגרפי בקוד פתוח המספק הצפנה מקצה-לקצה למסרים מידיים. OTR משתמש בשילוב של מספר פרימיטיבים קריפטוגרפיים ידועים: צופן סימטרי AES עם מפתח באורך 128 סיביות, פרוטוקול שיתוף מפתח דיפי-הלמן עם מפתחות באורך 1536 סיביות וקוד אימות מסרים SHA1-HMAC המבוסס על פונקציית הגיבוב SHA-1. במקביל לאימות והצפנה, OTR מספק גם חשילות וסודיות מושלמת קדימה.
המניע העיקרי מאחורי פיתוח הפרוטוקול הוא לספק אימות וסודיות השיחה, אך בניגוד לכלי הצפנה נפוצים כמו SSL לאפשר גם "יכולת הכחשה", כך שלא יהיה באפשרות צד שלישי או אפילו המתקשרים עצמם להוכיח בעתיד מיהו מקור שיחה שנעשתה. OTR הועלה לראשונה במאמר שכותרתו: "תקשורת שלא לציטוט, או מדוע לא להשתמש ב-PGP" שפורסם באוקטובר 2004 על ידי Nikita Borisov, Ian Goldberg ו-Eric Brewer מאוניברסיטת ברקלי. ההתעניינות בפרוטוקול OTR גברה בעקבות החשיפות המסעירות שליוו את פרשת סנודן, שה-NSA ביצע ועדיין מבצע האזנות סתר מאסיביות בכל העולם והוא משמש אבן דרך חשובה ומודל לחיקוי בהתפתחות ההצפנה המודרנית. השאיפה כיום להבטיח פרטיות באמצעות הצפנה חזקה באופן כזה שלא תהיה לגוף מרכזי כלשהו סמכות או יכולת להפר אותה ובד בבד להסתיר מעיני המשתמש הלא מיומן בנושאי אבטחת מידע את כל המנגנון הקריפטוגרפי המסובך. לאפשר שימוש חלק ואינטואיטיבי ללא צורך בהבנה יתרה של עיקרון התאורטי העומד מאחורי המערכת.
הם סיפקו ספריית צד לקוח כדי להקל על מפתחי תוכנות למסריים מידיים ליישם את הפרוטוקול של OTR. תוסף של פידג'ין ו-Kopete  מאפשרים ל-OTR להיות שמיש מעל כל פרוטוקול מסרים מידיים שנתמך בידי פידג'ין או Kopete, בליווי תוספת שמאתרת אוטומטית כל שיחה עם עמית התומך בתוסף, מבלי להפריע לשיחות רגילות, שאינן מוצפנות.

היסטוריה

OTR הוצע כאלטרנטיבה ל-PGP ומערכת S/MIME , "בסדנא בנושא פרטיות בחברה האלקטרונית". הגרסה הראשונה 0.8.0 יצאה ב-21 בנובמבר 2004. בשנת 2005 מסמך שפורסם על ידי מריו ריימונדו, רוסאריו ג'נארו והוגו קרבצ'יק העלה מספר חולשות בפרוטוקול והציע תיקונים, בעיקר בחלק הקשור לשיתוף המפתח הנקרא בקיצור AKE (חילוף מפתח מאומת) שבגרסת הפרוטוקול המקורית היה חשוף להתקפת אדם באמצע. גם כן, האפשרות לפצל הודעות OTR על מנת להתמודד עם מערכות צ'אט בעלי גודל הודעה מוגבל, שיטה פשוטה של אימות נגד מתקפת האדם שבאמצע יושמה. במקום להשוות בין סיכום הביקורת לבין המפתח, ידיעה של סוד שרק שני הצדדים המשתתפים בשיחה יודעים אותו, יכול לשמש לאימות של שני הצדדים, משום שיש סבירות נמוכה שהתוקף ידע אותו. גרסה 3 של הפרוטוקול פורסמה בשנת 2012. כדאי להימנע ממצב שבו מספר מחשבים מתחברים לאותה שיחה עם אותו שם משתמש בו זמנית, נוצרה תווית זיהוי מדויקת יותר עבור כל משתמש שיושמה בגרסה 3. יתרה על כך, מפתח חדש נוצר שיוכל לשמש כערוץ נותנים נוסף. נכון ל-2016 הגרסה העדכנית ביותר היא libotr 4.1.1 וכן pidgin-otr 4.0.2 שמכילות מספר תיקונים בטיחותיים של הגרסאות הקודמות כמו גלישת חוצץ ומומלץ לעבור אליהן מיידית.

בעיית המיליונרים

החסרון בפרוטוקול AKI הוא שבכל שלבי הפרוטוקול ההנחה היא שאליס מכירה את בוב ויודעת מהו המפתח הציבורי שלו וכן בוב מכיר את אליס ויודע מהו המפתח הציבורי שלה. אך אם בוב לא מכיר את אליס או שאליס אינה מכירה את בוב איב יכולה להתחזות לאחד מהם בקלות על ידי ביצוע כל מהלכי הפרוטוקול המתוארים אך עם המפתחות שלה במקום של אליס או בוב. ההתחזות לא תתגלה אלא אם כן אליס או בוב ינסו לברר מהו המפתח הציבורי שלהם באמצעים אחרים מחוץ לפרוטוקול. התקפה כזו קלה לביצוע במיוחד על ידי גורם מרכזי שיש לו שליטה על שרת ההודעות. למעשה קיים תוסף ל-Jabber (כיום נקרא XMPP) הנקרא mod_otr שמבצע באופן אוטומטי התקפת אדם באמצע נגד שיחת OTR. כדי לסכל את ההתקפה אפשר לפעול בדרך פשוטה. כל משתמש יאחסן רשימה של המפתחות הציבוריים של כל החברים איתם הוא משוחח. במידה שמצטרף לשיחה חבר חדש שהמפתח שלו אינו מוכר (לא נמצא ברשימה), תופיע התראה שמבקשת מהמשתמש לוודא שהמפתח נכון. למעשה OTR הציג למשתמש "טביעת אצבע" בדמות QR של תוצאת הפונקציה SHA-1 של המפתח הלא מוכר והמשתמש נדרש להשוות את טביעת האצבע מול טביעת אצבע שהוא השיג בעצמו באמצעים אחרים (מחוץ למהלכי הפרוטוקול). הבעיה היא שרוב המשתמשים לא מבינים את משמעות טביעת האצבע, הם מעדיפים להתעלם מההודעה או מנסים להשוות רק מספר בתים מתחילת טביעת האצבע ומספר בתים מסופה. מה שמאפשר התקפה מצד איב עם מפתח ציבורי הדומה למפתח הציבורי של אליס או בוב רק בבתים הראשונים והאחרונים. בנוסף השאיפה היא להסתיר מעיני המשתמש את המנגנון הקריפטוגרפי המסובך שפועל מאחורי הקלעים ולדמות שימוש חלק ככל האפשר בתוכנת המסרים כאילו לא היה קיים. 
הפתרון שננקט ב-OTR גרסה 3 ומעלה הוא שימוש בפרוטוקול משני הנקרא "פרוטוקול המיליונרים הסוציאליסטיים" בקיצור (SMP) שהוא עצמו וריאציה של בעיית המיליונרים שניתן לה פתרון מעשי על ידי Yao. ב-2001 פורסם פתרון יעיל לבעיית המיליונרים הסוציאליסטיים על ידי Boudot, Schoenmakers, ו-Traoré בהתבסס על בעיית הכרעת דיפי-הלמן בקיצור DDH. הפתרון מאפשר לשני מיליונרים לדעת האם עושרם שווה מבלי לחשוף את עושרם המדויק לאף אחד מהצדדים או לצד שלישי. במילים אחרות זהו פרוטוקול כמעט אפס ידיעה שבו המידע הנחשף בסיומו שווה לסיבית אחת בלבד - אמת או שקר. בהקשר של OTR במקום להשוות כסף, משווים את המידע המשותף לאליס ובוב. אם איב המנסה להתחזות לאליס לא תצליח לנחש נכון את הסוד בניסיון הראשון הפרוטוקול יסתיים מיד בכישלון. לכל היותר איב תצליח לשבש או לקטוע זמנית את השיחה בין אליס ובוב. כדי למנוע מאיב מלהונות את המשתתפים על ידי העברת חילופי המסרים של פרוטוקול SMP כלשונם מאחד לשני הסוד אותו משווים כולל טביעת אצבע עם SHA-2 של מזהה השיחה, טביעות האצבע של מפתחות שני הצדדים והסוד המשותף. במצב כזה רוב הסיכויים שהתקפת MITM תכשל מיד משום שאצל בוב ואליס יתקבלו טביעות אצבע שונות. בד בבד הפרוטוקול מבטיח שאף אחד לא יוכל ללמוד מאומה מחלופי המסרים על הסוד המשותף שלהם מעבר לעובדה שהוא שווה אצל שניהם. כל התהליך מתרחש מאחורי הקלעים ללא מעורבות המשתמשים עצמם.

סוד משותף

החסרון הבולט בפרוטוקול הוא שההנחה היא שאליס ובוב מחזיקים בסוד משותף לפני ריצת הפרוטוקול. אם הם בחרו את הסוד בדרך בטוחה כמו במפגש אישי, על ידי שליח מהימן או בערוץ בטוח אחר אז לאיב אין אפשרות להשפיע על דרך בחירת הסודות ולהונות את הצדדים בהתקפת אדם באמצע. על כל פנים, לא תמיד הדבר אפשרי או נוח לצדדים לשתף סוד בדרכים בטוחות אפילו אם הם מכירים. במקרה כזה אם לאיב תהיה יכולת להשפיע על בחירת הסודות הם יהיו חשופים יותר להתקפת אדם באמצע. קיים טריק ישן אך יעיל, הם יכולים לשוחח ביניהם בערוץ פתוח באמצעות רמזים, במקום לחשוף את הסוד עצמו הם יכולים למשל לומר אחד לשני "הסוד יהיה הסרט שראינו בשבוע שעבר" וכדומה, רק אם המתקיפה איב מכירה את אליס מספיק טוב היא תוכל להונות את הצדדים. ליתר ביטחון אפשר להריץ את הפרוטוקול פעמיים, פעם אחת עבור רמז שאליס בוחרת ופעם אחת עם רמז שבוב בוחר. בכל אופן אם הם אינם מכירים כלל ומעולם לא נפגשו הבעיה תוותר בעינה. אם המתקיפה מסוגלת לנטר את תעבורת הרשת וליירט את ההודעות מבוב לאליס ומאליס לבוב אין דרך לסכל את התקפת אדם באמצע למעט שיתוף סוד בערוץ נפרד ובטוח. מבחינה מעשית, שיטת הרמזים עדיפה על שיטת טביעת האצבע המתוארת לעיל כי משתמשים בדרך כלל מתקשים בהשוואת מספרים ונוטים להתחמק מהמטלה הזו, לעומת זאת מילים או משפטים בעלי משמעות נוחים יותר.