ГОСТ Р ИСО/МЭК 8825-1-2003
D.1.10 Рабочая группа справочника первой пыталась найти решение этой проблемы, и их модель описана
ниже.
D.2 Подход к решению
D.2.1 Ниже описана концептуальная модель того, что нужно сделать, а затем — оптимизация реализации, исключающая двойное кодирование/декодирование, подразумеваемое концептуальной моделью.
D.2.2 Концептуальная модель работает следующим образом:
а) отправитель, на прикладном уровне, преобразует абстрактное значение в битовую строку, используя DER, и создает аутентификатор из этой битовой строки, который добавляется к абстрактному значению, и оба значения передаются с помощью обычных методов уровня представления и любого синтаксиса передачи. Концептуально, отправление кодируется дважды: один раз — для аутентификатора (используя DER) на прикладном уровне, второй раз — для фактической передачи (используя согласованный синтаксис передачи) на уровне представления.
Примечание — Важным свойством битовой строки, создаваемой DER, является ее однозначное соответствие абстрактному значению. Таким образом, сквозная передача без потери информации на уровне абстрактного синтаксиса эквивалентна сквозной передаче битовой строки, на которой основан аутентификатор;
б) получатель декодирует полученную битовую строку на уровне представления, используя согласованный синтаксис передачи (который может отличаться от использованного отправителем, если имела место прикладная ретрансляция), и передает абстрактное значение приложению. На прикладном уровне абстрактное значение кодируется повторно с использованием DER для создания битовой строки для аутентификации.
D.2.3 Таким образом, концептуально, кодирование осуществляется дважды при отправке, а при получении осуществляется одно декодирование и одно кодирование. Реализаторы могут фактически следовать этой процедуре, если код, обеспечиваемый операцией уровня представления и поставщиком, отличается от кода для поддержки приложения. Пока не ясно, насколько это существенно. При использовании интегрированных реализаций имеется возможность оптимизации, описанная ниже. Следует заметить, что DER не являются более жесткими по отношению к приложению, чем BER, за исключением типа «множество-из». Если обрабатывается большое «множество-из», то реализации может потребоваться вызов процедуры дисковой сортировки. Проектировщики приложений должны стараться этого избегать и использовать «последовательность-из» вместо «множество-из», когда предвидится использование DER.
D.3 Оптимизация реализации
D.3.1 Модель ВОС и стандарты протоколов специфицируют требуемое поведение, но они ни коим образом не устанавливают ограничений на архитектуру и структуру фактического кода реализации. Таким образом, реализатор может добиваться желаемого результата выбранным им путем.
D.3.2 На конце отправителя битовая строка, которая создается (концептуально — на прикладном уровне) может быть сохранена и использована для обеспечения кодирования, которое, концептуально, осуществляется на уровне представления. Это подходит для отправителя, если согласованным синтаксисом передачи является BER или DER. Если это не так, то двойное кодирование необходимо.
D.3.3 Аналогично, на конце получателя полученная битовая строка может быть сохранена (для любого синтаксиса передачи), и реализация может использовать ее для проверки аутентификатора. Если все согласуется — нет проблем. Если не согласуется, то это может быть проблемой синтаксиса передачи и тогда необходимо повторное кодирование абстрактного значения для выявления подделки.
D.3.4 Для того чтобы повысить шансы не иметь двойного кодирования/декодирования, системам, использующим этот метод, рекомендуется пытаться согласовать в первую очередь в качестве синтаксиса передачи DER (используя соответствующий идентификатор объекта), а затем — BER и другие правила кодирования.
26