SSH: מעטפת מאובטחת
SSH ראשי תיבות של Secure Shell. זה ידוע גם בשם Secure Socket Shell. פרוטוקול רשת קריפטוגרפי בשם Secure Shell (SSH) משמש להפעלה בטוחה של שירותי רשת על פני רשתות לא מאובטחות. ארכיטקטורת שרת לקוח היא הבסיס של יישומי SSH, המקשרים בין מופע לקוח SSH לשרת SSH.
כיורש של Telnet ושל פרוטוקולי מעטפת Unix מרוחקים לא בטוחים כמו Berkeley Remote Shell (rsh) והפרוטוקולים הקשורים ל-rlogin ו-rexec, SSH נוצר עבור מערכות הפעלה דמויות Unix שמשתמשות בתקשורת קוד אימות לא מאובטחת בטקסט רגיל.
הַגדָרָה
אנו עשויים ליישם SSH בכמה דרכים שונות. היישום הפשוט ביותר מצפין נתונים באמצעות צמדי מפתחות ציבוריים-פרטיים שנוצרו אוטומטית בשני הקצוות של ערוץ תקשורת וחיבור לרשת. לאחר מכן, הוא מאמת את המשתמש באמצעות סיסמה. כאשר משתמש יוצר באופן ידני זוג מפתחות ציבורי-פרטי, האימות הושלם כמעט כאשר צמד המפתחות נוצר, מה שמאפשר הפעלה מיידית של הפעלה ללא הנחיית סיסמה.
הסר את ההתקנה של Angular cli
במקרה זה, הבעלים שומר בסוד את המפתח הפרטי המתאים, והמפתח הציבורי מותקן בכל המכונות שחייבות להעניק גישה לבעלים. למרות שהמפתח הפרטי משמש כבסיס לאימות, המפתח לעולם לא נשלח דרך הרשת בעת ביצוע אימות. SSH מאשר שספק המפתח הציבורי מחזיק גם במפתח הפרטי המתאים.
חיבור המפתח הציבורי הלא ידוע עם מפתח פרטי ידוע בכל הגירסאות של SSH הוא חיוני לפני קבלתם כמפתחות ציבוריים לגיטימיים עם מזהים. קבלת מפתח ציבורי מתוקף מבלי לאמת אותו תקבל תוקף לא מהימן כמשתמש לגיטימי.
יצירה
Tatu Ylönen, מדען מחשבים מפינלנד, יצר את SSH לראשונה בשנת 1995. המשך הפיתוח של חבילת הפרוטוקולים התרחש בקבוצות מפתחים רבות, מה שהוביל לאיטרציות יישום שונות. יש הטמעות זמינות עבור כל מערכות ההפעלה הפופולריות, כולל מערכות משובצות. OpenSSH, שיוצרי OpenBSD הפכו לזמינה כתוכנת קוד פתוח בשנת 1999, היא ערימת התוכנה הנפוצה ביותר.
ניהול מפתחות OpenSSH לאימות
רשימת המפתחות הציבוריים המאושרים נשמרת בדרך כלל במערכות דמויות יוניקס בקובץ ~/.ssh/מפתחות מורשים בספריית הבית של המשתמש, שיש לה הרשאות כניסה מרחוק. SSH מכבד את הקובץ הזה רק אם לא ניתן לשנות אותו על ידי אף אחד מלבד הבעלים והשורש. הסיסמה אינה נחוצה עוד כאשר קיימים גם המפתח הציבורי של הקצה המרוחק וגם המפתח הפרטי התואם של הקצה המקומי. אבל אנחנו עשויים להשתמש בביטוי סיסמה כדי לנעול את המפתח הפרטי להגנה הרבה יותר. אנו עשויים גם לחפש את הקוד הסודי במיקומים נפוצים, ונוכל להשתמש באפשרות שורת פקודה כדי לספק את הנתיב המלא שלו (אפשרות -i עבור ssh).
עוד מספקת SSH אימות אוטומטי המבוסס על סיסמה מוצפנת ליצירת מפתחות. התוקף בתרחיש זה עלול להתחזות לצד השרת האמין, לבקש את הסיסמה ולהשיג אותה (מתקפה של אדם באמצע). בצד השרת, אנו יכולים לכבות את אימות הסיסמה.
להשתמש
SSH משתמש בפרדיגמת שרת-לקוח. בדרך כלל, SSH משמש לרישום. זה יכול גם לבצע מנהור של יציאות TCP, להעביר חיבורי X11 ולבצע פקודות במערכת מרוחקת. בדרך כלל, חיבורים לדמון SSH המאפשר חיבורים מרוחקים מתבצעים באמצעות יישום לקוח SSH. שניהם נמצאים לרוב ברוב מערכות ההפעלה העכשוויות, כגון macOS, הפצות לינוקס, OpenBSD, FreeBSD, NetBSD, Solaris ו-OpenVMS. גרסאות מסוימות הן קנייניות, תוכנות חינמיות וקוד פתוח עם דרגות שונות של מורכבות ומקיפות (כגון PuTTY וגרסת OpenSSH הכלולה עם Cygwin ו-OpenSSH). יש לציין, SSH אינו כלול כברירת מחדל בגרסאות Windows עד ל-Windows 10 גרסה 1709.
פונקציונליות דומה של ניהול קבצים (סנכרון, העתקה ומחיקה מרחוק) מוצעת על ידי אפליקציית החלונות החינמית וקוד פתוח WinSCP, המשתמשת ב-PuTTY כחלק אחורי. ללא צורך בהתקנה במחשב הלקוח, WinSCP ו-PuTTY זמינים ארוזים להפעלה ישירות מכונן USB. הפעלת תכונה באפליקציית ההגדרות נדרשת לעתים קרובות כדי להגדיר שרת SSH ב-Windows.
כדי לטפל בבעיות חיבור ולמנוע את סיכוני האבטחה של חשיפה ישירה של מכונה וירטואלית מבוססת ענן לאינטרנט, SSH חיוני במחשוב ענן. ניתן לאפשר חיבור מאובטח דרך האינטרנט באמצעות מחשב וירטואלי במנהרת SSH באמצעות חומת אש. עבור פרוטוקול זה, IANA ייעד את יציאת TCP 22, יציאת UDP 22 ויציאת SCTP 22.
כבר בשנת 2001, IANA סיווגה את ברירת המחדל של יציאת TCP 22 עבור שרתי SSH כאחת הפורטים המוכרים. ניתן להשתמש בפרוטוקול שכבת התחבורה SCTP מכוונת החיבור להפעלת SSH במקום TCP.
Powershell הערות רב שורות
התקדמות היסטורית
איטרציה 1
תקיפה של הרחת סיסמה על הרשת של המוסד שלו נתנה השראה לטאטו ילונן, חוקר באוניברסיטת הלסינקי לטכנולוגיה בפינלנד יצר את האיטרציה הראשונית של הפרוטוקול (הידוע כיום כ-SSH-1) ב-1995.
SSH תוכנן לקחת את התפקיד של פרוטוקולים קודמים, כולל rlogin, TELNET, FTP ו-rsh, שחסרו הבטחות אימות וסודיות חזקות. Ylönen הפך את האפליקציה שלו לזמינה בתור תוכנה חופשית. ביולי 1995, המכשיר הפך לאהוב במהירות. עד סוף 1995, היו 20,000 משתמשי SSH שהתפרסו על פני 50 מדינות שונות.
כדי לקדם ולקדם את SSH, הקימה Ylönen את SSH Communications Security בדצמבר 1995. רכיבי תוכנה חופשיים שונים, כולל GNU libgmp, נוצלו במהדורה הראשונה של תוכנית SSH, אך איטרציות מאוחרות יותר שסופקו על ידי SSH Communications Security צמחו לתוכנה קניינית יותר ויותר. לפי הערכות, עד שנת 2000 היו 2 מיליון משתמשים.
איטרציה 2
ה-Internet Engineering Task Force (IETF) ייעד את קבוצת העבודה שאחראית על יצירת פרוטוקול SSH גרסה 2 בתור 'Secsh' בתיעוד הרשמי שלו.
SSH-2, איטרציית פרוטוקול משופרת, הפך לסטנדרט בשנת 2006. SSH-1 אינו תואם לגרסה זו. SSH-2 מציע שדרוגי פונקציונליות ואבטחה על פני SSH-1. לדוגמה, החלפת מפתחות של Diffie-Hellman ואימות תקינות חזק באמצעות קודי אימות הודעות מספקים אבטחה גבוהה יותר. היכולת להפעיל מספר בלתי מוגבל של הפעלות מעטפת על חיבור SSH בודד היא אחת מהיכולות החדשות של SSH-2. מכיוון ש-SSH-2 מתקדם יותר ובשימוש נרחב יותר מ-SSH-1, יישומים מסוימים, כגון libssh (v0.8.0+), Lsh ו-Dropbear, תומכים רק ב-SSH-2.
איטרציה 1.99
RFC 4253 דרש ששרת SSH התומך ב-2.0, כמו גם בגרסאות קודמות, יציין את גרסת הפרוטוקול שלו כ-1.99 בינואר 2006, הרבה אחרי שגרסה 2.1 פותחה. מספר גרסה זה משמש לציון תאימות לאחור במקום לייצג גרסת תוכנה קודמת.
OSSH ו-OpenSSH
מאז שהגרסה האחרונה של תוכנית SSH המקורית, גרסה 1.2.12, הופצה ברישיון קוד פתוח ב-1999, מפתחים עובדים על גרסת תוכנה חופשית. זה שימש כבסיס לתוכנית OSSH של Björn Grönvall. זמן קצר לאחר מכן, צוות OpenBSD שיבט את עבודתו של Grönvall כדי לייצר OpenSSH, שנכלל ב-OpenBSD Release 2.6. הם יצרו ענף 'ניידות' מגרסה זו כדי להעביר את OpenSSH למערכות הפעלה שונות.
מימוש ה-SSH הנפוץ ביותר נכון לשנת 2005 היה OpenSSH, גרסת ברירת המחדל בהפצות רבות של מערכות הפעלה. לאחר הסרת תמיכת SSH-1 מבסיס הקוד במהדורת OpenSSH 7.6, OpenSSH עדיין מתעדכן ותומך בפרוטוקול SSH-2. בינתיים, OSSH כבר לא רלוונטי.
שימושים
המשתמש 'josh' 'SSHed' מהמחשב המקומי 'foo fighter' למכונה הרחוקה 'tengwar' כדי להריץ xeyes כדוגמה למנהור של תוכנית X11 דרך SSH. אנשים משתמשים ב-PuTTY של לקוח SSH של Windows כדי לגשת ל-OpenWrt.
SSH הוא פרוטוקול שעובד עם מערכות רבות, כולל Microsoft Windows ורוב גרסאות Unix (Linux, BSDs, כולל macOS של אפל ו-Solaris). האפליקציות הבאות יכולות להזדקק ליכולות בלעדיות או תואמות ללקוחות או לשרתים מסוימים של SSH. לדוגמה, נכון לעכשיו זה אפשרי רק להשתמש בשרת OpenSSH וביישום הלקוח של פרוטוקול SSH כדי לבנות VPN.
- כדי לגשת למעטפת במארח מרוחק (החלפת Telnet ו-rlogin)
- לביצוע פקודה בודדת על מארח מרוחק (החלפת rsh)
- להגדרת התחברות אוטומטית (ללא סיסמה) של שרת מרוחק (לדוגמה, באמצעות OpenSSH)
- בתור VPN מוצפן פונקציונלי לחלוטין, זכור שרק הלקוח והשרת של OpenSSH תומכים ביכולת זו.
- להעברת X ממארח מרוחק (אפשר דרך מארחי ביניים מרובים)
- לשימוש בלקוחות SSH התומכים בפרוטוקול SOCKS לגלישה באינטרנט באמצעות חיבור פרוקסי מוצפן.
- להרכבה בטוחה של ספריית שרת מרוחק כמערכת קבצים על מחשב מקומי המשתמש ב-SSHFS.
- באמצעות אחת או יותר מהטכנולוגיות שהוזכרו לעיל לניטור וניהול אוטומטי של שרתים מרחוק.
- לפיתוח מכשירים ניידים או משובצים תואמי SSH.
- כדי להגן על מנגנוני העברת קבצים.
שיטות העברת קבצים
מספר מערכות העברת קבצים משתמשות בפרוטוקולי Secure Shell כגון
10 מיליון
- מעל SSH, Secure Copy (SCP) פותח מפרוטוקול RCP.
- rsync שאמור להיות יעיל יותר מ-SCP מופעל לרוב דרך חיבור SSH.
- חלופה בטוחה ל-FTP היא פרוטוקול העברת קבצים SSH (SFTP) (לא להתבלבל עם FTP על SSH או FTPS)
- FISH, או קבצים מועברים על פני פרוטוקול מעטפת, הוצג בשנת 1998 ופותח מ-SSH על פני הוראות מעטפת Unix.
- Aspera, המכונה גם פרוטוקול מהיר ומאובטח (FASP), משתמשת ב-SSH עבור פקודה ועבור העברת נתונים, יציאות UDP.
ארכיטקטורה
שלושה מרכיבים נפרדים מרכיבים את הארכיטקטורה השכבתית של פרוטוקול SSH:
- פרוטוקול בקרת השידור (TCP) של TCP/IP משמש בדרך כלל על ידי שכבת התעבורה (RFC 4253), כאשר יציאה מספר 22 מוגדרת בצד כיציאת האזנה לשרת. שכבה זו מיישמת הצפנה, דחיסה, בדיקת תקינות, החלפת מפתח ראשונית ואימות שרת. למרות שכל מימוש עשוי לאפשר יותר, הוא חושף לשכבה הגבוהה ממשק לשידור וקבלה של מנות טקסט רגיל של עד 32,768 בתים כל אחת. בדרך כלל, לאחר שינוע של 1 ג'יגה-בייט של נתונים או לאחר שחלפה שעה, המוקדם מביניהם, שכבת ההובלה מארגנת החלפה מחדש של מפתחות.
- אימות לקוח מטופל באמצעות שכבת אימות המשתמש (RFC 4252), המציעה גם מספר טכניקות אימות. אימות מונחה לקוח פירושו שלקוח ה-SSH, לא השרת, עשוי לבקש מהמשתמש סיסמה. רק בקשות הלקוח לאימות מקבלות תגובה מהשרת. לעתים קרובות נעשה שימוש בטכניקות אימות המשתמש הבאות:
סיסמה , טכניקת אימות סיסמה פשוטה הכוללת את היכולת לשנות את הסיסמה. לא כל התוכנות משתמשות בטכניקה זו. - בדרך כלל תומך לפחות בצמדי מפתחות DSA, ECDSA או RSA, ה מפתח ציבורי היא טכניקה לאימות מבוסס מפתח ציבורי. יישומים אחרים מקבלים בנוסף תעודות X.509.
- פונקציונליות כניסה יחידה עבור הפעלות SSH מסופקת באמצעות GSSAPI טכניקות אימות, המציעות מערכת הניתנת להרחבה לטיפול באימות SSH באמצעות מנגנונים חיצוניים כמו Kerberos 5 או NTLM. למרות ש-OpenSSH יש מימוש GSSAPI פונקציונלי, יישומי SSH מסחריים משלבים לרוב טכניקות אלו לשימוש בחברות.
- הרעיון של ערוצים המגדירים את שירותי ה-SSH המוצעים מוגדר על ידי שכבת החיבור (RFC 4254). אנו יכולים להרבות חיבורי SSH מרובים מחיבור יחיד. שניהם מעבירים נתונים לשני הכיוונים. בקשות ערוץ משדרות נתונים מחוץ לפס ספציפיים לערוץ נתון, כגון קוד יציאה של תהליך בצד השרת או שינוי גודל של חלון מסוף. בנוסף, באמצעות גודל חלון הקבלה, כל ערוץ שולט בזרימתו. לקוח SSH מגיש בקשה גלובלית להעביר יציאה בצד השרת. סוגי ערוצים נפוצים כוללים:
- מעטפת עבור SFTP, exec וקונכיות מסוף (כולל העברות SCP)
- Direct-TCPIP לחיבורים מועברים מהלקוח לשרת.
- חיבורים המועברים בין שרת ללקוח באמצעות forwarded-tcpip
- כדי לאשר את הלגיטימיות של המארח, רשומת SSHFP DNS (RFC 4255) מציעה למפתח המארח הציבורי טביעות אצבע של מפתח המארח.
בשל העיצוב הפתוח שלו, אנו עשויים להשתמש ב-SSH עבור מגוון רחב של משימות בנוסף לאבטחת קונכיות, מה שמעניק לו צדדיות רבה.
פגיעויות
SSH-1
עקב הגנה לא מספקת על שלמות הנתונים שסיפק CRC-32 בגרסת פרוטוקול זו, זוהתה פגיעות ב-SSH 1.5 בשנת 1998 שאפשרה הכנסת חומר לא מורשית לזרם SSH מוצפן. ברוב היישומים, הם הוסיפו תיקון המכונה SSH Compensation Attack Detector. כמה מהיישומים המתוקנים הללו כללו פגם חדש בהצפת מספרים שלמים, המאפשר לתוקפים להריץ קוד שרירותי עם היכולות של שורש או דמון SSH.
פגם המאפשר לתוקפים לשנות את הבלוק האחרון של הפעלה מוצפנת IDEA נמצא בינואר 2001. פגם נוסף שאיפשר לשרת נוכל להעביר כניסת לקוח לשרת אחר נמצא באותו חודש.
בשל הפגיעויות הטבועות בו, SSH-1 נחשב בדרך כלל כמי שאינו מעודכן ויש להימנע ממנו על ידי הסרה מפורשת של SSH-1 fallback. רוב השרתים והלקוחות הנוכחיים תומכים ב-SSH-2.
שחזור טקסט רגיל עבור CBC
פגיעות תיאורטית שאפשרה שליפה של עד 32 סיביות של טקסט רגיל מבלוק של טקסט צופן המוצפן בשיטת ההצפנה הסטנדרטית של הזמן, CBC, התגלתה בכל הגרסאות של SSH בנובמבר 2008. התיקון הפשוט ביותר הוא לעבור ל-CTR, counter מצב, במקום מצב CBC, מה שהופך את SSH לחסין מפני ההתקפה.
NSA חשוד בפענוח
שחרורו של אדוארד סנודן של מסמכים רגישים לדר שפיגל ב-28 בדצמבר 2014, מרמז על כך שהסוכנות לביטחון לאומי תוכל לפענח תקשורת SSH מסויימת.