Кто-нибудь знает о безопасной «доступной для чтения» локальной системе доступа к файлам? Или как можно создать? Я понимаю, что если данные должны использоваться в системе, то они должны быть способны к чтению, но я думаю, что можно строго ограничить доступ к данным и уменьшить вероятность их копирования и использования в других местах.
Это мои требования:
Я хочу сохранить «защищенный / зашифрованный» файл данных на USB-накопителе (может быть только для чтения CD / DVD, но лучше для чтения / записи USB или даже на дискете) и иметь этот файл, пригодный для чтения один раз (и, главным образом, только один раз), на декодированной блочной основе, после ввода пароля. Содержимое файла, вероятно, представляет собой базовый текст / xml (или текстовые данные) и должно читаться главным образом как последовательный поток. Данные (в идеале) могут быть прочитаны обычными методами доступа к файлам Windows, а именно: STD-файл, объекты FSO (потоковый и текстовый файл), все методы обработки файлов BASIC PC (VB6 / VB.NET), даже текст Excel (импорт ). да, я знаю, что это, вероятно, побеждает объект (поскольку такой файл может быть открыт / сохранен), но я все еще хотел бы такую возможность. Наконец, как только критерии «доступа» будут выполнены, устройство будет препятствовать дальнейшему доступу.
Доступ к данным возможен только на локальной системе ПК. Нет локальной сети, не поддерживается совместное использование устройства. Данные на устройстве не должны копироваться обычными средствами. Данные будут записываться на устройство с использованием обычных методов, если это возможно, или специальных приложений, если это необходимо.
Для простоты, просто один пароль, один файл, одно использование и один пользователь были бы хороши, но другие возможные улучшения включают в себя: (как глазурь на торте) ...
- разрешает открывать 'n'
- с несколькими паролями 2 или более пользователей, действующие индивидуально
- silo-пароли, когда еще 2 пользователя подписываются вместе, чтобы получить доступ (или даже
имея по крайней мере n из m пользователей, подписанных вместе, чтобы получить доступ)
- Запрос пароля должен быть дан при первом доступе к блоку, независимо от
приложение, вызывающее первый блок
- Пароль может быть встроен / автоматический
- привязать доступ к номинированному номеру машины / mac / ip / disk (или
другой машинный код)
- привязать доступ к назначенной программе / приложению
- , если возможно, удалить и надежно перезаписать файл данных
Мое первое предположение при этом предполагает, что ему понадобится драйвер «psuedo-device», который появится как расширение (или замена) драйвера съемного устройства std. Драйвер будет обрабатывать каждый файловый блок, сектор за сектором и отказывать серверу в дальнейшем декодировать блоки, если он не авторизован. Устройство не должно давать нормальные списки каталогов, но пользователю может предоставляться некоторая некоторая форма краткого содержания (необязательно).
В отличие от системы DRM, я не хочу какой-либо формы онлайн-доступа / аутентификации (но хотел бы рассмотреть это), я бы предпочел автономную систему.
Я искал долго и упорно для такого устройства / системы, и не нашли его еще нет. Большинство устройств и системных инструментов (например, Iomega / ironkey), по-видимому, разблокируют доступ к файлам, но без ограничений, например: read-many, после разблокировки.
Производительность не является проблемой. Медленная скорость чтения с гибкого диска будет в порядке. Метод шифрования является независимым, все, что достаточно сильное 40bit + (128bit) было бы хорошо. Я не могу сказать вам, что это за данные или для чего они нужны, мне просто нужен способ дать кому-то данные и по возможности ограничить их использование и то, что они могут с ним сделать. Это реальное требование для защиты конфиденциальных данных и не предназначено для DRM или MP3 / видео или аналогичного.
Я «офисный» разработчик и не очень знаком с драйверами устройств или DRM. Теперь, с чего бы мне начать с такого проекта? Есть ли что-нибудь уже доступное для joe-public?
Спасибо - Тим.
PS: обновление
Я должен отметить, что я просто хочу передавать данные между нами и одним конкретным назначенным поставщиком услуг. Я не хочу, чтобы они копировали данные, которые мы предоставляем. Он будет использован один раз для поддержки «единственного» одноразового процесса, а затем будет завершен. Поскольку данные «передаются / читаются», они должны быть «использованы». если процесс завершится неудачей, мы повторно предоставим данные поставщику услуг. данные остаются в нашей собственности, они не продаются / не лицензируются.
Я понимаю, что ни одно решение не будет надежным, но соотношение риск / вознаграждение должно препятствовать случайным попыткам взломать систему. Данные не имеют явного коммерческого значения.
PPS: это реальное требование ... Что бы вы сделали?
Судя по положительным ответам на @eriksons вдумчивый ответ, вы, ребята, говорите «невозможно / не беспокойтесь», но кроме личного контроля за тем, что данные используются в соответствии с нашими пожеланиями, что бы вы сделали?