๐Ÿ” ProofCam ๋ด‰์ธ ์„œ๋ฒ„ โ€” ๋Œ€์‹œ๋ณด๋“œ

๋ด‰์ธ๋œ ํ•ญ๋ชฉ๊ณผ ์„œ๋ฒ„ ์ƒํƒœ๋ฅผ ํ•œ ํ™”๋ฉด์—์„œ ๋ณธ๋‹ค.

84
๋ด‰์ธ๋œ ํ•ญ๋ชฉ
0
ํŒŒ๊ธฐ๋จ
HTTPS
proofcam.deshow.co.kr

ํ˜„์žฌ ๋ด‰์ธ๋œ ํ•ญ๋ชฉ ์ €์žฅ์†Œ์—์„œ ์‹ค์‹œ๊ฐ„ ยท ๋ด‰์ธ์ผ์‹œ(KST) ์ตœ์‹ ์ˆœ โ€” ์ƒˆ๋กœ๊ณ ์นจํ•˜๋ฉด ๊ฐฑ์‹ 

์ข…๋ฅ˜seal_id๋ด‰์ธ์ผ์‹œ (KST)๋ชจ๋“œ/๋ฒ„์ „๋ฒˆ๋“คํƒ€์ž„์Šคํƒฌํ”„์›๋ณธ์ง€๋ฌธยท๋ง์  ์Œ์„ฑ=์ง€๋ฌธยท์‚ฌ์ง„์˜์ƒ=๋ง์ 
ํ™”๋ฉด ์บก์ฒ˜6ad34c55d1424cbdโ€ฆ2026-09-16 16:50:57 KSTclient-hybrid / vseal-manifest/0.2โœ…2โ€”โœ… ๋ง์ 
ํ™”๋ฉด ์บก์ฒ˜61c48346d0f348f3โ€ฆ2026-09-16 16:50:54 KSTclient-hybrid / vseal-manifest/0.2โœ…2โ€”โœ… ๋ง์ 
์˜์ƒc5ad37610efc43efโ€ฆ2026-09-16 14:26:03 KSTserver-composited / vseal-manifest/0.2โœ…2โœ…โœ… ๋ง์ 
์Œ์„ฑ2e6d29d1f7594659โ€ฆ2026-09-16 13:51:08 KSTclient-hybrid / vseal-manifest/0.2โœ…2โœ…โœ… ์ง€๋ฌธ
์˜์ƒ2c9bd04900df4690โ€ฆ2026-09-16 13:42:08 KSTserver-composited / vseal-manifest/0.2โœ…2โœ…โœ… ๋ง์ 
์‚ฌ์ง„037dc9df497e4ca8โ€ฆ2026-09-16 13:41:45 KSTclient-hybrid / vseal-manifest/0.2โœ…2โœ…โœ… ๋ง์ 
์‚ฌ์ง„826e39dbc35744a2โ€ฆ2026-09-16 13:41:36 KSTclient-hybrid / vseal-manifest/0.2โœ…2โœ…โœ… ๋ง์ 
์‚ฌ์ง„e4f84cfa6ee94bb3โ€ฆ2026-09-09 15:58:10 KSTclient-hybrid / vseal-manifest/0.2โœ…2โœ…โœ… ๋ง์ 
์‚ฌ์ง„eaad2c72e11e42beโ€ฆ2026-09-09 15:57:00 KSTclient-hybrid / vseal-manifest/0.2โœ…2โœ…โœ… ๋ง์ 
์‚ฌ์ง„ca90071da83a42b0โ€ฆ2026-09-09 15:56:12 KSTclient-hybrid / vseal-manifest/0.2โœ…2โœ…โœ… ๋ง์ 
์‚ฌ์ง„8aa40f2cd29a4d8cโ€ฆ2026-09-09 15:48:58 KSTclient-hybrid / vseal-manifest/0.2โœ…2โœ…โœ… ๋ง์ 
์Œ์„ฑ0d04d48838b14512โ€ฆ2026-09-07 13:39:39 KSTclient-hybrid / vseal-manifest/0.2โœ…2โœ…โœ… ์ง€๋ฌธ
์Œ์„ฑd4d726503ab04eb1โ€ฆ2026-09-04 11:54:40 KSTclient-hybrid / vseal-manifest/0.2โœ…2โœ…โœ… ์ง€๋ฌธ
ํ™”๋ฉด ์บก์ฒ˜922e8da1c70d41e6โ€ฆ2026-09-04 10:51:49 KSTclient-hybrid / vseal-manifest/0.2โœ…2โ€”โœ… ๋ง์ 
ํ™”๋ฉด ์บก์ฒ˜ed50d3dc1b4e435aโ€ฆ2026-09-04 09:04:15 KSTclient-hybrid / vseal-manifest/0.2โœ…2โ€”โœ… ๋ง์ 
ํ™”๋ฉด ์บก์ฒ˜b6f272d6db8f4215โ€ฆ2026-09-04 09:04:12 KSTclient-hybrid / vseal-manifest/0.2โœ…2โ€”โœ… ๋ง์ 
์‚ฌ์ง„cddf8ae3fbd94343โ€ฆ2026-09-03 15:39:23 KSTclient-hybrid / vseal-manifest/0.2โœ…2โœ…โœ… ๋ง์ 
์‚ฌ์ง„23b9a4b4651c4f87โ€ฆ2026-09-03 15:35:27 KSTclient-hybrid / vseal-manifest/0.2โœ…2โœ…โœ… ๋ง์ 
ํ™”๋ฉด ์บก์ฒ˜a42688c9995c4467โ€ฆ2026-09-03 13:33:39 KSTclient-hybrid / vseal-manifest/0.2โœ…2โ€”โœ… ๋ง์ 
ํ™”๋ฉด ์บก์ฒ˜0bdef514968a45a1โ€ฆ2026-09-03 13:31:00 KSTclient-hybrid / vseal-manifest/0.2โœ…2โ€”โœ… ๋ง์ 
ํ™”๋ฉด ์บก์ฒ˜8656f27826d24f93โ€ฆ2026-09-03 13:24:12 KSTclient-hybrid / vseal-manifest/0.2โœ…2โ€”โœ… ๋ง์ 
ํ™”๋ฉด ์บก์ฒ˜d30cf8417952435aโ€ฆ2026-09-03 13:24:08 KSTclient-hybrid / vseal-manifest/0.2โœ…2โ€”โœ… ๋ง์ 
ํ™”๋ฉด ์บก์ฒ˜c73dc14bdacb46b2โ€ฆ2026-09-03 13:03:24 KSTclient-hybrid / vseal-manifest/0.2โœ…โ€”โ€”โœ… ๋ง์ 
ํ™”๋ฉด ์บก์ฒ˜289f388f69fe41a9โ€ฆ2026-09-03 13:03:22 KSTclient-hybrid / vseal-manifest/0.2โœ…โ€”โ€”โœ… ๋ง์ 
ํ™”๋ฉด ์บก์ฒ˜f30562e0ca104882โ€ฆ2026-09-03 08:50:56 KSTclient-hybrid / vseal-manifest/0.2โœ…2โ€”โ€” ๋ง์ 
์Œ์„ฑcbeea4a7b54f475eโ€ฆ2026-09-02 14:20:15 KSTclient-hybrid / vseal-manifest/0.2โœ…2โœ…โœ… ์ง€๋ฌธ
์‚ฌ์ง„caff1e94aecf4080โ€ฆ2026-09-02 14:17:42 KSTclient-hybrid / vseal-manifest/0.2โœ…2โœ…โœ… ๋ง์ 
์Œ์„ฑ1d4eb8983c0847beโ€ฆ2026-09-02 14:15:32 KSTclient-hybrid / vseal-manifest/0.2โœ…2โœ…โœ… ์ง€๋ฌธ
์Œ์„ฑ70f655dc9cba4e00โ€ฆ2026-09-02 13:38:42 KSTclient-hybrid / vseal-manifest/0.2โœ…2โœ…โœ… ์ง€๋ฌธ
์Œ์„ฑb0ff64972e9b4c82โ€ฆ2026-09-02 12:47:38 KSTclient-hybrid / vseal-manifest/0.2โœ…2โœ…โœ… ์ง€๋ฌธ
์Œ์„ฑe5f2bb5ccfa14ed4โ€ฆ2026-07-29 14:52:44 KSTclient-hybrid / vseal-manifest/0.2โœ…2โœ…โœ… ์ง€๋ฌธ
์˜์ƒ37021e0ffd044ed0โ€ฆ2026-07-27 17:05:39 KSTserver-composited / vseal-manifest/0.2โœ…2โœ…โœ… ๋ง์ 
์˜์ƒc4728f9ad7194568โ€ฆ2026-07-27 17:04:17 KSTserver-composited / vseal-manifest/0.2โœ…2โœ…โœ… ๋ง์ 
์‚ฌ์ง„3502457bb3fe4e7fโ€ฆ2026-07-27 17:03:22 KSTclient-hybrid / vseal-manifest/0.2โœ…2โœ…โœ… ๋ง์ 
์‚ฌ์ง„a468b2eddfc74373โ€ฆ2026-07-27 16:31:14 KSTclient-hybrid / vseal-manifest/0.2โœ…2โœ…โœ… ๋ง์ 
์‚ฌ์ง„eb043d934a2c4fdfโ€ฆ2026-07-27 13:46:26 KSTclient-hybrid / vseal-manifest/0.2โœ…2โœ…โœ… ๋ง์ 
์‚ฌ์ง„f5a1ec0bca494870โ€ฆ2026-07-27 13:24:10 KSTclient-hybrid / vseal-manifest/0.2โœ…2โœ…โœ… ๋ง์ 
์˜์ƒc118997a49f74a10โ€ฆ2026-07-21 18:28:05 KSTserver-excerpt / vseal-manifest/0.2
โ†ณ ๋ฐœ์ทŒ โ† 360108ceโ€ฆ [10000โ€“15000ms]
โœ…โ€”โœ…โœ… ๋ง์ 
์Œ์„ฑ53627c80f7964e92โ€ฆ2026-07-21 16:12:39 KSTclient-hybrid / vseal-manifest/0.2โœ…2โœ…โœ… ์ง€๋ฌธ
์Œ์„ฑ1cbd900a78d948e2โ€ฆ2026-07-21 15:55:09 KSTclient-hybrid / vseal-manifest/0.2โœ…2โœ…โœ… ์ง€๋ฌธ
์Œ์„ฑ50b5537900564c10โ€ฆ2026-07-21 15:15:12 KSTclient-hybrid / vseal-manifest/0.2โœ…2โœ…โœ… ์ง€๋ฌธ
์Œ์„ฑ3db5bec9ad8e4eb4โ€ฆ2026-07-21 15:11:44 KSTclient-hybrid / vseal-manifest/0.2โœ…2โœ…โœ… ์ง€๋ฌธ
์˜์ƒdda5f32ca20a4213โ€ฆ2026-07-21 15:00:53 KSTserver-composited / vseal-manifest/0.2โœ…2โœ…โœ… ๋ง์ 
์˜์ƒ3a1c50642f8541c4โ€ฆ2026-07-21 13:59:43 KSTserver-composited / vseal-manifest/0.2โœ…โ€”โœ…โœ… ๋ง์ 
์‚ฌ์ง„f24bddf225df4be8โ€ฆ2026-07-21 13:59:29 KSTclient-hybrid / vseal-manifest/0.2โœ…2โœ…โœ… ๋ง์ 
์Œ์„ฑ24e859fb8ce54a41โ€ฆ2026-07-21 13:58:55 KSTclient-hybrid / vseal-manifest/0.2โœ…2โœ…โœ… ์ง€๋ฌธ
์Œ์„ฑ7ba3fcfd4b484ab0โ€ฆ2026-07-21 13:35:30 KSTclient-hybrid / vseal-manifest/0.2โœ…2โœ…โœ… ์ง€๋ฌธ
์Œ์„ฑea021ff7321f4527โ€ฆ2026-07-06 15:34:44 KSTclient-hybrid / vseal-manifest/0.2โœ…2โœ…โœ… ์ง€๋ฌธ
์Œ์„ฑ97331ccee9014465โ€ฆ2026-07-06 04:51:14 KSTserver / vseal-manifest/0.1โœ…1โ€”โ€” ์ง€๋ฌธ
์Œ์„ฑf97ebf4446974b19โ€ฆ2026-07-03 12:51:42 KSTclient-hybrid / vseal-manifest/0.2โœ…2โœ…โœ… ์ง€๋ฌธ
์˜์ƒ69a8bc3986d74d51โ€ฆ2026-07-02 16:51:35 KSTserver-composited / vseal-manifest/0.2โœ…โ€”โœ…โœ… ๋ง์ 
์˜์ƒ92a6c34427014bd8โ€ฆ2026-07-02 16:24:32 KSTserver-composited / vseal-manifest/0.2โœ…โ€”โœ…โœ… ๋ง์ 
์‚ฌ์ง„09f26ca827214d9dโ€ฆ2026-07-02 15:38:49 KSTclient-hybrid / vseal-manifest/0.2โœ…2โœ…โœ… ๋ง์ 
์‚ฌ์ง„40501024e6a6443bโ€ฆ2026-07-01 15:49:19 KSTclient-hybrid / vseal-manifest/0.2โœ…2โœ…โœ… ๋ง์ 
์‚ฌ์ง„5db69f6e59274887โ€ฆ2026-07-01 15:36:58 KSTclient-hybrid / vseal-manifest/0.2โœ…2โœ…โœ… ๋ง์ 
์‚ฌ์ง„e9b09f1c857f49f4โ€ฆ2026-07-01 15:29:45 KSTclient-hybrid / vseal-manifest/0.2โœ…2โœ…โœ… ๋ง์ 
์˜์ƒ336b9470fd87404dโ€ฆ2026-07-01 14:26:13 KSTserver-composited / vseal-manifest/0.2โœ…โ€”โœ…โœ… ๋ง์ 
์˜์ƒ48f5b7c8884d41c2โ€ฆ2026-07-01 12:30:36 KSTserver-composited / vseal-manifest/0.2โœ…โ€”โœ…โœ… ๋ง์ 
์˜์ƒ4d32f6b257d94b2bโ€ฆ2026-07-01 12:24:43 KSTserver-composited / vseal-manifest/0.2โœ…โ€”โœ…โœ… ๋ง์ 
์˜์ƒ990207462cb0476cโ€ฆ2026-07-01 11:06:57 KSTserver-composited / vseal-manifest/0.2โœ…โ€”โœ…โœ… ๋ง์ 
์˜์ƒ360108ce2997493fโ€ฆ2026-07-01 10:05:02 KSTserver-composited / vseal-manifest/0.2โœ…โ€”โœ…โœ… ๋ง์ 
์˜์ƒ80fac5b46fff49bdโ€ฆ2026-06-30 18:26:37 KSTserver-composited / vseal-manifest/0.2โœ…โ€”โœ…โœ… ๋ง์ 
์˜์ƒc06e417516924684โ€ฆ2026-06-30 17:52:09 KSTserver-composited / vseal-manifest/0.2โœ…โ€”โœ…โœ… ๋ง์ 
์˜์ƒ7ef9dfa60887468eโ€ฆ2026-06-30 17:29:19 KSTserver-composited / vseal-manifest/0.2โœ…โ€”โœ…โœ… ๋ง์ 
์‚ฌ์ง„9d98bfe3c9884aa4โ€ฆ2026-06-30 16:16:12 KSTclient-hybrid / vseal-manifest/0.2โœ…2โœ…โœ… ๋ง์ 
์Œ์„ฑ83318ebdb05645abโ€ฆ2026-06-30 16:14:02 KSTclient-hybrid / vseal-manifest/0.2โœ…2โœ…โœ… ์ง€๋ฌธ
์‚ฌ์ง„611a2d49849947e0โ€ฆ2026-06-30 16:13:45 KSTclient-hybrid / vseal-manifest/0.2โœ…2โœ…โœ… ๋ง์ 
์˜์ƒ8cd514c4e8754a6fโ€ฆ2026-06-30 16:13:19 KSTserver-composited / vseal-manifest/0.2โœ…โ€”โœ…โœ… ๋ง์ 
์˜์ƒ6ef74642c3b547a6โ€ฆ2026-06-30 15:45:04 KSTserver-composited / vseal-manifest/0.2โœ…โ€”โœ…โœ… ๋ง์ 
์‚ฌ์ง„56de8c4f245d461cโ€ฆ2026-06-30 15:41:08 KSTclient-hybrid / vseal-manifest/0.2โœ…2โœ…โœ… ๋ง์ 
์‚ฌ์ง„b7bb81712d5b4c66โ€ฆ2026-06-30 14:09:52 KSTclient-hybrid / vseal-manifest/0.2โœ…2โœ…โœ… ๋ง์ 
์Œ์„ฑ5e499d3defa14519โ€ฆ2026-06-30 14:07:48 KSTclient-hybrid / vseal-manifest/0.2โœ…2โœ…โœ… ์ง€๋ฌธ
์Œ์„ฑ9e7b39e953ee40a3โ€ฆ2026-06-29 18:14:02 KSTclient-hybrid / vseal-manifest/0.2โœ…2โœ…โœ… ์ง€๋ฌธ
์‚ฌ์ง„22c04ff2570345d8โ€ฆ2026-06-29 18:13:39 KSTclient-hybrid / vseal-manifest/0.2โœ…2โœ…โœ… ๋ง์ 
์˜์ƒac0e8f4689b9497eโ€ฆ2026-06-29 18:13:30 KSTserver-composited / vseal-manifest/0.2โœ…โ€”โœ…โœ… ๋ง์ 
์Œ์„ฑf99e987cf6504fecโ€ฆ2026-06-29 17:36:28 KSTclient-hybrid / vseal-manifest/0.2โœ…2โœ…โœ… ์ง€๋ฌธ
์˜์ƒ010413f40bdc4292โ€ฆ2026-06-29 17:36:12 KSTserver-composited / vseal-manifest/0.2โœ…โ€”โœ…โœ… ๋ง์ 
์‚ฌ์ง„620de2c8e61449e1โ€ฆ2026-06-29 17:35:54 KSTclient-hybrid / vseal-manifest/0.2โœ…2โœ…โœ… ๋ง์ 
์˜์ƒbb128769aa1f473eโ€ฆ2026-06-29 16:09:01 KSTserver-composited / vseal-manifest/0.2โœ…โ€”โœ…โœ… ๋ง์ 
์‚ฌ์ง„cbb1166976354429โ€ฆ2026-06-29 16:05:03 KSTclient-hybrid / vseal-manifest/0.2โœ…2โœ…โœ… ๋ง์ 
์‚ฌ์ง„c3839ea1537c4381โ€ฆ2026-06-26 15:09:53 KSTclient-hybrid / vseal-manifest/0.2โœ…2โœ…โœ… ๋ง์ 
์˜์ƒ5deae5d848424d92โ€ฆ2026-06-26 15:09:43 KSTclient-hybrid / vseal-manifest/0.2โœ…2โœ…โœ… ๋ง์ 
์‚ฌ์ง„1651e7738a794298โ€ฆ2026-06-26 10:35:51 KSTclient-hybrid / vseal-manifest/0.2โœ…2โœ…โœ… ๋ง์ 
์Œ์„ฑf70aaf3df2594d96โ€ฆ2026-06-25 12:32:09 KSTclient-hybrid / vseal-manifest/0.2โœ…2โœ…โœ… ์ง€๋ฌธ

ํ•œ ๋…น์Œ = ๊ฐ™์€ seal_id๋กœ ๋ฒˆ๋“คยทํƒ€์ž„์Šคํƒฌํ”„ยท์›๋ณธยท์ง€๋ฌธ์ด ๋ฌถ์ž„. ์›๋ณธ/์ง€๋ฌธ์€ best-effort(์—†์„ ์ˆ˜ ์žˆ์Œ).

ํŒŒ๊ธฐ๋œ ๋ด‰์ธ ๋ฌ˜๋น„ ์žฅ๋ถ€ โ€” ์ง€์›Œ์ง„ ๋ด‰์ธ์˜ ์ง€์šธ ์ˆ˜ ์—†๋Š” ํ”์ 

ํŒŒ๊ธฐ๋œ ๋ด‰์ธ์ด ์—†์Šต๋‹ˆ๋‹ค.

๋ฒˆ๋“ค์€ GOVERNANCE ์ž ๊ธˆ์ด๋ผ ๊ถŒํ•œ ์žˆ๋Š” ์šด์˜์ž๊ฐ€ ํŒŒ๊ธฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŒŒ๊ธฐํ•˜๋ฉด ๋‚ด์šฉ์€ ์‚ฌ๋ผ์ง€์ง€๋งŒ ์žˆ์—ˆ๋‹ค๋Š” ์‚ฌ์‹คยทํ•ด์‹œยท์‚ฌ์œ ๋Š” COMPLIANCE ์ž ๊ธˆ์˜ ๋ฌ˜๋น„๋กœ ๋‚จ์Šต๋‹ˆ๋‹ค โ€” ๋ถˆ๋ฆฌํ•œ ๋ด‰์ธ๋งŒ ๊ณจ๋ผ ์ง€์šด ํ”์ ์ด ๋“œ๋Ÿฌ๋‚˜๋„๋ก. ๊ฐœ์ธ์ •๋ณด๋Š” ๋ฌ˜๋น„์— ๋‹ด๊ธฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ธฐ๋Šฅ ๋งต ๋ฌด์—‡์„ / ์–ด๋А ์—”๋“œํฌ์ธํŠธ๊ฐ€ / ์–ด๋”” ๊ตฌํ˜„

๊ธฐ๋Šฅ์—”๋“œํฌ์ธํŠธ๊ตฌํ˜„ ์œ„์น˜์ƒํƒœ
๋ด‰์ธ ์ƒ์„ฑ (์„œ๋ฒ„ ๋ชจ๋“œ)POST /sealapp/seal.py ยท sealcore.py ยท tsa.pyโœ… ์™„๋ฃŒ
๊ฒ€์ฆ (C1~C4 ์žฌํ˜„ + ํ‚ค์‹ ์› C5 + ๋ฐœ์ทŒ C6)POST /verifyapp/seal.py:verify_seal ยท cert.py (C5) ยท excerpt_service.py (C6)โœ… ์™„๋ฃŒ
๋‹จ์ผ๊ตฌ์กฐ ๋ด‰์ธ ์ˆ˜์‹  (sealed WAV 1๊ฐœ)POST /seal/intakemain.py ยท containers ยท sealcore ยท original_store ยท fingerprintโœ… ์™„๋ฃŒ
์‹œ๊ฐ ๋„์žฅ (temporaryโ†’confirmed)POST /seal/{id}/timestampapp/seal.py ยท tsa.pyโœ… ์™„๋ฃŒ
์›๋ณธ ์•„์นด์ด๋ธŒ + ์ง€๋ฌธ ์ƒ‰์ธ (backfill)POST /seal/{id}/originalapp/original_store.py ยท fingerprint.pyโœ… ์™„๋ฃŒ
๋ณ€ํ˜•๋ณธ/์งœ๊น๊ธฐ ์‹๋ณ„POST /identifyapp/identify.py ยท wire.py (AudioDfs)โœ… ์™„๋ฃŒ
์„ธ๊ทธ๋จผํŠธ ๋Œ€์กฐ ๊ฒ€์ฆ (์ง€๊ฐ์ )POST /verify/segmentapp/segcompare.py (numpy/scipy FFT)โœ… ์™„๋ฃŒ
์ถœ์ฒ˜ ์ฐพ๊ธฐ (์ผ๋ฐ˜ ํด๋ฆฝ โ†’ ์–ด๋А ๋ด‰์ธ ์–ด๋””)POST /locateapp/locate.py (์ง€๋ฌธ + ์„ธ๊ทธ๋จผํŠธ ๋Œ€์กฐ)โœ… ์™„๋ฃŒ
๋ฐœ์ทŒ๋ณธ ์ƒ์„ฑ (Merkle ์ถœ์ฒ˜ ์ฆ๋ช…, C6)POST /seal/{id}/excerptmain.py ยท excerpt_service ยท merkle.py ยท seal.create_derived_sealโœ… ์™„๋ฃŒ
๋ฐœ์ทŒ๋ณธ ์—ญ๋ฐฉํ–ฅ ์กฐํšŒ (์›๋ณธโ†’๋ฐœ์ทŒ๋“ค)GET /seal/{id}/excerptsseal.find_excerptsโœ… ์™„๋ฃŒ
๋ด‰์ธ ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ (์ž๊ธฐ์™„๊ฒฐ WAV)GET /seal/{id}/downloadapp/original_store.pyโœ… ์™„๋ฃŒ
๋””๋ฐ”์ด์Šค cert ๋ฐœ๊ธ‰ (ยง13.15 ํ‚ค ์‹ ์›)POST /device/cert ยท GET /cert/rootapp/cert.py ยท signer.py (KMS root)โœ… ์™„๋ฃŒ
์„œ๋ฒ„ ํ‚ค custody (KMS Ed25519, HSM)(SEAL_SIGNING_BACKEND=kms)app/signer.py ยท seal.py ยท cert.pyโœ… ์™„๋ฃŒ
S3 ์›๋ณธ ์•„์นด์ด๋ธŒ (๋ผ์ด๋ธŒ)(SEAL_ORIGINAL_BACKEND=s3)app/original_store.py:S3OriginalStoreโœ… ์™„๋ฃŒ
๋ฒˆ๋“ค ์กฐํšŒGET /seal/{id}app/main.py ยท sealstore.pyโœ… ์™„๋ฃŒ
๋ธ”๋ก์ฒด์ธ ์•ต์ปค๋ง (OTS)(opt-in SEAL_OTS_ENABLED)app/anchor.pyโšช ๊ตฌํ˜„๋จยท๊บผ์ง
๋‹ค์ค‘ TSA (K-of-N)(SEAL_TSAS ์„ค์ •)app/tsa.pyโœ… ์™„๋ฃŒ
์‹ค WORM (MinIO/S3 Object Lock)(SEAL_STORE_BACKEND=minio)app/sealstore.pyโœ… ์™„๋ฃŒ
๊ฐ์‚ฌ ํ•ด์‹œ์ฒด์ธ(SEAL_AUDIT_DIR)app/audit.pyโœ… ์™„๋ฃŒ
๊ฐ์‚ฌ๋กœ๊ทธ headโ†’OTS ์•ต์ปค (์ „์ฒด ์žฌ์ž‘์„ฑ ํƒ์ง€)CLI: audit-cli anchor-head / verify-anchorsapp/audit_anchor.pyโœ… ์™„๋ฃŒ
๋””๋ฐ”์ด์Šค cert ํ๊ธฐ (CRL, ๋งŒ๋ฃŒ ์™ธ + LTV)(SEAL_DEVICE_CRL)app/cert.py:build_crl/verify_chainโœ… ์™„๋ฃŒ
๊ธฐ๊ธฐ ๋‹จ์กฐ ์‹œํ€€์Šค (์˜คํ”„๋ผ์ธ ๋‹ค๋Ÿ‰์œ„์กฐ ์ฐจ๋‹จ)(์„œ๋ฒ„ ๊ฐ•์ œยท์•ฑ emit ๋Œ€๊ธฐ)app/device_sequence.pyโšช ๊ตฌํ˜„๋จยท๊บผ์ง
์‹œ๊ฐ ํ•˜ํ•œ ๋น„์ฝ˜ (์–‘๋ฐฉํ–ฅ ์‹œ๊ฐ)(SEAL_BEACON_PUBKEYยท์•ฑ emit ๋Œ€๊ธฐ)app/beacon.py ยท seal.py:_time_precisionโšช ๊ตฌํ˜„๋จยท๊บผ์ง
ํ‚ค ํšŒ์ „ยทํ๊ธฐยทkeyring ์ž์ฒด์„œ๋ช…CLIapp/keyring*.pyโœ… ์™„๋ฃŒ

์œ ๊ด€ ๋ ˆํฌ / ์ฝ”๋“œ๋ฒ ์ด์Šค ์ œํ’ˆ์„ ์ด๋ฃจ๋Š” ๊ณณ

๋ ˆํฌ/๋ชจ๋“ˆ์—ญํ• ์–ธ์–ดGitLab์„ค๋ช…
sound-fingerprint๐Ÿ–ฅ๏ธ ๋ด‰์ธ ์„œ๋ฒ„ (์ด repo)Python / FastAPIproofcam/sound-fingerprint๊ถŒ์œ„ ๋ณด๊ด€ยท์‹œ๊ฐ ๋„์žฅยท์ง€๋ฌธ ์ƒ‰์ธยท๊ฒ€์ฆ ๋ณธ์ฒด. ๋ฐ๋ชจ https://proofcam.deshow.co.kr.
proofcam-android :seal๐Ÿ“ฑ ๋ด‰์ธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ (์ˆœ์ˆ˜ JVM)Kotlinproofcam/proofcam-androidcanonical/manifest/signer/WAV/๋ฒˆ๋“ค/SealClient/SealVerifier. ์„œ๋ฒ„์™€ ๊ฐ™์€ SPEC.
proofcam-android :app๐Ÿ“ฑ ๋ด‰์ธ dev ์•ฑ (ํฐ)Kotlin / Androidproofcam/proofcam-android๋…น์Œโ†’๋ด‰์ธโ†’์—…๋กœ๋“œ. AudioRecorderยทMainActivityยทSealUploader.
proofcam-android :verifier๐Ÿ“ฑ ๊ฒ€์ฆ ์ „์šฉ ์•ฑKotlin / Androidproofcam/proofcam-android์„œ๋ช…ํ‚คยท๋„คํŠธ์›Œํฌ ๊ถŒํ•œ ์—†์Œ โ€” ํŠธ๋Ÿฌ์ŠคํŠธ ๋ถ„๋ฆฌ. ์˜คํ”„๋ผ์ธ C1~C3.
audiodfs-linux๐Ÿ”Š ํ•‘๊ฑฐํ”„๋ฆฐํŠธ ์—”์ง„ (๋ฆฌ๋ˆ…์Šค ํฌํŒ…)C++ ๋ฐ”์ด๋„ˆ๋ฆฌ(git ์•„๋‹˜, ๋กœ์ปฌ)์„œ๋ฒ„๊ฐ€ shell out: extract/filtering_server/client. ๋ชจ๋ฐ”์ผ ํฌํŒ… ์•ˆ ํ•จ.
own_skills/ ยท benchmark/๐Ÿ”’ ๋ณด์กฐ ์ž์‚ฐโ€”(gitignore, ์ปค๋ฐ‹ ๊ธˆ์ง€)AudioDfs ์›๋ณธ ์†Œ์Šค(ETRI ๋งค์ž…) ยท ์—”์ง„ ๋น„๊ต ์‚ฐ์ถœ๋ฌผ.
[๐Ÿ“ฑ :app ํฐ ์•ฑ] โ”€โ”€๋…น์Œโ†’Keystoreํ‚ค ์„œ๋ช…(:seal)โ”€โ”€HTTPSโ”€โ”€โ–ถ [๐Ÿ–ฅ๏ธ ์„œ๋ฒ„ proofcam.deshow.co.kr]
      โ”‚  TEE P-256 + ยง13.15 cert(Ed25519์ฒด์ธ)          โ”‚ intakeโ†’timestamp(KMS์„œ๋ช…)โ†’S3 ์›๋ณธ
      โ”‚  ๋กœ์ปฌ ์ €์žฅ(sealed WAV)                          โ”œโ”€โ–ถ [๐Ÿ”Š audiodfs-linux] ์ง€๋ฌธ ์ถ”์ถœ/๊ฒ€์ƒ‰
      โ–ผ                                               โ–ผ
[๐Ÿ“ฑ :verifier ์•ฑ] โ—€โ”€โ”€์˜คํ”„๋ผ์ธ ๊ฒ€์ฆ(C1~C5)โ”€โ”€ /state/ (๋ฒˆ๋“คยท์›๋ณธโ†’S3ยท์ง€๋ฌธยท๊ฐ์‚ฌ)

proofcam ๊ด€๋ จ์€ ์œ„ 3๊ณณ๋ฟ. ~/IdeaProjects์˜ deshow*ยทexocobio*ยทits-* ๋“ฑ์€ ๋ฌด๊ด€.

์‹ ๋ขฐ์˜ ๋ฟŒ๋ฆฌ ๋Œ€๋ถ€๋ถ„ ์‹ค์ œ โ€” Play Integrity๋งŒ prod ๋Œ€๊ธฐ

ํ•ญ๋ชฉ์ง€๊ธˆ๋˜์–ด์•ผ ํ•  ๊ฒƒ / ๋น„๊ณ ์ƒํƒœ
์‹œ๊ฐ ์ฆ์ธ (TSA)โœ… freeTSA RFC3161 (์‹ค์—ฐ๋™, ๋ผ์ด๋ธŒ)(์™„๋ฃŒ) ์ธ์ฆ์„œ ํ•€ ๊ฒ€์ฆ ํฌํ•จโœ… ์™„๋ฃŒ
๋ธ”๋ก์ฒด์ธ ์˜๊ตฌ ์ฆ์ธโœ… OpenTimestamps tentative (์ œ์ถœ๋จ)upgrade ์ž๋™ํ™” โ†’ Bitcoin block confirmed (~1h+)โœ… ์™„๋ฃŒ
์ „์†ก ๋ณด์•ˆโœ… HTTPS (proofcam.deshow.co.kr, Let's Encryptยท์ž๋™๊ฐฑ์‹ )(์™„๋ฃŒ) prod ๋„๋ฉ”์ธ/์ธ์ฆ์„œ๋Š” ๋ณ„๋„๋กœ ํŒŒ๋ฉด ๋จโœ… ์™„๋ฃŒ
์„œ๋ช… ํ‚ค custodyโœ… AWS KMS Ed25519 (HSM) โ€” ยง13.15 root + ์„œ๋ฒ„ ๋ด‰์ธํ‚ค(์™„๋ฃŒ) ๊ฐœ์ธํ‚ค๊ฐ€ HSM ๋ฐ–์œผ๋กœ ์•ˆ ๋‚˜์˜ด. '์˜คํ”„๋ผ์ธ ๋ฃจํŠธ'๋Š” prod ์˜ต์…˜โœ… ์™„๋ฃŒ
๋””๋ฐ”์ด์Šค ํ‚ค ์‹ ์› (C5)โœ… HW P-256 ํ‚ค + cert(KMS root) โ†’ ๋ด‰์ธ identity-bound (์‹ค๊ธฐ๊ธฐ ๊ฒ€์ฆ)(์™„๋ฃŒ) ๋””๋ฐ”์ด์Šค leaf=ํ•˜๋“œ์›จ์–ด P-256, ์ฒด์ธ=Ed25519/KMS. ์ด ๊ธฐ๊ธฐ Ed25519 HW ๋ฏธ์ง€์›์ด๋ผ P-256โœ… ์™„๋ฃŒ
๊ธฐ๊ธฐ/์•ฑ ์ฆ๋ช… (attestation)deferred (์•ฝํ•œ ๋ชจ๋“œ)Play Integrity / App Attest โ€” Google ํ”„๋กœ์ ํŠธ ํ•„์š”, prod ๋‹จ๊ณ„๐Ÿ”ด dev ๋Œ€์ฒด๋ฌผ

โœ… ์‹œ๊ฐ(TSAยทOTS)ยท์ „์†ก(HTTPS)ยทํ‚ค custody(KMS HSM)ยท๋””๋ฐ”์ด์Šค ์‹ ์›(ยง13.15)๊นŒ์ง€ ์‹ค์ œ๋กœ ๋™์ž‘. ๋ด‰์ธ์ด **C5 identity-bound**(์‹ค๊ธฐ๊ธฐ ๊ฒ€์ฆ) โ€” ๋””๋ฐ”์ด์Šค HW P-256 ํ‚ค โ†” KMS root ๊ฒฐ์†. ๋‚จ์€ ๊ฑด Play Integrity(๊ธฐ๊ธฐ/์•ฑ attestation) โ€” Google ํ”„๋กœ์ ํŠธ ํ•„์š”, prod ๋‹จ๊ณ„์—.

๋ฒ”์œ„ ๋ฐ– (์˜๋„์ ์œผ๋กœ ์•ˆ ํ•จ)

  • ์บก์ฒ˜ ์ด์ „ ์œ„์กฐ(์•„๋‚ ๋กœ๊ทธ ํ™€): ์Šคํ”ผ์ปค๋กœ ๋”ฅํŽ˜์ดํฌ ํ‹€์–ด ๋…น์Œ โ€” ๋ฒ”์œ„ ๋ฐ–
  • ๋ผ์ด๋ธŒ๋‹ˆ์Šค/์บก์ฒ˜-์ด์ „ ๋”ฅํŽ˜์ดํฌ ํƒ์ง€ โ€” ์‚ฌ์šฉ์ž ๋ช…์‹œ scope-out
  • reorder(์ˆœ์„œ ๋ฐ”๊ฟˆ) ํƒ์ง€ โ€” wire ํ”„๋กœํ† ์ฝœ์ด offset ๋ฏธ์ œ๊ณต, ๋ณ„ ํŠธ๋ž™

๋‹ค์Œ ํ•  ์ผ

ํ•ญ๋ชฉ๋‚ด์šฉ๋ถ„๋ฅ˜
์žฅ์‹œ๊ฐ„ ๋…น์Œ ์ŠคํŠธ๋ฆฌ๋ฐ (Inc-1~4)44.1kHzยท3-4์‹œ๊ฐ„(1.27GB) โ€” ๋…น์Œ๊ธฐ ํŒŒ์ผ์ŠคํŠธ๋ฆฌ๋ฐ(Inc-1 ์ž‘์„ฑ๋จ, ๋นŒ๋“œ๋Œ€๊ธฐ)ยท๋ด‰์ธ ํŒŒ์ดํ”„๋ผ์ธ ์ŠคํŠธ๋ฆผํ™”ยท์„œ๋ฒ„ ์ธํ…Œ์ดํฌ ์ŠคํŠธ๋ฆฌ๋ฐยท์žฌ๊ฐœ ์ฒญํฌ ์—…๋กœ๋“œ+์˜คํ”„๋ผ์ธ ํ(๊ฐ„ํ— ์ธํ„ฐ๋„ท์—๋„ ์•ˆ ์žƒ์Œ)๐Ÿ”ด ์•ˆ๋“œ+์„œ๋ฒ„
๋””๋ฐ”์ด์Šค ยง13.15 ๋นŒ๋“œ ๊ฒ€์ฆKeystore Ed25519 ์˜์†ํ‚ค + cert ๋ฐœ๊ธ‰/embed ์ž‘์„ฑ๋จ(๋ฏธ๋นŒ๋“œ). ๋นŒ๋“œํ•ด ๋ด‰์ธ์ด C5 identity-bound ๋œจ๋Š”์ง€ ํ™•์ธ. Keystore Ed25519 KeyGenSpec digest๋Š” ๊ธฐ๊ธฐ/KeyMint๋ณ„ ์กฐ์ • ๊ฐ€๋Šฅ์„ฑ๐ŸŸก ์•ˆ๋“œ ๋นŒ๋“œ
๊ฒ€์ฆ๊ธฐ ์‹œ๊ฐ„ ์ •๋ฐ€๋„ ํ‘œ์‹œ/verify์˜ time ๊ฐ์ฒด(์‹ ๋ขฐ์ƒํ•œ vs ์ž๊ฐ€์‹ ๊ณ  ์บก์ฒ˜ + ์ •๋ฐ€๋„ tier)๋ฅผ ๊ฒ€์ฆ๊ธฐ '์–ธ์ œ'์— 3์ธต ํ‘œ์‹œ โ€” ์˜คํ•ด ๋ฐฉ์ง€๐ŸŸก ์•ˆ๋“œ
ํƒ€์ž„์Šคํƒฌํ”„ ํŒŒ์ผ ๋ฐฑํ•„RFC3161 ํ† ํฐ์„ WAV์— ๋ฐ•์•„ C4๊นŒ์ง€ ์ž๊ธฐ์™„๊ฒฐ(์„œ๋ฒ„ ์—†์ด๋„ confirmed ์œ ์ง€, ยง13.14)์•ˆ๋“œ+์„œ๋ฒ„
OTS upgrade ์Šค์ผ€์ค„๋Ÿฌ ๋ฐฐ์„ ๋ฐฐ์น˜ ์Šน๊ฒฉ(upgrade_pending)ยท๋‹ค์ค‘ calendar ๋ณ‘ํ•ฉ(submit_all) โœ… โ€” ๋‚จ์€ ๊ฑด ์ฃผ๊ธฐ ํ˜ธ์ถœ cron/์›Œ์ปค ๋ฐฐ์„ (ops)์šด์˜
์„œ๋ฒ„ ํ‚ค prod ๊ฐ•ํ™” (์˜ต์…˜)์˜คํ”„๋ผ์ธ ๋ฃจํŠธ(KMS root๋Š” ํ‰์†Œ ๋ฏธ์‚ฌ์šฉ) ยท CloudHSM ยท ํ‚ค ํšŒ์ „ยทCRL๐Ÿ”ต prod
Play Integrity (์™ธ๋ถ€)๊ธฐ๊ธฐ/์•ฑ attestation ์‹คํ˜ธ์ถœ โ€” Google Cloud ํ”„๋กœ์ ํŠธ + Play Console ๋“ฑ๋ก + ์‹ค๊ธฐ๊ธฐ. prod/์ „์šฉ์„œ๋ฒ„ ์ด์‹ ๋‹จ๊ณ„์—โšซ ์™ธ๋ถ€
์šด์˜ ์žก์ผfiltering_server ํ•ซ๋ฆฌ๋กœ๋“œ ยท H4/H5(verify CLIยทtemporary ๋งŒ๋ฃŒ) ยท ๋ฐ๋ชจ ํ›„ IAM ํ‚ค rotate์šด์˜/๋ณ‘ํ–‰

์ €์žฅ ์œ„์น˜ ํ˜„์žฌ ์„œ๋ฒ„ ์„ค์ • ๊ธฐ์ค€

๋ฐ์ดํ„ฐ๊ฒฝ๋กœํŒŒ์ผ
๋ฒˆ๋“ค (WORM)/state/seal_store{id}.seal.json + .anchors.jsonl
ํŒŒ๊ธฐ ๋ฌ˜๋น„ (COMPLIANCE)/state/seal_store/tombstones{id}.tombstone.json
์›๋ณธ ์Œ์„ฑ (์‚ญ์ œ๊ฐ€๋Šฅ)s3://proofcam/sound/originals{id}.wav
์ง€๋ฌธ ์ƒ‰์ธ/state/fpidx{id}.dfs
๊ฐ์‚ฌ๋กœ๊ทธ(๊บผ์ง)YYYY-MM.jsonl

์šฉ์–ด์ง‘ ๋ฒˆ๋“คยทTSAยทattestationโ€ฆ ํ•œ๊ณณ์—

๋ด‰์ธ (Seal)๋…น์Œ์„ '์ด ์ˆœ๊ฐ„ ์ด ๋‚ด์šฉ ๊ทธ๋Œ€๋กœ'๋ผ๊ณ  ์ž ๊ทธ๋Š” ํ–‰์œ„/๊ฒฐ๊ณผ. ํ•ด์‹œ+์„œ๋ช…+์‹œ๊ฐ๋„์žฅ์„ ํ•œ ๋ฌถ์Œ์œผ๋กœ ๋งŒ๋“  ๊ฒƒ.
๋ฒˆ๋“ค (Bundle)๋ด‰์ธ์˜ ์ฆ๊ฑฐ ๋ฌถ์Œ(JSON). ๋งค๋‹ˆํŽ˜์ŠคํŠธ + ์„œ๋ช… + ๊ณต๊ฐœํ‚ค๊ฐ€ ๋“ค์–ด์žˆ์Œ. ์˜ค๋””์˜ค ์ž์ฒด๋Š” ์—†๊ณ  'ํ•ด์‹œ'๋งŒ. = store/{id}.seal.json
๋งค๋‹ˆํŽ˜์ŠคํŠธ (Manifest)๋ด‰์ธ ๋Œ€์ƒ์˜ ๋ช…์„ธ. ์˜ค๋””์˜ค ํ•ด์‹œ(payload_sha256)ยทํฌ๋งทยท๊ธฐ๊ธฐยท๋‹น์‚ฌ์ž ์ง„์ˆ ยท์บก์ฒ˜์‹œ๊ฐ ๋“ฑ. ์ด๊ฑธ ์„œ๋ช…ํ•œ๋‹ค.
ํŽ˜์ด๋กœ๋“œ (Payload)์˜ค๋””์˜ค์˜ '์‹ค์ œ ์†Œ๋ฆฌ' ๋ถ€๋ถ„. WAV์˜ fmt+data. ํ—ค๋” ๋ฉ”ํƒ€๋Š” ์ œ์™ธ โ€” ์žฌํฌ์žฅํ•ด๋„ ์•ˆ ๋ณ€ํ•˜๋Š” ๋ณธ์งˆ.
ํ•ด์‹œ (Hash, SHA-256)๋ฐ์ดํ„ฐ์˜ ์ง€๋ฌธ ๊ฐ™์€ ๊ณ ์ •๊ธธ์ด ๊ฐ’. ํ•œ ๋ฐ”์ดํŠธ๋งŒ ๋ฐ”๋€Œ์–ด๋„ ์™„์ „ํžˆ ๋‹ฌ๋ผ์ง โ†’ ๋ณ€์กฐ ํƒ์ง€.
์„œ๋ช… (Signature, Ed25519)๊ฐœ์ธํ‚ค๋กœ ๋งค๋‹ˆํŽ˜์ŠคํŠธ์— ๋„์žฅ. ๊ณต๊ฐœํ‚ค๋กœ ๋ˆ„๊ตฌ๋‚˜ '์ด ํ‚ค ์ฃผ์ธ์ด ์„œ๋ช…ํ–ˆ๊ณ  ์•ˆ ๋ฐ”๋€œ'์„ ๊ฒ€์ฆ. = ์œ„์กฐ ๋ถˆ๊ฐ€ ๋‚ ์ธ.
ํ‚ค (Key pair)๊ฐœ์ธํ‚ค(์„œ๋ช…์šฉ, ๋น„๋ฐ€) + ๊ณต๊ฐœํ‚ค(๊ฒ€์ฆ์šฉ, ๊ณต๊ฐœ) ํ•œ ์Œ. ์„œ๋ฒ„ํ‚ค=AWS KMS Ed25519(HSM ์•ˆ, ยง13.15 root+๋ด‰์ธํ‚ค), ๋””๋ฐ”์ด์Šคํ‚ค=Android Keystore **P-256(ECDSA)**(TEE/StrongBox โ€” ์ด ๊ธฐ๊ธฐ KeyMint๊ฐ€ Ed25519 HW ๋ฏธ์ง€์›์ด๋ผ P-256). ๋‘˜ ๋‹ค ๊ฐœ์ธํ‚ค๊ฐ€ ๋ณด์•ˆํ•˜๋“œ์›จ์–ด ๋ฐ–์œผ๋กœ ์•ˆ ๋‚˜์˜ด. ๋””๋ฐ”์ด์Šค leaf=P-256, ์ฒด์ธ=Ed25519 ํ˜ผํ•ฉ.
TSA (์‹œ๊ฐ ์ธ์ฆ๊ธฐ๊ด€)Time Stamping Authority. '์ด ํ•ด์‹œ๊ฐ€ ์ด ์‹œ๊ฐ ์ด์ „์— ์กด์žฌํ–ˆ๋‹ค'๋ฅผ ์„œ๋ช…ํ•ด์ฃผ๋Š” ๋…๋ฆฝ ์ œ3์ž. ํ‘œ์ค€=RFC3161.
RFC3161TSA ํƒ€์ž„์Šคํƒฌํ”„ ํ† ํฐ์˜ ๊ตญ์ œ ํ‘œ์ค€ ํฌ๋งท. ๋ด‰์ธ์— '์‹ ๋ขฐ๋œ ์‹œ๊ฐ ์ฆ์ธ'์„ ๋ถ™์ด๋Š” ๋ฐฉ๋ฒ•.
์•ต์ปค (Anchor)๋ด‰์ธ ๋ฐ–์— ๋”ฐ๋กœ ๋ถ™๋Š” ์‹œ๊ฐ/๋ธ”๋ก์ฒด์ธ ์ฆ๊ฑฐ. RFC3161 ํ† ํฐ์ด๋‚˜ OTS ์ฆ๋ช…. = store/{id}.anchors.jsonl
OTS (OpenTimestamps)๋น„ํŠธ์ฝ”์ธ ๋ธ”๋ก์ฒด์ธ์— ํ•ด์‹œ๋ฅผ ๋ฐ•์•„ '์˜๊ตฌ ์‹œ๊ฐ ์ฆ์ธ'์„ ๋งŒ๋“œ๋Š” ๋ฐฉ์‹. TSA๋ณด๋‹ค ๋” ๋ถ„์‚ฐยท์˜๊ตฌ์ .
attestation (๊ธฐ๊ธฐ ์ฆ๋ช…)'์ด ๋ด‰์ธ์ด ์ง„์งœ ์•ˆ๋“œ๋กœ์ด๋“œ ๊ธฐ๊ธฐยท๋ฏธ๋ณ€์กฐ ์•ฑ์—์„œ ๋‚˜์™”๋‹ค'๋Š” OS ์ฐจ์› ์ฆ๋ช…. Play Integrity / App Attest. ์ง€๊ธˆ์€ deferred(์•ฝํ•œ ๋ชจ๋“œ).
nonce์žฌ์‚ฌ์šฉยท์œ„์กฐ ๋ง‰์œผ๋ ค ๋งค๋‹ˆํŽ˜์ŠคํŠธ์—์„œ ๋ฝ‘์€ 1ํšŒ์„ฑ ๊ฐ’(ํ•ด์‹œ). attestation ํ† ํฐ์„ ์ด ๋ด‰์ธ์— ๋ฌถ๋Š” ๋ฐ ์”€(ยง13.4).
hybrid ๋ด‰์ธํฐ์ด ์˜คํ”„๋ผ์ธ์—์„œ ๋จผ์ € ์„œ๋ช…(temporary) โ†’ ๋‚˜์ค‘์— ์„œ๋ฒ„๊ฐ€ TSA ๋„์žฅ(confirmed). ์™„์ „ ์˜คํ”„๋ผ์ธ์€ ์‹œ๊ฐ์ฆ์ธ์ด ์—†์–ด ๋ถˆ๊ฐ€.
seal_status๋ด‰์ธ์˜ ์‹œ๊ฐ ํ™•์ • ์—ฌ๋ถ€. temporary(์‹œ๊ฐ์ฆ์ธ 0) / confirmed(RFC3161 โ‰ฅ1). ์ €์žฅ๊ฐ’ ๋ฏฟ์ง€ ์•Š๊ณ  ์ฆ๊ฑฐ ์นด์šดํŠธ๋กœ ๋„์ถœ.
verdict / C1~C6๊ฒ€์ฆ ๊ฒ€์‚ฌ. C1=์ด ์˜ค๋””์˜ค ๋งž๋‚˜ ยท C2=๋งค๋‹ˆํŽ˜์ŠคํŠธ ์ผ๊ด€ ยท C3=์„œ๋ช… ์œ ํšจ ยท C4=์‹œ๊ฐ ์ฆ์ธ ยท C5=ํ‚ค ์‹ ์›(ยง13.15 cert ์ฒด์ธ์ด root๊นŒ์ง€ ๊ฒฐ์†=identity-bound, ์—†์œผ๋ฉด self-signed) ยท C6=๋ฐœ์ทŒ ์ถœ์ฒ˜(Merkle). PASS / PASS-PENDING(์‹œ๊ฐ๋งŒ ๋น ์ง) / FAIL.
๋ฐœ์ทŒ๋ณธ / C6 (Merkle)์›๋ณธ์˜ ์ผ๋ถ€๋ฅผ ์ž˜๋ผ ๋‹ค์‹œ ๋ด‰์ธํ•œ ๊ฒƒ(POST /seal/{id}/excerpt). ์›๋ณธ ๋ด‰์ธ ์‹œ PCM์„ Merkle ์ปค๋ฐ‹(container.merkle), ๋ฐœ์ทŒ๋ณธ์€ range proof๋ฅผ ๋“ค๊ณ  ๋‹ค๋‹˜ โ†’ C6=์ด ๋ฐœ์ทŒ๊ฐ€ ์ •๋ง ์›๋ณธ [t1,t2]์ž„์„ ์„œ๋ฒ„ ์‹ ๋ขฐ ์—†์ด ์ฆ๋ช…. Merkle ์žŽ ๊ฒฝ๊ณ„๋กœ ์Šค๋ƒ…(leaf_seconds, ๊ธฐ๋ณธ 1์ดˆ). ํ•‘๊ฑฐํ”„๋ฆฐํŠธ์™€ ์ƒ๋ณด.
์ธ๋ผ์ธ ๋ด‰์ธ (Inline)๋ฒˆ๋“ค์„ ๋ณ„๋„ ํŒŒ์ผ์ด ์•„๋‹ˆ๋ผ WAV์˜ 'seal' ์ฒญํฌ์— ๋ฐ•๋Š” ๊ฒƒ. ํŒŒ์ผ ํ•˜๋‚˜๊ฐ€ ๊ณง ์ž๊ธฐ์™„๊ฒฐ ์ฆ๊ฑฐ. = sealed WAV.
WORMWrite Once Read Many. ํ•œ ๋ฒˆ ์“ฐ๋ฉด ๋ชป ๊ณ ์นจ. ๋ด‰์ธ ๋ฒˆ๋“ค ์ €์žฅ ๋ฐฉ์‹(0o444 / Object Lock) โ€” ์‚ฌํ›„ ์กฐ์ž‘ ์ฐจ๋‹จ.
ํ•‘๊ฑฐํ”„๋ฆฐํŠธ (.dfs)์˜ค๋””์˜ค์˜ ์žก์Œ์— ๊ฐ•ํ•œ ์Œํ–ฅ ์ง€๋ฌธ(AudioDfs). ์žฌ์ธ์ฝ”๋”ฉ ์‚ฌ๋ณธยท์งœ๊น๊ธฐ ๋งค์นญ์šฉ ๋ณด์กฐ ์ž๋ฃŒ. ๋ด‰์ธ ๋ณธ์ฒด ์•„๋‹˜.
identify / splice๋ณ€ํ˜•๋ณธยท์งœ๊น๊ธฐ ์‹๋ณ„. splice=์ด์–ด๋ถ™์ธ ๊ฒฝ๊ณ„ / gap=๊ณต๋ฐฑ ์ด์ƒ. ํ™•๋ฅ ์  ๋ณด์กฐ ๋ผ๋ฒจ(์ฆ๊ฑฐ ๋ณธ์ฒด๋Š” verify).
keyring๊ณต๊ฐœํ‚ค ๋ฐฐํฌยทํšŒ์ „ยทํ๊ธฐ ๊ด€๋ฆฌ ์•„ํ‹ฐํŒฉํŠธ. key_id๋กœ ๋ด‰์ธโ†”๊ฒ€์ฆ ๋งค์นญ. root key๊ฐ€ keyring ์ž์ฒด๋ฅผ ์„œ๋ช….
custody (๋ณด๊ด€ ์‚ฌ์Šฌ)์ฆ๊ฑฐ๋ฅผ ๋ˆ„๊ฐ€ ์–ธ์ œ๋ถ€ํ„ฐ ๋ณด๊ด€ํ–ˆ๋‚˜์˜ ์‚ฌ์Šฌ. ์›๋ณธ์„ ์ค‘๋ฆฝ ๋ณด๊ด€์†Œ์— ๋‘๋ฉด '๋…น์Œ์žโ‰ ๋ณด๊ด€์ž'๋กœ ์‹ ๋ขฐโ†‘.
payload_sha256๋งค๋‹ˆํŽ˜์ŠคํŠธ ์•ˆ์˜ ์˜ค๋””์˜ค ํ•ด์‹œ ํ•„๋“œ. ๊ฒ€์ฆ C1์ด '์ œ์ถœ๋œ ์˜ค๋””์˜ค์˜ ํ•ด์‹œ == ์ด ๊ฐ’'์ธ์ง€ ๋Œ€์กฐ.