שוחררה rsyncrypto גרסה 0.16

זהו, אחרי מעל שלושה חודשים של פיתוח, ותוך הפגנת המון סבלנות מצד החברה שלי, הצלחתי לשחרר אתמול את rsyncrypto גרסה 0.16.

כל מי שלא מעורה, rsyncrypto הינה תוכנה שמצפינה קבצים. היא משמשת כחלק ממנגנון הגיבויים של לינגנו. למי שבאמת לא מעורה, לינגנו היא החברה שהקמתי.

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

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

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

לדבר הזה יש חסרונות כאשר מדובר בשירות כמו מנגנון הגיבויים של לינגנו, לדוגמא, גם אם הקבצים עצמם לא קריאים. תחשבו על משתמש בשירות שהוא עורך דין. גם אם לא ניתן לקרוא את המסמכים שהוא מגבה, זה שמישהו יכול לראות שיש לו מגירה בשם “Documents”, בתוכה מגירה בשם “Clients”, בתוכה מגירה בשם “IBM”, ובתוכה מגירה בשם “Microsoft merger agreement.doc” (דוגמא היפוטתית לצורך ההדגמה) יכול לעשות נזק רב.

גרסה 0.16 מצפינה את שמות הקבצים. אני חושב שהמשפט הזה, כשלעצמו, לא מדוייק. מה שבפועל עושים זה מגרילים רצף אקראי של תווים, ומקצים אותו לקובץ שמצפינים. מה שמצפינים זה את הרשימה של המיפויים – קובץ X נקרא עכשיו Y.

למעשה, החל מגרסה זו אני מרגיש ש-rsyncrypto מתאים לשימוש לקהל הרחב. עד עכשיו הלקוחות של מנגנון הגיבוי היו לקוחות של לינגנו ממילא, שהסברתי להם את המגבלות ו”לקחו את הסיכון”. עם השקת הגרסה הזו, אני מרגיש שהמוצר בשל מספיק לשימוש של כולם. יש עוד בדרך שני שיפורים משמעותיים ליכולות של rsyncrpto, אבל הם לא חשובים כמו השינוי הזה. במובנים מסויימים מדובר פה בגרסה הראשונה של המוצר.

הקישור למעלה וברשימות. כולכם מוזמנים להוריד ולחוות דעה.

שחר

Bear