האם SIP משתמש ב- TLS
SIP TLS
סיכום:
1. FreeSwitch דורש את הסוכן.קובץ PEM עם ההרשאות הנכונות לפעול כשרת TLS.
2. אבטחת שכבת תובלה (TLS) היא פרוטוקול המשמש להגנה על הודעות SIP מיירוט.
3. TLS הוא התפתחות של פרוטוקול ה- SSL הקודם המשמש להצפנת אינטרנט.
4. תעודות וקריפטוגרפיה א -סימטרית הם מרכיבי מפתח של TLS.
5. תעודות משמשות לאימות ישויות, ורשויות האישורים מאמתות את האותנטיות שלהן.
6. קריפטוגרפיה סימטרית ואסימטרית משמשים להצפנת נתונים ולפענוח.
7. TLS משתמשת בקריפטוגרפיה סימטרית לצורך אימות וקריפטוגרפיה א -סימטרית להצפנת נתונים בתפזורת.
8. ניתן להשתמש ב- TLS כדי לבסס באופן מאובטח שיחות SIP דרך האינטרנט הלא מאובטח.
9. Freeswitch תומך איתות מוצפן (SIPS) עם תעודות חתומות ושמע/מדיה מוצפנת (SRTP).
10. FreeSwitch מאפשר תצורה של היציאה עבור SIPS בפרופיל ה- SIP.
שאלות:
1. איזה קובץ דורש FreesWitch כדי לפעול כשרת TLS?
תשובה: FreeSwitch דורש את הסוכן.קובץ PEM.
2. מדוע חשוב לקבל את ההרשאות הנכונות לסוכן.PEM?
תשובה: הרשאות שגויות יכולות למנוע מהמאזין ל- TLS לתפקד כראוי.
3. למה משתמשים ב- TLS ב- SIP?
תשובה: TLS משמש להגנה על הודעות SIP מיירוט.
4. מה ההבדל בין TLS ל- SSL?
תשובה: TLS היא התפתחות של SSL ומשמשת הן לפרוטוקולים באינטרנט והן לפרוטוקולים בזמן אמת כמו SIP.
5. מהן תעודות המשמשות ב- TLS?
תשובה: תעודות משמשות לאימות ישויות.
6. מה המטרה של רשויות התעודה?
תשובה: רשויות אישור מאמתות את האותנטיות של תעודות.
7. מהם שני סוגי הקריפטוגרפיה המשמשים ב- TLS?
תשובה: קריפטוגרפיה סימטרית ואסימטרית.
8. איך פועלת קריפטוגרפיה סימטרית?
תשובה: הנתונים מוצפנים ומפענחים באמצעות אותו מפתח.
9. איך פועלת קריפטוגרפיה א -סימטרית?
תשובה: הנתונים מוצפנים ומפענחים באמצעות מפתח ציבורי ומפתח פרטי.
10. למה TLS משתמשת בקריפטוגרפיה סימטרית?
תשובה: TLS משתמשת בקריפטוגרפיה סימטרית לאימות.
11. למה TLS משתמשת בקריפטוגרפיה א -סימטרית?
תשובה: TLS משתמשת בקריפטוגרפיה א -סימטרית להצפנת נתונים בתפזורת.
12. האם ניתן להשתמש ב- TLS כדי ליצור שיחות SIP מאובטחות דרך האינטרנט הלא מאובטח?
תשובה: כן, ניתן להשתמש ב- TLS לשיחות SIP מאובטחות דרך האינטרנט הלא מאובטח.
13. מה תומך Freeswitch מבחינת איתות מוצפן?
תשובה: Freeswitch תומך איתות מוצפן המכונה SIPS.
14. מהו יציאת ברירת המחדל עבור SIP?
תשובה: יציאת ברירת המחדל עבור SIPS היא יציאת TCP 5061.
15. מה ניתן להגדיר בפרופיל ה- SIP ב- FreesWitch?
תשובה: ניתן להגדיר את יציאת ה- SIPs בפרופיל ה- SIP ב- FreeSwitch.
SIP TLS
FreeSwitch דורש רק קובץ אחד למשחק כשרת TLS וזה הסוכן.קובץ PEM. זה מכיל את האישור והמפתח בו הוא ישתמש להאזנה. שימו לב שזה חשוב ביותר שהסוכן שלכם.PEM (ובאופן אופציונלי CACERT.PEM) יש הרשאות קריאה למשתמש FreesWitch יפעלו כ-. זה אומר שאם אתה משתמש -u freeswitch אתה רוצה “Chmod 640 Agent.PEM CACERT.Pem “ו-” Chown Root.סוכן Freeswitch.PEM CACERT.pem “. הרשאות שגויות לא יאפשרו למאזין TLS להסתובב כראוי. ב- VARS שלך.XML:
הבנת אבטחת שכבת תחבורה (TLS)
במהלך כמה מאמרי בבלוג i’ve הזכיר כמה מהיבטי האבטחה של SIP. בהוכחת זאת עם אימות SIP דיברתי על השימוש בהודעות תגובה וכותרות אימות. אבטחה מסוג זה מועברת ברמת הפרוטוקול. במילים אחרות, SIP לקוחות ושרתים מחליפים הודעות האוכפות אבטחה ברמת הזהות. כמובן, מכיוון ש- SIP עצמו הוא פרוטוקול מבוסס טקסט אנו זקוקים למשהו שמגן על ההודעות ועל התוכן שלהם מפני עיניים סקרניות. להיכנס אבטחת שכבת הובלה ((TLS).
TLS הוא התפתחות של פרוטוקול מוקדם יותר שנקרא שכבת שקע מאובטחת ((SSL). SSL פותח לפני מספר שנים על ידי Netscape (זכור את Netscape?) ושימש להצפנת נתונים שנשלחו בין דפדפן אינטרנט לשרת אינטרנט. ידעת שאתה משתמש ב- SSL כאשר שורת הכתובת של הדפדפן שלך מכילה “https” ולא “http.” חלק מהדפדפנים היו מציגים גם סמל נעילה כאשר SSL היה בשימוש.
כמו רוב הפרוטוקולים האחרים המשמשים את SIP, TLS נשלטת על ידי כוח המשימה להנדסת אינטרנט ((IETF). בהתחלה, TLS ו- SSL weren’לא כל כך שונה זה מזה. עם זאת, מאז ההגדרה המקורית שלה בשנת 1999, TLS המשיכה להתפתח לפרוטוקול תחבורה מאובטח ביותר עבור פרוטוקולים באינטרנט וגם בזמן אמת כמו SIP.
בבסיס ה- TLS הם תעודות והמושגים של סימטרי וכן קריפטוגרפיה א -סימטרית. יכולתי לכתוב אלפי מילים על השלושה האלה, אבל אתה יכול ללמוד מספיק כדי להיות מסוכן רק בכמה פסקאות.
ראשית, תעודה היא סוג של מזהה דיגיטלי בו ישות משתמשת כדי לזהות את עצמה. תחשוב על זה כנהג’S רישיון לרכיבי IP. עם זאת, כדי למנוע מאנשים מגעילים לזייף את הנהג’רישיונות S, רשויות אישורים ((CA) קיימים המשמשים לאימות האותנטיות של האישור. יש CAS פרטי שמפעל פועל. ישנם גם CAS ציבוריים הזמינים דרך האינטרנט. Verisign הוא דוגמה ל Ca ציבורי ידוע.
הבא מגיע קריפטוגרפיה סימטרית ואסימטרית. שניהם קשורים לאופן בו הנתונים מוצפנים ולא מוצפנים. במקרה של קריפטוגרפיה סימטרית, הנתונים מוצפנים עם מפתח. זה’s גם לא מוצפן עם אותו מפתח. לכן, אם לשני ישויות שונות יש את המפתח הזה הם יכולים לשלוח נתונים מוצפנים קדימה ואחורה ואף אחד בלי המפתח הזה לא יבין את מה שהם אומרים. חוזק הקריפטוגרפיה הסימטרית הוא שהוא מהיר ומשתמש בכמות מינימלית של כוח עיבוד. החולשה היא שאתה זקוק למנגנון מאובטח כדי להחליף את המפתח.
הנתונים מוצפנים גם בקריפטוגרפיה א -סימטרית, אך במקרה זה ישנם שני מפתחות – המפתח הציבורי והפרטי. המפתח הציבורי כלול בדרך כלל בתעודת ישות IP ולכל מי שיש לו תעודה יהיה המפתח הציבורי. המפתח הפרטי נשמר בסוד ולעולם לא מתגלה לאף אחד. שני מפתחות אלה עובדים יחד כדי להצפין ולפענוח נתונים שנשלחו על חיבור IP.
נתונים המוצפנים עם המפתח הציבורי יכולים להיות לא מוצפנים רק עם מפתח פרטי משויך. נתונים המוצפנים עם המפתח הפרטי יכולים להיות לא מוצפנים רק עם המפתח הציבורי התואם. צורה זו של הצפנה ידועה בשם קריפטוגרפיה של מפתח ציבורי. זה דורש יותר כוח עיבוד מאשר קריפטוגרפיה סימטרית, אך זה יוצר קישור נתונים מאובטח שרק הלקוח והשרת יכולים לפענח.
כתבתי ש- TLS משתמשת בקריפטוגרפיה סימטרית וגם אסימטרית. הוא משתמש בסימטרי לצורך אימות ואסימטרי לצורך הצפנת נתוני התפזורת. במקרה שלנו, נתונים בתפזורת יהיו הודעות ותגובות ה- SIP. שים לב כי נתונים אלה אינם כוללים את זרימת המדיה בפועל כמו G.711 או g.729. הנתונים מוצפנים באמצעות מאבטח פרוטוקול בזמן אמת ((SRTP) – בלוג ליום אחר.
אם אתה עדיין קורא אני מוחא כפיים לעקשנות שלך. זה לא דברים לא קלים להבין. זכור את הדברים הבאים, ואתה צריך להיות בסדר. תעודות משמשות לאימות האותנטיות של לקוחות ושרתים. קיימות רשויות תעודות כדי לוודא כי אישורים אינם מזויפים. מפתחות ציבוריים ופרטיים משמשים להצפנת ההודעות המוחלפות בין גורמי SIP. המשמעות היא שעם TLS אתה יכול להשתמש בבטחה באינטרנט הלא מאובטח כדי ליצור שיחות SIP מאובטחות. גם אם הודעות ה- SIP שלך יורטות, הן ניצחו’לא לעשות מישהו טוב מכיוון שהם לא יוכלו להבין מה נאמר.
SIP TLS
Freeswitch תומך בשני איתות מוצפן המכונה SIP. המוסכמה האופיינית היא להיות ערוץ בקרת ה- SIP הלא מוצפן ביציאת UDP 5060 (אם כי התקנים מאפשרים גם להשתמש ביציאת TCP 5060), וערוץ בקרת SIP מוצפן SSL או TLS המכונה SIPs ביציאת TCP 5061 . האיורים שלהלן מתארים את SIP כ- PORT 5060, ולוגמים כמי שנמצאים בנמל 5061 וביציאה (x). FreeSwitch מאפשר לך להגדיר יציאה זו בפרופיל SIP.
נתוני ה- RTP משתמשים ב- UDP, אך היציאה ש- RTP משתמש בה היא דינאמית בכך שהיא מנהלת משא ומתן בערוץ בקרת ה- SIP. ניתן להגדיר FreeSwitch להשתמש בטווח יציאות ספציפי לזרמי ה- RTP. בסעיף 1 בדף זה נעבור על האנטומיה של חיבור SIP ותצורות אפשריות, כך שתוכל לבחור איזו תצורה תתאים בצורה הטובה ביותר לתרחיש שלך ולהגדיר את מערכת FreeSwitch שלך בהתאם.
אנטומיה של חיבור SIP
ראשית, בואו נסקור את האנטומיה של חיבור SIP על מנת להפיג כל בלבול שעלול להתעורר מתוך ההנחה שהצפנה מרמזת על כך שזרמי השמע (או RTP) מוצפנים.
באיור 1 תציין כי אכן ישנם שלושה חיבורים נפרדים, אחד TCP לבקרה, והשניים האחרים הם UDP להעברת זרמי השמע אל המתג וממנו. ערוץ הבקרה מקל על מספר יכולות, אך ביחס להצפנה אלה שאנו מודאגים מהן הם בעיקר ספרות DTMF שחויגו במהלך השיחה, כמו סיכת בנק, או קוד גישה אחר שהוא אישי, והכי חשוב, מידע פרטי. עם התרחיש המתואר באיור 1, כל אחד ברשת עשוי לרחרח ולפענח נתונים יקרי ערך זה.
אנטומיה של חיבור SIPS
התשובה לבעיה זו מתוארת באיור 2 וכדי להצפין את ערוץ ה- SIP באמצעות עטיפת SSL או TLS כך שמישהו מרחרח מנות על החוט לא יכול לפענח את הנתונים בערוץ הבקרה. תציין כי באיור 2 אנו מתארים זאת כמו ביציאה 5061, אך עם FreesWitch אתה יכול למעשה להגדיר את זה להיות בכל יציאה מסוימת שתרצה. תרחיש זה כאן עדיין משאיר את המנות לנתוני השמע בברור. מישהו שרחרח את המנות יוכל לשחזר את השיחה הנשמעת שלך ול”אזין “בלי הרבה קושי.
* הערה: טלפוני IP עשויים לפרסם שהם תומכים בהצפנה, אך יתכן שתרצה לבדוק את המפרט כדי לאמת שהם תומכים הן ב- SSL והן ב- TLS אישורים חתומים.
אנטומיה של חיבור SIPS ו- SRTP
באיור 3 תציין כי לא רק שערוץ הבקרה מוצפן, אלא שזרמי ה- RTP מוצפנים ונשלחים גם כ- SRTP. בדרך זו, ורק בדרך זו, היא כל השיחה שלך בטוחה באופן סביר מציתנים. זה חשוב גם מכיוון שניתן לשלוח גם את ספרות DTMF גם בנתוני ה- RTP (פנימה). קיום SIPs ו- SRTP הצפנה זו האפשרות הטובה ביותר שלך בכל מה שקשור לוודא ששיחות ה- SIP שלך מאובטחות.
* הערה: טלפוני IP עשויים לפרסם שהם תומכים בהצפנה, תצטרך לבדוק את מפרטי הטלפונים כדי לקבוע אם הוא תומך ב- SRTP. עוד נאמר על זה להלן יחד עם בעיות יכולת פעולה הדדית עם טלפונים מסוימים בתחתית עמוד זה.
יכולות הצפנה של FreeSwitch
דף זה יכסה רק הצפנת TLS, SSL ו- SRTP.
הצפנת TLS, SSL ו- SRTP
Freeswitch תומך ב- SIPs באמצעות SSL ו/או TLS, יחד עם יכולות הצפנת SRTP. לא ברור אם Freeswitch תצפין זרמי וידיאו מכיוון שזה לא נבדק במעבדת KJV, עם זאת אני חושד שזה יעשה. אם אתה מבצע בדיקות הצפנת וידאו SRTP, בכל אופן הוסף את התוצאות שלך ל- WIKI.
הצפנת ZRTP ZRTP מופרזת כעת ותוסר מחוץ למסמכים
ZRTP הוא יכולת הצפנה אופורטוניסטית שניתן להרכיב אותם ל- FreeSwitch. עיין בדף ZRTP לקבלת הדרכה ומידע נוסף הנוגע ל- ZRTP.
הצפנה היברידית
Freeswitch יכול למעשה להצפין נתונים לתעבורת SIP שעוברת דרכם. באופן זה תוכלו לספק הצפנה לטלפונים IP שאינם תומכים בהצפנה באופן טבעי. מכיוון שיש שפע של חומרת SIP שאינה תומכת בהצפנה, תצורה זו עשויה להיות מועילה לכל מספר מצבים מעשיים.
באיור 4 תבחין כי ערוץ בקרת ה- SIP מהטלפון למתג אינו מוצפן ואילו ערוץ הבקרה מ- FreesWitch לשני SIP PBX מוצפן. חשוב להבין שבמצב זה SIP Control ו- RTP (Audio) נתונים אינם מוצפנים בין טלפון ה- IP ל- FreesWitch. מכאן שאם טלפון ה- IP SIP שלך נמצא איפשהו מאחורי נתב NAT במודם כבלים, ו- FreesWitch אינו עומד מאחורי הנתב הזה, גם LAN של הטלפון וגם חיבור האינטרנט ל- Freeswitch נמצאים לגמרי בפתוח, כלומר מישהו יכול לרחרח את המנות ולקבל מידע יקר ערך.
יתר על כן, נתוני ה- RTP (AUDIO) בין FreesWitch לנקודת הקצה המרוחקת המאוירת כ”- SIP PBX אחר “אינם מוצפנים וניתן ליירט אותם, אולם ערוץ הבקרה לחיבור זה מוצפן ולכן הוא מאובטח באופן סביר. אם Freeswitch היה באותה LAN כמו הטלפון האפשרות ליירוט פחותה, אך נתוני השמע עדיין מסוגלים ליירט.
באיור 5 תבחין כי נתוני SIP וגם RTP מטלפון ה- IP אינם מוצפנים, ואילו נתוני SIP ו- RTP ל- SIP PBX האחרת הם גם SIPs ו- SRTP מוצפנים. אפשרות זו תציין גם את ערוץ הבקרה וגם את נתוני השמע עבור החיבורים בין Freeswitch לנקודות קצה אחרות התומכות בהצפנה.
עדיין צריך להבין שהחיבור מהטלפון ל- Freeswitch מסוגל לחלוטין ליירט על ידי מרחרח מנות.
בחירה בין אפשרויות הצפנה
יש מגוון אפשרויות הצפנה עבור FreeSwitch כמתואר לעיל. TLSV1 מצפין את הכל על חיבור TCP; יש לזה את החיסרון שמרוצצים או עיכובים עקב TCP יכולים להתרחש. בדרך כלל מועדף UDP על RTP ובשימוש ב- TLSV1 יש תקורה תנועה נוספת. סוף סוף יש SSLV23; זה מצפן את ערוץ בקרת ה- SIP באמצעות חיבור TCP מוצפן באמצעות תעודות SSL, אך כברירת מחדל אינו מספק דבר לנתוני ה- RTP. פרטי הכניסה ומטא נתונים של שיחה מועברים מעל ערוץ הבקרה כך שאם זה מה שאכפת לך להגן על זה מספיק ולא מוסיף תקורה לנתוני ה- RTP. אם אתה רוצה להצפין את נתוני הקול עצמם (כך שלא ניתן להבין את נתוני הקול) ניתן לשלב אותם עם SRTP. SRTP מאפשר הצפנה של נתוני ה- RTP עם תקורה קלה לכל אחת ממנות ה- UDP RTP. יש לזה היתרון שנתוני השיחה מוצפנים אך עדיין נמצאים מעל UDP ולכן לא צריך להיות כמעט שום הבדל עם SRTP כמו שהוא OFF. מפתח ההצפנה המשמש ל- SRTP מוחלף מעל ערוץ הבקרה (ש- SSLV23 מצפין) אז נותן לך משהו מהטובים משני העולמות. בדרך כלל SSLV23 + SRTP הוא הידידותי ביותר לחומת האש/יש את השינויים המעטים ביותר עבור התקנות קיימות. SSLV23 + SRTP קל למדי לתצורה בשרת FreesWitch וכנראה ששיטת ההצפנה הנתמכת ביותר עבור מרבית הלקוחות וללגום טלפונים ולכן בדרך כלל צריך להיות במקום בו מישהו צריך להתחיל להצפנת נתוני שיחה.
על טלפונים IP והצפנה
ספקים מסוימים יפרסמו כי המוצר שלהם תומך בהצפנת SIP. השאלה הופכת עד כמה היא תומכת בהצפנת SIP. אז בואו נסקור את הקונדרום השיווקי המפותל הזה.
- הטלפון רשאי לתמוך ב- SSL ו/או TLS מוצפנים SIP, כלומר “SIPS”.
- הטלפון עשוי להרחיק לכת ולתמוך ב- TLS עם אישורים חתומים.
- מעבר לאותם אזהרות, הטלפון עשוי להרחיק לכת ולתמוך בנתוני שמע מוצפנים SRTP.
- אחרון חביב, וודא שטלפון ה- IP תומך תֶקֶן הצפנת SIPS ו/או SRTP. בעיקרו של דבר לא מופרך מכדי שיצרן יביא לשיטת הצפנה עם מוח שיער שעובד רק עם המוצרים שלהם.
אַזהָרָה: בדוק את המפרט ועשה את המחקר שלך לפני שאתה קונה כל טלפון IP של SIP שמפרסם את עצמו כמסוגל לבצע הצפנה. יתכן שתרצה לבדוק אם יש בעיות עם גרסת ה- SIP קושחה שהטלפון שלך פועל ויכולת ההפעלה שלו עם FreesWitch.
מגבלות של יישום ה- FreesWitch TLS/SSLV23 (FS-3877)
לרוע המזל לברירת המחדל של Sofia Stack Stack ו- FreesWitch יש התנהגות ברירת מחדל אחת (אולי בלתי צפויה) העלולה לגרום לבעיות הצפנה שקשה לאבחון. כאשר לקוח מתחבר לשרת הוא יוצר ערוץ TCP מוצפן המשמש לתקשורת עם השרת. בכל פעם שזה מתקשר, רישומים וכו ‘., זה עושה זאת באמצעות הפעלת TCP זו. לרוע המזל, כאשר Freeswitch מנסה לתקשר עם הלקוח כדי לספר זאת על שיחה נכנסת, Notifys וכו ‘., זה מקים ערוץ TCP שני מהשרת ללקוח. אמנם זה מוצפן, אך זה יכול לגרום לבעיות מסוימות לתצורות מסוימות של חומת אש ולרבה מאפשרויות האבטחה של TLS/SSL ב- FreesWitch. אם FreesWitch לא יכול להקים ערוץ זה הלקוח יוכל לבצע שיחות אך הוא לא יוכל לקבל שיחות (או כל דבר אחר שמקורו בשרת ללקוח). בנוסף, תכונות TLS רבות עשויות לפעול באופן בלתי צפוי, ולכן חשוב לקחת בחשבון כיוון. לדוגמה, TLS-Verify-Policy מוגדר “Out” יגרום ל- FreesWitch לנסות לאמת את תעודת הלקוח כאשר הוא מתחבר ללקוח, כך שלמרות שהלקוח מתחבר לשרת בתחילה וזה ידלג על אימות לשיחות מהשרת->, FreeSwitch יאמת אותו. בנוסף, זה יכול לפתוח חורי אבטחה, למשל הגדרת המדיניות “ל-” לאימות לקוחות נכנסים לא תוודא את תעודת הלקוח כאשר השרת מתחבר ללקוח, מה שיאפשר להתקפת MITM שם. דברים כמו אימות נושא יכולים גם להיות מסובכים, במיוחד אם Freeswitch מתנהג כלקוח. לדוגמה, אימות הנושא בודק את שם המארח אליו מתחבר Freeswitch מול השם המשותף לתעודה, בעוד שבדיקת אבטחה נחמדה לא יכולה להיעשות כאשר השרת מתחבר חזרה ל- FreeSwitch (כמו באותה נקודה Freeswitch מנסה למעשה לבדוק את כתובת ה- IP כנגד השם המשותף). בנוסף, אימות המטרה (וודא שכאשר Freeswitch מתחבר לשרת זה תעודה שהונפקה עבור שרת ולא לקוח, או להפך) אינה נתמכת כרגע. זה מאפשר התקפות MITM נגד שרת FreesWitch באמצעות תעודת לקוח (או להפך), אך בשל החיבור שעובר בשני הכיוונים, אימות המטרה אינו נתמך כרגע (מכיוון שחיבור נכנס עשוי להיות מתעודת שרת תוך כדי חיבור בחזרה). אז בעוד ש- Gentls של Freeswitch _ Cert מקצה כראוי את המטרה הוא לא משמש כרגע על ידי Freeswitch עצמו. פיתרון אחד להימנע מחור MITM זה הוא להנפיק תעודות לקוחות מ- CA שונה לעת עתה.
תצורה
Freeswitch תומך בהצפנת תנועת איתות SIP באמצעות SSL ו/או TLS. הוועידה היא להריץ את ה- SIPS ביציאה 5061 . תצורות מורכבות יותר אפשריות, אולם הן לא יכוסו בתיעוד זה.
תצטרך את הדברים הבאים כדי להרכיב את FreesWitch עם תמיכה בהצפנת TLS:
- חבילת LibsSL-DEV (The OpenSSL Development) הותקנה.
אם אין לך את חבילת LibSSL-DEV, הבעיה תהיה הפרופיל SIP _ המכיל את הוראות תצורת ההצפנה שצוינו להלן בשלב 2 יכשל.
אם ריכזת את FreeSwitch ללא התקנת חבילה זו, לא תהיה שום תמיכה בהצפנה ותצטרך לחשב אותה מחדש לאחר שתתקין את חבילת LibSSL-DEV.
עבור Debian Do Aptitude התקן את Libssl-Dev (ב- Lenny התקן Libcurl4-Openssl-dev) ואז קומפילציה.
שלב 1 – צור את תעודת CA (שורש)
כדי להשתמש ב- TLS/SSL אתה זקוק לפחות לשתי תעודות: תעודת שורש (CA) ותעודה לכל שרת. יש תסריט ב // freeswitch/bin/gentls _ cert או בתוך כדור הכדור המקור /סקריפטים/ג’נטלים _ cert זה עוזר לייצר קבצים אלה. בהנחה ששם ה- DNS של FreesWitch PBX שלך הוא PBX.FreeSwitch.org, עם
./gentls_cert setup -cn pbx.FreeSwitch.org -alt dns: pbx.FreeSwitch.org -org freeswitch.אורג
זה ייצור תעודת CA ומפתח יחד עם ספריית CONP/SSL/CA ותעודה בתיקיית CONP/SSL.
[ הערה: השם שניתן ל- -CN ו- -ALT צריך להיות זהה לשם ה- DNS של התקנת FreeSwitch שלך ומשמש כשם הרשם בטלפון (לפחות על polycoms). ] אתה יכול לשנות את קו “Days = 2190” בקובץ Gentls _ Cert כדי להפוך את האישור לתוקף למשך זמן רב יותר. עם זאת, מה שהופך את זה זמן רב מדי לעטוף בעיה, הוא מופיע.
שלב 2 – צור את תעודת השרת
./gentls_cert create_server -cn pbx.FreeSwitch.org -alt dns: pbx.FreeSwitch.org -org freeswitch.אורג
יוצר את תעודת השרת בכתובת // freeswitch/conf/ssl/סוכן.PEM. קובץ זה מכיל את האישור והמפתח הפרטי. זה אמור להכיל את שם הדומיין בשם הנפוץ והחלופי. אם אתה צריך ליצור תעודות עבור שרתים אחרים השתמש בדגל ה- -OUT עבור Gentls _ Cert כדי לציין את אישור הפלט/שם קובץ המפתח ולהעתיק זאת לשרת המרוחק.
כדי להגדיר CA חדש וליצור תעודה חדשה תחת Windows עבור לכאן.
על מנת שהתעודה החדשה תיכנס לתוקף (הדרך היחידה עבור Freeswitch להשתמש בה), יש להפעיל מחדש את FreesWitch.
הערה: השם שניתן ל- -CN ו- -ALT צריך להיות זהה לשם ה- DNS של התקנת FreeSwitch שלך ומשמש כשם הרשם בטלפון (לפחות על polycoms). זה נדרש לקרן עיניים (וכנראה גם פנגולין).
עיין בתעודה שלך
אתה יכול לבדוק את פרטי האישור שלך באמצעות הפקודה:
openssl x509 -noout -inform pem -text -in/usr/local/freeswitch/conf/ssl/סוכן.PEM
שלב 3 – תצורת פרופיל סופיה
FreeSwitch דורש רק קובץ אחד למשחק כשרת TLS וזה הסוכן.קובץ PEM. זה מכיל את האישור והמפתח בו הוא ישתמש להאזנה. שימו לב שזה חשוב ביותר שהסוכן שלכם.PEM (ובאופן אופציונלי CACERT.PEM) יש הרשאות קריאה למשתמש FreesWitch יפעלו כ-. זה אומר שאם אתה משתמש -u freeswitch אתה רוצה “Chmod 640 Agent.PEM CACERT.Pem “ו-” Chown Root.סוכן Freeswitch.PEM CACERT.pem “. הרשאות שגויות לא יאפשרו למאזין TLS להסתובב כראוי. ב- VARS שלך.XML:
תשומת לב: TLS מושבת כברירת מחדל; הגדר _ SSL _ הפעל ו/או חיצוני _ SSL _ אפשר “נכון” להפעיל.
שלב 4 תצורת לקוח
ללקוחות צריכים להיות לפחות את תעודת שורש CA המותקנת עליהם על מנת להבטיח אבטחה. מבלי לאפשר אימות שרשרת (כי תעודת השרת הונפקה על ידי ה- CA המאושר) התקפת MITM אפשרית נגד לקוח. תעודת CA היא ה- CONP/SSL/CAFILE.PEM הוא מכיל רק תעודה ולקוחות משתמשים בה כדי להבטיח שתעודת השרת מונפקת על ידי ה- CA. בנוסף, יתכן שתרצה (או שתצטרך תלוי במכשיר) להתקין תעודת לקוח שהונפקה על ידי אותה CA. באפשרותך ליצור אישור לקוח באמצעות הפקודה:
./gentls_cert create_client -cn client1 -out client1
זה ייצור לקוח 1.PEM (שימו לב שהשם הנפוץ כאן לא ממש משנה, לעיתים רחוקות שרת יופעל אי פעם לבדוק את נושא תעודת הלקוח כדי שתוכלו להגדיר את זה למה שתרצו). יש להתקין את הצמד האישור/מפתח הזה על הלקוח (המליץ על כל לקוח לאבטחה) אך אינו צריך להישאר בשרת, גם אם אתה רוצה שהשרת יאמת את תעודת הלקוח. אם הלקוח הוא שרת FreeSwitch נוסף זה לקוח 1.PEM תרצה לשנות את שם לסוכן.PEM. הערה אם שרת FreesWitch האחר עומד להשתמש גם בתעודה זו כשרת ולא רק לקוח, הקפד לבצע את השלבים שלמעלה באמצעות פקודת Create _ שרת ליצירת אישור שרת.
תעודות מסחריות
רוב תעודות שרת האינטרנט המסחריות צריכות לעבוד עבור FreesWitch. לדוגמה, ידוע כי תעודות SSL123 (האפשרות הזולה ביותר שלהם) ידועות לפחות בהתקנה אחת. אם יש לך ספקות אם תעודה תעבוד, עליך לרכוש רק את האישור מחברה המציעה מדיניות החזר של 30 יום.
TLS פרופיל מרובה
אם יש לך מספר פרופילי SOFIA SIP, אתה עלול למצוא את עצמך רוצה לאפשר תמיכה ב- TLS לכל אחד מהפרופילים. עם זאת, כל אחד מהם עשוי להיות מיוצג לצדדים שלישיים באמצעות רשומת DNS שונה. במקרה זה, פשוט צור ספרייה חדשה תחת // freeswitch/conf/ssl/עבור כל רשומת DNS . ואז מקם סוכן.פם וקפיל.PEM לכל אחת מהספריות. הצבע כל פרופיל לספריה האישית המכילה את הסוכן הספציפי שלו.קובץ PEM.
פתרון בעיות
סוגיות עם TLSV1
אם בחרת בתצורה זו בפרופיל SIP _ שלך:
ישנם מספר Gotchas ו- Snafus שאפשר עם TLS. TLS פועל ב- TCP, ולא ב- UDP, לכן וודא כי כל חומות אש מוגדרות לעבוד עם TCP. צור את האישור המתאים, וודא שהוא נטען בטלפון או ATA. כמו כן, וודא שהזמן מוגדר כראוי בנקודת הקצה שלך, מכיוון שתקבל הודעות שגיאה “אישור רע” קריפי אם הזמן רחוק מדי, והוא ייכשל בלחיצת יד כראוי. (לדוגמה, לתעודות יש “תכונות לא תקפות לפני” ו”לא תקפות לאחר “תכונות.אם. אם זה עדיין לא מצליח לעבוד כראוי, אתה עלול לשקול SSLV23 כנפילה.
סוגיות עם SSLV23
אם בחרת באפשרות תצורה זו בפרופיל SIP _ שלך:
זה ייתן לך את היכולת להצפין את הנתונים. האבטחה דומה לזו של שרתי אינטרנט, ניתן לבדוק שורשים מהימנים לתעודה, נתמך אימות אישור לקוח, ניתן לאמת נבדקים ותאריכי אישורים (חלקם אכן תלויים בתמיכת הלקוחות בתכונה). זה יכול להיות למעשה מה שאתה רוצה, ובהתחשב בכך שכמה טלפונים אינם תומכים ב- TLS, אך תומכים ב- SSL, ייתכן שתרצה להגדיר בהתאם.
אם פרופיל ה- SIP שלך לא מצליח להפעיל
אם אתה נכנס ל- FreeSwitch CLI ומקלד:
אתה עשוי לגלות שהפרופיל שלך ל- SIP _ שעבורו הגדרת את הגדרות TLS/SSL חסר. אם זה יהיה המקרה, כנראה שאתה חסר את חבילת LibsSL-DEV או את הסוכן.קובץ PEM אינו קיים או שיש לו הרשאות שגויות. ודא שהמשתמש FreesWitch פועל כפי שיש לו הרשאות קריאה לתעודות ולמפתחות. הפעלת רישום ניפוי באגים של סופיה טפורט לגובה תעזור להדפיס שגיאות מדוע זה לא מתחיל כראוי. עיין בהפצה שלך על מנת להתקין את חבילת הפיתוח של OpenSSL. זה הכרחי לקוד שמבצע את ההצפנה בתוך Freeswitch לרישום לבינארי. הפעלת רמה גבוהה יותר של ניפוי באגים בסופיה (Sofia Loglevel All 9, או Sofia Loglevel Tport 9 בדרך כלל מספקת מספיק) ובקונסולה יכולה לעזור לבעיות באגים ובעיות לחיצת יד.
שגיאת משא ומתן של TLS ‘אין צופן תואם’
אם אתה מקבל הודעת שגיאה ‘ללא תואם צופן’, ראשית בדוק כדי להבטיח שרשמת את מפתח האישור שלך לסוכן שלך.קובץ PEM. אם אתה עדיין מקבל את השגיאה, התחדש גם את המפתח וגם את האישור והפוך סוכן חדש.PEM עם המפתח והתעודה החדשים, ואז נסה שוב.
עוד שלבי ניפוי באגים
אם אתה עדיין נתקל בבעיות שמפעילות TLS המפעילות את הדברים הבאות מוצעות:
- ) הגדר את Sofia Loglevel ל- 9 ( < param name="log-level" value="9"/>) ב- Autoload _ configs/sofia.Conf.XML
- ) הגדר את קונסולת Freeswitch Loglevel ל- Debug (F8)
- ) טען מחדש את mod _ sofia ובדוק את היומנים
- ) אם הכל נראה בסדר בצד השרת, נסה להשתמש ב- FreeSwitch או בטלפונים רכים מבוססי FreeSwitch כמו FSClient או FSCOMM. אלה יאפשרו לך לעשות את אותו הדבר בצד הלקוח (כולל לצרף להם FS _ CLI כדי לקבל נתוני יומן) כדי לנסות ולראות כל שגיאות שהלקוח עשוי לקיים
- ) המוצא האחרון שם את כל היומנים על פסטבין ובקש עזרה.
באמצעות FreesWitch כלקוח SSL/TLS
Freeswitch יכול לתקשר עם שרת אחר ולפעול כלקוח SIP (aka השתמש בשער אחר). לשם כך אתה צריך לקבל את הקפיל.PEM על הלקוח בתיקיית CONP/SSL עם תעודת CA. תצטרך גם סוכן.קובץ PEM (זה יכול להיות זוג מפתח ציבורי/פרטי שנוצר באופן אקראי או תעודת לקוח תקפה) באותה תיקיה המשמשת את תעודת הלקוח.
אפשרויות TLS מתקדמות
FreesWitch תומך בכמה פרמטרים מתקדמים TLS בהגדרות הפרופיל ראה קבצי תצורת SOFIA לפרטים.
הגדרה מהירה של SSLV23 עם SRTP
התקן מהיר בפרופיל הפנימי אם שם המארח הפנימי של השרת שלך הוא PBX.FreeSwitch.org:
./gentls_cert setup -cn pbx.FreeSwitch.org -alt dns: pbx.FreeSwitch.org -org freeswitch.אורג ./gentls_cert create_server -cn pbx.FreeSwitch.org -alt dns: pbx.FreeSwitch.org -org freeswitch.אורג
אם הלקוחות שלך תומכים/מאמת את תעודת השרת העתק את אישור CANP/SSL/CAFILE.PEM ללקוחות שלך.
תן ללקוחות שלך להתחבר ל- FreesWitch ביציאה 5061 במקום 5060 ולהפעל TLS (ואם אפשר SRTP) על הלקוח. אם הלקוח שלך הוא FreesWitch הגדרת הובלה = TLS תחת TLS-Bind-Params בנוסף לאפשרויות האפשרות שלעיל מהשרת. לבסוף בשרת FreesWitch שלך לשיחות שנאלצות ללקוח, תרצה לאפשר להם לעבור על SRTP על ידי הגדרת RTP _ מאובטח _ מדיה = נכון לשיחה (ראה שלב 5 להלן לפרטים נוספים כיצד לעשות זאת באופן תוכנה יותר עבור לקוחות שתומכים בכך רק).
הפעל מחדש את שרת ה- FreesWitch שלך (או טען מחדש את Mod _ Sofia) ולקוח שלך להתחבר ואתה אמור להיות מסוגל לבצע ולקבל שיחות מאובטחות! כדי לשפר את האבטחה בדוק את אפשרויות ה- TLS המלאות ולאפשר בדיקת אישורים (גם להפסיק את MITM).
שלב 5 – אבטחת ערוצי ה- RTP (אופציונלי)
שיחות שמקורן בטלפון יש RTP _ מאובטח _ מערך מדיה אם TLS מוגדר. בדוק את התוסף הגלובלי. יש קטע שמגיב כי החוצה תדרוש SRTP ברגל היוצאת אם הרגל הנכנסת מוצפנת. מה שמאפשר זאת יהיה בעייתי עם מרבית ה- ITSPs מכיוון שהם אינם תומכים ב- TLS.
עבור שיחות שמקורן (או מנותבות דרך) FreeSwitch ומסתיימות על המשתמש/ נקודת הקצה (ה.ז., שיחות לטלפון), השינוי הבא יאפשר SRTP אם נקודת הקצה רשומה ב- TLS. שים לב שזו תצורה תקפה להירשם ל- TLS אך אינה דורשת SRTP. זה מבטל את אפשרות התצורה התקפה עבור משתמש/ נקודת קצה. זה גם ידרוש עידון נוסף לתמיכה ב- ZRTP בנקודות משתמש/ קצה המתחברות ל- TLS. במקרה כזה, גישה טובה יותר היא להגדיר משהו בכניסה לספריה של המשתמש שמציין באיזה הצפנת RTP לתמוך. (במילים אחרות, יש סיבה שזו לא הגדרת ברירת המחדל.)
ערוך CONP/DIRESTORY/ברירת מחדל.XML ולשנות את מיתרי חיוג param to:
למה זה רעיון טוב
בפריימר הצפנת SIP לעיל דנו מדוע הצפנת נתוני ה- RTP עשויה להיות רעיון טוב. זה נעשה ברובו בחיוג ויש לו דף משלו המוקדש לפונקציונליות שלו.
SRTP כשלעצמו ללא TLS אינו מאובטח מכיוון שהמפתחות מוחלפים בין שתי נקודות הקצה ב- SIP ברורות, וזה חסר ביטחון ללא TLS או SSL.
ראה דף RTP מאובטח כיצד לפרוס SRTP.
שים לב שהפרמטר SIP_SECURE_MEDIA אינו מיושם עוד ועליך להגדיר RTP_SECURE_MEDIA
לחיבור מאובטח לחלוטין (איתות + מדיה) השתמש ב- TLS + SRTP. TLS ללא SRTP מאבטח SIP. SRTP ללא TLS לא ממש מאבטח את RTP!
שלב 6 – DNS NAPTR ו- SRV Records (אופציונלי)
קביעת תצורה של DNS NAPTR ו- SRV עבור TLS
זה לא נדרש מכיוון ש- TLS יתפקד בלעדיו, אך מומלץ. אם אתה מתכוון להגדיר TLS אתה עשוי להקדיש זמן להגדרת רשומות ה- DNS SRV ו- NAPTR הנכונות.
להלן דוגמה לרישומי NAPTR שתצטרך (ערוך כתוביות ל”תחום.com “לפי הצורך):
תְחוּם.com. ב- NAPTR 10 0 “S” “SIPS+D2T” “” _SIPS._TCP.תְחוּם.com.
תְחוּם.com. ב- NAPTR 20 0 “S” “SIP+D2T” “” _SIP._TCP.תְחוּם.com.
תְחוּם.com. ב- NAPTR 30 0 “S” “SIP+D2U” “” _SIP._UDP.תְחוּם.com.
אם אתה מגדיר עם-Enable-SCTP והעמיס SCTP על לינוקס תוכל להוסיף רשומה זו:
תְחוּם.com. ב- NAPTR 10 0 “S” “SIPS+D2S” “” _SIP._sctp.תְחוּם.com.
אז תרצה להגדיר רשומות SRV אלה בנוסף ל- NAPTR לעיל:
_ SIPS._TCP.תְחוּם.com. ב- SRV 10 0 5061 SIP.תְחוּם.com.
_לגימה._UDP.תְחוּם.com. ב- SRV 10 0 5060 SIP.תְחוּם.com.
_לגימה._TCP.תְחוּם.com. ב- SRV 10 0 5060 SIP.תְחוּם.com.
אם אתה מגדיר עם-Enable-SCTP והעמיס SCTP על לינוקס תוכל להוסיף רשומה זו:
_לגימה._sctp.תְחוּם.com. ב- SRV 10 0 5060 SIP.תְחוּם.com.
דוגמה: טלפונים של SNOM יכבדו באופן מלא את ה- NAPTR וגם SRV כמו גם SOFIA-SIP בשיחות יוצאות שמקורן ב- FreesWitch.



