Jump to content
Калькуляторы

OTP (TOTP/HOTP) токен надо ли?

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

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

Американские магазины OTP токены продавать не захотели, Израильские мне нельзя, а китайские... ну, сами понимаете.

В конечном счете я пришел к такой мысли - вот такой вот плеер, кастомная прошивка. Уже sha1_hmac запилил, осталось мелочи, сделать truncate и механизм хранения секретного ключа.

Думается сделать так - с помощью джойстика на старте набор пин кода (данные зашифрованы, конечно 4 цифры это несущественно, но в лоб взять будет сложнее), RTC с часами там есть. Несомненно это слабее чем нормальная смарткарта, особенно если сольют данные с флешки jtag-ом, но можно сделать на старте(если питание было выключено) пин-код подлиннее. 250 Mhz ARMv5 это все таки неслабая вычислительная мощность для такой малютки.

Ну и статические пароли тоже можно генерировать и хранить там же.

Такие "токены" можно выдавать персоналу, тут уже дальше зависит от фантазии.

 

Еще возникли зачаточные идеи по передаче данных, т.к. устройство имеет в наличии FM приемник, и полно дешевых FM передатчиков(правда относительно легально легко достать только 5mW с радиусом в 5м, но в китае есть и одноваттные, если будут работать редко в импульсном режиме - думаю никому мешать не будут), с помощью нехитрого софта (FSK) - можно с устройств бесконтактно сливать телеметрию, а если FM transmitter установлен и на плеере - вообще получается двухсторонний канал связи. В простейшем варианте можно заливать на них апдейты по паролям для персонала.

Если совместить цифру и аналоговое аудио(правда аудио выходит нешифрованным) - можно отправлять персонализированные голосовые сообщения.

Жаль микрофон только встроенный, а так можно было бы скрестить еще и с walkie talkie.

 

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

Share this post


Link to post
Share on other sites

RSA SecurID токен вроде копейки стоит, но ваша идея не лишена смысла

Edited by tuneil

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Нашел его: http://csrc.nist.gov/groups/STM/cmvp/documents/140-1/140sp/140sp111.pdf

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

Есть несколько огромных недостатков:

1)Прошивку вроде как не сменить, ROM. Фич не дописать тоже.

2)Нет экрана и клавиатуры. Это значит к каждому устройству надо специализированный интерфейс. С моего - все читается с экрана, пароль вводится тоже со встроенных кнопок, метод бесконтактный визуальный, можно сделать двухстороннюю авторизацию, хотя можно расширить методы авторизации - есть еще audio или usb.

3)Несовместимо с TOTP/HOTP, нет RTC, сугубо специализированное приложение.

P.S. Есть определенные платформы заточенные на DRM, где в процессоре есть защищенная память, но их нет настолько компактных как этот плеер.

Share this post


Link to post
Share on other sites

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

Железячник?

 

Моя паранойя шепчет, что:

1) Пароли на все ресурсы должны быть разными и сложными

2) Помнить их невозможно, поэтому храним в программах типа keepass

3) Но зловред может утащить всю связку вместе с ключем от нее.

4) Поэтому заводим для связки и программы специальный смартафон/мелкий планшет, на котором сетевые интерфейсы поднимаем по большим праздникам.

 

Но вот незадача - длинные пароли потом трудно вбивать там где это надо.

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

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

 

Поэтому хочу железку:

С точки зрения компа - обычная USB клава.

С другой стороны железки - звуковой вход. В нее смартафон или сам пользователь в чем-нибудь вроде DTMF пароль насвистывает по проводу.

 

А для большой паранойи надо, увы 'настоящие' токены брать. Пусть даже и подозрительно-российские в виде Аладдин eToken PASS

Share this post


Link to post
Share on other sites

Универсал :) Занимаюсь и железом и обычным программированием.

 

1)Запросто, вместо OTP можно генерить по хитрому хешу и хранить в том же устройстве.

2,3)Этот плеер теоретически можно заставить эмулировать USB HID, т.е. он будет клавиатурой, и по нажатию кнопки введет сложный пароль как с клавиатуры.

4)Планшеты тоже ломают, особенно ведроид и рутованный ios. Плюс сложные пароли непросто читать с экрана.

 

Прочитал дальше - да, именно так и есть. Если есть USB, в теории нет необходимости заниматься аудио извращениями, скажем сначала USB работает на прием, как Serial, и если пришел правильный запрос и с кнопок устройства его подтвердили - плеер переключается в режим клавиатуры и вводит пароль. Ну или просто режим клавиатуры, и просто вводите несложный цифровой id ресурса и в ответ оно выплевывает в клавиатуру пароль.

 

Все аппаратные токены могут иметь закладку, это если крайняя степень паранои. Кроме того HOTP в некоторых случаях неприменим(небезопасен) вообще, а с настройкой часов у токенов дела обстоят не очень.

Share this post


Link to post
Share on other sites

4)Планшеты тоже ломают, особенно ведроид и рутованный ios. Плюс сложные пароли непросто читать с экрана.

Для практически перманентно оффлайнового андроида это не очень критично.

 

Прочитал дальше - да, именно так и есть. Если есть USB, в теории нет необходимости заниматься аудио извращениями, скажем сначала USB работает на прием, как Serial, и если пришел правильный запрос и с кнопок устройства его подтвердили - плеер переключается в режим клавиатуры и вводит пароль. Ну или просто режим клавиатуры, и просто вводите несложный цифровой id ресурса и в ответ оно выплевывает в клавиатуру пароль.

Ээээ не, так не хочу. Ибо больно много велосипедов. Хочу предельно тупую железку-клавиатуру USB<->звук. Ибо связка паролей в keepass - она с локальным домашним сервером синхронизируется

и формат стандартный и над keepass достаточно много народу работало. Так что самодельная железка с полностью новым самодельным софтом - не конкурент.

 

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

Share this post


Link to post
Share on other sites
А для большой паранойи надо, увы 'настоящие' токены брать. Пусть даже и подозрительно-российские в виде Аладдин eToken PASS

Они для типа неизвлекаемости.

Если на извлекаемость при физ доступе пофик то такие токены клепаются на всяких дешман контроллерах в любых формах и количествах.

Share this post


Link to post
Share on other sites

Они для типа неизвлекаемости.

Если на извлекаемость при физ доступе пофик то такие токены клепаются на всяких дешман контроллерах в любых формах и количествах.

Если на неизвлекаемость пофиг, то оно вообще не нужно - приложения в смарте достаточно. Того же Google Authenticator.

Share this post


Link to post
Share on other sites

Не путай софтверную извлекаемость и аппаратную.

Андройд если сам не сливает то дырявглистов не хуже винды.

Share this post


Link to post
Share on other sites

Для практически перманентно оффлайнового андроида это не очень критично.

Планшет большой, кроме того время жизни от батареи крайне мало. Да и цена всяко повыше $30-50. Да, знаю, в Китае есть планшеты по $50-$70, но качество там откровенно унылое, и тормоза с глюками тоже присутствуют.

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

А плеер по размеру меньше ладони, его даже как кулон можно носить (хотя и может для кого-то и великоват в таком ношении).

 

Ээээ не, так не хочу. Ибо больно много велосипедов. Хочу предельно тупую железку-клавиатуру USB<->звук. Ибо связка паролей в keepass - она с локальным домашним сервером синхронизируется

и формат стандартный и над keepass достаточно много народу работало. Так что самодельная железка с полностью новым самодельным софтом - не конкурент.

 

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

Теоретически можно реализовать совместимый с keepass алгоритм, судя по описанию там ничего сложного, SHA-256 и AES-256 но там уже усилия на его реализацию значительные.

Плюс у него есть нюансы: http://threatpost.com/researcher-warns-security-hole-keepass-password-manager-062712/76738

Чем сложнее софт - тем он уязвимее. Чем больше данных позволяет импортировать - тем сложнее эти данные проверить и предотвратить уязвимость.

Так оффлайн или нет? Есть есть синхронизация с сервером - значит уже где-то паролики лежат.

 

Они для типа неизвлекаемости.

Если на извлекаемость при физ доступе пофик то такие токены клепаются на всяких дешман контроллерах в любых формах и количествах.

Ну, при желании извлекаемость из AVR тоже можно сильно усложнить, если уделить должное внимание side channel. Кроме того в токенах тоже side channel частенько бывает. Например хваленый Yubikey 2 уделали и извлекли из него ключ через анализ питания, с остальными тоже немало прецендентов бывало.

Share this post


Link to post
Share on other sites

Планшет большой, кроме того время жизни от батареи крайне мало. Да и цена всяко повыше $30-50. Да, знаю, в Китае есть планшеты по $50-$70, но качество там откровенно унылое, и тормоза с глюками тоже присутствуют.

Какие тормоза с глюками? Подобные приложения ничего особо страшного не хотят.

 

судя по описанию там ничего сложного, SHA-256 и AES-256 но там уже усилия на его реализацию значительные.

Именно. А keepass уже есть.

Плюс у него есть нюансы: http://threatpost.com/researcher-warns-security-hole-keepass-password-manager-062712/76738

Чем сложнее софт - тем он уязвимее. Чем больше данных позволяет импортировать - тем сложнее эти данные проверить и предотвратить уязвимость.

Так оффлайн или нет? Есть есть синхронизация с сервером - значит уже где-то паролики лежат.

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

Share this post


Link to post
Share on other sites

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

Микроконтроллер в плеере стартует из полного оффлайна в течении секунды.

И самое главное - в андроид можно внедрить кейлоггер(или логгер заточенный на keepass), получив доступ к USB устройства хотя бы секунд на 20-30.

Share this post


Link to post
Share on other sites

Защиту при физическом доступе я не рассматриваю. Когда понадобится - нужно на правильные токены смотреть.

Конкретная задача - защититься от утаскивания всей связки паролей, которая на основном компе живет. И который онлайн. Решается вытаскиванием связки на (почти) офлайновый планшет. Вот только пароли руками перепечатывать неудобно.

Share this post


Link to post
Share on other sites

По поводу етокенов, например Алладин сделан на обычном микроконтроллере.

http://dmitry.gr/index.php?r=05.Projects&proj=17.%20eToken

Он даже не заявлен как крипто, т.е. куча проблем с side channel просто гарантирована.

Share this post


Link to post
Share on other sites

Создайте уже наконец квантовую пару и не парьтесь.

Share this post


Link to post
Share on other sites

а нельзя сделать что-то такое, что генерирует ключ на основании папиллярного узора пальца? И для каждой железки отдельный палец/сочетание пальцев использовать? Мне кажется, это надежнее, так как в случае потери/кражи устройства теряется только алгоритм генерации, origin-то потерять немного сложнее :)

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

а нельзя сделать что-то такое, что генерирует ключ на основании папиллярного узора пальца? И для каждой железки отдельный палец/сочетание пальцев использовать? Мне кажется, это надежнее, так как в случае потери/кражи устройства теряется только алгоритм генерации, origin-то потерять немного сложнее :)

 

Разработка любого кастомного железа стоит диких денег.

А тут плеер - большинство уже есть (плата с микроконтроллером, питанием, интерфейсами).

Share this post


Link to post
Share on other sites

По поводу плеера в качестве хранилища паролей.

Выдать известный пароль - это только часть задачи. Рассмотрим ситуацию полностью:

 

Развернули вы новый сервер. Выдал вам установщик диалог 'хочу пароль'

После этого вам надо

1) Сгенерировать пароль (где плеер энтропию брать будет?)

2) Подписать его (На такой клавиатуре что-то набрать - это убиться можно)

3) Закинуть новую базу в систему резервного копирования. (Синхронизировалку на комп что ли ставить?. В плеере WiFi нет)

 

Планшет в качестве хранилища все это умеет.

Share this post


Link to post
Share on other sites

1)Микрофон + прегенерированная энтропия. Это если генерить каждый раз новый пароль, для пароля кстати много энтропии не надо.

2)Цифровой ID с голосовой меткой, потом привести в порядок при синхронизации с компом.

3)USB storage, бекапить как и флешку. Данные там зашифрованные, даже если и упрут - они бесполезны без мастерключа который плеер не отдает просто так по USB(по умолчанию залочен) и пароля. Wifi для устройств с паролями вообще противопоказан.

 

Если использовать кастомный HOTP, где скажем вместо sequence стоит цифровой ID сервера, и пароль получается статическим - то необходимости в синхронизации нет вообще(ну кроме начальной генерации seed), вся тайна в мастер ключе. На базе надо лишь сохранять who is who по номерам, и повесить бирочки на сервера. В качестве ID можно использовать и IP адрес сервера + номер пароля (на случай необходимости смены).

Share this post


Link to post
Share on other sites

2)Цифровой ID с голосовой меткой, потом привести в порядок при синхронизации с компом.

Те специальные усилия надо прилагать для поддержания всего этого в порядке.

3)USB storage, бекапить как и флешку.

Ну те на комп - синхронизировалку и не забывать регулярно к соответствующему компу такой 'плеер' цеплять?

 

Это fail по юзабилити. Для особо важных паролей паранойя по поводу WiFi может быть и надо. А для кучи умеренно важных, имеющих существенную ценность только всей кучей - нет.

Доверенная WiFi сетка для таких целей достаточно надежна.

Share this post


Link to post
Share on other sites

А какой смысл так париться с офлайновой хранилке паролей если потом этот пароль вбивать на основном онлайновом воркстейшине? :)

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

ИМХО такая секюрность нужна только в интранетах, но там все проще потому что централизованная политика безопасности.

Share this post


Link to post
Share on other sites

Смысл в то, что таким образом кейлоггеру будет доступны только некоторые пароли. Те, которые на ней набирались. А не вся база и ключевая фраза к ней.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this