מה SSH באמת עושה
בעוד ש-Splync משתמשת ב-HTTPS כדי להגן על הנתיב בין הסמארטפון שלך לשרת שלנו, אנחנו עדיין צריכים להגן על השרת עצמו כדי להבטיח את בטיחות הנתונים של המשתמשים. מפתחי אפליקציות ומנהלי מערכות צריכים דרך לגשת לשרת כדי לתחזק ולעדכן אותו — בצורה מאובטחת. כאן נכנס לתמונה SSH (Secure Shell). זהו פרוטוקול שמאפשר למשתמשים מורשים להיכנס למחשבים מרוחקים בצורה בטוחה, אפילו על פני רשתות לא אמינות. SSH מחליף שיטות ישנות ולא מאובטחות כמו Telnet, ששידר שמות משתמש וסיסמאות בטקסט פשוט.
הרעיון מאחורי "מפתחות"
SSH לא מסתמך על סיסמא רגילה. במקום זאת, הוא משתמש במפתחות קריפטוגרפיים — זוג תואם של מפתח ציבורי ומפתח פרטי. חשבו עליהם כמו מנעול ומפתח שמתאימים רק זה לזה. המפתח הציבורי נמצא על השרת, והמפתח הפרטי נשאר אצל המשתמש. כשאתה מתחבר, השרת מאתגר אותך להוכיח שאתה מחזיק במפתח הפרטי, מבלי לחשוף אותו. זה הופך את זה לכמעט בלתי אפשרי שמישהו שמאזין יתחזה אליך. בעוד שסיסמאות רגילות יכולות להיות ניחשות, דלפות או שימוש חוזר, מפתחות SSH הם מחרוזות קריפטוגרפיות ארוכות ואקראיות — כמעט בלתי ניתנות לניחוש. גם אם מישהו מצליח להאזין לחיבור, כל מה שהוא רואה זה רעש מוצפן. ומכיוון שמפתחות SSH לעולם לא נשלחים ברשת, אין מה לגנוב במהלך השידור.
איך מפתח SSH נראה בפועל
אם מעולם לא ראית מפתח SSH, זה אולי נשמע מופשט — אבל בעצם זה רק בלוק ארוך של טקסט מקודד. מפתח ציבורי הוא בדרך כלל כמה מאות תווים, בעוד שמפתח פרטי יכול להגיע ליותר מאלף. שניהם נשמרים כקבצי טקסט, אך התוכן שלהם נראה כמו רעש אקראי — תערובת של אותיות, מספרים וסמלים. המפתח הציבורי בטוח לשיתוף; זה כמו להניח את המנעול שלך על השרת. המפתח הפרטי, מצד שני, הוא הזהות הדיגיטלית הייחודית שלך ואין לשתף אותו לעולם. הוא נשמר מקומית על המחשב שלך ומשמש רק להוכחה שאתה מי שאתה טוען שאתה — מבלי לחשוף את המפתח עצמו.
מפתח ציבורי ומפתח פרטי
מפתח ציבורי הוא כמו מנעול שאתה מציב על הבית שלך. כל אחד יכול לראות אותו מהמדרכה, כמו המנעול בדלת הכניסה. אבל להסתכל על המנעול לא אומר לאף אחד איך לפתוח אותו. במילים אחרות, כל אחד יכול לראות אותו, אבל רק המפתח הנכון יכול לפתוח אותו. מצד שני, המפתח הפרטי הוא המפתח שפותח את המנעול — ונשאר בטוח איתך. אם מישהו אחר מקבל גישה למפתח הפרטי שלך, הוא יכול להיכנס לבית כאילו הוא אתה. לכן יש לשמור את המפתח הזה בסוד מוחלט.
מנגנון SSH
כל מפתח ציבורי ומפתח פרטי יוצרים זוג ייחודי אחד-לאחד. הם נוצרים יחד בתהליך מתמטי כך שרק המפתח הפרטי הספציפי הזה יכול להתאים למפתח הציבורי התואם שלו. אפשר לחשוב עליהם כמו מנעול ומפתח בהתאמה אישית — שנוצקו יחד, ואין מפתח אחר בעולם שמתאים למנעול זה. גם אם תייצר זוג נוסף באמצעות אותו אלגוריתם (כמו RSA או Ed25519), המספרים בפנים יהיו שונים לחלוטין. המתמטיקה שמקשרת בין השניים היא חד-כיוונית: אפשר להפיק את המפתח הציבורי מהמפתח הפרטי בקלות, אבל זה כמעט בלתי אפשרי להפוך את התהליך ולמצוא את המפתח הפרטי מהציבורי. זו הסיבה שכל זוג מפתחות SSH הוא ייחודי ובטוח.
איך SSH מוכיח מי אתה
כשאתה מתחבר לשרת עם SSH, המפתח הפרטי שלך לעולם לא עוזב את המחשב שלך. במקום זאת, השרת שולח אתגר אקראי — כמו חידה חד פעמית — שרק המפתח הפרטי שלך יכול לפתור. המחשב שלך חותם על האתגר הזה מתמטית, ומייצר תשובה קצרה שהשרת יכול לבדוק באמצעות המפתח הציבורי שלך. אם התשובה מתאימה, השרת יודע שאתה מחזיק במפתח הפרטי הנכון — מבלי לראות אותו. זה הקסם של הקריפטוגרפיה המודרנית: אתה יכול להוכיח את הזהות שלך מבלי לחשוף את הסוד שלך. האימות ב-SSH עובד מכיוון שהמפתח הפרטי שלך מכיל את כל המידע להפקת המפתח הציבורי, אך התהליך ההפוך הוא כמעט בלתי אפשרי.
איך מפתחים משתמשים ב-SSH בפועל
בכל פעם שמפתחים מפרסמים קוד, מעדכנים מסד נתונים או מאתחלים שירות, הם לרוב מתחברים לשרתים המרוחקים שלהם באמצעות SSH. לאחר האימות, הם מקבלים חיבור שורת פקודה מאובטח לשרת. משם, הם יכולים לנהל קבצים, לאתחל שירותים, או לבדוק לוגים — הכל מוצפן מקצה לקצה. במקרה של Splync, SSH הוא הדרך בה אנו מנהלים בבטחה את השרת הענני שלנו. כל פעולה אדמיניסטרטיבית — פרסום עדכונים, בדיקת לוגים, גיבוי נתונים — נעשית דרך חיבורי SSH מוגנים על ידי מפתחות קריפטוגרפיים. אף אחד לא יכול לגשת לשרת ללא המפתח הפרטי הנכון. גם אם מישהו יודע את כתובת ה-IP שלנו, ללא המפתח, הדלת פשוט לא תיפתח.
בקרוב: הצפנה בתוך השרת
SSH מגן על הכניסה לשרת, ו-HTTPS מגן על נתונים במעבר. אבל ברגע שנתונים נכנסים למסד הנתונים, איך נשמור עליהם בטוחים? כאן נכנסים לתמונה hashing והצפנה — שכבת ההגנה הסופית.