Перейти к содержанию
    

Нужно сделать сервис аренды прибора

Попробую немного вернуть обсуждение в созидательное русло.

Приложение для создания кодов продления постепенно сделаем и для windows и для android и на веб-сайте. Чтобы в любой ситуации Собственник мог сделать код продления для Подрядчика.  Допустим у Собственника в данный момент нет интернета, тогда он запускает на смартфоне приложение и офлайн создает код продления. Если нет под рукой смартфона, запустил приложение на компе. Нет компа, зашел с чужого смартфона на вэб-сайт производителя. 

Давайте теперь попробуем обсудить стойкость алгоритма:

Когда в приборе у Подрядчика закончился срок аренды, прибор выдает сообщение типа: "Закончился срок аренды. Для продления аренды сообщите Собственнику этот одноразовый код: 0xDEADC0DE".

Подрядчик звонит Собственнику, договаривается на какой срок он хочет еще продлить аренду, перечисляет сумму Собственнику. Собственник запускает приложение создания кода продления.

Вводит там этот одноразовый код: (0xDEADCODE),

вводит дату или моточасы продления аренды: (ДАТА_ИЛИ_МОТОЧАСЫ),

вводит свой пароль, который совпадает с тем, который он установил в приборе, когда сдавал его в аренду (PASSWORD).

Приложение всю эту введенную информацию соединяет в кучу: DATA = (0xDEADCODE) + (ДАТА_ИЛИ_МОТОЧАСЫ) + (CRC32) 

И шифрует DATA с помощью пароля Собственника(PASSWORD),  например так:  ARENDA_CODE = AES(DATA,  PASSWORD);

В итоге получается 16-байтный ARENDA_CODE, который Собственник по телефону сообщает Подрядчику или присылает фотку экрана. 

На первый взгляд выглядит вполне надежно. А вы как думаете ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да надежнее некуда.

Дальше только умельцы, которые сделают копию вашей железяки.

P.S. Пользователю абсолютно по барабану, криптохерипто вы будете что-то там хешировать или прогоните строчки через XOR с полиномом - ему это одинаково фиолетово и магически.

Если у него будет достаточно денежек - вам никакая крипта и пиропатронный датчик вскрытия корпуса не поможет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

15 часов назад, EdgeAligned сказал:

А если бы у молотка отстреливалась ручка через время аренды, тут бы уже совсем иначе было бы.

Скорее кувалда валяестя в углу, брали ее на один раз,  а возвращать было некогда/лень, потом "забыли". И с постоянно используемыми приборами, "отключалка" возврат не гарантирует, но для "ограничения" ознакомительного периода очень помогает, если прибор действительно нужен, то его купят/продлят аренду

40 минут назад, Arlleex сказал:

Дальше только умельцы, которые сделают копию вашей железяки.

Вроде тема не об этом.

40 минут назад, Arlleex сказал:

Если у него будет достаточно денежек - вам никакая крипта и пиропатронный датчик вскрытия корпуса не поможет.

Условно, вряд-ли кто-то из владельцев некоторых авто полезет взламывать активацию подогрева руля и прочих круиз контролей.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 6/13/2024 at 5:53 AM, TOG said:

Приложение для создания кодов продления постепенно сделаем

лет 20 назад когда когда был студентом, на лечение дураков от жадности было достаточно не больше часа

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

7 minutes ago, sasamy said:

лет 20 назад когда когда был студентом, на лечение дураков от жадности было достаточно не больше часа

Тоже в студенчестве развлекался взломом шареваре программ. И действительно 90% защит на основе всяких XOR'ов взламывались однотипно и не интересно. Чего не скажешь о защитах где шифровались целые куски кода AES'ом или RSA.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Господа, вопрос чисто теоретический.

Может ли у двух разных 32-х битных чисел быть одинаковая CRC32?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

39 minutes ago, vervs said:

вряд-ли кто-то из владельцев некоторых авто полезет взламывать активацию подогрева руля и прочих круиз контролей

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

 

 

4 hours ago, TOG said:

шифрует DATA с помощью пароля Собственника(PASSWORD),  например так:  ARENDA_CODE = AES(DATA,  PASSWORD);

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

15 минут назад, esaulenka сказал:

Рынок неофициальных услуг "перепишем настройки вашего блока, чтобы он был быстрее-выше-сильнее или адаптируем блок с барахолки на ваш конкретный авто" просто гигантский.

Да гиганский, потому и нашлись "прошивальшики", рынок обсуждаемого прибора вряд ли такой. И этот рынок для двигателей, (с потерей гарантии производителя, хотя там в основном уже негарантийные авто), а имелась в виду недавняя "фича" с подогревами и прочими "опциями", хотя возможно это тоже ломают, если вообще эти подписки еще живы. Кроме того "перепрошиватся" личный авто, а обсуждается арендный прибор, в котором скорее ведется учет моточасов, число вводов кода продления и тд., при возврате всё будет видно. На практике для небольших партии специализированных приборов (пробный период для некоторых предприятий) хватило мер, перечисленных выше TOG, не будет же главный метролог и т.п. персонал "ломать" ПО или подбирать коды.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 hours ago, esaulenka said:

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

Отличная мысль.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 часов назад, TOG сказал:

Приложение всю эту введенную информацию соединяет в кучу: DATA = (0xDEADCODE) + (ДАТА_ИЛИ_МОТОЧАСЫ) + (CRC32) 

И шифрует DATA с помощью пароля Собственника(PASSWORD),  например так:  ARENDA_CODE = AES(DATA,  PASSWORD);

В итоге получается 16-байтный ARENDA_CODE, который Собственник по телефону сообщает Подрядчику или присылает фотку экрана. 

На первый взгляд выглядит вполне надежно. А вы как думаете ?

Что можно обсуждать "созидательно" для сферического коня в вакууме?

Вы даже не описали:

1. Примерный функционал прибора?

2. Доступ к какой функции требуется предоставлять с помощью данного сервиса? Ко времени работы прибора? Ко времени работы какого-то режима (мотора) прибора? Или к чему?

3. Как именно прибор осуществляет учёт расхода времени аренды? По часам реального времени? Путём периодического декремента некоего счётчика секунд/минут в памяти? или ...?

4. Если учёт по счётчику, то зачем тогда пишете о некоей дате? Если по часам реального времени - то как именно синхронизируются часы в приборе с реальным временем? Как будет достигаться соответствие времени в приборе со временем, по которому сгенерирована аренда внешним сервисом? И что мешает пользователю не продлять никакую аренду, а просто перевести часы прибора назад? Или что будет, если батарейка на часах прибора сядет, при ещё не истекшем сроке аренды?

5. Имеет ли прибор подключение к интернет? Если имеет (и часы реального времени синхронизируются через этот же канал), то что мешает и продление аренды сделать прям на приборе, без всяких сторонних вебов?

 

PS: И да - прежде чем придумывать свой велосипед с деревянными колёсами, нужно хотя бы изучить имеющиеся (TLS например). И по возможности использовать их.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 hours ago, vervs said:

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

Неживы.

Quote

10 сент. 2023 г. — Немецкий автоконцерн BMW отменил услугу подписки на подогрев сидений

 

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

 

 

2 hours ago, vervs said:

при возврате всё будет видно

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

55 minutes ago, jcxz said:

И да - прежде чем придумывать свой велосипед с деревянными колёсами, нужно хотя бы изучить имеющиеся (TLS например). И по возможности использовать их.

Мне казалось, что 16-байтный код, который получается после AES несколько избыточен, это 32 символа вводить придется используя всего 4 кнопки на приборе.

Поэтому мне было интересно узнать, может есть какие-то алгоритмы, которые создают более короткий, но не менее стойкий код. 

1 hour ago, jcxz said:

5. Имеет ли прибор подключение к интернет? Если имеет (и часы реального времени синхронизируются через этот же канал), то что мешает и продление аренды сделать прям на приборе, без всяких сторонних вебов?

Интернет нужен только для обновления ПО в приборе. А так он может в полной автономии находиться в местах, где нет связи. Если аренда закончилась в  такой глухомани, сели в УАЗик или вездеход, доехали до деревни, где есть сотовая связь, позвонили куда надо, получили код продления, ввели в прибор и пошли дальше работать. Такой вот пока подход мне видится.

1 hour ago, jcxz said:

3. Как именно прибор осуществляет учёт расхода времени аренды? По часам реального времени? Путём периодического декремента некоего счётчика секунд/минут в памяти? или ...?

4. Если учёт по счётчику, то зачем тогда пишете о некоей дате? Если по часам реального времени - то как именно синхронизируются часы в приборе с реальным временем? Как будет достигаться соответствие времени в приборе со временем, по которому сгенерирована аренда внешним сервисом? И что мешает пользователю не продлять никакую аренду, а просто перевести часы прибора назад? Или что будет, если батарейка на часах прибора сядет, при ещё не истекшем сроке аренды?

Конечно хотелось бы дату использовать, но все упирается в RTC батарейку. Не могу придумать надежного способа учета даты. Придется обходиться учетом моточасов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 minutes ago, TOG said:

Придется обходиться учетом моточасов.

Первое верное решение

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, x893 said:

Первое верное решение

А все остальное ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, TOG сказал:

Мне казалось, что 16-байтный код, который получается после AES несколько избыточен, это 32 символа вводить придется используя всего 4 кнопки на приборе.

Поэтому мне было интересно узнать, может есть какие-то алгоритмы, которые создают более короткий, но не менее стойкий код. 

О каком коде речь? Ничего не понятно.....

Если речь про пароль, то кто вас заставляет использовать 16-байт? Можно пароль сделать какой угодно длины. А в качестве ключа AES использовать хеш от этого пароля, нужной длины. Так обычно и делают.

Только вообще-то TLS (и асимметричное шифрование) - это вообще не про это. Не про длину AES. Если что.

2 часа назад, TOG сказал:

Придется обходиться учетом моточасов.

Тогда из этого и нужно исходить, придумывая алгоритм учёта времени аренды и генерации кода аренды.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...