์ด ๋ด์ธ ํ๋์ ๋ํด ์๋ฒ๊ฐ ์๋ ์ ๋ถ.
โ ๊ฒ์ฆ๋จ โ ์ผ๋ถ ๊ฒ์ฆ โ ๏ธ ์๊ฐ์ ๊ณ (ํฐ์ด ์ฃผ์ฅ) โน๏ธ ๋ฉํ
imageโ์๋ฒ ๋ฐ์ ์๊ฐโ๋ง ์๋ฒ๊ฐ ์ฐ์ ๊ฐ์ด๊ณ , ๋๋จธ์ง๋ ๋ด์ธ ๋ฒํธยทํ์ ๊ฐ์ ์๋ณ ์ ๋ณด์ ๋๋ค.
| media_kind | image |
| ์๋ฒ ๋ฐ์ ์๊ฐ received_at | 2026-09-09T06:58:10.292010Z |
| ๋ด์ธ ๋ฒํธ seal_id | e4f84cfa6ee94bb3925750860d41a597 |
| ๋ด์ธ ๋ฐฉ์ seal_mode | client-hybrid |
| ๋ด์ธ ํ์ ๋ฒ์ version | seal-manifest/0.2 |
์ด ๋ด์ธ์ ์ ์ฑ์ผ๋ก ๋ง๋ค์ด ๋ฐ์ท ๊ธฐ๋ฅ์ด ์์ต๋๋ค โ ์ ์ฑ์ผ๋ก ๋ด์ธํ ์๋ณธ๋ง ์๋ผ๋ผ ์ ์์ด์.
์ด ๋ด์ธ์ ์ฐ์ธ ์ํธ ๊ธฐ์ ์ด๋ฆ์ ๋๋ค.
| ์ ๊ทํ ๋ฐฉ์ canonicalization | json-sorted-compact-utf8 |
| image_hash | sha256 |
| ๋ช
์ธ ํด์ manifest_hash | sha256 |
| ์ ์์๋ช
๋ฐฉ์ signature | ecdsa-p256-sha256 |
ํฐ์ ์๊ณยท์์น์ผ์๊ฐ ์ ์ ๊ฐ์ ๋๋ค โ ์๋ โ์ ๋ขฐ๋ ์๊ฐโ๊ณผ๋ ๋ณ๊ฐ(ํฐ ์๊ณ๋ ํ๋ฆด ์ ์์).
| ๋ถํ
์๋ณ์ boot_id | (์์) |
| ๋
น์ ์๊ฐ (ํฐ ์ฃผ์ฅ) captured_at | 2026-09-09T06:58:10.292010Z |
| ์์น (GPS) gps | {"accuracy_m": "25", "fix_at": "2026-09-08T22:56:32.154Z", "lat": "37.611206", "lon": "126.892981", "source": "gps"} |
| ๊ธฐ๊ธฐ ์๋์๊ฐ(ms) monotonic_offset_ms | 91601737 |
| ํต์ ๋ง ์๊ฐ nitz_time | (์์) |
ํฐ์ด ์ฃผ์ฅํ๋ ๊ธฐ๊ธฐ ์ ๋ณด์ ๋๋ค. ๋ค๋ง โ์ด ๋ด์ธ์ ๋ง๋ ํค๊ฐ ์ง์ง ๋ฐ๊ธ๋ ๊ธฐ๊ธฐ ํค์ธ์งโ๋ ์๋ โํค ์ ์โ์์ ํ์ธ๋ฉ๋๋ค.
| ์ฑ ๋ฒ์ app_version | 0.1-dev |
| ๊ธฐ๊ธฐยท์ฑ ์ฆ๋ช
attestation | {"issued_at": null, "kind": "deferred", "nonce": null, "token": null} |
| ์ด์์ฒด์ os | android |
| ๊ธฐ๊ธฐ ์๋ณ์ uid | android-b634758fdd15c719 |
| display_name | ๋๋ฏธ |
| ์ฌ์ฉ์ user_id | dummy:๋๋ฏธ |
| verification_level | dummy |
| verified_at | 2026-09-09T06:58:10.292010Z |
| format | jpeg |
| height | 4080 |
| original_sha256 | c4931cba3565ab48b3056f0fe42800752700ab004bc87b390858bf5402384494 |
| result_sha256 | ee3bc2d32a339dd3ffa1a1cbbde6a827e8c2973271fc1df1f6e301fc97a8299b |
| result_size_bytes | 7559292 |
| width | 3060 |
| applied | True |
| dot_id | 10100120000115754 |
| scheme | smartpaper |
์ด ๊ณต๊ฐํค๋ก ๋ด์ธ ๋ด์ฉ ์ ์ฒด์ ์ ์์๋ช ํ ๊ฒ ๋ง๋์ง ์๋ฒ๊ฐ ํ์ธํ์ต๋๋ค โ ๋ด์ฉ์ด ๋จ ํ ๊ธ์๋ผ๋ ๋ฐ๋๋ฉด ์๋ช ์ด ๊นจ์ง๋๋ค. (ํฐ=ํ๋์จ์ด ํค, ์๋ฒยท์ธ์ฆ์=KMS ํค)
| ์๋ช
์๊ณ ๋ฆฌ์ฆ algorithm | ecdsa-p256-sha256 |
| ์ธ์ฆ์ ์ฒด์ธ cert_chain | [{"issuer_key_id": "01e5f7e1dd2869c6", "not_after": "2026-09-16T06:48:58+00:00", "not_before": "2026-09-09T06:43:58+00:00", "signature": "BMPhDRmGva6Ebv4bELwcuPcMuI93lJyJl4H7rjpfNEEbqt3Ywkk+hUk73jojU1PrRU2ZDFnYGi5kl3SP5uHJAw==", "subject": {"device_uid": "android-b634758fdd15c719", "key_id": "b634758fdd15c719", "public_key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEKfWzsku9xUy36qojIsY2Zma3J4i5Zht0QyEy9e2eRRKAc/M34ySJOBupiElO9X7xKoolU7E0aWeKUto1OcMfjg==", "user_id": "dummy:๋๋ฏธ"}, "version": "seal-cert/0.1"}, {"issuer_key_id": "25eaae2607d1896f", "not_after": "2036-09-06T06:48:58+00:00", "not_before": "2026-09-08T06:48:58+00:00", "signature": "srtDt95jnlmgpYcrjspojvDM1qKWqhCxbrGCmrt5xnR+iKY3Uqr/uYHsaAtwaGuPYhmRVuSsUZW5lPc/AZeLBQ==", "subject": {"device_uid": "issuing-ca", "key_id": "01e5f7e1dd2869c6", "public_key": "sEjzO3Q/o1l6dyp6ZaAkTX8qX8mFyo/A4IeUZVvB8W8=", "user_id": null}, "version": "seal-cert/0.1"}] |
| ํค ์๋ณ์ key_id | b634758fdd15c719 |
| ๊ณต๊ฐํค public_key | MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEKfWzsku9xUy36qojIsY2Zma3J4i5Zht0QyEy9e2eRRKAc/M34ySJOBupiElO9X7xKoolU7E0aWeKUto1OcMfjg== |
| ์๋ช
๊ฐ value | MEQCICY6VdiGMeY6hpI/QXmKsp4rAlnKFiT6AIvfnjDDSo8iAiApl2GjduF8+rbwL2tStGUP+7idv8KfyREi9eDwU+g7zw== |
์ด ๋ด์ธ์ ๋ง๋ ํค๊ฐ โ์ง์ง ๋ฐ๊ธ๋ฐ์ ๊ธฐ๊ธฐ ํคโ์์ด ์ธ์ฆ์๋ก ์ ๋ขฐ ๋ฟ๋ฆฌ๊น์ง ํ์ธ๋์ต๋๋ค โ ์๋ฌด ๋๊ตฌ๋ก๋ ์์กฐํ ๊ฒ ์๋๋๋ค.
| ์ ์ ๋ฑ๊ธ tier | ๋ฐ๊ธ๋ ๊ธฐ๊ธฐ ํค (๊ฒฐ์๋จ) |
| ๊ธฐ๊ธฐ ์๋ณ์ device_uid | android-b634758fdd15c719 |
| ์ฌ์ฉ์ user_id | dummy:๋๋ฏธ |
์ด ๋ด์ธ์ด โ์ด ์๊ฐ ์ด์ ์ ์กด์ฌํ๋คโ๋ฅผ ๋ ๋ฆฝ ๊ธฐ๊ด(์๊ฐ ์ธ์ฆ๊ธฐ๊ดยท๋ธ๋ก์ฒด์ธ)์ด ๋ณด์ฆํฉ๋๋ค. 1๊ฐ ์ด์์ด๋ฉด ์๊ฐ โํ์ โ.
๋ด์ธ ์ฆ๊ฑฐ์ ๋ณ๊ฐ๋ก ์๋ฒ๊ฐ ํธ์์ ๋ณด๊ดํ๋ ๋ถ๊ฐ๋ฌผ์ ๋๋ค (์์ด๋ ๋ด์ธ ์ฆ๋ช ์ ์ง์ฅ ์์).
| ์๋ณธ ์ด๋ฏธ์ง ๋ณด๊ด | ์์ (S3) |
| ๋ง์ (์ถ์ ํ์) | ์์ (dot_id 10100120000115754) |
{
"manifest": {
"algorithms": {
"canonicalization": "json-sorted-compact-utf8",
"image_hash": "sha256",
"manifest_hash": "sha256",
"signature": "ecdsa-p256-sha256"
},
"capture": {
"boot_id": null,
"captured_at": "2026-09-09T06:58:10.292010Z",
"gps": {
"accuracy_m": "25",
"fix_at": "2026-09-08T22:56:32.154Z",
"lat": "37.611206",
"lon": "126.892981",
"source": "gps"
},
"monotonic_offset_ms": 91601737,
"nitz_time": null
},
"device": {
"app_version": "0.1-dev",
"attestation": {
"issued_at": null,
"kind": "deferred",
"nonce": null,
"token": null
},
"os": "android",
"uid": "android-b634758fdd15c719"
},
"identity": {
"display_name": "๋๋ฏธ",
"user_id": "dummy:๋๋ฏธ",
"verification_level": "dummy",
"verified_at": "2026-09-09T06:58:10.292010Z"
},
"image": {
"format": "jpeg",
"height": 4080,
"original_sha256": "c4931cba3565ab48b3056f0fe42800752700ab004bc87b390858bf5402384494",
"result_sha256": "ee3bc2d32a339dd3ffa1a1cbbde6a827e8c2973271fc1df1f6e301fc97a8299b",
"result_size_bytes": 7559292,
"width": 3060
},
"media_kind": "image",
"received_at": "2026-09-09T06:58:10.292010Z",
"seal_id": "e4f84cfa6ee94bb3925750860d41a597",
"seal_mode": "client-hybrid",
"version": "seal-manifest/0.2",
"watermark": {
"applied": true,
"dot_id": "10100120000115754",
"scheme": "smartpaper"
}
},
"manifest_sha256": "77927311413ce82b16abe06bf52db5fe80377a4afcb5a76ba7dd756539b80431",
"seal_status": "temporary",
"signature": {
"algorithm": "ecdsa-p256-sha256",
"cert_chain": [
{
"issuer_key_id": "01e5f7e1dd2869c6",
"not_after": "2026-09-16T06:48:58+00:00",
"not_before": "2026-09-09T06:43:58+00:00",
"signature": "BMPhDRmGva6Ebv4bELwcuPcMuI93lJyJl4H7rjpfNEEbqt3Ywkk+hUk73jojU1PrRU2ZDFnYGi5kl3SP5uHJAw==",
"subject": {
"device_uid": "android-b634758fdd15c719",
"key_id": "b634758fdd15c719",
"public_key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEKfWzsku9xUy36qojIsY2Zma3J4i5Zht0QyEy9e2eRRKAc/M34ySJOBupiElO9X7xKoolU7E0aWeKUto1OcMfjg==",
"user_id": "dummy:๋๋ฏธ"
},
"version": "seal-cert/0.1"
},
{
"issuer_key_id": "25eaae2607d1896f",
"not_after": "2036-09-06T06:48:58+00:00",
"not_before": "2026-09-08T06:48:58+00:00",
"signature": "srtDt95jnlmgpYcrjspojvDM1qKWqhCxbrGCmrt5xnR+iKY3Uqr/uYHsaAtwaGuPYhmRVuSsUZW5lPc/AZeLBQ==",
"subject": {
"device_uid": "issuing-ca",
"key_id": "01e5f7e1dd2869c6",
"public_key": "sEjzO3Q/o1l6dyp6ZaAkTX8qX8mFyo/A4IeUZVvB8W8=",
"user_id": null
},
"version": "seal-cert/0.1"
}
],
"key_id": "b634758fdd15c719",
"public_key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEKfWzsku9xUy36qojIsY2Zma3J4i5Zht0QyEy9e2eRRKAc/M34ySJOBupiElO9X7xKoolU7E0aWeKUto1OcMfjg==",
"value": "MEQCICY6VdiGMeY6hpI/QXmKsp4rAlnKFiT6AIvfnjDDSo8iAiApl2GjduF8+rbwL2tStGUP+7idv8KfyREi9eDwU+g7zw=="
},
"timestamps": [],
"version": "seal-bundle/0.2"
}