~~~~~
~~~ HTTPS ~~~
~~~~~
מהו הפרוטוקול ואיך הוא עובד?
~~~~~~~~דבר ראשון, לפני שאנחנו נכנסים לעומק הפרוטוקול, אני יכול להגיד לכם שזה HTTP רגיל רק שהוא רץ על SSH (הסברתי מה זה SSH) למעלה.
אוקי, אז ככה, האקפלורר שלכם מתחיל את התהליך של יצירת ההתחברות בשליחת מן הודעת "שלום" לשרת.
ההודעה הזאת, היא הודעה פשוטה שעוברת דרך HTTPS כמובן, בין שאר המרכיבים של ההודעה הזאת ישנם גם את ההגדרות של סוגי האבטחה וההצפנה השונים, השרת חייב לדעת את זה כדי שיוכל לענות "באותה שפה" ל- CLIENT, אותה אבטחה ואותה הצפנה.
אחרי שה- CLIENT שלח את ההודעה גם השרת שולח הודעה כדי להודיע שהוא "קיבל" את הבקשה.
בשביל שלא יהיו פה זיופים, כשהשרת עונה יש לו קוד אישור כלשהו שרק איתו ה- CLIENT ידע שבאמת השרת שלח.
בעיקרון אני אמור להתחיל לפרט פה איך עובד הקוד הסודי שנשלח, אבל זה אותו דבר כמו המספר הסידורי (sequence number) שיש ב- TCP\IP.
הנה ציטוט מגיליון 7:
********************
מכיוון שה- TCP אמין, הוא חייב לחפות ולגבות קבצים: אבודים, כפולים ולא זמינים.
ע"י הקצאת רצף מספרי (sequence number) לכל ביט (BYTE) שהוא שולח, ודרישת אישור מהצד השני כל פעם מחדש בשעת הקבלה, ה- TCP נהפך לאמין ויכול לערוב למשלוח שהוא יגיע בשלום.
רצף המספרים - כצפוי מכיל 32-BIT, טווח המספרים האפשריים הוא מ: 0 ל: 4,294,967,295.
לכל BYTE ב-TCP יש רצף מספרי, הרצף מופיע בכל פאקט ראשון של קבוצת-מידע (למשל אם אני שולח למישהו קובץ ב- ICQ, אז הפאקט הראשון שישלח - בתוך ה- header שלו יהיה הרצף-המספרי).גם כן בתוך ה- header יש את הרצף-המספרי הצפוי הבא, והוא גם מאשר את קבלת כל המידע שיבוא כאשר זה יהיה כך:
ACK = ACK-ack (כמובן שאנחנו משתמשים ב"=" במונח של הצבה (השמה) ולא של שוויון נתונים).
כלומר, כל נתון יתקבל רק אם הרצף המספרי שלו (שאם שמתם לב הוא גם נקרא ACK) שווה פחות אחד מה- ACK המקורי.
********************
כמה בעיות שצצות תוך כדי שימוש ב- HTTPS:
~~~~~~~~~~~
הבעיה העיקרית שיטה הזאת (של ה- HTTPS) זה כמות הזיכרון החיצוני שהוא לוקח.
לדוגמא, ניקח מחשב ממוצע, 550 MHz - Petium III, מחשב כזה מפענח ומחשב (שליחה או קבלה) ב- 24 מאית השנייה. או במקרה אחר 40 חישובים לשנייה כשכל העסק נמצא על RSA 128 BIT.
זהו הרבה מאוד (!!!) זמן יחסית.
ועוד, קחו בחשבון שישנם עוד תוכנות (אפליקציות) שתופסות מקום בזיכרון החיצוני - דבר שמקטין עוד את
השפעה נוספת שנובעת מאיטיות השרת (עקב הזמן היקר שנלקח מהזיכרון החיצוני) היא הקטנה אוטומטית של כמות האנשים שיוכלו לגשת אל השרת.
אם הנושא הזה מעניין אותכם - ואתם רוצים להיכנס אליו לעומק, מומלץ מאוד הספר:
Understanding Data Communications & Networks
של: William A
הספר מעולה! באמת כדאי לכם לקרוא אותו!
באג מאוד מעניין שקיים מגרסאות 4 ו- 5 של HTTPS של MicroSUX (כמובן!)...
נניח שנכנסת אל אתר שמשתמש ב- HTTPS ונרשמת אליו, קיבלת סיסמה, שם משתמש וכל הבולשיט המחורבן הזה.
עכשיו, האתר ה"חכם" הזה משתמש - COOCKIES, מה קורה?
בפעם הבאה, במקום שתצטרך לכתוב את השם-משתמש והסיסמה עוד פעם אתה אוטומתי מגיע לאזור המוגן שלך, כל זה ע"י ה- COOCKIE כמובן.
מה הבעיה כאן?
הבעיה היא שהאדמין מפגר, הוא עשה שרת שתומך HTTPS, והפסיד את היתרון העיקרי של HTTPS גלל ה- COOCKIE!
עכשיו נסביר למה. ברגע, שיש COOKIE על המחשב שלי ואתר קורא אותו מקובץ COOCKIE במקום לקבל אינפורמציה (DATA) ממני ישירות, הוא שולח את הנתונים של ה- COOCKLE כ- PLAIN TEXT (תרגום: "טקסט פשוט"), מה הכונה? הכוונה שהטקסט מועבר באופן רגיל ללא שום הצפנה ושום בטיח, וכל בנאדם שרוצה ויש לו קצת ידע (כמוני... סתאאם) להסתכל על זה יכול בקלות לגלות כל דבר בין אם זה סיסמה לאתר *** או הסיסמה לאינטרנט שלך... וואלה??? הפסדנו ככה את כל היתרון של HTTPS!
* *
*
ישנם אתרים, שכדי להתגבר על הבעיה של הזיכרון הפנימי במקום להציב שרתי WB רגילים הם שמים PROXY, זה עוזר בזה שאת המרחק בין האתר ל- CLIENT עושה הפרוקסי - ומובן מאליו שזה מקצר את הדרך (זה התפקיד של הפרוקסי).
זהו פחות יותר... על הפרוטוקול הזה!
-----
לא אני כתבתי אם זה מה שחיפשת תהנה;...