Вам уже приходилось подписывать электронные документы? И
как, не заметили ничего странного? Заметили? Именно об этом сейчас и пойдет
речь!
Начнем немного издалека. Что мы подписываем, когда мы
подписываем бумажный документ? Вопрос звучит странно, согласен, но ответ
кажется довольно простым. Мы ставим подпись, как знак нашего согласия с
содержанием документа. «Я такой-то такой-то, прошу предоставить мне отпуск с <Дата1>
по <Дата2>». Все просто и понятно.
А что закрепляет наша подпись в электронном документе,
кроме нашего желания отдохнуть с <Дата1> по <Дата2>? Ставя подпись
под электронным документом, созданным, скажем, в популярном текстовом
процессоре, мы своей подписью закрепляем, что <Дата2> записана шрифтом Courier New высотой 11 кеглей. This makes no sense, как сказали бы наши
английские друзья, ибо будь эта дата написана шрифтом Times New Roman высотой 14 кеглей,
отдыхать мы больше не станем. Иными словами, подписывая электронный документ,
мы, желая того или нет, своей подписью закрепляем еще и его форму. Но это сущие
пустяки, по сравнению с тем, о чем я поведаю дальше…
Не секрет, что большинство современных электронных
документов имеют в своем арсенале не только элементы оформления, но и могут
содержать некий код на достаточно мощном языке программирования, скажем, Visual Basic for Applications. Так вот, своими руками, имея под этими самыми руками
только кажущийся таким безобидным Visual Basic, можно создать
самодельную бомбу. Нет, офис она, конечно, не разнесет, а вот шуму наделать
может немало. Как? Попытаюсь пояснить на маленьком примере.
Например, написали вы заявление на отпуск и отправили его
своему непосредственному начальнику на утверждение. А заявление не простое, а в
виде doc-файла, да не просто, а с макросом на Visual Basic. Желая понежиться подольше в лучах теплого летнего
солнышка, вы полагаете, что отдохнуть с 10 июля по 10 августа, будет как раз
то, что нужно. Доходит заявление до вашего босса, макрос определяет имя его
машины, немного меняет текст заявления, и ваш начальник видит, что вы хотите
отдохнуть с 10 по 15 июля, ибо больше вам совесть не позволяет. Шеф, радуясь,
что под его началом трудится такой ответственный сотрудник, подписывает это
заявление и посылает дальше по инстанции. Следующая инстанция получает документ
уже с «реальным» сроком отпуска, протяженностью в один месяц, но, видя подпись
вашего начальника, скорее всего, не
будет вникать в суть вопроса. Так оно дойдет и до бухгалтерии, где вас одарят
щедрыми отпускными.
Скажете, такое невозможно? Меняя документ, макрос изменит
и значение hash-функции, делая недействительной цифровую подпись. А если
документ не будет сохраняться, просто макрос будет менять текст при открытии?
Если ЭЦП не встроена в тело документа, а помещена в один контейнер с
документом? Согласен, что в заявлении макрос вызовет подозрение, а как быть в
случае с электронной формой, которая изначально содержит макросы, проверяющие
корректность введенных данных? В любом случае это всего лишь умозрительный
пример, показывающий, что электронный документ, это не только содержащаяся в
нем «реальная» информация, но и служебная «электронная» информация (стили
оформления, макросы и т.п.). Эта информация не несет для подписанта
«экономического» смысла, но, тем не менее, также закрепляется его подписью.
Получается, что, подписав электронный документ, мы берем на себя
ответственность за все содержащиеся в нем макросы, а также за все их действия в
настоящем и будущем? А оно … нам надо?