የደህንነት ማብራሪያ

የMeari የሕፃን ካሜራ የደህንነት ተጋላጭነት፦ Timmy በተለየ መንገድ ምን ያደርጋል?

የMeari ጉዳይ የሚያሳየው የተስተካከለ የመግቢያ ገጽ ብቻ በቂ እንዳልሆነ ነው። የሕፃን መቆጣጠሪያ ደህንነት በሥርዓት ንድፍ፣ በመዳረሻ ፈቃድ እና በቁልፍ አስተዳደር ላይ ይመሠረታል።

Galaxus ማንም በነፃ ሊደርስባቸው ስለሚችሉ የሕፃን ካሜራ ቀረጻዎች ዘግቧል፤ The Verge ደግሞ በግምት 1.1 ሚሊዮን የMeari መሣሪያዎች እንደተጎዱ ዘግቧል። ለእኔ ከዚህ የሚገኘው ትምህርት ግልጽ ነው፦ ከጀርባ ያለው ፕላትፎርም መልዕክቶችን፣ ምስሎችን ወይም ቁልፎችን ለእያንዳንዱ መሣሪያ በግልጽ ለያይቶ ካልያዘ፣ የመግቢያ ሥርዓት መኖሩ የሕፃኑን ክፍል አይጠብቅም። Timmy በዓለም ላይ ያሉትን የደህንነት ችግሮች ሁሉ አይፈታም። ነገር ግን ለTimmy ሚዲያ እና ማጣመር ወሳኝ የሆኑት ሚስጥሮች በደመና ካሜራ ፕላትፎርም ውስጥ አይቀመጡም።

በMeari ጉዳይ ላይ ምን ተበላሽቶ እንደነበር የሚታየው

ይፋ የወጡት ሪፖርቶች በተለያዩ ምርት ስሞች የሚቀርብ አንድ መሠረታዊ ፕላትፎርም እንደነበረ ይገልጻሉ። በርካታ በገበያ ላይ የሚታዩ ብራንዶች፣ በዚያው የMeari/CloudEdge መሠረተ ልማት ላይ የተመሠረቱ ካሜራዎችን ሸጠዋል። ክስተቱ አስፈላጊ የሆነውም ለዚህ ነው፦ የጋራ ፕላትፎርም የመዳረሻ ፈቃድ ወሰንን በተሳሳተ መንገድ ሲያስቀምጥ፣ ውጤቱ አንድ ደካማ ካሜራ ብቻ ሳይሆን ብዙ መሣሪያዎችን የሚያጋልጥ ችግር ይሆናል።

የተዘገበው ሁኔታ ከደካማ ነባሪ የይለፍ ቃላት የከፋ ነው። ምንጮቹ ለእያንዳንዱ መሣሪያ በቂ የምዝገባ ቁጥጥር ያልነበራቸውን የMQTT መልዕክቶች፣ ማንም ሊደርስባቸው የሚችሉ የምስል URLዎችን፣ ደካማ የምስል መደበቂያን እና ቋሚ ወይም ከመተግበሪያው ሊወጡ የሚችሉ ቁልፎችን ይጠቅሳሉ። ይህ የፕላትፎርም ውድቀት ነው፤ መሠረተ ልማቱ ለሌላ መለያ ፈጽሞ ሊገኝ የማይገባውን ውሂብ ሊያጋልጥ ይችል ነበር።

የደመና ካሜራ ሥርዓት አደጋየTimmy ተቃራኒ የንድፍ አቀራረብ
የጀርባ አገልግሎቱ የምስል ክስተቶችን ያከማቻል ወይም ያሰራጫል።Timmy የሕፃኑን ክፍል ምስሎች በደመና ላይ አያከማችም፤ ሚዲያው በWebRTC በቀጥታ ይተላለፋል።
የመልዕክት ደላላ ወይም የማከማቻ ባኬት ለእያንዳንዱ መሣሪያ መዳረሻን ያለ ስህተት መፍቀድ አለበት።Firestore የሚይዘው የማጣመር እና የሲግናል ልውውጥ ውሂብን ብቻ ነው፤ የSDP/ICE ውሂብ ከመጻፉ በፊት ይመሰጠራል።
ቋሚ ቁልፎች አንድን ሙሉ የመሣሪያዎች ስብስብ ለአደጋ ሊያጋልጡ ይችላሉ።በእያንዳንዱ ማጣመር ጊዜ፣ በመሣሪያዎቹ ላይ ከP-256 ECDH የተመነጨ የተለየ ቁልፍ ይፈጠራል።
የሪሌ መንገድ በስህተት ሚዲያውን ማግኘት እንደሚያስችል ሊታሰብ ይችላል።TURN የተመሰጠሩ የSRTP ፓኬቶችን ያስተላልፋል፣ ነገር ግን የሚዲያ ቁልፎችን አይቀበልም።

Timmy ሚስጥራዊ ቁልፉን እንዴት ይፈጥራል?

ባለአራት ምልክቱ የTimmy ኮድ ሆን ተብሎ ሚስጥራዊ ቁልፍ እንዳይሆን ተደርጓል። በኮዱ ውስጥ የመገናኛ ነጥብ ብቻ ነው፤ መተግበሪያው ከእሱ meetingKey ቁልፍ ያመነጫል፤ በዚህም ሁለቱ መሣሪያዎች ተመሳሳዩን የFirestore የይፋ ቁልፍ ልውውጥ ማግኘት ይችላሉ። የግል ECDH ቁልፎች ከመሣሪያዎቹ ፈጽሞ አይወጡም።

ከዚያ ሁለቱም መሣሪያዎች ተመሳሳዩን የP-256 ECDH የጋራ ሚስጥር ያሰላሉ። የማጣመሪያ ቁልፉ በየመሣሪያው ላይ ይመነጫል። ባለሁለት አሃዙ SAS ከጋራው ሚስጥርና ከሁለቱ በቅደም ተከተል ከተደረደሩ የይፋ ቁልፎች ይመነጫል። በዚህ የቁልፍ ልውውጥ ላይ ጣልቃ ተገብቶ ከተቀየረ፣ መሣሪያዎቹ የተለያዩ ቁጥሮችን ያሳያሉ፤ ይህም ተጠቃሚዎቹ ማጣመሩን ማረጋገጥ እንደሌለባቸው ያሳውቃቸዋል።

sequenceDiagram
    participant Baby as Baby device
    participant Firestore as Firestore meeting point
    participant Parent as Parent device
    participant Turn as TURN relay

    Baby->>Baby: Generate P-256 ECDH keypair
    Parent->>Parent: Generate P-256 ECDH keypair
    Baby->>Firestore: Write public key only under meetingKey
    Parent->>Firestore: Write public key only under meetingKey
    Firestore-->>Baby: Parent public key
    Firestore-->>Parent: Baby public key
    Baby->>Baby: Compute sharedSecret + SAS
    Parent->>Parent: Compute sharedSecret + SAS
    Baby-->>Parent: Humans compare SAS on both screens
    Baby->>Firestore: Write SDP/ICE encrypted with AES-256-GCM
    Parent->>Firestore: Write SDP/ICE encrypted with AES-256-GCM
    Baby-)Turn: WebRTC media as DTLS/SRTP packets
    Turn-)Parent: Relay forwards encrypted packets
    Note over Turn: TURN sees network metadata, not media keys
        

ቀለል ያለው የTimmy የደህንነት ሰንሰለት፦ Firestore ለመገናኛ ነጥብነት እና ለሲግናል ልውውጥ ማጓጓዣነት ያገለግላል፤ TURN ሪሌ ብቻ ነው፤ ሚዲያው በWebRTC ተመስጥሮ ይቆያል።

የWebRTC ሚዲያን ሳይታወቅ ማየት የማይቻለው ለምንድን ነው?

WebRTC “ቪዲዮ መላክ” ብቻ አይደለም። ሚዲያው መተላለፍ ከመጀመሩ በፊት መሣሪያዎቹ የDTLS መጨባበጥ ያካሂዳሉ። የድምፅና የቪዲዮ SRTP ቁልፎች ከዚህ ደህንነቱ ከተጠበቀ የማስተላለፊያ ግንኙነት ይመነጫሉ። ከዚያ የሚዲያ ፓኬቶቹ በSRTP ይመሰጠራሉ። የTURN አገልጋይ ፓኬቶቹን ማስተላለፍ ይችላል፤ ነገር ግን ድምፁን ወይም ቪዲዮውን ለመክፈት የሚያስፈልጉትን ቁልፎች አያገኝም።

Timmy ከዚያ በፊት ተጨማሪ የጥበቃ ንብርብር ይጨምራል፦ እንደ SDP ጥያቄዎች፣ SDP ምላሾች እና ICE እጩዎች ያለው የሲግናል ልውውጥ ውሂብ Firestore ከመድረሱ በፊት በAES-256-GCM ይመሰጠራል። Firestore መሣሪያዎቹ ግንኙነቱን እንዲያደራጁ ይረዳል፤ ያልተመሰጠረ ቪዲዮ፣ ድምፅ ወይም የሲግናል ልውውጥ ውሂብ የሚቀመጥበት ቦታ አይደለም።

Timmy አሁንም እንደሚያደርገው የማይናገረው

ኃላፊነት የሚሰማው የሕፃን መቆጣጠሪያ አምራች ምርቱ ፈጽሞ ሊጠለፍ እንደማይችል መናገር የለበትም። ስልክ ከተጠለፈ ማንኛውም መተግበሪያ ሊጠቃ ይችላል። ተንኮል የተጨመረበት የመተግበሪያ ስሪት የአደጋውን ሁኔታ ይቀይራል። የአገልጋዩ ውቅርም ትክክል ሆኖ መቀጠል አለበት። Timmy የሚያቀርበው ይበልጥ የተወሰነ ይገባኛል የሥርዓት ንድፍን ይመለከታል፦ የጀርባ አገልግሎቱ ሊያነባቸው የሚችሉ የሕፃኑን ክፍል የሚዲያ ፋይሎች እንዳይፈጠሩ ያደርጋል፤ በተጨማሪም ለደህንነት ወሳኝ የሆነው የማጣመር አሠራር በይፋዊው ዋና ፕሮጀክት ውስጥ ሊመረመር ይችላል።

ስለማንኛውም የሕፃን ካሜራ ሊጠየቁ የሚገቡ ጥያቄዎች

  • አቅራቢው ምስሎችን ወይም ቅንጥቦችን ያከማቻል?
  • የሚዲያ URLዎች የግል፣ አጭር ጊዜ የሚቆዩ እና ለእያንዳንዱ መሣሪያ ፈቃድ ያላቸው ናቸው?
  • ቁልፎች በመተግበሪያ ውስጥ ቋሚ ከመሆን ይልቅ ለእያንዳንዱ መሣሪያ ወይም ማጣመር ይፈጠራሉ?
  • የመልዕክት ደላላው እርስዎ በእውነት ለሚያዙት መሣሪያ ብቻ መልዕክቶችን ማድረስ ይችላል?
  • የማጣመር ሂደቱ ተጠቃሚው የመካከለኛ ሰው ጥቃት ሙከራን እንዲያስተውል ያስችለዋል?

ኮዱን ያንብቡ

ምንጮች