|
המשך מפתיע במקצת של הסיפור:
תקציר הפרקים הקודמים: באמצע שנות ה־2000 ועדה של מכון התקנים האמריקאי (NIST) דנה ביצירת תקן למחולל מספרים פסאודו-אקראיים קריפטוגרפי [ויקיפדיה] - אלגוריתם (שיכול להיות ממומש בתוכנה) שיור רצף מספרים שנראים מספיק דומים לרצף אקראי לחלוטין. למחוללים כאלו יש שימושים רבים ביישומי הצפנה שונים. בסופו של דבר הוועדה המליצה על ארבעה אלגוריתמים אפשריים. אחד מהארבעה מכונה Dual_EC_DRBG [Wikipedia]. למעורבים בוועדת התקינה הזו התברר שהאלגוריתם האמור בולט ודווקא לא לטובה: הוא היה איטי בשני סדרי גודל מהאחרים. ניתוחים נוספים הראו שהרצף שהוא מוציא לא מספיק דומה לרצף אקראי. בהמשך התבררה תכונה מעניינת יותר: קיימים שני קבועים (למרבה הצער הם לא ידועים) שבעזרתם אפשר לחזות את רצף המספרים שמוציא המחולל. ר' סיכום של ברוס שנייר משנת 2007.
אף אחד כמעט לא השתמש במחולל הזה (מילא לא בטוח, אבל איטי?). הסתבר שחברת RSA השתמשה בו באחד ממוצריה. והסתבר שנדרש תשלום של 10 מליוני דולרים כדי לשכנע אותם ביתרונו של המחולל האמור.
ועכשיו אנחנו מגיעים לפרק הנוכחי: ה־NSA הוא, כידוע, גוף רב עוצמה. אבל יש מכשולים שעליהם גם הוא לא יכול להתחבר. לדוגמה: הבירוקרטיה של מכון התקנים האמור.
לפני כמה ימים התבררה עדות מעניינת לחוסר הפופולריות של המחולל Dual_EC_DRBG. ספריית התוכנה OpenSSL [Wikipedia] היא כנראה המימוש הפופולרי ביותר של כל מה שקשור להצפנה. הספרייה ידועה בין השאר בכך שהקוד שלה (או ליתר דיוק: של גרסה מסוימת שלה) נבדק ועמד בתקן FIPS 140-2 [Wikipedia]. אחד האלגוריתמים שהם נדרשו לממש כדי לעמוד בתקן היה גם Dual_EC_DRBG. הקוד שלו נכתב על ידי תורם אלמוני. הוא התקבל כי מפתחי OpenSSL החליטו שהספרייה שלהם צריכה להיות מקיפה ולממש גם כל מיני אלגוריתמים לא מוצלחים במיוחד.
בעקבות כל הרעש שנוצר לאחרונה סביב המחולל, החליטו שני חוקרים לבדוק את המימוש שלו ב־OpenSSL. הם גילו שהוא פשוט לא עובד. אבל כשמפתחי OpenSSL רצו לתקן את הבאג שמנע ממנו לעבוד (תוספת של שורת קוד אחת), התברר להם שזה אסור: הם משנים את הקוד, ולכן הקוד שלהם כבר לא יעמוד בתקן FIPS 140-2. אז הנה מימוש של המחולל הזה שבו אסור להשתמש.
ועוד עניין שלא קשור: תמיד ידענו שאפשר לעשות דברים מעניינים עם קוד שרץ לאו דווקא במעבד הראשי אלא בכל מיני מעבדים אחרים במערכת. אבל לאחרונה אנשים גם הצליחו לממש את זה. הנה שימוש בדיסק קשיח ובכרטיס MicroSD.
|
|