Атаковать можно, например, в метро. Когда «жертва» заходит в метро, сигнал настоящей БС теряется, а тут мы такие красивые с ноутбуком. И ни у кого мысли позвонить в метро даже не возникнет. А если возникнет — то ошибка не будет чем-то сверхестественным. Можно осуществлять атаку на постоянный ключ, например, просто ездя в одном вагоне метро с жертвой. А если учесть, что атака может быть «размазана» по времени, то можно просто недельку-другую ездить с жертвой, и в итоге получить постоянный ключ.
А какой смысл шифровать базу открытых ключей? Защитить от модификации (MAC, HMAC) — да, нужно, хотя врятли её дадут просто так перезаписать. Но шифровать-то зачем?
Да-да, поправил ошибки и добавил туда использования переменной. Результаты изменились, Вы правы, оптимизация цикла имела место быть. Новый код отрабатывает за 387 микросекунд, в пять раз дольше.
Новый код
int cnt = 10000;
int top = 262144;
long time = System.currentTimeMillis();
int uselessVar = 0;
for (int i = 0; i < cnt; i++) {
int delim = 1;
for (int j = top - 1; j > 0; j--)
if (top % j == 0) {
delim = j;
break;
}
uselessVar += delim;
}
time = System.currentTimeMillis() - time;
System.out.println("Value of useless var: " + uselessVar);
System.out.println("Average execution time: " + ((float) time / cnt) + " ms");
Value of useless var: 1310720000
Average execution time: 0.387 ms
Java. Выполняется за 76 микросекунд на Core i5 3.4 GHz
Код
int cnt = 10000;
int top = 262144;
long time = System.currentTimeMillis();
for (int i = 0; i < cnt; i++) {
int delim = 1;
for (int j = 1; j < top; j++)
if (top % j == 0)
delim = j;
}
time = System.currentTimeMillis() - time;
System.out.println("Average execution time: " + ((float) time / cnt) + " ms");
Ключ шифрования/дешифровки хранится в контроллере и никоим образом не зависит от пинкода. Просто контроллер соглашается расшифровывать данные только после ввода оного.
Вот не нравилось мне никогда это «стирание после 10 попыток». Получается первый же любопытный коллега/сотрудник/ребенок, не знающий про эту фичу — и все, сушите весла? Всегда ведь можно дать погулять часок-другой, и все
Подсветку лучше не просто выключать, а ШИМовать — удобнее будет. Ну и команда вида !b60 — включить подсветку на 60%. Плюс можно сделать «кнопочку» из куска фольги/печатной платы и емкостного датчика — как раз «будить» выключенную подсветку и переключать режимы, если не влезает вся инфа
У меня включен SSH руту, при этом используются ключи, а в качестве запасного варианта — 25-символьный пароль из букв разного регистра и цифр. Этого достаточно?
Вам же писали в прошлом вашем посте про трубу Рубенса, насколько данная реализация небезопасна. Зачем выкладывать ту же самую небезопасную реализацию еще раз?
Value of useless var: 1310720000
Average execution time: 0.387 ms
Average execution time: 0.0766 ms