02-01-2007, 19:36
|
מנהל פורומי "תכנות ובניית אתרים" ו"חומרה ורשתות"
|
|
חבר מתאריך: 25.10.01
הודעות: 42,775
|
|
בראש ובראשונה - אם מיישמים את זה לבד - צריך שהתקשורת בין הלקוח לשרת תהיה מוצפנת (SSL) במהלך שליחת הטופס. כדי שלא תהיינה הודעות שגיאה על אי-אבטחה בדרך, הנ"ל גורר אוטומטית צורך ברכישת Certificate מחברה מוכרת, כגון VeriSign. מדובר בתשלום שנתי של כ 100 דולר (אם אני זוכר נכון...).
משם - יש שתי דרכים - או ששומרים את הנתונים על השרת, בתוך מסד נתונים (ההצפנה חסרת משמעות בדרך כלל - אסביר בהמשך למה) - ואז בעל החנות ניגש לאתר דרך ממשק HTTP מוצפן גם הוא (SSL כאמור), וקורא את הנתונים (ובעדיפות - מוחק אותם לאחר מכן...) ומבצע סליקה ידנית - או שמעבירים אותם אל מקום אחר בצורה מאובטחת (כי אחרת אפשר לקרוא את המידע בדרך) - למשל דרך אי-מייל, כאשר פתיחת ההצפנה מתרחשת במחשב הפותח. הבעייה היא שוב, שאם פרצו לשרת, זה לא יעזור, כי המפתח שמצפין הוא אותו המפתח שגם יפתח (בדרך כלל - על כך - גם בהמשך...)
הנקודה שאני הכי מנסה להעביר כאן - היא - שלא משנה באיזו הצפנה בעולם משתמשים - אם משיגים גישה לשרת - המידע לרוב יהפוך לנגיש לחלוטין. המקרה היחיד שבו הצפנה כן תועיל הוא לדעתי במקרה הבא:
לעתים הגישה שפורץ משיג לאתר היא גישה ברמת קריאה בלבד - כלומר - אי יכולת לשנות את הקובץ שמקבל את פרטי האשראי, אפילו שיש יכולת לקרוא אותו (מה ההבדל? אם יש גישת כתיבה, הפורץ יכול פשוט לשנות את הסקריפט ככה שהוא ישלח לו את הפרטים בלי להצפין כלל...) במקרה המסויים הזה - אפשר להשתמש בהצפנת Public Key - ולהצפין באמצעות המפתח הציבורי של בעלי האתר, כאשר המפתח הפרטי נשאר במקום בטוח (לדוגמא - המחשב בבית). במקרה המסויים הזה - רק בעלי המפתח הפרטי (שאינו כלל על השרת) - יוכלו לפענח את המידע המוצפן, אפילו אם אנשים אחרים הצליחו לקרוא מידע מהשרת - הוא יהיה די חסר ערך עבורם.
לסיכום - אבטחת השרת (ולא רק הסקריפטים) - היא הנקודה הקריטית ביותר. הנושא לא פשוט, והרבה מאוד נכשלים בו - בייחוד בישראל [מה הפלא, המדינה היחידה בעולם שרוב האתרים בה מבוססים תשתיות של מיקרוסופט? ]
זה ממש על רגל אחת...
|