Везде пишут, что fork - это однопоточный режим ноды. Нагрузка на CPU не превышает 40%. На хостинге поэкспериментировал, увеличил количество ядер, с каждым ядром, Latency падает, но нода работает в fork режиме, отсюда прихожу к мысли, что исполняемый код приложения работает намного быстрее, чем получение данных из БД и для него достаточно одно ядро. А вот БД уже требует ядра, отсюда и большая задержка
Денис Загаевский, в таком случае челик, который приложил карту к устройству должен держать карту у считывателя пока не придет сгенерированный ключ от сервера, а так как устройства работают на симках с 3-4G, неизвестно как долго нужно прикладывать карту (в зависимости от покрытия). А теперь представим, что таких челиков около 10 каждые 2-3 минуты. Но, это я в теории, надо попробовать.
Денис Загаевский, к сожалению ключ вшивается в саму карту, а чтобы устройство прочитало данные с карты, оно должно знать этот ключ. Хоть ключ и индивидуальный на всех картах, но он базируется на неком алгоритме и получив доступ к алгоритму, получаем доступ ко всем картам. У меня только вариант, ведь устройства наши, отключить любое usb-соединение и какой-либо доступ к настройкам устройства, но это как бы тоже, так себе защитка
Денис Загаевский, ключ для всех карт НЕ одинаковый, ключ генерируется специальным алгоритмом и у каждой карты ключ уникальный. НО, если добраться до исходного кода приложения, то алгоритм генерации ключа становится понятным и не составит труда сгенерировать ключ для любой карты.
Дмитрий Шицков, если вы работали с картами Mifare, то должны знать, что для чтения защищенного блока (в котором хранится зашифрованное инфо), программа должна "знать" ключ к этому блоку, а ключ можно хранить либо в приложении, либо получать с сервера. И тот и другой способ взламывается/перехватывается на раз-два. Раз есть ключ, то значит есть дамп памяти блока, а значит и дубль карты.
Дмитрий Шицков, но в таком случае, при сливе ключей, становится возможным делать дубли карт. К примеру одна карта привязана к кошельку, злоумышленник декомпилировал ПО, получил ключи для чтения блоков. В блоках хранится зашифрованная инфа, но злоумышленнику не обязательно знать ключ для дешифрования, а просто выгрузить дамп карты и залить на другую карту.
но и до ключа на сервере можно добраться. Декомпилируем приложение, узнаем роуты, узнаем логин/пароль авторизации приложения на сервере и используя эти данные вытаскиваем ключи