Kif tgħallimna nikkonnettjaw kameras Ċiniżi għal 1000 rublu mas-sħaba. L-ebda loggers jew SMS (u ffrankati miljuni ta’ dollari)

Hello kulħadd!

Probabbilment mhuwiex sigriet li s-servizzi ta 'sorveljanza bil-vidjo tas-sħab qed jiksbu popolarità reċentement. U huwa ċar għaliex jiġri dan, il-vidjo huwa kontenut "tqil", li l-ħażna tiegħu teħtieġ infrastruttura u ammonti kbar ta 'ħażna fuq disk. L-użu ta’ sistema ta’ sorveljanza bil-vidjo fuq il-post jeħtieġ fondi biex topera u tappoġġja, kemm għal organizzazzjoni li tuża mijiet ta’ kameras ta’ sorveljanza kif ukoll għal utent individwali b’diversi kameras.

Kif tgħallimna nikkonnettjaw kameras Ċiniżi għal 1000 rublu mas-sħaba. L-ebda loggers jew SMS (u ffrankati miljuni ta’ dollari)

Is-sistemi ta 'sorveljanza bil-vidjo tas-sħab isolvu din il-problema billi jipprovdu lill-klijenti b'infrastruttura eżistenti ta' ħażna u pproċessar tal-vidjo. Klijent ta 'sorveljanza bil-vidjo tas-sħab sempliċiment jeħtieġ li jgħaqqad il-kamera mal-Internet u torbotha mal-kont tas-sħab tiegħu.

Hemm diversi modi teknoloġiċi biex tikkonnettja kameras mas-sħaba. Bla dubju, l-aktar metodu konvenjenti u irħas huwa li l-kamera tgħaqqad u taħdem direttament mal-sħaba, mingħajr il-parteċipazzjoni ta 'tagħmir addizzjonali bħal server jew recorder.

Biex tagħmel dan, huwa meħtieġ li modulu tas-softwer li jaħdem mal-sħaba jiġi installat fuq il-kamera. Madankollu, jekk nitkellmu dwar kameras irħas, allura għandhom riżorsi ta 'hardware limitati ħafna, li huma kważi 100% okkupati mill-firmware nattiv tal-bejjiegħ tal-kamera, u m'hemm l-ebda riżorsi meħtieġa għall-plugin tal-cloud. Iżviluppaturi minn ivideon iddedikat din il-problema oġġett, li jispjega għaliex ma jistgħux jinstallaw il-plugin fuq kameras irħas. Bħala riżultat, il-prezz minimu tal-kamera huwa 5000 rublu ($ 80 dollaru) u miljuni ta 'flus minfuqa fuq tagħmir.

Aħna solvejna b'suċċess din il-problema. Jekk inti interessat fil-kif - merħba lill-qatgħa

Ftit storja

Fl-2016, bdejna niżviluppaw pjattaforma ta 'sorveljanza bil-vidjo tas-sħab għal Rostelecom.

F'termini ta 'softwer tal-kamera, fl-ewwel stadju segwejna t-triq "standard" għal kompiti bħal dawn: żviluppajna l-plugin tagħna stess, li huwa installat fil-firmware standard tal-kamera tal-bejjiegħ u jaħdem bil-cloud tagħna. Madankollu, ta 'min jinnota li matul id-disinn użajna l-aktar soluzzjonijiet ħfief u effiċjenti (per eżempju, implimentazzjoni sempliċi C ta' protobuf, libev, mbedtls u libreriji konvenjenti iżda tqal abbandunati kompletament bħal boost)

Bħalissa, m'hemm l-ebda soluzzjonijiet ta 'integrazzjoni universali fis-suq tal-kameras IP: kull bejjiegħ għandu l-mod tiegħu kif jinstalla l-plugin, is-sett ta' APIs tiegħu stess għat-tħaddim tal-firmware, u mekkaniżmu uniku ta 'aġġornament.

Dan ifisser li għal kull bejjiegħ tal-kameras huwa meħtieġ li jiġi żviluppat individwalment saff komprensiv ta 'softwer ta' integrazzjoni. U fil-ħin tal-bidu tal-iżvilupp, huwa rakkomandabbli li taħdem biss ma 'bejjiegħ 1 sabiex tikkonċentra l-isforzi tat-tim fuq l-iżvilupp tal-loġika biex taħdem mal-cloud.

L-ewwel bejjiegħ magħżul kien Hikvision, wieħed mill-mexxejja dinjija fis-suq tal-kameras, li jipprovdi API dokumentat tajjeb u appoġġ tekniku ta 'inġinerija kompetenti.

Nedejna l-ewwel proġett pilota tagħna, sorveljanza bil-vidjo tas-sħab Video Comfort, bl-użu tal-kameras Hikvision.

Kważi immedjatament wara t-tnedija, l-utenti tagħna bdew jistaqsu mistoqsijiet dwar il-possibbiltà li jgħaqqdu kameras irħas minn manifatturi oħra mas-servizz.

Irrifjutajt l-għażla li nimplimenta saff ta 'integrazzjoni għal kull bejjiegħ kważi immedjatament - peress li huwa ma tantx skalabbli u jimponi rekwiżiti tekniċi serji fuq il-ħardwer tal-kamera. L-ispiża ta 'kamera li tissodisfa dawn ir-rekwiżiti ta' input: ~60-70$

Għalhekk, iddeċidejt li nħaffer aktar fil-fond - biex nagħmel il-firmware tiegħi stess għal kameras minn kwalunkwe bejjiegħ. Dan l-approċċ inaqqas b'mod sinifikanti r-rekwiżiti għar-riżorsi tal-ħardwer tal-kamera - għaliex Is-saff biex taħdem mas-sħaba hija integrata b'mod ħafna aktar effettiv mal-applikazzjoni tal-vidjo, u m'hemm l-ebda xaħam mhux użat mhux meħtieġ fil-firmware.

U dak li hu importanti huwa li meta taħdem mal-kamera f'livell baxx, huwa possibbli li tuża hardware AES, li jikkripta d-dejta mingħajr ma toħloq tagħbija addizzjonali fuq is-CPU b'enerġija baxxa.

Kif tgħallimna nikkonnettjaw kameras Ċiniżi għal 1000 rublu mas-sħaba. L-ebda loggers jew SMS (u ffrankati miljuni ta’ dollari)

F’dak il-mument ma kellna xejn. Xejn.

Kważi l-bejjiegħa kollha ma kinux lesti li jaħdmu magħna f'livell daqshekk baxx. M'hemm l-ebda informazzjoni dwar iċ-ċirkwiti u l-komponenti, m'hemm l-ebda SDK uffiċjali ta 'chipsets u dokumentazzjoni tas-sensorju.
M'hemm l-ebda appoġġ tekniku wkoll.

Il-mistoqsijiet kollha kellhom jiġu mwieġba permezz ta’ reverse engineering—prova u żball. Imma rnexxielna.

L-ewwel mudelli ta 'kameras li ttestjajna fuqhom kienu Xiaomi Yi Ants, Hikvision, Dahua, Spezvision, kameras D-Link u bosta kameras Ċiniżi ultra-rħas mingħajr isem.

Teknika

Kameras ibbażati fuq chipset Hisilicon 3518E. Il-karatteristiċi tal-ħardwer tal-kameras huma kif ġej:

Nemel Xiaomi Yi
Bla isem

SoC
Hisilicon 3518E
Hisilicon 3518E

RAM
64MB
64MB

FLASH
16MB
8MB

Wifi
mt7601/bcm43143
-

Sensor
ov9732 (720p)
ov9712 (720p)

Ethernet
-
+

microSD
+
+

Mikrofonu
+
+

Speaker
+
+

IRLed
+
+

IRCut
+
+

Bdejna magħhom.

Bħalissa nappoġġjaw chipsets Hisilicon 3516/3518, kif ukoll Ambarella S2L/S2LM. Hemm għexieren ta 'mudelli ta' kameras.

Kompożizzjoni tal-firmware

sottomarin

uboot huwa l-boot loader, boots l-ewwel wara li jinxtegħel, jinizjalizza l-ħardwer u jgħabbi l-kernel tal-linux.

L-iskript tat-tagħbija tal-kamera huwa pjuttost trivjali:

bootargs=mem=38M console=ttyAMA0,115200 rootfstype=ramfs mtdparts=hi_sfc:256K(boot),64K(tech),4096K(kernel),8192K(app),-(config) hw_type=101
bootcmd=sf probe 0; sf read 0x82000000 0x50000 0x400000; bootm 0x82000000; setenv bootargs $(bootargs) bkp=1; sf read 0x82000000 0x450000 0x400000; bootm 0x82000000

Waħda mill-karatteristiċi hija li tissejjaħ darbtejn bootm, aktar dwar dan ftit aktar tard, meta naslu għas-subsistema ta 'aġġornament.

Oqgħod attent għal-linja mem=38M. Iva, iva, dan mhuwiex typo - il-kernel tal-Linux u l-applikazzjonijiet kollha, kollha, kollha għandhom aċċess biss għal 38 megabytes ta 'RAM.

Ukoll ħdejn uboot hemm blokk speċjali msejjaħ reg_info, li fih skript ta 'livell baxx għall-inizjalizzazzjoni tad-DDR u numru ta' reġistri tas-sistema tas-SoC. Kontenut reg_info jiddependi fuq il-mudell tal-kamera, u jekk ma tkunx korretta, il-kamera lanqas biss tkun tista 'tagħbija uboot, iżda tiffriża fl-istadju bikri ħafna tat-tagħbija.

Għall-ewwel, meta ħdimna mingħajr appoġġ tal-bejjiegħ, aħna sempliċement ikkuppjajna din il-blokka mill-firmware oriġinali tal-kamera.

Linux kernel u rootfs

Il-kameras jużaw il-qalba tal-Linux, li hija parti mill-SDK taċ-ċippa; ġeneralment dawn mhumiex l-aħħar kernels mill-fergħa 3.x, għalhekk ħafna drabi jkollna nittrattaw il-fatt li s-sewwieqa għal tagħmir addizzjonali mhumiex kompatibbli mal-qalba użata , u rridu nġibuhom lura lejn il-kameras tal-qalba.

Kwistjoni oħra hija d-daqs tal-qalba. Meta d-daqs FLASH huwa biss 8MB, allura kull byte jgħodd u l-kompitu tagħna huwa li tiddiżattiva bir-reqqa l-funzjonijiet kollha tal-qalba mhux użati sabiex innaqqsu d-daqs għall-minimu.

Rootfs hija sistema bażika tal-fajls. Jinkludi busybox, sewwieqa tal-modulu wifi, sett ta 'libreriji tas-sistema standard, bħal libld и libc, kif ukoll is-softwer tagħna, li huwa responsabbli għall-loġika tal-kontroll LED, il-ġestjoni tal-konnessjoni tan-netwerk u l-aġġornamenti tal-firmware.

Is-sistema tal-fajls tal-għeruq hija konnessa mal-qalba bħala initramfs u bħala riżultat tal-bini jkollna fajl wieħed uImage, li fih kemm il-qalba kif ukoll l-għeruq.

Applikazzjoni tal-vidjo

Il-parti l-aktar kumplessa u intensiva tar-riżorsi tal-firmware hija l-applikazzjoni, li tipprovdi qbid tal-vidjo-awdjo, kodifikazzjoni tal-vidjo, tikkonfigura l-parametri tal-istampa, timplimenta l-analiżi tal-vidjo, pereżempju, ditekters tal-moviment jew tal-ħoss, tikkontrolla PTZ u hija responsabbli għall-bidla tal-ġurnata u modi bil-lejl.

Karatteristika importanti, jien ngħid anke ewlenija, hija kif l-applikazzjoni tal-vidjo jinteraġixxi mal-plugin tal-cloud.

F'soluzzjonijiet tradizzjonali 'vendor firmware + cloud plugin', li ma jistgħux jaħdmu fuq ħardwer irħis, vidjo ġewwa l-kamera jiġi trażmess permezz tal-protokoll RTSP - u dan huwa overhead enormi: ikkupjar u trażmissjoni ta 'data permezz ta' socket, syscalls bla bżonn.

Hawnhekk nużaw il-mekkaniżmu tal-memorja kondiviża - il-vidjo ma jiġix ikkupjat jew mibgħut permezz ta 'socket bejn il-komponenti tas-softwer tal-kamera, u b'hekk bl-aħjar mod u bir-reqqa nużaw il-kapaċitajiet modesti tal-hardware tal-kamera.

Kif tgħallimna nikkonnettjaw kameras Ċiniżi għal 1000 rublu mas-sħaba. L-ebda loggers jew SMS (u ffrankati miljuni ta’ dollari)

Aġġorna s-subsistema

Punt ta 'kburija speċjali hija s-subsistema li tollera l-ħsarat għall-aġġornamenti tal-firmware onlajn.

Ħa nispjega l-problema. L-aġġornament tal-firmware teknikament mhuwiex operazzjoni atomika, u jekk isseħħ nuqqas ta 'enerġija fin-nofs tal-aġġornament, allura l-memorja flash se jkun fiha parti mill-firmware ġdid "taħt miktub". Jekk ma tieħux miżuri speċjali, il-kamera mbagħad issir "briks" li jeħtieġ li jittieħed f'ċentru ta 'servizz.

Aħna ttrattati din il-problema wkoll. Anke jekk il-kamera tkun mitfija waqt l-aġġornament, awtomatikament u mingħajr intervent tal-utent tniżżel il-firmware mill-sħaba u tirrestawra l-operazzjoni.

Ejja nħarsu lejn it-teknika f'aktar dettall:

L-aktar punt vulnerabbli huwa l-kitba fuq il-partizzjoni bis-sistema tal-kernel u l-fajl tal-għeruq tal-Linux. Jekk wieħed minn dawn il-komponenti jkun bil-ħsara, il-kamera ma tibbotja xejn lil hinn mill-uboot bootloader, li ma jistax tniżżel il-firmware mill-cloud.

Dan ifisser li għandna bżonn niżguraw li l-kamera jkollha għadma u rootfs li jaħdmu fi kwalunkwe ħin matul il-proċess ta 'aġġornament. Jidher li l-aktar soluzzjoni sempliċi tkun li kontinwament taħżen żewġ kopji tal-qalba b'rootfs fuq memorja flash u, jekk il-qalba prinċipali tkun bil-ħsara, tagħbijaha mill-kopja tal-backup.

Soluzzjoni tajba - madankollu, il-kernel b'rootfs jieħu madwar 3.5MB u għal backup permanenti għandek bżonn talloka 3.5MB. L-orħos kameras sempliċement m'għandhomx daqshekk spazju ħieles għal qalba ta 'backup.

Għalhekk, biex tagħmel backup tal-qalba waqt aġġornament tal-firmware, nużaw il-partizzjoni tal-applikazzjoni.
U biex tagħżel il-partizzjoni mixtieqa bil-qalba, jintużaw żewġ kmandi bootm f'uboot - fil-bidu nippruvaw tagħbija l-qalba prinċipali u jekk tkun bil-ħsara, allura dik tal-backup.

Kif tgħallimna nikkonnettjaw kameras Ċiniżi għal 1000 rublu mas-sħaba. L-ebda loggers jew SMS (u ffrankati miljuni ta’ dollari)

Dan jiżgura li fi kwalunkwe ħin partikolari l-kamera jkollha l-qalba korretta b'rootfs, u tkun tista 'tibbutja u tirrestawra l-firmware.

Sistema CI/CD għall-bini u l-iskjerament tal-firmware

Biex nibnu firmware, nużaw gitlab CI, li awtomatikament jibni firmware għall-mudelli kollha ta 'kamera appoġġjati, u wara li jinbena l-firmware, huwa awtomatikament skjerat għas-servizz ta' aġġornament tas-softwer tal-kamera.

Kif tgħallimna nikkonnettjaw kameras Ċiniżi għal 1000 rublu mas-sħaba. L-ebda loggers jew SMS (u ffrankati miljuni ta’ dollari)

Mis-servizz, l-aġġornamenti tal-firmware jitwasslu lill-kameras tat-test tal-QA tagħna, u mat-tlestija tal-istadji kollha tal-ittestjar, lill-kameras tal-utenti.

Sigurtà tal-Informazzjoni

Mhuwiex sigriet li llum il-ġurnata s-sigurtà tal-informazzjoni hija l-aktar aspett importanti ta 'kwalunkwe apparat IoT, inklużi kameras. Botnets bħal Mirai qed jimirħu fuq l-Internet, u jinfettaw miljuni ta 'kameras b'firmware standard minn bejjiegħa. Bir-rispett kollu lejn il-bejjiegħa tal-kameras, ma nistax ma ninnotax li l-firmware standard fih ħafna funzjonalità li mhix meħtieġa biex taħdem mal-cloud, iżda fiha ħafna vulnerabbiltajiet li l-botnets jieħdu vantaġġ minnhom.

Għalhekk, il-funzjonalità kollha mhux użata fil-firmware tagħna hija diżattivata, il-portijiet kollha tcp/udp huma magħluqa, u meta taġġorna l-firmware, il-firma diġitali tas-softwer tiġi kkontrollata.

U minbarra dan, il-firmware jgħaddi minn testijiet regolari fil-laboratorju tas-sigurtà tal-informazzjoni.

Konklużjoni

Issa l-firmware tagħna jintuża b'mod attiv fi proġetti ta 'sorveljanza bil-vidjo. Forsi l-akbar wieħed minnhom huwa x-xandir tal-votazzjoni fil-jum tal-elezzjoni tal-President tal-Federazzjoni Russa.
Il-proġett involva aktar minn 70 elf kamera bil-firmware tagħna, li ġew installati fil-postijiet tal-votazzjoni f’pajjiżna.

Wara li solvejna numru ta 'kumplessi, u f'xi postijiet, anke f'dak iż-żmien problemi kważi impossibbli, aħna, ovvjament, irċevejna sodisfazzjon kbir bħala inġiniera, iżda minbarra dan, aħna ffrankajna wkoll miljuni ta' dollari fuq ix-xiri ta 'kameras. U f'dan il-każ, l-iffrankar mhumiex biss kliem u kalkoli teoretiċi, iżda r-riżultati ta 'offerta diġà kompluta għax-xiri ta' tagħmir. Għaldaqstant, jekk nitkellmu dwar is-sorveljanza bil-vidjo tas-sħab: hemm żewġ approċċi - tiddependi strateġikament fuq għarfien espert u żvilupp ta 'livell baxx, li jirriżulta f'iffrankar kbir fuq tagħmir, jew tuża tagħmir għali, li, jekk tħares speċifikament lejn il-karatteristiċi tal-konsumatur, huwa prattikament l-ebda differenti minn dawk simili irħas.

Għaliex huwa strateġikament importanti li wieħed jiddeċiedi dwar l-għażla tal-approċċ ta' integrazzjoni kemm jista' jkun kmieni? Meta jiżviluppaw plugin, l-iżviluppaturi jiddependu fuq ċerti teknoloġiji (libreriji, protokolli, standards). U jekk sett ta 'teknoloġiji jintgħażel biss għal tagħmir għali, allura fil-futur tentattiv biex jaqilbu għal kameras irħas x'aktarx, bħala minimu, jieħu żmien twil ħafna jew saħansitra jonqos u jseħħ ritorn għal tagħmir għali.

Sors: www.habr.com

Żid kumment