אודות

מפת האתר

דף הבית

טהור P2P - מידע טכני

טהור P2P - ראשי - מידע טכני

FreeHaven אתר הבית של

 

    

פרטים מלאים לגבי FreeHaven ניתן למצוא בפרק פרוייקטים קיימים

FreeHaven הנה מערכת השמה דגש על ההדדיות בין חבריה.
כשמפרסם רוצה להעלות מידע למערכת, הוא צריך למצוא שרת שיסכים לקבל אותו, או לחליפין ליצור שרת בעצמו (פונקציה המובנית באפליקציה).

בעת העלאת מידע למערכת, משתמשת המערכת באלגוריתם הדומה מאוד ל "אלגוריתם החלוקה" של Publius אולם בצורה מעט שונה -  FreeHaven מחלקת את הקובץ עצמו ולא רק את המפתח לפענוחו, ל- n חלקים כאשר כל יחידה של מסמך נקראת בפשטות - "חלק i" (כאשר i הוא אינדקס החלק). החלקים מאוכסנים באופן בו כל חלק המקיים (חלק i אינו שווה לחלק j) נמצא בשרת שונה.

השרתים דינמיים - חלקי הקבצים נעים בין שרת למשנהו מדי פעם. תנועה זו משתנה על פי דירוג האמינות של השרתים המחזיקים בחלקי הקובץ.

בהתאם ל "אלגוריתם החלוקה", נדרשים רק k חלקים של הקובץ בכדי לשחזרו, כאשר k<n .

מספר החלקים להם יחולק הקובץ נקבע על ידי המפרסם כאשר עליו לקחת בחשבון שני פרמטרים עיקריים - חלוקה לחלקים רבים עלולה ליצור מצב בו אם מספר 

לתחילת העמוד

 

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

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

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

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

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

מלבד תאריך תפוגה, מכיל הקובץ מספר מאפיינים ביניהם חותמת זמן אבסולוטית, חתימה דיגיטלית ואת מפתח ה- Hash.

לתחילת העמוד

 

שיחזור מידע

FreeHaven  מאכסן את המידע שלו לפי ה"מפתח הציבורי" של המסמך.

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

כאשר לתחנת היעד מגיעים מספר החלקים הנדרש (k או יותר) האפליקציה יוצרת בשביל הקורא את הקובץ.

לתחילת העמוד

 

מחיקת מידע

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

חילופי מידע 

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

תזוזת חלקי המידע הופכת את המערכת למטרה נעה להבדיל ממטרה נייחת החשופה יותר להתקפות וניסיון פגיעה במידע.

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

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

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

מקבלי פנים 

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

לעמוד  הבאלעמוד  הקודם לתחילת העמוד
לעמוד הבא 6 5 4 3 2 1 לעמוד הקודם