Лента прозрачности: реестр протоколов

Каждый готовый протокол попадает в реестр: хеш записи включает хеш предыдущей записи, пачка записей сворачивается в корень дерева Меркла, корень пишется в файл и заверяется меткой времени государственной службы НУЦ РК (RFC 3161) и OpenTimestamps. Изменить или убрать запись задним числом, не разорвав цепочку до заверенного корня, нельзя. Файл корня не содержит ни номеров протоколов, ни их содержимого. В ту же цепочку пишутся служебные записи: журнал входа администратора eFix под пользователем (причина, срок, завершение) и шаги споров по протоколам — тоже только хешами.

Корней выпущено: 27; записей ожидают ближайшего корня: 49 ; последний корень: 17.10.2026 17:06:56 UTC+5 (Алматы). Корни выпускаются каждые 6 часов.
Код сервера сейчас: выпуск 49.30, коммит 5465e4b7abd0e54940cdcc941b8586aaa5c3252b, отпечаток реестра выпуска d09a530f402bf0287c2bfe7584c0b981ba5d1de60de8d237ec772d83bbae4a01; самопроверка 17.10.2026 21:46:51 UTC+5 (Алматы): совпало 328 из 328 файлов.
№ Выпущен Записи Корень (SHA-256) Метка НУЦ РК OpenTimestamps Файлы
27 17.10.2026 17:06:56 770–781 (12) 536e0dec8cd03a8465f4c9ec5147d8f4e8be83e6011c5e3b92dd2afa65c2c844 есть, 2026-10-17T12:06:59.335245+00:00 передана json · tsr · ots
26 17.10.2026 11:06:55 720–769 (50) b1131340e251bc3642ecb2c91cabbeae716a04ff41bd096cc3b8506f107153c8 есть, 2026-10-17T06:06:56.251071+00:00 передана json · tsr · ots
25 17.10.2026 05:06:55 715–719 (5) 524c5222e4dabb1a1ad0dec65af25247b43ea141080faadce0c1030e29d2c9c8 есть, 2026-10-17T00:06:56.348347+00:00 передана json · tsr · ots
24 16.10.2026 23:42:24 713–714 (2) 0229e5f9a1ff0444d3f26a105b623ee676506f9e53cac2f978e8ddb2ed2d8a76 есть, 2026-10-16T18:42:55.308633+00:00 передана json · tsr · ots
23 16.10.2026 23:06:55 665–712 (48) e1a0e9ccb71c6f848d66417f6cdad81a179af567fc88750d242fef8f46f7ea44 есть, 2026-10-16T18:06:59.028185+00:00 передана json · tsr · ots
22 16.10.2026 17:05:53 651–664 (14) ab99a7a73fad144197908034902a2bd82c16dcad555b896d0713f64cfd89f4c2 есть, 2026-10-16T12:05:54.500506+00:00 передана json · tsr · ots
21 16.10.2026 11:05:52 601–650 (50) e2ed6f34e21ca7046affd37dfba072dc1c882a69f2077876abb3a38e4c0e3d15 есть, 2026-10-16T06:05:53.255895+00:00 передана json · tsr · ots
20 16.10.2026 05:05:52 597–600 (4) 25b5fcf942de6b8713c20948a0db1f37aa5cf78746cec68d1c32376ce918e26d есть, 2026-10-16T00:05:53.020759+00:00 передана json · tsr · ots
19 15.10.2026 23:05:52 548–596 (49) c7aa8a58f554fe31e412405cb77b4de9efc7d98d81bed7720db5ca7d7b2c2bd7 есть, 2026-10-15T18:05:53.658532+00:00 передана json · tsr · ots
18 15.10.2026 17:05:56 539–547 (9) eb5ee34699e977701dd2d9c4831cd0381b1d5edfcf6630bc6d5609ef46db0e33 есть, 2026-10-15T12:06:02.980862+00:00 передана json · tsr · ots
17 15.10.2026 11:03:21 487–538 (52) 882c049efa91be660428f4b83871632c1032897b9851ee29511fd394061b6529 есть, 2026-10-15T06:03:22.486764+00:00 передана json · tsr · ots
16 15.10.2026 05:03:21 483–486 (4) 334927441ae595aa2478878cc44810d7c5b39bc3990d57c6b839c93f06660978 есть, 2026-10-15T00:03:23.250267+00:00 передана json · tsr · ots
15 14.10.2026 23:03:21 474–482 (9) b7977d82da622f509ec14bcb69b8e9babfb121873084028adbd010f9540c0be3 есть, 2026-10-14T18:03:24.359380+00:00 передана json · tsr · ots
14 14.10.2026 17:03:21 434–473 (40) eee829fb1aebd7b826bc0a54026fe659144f12e7dfa1ca457c81493cb251f659 есть, 2026-10-14T12:03:26.762097+00:00 передана json · tsr · ots
13 14.10.2026 11:03:21 379–433 (55) 1cf4e0fe94c3e3d8c2bbea87ef0936f05907c45aea3b35859b6698456ab368ae есть, 2026-10-14T06:03:33.598885+00:00 передана json · tsr · ots
12 14.10.2026 05:03:21 373–378 (6) 8cf17af44d05feac520b71f221dbf8788729c8fc26f595f78d4ff189db0f25e5 есть, 2026-10-14T00:03:24.024559+00:00 передана json · tsr · ots
11 13.10.2026 23:03:21 370–372 (3) 05a1f4de982771f39819c3f7d8aab68c3b47fe89d54cacfe6a7d6b45f4026f10 есть, 2026-10-13T18:03:25.448107+00:00 передана json · tsr · ots
10 13.10.2026 17:03:21 369–369 (1) 5d2cd35b4761837557377baf0a29d214ce2216307cc080a16ff4b042dba73aa2 есть, 2026-10-13T12:03:21.997944+00:00 передана json · tsr · ots
9 13.10.2026 11:03:21 317–368 (52) a393c590aa32b1af85cfc9e4c343f0b643a05d2f64e3e1ec80aadb5c8164590b есть, 2026-10-13T06:03:24.263683+00:00 передана json · tsr · ots
8 12.10.2026 23:03:20 312–316 (5) 54000a274b735cdfed5dd13230432b6949fe84e0134a97ccddf76aa2dc000a29 есть, 2026-10-12T18:03:22.376781+00:00 передана json · tsr · ots
7 12.10.2026 17:03:20 311–311 (1) 7083dd6556c8cd93e39229e4819185bb6f39438c60721a4c2ba9668ee56f4ec5 есть, 2026-10-12T12:03:24.094085+00:00 передана json · tsr · ots
6 12.10.2026 11:09:40 262–310 (49) 7502738f432964a462ea01c55b3548581e78c7393eaab09cce2bacc009ef44ac есть, 2026-10-12T06:09:42.120687+00:00 передана json · tsr · ots
5 11.10.2026 23:03:18 259–261 (3) 526e717bab670335fd7d99e2fe3c0afba40c34444590e1b70df6eef50f2927bd есть, 2026-10-11T18:03:18.879673+00:00 передана json · tsr · ots
4 11.10.2026 17:03:18 258–258 (1) 00836d8db3482bb578adfc8c1214fcf1ad462b581a075a600ee4d430caf9fc96 есть, 2026-10-11T12:03:19.210691+00:00 передана json · tsr · ots
3 11.10.2026 11:03:18 219–257 (39) cba032d5d124f90c9feb0b7d13448efcbc4f30a2c782fe1e8ea312c1cffea60d есть, 2026-10-11T06:03:19.788552+00:00 передана json · tsr · ots
2 10.10.2026 23:03:17 218–218 (1) 3c2fbc5c4f0470abca9eb6e2b03ec723fe16e9483c632ef58e68384b55e965d4 есть, 2026-10-10T18:03:20.583855+00:00 передана json · tsr · ots
1 10.10.2026 20:02:24 1–217 (217) f71d270c7e1eff7dc93698b57760e382decb158f33052098249a3fe0b243691b есть, 2026-10-10T15:02:29.291023+00:00 передана json · tsr · ots

Архивные метки (ETSI TS 119 511)

Подпись протокола и квитанция времени в ней проверяются, пока действуют сертификаты подписанта и службы времени. Архивная метка — новая квитанция НУЦ РК и OpenTimestamps над файлом, в котором записаны хеш последнего корня реестра и хеш предыдущей метки вместе с её квитанцией. Пока цепочка продолжается (первая метка — как только есть заверённый корень, далее раз в квартал, досрочно — при смене ключа подписанта и за год до истечения сертификата подписанта или службы времени), факт существования каждого протокола доказуем и после истечения сертификатов. Evidence record протокола с цепочкой меток — на его странице проверки; экспортный пакет всех файлов ленты со скриптами проверки: efix-transparency.zip. Внешний монитор (любая третья сторона, стандартная библиотека Python): python tools/monitor_transparency.py https://efix.kz ./папка — по расписанию докачивает корни и метки через latest.json, проверяет непрерывность цепочек и квитанции и поднимает тревогу, если история переписана или откатилась.

Меток выпущено: 2; последняя: 11.10.2026 19:58:45 UTC+5 (Алматы) (signer_cert_expiry); плановая следующая: 09.01.2027.
№ Выпущена Повод Корень Предыдущая Файл (SHA-256) Метка НУЦ РК OpenTimestamps Файлы
2 11.10.2026 19:58:45 signer_cert_expiry № 4 № 1 e45e32132fe601ea1272be02d573dbbfdff2e9d2d9a6ef191d7e290ccc31de42 есть, 2026-10-11T14:58:49Z
сертификат службы до 27.10.2028
передана json · tsr · ots
1 10.10.2026 20:05:24 first № 1 — 33daea35362fed6b593869de40e3393f233991189205fb65ea592e94616efe74 есть, 2026-10-10T15:05:27Z
сертификат службы до 27.10.2028
передана json · tsr · ots

Ключи постквантовой подписи (ML-DSA-65, FIPS 204)

Протоколы с 11.10.2026 несут, кроме ЭЦП НУЦ РК, второй подписной контейнер protocol.pdf.mldsa.p7s на те же итоговые байты — техническую страховку на случай ослабления классических алгоритмов. Ниже — все сертификаты eFix, которыми он когда-либо ставился; сертификат не удаляется и после смены ключа, иначе старые протоколы нечем проверить. Каждый сертификат входит в код выпуска, поэтому его отпечаток заверен в журнале выпусков (подпись, метка НУЦ РК, OpenTimestamps), а внешний монитор сигналит, если опубликованный сертификат исчез или изменился. Проверка контейнера — «Как проверить», раздел 2а.

Сертификат Действует Отпечаток SHA-256 (как печатает openssl x509 -fingerprint -sha256, без двоеточий)
efix-mldsa65-20261011.pem 2026-10-11 — 2051-10-11 9e9506595606ae33e0089d7aeec5b701bfa79b62db425b4fcb2cd4952b904d34

Политика для архивных меток. Сегодня ни НУЦ РК, ни другие службы меток времени не выпускают постквантовых квитанций RFC 3161, поэтому архивные метки выше ставятся классическим алгоритмом службы. Когда появится служба меток с подписью ML-DSA (или другим алгоритмом FIPS 204/205), очередная архивная метка будет выпущена ею досрочно и накроет всю прежнюю цепочку — так же, как метка выпускается при смене ключа и до истечения сертификатов; прежние квитанции сохраняются. До тех пор постквантовую страховку каждого протокола даёт его собственный контейнер ML-DSA.

Как проверить без eFix

  1. На странице проверки протокола возьмите «доказательство включения» (JSON) и скачайте файл корня, в который включена запись.
  2. Запустите python tools/verify_ledger.py доказательство.json ledger-root-NNNNNN.json — скрипт из репозитория, только стандартная библиотека Python: он пересчитает хеш записи из её полей, проведёт путь Меркла до корня и сверит корень с файлом.
  3. Цепочку корней: python tools/verify_ledger.py --chain ledger-root-000001.json ledger-root-000002.json … — каждый корень несёт хеш предыдущего.
  4. Квитанции на файл корня: .tsr — любой программой RFC 3161 (например, openssl ts -verify), .ots — на opentimestamps.org или ots verify. Они удостоверяют SHA-256 самого файла корня.