הספאמרים, כדי לעקוף את הפילטרים הבייסיאנים, מכניסים שגיאות כתיב מכוונות למיילים שלהם.
א. זה לא עוזר. הפילטר שלי כבר מבין ש-chaep, או onljne, פירושם שהמייל הוא ספאם.
ב. נהיה בלתי אפשרי להבין מה הם מנסים למכור.
ג. עזבו שגיאות כתיב, למה המילה “line” נמצאת שם?
מה זה אומר? אני לא בטוח. אני מניח שאנחנו מנצחים, באיזושהי צורה פרוורטית את המלחמה בספאם.
שחר
ביקורת לינוקס מאת מתקין חדש
כתבה על משתמש חלונות שבחר לנסות לינוקס כאן. ההתקנה היתה קשה. אחריה חלק מהדברים עבדו טוב יותר, חלק פחות.
הנה הפסקה שאהבתי הכי הרבה:
יש פיצויים. קוד פתוח מביא איתו עושר בחירה. לא תצטרכו לשלם יותר על תוכנה שבה אתם עושים שימוש אגבי. מבחינתי, זו אבחנת מפתח. ייתכן ו-GIMP אינו מספיק טוב למי שפרנסתו תלויה בכך שהוא עורך תמונות, אבל משתמש GIMP האגבי לא צריך לקנות Photoshop (ויש גרסת חלונות של GIMP :-).
הסיכום הסופי שלו: “האם אני אוותר לחלוטין על חלונות? כנראה שכן. ככל שאני משתמש בלינוקס יותר, כך אני אוהב אותה יותר למרות האתגרים. …. אבל יותר מהכל, לינוקס נותנת לי יותר בחירה בפחות מחיר. רק תנו לה קצת זמן לטפס על ההר החלונאי“.
שחר
הודעות קרנל ופירושן
ההודעה:
הדרך לפתור את הבעיה:
להוריד את החתול מהמקלדת.
שחר
אנטומיה של באג ב-Word, ולמה לנו זה לא היה קורה.
מאמר באתר הבלוגים של מיקרוסופט מסביר, באריכות מסויימת, מדוע נוצר באג מעצבן במיוחד (שגיאת disk full כאשר מנסים לשמור קובץ, מה שאומר שלא ניתן לשמור את הקובץ יותר), ואיך הם לאט לאט מצאו את הגורם, ואולי יום אחד ימצאו גם את הפתרון. את המאמר ניתן לקרוא כאן.
אני לא אכנס לעומק בכל מה שקשור למאמר הזה. בעיקרון, כל מי שאיי פעם כתב תוכנה מכיר את התופעה – עובדים מאוד קשה עד שהבאג בכלל משתחזר אצלך, מגלים שהבעיה לא קוראת כשהתוכנה רצה ב-Debugger, בסוף מוצאים את הבעיה וכו’. יש הרבה מאוד מה לדון בכל מה שקשור לשאלות כמו “האם יש צורך בתוכנות עם כל כך הרבה יכולות”, כמו גם “האם אפשר לייצר תוכנות כך שהגדלת מספר האפשרויות להריץ אותן לא תגדיל את הסיכויים לבאגים. אני אשאיר את הדיונים האילו לפעם אחרת.
משפט אחד שאני כן רוצה להתייחס אליו הוא משפט איי שם באמצע הכתבה, שלדעתי ממצה בצורה יפיפיה את ההבדל בין תוכנה קניינית לתוכנה חופשית:
בעברית:
הגורם הבסיסי הינו החלטת תיכנון שעשית לפני יותר מעשור, והדרך היחידה באמת לתקן אותה היא לכתוב את כל התוכנה מחדש. מכיוון שזו פשוט לא אופציה כאשר מדובר בתוכנה שכבר שיחררת ללקוחות מספר פעמים, אין לך ברירה אלא לגרום לבעיה להיות אחת שקשה לרוב המשתמשים להתקל בה, בעוד שאתה מקטין את את ההשפעות השליליות של לאילו שכן נתקלים בה.
ההדגשה שלי.
וזו, גבירותי ורבותי, תמצית העניין. כאשר חברה מסחרית עובדת בלחצי זמנים, וצריכה לתת פתרון כמה שיותר מהר ועם כמה שפחות זעזועים למערכת, שינויים שעלולים לייצר השלכות מרחיקות לכת מידי פשוט לא נכנסים. זאת לא בעיה של מיקרוסופט באופן ספציפי. אף מנהל מוצר, של אף תוכנה קניינית, לא יסכים להכניס שכתוב מרחיק לכת של תשתית קריטית בלי המון דחיות, דיונים, ונסיונות להמנע מזה. למנהל מוצר יש מחוייבות להוציא את המוצר באיכות טובה ובזמן. ככל שהשיכתוב הינו גדול יותר, כך גם העיקוב. שיכתוב של כל מערכת ה-Undo של Word פשוט לא בא בחשבון, באף שלב של ייצור המערכת.
התוצאה היא שבאג שהוכנס לתוכנה לראשונה בגרסה 6, לפני יותר מעשר שנים, עדיין חי וקיים. היום ההשלכות שלו יותר קטנות, במקום שלא תהיה לכם שום דרך לשמור את המסמך, אתם פשוט מדי פעם מאבדים את כל ה-Undo buffer שלכם בזמן שמירה, אבל רק אם אתם על חלונות. על Mac, אתם עדיין לפעמים לא יכולים לשמור.
וכאן ההבדל המהותי. התיקון של ריק וחבריו ל-Word לא היה מתקבל כמעט באף תוכנה חופשית שאני מכיר. מנהל התוכנה היה שואל “אילו באגים זה פותר”, ואז היה שואל “למה קרה הבאג הזה”, ואז היה דוחה את התיקון מכיוון שהוא לא מתקן את הבעיה. כתוצאה מכך, אילו Word היה מפותח כתוכנה חופשית, כבר גרסה 7 (Word 95) היתה יוצאת עם תיקון שפותר את הבעיה. אולי זה אכן היה מערער מעט את יציבות המערכת, אבל עירעור היציבות הזה היה נפתר עד הגרסה שאחריה (Word 97). במילים אחרות, אם הם היו מעיזים לתקן את הבעיה באמת, הבעיה היתה כבר פתורה מעל 7 שנים!
למה תוכנה חופשית יכולה להרשות לעצמה מה שתוכנה קניינית לא? התשובה טמונה באינטרס הכלכלי. מכיוון שלתוכנה חופשית אין אינטרס כלכלי מיוחד למכור את הגרסה הקרובה, אין מניעה לעשות תיקונים רחבי היקף. כמו כן, מכיוון שתוכנה חופשית יוצאת מתי שהיא מוכנה, אין מניעה לדחות את תאריך היציאה המקורי כדי שהתיקון ייכנס כמו שצריך, או להקדים את תאריך היציאה כדי לפתור בעיה אקוטית שקיימת בגרסה שנמצאת בחוץ כרגע. הגמישות הזו מאפשר לתקן בעיות מהשורש.
שחר
חביב
עוד אחד מהדיילי מיילי, הפעם קצת פחות רציני:
סרטו החדש של קווין טרנטינו
סקירת מערכות ראשונית
אם נמשיך את אלגורית הילד ממקודם, אז אפשר להגיד שהלכנו לאולטרהסאונד, ולילד כבר ממש יש צורה של תינוק (הפצת לינוקס, במקרה הזה).
כרגע סקירת המערכות עוד לא עברה בשלום, אבל ההורים אופטימיים 🙂
שחר
HP תומכים בדביאן רשמית – בערך
דבר ראשון, החדשות הטובות:
HP מציעה לכם להוריד הפצת לינוקס “דביאן” שהם שינו מעט כדי שתעבוד אופטימלית על שרתי HP. אילו חדשות נפלאות.
בתור התחלה, זהו הצעד הראשון לקראת קבלה של דביאן כהפצת לינוקס מובילה (עם נתח שוק גדול משל Suse) בתחום השרתים. התקווה היא שגופים מסחריים, כמו אורקל, יתכילו אף הם לתמוך במערכות דביאן בעיקבות הצעד הזה.
חשוב מכך, מי שקורא את ההודעה עשוי להבין ממנה שעכשיו מגוון החבילות, מערכת עדכוני האבטחה וכו’ של דביאן נתמך באופן פורמלי ע”י HP, וזוכה גם לכיסוי השיפוי מ-SCO שלהם (לא שלמישהו באמת אכפת, אבל זה מראה על כוונה).
אז זהו, שלא.
ההפצה הזו אינה באמת דביאן. היא “Debian with HP Extensions”. למעשה, זהו fork של דביאן, שלו הוסיפו HP חבילות משלהם.
כדי להבין למה זה רע, צריך להבין מה עושה את דביאן להפצה מספר שתיים על שרתים, ועוד אחת שהולכת וסוגרת את הפער. ניתן לסכם את זה בשתי מילים:
הפצה קהילתית.
אם אני רוצה היום לבנות לי הפצה חדשה, אני יכול. למישהו מנוסה זה עניין של מספר ימי עבודה, לא יותר. כל התוכנות זמינות, כל האמצעים קיימים, כל המידע פתוח. אני אבחר לי את התוכנות שנראות לי מעניינות, אבנה מהן חבילות, ואפתח הפצה חדשה.
וזאת תהיה הפצה גרועה. הסיכוי שלי לקלוע לטעם של כמות גדולה של אנשים הוא נמוך. גם אם מישהו יתפתה להתקין את ההפצה שלי, הוא מהר מאוד יגלה, כנראה, שיש חבילות שהוא צריך שלא נמצאות בהפצה. הפתרון המתבקש במצב כזה הוא לפנות אלי, ולבקש שאוסיף את החבילות האילו.
אני, כמובן, אעשה את זה. אבל בשלב כלשהו יתחיל להיות לי קשה לעקוב אחרי הדרכים השונות לקמפל כל חבילה, עדכונים של כל החבילות של ההפצה, תיקוני security וסתם התאמות קטנות. בשלב זה לא תהיה לי ברירה אלא לשכור עוד מישהו (אם עדיין משתלם לי להתרחב), לסרב להוסיף את החבילה, או להוסיף אותה אבל לא לתחזק אותה מספיק טוב.
וכאן הכשל העקרוני והמהותי שבכל הפצה מסחרית של לינוקס. ברגע שאתה לוקח לעצמך את מלוא השליטה על אילו חבילות נכנסות ואילו לא, אתה נאלץ לעשות שילוב כלשהו של כל שלוש האפשרויות הנ”ל! כתוצאה מכך, כל ההפצות המסחריות (מי יותר, מי פחות), ובפרט השלוש הידועות (RedHat, Suse ו-Mandrake), נאלצות הן להגביל את היצע החבילות שנמצאות בהפצה והן את כמות הבדיקות שכל אחת מהן עוברת. דוגמא דיי ידועה של זה היא שב-Suse מערכת KDE לא נמצאת באותה רמת גימור של Gnome. למה? כי היא לא בפוקוס של Suse, ואין להם משאבים לתחזק אותה.
אז בואו נראה איך עוד אפשר להתמודד עם הבעיה. כשאתם אומרים לי “אין לך חבילה של X”, במקום להגיד “טוב, אני אכניס”, או “זה לא מעניין, אני אשאיר בחוץ”, אני אומר לכם “בואו, תכינו אתם את החבילה, ואני אצרף אתכם לצוות האחראים על ההפצה”. למעשה, זו הרחבה של מודל התוכנה החופשית לעולם הניהול.
כתוצאה מכך קורות כמה תופעות. דבר ראשון, מגוון החבילות הזמינות דרך מערכת דביאן הוא ללא תחרות מאף הפצה מסחרית. מספיק שהיה מישהו שמספיק היה אכפת לו מתוכנה מסויימת כדי שהתוכנה תכלל בדביאן.
תופעה שניה היא שכמות הזמן המושקע, ומה שיותר חשוב, רמת האיכפתיות מכל חבילה, עולה לאין שיעור. המתחזק של החבילות הוא, כמעט ללא יוצא מין הכלל, משתמש יומיומי בתוכנה בעצמו. אם משהו יקרה לחבילה אחרת שישבור את החבילה שלו, סביר להניח שהוא יהיה אחד הראשונים לשים לכך לב. כמו כן, סביר מאוד להניח שהוא יכניס תיקונים שונים בחבילה שרק מישהו שמשתמש בה על בסיס יומיומי ידע ויטרח.
למשל, לפני מספר שנים נהגתי להשתמש בעבודה בתוכנה בשם hping. בשלב כלשהו מצאתי בה באג. הבאג התגלה כשגיאה של שורה אחת. שלחתי למתחזק של hping את התיקון, והוא הוכנס פנימה. על המחשבים הפרטיים שלי, שמריצים דביאן, רציתי שהתיקון גם ייכנס. מכיוון שעוד לא היה שחרור גרסה חדשה של hping, הורדתי את קוד המקור מהחבילה של דביאן כדי להכניס אותו גם שם. ואז גיליתי שהתיקון כבר בפנים! כמוני, גם המתחזק של hping עלה על הבאג ותיקן אותו. דבר כזה קורה רק כאשר מי שמתחזק את החבילה גם משתמש בה. לצורך ההשוואה, על מחשבי העבודה היה מותקן RedHat. לא זו בלבד שהתיקון לא היה בחבילה, לא היתה חבילה של hping ל-RedHat כלל. קוראי הבלוג הזה שמתמשים ב-apt-get ל-RedHat מוזמנים לדווח האם היום התוכנה זמינה לרד האט או לא.
ועכשיו חזרה לנושא. HP חושבת כמו חברה מסחרית. במקום לסמוך את ידיה על דביאן, הם לקחו תמונה בזמן של דביאן וסמכו עליו את ידיהם. בעוד שאני שמח שזה קרה, אני חושש שפעולה כזאת מוציאה את האויר מהסיבה האמיתית להתקין דביאן. הם אפילו לא עשו את הדבר המתבקש, והודיעו שהם נותנים שיפוי למי שמתשתמש בגרסה הזו.
לדעתי, הדבר הנכון בשבילהם לעשות היה להרים אתר apt שנותן אך ורק את החבילות שהם היו צריכים בשביל אופטימיזציות למחשבי HP, ולהציע למי שרוצה להריץ דביאן על HP להסתנכרן גם מולו. זה היה מביא את כוח האופטימיזציות שלהם מבלי לאבד את הכוח האמיתי של ההפצה שהם בחרו לתמוך בה. אם מישהו מ-HP קורא את הבלוג ומעוניין בייעוץ, הוא מוזמן לפנות אלינו
שחר
זה כיף כשהמודל עובד
אתמול היה יום דיי משעשע בעבודה.
הייתי אצל לקוח שמנסה להעביר מערכת דיי מסובכת שנכתבה כשירות לחלונות, כך שתעבוד על לינוקס. במקום להתחיל לכתוב את כל המערכת מחדש, אנחנו משתמשים ב-Wine.
למרבה ההפתעה, כמות הבעיות שהתגלו עד כה קטנה באופן משמעותי מין הצפוי. בנתיים, כל פעם שהמערכת לא התנהגה נכון על לינוקס, התגלה שמדובר בבאג שמסיבה זו או אחרת לא צץ על חלונות, אבל כן קיים גם שם. היו לנו בעיות ביצועים עם חלק מרכיבי הסינכרון, ועקפנו את הבעיות ע”י מימוש חלקים נבחרים מהתוכנה מקומית בלינוקס במקום בפונקציות של חלונות. עדיין, בסך הכל, המערכת מתפקדת ממש טוב.
אתמול התבקשתי למצוא מדוע המערכת קופאת לחלוטין מידי פעם. עלינו על תופעה מאוד מוזרה – גם כשהמערכת לחלוטין לא פעילה, רכיב מסויים של Wine תופס 60% מה-CPU. משהו שם לא יעיל.
בדיקה יותר מעמיקה של מקור הבעיה הראתה ש-Wine משתמש בפונקציה בשם “poll” כדי לבדוק אם הוא צריך לעשות משהו כרגע. בקרנלים חדשים של לינוקס יש תחליף יעיל יותר שנקרא “epoll”. סיכמנו עם הלקוח שנכניס תמיכה ב-epoll ל-Wine.
וכאן אפילו אני עומד משתאה מול המודל של תוכנה חופשית. כשזה עובד, זה פשוט מדהים. נוצר פה מצב שבו כולם מרוויחים:
1. הלקוח שלי – זכה במערכת שחסכה לו מספר חודשי עבודה (אם לא יותר), כמעט לחלוטין בחינם (הוא כן צריך לשלם על הזמן שלי, אבל העלות הזו זניחה לעומת כמות הזמן שהיה צריך להשקיע אם לא היה לו את Wine).
2. פרוייקט Wine – מקבל תוספת ביצועים חשובה
3. אני (ולינגנו) – מתפרנסים מכל הסיפור בכבוד. מצד אחד – הכסף שאנחנו גובים רק חוסך כסף ללקוח, ומצד שני יש פה הרגשה טובה של לעשות למען אחרים.
מסתבר שאני לא מספיק זמן עושה את זה, אם אני עדיין נהנה לראות את המודל שכולנו תמיד מדברים עליו ממש ממש עובד בשטח
שחר
אל תסמכו על החתימות הדיגיטליות
בקצרה: פרצו את MD5.
טוב, אני מצטער על הכותרת הסנסציונית, אבל האמת היא שאם האירוע הוא בהיקפים שכרגע מדברים עליהם, מדובר במהפיכה ממש.
אם אתם כבר יודעים מה זה אלגוריתם האש קריפטוגרפי ואת שימושיו, אתם יכולים לדלג על הרקע ע”י לחיצה כאן.
קצת רקע:
אלגוריתמים של חתימה דיגיטלית מאפשרים לוודא שרק מישהו שיודע סוד מסויים יכול היה לייצר חתימה מסויימת. אלגורתמים נפוצים היום הם RSA, DSA ו-ElGamal. אנחנו מניחים שיש רק בן אדם אחד שמחזיק את המפתח. נקרא לו, ללא הגבלת הכלליות, “אור”. אנחנו יכולים להניח שאם יש הודעת דואר אלקטרוני שחתומה ע”י המפתח של אור, אזי אור הוא זה שכתב את ההודעה.
הנחת היסוד של המערכת הזו כל כך חזקה, שלפני קצת מעל שנה עבר בכנסת חוק המכונה “חוק החתימה הדיגיטלית”. תמציתו היא שאם הודעה חתומה ע”י מפתח שידוע בצורה סבירה שהוא שייך לאור, ההודעה הזו מחייבת את אור כאילו הוא חתם בעט על נייר.
אבל יש קוץ קל בכל השימחה. לחתום על הודעה, חוזה, או קובץ בגודל דיי גדול באמצעות אחד מהאלגוריתמים המוזכרים למעלה הינה פעולה יקרה וארוכה. כתוצאה מכך, בד”כ בוחרים בשיטה אחרת לביצוע חתימות. השיטה מכונה פונקצית האש קריפטוגרפית “cryptographic hash function”.
הרעיון הוא כזה. פונקציה y=f(x) תחשב פונקצית האש טובה אם אפשר להגיד עליה כך:
בהנתן x, קל לחשב את y (אחרת למה אנחנו משתמשים בה).
בהנתן y, קשה למצוא x שמקיים את הפונקציה (הפונקציה לא הפיכה).
קשה למצוא שני xים, כך שיש להם את אותו ה-y.
חשוב לציין שכמעט כל פונקצית הצפנה טובה יכולה לשמש כפונקצית האש. כל מה שצריך זה להזין ערך התחלתי ידוע וקבוע בתור plaintext, ולהזין את ההודעה בתור מפתח. למי שלא הבין, לא חשוב.
פונקציות האש הן דבר מאוד מאוד שימושי. למשל, נניח שאנחנו מתערבים שחיזרים היקנו לי את היכולת לנחש את תוצאות הלוטו הקרובות. כמובן שדרך אחת זה אני אלך ואקנה כרטיס, ואז אראה לכם שזכיתי. הבעיה היא שהחייזרים הם עם מאוד מוסרי, והם אסרו עלי להשתמש היכולת הזו כדי לגזול את כספי המדינה. לגזול את הכספים שלכם דווקא מותר לי.
הצעה שניה יכולה להיות שאני ארשום על פתק את תוצאות הלוטו, ונפקיד את הפתק בכספת אצל עורך דין. אני דווקא מאוד מאוד מחבב את ההצעה הזו, ומציע את העורך דין שמטפל בעניני. אתם, כמובן, לא מסכימים לסמוך על מישהו שפרנסתו תלויה בי. אתם מציעים את עורך הדין שמטפל בעניניכם. לי, אבל, יש בעיה עם האפשרות, תיאורתית ככל שתהיה, שהוא יציץ בפתק ויקנה כרטיס, ובכך יגרום לי להפר את הבטחתי. בעיה.
ואז עולה ההצעה הבאה. אני ארשום דיגיטלית את המספרים הזוכים. אני אחשב את ההאש של המספרים, ואתן אותו לכם. מכיוון שפונקצית ההאש אינה הפיכה, אתם לא יכולים לדעת מהמספר שקיבלתם מהו הניחוש הנכון, אבל אחרי שיתפרסמו התוצאות תוכלו לוודא שלתוצאות יש את אותו ההאש.
ואז אני עולה על בעיה – יש רק כמה מליוני תוצאות אפשריות בלוטו. למחשב אין שום בעיה לנסות את ההאש של כל התוצאות האפשריות, ולגלות לכם מה הן עומדות להיות. אנחנו לכן מרחיבים את המערכת באופן הבא – אני ארשום את התוצאות של ההגרלה, ואוסיף לזה המון מידע אקראי. מכל הסיפור הזה אני אוציא האש ואתן לכם. אחרי ההגרלה, אני אגלה לכם מה היה המידע האקראי, ואתם תוכלו לבדוק בעצמכם שניחשתי נכון מראש. מכיוון שהפונקציה בנויה כך שקשה למצוא שתי הודעות בעלות אותו ההאש, המערכת הזו חסינה לרמאויות מצידי.
שימוש נפוץ יותר לאלגוריתמי האש קריפטוגרפיים הוא לצורך חתימה דיגיטלית. במקום לחתום על כל ההודעה באמצעות DSA, מייצרים האש קריפטוגרפי של ההודעה, וחותמים רק עליו. הדבר חוסך משמעותית בזמן החתימה.
כפי שציינתי, אפשר להשתמש באלגוריתמי הצפנה סטנדרתיים לצורך ייצירת האש. הבעיה היא שאילו בד”כ אינם יעילים כאשר כל הזמן משנים להם את המפתח, כפי שאנחנו מנסים לעשות פה. לצורך כך, ייצרו אלגוריתמי האש ייעודיים. בין הידועים והנפוצים כיום: MD5 ו-SHA1.
:
שברו את MD5. בגדול, יש שלושה דברים שהמשפט הקודם עלול/עשוי להגיד, בסדר עולה של חומרה:
1. תוקף מסוגל לייצר שתי הודעות שעונות על תנאי מתמטי מסויים, כך שלשתי ההודעות אותו האש.
2. תוקף מסוגל לייצר שתי הודעות, פחות או יותר כרצונו, כך שלשתי ההודעות אותו האש.
3. תוקף מסוגל לייצר הודעה חדשה כך שיש לה את אותו ההאש כמו הודעה קיימת.
אני חייב להודות שעוד לא התעמקתי בחומר בעצמי. על פי מה שאחרים לעסו בשבילי, בשלב זה פרצו אותו ברמה 1, אבל רמות 2 ושלוש הינן סבירות בעתיד הנראה לעין.
בואו נראה מה זה אומר. שבירה של מקדם 1:
אם ניקח את ההתערבות ממקודם, אורך החלק ה”רנדומלי” ברשימת המספרים של הלוטו הוא מספיק ארוך כדי שאני אוכל, כנראה, לגרום להודעה להראות על פי כל פונקציה מתמטית שאבחר. לאור כך, כל שעלי לעשות הוא לבחור מראש האש סביר. אחרי כן, לחכות ליום ההגרלה, ובהנתן המספרים הזוכים בלוטו, למצוא את החלק ה”אקראי” של ההודעה שמשלים את המספרים הזוכים להאש שכבר נתתי. אמנם לא זכיתי בלוטו כתוצאה מכך, אבל כן זכיתי בהתערבות.
מצד שני, אם זה כל מה שיש לי, יהיה לי מאוד קשה לייצר שתי הודעות טקסט שמכילות טקסטים (כמעט) כרצוני, ושיהיה להם את אותו ההאש.
מצד שני, אם יש שבירה ברמה 2, המצב כבר הרבה יותר רגיש. כפי שציינתי קודם, חתימה דיגיטלית מתבצעת כנגד ההאש של ההודעה, ולא כנגד ההודעה עצמה. אם אני מצליח למצוא שתי הודעות שלהן אותו ההאש, אין שום דרך להוכיח בבית משפט שחתמתם על אחת ולא על השניה. דוגמא להתקפה:
כידוע, לינגנו מוכרת, בין השאר, שירותי תחזוקה לרשתות מבוססי לינוקס. נגיד שאני שולח אליכם חוזה מוכן, שאומר שאני אתן לכם את שירותי תמורת 12 שקל בשנה, כולל מע”מ. וואלה, במחיר כזה, מי לא יסכים? כל שאתם צריכים לעשות הוא למלא את מספר החברה, ולחתום דיגיטלית.
אחרי ששלחתם אלי את החוזה חתום, אני מוציא לכם חשבונית על 10,000 דולר. “מה זה?”, אתם שואלים. “הנה, החוזה שחתמתם עליו”, אני עונה. כדי להוכיח, אני שולח לכם חוזה, ואכן כתוב בו שאתם מתחייבים לשכור את שירותי למשך שנה, בעלות דו-חודשית של 10,000$. החוזה חתום בחתימה דיגיטלית המוצפנת באמצעות המפתח שלכם, הכל נראה כשר ותקף.
במר יאושכם, אתם שוכרים שירותי מומחה, שמוצא שלחוזה שחשבתם שאתם חותמים עליו ולזה שאני טוען שחתמתם עליו יש את אותו ההאש. בשלב זה אנחנו מגיעים לבית משפט. אתם טוענים נגדי להפרת חוזה – אתם מוכנים לשלם 12 שקלים, אבל אין שירות. אני, מצידי, טוען להפרת חוזה. היכן 10,000 הדולר שאני צריך כדי להתחיל לתת לכם את השירות?
לבית המשפט אין כלים טכנולוגיים לבדוק מי צודק! אם הצלחנו לעלות על זה שההאש הינו אותו ההאש, אזי אפשר להוכיח שמישהו פה זייף חוזה. לא ברור, אבל, אם אני שלחתי חוזה מגוחך, ואז החלפתי אותו בחוזה אחר, או שאתם חתמתם איתי על חוזה אחד, בידיעה שתוכלו להחליף אותו באחר. ייתכן יהיו לבית המשפט כלים אחרים לשפוט (לא סביר, כן סביר, עדויות של אנשים, וכו’), אבל הטכנולוגיה פה נכשלת במתן הפתרונות שהתיימרה לתת.
גרוע מכך. בהנתן חוק החתימה הדיגיטלית, לא ברור היכן עומדות חתימות שנערכו לפני שנשבר האלגוריתם. לכאורה, אין בעיה. הרי אם חתמנו על חוזה תרם שמישהו ידע איך לשבור את MD5, הרי שלא ניתן לטעון שייצרתי בכוונה חוזים שיהיו זהים. בפועל, אכן אין כל כך בעיה, אלא אם יש שבירה ברמה 3.
רמה 3 פירושה שניתן, מספיק בקלות, לייצר הודעה חדשה שיש לה את אותו ההאש כמו הודעה ידועה שלא נתונה לשינוי. למשל, כמוזכר קודם, חתמנו דיגיטלית על חוזה שמסדיר את תנאי ההעסקה. עכשיו אני מייצר חוזה חדש, עם תנאי ההעסקה חדשים. למעשה, אני יכול כעת להחליף אותו בדיעבד, כשאני מעביר את החתימה על החוזה הישן אל החוזה החדש. אני חושב שאין צורך להסביר מדוע זה בעייתי.
לסיכום: מצבינו היום הוא ש-MD5 נשבר ברמה 1. יש טענות מצד מומחי קריפוטגרפיה גדולים ממני שרמות 2 ו- 3 אינן קשות כפי שהיה נהוג לחשוב. SHA-1 כנראה נשבר גם הוא, למרות שאין עדיין וודאות בנושא.
שחר
פטנטים, זכויות יוצרים, וקניין רוחני בכלל
הקטגוריה נקראת “קניין רוחני”, והיא כוללת בתוכה ארבעה סוגים כלליים של “קניין”. לא אחד ולא שניים כבר טענו, אבל, שלקרוא לזה “קניין רוחני” זה שם מטעה, וגורם לחלק מהצרות שבהן אנחנו נמצאים.
הסוגים של קניין רוחני:
- זכויות יוצרים
- פטנטים
- סימני מסחר
- סודות מסחריים
הרעיון הכללי הוא שכל סוג של קניין רוחני נותן כוח מסויים למחזיק אותו, ותמיד הוא מצד שני מוגבל. ככל שהכוח חזק יותר, ההגבלה חזקה יותר.
הרעיון מאחורי הקניין הרוחני הוא אחיד – שוק חסר חוקים לחלוטין עלול להגיע למצב שבו יש תמריצים שליליים לפתח דברים חדשים. מכיוון שאנחנו, כחברה (society( מעוניינים שדברים חדשים יפותחו, אנחנו מעוניינים לתת לגופים המפתחים נופש מוגבל מהשוק חסר החוקים, כתמריץ לכך שיפתחו דברים חדשים.
עניין המוגבל פה הוא לא סמנטי. הוא בעל משמעות מאוד חשובה. אם הסייגים לתחרות לא היו מוגבלים, היינו אולי מעודדים חדשנות, אבל החדשנות הזו היתה נחלת הפרט. הסיבה שאנחנו כחברה נותנים את זכויות הקניין הרוחני היא שאנחנו רוצים שהחדשנות תהפוך לנחלת הכלל.
בואו נראה אילו זכויות מקנה כל סוג של קניין רוחני, ומהן המגבלות עליו:
סימן מסחר (Trademark)
זהו כנראה הקל ביותר להבין. אם רשמתי סימן מסחר, יש לי את הזכות הבלעדית להחליט למה יתייחס אותו הסימן. אם רשמתי את סימן המסחר “Lingnu”, והחלטתי שהוא מתייחס לחברה שלי, אסור לאף אחד אחר לבוא ולטעון ש-Lingnu היא החברה שלו, או מוצר אחר שאותו תחום עיסוק.
חשוב להבין שהסכות הנ”ל לא נותנת לי בעלות מוחלטת על המילה. למשל, אם מישהו מפרסם שהחברה שלו “יותר טובה מלינגנו”, הרי שהוא אמנם משתמש בסימן המסחר שלי, אבל כל עוד הוא אכן מתייחס לחברה שלי, אין לי יכולת להגביל אותו מלעשות כן.
המגבלה ששמו על קניין רוחני זה הינה שאסור לרשום כסימן מסחר מוגן שם שהוא שם כללי, חסר ייחוס לחברה מסויימת. למשל, לפני הרבה שנים היתה חברה לייצור גלידות בארץ. באופן יותר פרטני, הם נהגו לייצר גלידות מעוצבות על מקל. האקדמיה ללשון עברית מכנה את סוג הגלידה הזו “שלגונים”. לחברה, שסביר להניח שהיה לה שם מסחר רשום, קראו “ארטיק”. מטבע הדברים, רק השלגונים של ארטיק נקראו “ארטיק”.
שנים עברו, החברה נעלמה לה, וארטיק הפך לשם נרדף לשלגון. היום, אף אחד לא יכול לרשום סימן רשום על “ארטיק” – זהו שם כללי. גם אם החברה לא היתה נעלמת, אם “ארטיק” הופך להיות שם כללי לשלגון, החברה מאבדת את הסימן הרשום שלה. זו לא סכנה תיאורטית. חברות פלאפון ומטרנה, למשל, נמצאות בסכנה כזו היום.
סוד מסחרי
זוהי זכות אפילו יותר מובנת מאשר קניין רוחני. בעברית פשוטה, אם הגדרתי מידע מסויים בתור סוד מסחרי, ועשיתי מאמצים סבירים כדי לשמור עליו בסוד, אסור לאף אחד לפרסם אותו. המגבלה נמצאת בגוף ההגדרה – אני חייב לעשות מאמץ לשמור את הסוד סודי.
זכויות יוצרים
כאן אנחנו מתחילים להגיע לנושאים השנויים במחלוקת. זכויות היוצרים, או “זכויות ההעתקה”, כפי שנקראות ביתר דיוק באנגלית, נותנות ליוצר של יצירה כלשהי את הזכות להחליט כמה העתקים של יצירתו ייעשו. בפרט, הן נותנות ליוצר לדרוש תגמול כספי עבור יצירתו.
הרעיון הוא מאוד פשוט. אם אני יצרתי שיר, סיפור, ציור, תוכנת מחשב או תכנון ארכיטקטוני, היצירה נמצאת בשליטתי. אנחנו מדברים לא רק על הקנבס שעליו מצוייר הציור, אלא על הצורה והצבע של משיכות המכחול. במילים אחרות, לא רק הציור עצמו, אלא גם כל ההעתקים שלו. אם תקחו את הציור ותשנו אותו, תקבלו מה שמכונה “ייצירה נגזרת” – ייצירה חדשה, הזכאית לזכויות יוצרים משל עצמה, אבל שדורשת את אישור בעל זכויות היוצרים המקורי.
הסיבה להגנה הזו היא המחשבה, שייתכן שהיא מוטעית, שללא היכולת לקבל תמריץ כספי, יוצרים לא ייצרו דברים חדשים. דברים חדשים הם אינטרס של כלל החברה, ולכן אנו רוצים לעודד יוצרים ליצור. כדי לאזן את המונופול המוחלט שיש ליוצרים ביצירותיהם, הגבילו בזמן את זכות השליטה הזו. אחרי 25 שנה, היצירה מפסיקה להיות רכוש היוצר, והופכת להיות רכוש הכלל (נחלת הכלל).
וכאן התחילו הצרות. חלק מהיוצרים היותר יצירתיים גם התעשרו בזכות כך. זה, כשלעצמו, דבר חיובי ורצוי. הבעיה היא שעם הכסף באה גם שליטה. יוצרים כמו דיסני ראו את טווח 25 השנה מתקרב והולך, והתחילו לחשוש שהחתול שמטיל ביצי זהב יעוף להם מבין הידיים. הם ניצלו את את הכסף שרכשו (בזכות) כדי לבנות לובי חזק, שגרם לקונגרס להאריך את תקופת ההגנה. מאז שנוסד חוק זכויות היוצרים בארצות הברית הוארכה תקופתו, והוארכה עוד פעם, ועוד פעם, ועוד פעם. ההארכה האחרונה היתה לתקופה של 95 שנה (במקרה של חברה).
מה שיותר מפתיע בהארכות החוזרות הוא הרטרואקטיביות שלהם. זה לא שיצירות חדשות מקבלות ארכה גדולה יותר. כל היצירות הקיימות אף הן מקבלות הגנה לתקופה יותר ארוכה. כיצד הארכת ההגנה על יצירות מ- 1923 תעודד יצירה חדשה? אם למי מקוראי יש תשובה, אשמח לשמוע.
כל מי שנחרד מהרעיון שהיוצר לא יוכל להנות מפירות יצירתו, מוזמן לעשות את התרגיל המחשבתי הבא:
בן כמה Windows 3.11? המערכת יצאה לשוק אי שם בשנות השמונים המאוחרות של המאה הקודמת. לצורך הדיון, בואו נניח 1988. במילים אחרות, היום אנחנו כבר 18 שנה אחרי יציאת המערכת לשוק. כמה הכנסות יש לחברת מיקרוסופט מהמערכת הזו? האם יש פה מישהו שחושב שהם מרוויחים יותר מאשר 1000$ בשנה על מכירות חלונות 3.11? האם באמת מיקרוסופט תסבול קשות אם בעוד 7 שנים אפשר יהיה להעתיק את חלונות 3.11 ללא רשותה, ולעשות בו שינויים?
אפשר לחזור על אותו התרגיל עם שירים, ציורים, וכל יצירה אחרת. ברוב המוחץ של המקרים, אחרי 10 שנים היצירה נתנה את מירב ההכנסות שהיא עומדת לתת. מקרים כמו החיפושיות או אלוויס הם יוצא הדופן, לא הכלל. אם כך, תגידו, אז למה לדיסני כל כך להתעקש על הארכת חוקי זכויות היוצרים? מה יש להם להפסיד? התשובה תמונה ביצירות הנגזרות.
ב- 1923 שיחרר דיסני את הסרט המצוייר הראשון בעולם. הוא נקרא “Steamboat Willie”. הראו בו עכבר שר אגב נהיגת סירת קיטור במעלה הנהר. העכבר הזה גדל לימים להיות “מיקי מאוס”. אם “Steamboat Willie” יהפוך לנחלת הכלל, כל אחד יוכל לצייר ולהפיץ סיפורים שמכילים את מיקי, ולטעון שהעיצוב מבוסס על אותו Willie. לדיסני לא תהיה יכולת למנוע חיקויי מיקי. על שום כך כל המהומה.
אבל אולי זה רק הוגן? למה שלא ירוויחו ממיקי מאוס? כאן נכנס לתמונה השימוש הלקוי במונח “קניין”. אם אנחנו מתייחסים אל זכויות היוצרים כאל קניינו של המחזיק, ברור שיש לו זכות להנות ממנו כל עוד הוא מכניס לו כסף.
אבל לא בקניין מדובר. מדובר פה ברשיון זמני שניתן ליוצר להרוויח כסף מיצירתו, על חשבון זכותו הבסיסית של שאר הציבור להנות מהיצירה. המניעים המקוריים מאחורי חוק זכויות היוצרים היו שיצירה שבה ליוצר מונופול אינה תורמת לחברה, ולכן הושמה הגבלה בזמן על משך המונופול. מרגע שהגבלת הזמן מוארכת לתקופות לא סבירות, היצירה אינה משוחררת, והחברה כולה סובלת.
האם זו באמת תמונה כל כך קשה? למה אני כל כך בטוח שאי שיחרור יצירה לנחלת הכלל יפגע ביצירתיות? בואו נחשוב על זה כך. ללא public domain רחב ועשיר, היצירות הבאות כנראה לא היו באות לעולם:
אף תרגום של התנ”ך, סיפור הפרוורים, אף אחד מסרטי דיסני המצויירים המודרניים (למעט “מלך האריות”), כל ספרות הפנטזיה, ועוד ועוד ועוד. ללא יכולת נטולת סיכון וסיבוך ליצור בלי חשש מתביעות, כל תהליך היצירה מאט ואף עוצר. ראיתם סרט טוב לאחרונה?
אבל אם אתם חושבים שזה רע, חכו עד שאני אכתוב על פטנטים……
שחר