‏הצגת רשומות עם תוויות MMS. הצג את כל הרשומות
‏הצגת רשומות עם תוויות MMS. הצג את כל הרשומות

יום רביעי, יולי 26, 2023

איך לשלוח MMSים בגולן טלקום עם chatty ו mmsd-tng

שברתי את הראש עם התמיכה מספר חודשים בגולן טלקום, תודה לאל הגיע נציג תמיכה מדהים בשם מנחם שפתר את העניין.
 
הצלחנו למצוא שעל מנת שיהיה ניתן לשלוח MMSים ברשת של גולן טלקום צריך שיהיה לכם כרטיס סים עדכני מסדרה חדשרה.
 
 הסים שלי היה בן בערך שנה. לאחר שיש סים עדכני, צריך לכבות את mmsd-tng ע"י  systemctl stop --user mmsd-tng  ולאחר מכן לדואג ש chatty מכובה, 
יש לערוך את הקובץ ~/.mms/modemmanager/mms ולהתאים את ה CarrierMMSC ה APN ו ה CarrierMMSProxy לערכים שיש אצלי

[Modem Manager]
CarrierMMSC=http://mms.cellcom.co.il
MMS_APN=mms
CarrierMMSProxy=172.31.29.38:8080

לאחר שעשיתם זאת , מספיק להפעיל מחדש את השירות של mmsd-tng , ויהיה ניתן לקבל הודעות MMS כל עוד אתם ב APN mms. 
 
וזהוא אחרי זה חזרתי לצויליזציה בה אפשר לשלוח MMSים באורן.

יום שלישי, מרץ 06, 2018

מתקפת מניעת שירות

אני עוסק בתחום התקשורת תקופה מסויימת, ומעולם לא נתקלתי בסיפור כזה שעובר בשקט כמו שיש עכשיו.

בערך מה-20 לחודש פברואר 2018 התחילה מתקפת לוחמה אלקטרונית הפוגעת בשידור אלחוט שפוגע בשירותי 3G ו LTE.

בהתחלה עוד תיארו את זה כמתקפת סייבר אבל בהמשך נתנו עוד ועוד הסברים ועדיין שבועים אחרי תחילת ההתקפה עדיין קיימים שיבושים באזור. מתקפת מניעת השירות היא לא הרמטית לפעמים מרגישים ולפעמים לא.


מצד אחד אין שיחות או סמסים נכנסים (איזה כיף שלא מתקשרים אלינו עם הצעות לעבור להוט) אבל מצד שני לא ראיתי שום הודעה ע"י חברות כמו פלאפון/סלקום/אורנג' על איזה שהיא בעייה מערכתית.

מכייון שמצד המקבל כמעט ולא תהיה לנו אינדיקציה שיש בעיית שירות (הקליטה נמוכה אבל קיימת), די קשה להיות מודע שיש איזה בעייה.

שמתי לב שקיימים מספר אינדקטורים (פרט לכישלון שיחות נכנסות) ואני מציין אותם פה:

  • כישלון שיחות נכנסות:


זה כמעט בלתי אפשרי לזהות (אלא אם מודיעים לכם על הבעייה באמצעי אחר), אבל זה אינדיקטור.

  • בעיות גלישה כגון RTT מאוד גבוהה (זמן פינג?) :

למעשה כאשר אנו היינו במצב מחובר (ppp הצליח להתחבר ) אנו לא נידע שיש בעייה עד אשר התוכנות שהיו מחוברות ייכשלו.

לדוגמה הkeep alive שלי זיהה זמני RTT הזויים :

64 bytes from 8.8.8.8: icmp_seq=100 ttl=63 time=90147 ms
64 bytes from 8.8.8.8: icmp_seq=101 ttl=63 time=89123 ms
64 bytes from 8.8.8.8: icmp_seq=102 ttl=63 time=88128 ms
64 bytes from 8.8.8.8: icmp_seq=103 ttl=63 time=87109 ms
64 bytes from 8.8.8.8: icmp_seq=105 ttl=63 time=85121 ms
64 bytes from 8.8.8.8: icmp_seq=104 ttl=63 time=86145 ms
64 bytes from 8.8.8.8: icmp_seq=106 ttl=63 time=84109 ms
64 bytes from 8.8.8.8: icmp_seq=107 ttl=63 time=83095 ms
64 bytes from 8.8.8.8: icmp_seq=108 ttl=63 time=82106 ms
64 bytes from 8.8.8.8: icmp_seq=109 ttl=63 time=81086 ms
64 bytes from 8.8.8.8: icmp_seq=110 ttl=63 time=80061 ms
64 bytes from 8.8.8.8: icmp_seq=111 ttl=63 time=79090 ms
64 bytes from 8.8.8.8: icmp_seq=112 ttl=63 time=78089 ms
64 bytes from 8.8.8.8: icmp_seq=113 ttl=63 time=77064 ms
64 bytes from 8.8.8.8: icmp_seq=114 ttl=63 time=76046 ms
64 bytes from 8.8.8.8: icmp_seq=115 ttl=63 time=75024 ms


עריכה: כשאני חושב על מה ייקרה כשאפליקציות החירום המקומיות יצטרכו להודיע על סכנה, לפי מה שאני זוכר מזניחת המחקר על אפליקציה אחת - תתחילו לקרוא תהילים או לבשל פסטה אם זה יעזור לכם נפשית כי עד כמה שאני מבין התראה לא תקבלו או תקבלו באיחור מאוד גדול (כי ערוץ הדאטא בקושי מתפקד).

  • הודעות (SMS) :

הודעות SMS הגיעו בין 30 דקות לשעה ליעדן

נבדק ע"י :

שני קווים מאותה החברה ששולחים הודעה אחת לשני.

המכשירים נמצאים אחד ליד השני בשביל לבטל בעיות של handover או תקשורת בין ספקים. שליחת הודעה מקווים של חברות שונות - הודעה ממקום שאינו באזור ההתקפה למקום בו התקפה קיימת.

הודעה ממקום שנמצא באזור ההתקפה למקום בו התקפה לא קיימת.

  • הודעות (MMS) - MMS בדומה ל גלישת דאטא משתמש באפיק אחר מאפיק הקול (כאשר לא משתמשים ב VoLTE).

נבדק ע"י :

נבדקו שני חברות שונות , באחת היה איחור של 10 דקות בשני היה פשוט כישלון מוחלט לבצע שליחת MMS ליעד.

שליחת הודעות נבדקו גם באמצעות שליחה מהמכשיר וגם ע"י שימוש בסקריפט פייתון ישן


לסיכום  -

אילו חברות התקשורת היו מספקות אפשרות ANDSF למשתמשים שלהם היתה אפשרת להתחבר (כן אפילו מלינוקס !). או אפילו דואגות להציף את הבעיה מספיק גבוהה בשביל להקים שידור חזק יותר מאמצעי הלוחמה האלקטרונית.

יום שבת, אוגוסט 01, 2015

MMS

עידו כתב פוסט והיו שם מספר שאלות שאני חושב שהם ראויות לפוסט שלם, נתחיל מהתחלה איך בכלל מדברים עם הודעות מולטימדיה (EMS ו MMS).

אמנם עידו כבר כתב אבל אני חושב שאולי אוכל להרחיב על דבריו והיה קל יותר להבין מהבחינה הטכנית.

  • קיים "ענן" של שירותים שנקרא MMSE (סביבת ה MMS)
  • קיימת רשת תקשורת IP בתוך ספק הסלולאר, ובתוכה קיים רכיב ( SGSN ) שדרכו משתמשי קצה יתקשרו.
  • אדם מחזיק במכשיר קצה (מודם/ מכשיר סלולאר) שרוצה לקבל או לשלוח הודעות מולטימדיה (MMS UA) 
  • קיים שירות שמספק את תוכן ההודעות עצמן.
  • קיים רכיב מקשר שהוא ה MMS relay/server (יכול להיות שרת בודד או מחולק)

ה MMS UA יתחבר לMMSE שם ידבר עם רכיב ה MMS Relay, יש הרבה דרכים לתקשר אם "הענן" הפופולריים הם WAP gateway, SIP ו IMAP4/SMTP.

אני משתמש פה במושג MMSE ולא MMSC כי אני מאמין שזה פשוט יותר להבנה , כי  MMSC לא  מוגדר הייטב  כי לפעמים זה רק ה Realy/Server לפעמים זה כולל את השרתים שמספקים את המידע  ( בTS23140 שמגדיר את MMS השם MMSC לא קיים)  .

ברמה הקלאסית ה MMS Relay מדבר עם רכיבים אחרים  בתוך סביבת ה MMSE שיספקו את המידע מול רכיבי האימות-הרשאה-חשבונאות של הרשת, שירותי אימייל (מדובר בתקשורת IP קלאסית עם פרוטקולים כמו IMAP4 ), שירותי המרת מידע ושירותים הקשורים להעברת ההודעה עצמה. הרכיב גם יכול לדבר עם ספקי שירות ברשתות אחרות (בין חברות שונות).

ממה שאני מכיר בדרך כלל מכשיר הקצה יתחבר דרך ה SGSN לכתובת מיוחדת או אפילו ל APN מיוחד בשביל למשוך או לשלוח הודעות.

במכשיר הקצה יוגדרו דרכי הגישה ל MMSc :

רוב הספקים שאני מכיר מספקים גישת HTTP שפתוחה לכל משתמשי הרשת הסלולרית שכוללת לקוחות ארעיים (לקוח O2 שמחורבר ל SGSN של O2 יקבל גישה ל MMSC של O2 אבל לא של BT) ע"ג רשת הנתונים שמספקת חברת התקשורת.

יש ספקים משספקים חיבור SIPי מה שמאפשר ללמשתמש קצה שמתחבר בלקוח SIP כמו linphone יוכל לקבל את הודעות ה MMS כהודעות IM רגילות.

יש ספקים בודדים שמאפשרים גישת HTTP שנגישה לכל (לקוח BT ניגש ל חברת XXX עם אמצעי זיהוי ומקבל תוכן).

שרתי ה MMS Relay בינם לבין עצמם יכולים לדבר ב SMTP (משתמש של BT שולח הודעה ל O2 , ה MMS Relay של BT ו O2 יכולים לדברים ב SMTP בינם לבין עצמם) ובין עצמם לחיצוניים מדברים M4.

אמצעי האבטחה של המערכת תלויים בספק התקשורת , וכמו כל שירות אחר יכולים להכיל חורי אבטחה.

ממה שאני מכיר במשתמשי קצה רגילים טיפול בהודעה יהיה ע"י תהליך שיחה בין משתמש לספק (negotiation) עבור כל הודעה , אם שלחת אותה הודעה ל 20 אנשים יבוצעו 20 negotiation שונים.

במידה ומדובר על שירות WAP ה MMS UA ידבר WSP מול שירות ה gateway , שירות ה gateway ידבר HTTP מול ה MMS relay. כל אחד מההודעות תהיה בערך כך :

MMS UA send ----MMS Send request     ----> MMSE
MMS UA send <---MMS Send confirmation----  MMSE
MMS UA send                                MMSE
MMS UA send                                MMSE  ---- notification request  ---> MMS UA
MMS UA send                                MMSE  <--- notification response ---  MMS UA
MMS UA send                                MMSE  <---  get request          ---- MMS UA
MMS UA send                                MMSE  ---   retrieve confirmation---> MMS UA
MMS UA send                                MMSE  <--   ACK                   --- MMS UA        
MMS UA send <---MMS Delivry result   ----  MMSE


התעבורה בין MMS UA אחד ל MMSE מבוצעת באמצעות שימוש בMM1,
בתוך רשת ה MMSE יהיו מספר צורות שיחה. ובין שרת RELAY אחד לחיצוני ידברו MM4. אם נרכיב את הדוגמה הקודמת נקבל:


MMS UA @BT                MMS relay @BT            MMS relay @O2               MMS UA @ O2
   |                         |                          |                           |
   |--> MM1 submit.req -->   |                          |                           |
   |<--MM1 sumbit.res        |                          |                           |
   |                         | --MM4 forward.req ---->  |                           |
   |                         | <--MM4 forward.res ----  |                           |
   |                         |                          | -MM1 notification.req->   |
   |                         |                          | <-MM1 notification.res    |
   |                         |                          |                           |
   |                         |                          | <-MM1 retrieve.req-       |
   |                         |                          | --MM1 retrieve.res->      |
   |                         |                          | <--MM1 ACK     .req-      |
   |                         | <-MM4 Delivry report.req |                           |
   |                         | MM4 Delivry report.res-> |                           |
   |                         |                          |                           |
   |<-MM1 Delivry report.req |                          |                           |


דוגמה לשימוש כזה אפשר לראות כאן.


במקרה SIPי המצב טיפה שונה :

יש לא רק MMS UA אלא גם SIP UA ומה שיקרה שיהיה זיהוי מול השרת שמספק SIP ושרת זה ידבר מול ה MMS relay (לדוגמה ע"י register).

בקשות ה MM1 submit מומרות ל SIP MESSAGE.

התוכן יהיה multipart mime כאשר חלק ראשון יהיה בעל Content type מסוג application/vnd.wap.mms-message ומכיל את ה PDU של MM1 submit.

החלק השני יהיה תוכן הבקשה עצמה או קישור לתוכן.

בתלות בספק ראיתי כי יש או העלאה http put של תוכן ההודעה בספק השירות ואז שליחת קישור לתוכן בתוך ההודעות או העברה של התוכן מקודד.

MMS SIP UA                                    MMS HSP                             MMS Relay

  |                                            |                                 |
  | -----REGISTER --->                         |                                 |
  | <----200      ---                          |                                 |
  |                                            |  -- Register MMS SIP UA --->    |
  |                                            |  <--    200                     |
  |                                            |                                 |
  | SIP message (submit.req)--->               |  -- SIP MESSAGE ---------->     |
  |                                            |  <-- SIP MESSAGE response -     |  
  | <--- SIP message response (submit.res)     |                                 |
  |                                            |                                 |

  

לקריאה נוספת :
 rfc3428
rfc3261 
MMS stage 3 sip


במקרה שמדובר על חיבור ל IMAP4 / SMTP -
מרבית הספקים שאני מכיר מספקים SMTP שקוף למשתמש, כלומר משתמש שולח הודעת MMS לכתובת מייל וזה עובד ישירות ללא שום הגדרה מיוחדת.

הצד המקבל יקבל הודעה מ msisdn@mms.bt כאשר ה msisdn הוא msisdn של השולח.

ממה שראיתי המימוש מורכב מ שרת postfix שמקבל מידע משרת שמבצע המרת תעבורת MM1 + store להודעת SMTP. במקרה הזה הודעת הקבלה לא מתקבלת , אבל בגלל שמדובר על הודעה שהיא אופציונלית אין שום בעייה בנושא.
 
ספקי שירות (VAS) לעומת זאת ישתמשו ב MM7 (שזה בסה"כ SOAP ) ויוכלו לשלוח מסות של הודעות.

רשתות סלולאר מכילות רכיב חשוב נוסף שהוא ה SMSC .

בגלל שיש לנו את SMPP (פרוטקול תקשורת שמאפשר לנו לתקשר בין SMSC שונים) הדבר מאפשר לנו לחבר בין שני שרתים שונים ע"ג IP (הרבה יותר נוח משאר SS7), רכיב ה SMSC הוא בדר"כ שונה מ MMSC אבל ניתן לבנות מערכת שתבצע קישור בין SMSC ל MMSC (רואים את זה בדר"כ בשירותי תוכן בהם שולחים MMS ומקבלים תשובה ב SMS).

אחד ההבדלים העיקרים בין עבודת SMSC ל MMSC שאני רואה (פרט לעובדה של טיפול ב SMS וטיפול ב MMS) הוא התגובה - ב SMSC יש דרישה לאבטחת שליחת מידע ואימות השליחה בעוד ב MMSC זה אופציונאלי.

עכשיו נחזור לשאלה המקורית,

מה קורה עם אתה משתלט על שרת SMSC שהוא נמצא בקשר עם ספקים אחרים. כן אתה יכול לעשות נזק מטורף האם יעצרו אותך מספיק מהר ? אני מאוד מקווה שכן.

בכל אחד מצורות החיבור יש מנגנוני זיהוי ב WAP מדובר ע"י מערכות רשת הסלולאר ב SIP ו IMAP מדובר על אחזקה כמו כל שרת SIP ו IMAP אחר.

ממה ששאני מכיר יש מערכות שיודעות לזהות הודעות כפולות. אם אני שולח 20 הודעות אני אראה 20 הודעות negoations אבל השרת עצמו יכול העתק אחד בלבד של התוכן.

 במערכות שיש VAS (שעליו שולח ההודעות משלם הייטב) יש העתק אחד ונשלח קישור לתוכן.