Система парольной аутентификаци пользователей, которая перекочевала из самых первых версий 1С в 8.2 имеет ряд недостатков в плане безопасности, которые усугубляются при использовании систем, доступ к которым возможен из любой точки мира.
Выставляя систему наружу администратор должен особо позаботиться о мерах безопасности: строго следить за сложностью паролей пользователей, не допускать наличия лишних прав. Учитывая, что пользователей, привыкших к паролям вида 123 такие меры не радуют, к техническим мероприятиям добавляются еще и организационно воспитательные.
Предлагаемая разработка позволяет повысить безопасность систем, имеющих веб-интерфейс.
Суть разработки
Основная идея состоит в том, чтобы ограничить круг пользователей, которые могут подключиться к системе. Для этого осуществляется привязка пользователя с помощью ключа пользователя. Ключ пользователя сгенерирован таким образом, что даже зная алгоритм его генерации невозможножно сформировать правильный ключ для любого другого пользователя.
Этот принцип позаимствован из механизма хэширования паролей различных ОС. Ключ пользователя формируется путем хэширования имени пользователя в конфигурации, к которому добавлен набор произвольных символов. Для усложнения обратного преобразования хэш код вычисляется несколько раз.
Для входа в систему помимо пароля пользователь должен ввести свой ключ, он может ввести его вручную или указать расположение ключевого файла. При последующих входах система не будет запрашивать ключ, если он хранится на диске в заданном месте.
В прилагаемой конфигурации заведены два пользователя: Администратор с полными правами и правом входа без ключа и Пользователь с правами внешнего доступа.
Конфигурация поставляется в демо режиме, чтобы работу подсистемы можно было посмотреть в файловом варианте. Для переключения в реальный режим необходимо в общем модуле УправлениеДоступомКлиент удалить или закоменировать строку №15.
Дополнительные рекомендации по безопасности веб доступа
1. Настроить на веб-сервере использование SSL, так, чтобы доступ к системе был возможен только по протоколу https.
2. Включить в конфигурацию проверку длины и сложности паролей пользователей.
3. У всех пользователей отключить флаг "Показывать в списке выбора".
Ссылки
Идея данной разрабоки навеяна //infostart.ru/public/77203/.
Алгоритм вычисления хэша MD5 использует java script http://pajhome.org.uk/crypt/md5, алгоритм запуска с использованием ScriptControl взят из примера, выложенного в одном из комменариев на Инфостарте, ссылку к сожалению не помню.
Буду благодарен за критику и предложения.