Принципы распределения прав и ответственности.

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

1. Распределение ответственности (англ. separation of duties). Этот принцип означает, что в системе (пространстве) не должно быть субъекта, который мог бы самостоятельно от начала до конца выполнить операцию, которая может нанести ущерб безопасности. Например, если пользователь А выполняет некую транзакцию, имеющую существенное значение для системы, то она должна вступить в силу только после того, как пользователь Б проверит и подтвердит ее корректность. Таким образом, ни А, ни Б не могут по отдельности произвести данную транзакцию, один может только формировать данные для нее, другой — только авторизовать ее (то есть в данном случае отправить на выполнение), — без этих двух процедур транзакция не будет иметь результата.

Если конкретная операция в системе построена таким образом, что она не может быть разделена между двумя пользователями, значит, при ее критической важности, она должна быть выполнена одним пользователем только в присутствии другого. Это может быть достигнуто, например, разделением пароля на аутентификацию пользователя, от имени которого запускается функция, на две (или более) части. Иногда можно встретить другое определение такого принципа — "в четыре глаза" (англ. four eyes).

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