Local List Mode

כשלקוחות בוחרים להשתמש בגרסה 5 של הגלישה הבטוחה של Google במצב הזה, התנהגות הלקוח דומה ל-API של עדכון גרסה 4, רק שהיא משתמשת בממשק API משופר של גרסה 5. הלקוחות ישמרו במסד הנתונים המקומי שלהם קבוצה של רשימות איומים בפורמט של קידומות גיבוב SHA256 של ביטויי כתובות URL של סיומת מארח או קידומת נתיב. בכל פעם שהלקוח רוצה לבדוק כתובת URL מסוימת, מתבצעת בדיקה באמצעות רשימת האיומים המקומית. אם יש התאמה, הלקוח מתחבר לשרת כדי להמשיך בבדיקה.

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

הליך בדיקת כתובות URL ברשימת האיומים המקומית

התהליך הזה מתבצע גם כשהלקוח משתמש בתהליך Real-Time Mode והוא מחזיר את הערך UNSURE.

הפרוצדורה הזו מקבלת כתובת URL אחת u ומחזירה SAFE או UNSAFE.

  1. expressions היא רשימה של ביטויי סיומת או תחילית שנוצרו על ידי כתובת ה-URL‏ u.
  2. expressionHashes היא רשימה שבה כל רכיב הוא גיבוב SHA256 של כל ביטוי ב-expressions.
  3. expressionHashPrefixes היא רשימה שבה הרכיבים הם 4 הבייטים הראשונים של כל גיבוב ב-expressionHashes.
  4. לכל expressionHashPrefix מתוך expressionHashPrefixes:
    1. מחפשים את expressionHashPrefix במטמון המקומי.
    2. אם נמצאה רשומה במטמון:
      1. הפונקציה בודקת אם השעה הנוכחית גדולה משעת התפוגה.
      2. אם הוא גדול יותר:
        1. מסירים את הרשומה שנמצאה במטמון מהמטמון המקומי.
        2. ממשיכים עם הלולאה.
      3. אם הוא לא גדול יותר:
        1. הסרת expressionHashPrefix הספציפי הזה מexpressionHashPrefixes.
        2. בודקים אם הגיבוב המלא התואם ב-expressionHashes נמצא ברשומה שבמטמון.
        3. אם נמצא, מחזירה UNSAFE.
        4. אם לא נמצאה, ממשיכים בלולאה.
    3. אם לא נמצאה רשומה במטמון, ממשיכים בלולאה.
  5. לכל expressionHashPrefix מתוך expressionHashPrefixes:
    1. מחפשים את expressionHashPrefix במסד הנתונים של רשימת האיומים המקומיים.
    2. אם אי אפשר למצוא את expressionHashPrefix במסד הנתונים של רשימת האיומים המקומיים, צריך להסיר אותו מ-expressionHashPrefixes.
  6. שולחים את expressionHashPrefixes לשרת של הגלישה הבטוחה של Google בגרסה 5 באמצעות RPC SearchHashes או שיטת REST‏ hashes.search. אם אירעה שגיאה (כולל שגיאות רשת, שגיאות HTTP וכו'), מחזירים SAFE. אחרת, התגובה היא response שהתקבלה משרת ה-SB, שהיא רשימה של גיבובים מלאים יחד עם מידע עזר שמזהה את אופי האיום (הנדסה חברתית, תוכנות זדוניות וכו'), וגם את זמן התפוגה של המטמון expiration.
  7. לכל fullHash מתוך response:
    1. הוספה של fullHash למטמון המקומי, יחד עם expiration.
  8. לכל fullHash מתוך response:
    1. isFound היא התוצאה של חיפוש fullHash ב-expressionHashes.
    2. אם הערך של isFound הוא False, ממשיכים בלולאה.
    3. אם isFound הוא True, הפונקציה מחזירה את הערך UNSAFE.
  9. החזרה SAFE.