ЭЦП
На конференции «Осенний документооброт-2011», где я сейчас, затронули интересный вопрос.
ЭЦП (электронная цифровая подпись) сейчас, фактически, используется не для того, для чего была придумана. Её назначение — кратковременное подтверждение подлинности переданного документа. К примеру, я получил письмо и мне нужно убедиться, что оно действительно пришло именно от того адресата, которые указан в поле отправителя. Стандартный протокол обмена письмами мне этой уверенности не даёт. А ЭЦП — пожалуйста.
Я открываю письмо, по подлинности ЭЦП убеждаюсь, что всё в порядке, дальше ЭЦП мне не нужна.
В электронных документооборотах не так. Там ЭЦП используется для подтверждения подлинности документа в долгосрочном периоде — годы, десятки лет, в перспективе, возможно, сотни (если речь идёт о долгосрочных договорах между государствами, например).
Чтобы не было возможности подделать документ, изменить его содержимое, применяется ЭЦП. Как правило, доступ к хранилищу, где он размещается, имеют сотни людей, причём многие из них — на запись. С течением времени, количество людей, имевших теоритическую возможность подмены документа, увеличивается — кого-то принимают на работу, кто-то получает временный доступ для каких-то задач. Поэтому применение ЭЦП необходимо.
Но. Надёжность ЭЦП, фактически, основана на сложности математических задач, заложенных в алгоритм электронной цифровой подписи. Эти задачи выбраны таким образом, чтобы подделка подписи требовала огромных вычислительных ресурсов. Последнее с успехом может быть заменено использованием более скромных ресурсов какого-то значительного количества времени.
В чём проблема. Мы все с вами наблюдаем современные темпы развития техники, пройдёт пара лет и двух-, четырёхпроцессорные смартфоны уже не будут никого удивлять. Что будет стоять на обычных компьютерах через десять лет даже сложно представить.
В долгосрочной перспективе использования ЭЦП это проблема — при хранении документов десятки и сотни лет, риск подмены документов, особенно важных, где игра стоит свеч возрастает многократно.
Конечно эту проблему следует смотреть и в разрезе обеспечения доступа к самому хранилищу, но то, что нужны какие-то ещё механизмы подтверждения подлинности в долгосрочной перспективе, тоже очевидно.
С физическими (например, бумажными) носителями несколько проще — подделку нужно изготовить заранее, если упустить шанс, то его уже больше не представится. Насколько я знаю, пока нет технологии, которая могла бы «состарить» чернила, бумагу, а так же начеркать загогулину обычной подписи, так чтобы эксперты не смогли её отличить от подлинных, оставленных на других документах. А в её отсутствие, подделка вряд ли возможна.
Можно увеличивать длину ключа, (фантазирую) применять ключи, занимающие десятки килобайт. Шифрование будет крайне медленным, но для важных документов можно и потерпеть. Но вот вопрос — если через двадцать лет появятся квантовые компьютеры, которым такая длина ключей «на один зуб», что будем делать? Как видно, простого выхода из ситуации не существует.
Вариативные(изменяющиеся во времени) ключи, ключи, шифрующие ключи, шифрование более новыми ключами контейнеров данных со старыми ключами, использование ДНК как элемент ключа, может, постоянная перешифровка контейнера аппаратным девайсом с честным рандомом, основанном например на периодах полураспада элементов... множество вариантов, я думаю.
Организовать непробиваемый интернет-сервис, где будут храниться ну очень большие хеши документов, к которым привязаны идентификаторы авторов (по типу ключ=значение).
Чтобы проверить любой документ нужно скормить его этому сервису, где по хешу найдётся автор, если таковой имеется.
Изначальное авторство за тем, кто первым разместит на сервисе документ.
Подлинность автора обеспечивается реквизитами его доступа на сервис (логин / пароль)
Минусы:
Комментарий для Олег Горбунов:
Что такое «изменяющиеся во времени ключи»?
Ничего не даст. В случае взлома ЭЦП ключ нам неизвестен по определению, значит шифрование ключа ничего не даёт
В этом что-то есть, если за этим регулярно следить, обгоняя прогресс по совершенствованию техники.
Неприменимо. Даже если удастся сделать нечто, вот что нельзя подставить просто какие-то данные, а нужно именно ДНК засунуть, то ДНК просто украсть. Кровь, сперма и т. п.
Неприменимо. Подделку тут произвести проще простого в момент перешифровки. Кроме того, требует доступа к исходному ключу, что вообще недопустимо.
В догонку: хеш должен быть таким, чтобы подобрать под него документ и при этом сохранить смысл и форматирование было нереально; особо важные документы можно хранить целиком / в пожатом виде.
Комментарий для sphere:
Невозможно организовать ничего непробиваемого, особенно с такими важными данными. Существование хешей тоже связано с существованием определённых трудоёмких для вычисления задач, так что это та же самая ситуация. Кроме того, у хешей есть ещё и коллизии. В нашем гипотетическом хранилище проще хранить не хеши, а сами документы.
Как подтвердить это авторство? Как наша систему будет сообщать об авторстве?
Логин и пароль подобрать проще, чем ЭЦП.
Бумажные документы как-то хранятся? Особо важные документы обеспечиваются ещё чем-то, кроме бумажки?
При попытке разместить этот же документ повторно, будет отказ с указанием, что этот документ уже имеется и автор у него такой-то (первый разместил).
Если l: d.medvedev@gov.ru p:123456, то да.
Комментарий для sphere:
Не бывает так. Это сложная вычислительная задача, которая сейчас занимает гигантское количество времени, такое, что ценность документа заведомо потеряется, а то и цивилизация исчезнет. Но рост мощностей, нахождение дыр в алгоритмах — всё это делает взлом ЭЦП, хешей и прочего в долгосрочной перспективе (особенно, если мы берёт срок в сотню лет) очень реальным.
->
Тогда хранить сам документ в пожатом виде, перед проверкой разжимать или сравнивать с пожатым же (не знаю, как тут насчёт коллизий). Если документ сэкономит миллионы, можно потратить на хранение целиком несколько рублей.
Комментарий для sphere:
Я же вот написал про бумажные документы. Важные документы — это обычно соглашения сторон, то есть не один экземпляр, на специальной бумаге с защитой как у денег, которая стареет, чернила стареют, подпись подделать трудно.
Как система различать авторов-то будет? По логину и паролю? Как узнать кто такой «bolk» или даже «Евгений Степанищев»? Кто прячется за таким логином? И как узнать, что «Евгений Степанищев, ООО „Системы документооборота“» именно тот, за кого себя выдаёт?
Даже если это будет d.medvedev.president.russia.some.secret.word@gov.ru и пароль «yeyUEy#66@UULS.<SJJHDHE7HDhGAggdsopopoAJJSHSGGSFFSHJHEWJEHHSJJhjshjahsjs», взломать это на несколько порядков проще, чем ЭЦП.
На это я уже отвечал: так не бывает. Можно хранить только исходник. Это единственная гарантия. Кроме того, нельзя гарантировать защиту от замен на самом устройстве.
Комментарий для sphere:
В общем, проблемы такого подхода:
1) нельзя гарантировать защиту от замен на самом устройстве. Если там не будет ЭЦП, то это сделать довольно просто, если будет, то хранилище нафик не нужно.
2) мы не можем сопоставить логин и автора из внешнего мира, для этого нет никакой инфраструктуры и в этом решении.
Комментарий для sphere:
«то это сделать довольно просто» — это я имел ввиду, что просто произвести замену. Ведь это всё будет обслуживать куча персонала, оборудование выходит из строя, надо что-то копировать на новые машины и т. д. Это всё будут делать люди.
С человеческим фактором у ключей ЭЦП намного хуже, чем у сервиса по хранению документов. Да и вокруг бумажных документов тоже полно людей. Те же эксперты по подписям.
Нет гарантированного способа защиты ни для электронных, ни для бумажных документов, дело лишь в целесообразности подделки. Вопрос был как защитить от взлома ЭЦП в условиях растущих вычислительных ресурсах -- я вижу такой. Растут возможности враждебного окружения -- можно улучшать защиту сервиса, от времени он не зависит. Старые документы по-прежнему в сохранности.
Так же, как это происходит в случае с ЭЦП?
Пусть это будет отдельная программка и флешка с толстенным бинарным файлом. Почему ключ от сервиса должен быть хуже закрытого ключа ЭЦП?
Очевидное решение — переподписывать документы новыми методами при появлении этих самых методов.
Комментарий для sphere:
Единственная проблема здесь — кража подписи. Через какое-то время это значение перестаёт иметь — люди подписи меняют, у них есть срок действия.
Увы, в условиях электронного документооборота сложность подделки падает, так как нет понятия физического носителя, который можно проверить на подлинность. Копии неотличимы. Это при условии, что ЭЦП сломана, конечно.
Вы так и не рассказали как защищать будете это всё и как решать будете проблемы, которые я обозначил. То, что вы описали, содержит некую туманную идею, реализовать которую возможности нет. Фактически, я вам говорю: есть такой матаппарат, который используется, за которым серьёзные исследования, который надёжен для того, для чего он разработан, но может быть ненадёжен для хранения документов, для этого он не предназначен.
Вы мне отвечаете: у меня есть идея, которая заключается в том, что надо сделать надёжное хранилище. Это как я бы вам сказал: мне надо быстро попасть из точки «А» в точку «Б», а вы мне говорите: «без проблем, я тут подумал — надо сделать телепортатор, который будет моментально перемещать из „А“ в „Б“». Вы проблему-то не решили.
И этот ключ можно менять время от времени, в отличие от ключа ЭЦП, который достаточно слить один раз, чтобы навсегда стать автором многих замечательных документов (поправьте, пожалуйста, если я в этом моменте ошибаюсь).
Ели можно, обозначьте пожалуйста, ещё раз, желательно сделав f5 перед этим.
Комментарий для sphere:
ЭЦП — это кратковременная защита. Тут нет проблемы. Если вкратце, то есть удостоверяющие центры, которые гарантируют, что Иван Иванович тот, за кого он себя выдаёт. Этого вполне хватает в таком небольшом промежутке времени.
Это уже какой-то (только плохой) аналог ЭЦП. ЭЦП надёжнее этого решения.
Ключ менять нельзя. Вы, если не ошибаюсь, не понимаете как работает ЭЦП. Если ключ слить, то повлиять на уже подписанные нельзя, можно выпустить поддельные, но у кого останутся подлинники и будет конфликт, хотя отличить где подделка, а где настоящий документ нельзя будет. Но. У ЭЦП есть срок действия. Для того, чтобы подписывать новые документы, нужно украсть более новую подпись и так каждый раз.
(Про f5 -- это не придирка к вам, просто хочется прийти к чему-то в вопросе.)
...
Да, имелось в виду это. Если не понимаю, как работает ЭЦП в каком-то другом месте, уточните, пожалуйста.
Комментарий для sphere:
Я обновляю, но у меня другая комбинация, я на «Маке». :-) Я, конечно же, читаю что вы пишете. Но вы похоже просто не понимаете проблематики, так как не понимаете что такое электронная цифровая подпись. Это совершенно не в укор вам, это достаточно специфическое знание, не все интересовались. Но я советую почитать что-нибудь на эту тему. У меня сейчас плоховато с интернетом, к сожалению, на конференции нет вай-фая, поэтому не могу порекомендовать какие-то ссылки.
Комментарий для sphere:
Я имею ввиду, что ваше предложение про хранилище с паролями и логинами, без подтверждения личности просто не могло родиться, если понимать что такое ЭЦП и какую задачу она решает. У ЭЦП в этом месте масса проблем, но из знания механизма работы ЭЦП понятно, что она работает лучше, чем ваше предложение. Кроме того, ваше предложение о создании надёжного хранилища очень туманно. Вы ничего не говорите о том как это сделать. Пусть будет надёжное и точка.
А можно ли подписывать подписанные документы в случае известных случаев компрометирования алгоритмов подписания?
К примеру.
У нас есть подписанный документ, мы узнали что длины ключа не достаточно.
Можем ли мы переподписать (без изменения предыдущей подписи) документ новым, достаточно надёжным на текущий момент, ключём?
Если да, то по мере возрастания вычислительных мощностей, не сложно будет организовать изменение ключа/алгоритма на более «современный».
Комментарий для exh@myopenid.com:
Это неверная формулировка. В случае компрометирования алгоритмов, использованных при создании подписи можно подписать той же подписью любой другой документ. Этот документ может формулировать что-то новое, тогда аккуратно добавленную подделку невозможно распознать, либо чем-то противоречить, тогда при внимательном изучении противоречие можно найти, но узнать какой документ верный, а какой подделан невозможно в общем случае.
Для этого нужно как-то удостовериться, что предыдущая подпись не скомпроментирована и мы действительно переподписываем подлинник.
Вообще говорят, есть ещё и проблема в том, что у подписи есть срок действия. Я уже очень вскользь упоминал об этом. Переподписывать или складывать в какое-то хранилище, которое мы признаем достаточно надёжным можно. Но его сломают как только там появятся какие-то документы из-за которых взлом целесообразен. Или другой аспект — с какого-то момента там может накопиться какой-то солидный архив документов, количество которых сделает взлом выгодным. Мы же отследить этот момент и перераспределить документы не сможем, ведь ценность — субъективная оценка и зависит от оценивающего. У нас одна ценность, у заказчика взлома — другая.
Про переподписание я говорил уже в самом начале — можно пытаться, обгоняя прогресс и устаревание, подписывать документ «поверх» новой подписью. Но на каждом шаге есть вероятность подмены. Сколько таких шагов за сотню лет накопится? Надёжность схемы падает.
Хм.. А если сделать одноразовое хранилище ?
То есть, мы записываем туда оригинал для длительного хранения и
в случае необходимости извлекаем его оттуда. При этом он аппаратно
стирается. А для записи, допустим, можно потребовать физического присутствия
трех человек. Если делать это раз в год, то реализуемо, имхо
Комментарий для profiles.google.com/113601497564177351063/about?hl=en:
Невозможно потом отличить была запись произведена в присутствии трёх человек или нет. То есть кто-то из техников заменил документ и всё. Или вот, сдохла часть хранилища, надо заменять. Что если при копировании на новый носитель кто-то подменил файл. Понятное дело, решается как-то на уровне надёжности персонала и всё такое. Но попадётся одна крыса за эту сотню лет и всё, на месте документа — подделка.
Кроме того, объём документации за сотню лет будет такой, что в хранилище очереди будут.
Ну, если так рассуждать, то кто-то их техников может нажать на «красную кнопку»
и запустить баллистические ракеты. Попадётся один ненормальный за эту сотню лет и всё, гуд бай Америка.
Про очередь в хранилище я не совсем понял, вы считатете, что число запросов на оригиналы и последующую
перезапись превысит текущий объем документов для длительного хранения ?
Вы оценивали годовой объем таких документов , сколько ?
слава богу, что документы, требующие хранения сотню лет сейчас там же, где сейчас квантовые компьютеры
единственный способ сохранить документы на века в неизменном виде — обеспечить их публичность и многократное перевоспроизведение. Как декларация независимости США. Любые хранилища ненадежны и могут быть изменены из конъюнктурных соображений властными сруктурами. Проще говоря, для дешифрации пароля нужен лишь паяльник в задницу программисту.
К чему это паникерство, математики, как это ни странно, тоже не сидят на месте и разрабатывают новые алгоритмы ассимитричного шифрования, например уже относительно давно существуют алгоритмы обеспечивающие большую стойкость при той же длине ключа по сравнению с каким нубудь rsa. Кстати, некоторые даже имеют ГОСТы в Росси
Комментарий для zubchick.ya.ru:
И они устойчивы к гипотетическому взлому квантовыми компьютерами?
Как устроен срок действия подписи? Просто соглашение, что ключом, соответствующим такому-то открытому ключу, мы подписываем документы только в этом месяце?
P.S. Я правильно понимаю, что открытый ключ и некоторую метаинформацию вокруг него можно считать неподделываемым, потому что он широко распространен, и взломать все его хранилища невозможно?
Комментарий для Олег Горбунов:
Нет же. Они на бумаге сейчас.
Комментарий для zubchick.ya.ru:
Я рад за математиков. Но нам, простым людям, использующим документооборот интересно что делать с миллионами документов, уже подписанными существующими алгоритмами.
RSA в России документообороты в качестве ЭЦП не используют, это не ЭЦП с точки зрения закона. Используется ГОСТ Р 34.10-2001.
Комментарий для fulc.ru:
Нет, срок это часть ключа. Эта информация вфигачивается потом в подпись, насколько я помню. Всегда можно проверить «протухла» подпись или нет.
Вот это я не понял.
Ну я нашел какой-то документ, мне нужно проверить его подлинность. Откуда брать открытый ключ? Почему там, откуда я его возьму, не произошло подмены?
Комментарий для fulc.ru:
Как это «нашёл»? Документы, для которых важно авторство лежат внутри каких-то систем документооборота и просто так не «находятся». У нас, например, сама система подтвердит авторство.
Соглашусь c segafredo.
Общий практический принцип такой — делать неизменяемые носители с ЭЦП. Где-то на кулере была заметка про военную флешку однократной записи («которая выдерживает атомный удар»). Дальще проблема надежности хранения. Она также — распределенная. Вы храните в центрах хранения ключи друг друга кросс-подписанные.
(далее беллетристика)
А самое практичное решение — это все-таки соотнесение затрат на защиту с ценностью информации. Кажется, что теория парадигм науки работает и в жизни. Даже документированные факты получают альтернативную трактовку. Отсюда следует, кстати, вывод теоретический — важен контекст документа, то есть множество его сопровождающих документов и фактов. А также практический — защита документа не должна быть отделима от него самого.
Комментарий для vankovalenko.ya.ru:
Примерное направление мысли понятно, ага. Возвращаемся к бумажному документообороту, только не из бумаги, а из кремния.
Есть много материала по электронной подписи. Если будет интересно, жду на страницах сайта. Сайт указан чуть выше. С Уважением
Комментарий для http://russian-garant.ru/:
Спасибо, зайду обязательно!