Синхронизация времени и контроль часов
СТАНДАРТНАЯ ОПЕРАЦИОННАЯ ПРОЦЕДУРА
Синхронизация времени и контроль часов\ в компьютерной системе «n-tst.ru»
Номер СОП: СОП-КС-18
Версия: 1.0
Дата эффективности: 01.11.2026
Планируемая дата пересмотра СОП: 01.11.2028
ФИО Должность Подпись Дата
Утвердил Генеральный директор
Разработал Специалист по клиническим исследованиям
История изменений документа
Версия Дата эффективности Изменения Необходимость тренинга
СОП-КС-18, версия 1.0 01.11.2026 Первоначальный документ. Да
- НАЗНАЧЕНИЕ ПРОЦЕДУРЫ
Настоящая Стандартная операционная процедура (СОП) устанавливает порядок настройки, синхронизации и контроля системного времени на серверах и в компьютерной системе «n-tst.ru» (далее --- Система). Процедура обеспечивает точность и неизменность временных меток в журналах аудита, электронных подписях и клинических данных в соответствии с требованиями GCP и 21 CFR Part 11.
- ОБЛАСТЬ ПРИМЕНЕНИЯ
Процедура распространяется на:
-
серверы Production и Staging;
-
СУБД PostgreSQL (irk_db, irk_db_stage);
-
Node.js-приложение (server.js);
-
браузеры пользователей (в части отображения времени).
-
НОРМАТИВНО-ПРАВОВАЯ БАЗА
-
21 CFR Part 11: Electronic Records; Electronic Signatures (США), п. 11.10(e) (временные метки), 11.70 (связь подписи с записью).
-
ICH E6 (R2) Good Clinical Practice: Section 4.9 (Records and Reports).
-
ISPE GAMP 5: A Risk-Based Approach to Compliant GxP Computerized Systems.
-
ОПРЕДЕЛЕНИЯ И СОКРАЩЕНИЯ
Термин Определение
NTP (Network Time Protocol) Протокол синхронизации времени между серверами. UTC Coordinated Universal Time (Всемирное координированное время). Временная метка (timestamp) Значение даты и времени, фиксируемое в БД (например, created_at, signed_at). Часовой пояс (timezone) Локальное смещение относительно UTC (для РФ --- MSK, UTC+3).
-
ОБЯЗАННОСТИ
-
Администратор Системы --- настраивает NTP-синхронизацию, проверяет точность часов, ограничивает права на изменение системного времени.
-
QA --- периодически проверяет корректность временных меток в журналах аудита и подписях.
-
Разработчик --- обеспечивает, чтобы все timestamp в БД и API создавались в UTC (или MSK с явным указанием часового пояса) и не подменялись на стороне клиента.
-
ОПИСАНИЕ ПРОЦЕДУРЫ
6.1. Единый стандарт времени
-
Все временные метки в БД (created_at, updated_at, signed_at, published_at, invalidated_at и др.) хранятся в UTC (тип timestamp with time zone или timestamp without time zone с явным соглашением).
-
Отображение времени пользователю в браузере --- в локальном часовом поясе (для РФ --- MSK, UTC+3), с явным указанием пояса, если это критично.
-
В печатных формах (сертифицированные копии, отчёты мониторинга) время указывается либо в UTC с пометкой «UTC», либо в MSK с пометкой «MSK». Смешивать форматы в одном документе запрещается.
6.2. Настройка NTP-синхронизации
-
На серверах Production и Staging настраивается автоматическая синхронизация времени через systemd-timesyncd (или chrony/ntpd) с надёжными NTP-источниками (например, pool.ntp.org, ntp1.vniiftri.ru).
-
Проверка статуса синхронизации:
bash
timedatectl status
-
В выводе должно быть System clock synchronized: yes и корректный NTP service: active.
-
Администратор обязан проверить синхронизацию после установки сервера, после перезагрузки и после изменений в сетевой инфраструктуре.
6.3. Ограничение прав на изменение времени
-
Права на изменение системного времени (timedatectl set-time, изменение /etc/timezone) имеют только root и Администратор Системы.
-
Ручное изменение времени допускается только в исключительных случаях (например, при сбое NTP) и только с фиксацией в Журнале ручных изменений времени (Приложение 1).
-
В Системе (Node.js) запрещено использовать клиентское время для критичных меток. Все signed_at, created_at и др. должны формироваться на сервере (NOW() в PostgreSQL или new Date() на сервере с проверкой синхронизации).
6.4. Использование времени в электронных подписях
-
При подписании визита/карты время signed_at формируется на сервере (не в браузере) и записывается в БД.
-
В подписи фиксируется:
-
signed_at (UTC),
-
IP-адрес,
-
часовой пояс сервера.
-
-
Если клиент присылает своё время, сервер его игнорирует и использует своё. Это защищает от подмены времени на стороне пользователя.
6.5. Мониторинг и периодические проверки
-
Администратор ежемесячно проверяет статус NTP на всех серверах (timedatectl status).
-
QA при периодическом обзоре Audit Trail (СОП-КС-ЭД-11) проверяет:
-
нет ли записей с временем, «уехавшим» в будущее или в прошлое;
-
нет ли разрывов во временных метках (например, резкий скачок времени на несколько часов);
-
соответствуют ли временные метки подписей времени в первичной документации.
-
-
При выявлении расхождений QA инициирует инцидент (СОП-КС-РП-10) и оценку влияния на данные.
6.6. Действия при сбое синхронизации
-
Если NTP-синхронизация недоступна:
-
Администратор фиксирует инцидент;
-
проверяет, не «уехало» ли время на сервере;
-
при необходимости временно настраивает альтернативный NTP-источник;
-
после восстановления проверяет, не появились ли в БД записи с некорректными метками.
-
-
Если время всё же было изменено вручную, все записи, сделанные в этот период, помечаются в Журнале ручных изменений времени и проверяются QA.
<!-- -->
- Приложение 1. Журнал ручных изменений системного времени.
Приложение 1. Журнал ручных изменений системного времени.
Приложение 1 к СОП-КС-ЭД-18. Журнал ручных изменений системного времени
№ Дата изменения Сервер (IP) Было (UTC) Стало (UTC) Причина изменения Кто изменил (ФИО) Подпись QA
1 *12.11.2026* (пример) *94.154.11.5* *12:00* *15:00* Сбой NTP, восстановление синхронизации Админ
...
*Подписи:\ Разработал (QA): ___________ / _______________________ / «___» ___ 20__ г.\
Утвердил (Руководитель): ______________ / _____________ / «» _____ 20__ г.