வலைப்பதிவு

Baby Monitor Timmy தொழில்நுட்ப ரீதியாக எப்படிச் செயல்படுகிறது

WebRTC, Firebase மற்றும் தொடக்கம் முதல் முடிவு வரை பாதுகாப்பு — குழப்பமான தொழில்நுட்பச் சொற்கள் இல்லாமல் விளக்கம்.

மூன்று அடிப்படைக் கூறுகள், ஒரே நோக்கம்

உள்ளே பார்த்தால், Timmy மிகவும் நடைமுறைக்கேற்ற வகையில் உருவாக்கப்பட்டுள்ளது: Flutter செயலிக்காக, WebRTC நேரடி ஆடியோ மற்றும் வீடியோவுக்காக, மற்றும் Firebase ஒருங்கிணைப்புக்காக. எல்லாவற்றையும் கிளவுட் வழியாக அனுப்பும் பெரிய தளத்தை நான் உருவாக்க விரும்பவில்லை. ஒவ்வொரு பகுதியும் முடிந்தவரை குறைந்த தகவலையே அறிந்துகொண்டு, மற்றவற்றுடன் நம்பகமாகச் செயல்பட வேண்டும்.

WebRTC: நேரடி இணைப்பு, இயல்பாகவே மறைகுறியாக்கப்பட்டது

WebRTC (Web Real-Time Communication), குழந்தை சாதனத்துக்கும் பெற்றோர் சாதனத்துக்கும் இடையில் ஆடியோ, வீடியோவை அனுப்புகிறது. சிறந்த சூழலில், தரவு இரு சாதனங்களுக்கிடையே நேரடியாக, peer-to-peer முறையில், நடுவில் எந்த மீடியா சர்வரும் இல்லாமல் பாய்கிறது.

ஒவ்வொரு WebRTC இணைப்பும் இயல்பாகவே DTLS-SRTP-ஐப் பயன்படுத்துகிறது. யாராவது நெட்வொர்க் பாக்கெட்டுகளைப் பிடித்தாலும், அவர்களுக்குப் புரிந்துகொள்ளக்கூடிய ஆடியோவோ வீடியோவோ கிடைக்காது. இந்த மறைகுறியாக்கம் நெறிமுறையின் ஒரு பகுதி; WebRTC-யில் இதை வெறுமனே முடக்கிவிட முடியாது.

எனக்கு முக்கியமானது இதுதான்: குழந்தை அறையின் மீடியா என் சர்வரில் இருக்கக் கூடாது. அது உங்கள் சாதனங்களுக்கிடையிலேயே இருக்கும்.

Firebase Firestore வழியாக சிக்னலிங்

WebRTC தொடங்குவதற்கு முன், சாதனங்கள் ஒன்றையொன்று கண்டறிந்து, தங்களுக்கிடையிலான இணைப்பை எவ்வாறு அமைப்பது என்பதைத் தீர்மானிக்க வேண்டும். இந்தப் பகுதி சிக்னலிங் எனப்படும். இதற்காக Timmy, Google-ன் கிளவுட் தரவுத்தளமான Firebase Firestore-ஐப் பயன்படுத்துகிறது.

தொழில்நுட்ப இணைப்புத் தரவுகள் மட்டுமே பரிமாறப்படுகின்றன:

ஆடியோவும் வீடியோவும் Firebase-க்குச் செல்வதில்லை. Firestore தொழில்நுட்ப இணைப்புத் தரவுகளை மட்டுமே அனுப்புகிறது. Timmy இந்த சிக்னலிங் அடுக்கையும் மறைகுறியாக்குகிறது; எனவே மறைகுறியாக்கப்படாத SDP மற்றும் ICE தரவுகள் கூடும் இடமாக Firestore மாறாது.

TURN சர்வர்கள்: நேரடிப் பாதை செயல்படாதபோது

சில நெட்வொர்க்குகள் நேரடி இணைப்புகளைத் தடுக்கின்றன; உதாரணமாக கடுமையான firewall-கள் அல்லது சில மொபைல் நெட்வொர்க் வழங்குநர்கள். அப்போது WebRTC-க்கு ஒரு TURN relay (NAT-ஐச் சுற்றி relay-களைப் பயன்படுத்தி கடத்துதல்) தேவைப்படும்.

Timmy முதலில் உள்ளூர் TURN சர்வரை முயற்சிக்கிறது; உள்ளூர் relay கிடைக்காதபோது அல்லது அதிக சுமையில் இருக்கும்போது Cloudflare-ஐ மாற்று வழியாகப் பயன்படுத்துகிறது. relay மறைகுறியாக்கப்பட்ட பாக்கெட்டுகளை முன்னோக்கி அனுப்பும். அதற்கு ஒலி அல்லது வீடியோவுக்கான விசைகள் கிடைக்காது; WebRTC மறைகுறியாக்கம் அப்படியே பாதுகாப்பாக இருக்கும்.

TURN அணுகல் சான்றுகள் Firebase Cloud Function-லிருந்து கிடைக்கின்றன; அவை 24 மணிநேரம் மட்டுமே செல்லுபடியாகும். பேபி மானிட்டர் செயலியில் நிரந்தர அணுகல் சான்றுகளை வைத்திருப்பது, என் பார்வையில், அளவுக்கு மீறிய ஆபத்து.

Nearby Connections: சாதனங்கள் தானாகவே ஒன்றையொன்று கண்டறியும்

குழந்தை சாதனத்துக்கும் பெற்றோர் சாதனத்துக்கும் இடையில் சிரமமான அமைப்புப் படிகளைத் தவிர்க்க, Timmy பயன்படுத்துவது Nearby Connections. Bluetooth மற்றும் WiFi வழியாக இந்தக் கண்டறியும் அடுக்கை Google வழங்குகிறது.

Timmy-யில் தானியங்கி pairing கைமுறையாகக் குறியீட்டை உள்ளிடாமலேயே இது செயல்படுகிறது: சாதனங்கள் ஒன்றையொன்று கண்டறிந்து, விசைப் பரிமாற்றத்திற்கான ஒரே சந்திப்பிடத்தைக் கண்டுபிடிக்கின்றன. அது தோல்வியடைந்தால், நீங்கள் உள்ளிடக்கூடிய 4 குறியுருக்கள் கொண்ட குறியீடு உள்ளது. இணைத்தல் குறியீடு சாதனத்திலிருந்து வெளியே அனுப்பப்படுவதில்லை; ஆவண அடையாளங்காட்டியாக Firestore ஒரு மறையியல் ஹாஷை (SHA-256) மட்டுமே காணும்.

அநாமதேய அங்கீகாரம்

Timmy, Firebase Anonymous Authentication-ஐப் பயன்படுத்துகிறது. முதல் முறை திறக்கும்போது ஒவ்வொரு சாதனத்துக்கும் தற்காலிக, அநாமதேய ID கிடைக்கும். கணக்கு, மின்னஞ்சல் முகவரி, கடவுச்சொல் எதுவும் இல்லை. Firestore விதிகளை அமல்படுத்துவதற்காக மட்டுமே இந்த ID உள்ளது: அங்கீகரிக்கப்பட்ட சாதனங்கள் மட்டுமே அமர்வுத் தரவைப் படிக்கவோ எழுதவோ முடியும்.

கட்டமைப்பு: யார் அனுப்புகிறார்கள், யார் பெறுகிறார்கள்

Timmy-யில் இரண்டு முறைகள் உள்ளன:

push-to-talk மற்றும் கேமராவை இயக்குதல்/அணைத்தல் போன்ற கட்டுப்பாடுகள் ஒரு DataChannel, அதாவது சாதனங்களுக்கிடையே சிறிய மறைகுறியாக்கப்பட்ட செய்திகளை நேரடியாக அனுப்பும் மற்றொரு WebRTC சேனலைப் பயன்படுத்துகின்றன.

ஏன் Flutter?

Flutter என்பது பல தளங்களுக்கான செயலிகளை உருவாக்க Google வழங்கும் கட்டமைப்பு. Timmy-யைப் பொறுத்தவரை, பெரும்பாலான செயல்பாட்டு நிரலை ஒருமுறை எழுதிவிட்டு Android மற்றும் iOS இரண்டிலும் பயன்படுத்த முடியும். Timmy Android-ல் கிடைக்கிறது; iOS பதிப்பு விரைவில் வெளியாகவுள்ளது. நகல் குறியீடு குறைவாக இருப்பதால், பிழைகள் நுழையக்கூடிய இடங்களும் குறைகின்றன.

சுருக்கம்

தொழில்நுட்ப விதி எளிமையானது: Timmy உண்மையில் தேவைப்படும் தரவுகளை மட்டுமே கையாள வேண்டும். WebRTC மீடியாவைப் பாதுகாக்கிறது, Firebase இணைப்பு அமைப்பை ஒருங்கிணைக்கிறது, TURN மறைகுறியாக்கப்பட்ட பாக்கெட்டுகளை மட்டுமே பார்க்கிறது; Nearby Connections pairing-ஐ எளிதாக்குகிறது.

நல்ல தொழில்நுட்பம் அன்றாட வாழ்க்கையில் சிறிது கண்ணுக்குத் தெரியாமல் கலந்துவிடும். குழந்தை அறையை கிளவுட் திட்டமாக மாற்றாமல் அது செயல்படும்.


மேலும் கட்டுரைகள்