Какую систему вы используете для шифрования файлов для группы людей (предпочтение зависит от ОС)? - PullRequest
2 голосов
/ 08 октября 2008

Скажем, у вас есть куча файлов. Скажем, вы можете хранить метаданные в этих файлах. Скажем, один из этих мета-атрибутов назывался «шифрование» Скажем, всем было разрешено просматривать эти файлы, но поскольку они зашифрованы, только люди, которые знают, как их расшифровать, могут на самом деле читать содержимое. Скажем, для каждого данного значения «шифрования» группа людей делится знаниями о том, как расшифровывать файлы, помеченные этим значением. Допустим, вы хотите сделать это программно, независимо от операционной системы (если это возможно)

Какие значения вы бы использовали для «шифрования»? Как бы вы хранили ключи? Как бы вы организовали доступ к ключам?

В настоящее время я склоняюсь к следующей реализации:

  • значение поля «шифрование» содержит имя ключа, возможно, также обозначающее используемый алгоритм
  • каждый пользователь имеет доступ к связке ключей. Это может быть определено ролями, которые пользователь имеет в структуре, подобной LDAP / ActiveDirectory, или это могут быть просто файлы в защищенном каталоге в каталоге user / home.
  • при просмотре файла программа просмотра (я пытаюсь создать систему управления документами) проверяет ключи пользователя и расшифровывает файл, если был найден соответствующий ключ.

Какое шифрование вы бы использовали? Симметричный (AES)? Или асимметричный (какие хорошие)?

Использование асимметричных ключей дает дополнительное преимущество, заключающееся в различии между чтением файла и записью файла: для записи файла необходим доступ к закрытому ключу, доступ к открытому ключу (только частично открытый, как только определенные роли). иметь доступ к нему) позволит прочитать файл. Я полностью ошибаюсь здесь?

Какие распространенные системы для решения этих проблем используются в малых и средних предприятиях?

РЕДАКТИРОВАТЬ : Кажется, нет универсальных решений. Итак, я изложу проблему, которую пытаюсь решить, более четко:

Представьте себе систему управления документами, которая работает распределенным образом: каждый документ копируется в различные узлы (контролируемой компанией, частной) P2P-сети. Алгоритм обеспечения избыточности документов используется для обеспечения резервного копирования всех документов (включая ревизии). Эта система работает в качестве службы / демона в фоновом режиме и перемещает документы туда-сюда.

Это означает, что пользователи в конечном итоге получат документы, которые, вероятно, не предназначены для их просмотра на их локальной рабочей станции (ПК или ноутбук, контролируемый компанией, или что-то в этом роде) - настройка такова, что ИТ-специалист по МСП устанавливает все это и контролирует кто является частью сети P2P).

Это исключает схемы, основанные на доступе к каталогу, поскольку пользователь, вероятно, сможет получить доступ к данным. Я здесь ошибаюсь? Может ли локальная папка быть зашифрована так, чтобы к ней мог получить доступ только пользователь домена? Насколько это безопасно?

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

Ответы [ 7 ]

2 голосов
/ 08 октября 2008

Шифрование здесь не самая сложная часть. Понимание потребностей бизнеса, и особенно того, от каких угроз вы пытаетесь защитить, является трудной частью. Управление ключами не тривиальная вещь.

Я настоятельно рекомендую книгу " Прикладная криптография ", чтобы помочь вам лучше понять проблемы уровня протокола.

1 голос
/ 08 октября 2008

Если я вас правильно понял, вы можете использовать GNU Privacy Guard. Это кроссплатформенный и открытый исходный код. По сути, у каждого пользователя есть копия GPG и локальная «цепочка для ключей» со своими «закрытыми ключами» и «открытыми ключами». Когда вы хотите что-то зашифровать, вы используете открытый ключ человека, и результаты могут быть расшифрованы только с помощью соответствующего закрытого ключа. У пользователя может быть несколько пар ключей, поэтому вы можете предоставить всем администраторам доступ к закрытому ключу «роли администратора», и при каждом хранении этого закрытого ключа можно расшифровать документы, зашифрованные открытым ключом «роли администратора».

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

1 голос
/ 08 октября 2008

Тем не менее, вот мои размышления:

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

Я бы зашифровал ключ каждого файла открытым ключом каждого, кто имеет доступ к файлу.

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

Я бы использовал gpg (работает практически на всех ОС).

Вы неправильно поняли асимметричное шифрование. Открытый ключ выдается каждому, Закрытый ключ вы храните сами. Если Алиса что-то шифрует с помощью открытого ключа Боба, только Боб может его расшифровать. Если Боб что-то шифрует с помощью своего закрытого ключа - каждый может его расшифровать, и все знают, что это было от Боба, потому что только у него есть свой закрытый ключ.

РЕДАКТИРОВАТЬ: Однако, если вы проигнорировали все, что я сказал, и пошли другим путем, и дали каждому ФАЙЛУ свою собственную пару ключей pub / priv ... тогда вы бы полагались, что открытый ключ будет доступен ТОЛЬКО тем, кому вы хотите прочитать файл, и закрытый ключ, доступный для тех, кого вы хотите R / W. Но это немного сложнее и зависит от людей, которые не могут распространять ключи. Ночные задания по смене ключей могут смягчить эту проблему, но тогда у вас возникнет проблема распространения новых ключей среди пользователей.

1 голос
/ 08 октября 2008

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

0 голосов
/ 20 декабря 2008

Вам необходимо шифрование с открытым ключом с использованием сертификатов OpenPGP или X.509. В обоих случаях вы можете зашифровать один блок данных для нескольких «получателей», используя их ключи OpenPGP или сертификаты X.509 соответственно. В X.509 стандартами шифрования данных таким способом являются PKCS # 7 и CMS (определенные в некоторых RFC, я забыл номер). Вам нужно было бы применить проверку отзыва ключей, чтобы предотвратить доступ для тех людей, которым ранее был предоставлен доступ, но сейчас его нет.

0 голосов
/ 08 октября 2008

Я должен согласиться с Марком здесь:

Понимание потребностей бизнеса, и особенно того, от каких угроз вы пытаетесь защитить, является трудной частью

Например; Вы обеспокоены тем, что неавторизованные пользователи могут получить доступ к конфиденциальным файлам? Вы можете использовать управление доступом на уровне файлов практически в любой операционной системе, чтобы запретить пользователям или группам доступ к файлам / каталогам.

Вы обеспокоены тем, что авторизованные пользователи могут скопировать файлы локально, а затем потерять свой ноутбук? Существует ряд средств шифрования на уровне ОС, которые обеспечивают различные степени защиты. Я лично рекомендую TrueCrypt для флэш-накопителей и других портативных носителей, а Windows Vista теперь включает BitLocker, который обеспечивает другой уровень защиты.

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

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

0 голосов
/ 08 октября 2008

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

Для ОС, не зависящей от ОС, вам необходимо заново создать множество элементов управления пользователями, которые уже созданы конкретными ОС и / или сетевыми поставщиками.

Но это можно сделать. Для самого шифрования - используйте ответ AviewAnew.

...