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

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

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

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

Но я же кажется даже на цифрах показал всё. Возьмите любую хэш-функцию, прогоните через нее входные данные, получите некий код на много знаков. Исходное сообщение по хэш-сумме, можно сказать, что не восстанавливается, особенно в 256-битной версии. Входные данные алгоритма вы можете представить в любом произвольном виде, можете даже перемешать предварительно. Ну и затем вычисляете Хеш-функция — Википедия (wikipedia.org)

Ну и как бы вот. Что такое "электронная подпись" в документообороте? Это хэш-сумма входных персональных данных человека.

7 часов назад, Freibier сказал:

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

Конечно может. В криптонауке это называется "коллизией". 

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


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

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

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

А чем не устраивает RTC с батарейкой? Бывают даже впаиваемые (несъемные) батарейки с горизонтальной или вертикальной установкой. Её хватит на 8-12 лет, и этого достаточно. А с моточасами будет проблема в том, что будет учитываться именно время работы прибора, а не срок аренды в календарных днях. Это не всегда может быть удобно. Впрочем, зависит от прибора - почасовая ли у него работа или в днях. С почасовой работой может быть сложнее отслеживать календарные сроки аренды.

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

Если же беспокоитесь о том, что длинные коды неудобно вводить четырьмя кнопками в режиме перещелкивания, значит, либо измените интерфейс взаимодействия, добавив экранную клавиатуру или круговой энкодер, либо выбирайте код на меньшее число знаков. Но чем меньше знаков, тем хуже защищенность хэш-суммы от коллизий, то есть, когда одна и та же сумма будет получаться при разных входных данных. То есть, ухудшается взломостойкость методом перебора. Хотяяя, тут сам по себе медленный способ ввода уже является защитой от подбора перебором 🙂

Изменено пользователем EdgeAligned

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


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

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

Но чем меньше знаков, тем хуже защищенность хэш-суммы от коллизий...

Ограничить ввод 1 знакоместа раз в 5 минут🤣

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


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

1 час назад, EdgeAligned сказал:

Конечно может. В криптонауке это называется "коллизией". 

А у двух разных 16-ти битных может быть одинаковая CRC32?

А у двух разных 8-ти битных?

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

Ограничить ввод 1 знакоместа раз в 5 минут🤣

После неудачного ввода кода, следующую попытку разрешать не ранее чем через какое-то время (1 час например :spiteful:)

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


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

2 hours ago, TOG said:

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

Всё остальное - в топку.

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


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

А как предлагаете переводить моточасы в календарные сроки аренды? А как предлагаете хранить счетчик моточасов?
Не, ну если аренда предполагается почасовая, типа "взял погонять на три часа", тогда оно да. А если оплатил 100 часов работы, тут как бы уже зависит вообще от назначения прибора, как он вообще должен работать. Потому что эти 100 часов можно уложить и в две недели, и в два месяца.

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


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

3 hours ago, jcxz said:

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

Код продления, который вычисляется так: ARENDA_CODE = AES(PASSWORD, (Моточасы), CRC32). И его длина получается 16 байт. 

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


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

1 час назад, EdgeAligned сказал:

А чем не устраивает RTC с батарейкой?

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

Что в сумме намного сложнее учёта моточасов.

1 час назад, EdgeAligned сказал:

Бывают даже впаиваемые (несъемные) батарейки с горизонтальной или вертикальной установкой. Её хватит на 8-12 лет, и этого достаточно.

Хватает для чего? И как вы это посчитали, не зная потребления RTC у ТС-а?

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


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

А CRC там зачем? Это же не про шифрование, а про контроль целостности. Хотя вам нужна всего лишь электронная подпись.

1 минуту назад, jcxz сказал:

И как вы это посчитали, не зная потребления RTC у ТС-а?

А это уже его инжынерная задача, как разработчика, обеспечить потребление RTC на таком уровне, чтобы проработало 8-12 лет. 

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


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

42 минуты назад, EdgeAligned сказал:

А как предлагаете переводить моточасы в календарные сроки аренды? А как предлагаете хранить счетчик моточасов?

А зачем их переводить? Просто хранить счётчик. "Как" - зависит от того - какая энергонезависимая память есть у ТС в приборе. Мы этого не знаем, гадать можно бесконечно.

Может у него там дырокол, дырявящий перфокарты? А может терабайтный HDD подключен? Угадаете? Но и то и другое позволяет вести счётчик моточасов.

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


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

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

9 минут назад, jcxz сказал:

нужно обеспечить ещё и синхронизацию часов с реальным временем (например SNTP)

Ой, да лишь бы даты совпадали. А что, думаете с моточасами будет проще? Когда стоит вопрос денег, пользователи могут быть в претензии, что дескать прибор отработал на 5 минут меньше.

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

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


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

12 минут назад, EdgeAligned сказал:

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

....и в начале каждого дня ушлый юзер будет переводить часики на сутки назад. И разорит ТС-а.  :cray:

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


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

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

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


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

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

Моточасы

каким может быть минимальное и максимальное значение моточасов и какой шаг?

2 минуты назад, EdgeAligned сказал:

А за вскрытие прибора и попытку вытащить батарэлку - стирание прошивки или перманентная блокировка работы.

а пиропатрон?

Только счетчик с декрементом - мое мнение )

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


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

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

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

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

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

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

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

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

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

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