TAŇBA-OOH Әзірлеушілерге

Келісу конверті мен кері қайтару тізімінің пішімдері

Екі қол қойылған файл ойнатқыштың нені көрсетуге хақылы екенін шешеді: әр медиафайлмен бірге жүретін келісу конверті және келісуді кері қайтаратын кері қайтару тізімі. Бұл бетте екеуі де сипатталған, сонда ойнатқыш, CMS немесе тексеру құралы оларды біздің бағдарламамызсыз оқи алады.

Анықтамалық беттер: Келісу конверті мен кері қайтару тізімінің пішімдері және Құрылғы протоколы.

Келісу пакеті

Келісілген ролик жарияланған атаумен екі файл болып жеткізіледі: медиафайл және оның конверті, мысалы spot.mp4 және spot.mp4.p7s. Келісу конвертін интеграция API-і арқылы жүктеуге болады (GET /api/v1/approvals/{number}/envelope, read:approvals рұқсаты). Конверт өзі атайтын файлсыз пайдасыз, ал файл конвертсіз экранда болуға тиіс емес.

Конверт

Конверт DER пішіміндегі бір CMS SignedData (.p7s файлы). Қол қойылған мазмұны келісу манифесі, ол канондық JSON түрінде (RFC 8785) және медиафайлды оның SHA-256 мәні бойынша атайды.

Өндірістік келісуде екі қолтаңба бар (сынақ контуры бір қолтаңбалы конверттерді де шығара алады, бұл манифест ескертпесінде айтылады):

Манифестте v нұсқасы, env ортасы (test немесе prod), келісу нөмірі, келісу және орган идентификаторлары, жарнама беруші, медиа (sha256, size, duration_ms, width, height), әрекет мерзімі (valid_from, valid_until), келісу қамтитын құрылымдар, регламент (code, version) және issued_at бар. /v1/approval/{number} жария беті жарнама берушінің нөмірі жасырылған дәл сол манифесті және түпнұсқа байттар хэші manifest_sha256 мәнін көрсетеді.

Қол қойылған атрибуттар және кілт мақсаттары

Платформа қолтаңбасы осы қол қойылған атрибуттарды алып жүреді, ал сертификаттар осы кеңейтілген кілт мақсаттарын алып жүреді. Барлық идентификаторлар 1.3.6.1.4.1.59999.1 тармағында жатыр.

ИдентификаторНе үшін
1.3.6.1.4.1.59999.1.1Қол қойылған атрибут: медиаларды тіркеу нөмірі
1.3.6.1.4.1.59999.1.2Қол қойылған атрибут: келісуші орган идентификаторы
1.3.6.1.4.1.59999.1.3Қол қойылған атрибут: келісудің аяқталу мерзімі
1.3.6.1.4.1.59999.1.4Қол қойылған атрибут: мемлекеттік қолтаңба мәнінің SHA-256 мәні
1.3.6.1.4.1.59999.1.5Қол қойылған атрибут: орта, test немесе prod
1.3.6.1.4.1.59999.1.6Келісу сертификатының кеңейтілген кілт мақсаты
1.3.6.1.4.1.59999.1.7Мәртебе сертификатының кеңейтілген кілт мақсаты: кері қайтару тізімдері, аудит зәкірлері, статистика мөрлері
1.3.6.1.4.1.59999.1.8Құрылғыларға берілетін командалар сертификатының кеңейтілген кілт мақсаты

Бұл тармақ уақытша: бұл жеке сынақ тармағы. Тіркелген тармақ микробағдарламаға өндірісте конвертке сенуді тапсырғанға дейін оның орнын басады, ал құрылғы протоколы сол уақытқа дейін «бета» мәртебесінде қалады. Бұл сандарды сынақ контурынан ұзақ өмір сүруге тиіс ештеңеге қатты жазбаңыз.

Ойнатқыш нені шешеді

Ойнатқыш файлды көрсетпес бұрын тексереді және бас тартуды дәл бір кодпен хабарлайды:

КодМағынасы
NO_SIGNATUREКонверт жоқ
BAD_SIGNATUREҚолтаңба, сертификаттар тізбегі немесе кілт мақсаты дұрыс емес
HASH_MISMATCHФайл манифест атайтын файл емес
EXPIRED_APPROVALКелісу мерзімінен тыс, одан бұрын немесе кейін
REVOKEDКелісу қолданыстағы кері қайтару тізімінде бар

Мемлекеттік қолтаңбаны платформа келісу жасалғанда тексереді. GOST кілттерін оқи алмайтын ойнатқыш платформа қолтаңбасы бойынша шешім қабылдайды және мемлекеттік қолтаңба бар, бірақ тексерілмегенін хабарлайды (tanba-verify бағдарламасында OUTER_NOT_VERIFIED). OpenSSL сияқты кәдімгі бағдарламалар да GOST кілтін оқи алмайды, сондықтан Жүктеулер бетіндегі tanba-verify бағдарламасын немесе өз ойнатқышыңыздың тексерулерін пайдаланыңыз.

Кері қайтару тізімі

Кері қайтару тізімі платформаның мәртебе кілтімен қол қойылған, тізім ішіне салынған CMS SignedData. Кілттің мәртебе мақсаты бар, сондықтан келісу сертификаты тізімді шығара алмайды. Ең жаңа тізімді https://verify.tanba-ooh.kz/v1/revocations/latest мекенжайынан алыңыз (?format=json болса, дене мен қолтаңба JSON түрінде келеді), берілген нұсқаны https://devices.tanba-ooh.kz/d/v1/revocations/{version} мекенжайынан. Шақырулар ашық және 60 секундқа кэштеледі.

Дене канондық JSON:

{"v": 1, "env": "prod", "version": 42, "issued_at": "2026-10-14T08:00:00Z", "not_after": "2026-10-15T08:00:00Z",
 "revoked": [{"approval_number": "TNB-2026-000123", "revoked_at": "2026-10-14T07:30:00Z", "ground_code": "court_order"}],
 "revoked_devices": [{"device_id": "5c0e8f3a-71d2-4b6e-9a14-d8e2f7b30c59", "cert_serial": "1234567890123", "revoked_at": "2026-10-14T07:45:00Z"},
                     {"device_id": "a41d7b20-93c6-4e58-8f1b-0d6e2a9c5473", "pubkey_sha256": "ab12c4d7e9f0a1b2c3d4e5f60718293a4b5c6d7e8f90a1b2c3d4e5f607182930", "revoked_at": "2026-10-14T07:50:00Z"}]}

Ойнатқыш тізіммен не істейді

Тізімді офлайн tanba-verify revocations list.p7s --ca root.pem командасымен тексеруге болады: ол алдымен келісулерді, содан кейін құрылғыларды басып шығарады.