Назад | Перейти на главную страницу

Как я могу удаленно проверить, что файл зашифрован?

Есть ли способ удаленно проверить, зашифрован ли файл?

У меня очень сложная проблема, но вот упрощенный сценарий, который иллюстрирует суть:

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

Есть ли способ проверить, действительно ли файлы зашифрованы, прежде чем передавать их по незащищенной сети?

Как вы их шифруете? Например, если вы используете gpg, команда file распознает формат шифрования (и даже может различать защищенный ASCII и незащищенный вывод):

[madhatta@risby tmp]$ ls -la > foo
[madhatta@risby tmp]$ gpg -e -r fred foo 
[madhatta@risby tmp]$ gpg -e -r fred --no-armor foo 
[madhatta@risby tmp]$ file foo foo.asc foo.gpg
foo:     ASCII text
foo.asc: PGP message
foo.gpg: GPG encrypted data

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

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

ssh server file foo.asc

Большинство (всех) режимов цепочки для симметричного шифрования будут правильно работать с усеченной версией файла.

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

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