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

הפעלת ה-TLS שייכת לדפדפן

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

כל עיצוב ששובר אותו הוא עיצוב יירוט TLS, עם השלכות משלו על אמון באישורים וניהול מכשירים.

CONNECT הוא מנהרה, לא מטמון

פרוקסי קדמי מפורש מקבל בדרך כלל בקשת HTTP CONNECT ואז מעביר בתים בשני הכיוונים. העברה היא מילת המפתח: הפרוקסי אינו מנתח את השיחה המוצפנת.

curl -sSI -x http://proxy.example:3128 https://example.com/

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

שמרו במטמון את מה שאתם מפעילים, לא את מה שאתם גולשים

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

nginx -T | grep -n "proxy_cache"
curl -sSI https://mirror.example/pkg/index.json | grep -i -E "cache-control|age"

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

מדדו את הפגיעה, לא את הסטופר

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

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

מאמרים קשורים