Как уберечь IP камеру от ботнета Mirai с Flussonic Agent

    Недавняя серия рекордных DDoS атак под терабит здорово взбудоражила тех, кто вроде к такому уже привык. Вполне возможно, что ситуация повторится в ближайшее время, причем с существенно большей силой, ведь базовые причины возникновения такого мощного ботнета как Mirai не устранены.

    На самом деле несекьюрность IP камер это в целом секрет Полишинеля и причин тому много: это исторически сложившаяся практика работы с ними, сложность доступа к ним, инертность производителей.

    Я хочу рассказать о некоторых аспектах этой проблемы и какие могут быть шаги, чтобы снизить остроту этой проблемы.

    Текущее положение дел


    Итак, сейчас в мире продаются миллионы IP камер. Первая же ссылка из интернета заявляет про 200 миллионов камер безопасности, и эта цифра выглядит вполне разумно.

    Не все CCTV камеры — IP, до сих пор продается огромное количество аналоговых камер. Аналоговые камеры понятны, в своём роде удобны, предсказуемы: ведь в них нет никакого глючащего софта, всё аппаратное. Но даже несмотря на последний всплеск AHD и HDCVI, IP камеры в силу лучшего качества картинки и большей гибкости замещают аналог (прекрасный повод аргументированно обсудить столь интересный вопрос в комментариях).

    IP камера состоит из сенсора, чипа по обработке и кодированию видео, процессора для общей обработки, периферии типа GPIO, SDcard и Ethernet, софта внутри всего этого, объектива и корпуса.

    Несмотря на кажущееся гигантское разнообразие IP камер на рынке (кажется, «производителей» как минимум много тысяч, может ещё больше), на самом деле тех, кто реально что-то делает внутри очень немного. Если понизить ценовую планку, выкинув из рассмотрения таких уважаемых грандов как Axis, то в ценовом диапазоне, скажем, «до $150 за камеру» окажется совсем немного фирм.

    Порядка 3-4 производителей сенсоров, 4-6 производителей чипов+процессоров (это комбинированный чип), несколько тех, кто собирает всё на плату. Корпуса — и те не особо разнообразны, зато целый Шеньжень тех, кто готов это собрать, скрутить и наклеить нужный логотип на коробку. А вот самое интересное — это те, кто делает софт. Во многом их инженерные решения открыли дорогу Mirai.

    Таких тоже немного, здесь не получилось вырасти большому количеству производителей. Вся информация достаточно скрыта и это источник проблемы. Внутри почти всех камер стоит обычный линукс с модулями к ядру. Эти модули позволяют сконфигурировать чип, обрабатывающий видео с сенсора и получать это видео в памяти программы. Есть камеры, которые без линукса: там фактически одна большая программа, живущая в ring 0 (если так можно говорить про ARM), но это очень дорого в разработке и сегодня редкость. Дальше отправить видео в сеть — дело техники, и вот это дело как раз решено достаточно посредственно.

    Мало того, что большинство дешевых камер освоили тонкое искусство потери данных по TCP, так там ещё и почти везде один и тот же пароль, идущий в серии. Что мы, собственно говоря, и видели из исходников ботнета.

    И это мы ещё не будем здесь рассказывать про волшебные магические UDP пакеты, которые позволяют менять настройки сети. Весь тот бред, над которым мы смеемся в голливудских фильмах про «я вошел в их систему, сейчас переключу их видеокамеры на статическую картинку» вовсе не бред, а горькая и жестокая реальность.

    Откуда берется такая беспечность производителей? Ведь их поведение вызывает ассоциацию прежде всего с анекдотом про Вовочку и слово, которого нет, хотя сам объект вроде как есть. Добиться от производителя прошивки какой-либо конкретной информации о кишках камеры очень и очень сложно, они, как правило, придерживаются той позиции, что это закрытое устройство, в котором вроде как и линукса-то никакого нет. А может и есть, но вас это не касается, не смотрите туда, смотрите в наши рекламные проспекты.

    Предпосылки


    Постараемся подумать о том, что могло к этому привести.

    Во-первых, тематика видеонаблюдения традиционно вертится вокруг изолированных сетей. Всё это выросло из 4 камер, подключенных напрямую к монитору перед охранником в мозаику (мы, кстати, серверную мозаику умеем делать и очень круто, но внезапно это не для охранника, а для экономии места). Охранник сидит с дубинкой в руках всю смену и в течение 1250 миллисекунд срывается в сторону любой проблемы. Нейросеть обрабатывает любые отклонения похлеще вашей Nvidia Tesla. Правда иногда любит выпить или вздремнуть, чем здорово портит всю картину.

    Подключение к такой сети требует для начала физического присутствия, а против этого можно теми же самыми камерами прикрыть траекторию прохода кабеля. Говорят, что у угрюмых людей эти кабели убраны чуть ли не в герметичные трубки с повышенным давлением, чтобы при просверливании к кабелю срабатывал датчик давления.

    Важно понимать: до сих пор практически никто не предлагает даже TLS шифрования видео, уходящего с камер! Вся тематика видеонаблюдения не особо рассчитана на внутреннюю безопасность самой видеоинфраструктуры. По крайней мере, не настолько, насколько об этом раздувают щеки те, кто с радостью берет деньги на борьбу со страшными угрозами.

    Во-вторых, IP камеры обычно всё-таки являются частью целой инфраструктуры по решению задач охраны и являются частью програмно-аппаратно-человеческо-сервисного комплекса. Т.е. традиционно IP камера втыкается в регистратор, к нему охранник, охраннику кнопку, к кнопке группа быстрого реагирования. То, что сегодня вдруг люди начали вешать камеры себе в подъезд, а города вешают камеры на улицах тысячами — всё это идет немного вразрез с тем, для чего это всё планировалось. Т.е. возникли новые форматы использования очень удачного устройства, для которых это устройство не особо предназначено.

    В-третьих, IP камера — это очень изолированное устройство. Чрезвычайно сложно взять IP камеру в руки и настроить конкретно её, ведь в ней практически нет никаких интерфейсов ввода-вывода.

    Это тема для отдельной статьи и мы про это расскажем, но давайте просто запомним этот момент: IP камеру действительно неудобно настраивать.

    Онлайн


    Итак, IP камеры внезапно стали нужны как OTT устройства, с онлайн доступом к ним. Термин OTT — over the top — означает, что сервис оказывается не в контролируемой сети, а через публичный интернет или хотя бы через стык нескольких сетей. Т.е. в условиях, когда никакой гарантии скорости не будет и можно говорить лишь о достаточно эфемерном понятии, как «скорость интернета». Однако, как мы уже выяснили, «скорости интернета» от камеры в Бразилии до серверов Dyn вполне хватило, чтобы те головы поднять не могли.

    Там, где раньше вешалась изолированная система, терминировавшаяся на охраннике, теперь возникло устройство, к которому ходят через интернет за видео. Посмотреть: как там дела в своём маленьком магазинчике, стоит ли всё ещё почтовый ящик перед домом, как там детки в садике играют. Безусловно, производители камер (преимущественно китайцы, потому что только их камеры можно себе позволить) ответили на вызов рынка. Появились мобильные приложения (на IP камерах на сегодняшний день практически отсутствует возможность увидеть видео без ActiveX, так что веб-доступ к видео камеры по сути не предлагают), которые ходят напрямую к камере и показывают видео.

    Тут возникла интересная ситуация: для онлайн доступа людей начали приучивать к выставлению каких-то портов наружу. Многие из таких клиентов не пользуются даже стандартным протоколом RTSP,
    вместо него гоняют видео по интересной и экзотической штуке, идущей по протоколу 34567 (мы потихоньку разбираем его структуру), но кому есть до этого дело, когда проще выставить все порты наружу. И кому же может понадобиться моя маленькая камера, которая смотрит на парковку перед домом?

    Т.е. важной предпосылкой запуска Mirai послужило то, что производители для предоставления онлайн доступа массово заставили людей разобраться с пробросом портов и массово выставили в интернет устройства, способные генерировать десятки мегабит трафика, причем в своей массе это устройства с одним и тем же рутовым паролем. Просто прекрасно, не находите? Всё это богатство лежало здесь под ногами последние лет 5 минимум.

    Как эту проблему будут решать сейчас — пока непонятно, и это уже не совсем наша компетенция. Можно массово пройтись по всем камерам, найденным в интернете, и превратить их в кирпич, можно массово их запатчить, можно заставить провайдеров их блокировать. Мы хотим поговорить о другом: как сегодня не превращать камеру в члена такого ботнета.

    Современный доступ к камерам


    Прогресс не стоит на месте и сегодня сформировалось два базовых способа доступа к IP камерам онлайн: напрямую и через сервер в интернете.

    Доступ напрямую разумен в случае с локальной сетью, но как мы уже выяснили, напрямую ходить к современной IP камере по интернету — идея не всегда хорошая. Даже когда устранят проблемы с безопасностью, сохранится проблема с одновременным доступом к камерам. Так, например, в детских садах умилительно выглядит просьба администраторов родителям не заходить на камеры больше чем по четыре одновременно.

    Сегодня очень много ADSL интернета, ключевая особенность которого — A, asymmetric. Можно много скачивать, но отдавать много уже тяжело.

    Так что поговорим про онлайн сервисы, предоставляющие доступ к камерам.

    Онлайн сервис по доступу к камерам (VSaaS, video surveillance as a service) помимо возможности смотреть камеру удаленно может предложить ещё интересные возможности, самая главная из которых — удаленный регистратор. Очень часто видеорегистратор, устройство на которое пишется видео, первым страдает при противоправных действиях. Когда видео сразу утекло в интернет, то его оттуда уже очень сложно достать, задача примерно такого же характера, как попытка запихать взятку в дорожную камеру. Да, это конечно не спасет сами камеры и всё равно запись прервется, но шанс отнести в полицию фотографии злоумышленников растет.

    Скажете, дорого писать всё видео в интернет? Совсем недавно одна мысль о просмотре фильмов онлайн пугала и заставляла хвататься за кошелек, а сегодня это уже норма вместо полок с CD. То же самое и с неиспользуемым обратным направлением трафика: почему бы не загрузить, особенно если сервис предоставляет ваш провайдер. Некоторые делают запись в облако по движению, но здесь и по сей день есть доводы как за, так и против. Чего будет стоить экономия пары тысяч рублей, если камера не запишет те самые 10 минут, которые были нужны? С другой стороны, для многих случаев переключение камеры в режим записи по детекции движения делает сам облачный сервис практически бесплатным для его поставщика.

    Как же добираются до камер интернет-сервисы, особенно OTT, т.е. не владеющие каналом связи до камеры?

    Связь с камерами


    Как можно сделать более безопасной связь камеры с онлайн сервисом, не выставляя её наружу? Через канал связи непосредственно с сервисом.

    Давайте поднимем что-нибудь типа VPN туннеля или будем публиковать видео с камеры на сервер и тогда уберем проблему с mirai. Некоторые китайцы здесь пошли дальше и продают камеры, которые якобы работают только с их сервисом. Здесь, правда, ситуация опять как с Вовочкой и запретным словом, потому что несмотря на заверения китайских менеджеров, на таких камерах всё-таки есть RTSP сервер, да и логин со стандартным паролем.

    Наши дорогие юго-восточные соседи здесь создают массу других интересных источников для будущих проблем. Так, например, нам попала в руки камера с онлайн-сервисом по доступу к этой камере на борту. В камере была такая чудесная возможность, как посылка почты при срабатывании детектора движения. Производитель камеры решил пойти backendless путем и зашил на все камеры один и тот же логин-пароль от одного аккаунта на сайте 163.com (это такой китайский mail.ru). Как вы понимаете, можно не только посмотреть, что интересного есть у других покупателей этой камеры, но и послать что-нибудь интересное и очень активное покупателям такой камеры.

    Но давайте вернемся в более стандартную на сегодняшний день ситуацию: онлайн-доступ к камере дополняет традиционную работу с регистратором, а сама камера за NAT-ом и снаружи не видна.

    Мы видели два базовых способа получить видео с камеры: какой-то софт на камере публикует видео на сервер, т.е. является инициатором начала передачи видео, и какой-то софт на камере делает камеру доступной для сервера в интернете (читай VPN туннель).

    Второй способ почти всегда является гораздо более практичным, поскольку позволяет серверу самому решать, когда ему брать видео, какого качества или вообще брать скриншоты с камеры.

    В первом же случае необходимо продумывать сложные механизмы обратной связи, чтобы всегда можно было сказать «горшочек, не вари», иначе вы сами себе сделаете микро-mirai: 1000 камер, пытающихся залить мегабитный поток не туда, куда нужно, вполне себе тянет на солидную проблему.

    Давайте немного посмотрим на то, какие бывают варианты организовать VPN туннель или что-то похожее.

    OpenVPN


    Самым простым вариантом традиционно является OpenVPN. Серверная часть бесплатная и относительно несложно настраивается, когда нужно сделать 100-300 камер. Главный плюс openvpn в том, что он уже есть из коробки в проекте buildroot, с помощью которого собираются прошивки большинства камер.

    OpenVPN клиент запускается на камере, каким-то образом при первом старте получает сертификат и дальше ходит к сервису. С той стороны есть стриминговый сервер, который видит, что камера подключилась, и начинает с неё забирать видео, скриншоты или делать какие-то другие вещи.

    VPN подход ещё удобен тем, что вся вариативность логики на стороне сервиса. Там гораздо проще и удобнее что-то обновлять, поддерживать, изменять, чем на камере. Цена ошибки на камере — потеря не только камеры, но ещё и клиента, да ещё и веселых и приятных обсуждений по форумам.

    Есть у такого подхода и свои недостатки.

    VPN — это всё-таки мощный механизм для решения очень общих задач и достаточно ресурсоемкий для сервера. К сожалению, мы не получили никаких практических данных о том, можно ли на одном сервере принять гигабит трафика через OpenVPN и отправить его в стриминговый сервер, но судя по всему — это перебор.

    Совершенно точно можно сказать, что использование OpenVPN — это минимум удвоение серверной инфраструктуры по сравнению с обычной системой, потому что надо гнать трафик сначала на отдельный OpenVPN сервер, а потом уже на стриминговый сервер.

    Мы в Эрливидео разработали собственное решение для доступа к камерам за NAT, требующее установки на камеру нашего агента. Он работает по-другому.

    Flussonic Agent


    Итак, мы поставили перед собой цель разработать некоторый софт, ставящийся на камеру для того, чтобы добраться до камеры с сервера в интернете.

    Мы отказались от идеи делать отдельно VPN сервер, отдельно стриминговый — ведь трафик ожидается большой на каждый сервер, зачем его дублировать между разным софтом. Наш агент подсоединяется напрямую к Flussonic и отдает видео с камеры сразу в функцию разбора RTSP, т.е. это не обобщенный транспорт, а специализированная штука для доставки видео и скриншотов с камеры на Flussonic с минимальными затратами.

    Также мы решили несколько вопросов, а именно: на какой адрес идти этому агенту и что делать, если Flussonic выключится.

    С выключением Flussonic мы решили поступить двухфазной схемой протокола: сначала агент соединяется с координатором (endpoint в нашей терминологии) и потом уже от него идет к стриминговому серверу. Если endpoint упал уже после подключения к стримеру, то ничего страшного, работа продолжается.

    С адресом endpoint ситуация хитрее. Поскольку мы не сервисная компания, а софтверная, то мы продаем людям софт для организации их сервисов. Таким образом мы не можем зашить один фиксированный адрес в агента, надо чтобы это было настраиваемым. Здесь мы также продумали несложное техническое решение, позволяющее отправить агента на нужный адрес при первичной активации.

    В итоге у нас есть свой несложный механизм получения доступа к камере, находящейся за NAT-ом. Даже с включенным шифрованием он менее ресурсоёмкий, чем низкоуровневый OpenVPN, и, в отличие от последнего, помогает решить «баг, которого нет», ведь все данные быстро забираются нашим агентом, а из него уже с помощью хозбытового libevent льются в интернет.

    На сервере уже сам Flussonic решает согласно своих настроек, что ему надо пойти к камере и забрать с неё видео или скриншот, или даже начать обратную аудиотрансляцию.

    Такие подходы (штатный vpn, публикация с камеры, самодельный туннель) позволяют снизить риск от выставления камеры в интернет. В следующих статьях мы расскажем о том, как мы заливаем нашего агента на камеры, как он работает в сервисе по предоставлению видео с камер пользователям, какие есть интересные моменты с его настройкой и, что самое интересное, как камера привязывается к пользователю — тут целая уйма вариантов. Ещё в черновиках есть про собственную прошивку IP камеры — пишите в комментариях, что интереснее.
    Эрливидео
    Современный видеостриминговый сервер

    Похожие публикации

    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 37

      0
      Как вы решаете проблему разнообразия аппаратной части? Даже один чип пять производителей могут подключить пятью разными способами. При этом потребуется пять разных прошивок, либо фокусы с подгрузкой правильного device tree.
        +1
        очень хороший вопрос, спасибо.

        В данный момент у нас агент достаточно примитивный, т.е. он оставляет на штатной вендорской софтине задачу по захвату видео и общается с ней по HTTP, RTSP, а теперь ещё и по 34567 начали.

        Т.е. по сути сейчас нам надо собрать программу на C с libevent под разные платформы, а это оказалось достаточно несложно: несколько разных ARM-ов (uclibc, glibc, ешё-какая-то-libc) и MIPS для OpenWRT. Тот же агент очень хорошо подошел для установки на роутеры.

        Прошивки действительно разные, более того, мы их всё равно помогаем готовить для каждого клиента. От 500 камер уже брендируют, лепят свой логотип и т.п.

        То, о чём вы говорите — это вместо штатной прошивки, выкинуть Sofia, Sonya или чего туда ещё впихнут. Такой проект у нас есть, это своя прошивка. В данный момент он в стадии отладки механизма обновлений.
        +1
        Я и не представлял, что все так плохо на рынке IP-камер. Как люди могут открывать свои камеры в интернет? Дополнительные уроки компьютерной грамотности нужно вводить в школах.

        Появилась идея для стартапа: OpenSource IP-камера, на базе какой-нибудь Raspberry PI, со встроенным архивом и синхронизацией с внешним облаком. Что-нибудь такое безопасное и современное, но доступное не только гикам. Хотя, такое уже есть, да?
          +2
          Все варианты с raspberry pi и прочими разбиваются о жестокую реальность питания и корпуса.

          Сегодня китайские IP камеры упали в цене до 9$ в розницу (может есть и ниже) и это за компьютер с сенсором, объективом, корпусом и питанием.

          Для малинки хороших защищенных корпусов с решенным питанием (про POE молчу) особо не видать.
            +1
            у длинка такие камеры
            подключаешь, вставляешь sd карточку
            и готово. трансляция через их вебморду
              0
              Такие производители сейчас встречаются.

              У многих есть только трансляция, некоторые дают и запись. Но так что бы хотя бы через флеш, а не через activex сделали трансляцию видео — почти ни у кого нет.
                +2
                Опять-таки, нужно открывать в интернет? Я не доверяю веб-интерфейсам роутеров/камер. Уже сколько новостей было про найденные backdoor в роутерах, а сколько еще не найдено…
                  0
                  ну если хотите просматривать через web морду dlink (http://my.dlink.ru) то дать интернет камере придеться, но пробрасывать порты не нужно
                    0
                    это как раз то, о чём я упомянул: сами вендоры начали давать такие сервисы.

                    У китайцев такого сейчас много, но это совершенно не интернационально, весь трафик строго через китай.
                0
                Это вы про школы, которые порой веб-камерами светятся в интернете же?
                  0
                  ох, и чего только не светится незапароленными IP-камерами в интернете!
                0
                Администрирую сеть в которой около 300 ip камер разных производителей и годов выпуска, больше всего проблем доставляют относительно новые камеры (2014-2016 годов). Так не редко камеры hikvision начинают общаться (или матерится) с людьми в торговом комплексе =) Самая большая проблема в том что не понятно как это делается. Пароли сложные, в логах доступа к камере пусто, серверный софт самописный. В сети полностью заблокирован трафик на всех используемых портах (которые указанны в инструкциях) но этого мало…

                mirai меня немного зацепил, 2 камеры генерировали бешеное количество трафика.

                Резюмируя:
                ip камеры зло которое заперто под семью замками, но у некоторых есть ключи от них.
                  0
                  интересно как. А что значит хиквижн общается? Цепляется к каким-то приложениям, запущенным на смартфонах?

                  Может вы видите по каким портам идет обмен?
                    +1
                    в камере есть микрофон и динамик. Пару раз когда в интернет были закрыты только указанные в инструкциях порты (80,455, 8000) кто-то умудрялся подключатся к камерам и пользоваться динамиком и микрофоном. После того как камера заговорила с директором сеть камер была полностью отключена от интернета.
                    Как к ним цеплялись мы частично разобрались: по неустановленной причине камеры начинали требовать по UPnP себе порт наружу к которому и подключались «Хакеры». Что за софт установить не удалось но обмен был очень похож на стандартный софт SADPTool. Что заставляло камеры требовать порт неизвестно.
                      +1
                      Ага, ясно.

                      Да, это ужасная история и это именно как раз те самые решения, которые порождают мираи. При этом попытка обсудить это с вендором заканчивается раз за разом одним и тем же: нет там никакого линукса, все протоколы закрыты, всё безопасно, проходите дальше мы и без вас продадим миллион камер.
                        0
                        а что за гений включил на маршрутизаторе UPnP?
                    0
                    Абсолютно правильные тезисы. Не так давно я сам задумался над решением обозначенной в статье проблемы. Рассматривал разные варианты, в частности установку некоего агента на камеру, но в конечном итоге отказался от этой идеи.
                    Причины следующие:
                    • Зоопарк камер. Неизвестно с какой камерой придет клиент. Неизвестно какая будет у нее аппаратная ревизия. Неизвестно какая будет ревизия программного обеспечения. Тестировать все варианты — смерти подобно.
                    • Зачастую камеры имеют ограниченные вычислительные возможности. Да и с памятью у них зачастую все печально, как оперативной так и флэш.
                    • Могут встретиться камеры на которых агента подсадить будет проблематично. Тем самым ограничиваем себя и пользователей по ассортименту.
                    • С большой долей вероятности агента на камеры придется ставить самому, т.к. объяснить пользователю как это делать, с большой вероятностью, будет нереально. Для Москвы/Питера/иного-региона-присутствия это может и не сильно большая проблема, но с удалением от столиц проблема становится все острее. В итоге все может вылиться в решение используемое iVideon, а именно работа с производителями камер и предоставлением им некоего sdk. Но опять же, нельзя будет прийти в магазин и купить первую понравившуюся камеру.
                    • … возможно что-то еще о чем подзабыл...;


                    В конечном итоге я решил идти по иному пути. Взять Raspberry Pi 3, и реализовать агента на нем.
                    Почему так:
                    • RPi 3 имеет wi-fi на борту, камеры можно подключать через wi-fi;
                    • ARM устройства кушают мало, греются относительно слабо, имеют относительно компактные размеры;
                    • RPi 3 очень хорошо оттестированная железяка, кроме того на начальном этапе нет необходимости заморачиваться с проектированием своего собственного устройства, т.к. это имеет смысл только при больших тиражах;
                    • RPi более производителен чем типовая IP камера (4 ядра все-таки);
                    • RPi относительно дешев;
                    • Можно использовать мощные библиотеки типа GStreamer, и не ограничивать себя только камерами умеющими RTSP;
                    • VPN не обязателен, можно обойтись SSL/TLS;
                    • … возможно что-то еще о чем подзабыл...;


                    Для упрощения первоначального конфигурирования хочу сделать простенький сервис к которому устройство подключаться при включении и получать всю конфигурацию с него. Соответственно пользователь конфигурирует устройство подключаясь к веб сайту в интернете/интранете, а не непосредственно к устройству.

                    Может возникнуть вопрос зачем я это все написал — ответ простой, хочу услышать критику.
                      0
                      Чуть выше есть ответ на похожий вопрос. Использование малинки вдвое удорожает стоимость установки камеры, даже если одна малинка будет обслуживать несколько камер.
                        0
                        С этим тезисом согласен. Но надеюсь этот недостаток перекрыть более широким функционалом, например из того что забыл упомянуть:
                        • Возможность загрузки видео в облачные хранилища общего назначения, такие как DropBox, Google Drive, Microsoft OneDrive. Да и тот же iVideon в конце концов (если дадут доступ к SDK конечно);
                        • Возможность шифрования видео, через ту же PKI (надеюсь мощности RPi для этого достаточно, еще не проверял);
                        • Опять же, h264 стрим в браузере без костылей не проиграть, поэтому можно проводить конвертацию перед отправкой, например в набор .mp4 файлов;
                        • Реализация гарантированной доставки через медленные/ненадежные каналы (например GSM модем, но тут, возможно, без детектора движения уже не обойтись);
                          0
                          На шифрование мощности хватит. Камера без проблем шифрует мегабитный поток.

                          H264 в браузере проигрывается, но для этого его надо упаковать в контейнер. Например в то, что играется через dash или в rtmp.

                          С малинкой главная и основная проблема: это настольная платка для которой нет массово доступного корпуса. Нельзя повесить малинку на улицу на стену. IP камеру можно, все современные камеры уже и без кожухов идут.
                            0
                            > H264 в браузере проигрывается, но для этого его надо упаковать в контейнер.

                            Да, я об этом и говорю, .ts (для HLS) и .mp4 (для DASH) можно готовить непосредственно на RPi, благо перепаковка не сильно ресурсоемкая задача. Вопрос только в быстродействии дисковой подсистемы. Тем более что если реализовывать выгрузку в DropBox или другие облачные хранилища, перепаковку в любом случае делать придется. Да и гарантированную доставку проще сделать для нескольких мелких файлов, чем для одного большого. Так что HLS для этой задачи очень неплох.

                            > С малинкой главная и основная проблема: это настольная платка для которой нет массово доступного корпуса.

                            Тут вопрос масштаба. На первоначальном этапе можно вполне обойтись корпусами отпечатанными на 3d принтере, либо нарезанными из пластика на лазерных станках. А при больших объемах можно и на заводе в китае заказать (но конечно же до этого еще дорасти надо).
                            А по поводу уличного исполнения — в любом случае камеры будут работать через некий роутер, его же вы не будете на улице крепить, соответственно не проблема рядом еще одну коробочку поставить.

                              0
                              Здесь мы пошли другим путем и заказали в Китае dd-wrt роутер с POE.

                              Исправно работает, питает 4 камеры. На роутере стоит наш агент, который очень прилично забирает видео и публикует его на сервер.
                                0
                                Какова его стоимость и характеристики, если не секрет? Просто для информации.

                                А так подход возможно правильный, другой вопрос что не будут ли пользователи возмущаться ограниченностью выбора.
                                  0
                                  стоимость кого?
                                    0
                                    > заказали в Китае dd-wrt роутер с POE

                                    Этого самого роутера
                                      0
                                      нам сделали на базе Asus rt-n11p, к нему приделали железный корпус для охлаждения и вставили POE модуль.

                                      Вышло что-то в районе 40-50$ в розницу кажется.
                                        0
                                        Действительно не дорого. Но опять же, получается это вопрос масштаба. У вас есть возможность делать для себя некую специальную железяку (пусть и на неком более менее стандартном железе), у меня же такой возможности, к сожалению, нет. Вот и приходится, на этом этапе, выбирать из массовых устройств.
                                          +1
                                          500$ за кастом дизайн и ещё по 50$ выкупили партию из 10 штук.
                                            0
                                            Хм… достаточно смешные цифры. Не думал что такое возможно. Спасибо за информацию.
                                              +1
                                              да, я сам удивился. Но алибаба тут в помощь и будьте готовы перезаложиться здесь.

                                              Китайцы сорвали срок на 5 месяцев и я с ними уже попрощался, а потом взяли и всё прислали.
                        +2
                        вы всё верно говорите про сложность работы с камерами.

                        Конечно отдать человеку агента, что бы он прошил его на камеру — это практически невозможная задача в общем случае. Да, есть лапочки типа Аксиса, которые дают целую инфраструктуру для кастомных заливок софта, но не все же умеют делать камеры так, как Аксис.

                        Честно скажу: некоторые камеры мы пока не осилили вскрыть, несчастная Сонька лежит в углу кирпичом, а безымянная китайская капелька запускает агента только с SD карты. В основном к счастью залить агента на камеру получается, но это всё сложная лабораторная работа, индивидуальная для каждой прошивки. После подготовки конечно обновить эту прошивку уже проще.
                          0
                          А где посмотреть/почитать более конкретно? Ну например, какие модели камер точно работают в вашей реализации, какая стоимость решения?
                            0
                            про это мы чуть позже расскажем.

                            Агент — это не просто шмоточек кода на камере, это ещё целый бизнес-процесс по заливке прошивки и техпроцесс по активации камеры и привязке к хозяину.
                        0
                        это закрытое устройство, в котором вроде как и линукса-то никакого нет

                        В общем то, это уже явно противоречит GPL.

                        Надеюсь, недавние атаки все таки сподвигнут, например, FSF заслужить на американском рынке каких нибудь крупных производителей и заставить их открыть исходники. Это может решить эту проблему в корне
                          0
                          Да, это очень разумное замечание. Возможно у больших вендоров что-то есть на этот счёт.
                            0
                            заслужить

                            опечатался, имел ввиду «засудить»
                          0
                          Три года назад работал в компании, предоставляющей набор охранной системы для частников — это набор беспроводных датчиков и базовой станции, которая общается с «центром» через GSM/3G и имеет бекапную батарейку (грабители обычно обесточивают дом, обрезают телефонную линию, разбивают панель ввода пинкода, думая, что он посылает сигнал тревоги). Я разрабатывал для них IP камеру (прошивку на основе hi3518 и Ambarella A5s/S2Lm) и серверную часть. SDK обычно предоставляет высокоуровневый RTSP/RTP стриминг, но я брал с уровня NAL h264 фреймов и запихивал в пропраетный протокол. Общение камеры с клаудом по типу dropcam, основан на TLS соединении (каждая камера имеет свой сертификат с UUID, подписанный единым CA, что авторизует каждую камеру, и сертификат сервера может быть проверен тоже с помощью CA паблика вшитого в камеру), и протокол на основе protobuf. Серверная часть C++ Boost::ASIO позволяет держать десятки тысяч одновременно подключенных камер на один сервер (стриминг происходит по активации со стороны приложения или по срабатыванию датчиков в доме).

                          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                          Самое читаемое