Провёл я тут рисёрч по прозрачно шифрованым флешкам.
Corsair Flash Padlock это просто кусок говна. Мало того, что вместо AES шифрования у него тупой размыкатель, так ещё и для пинкода используется всего пять цифр вместо десяти - а потому что кнопок пять.
См..
Годных производителя есть целых два:
aegis secure key и
istorage datashur. Ну, собственно, у Аегиса целый ряд устройств, включая винты, с нумпадлоком.
Но всё оно какое-то дорогое. Я вижу проблему в том, что носитель составляет одно целое с криптовалкой.
Вот вам идея: кардридер с прозрачным шифрованием данных. Выглядит как обычный кардридер для sd/microsd, работает как обычный кардридер. Но, при некоторых условиях, записываемые на SD данные шифруются. Включая, конечно, разметку диска и проч. Т.е., полностью block device - в "компьютер" отдаётся в открытом виде, на носитель пишется в шифрованом AES-192. Следующее поколение устройств может также включать порт юзб, в который можно фтыкать любые масс-стораджи с тем же эффектом - винты и флешки любого размера, что угодно, умеющее быть UMS.
Фишка номер раз: plausible deniability. Если карту воткнуть в любой другой ридер, на ней неструктурированный неидентифицируемый мусор.
Вообще такие устройства
существуют, но у них тоже есть фатальный недостаток: ключ шифрования составляет одно целое с криптовалкой. Прочитать носитель можно только на конкретном экземпляре устройства.
Отсюда
фишка номер два: ключи шифрования находятся тоже на съёмном носителе.
То есть, можно купить себе второй такой ридер, и он будет работать. А первый можно спокойно дать кому-то, и он будет работать как обычный кардридер. Если не...
Фишка номер три: для расшифровки хедера с ключом AES, которым шифруется всё остальное, используется смарткарта. В качестве которой мы используем любую
обычную симку. На ней есть закрытый ключ, на ней есть процессор, она умеет делать всё что положено делать смарткарте.
Итак, есть дырка для симки, плюс есть нумпад для ввода пинкода симки, плюс есть отверстие для SD карты. Если симка не вставлена или не разлочена, мы работаем как обычный кардридер. Если вставлена и разлочена, мы пытаемся прочитать первые двести килобайт носителя и расшифровать с помощью ключа симки. Если после расшифровки не обнаружена наша сигнатура, то мы опять обычный кардридер. Если обнаружена, то вытягиваем ключ для AES и весь объём выше первого мегабайта расшифровываем им.
Далее, можно как в луксе сделать "слоты". Первый мегабайт носителя на самом деле состоит из блоков по 16к, каждый из которых содержит сигнатуру и ключ, зашифрованные для разных симок.
Или можно обойтись без всяких "первых мегабайт" - ключ AES лежит на самой симке (ну там где SMS, контакты, и проч), зашифрованный ключом самой симки. Вытягиваем ключ, просим смарткарту расшифровать его, полученным говном не особо вглядываясь криптуем/декриптуем SD.
Алсо можно сделать нумпад для пинкода на самом устройстве, а можно и вовсе безпалевно - если вставлена симка, то мы немедленно в usb отдаём совместимое с cdc-acm устройство, в которое можно программно засунуть пинкод. И если пин подошёл, разлочил симкарту, а она сумела разлочить один из слотов заголовка то см. выше, иначе мы опять обычный ридер. В этом варианте, конечно, надо будет устанавливать на хост некий софт... Давайте делать две модели! Одна с аппаратным нумпадом (её можно втыкать вообще куда угодно, включая телевизоры и планшеты), вторая вовсе безпалевная но требующая софта (десктопы, windows/linux/macos).
А ещё можно сделать просто usb порт, в который втыкается криптотокен. Если то что воткнуто похоже на токен, и мы сумели его разлочить пинкодом, см. выше. Иначе мы опять просто хаб с ридером.
В любом случае:
- в компьютере никогда нет ключей, которыми собственно всё зашифровано. Максимум что есть у компьютера, это пинкод от смарт-карты, которую он в глаза не видел, и которую невозможно скопировать.
- с любым кардридером носитель выглядит как мусор. В устройстве без вставленной смарт-карты (или с неподходящей) носитель выглядит как мусор. Имея устройство и смарткарту невозможно сделать никаких предположений о носителе.
- устройство не нужно возить с собой - один экземпляр дома, второй в пункте назначения
- если смарткартой работает симка, она в свободное от шифрования время может быть обычной симкой в обычном телефоне. С каким-то там сабскрипшеном, etc.
- можно получить прямой доступ к raw-носителю, а значит можно просто вырезать пресловутый "первый мегабайт" и положить [отправить] отдельно, а на носителе забить нулями.
- raw-носитель, выглядящий как raw-мусор, можно невозбранно бэкапить с помощью dd(1). Можно иметь два побайтно идентичных экземпляра шифроносителя. Их можно rsync'ать через недоверяемые сети. И каждый из них можно прочитать с помощью любой из двух симкарт, к примеру.
- терморектальный криптоанализ: да, пацаны, я признаюсь во всём, это действительно криптоноситель. Пинкод вот такой. Но мне тупо нечем его расшифровать.
ведь симка у Васи, а заголовок у Пети- шахид-вариант терморектального криптоанализа: вот симка, на которой намеренно оставлена _одна_ попытка PIN и _одна_ попытка PUK. Раз, два, - и теперь эту флешку уже никто не прочитает, по крайней мере ближайшие сотни лет.
а заголовок всё равно был у пети, мвахахаСколько это может стоить? Ну, вот, допустим, есть mk802 сделанный из A10, он стоит $60. Если можно реализовать нечто подобное описанному, с линуксом внутре, используя GPU для ускорения AES (а нвидия по крайней мере показывала aes на gpu), то устройство может выйти до ста баксов. Пусть даже $200 - но за эти двести баксов получается не сраная флешка на сраных 64гига, а ридер, с которым можно использовать любого объёма и в любом количестве флешки, винты, sd карты. И, отдельно, любое количество смарткарт, в любых комбинациях.
Может я чего-то существенного не учёл? Ругайте.