๐Ÿ” ๋ด‰์ธ ์ƒ์„ธ ยท 1c77582dc5a54a3587db884bee313541

์ด ๋ด‰์ธ ํ•˜๋‚˜์— ๋Œ€ํ•ด ์„œ๋ฒ„๊ฐ€ ์•„๋Š” ์ „๋ถ€.

โœ… ๊ฒ€์ฆ๋จ โ— ์ผ๋ถ€ ๊ฒ€์ฆ โš ๏ธ ์ž๊ฐ€์‹ ๊ณ (ํฐ์ด ์ฃผ์žฅ) โ„น๏ธ ๋ฉ”ํƒ€

์ข…๋ฅ˜ ํ™”๋ฉด ์บก์ฒ˜

์ด ๋ด‰์ธ์€ ๊ธฐ๊ธฐ ํ™”๋ฉด์— ํ‘œ์‹œ๋œ ํ”ฝ์…€์„ ๋‹ด์Šต๋‹ˆ๋‹ค โ€” ์นด๋ฉ”๋ผ ์ดฌ์˜์ด ์•„๋‹™๋‹ˆ๋‹ค.
์‹œ๊ฐยท๋น„๋ณ€์กฐยท๊ธฐ๊ธฐ ๊ท€์†์€ ์‚ฌ์ง„๊ณผ ๋˜‘๊ฐ™์ด ๋ณด์ฆ๋˜์ง€๋งŒ, ํ™”๋ฉด์— ํ‘œ์‹œ๋œ ๋‚ด์šฉ ์ž์ฒด๊ฐ€ ์‚ฌ์‹ค์ธ์ง€๋Š” ์ฆ๋ช…ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค (๊ฐ€์งœ ํ™”๋ฉด์„ ๋„์šฐ๊ณ  ์บก์ฒ˜ํ•ด๋„ ์ด ๊ฒ€์‚ฌ๋Š” ํ†ต๊ณผํ•ฉ๋‹ˆ๋‹ค).
์•„๋ž˜ screen.foreground_app ์€ ๊ธฐ๋ก์ผ ๋ฟ ํŒ์ •์ด ์•„๋‹™๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ์ •๋ณด โ„น๏ธ ๋ฉ”ํƒ€

โ€˜์„œ๋ฒ„ ๋ฐ›์€ ์‹œ๊ฐโ€™๋งŒ ์„œ๋ฒ„๊ฐ€ ์ฐ์€ ๊ฐ’์ด๊ณ , ๋‚˜๋จธ์ง€๋Š” ๋ด‰์ธ ๋ฒˆํ˜ธยทํ˜•์‹ ๊ฐ™์€ ์‹๋ณ„ ์ •๋ณด์ž…๋‹ˆ๋‹ค.

media_kindscreen
์„œ๋ฒ„ ๋ฐ›์€ ์‹œ๊ฐ
received_at
2026-10-01T07:56:11Z
๋ด‰์ธ ๋ฒˆํ˜ธ
seal_id
1c77582dc5a54a3587db884bee313541
๋ด‰์ธ ๋ฐฉ์‹
seal_mode
server-composited
๋ด‰์ธ ํ˜•์‹ ๋ฒ„์ „
version
seal-manifest/0.2

๋ฐœ์ทŒ๋ณธ ๋งŒ๋“ค๊ธฐ โš ๏ธ ์ž๊ฐ€์‹ ๊ณ 

์ด ๋ด‰์ธ์€ ์˜› ์•ฑ์œผ๋กœ ๋งŒ๋“ค์–ด ๋ฐœ์ทŒ ๊ธฐ๋Šฅ์ด ์—†์Šต๋‹ˆ๋‹ค โ€” ์ƒˆ ์•ฑ์œผ๋กœ ๋ด‰์ธํ•œ ์›๋ณธ๋งŒ ์ž˜๋ผ๋‚ผ ์ˆ˜ ์žˆ์–ด์š”.

๋ฐœ์ทŒ ์ฆ๋ช…์šฉ ๊ตฌ์กฐ ์—†์Œ

์‚ฌ์šฉํ•œ ๊ธฐ์ˆ  โ„น๏ธ ๋ฉ”ํƒ€

์ด ๋ด‰์ธ์— ์“ฐ์ธ ์•”ํ˜ธ ๊ธฐ์ˆ  ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

์ •๊ทœํ™” ๋ฐฉ์‹
canonicalization
json-sorted-compact-utf8
image_hashsha256
๋ช…์„ธ ํ•ด์‹œ
manifest_hash
sha256
์ „์ž์„œ๋ช… ๋ฐฉ์‹
signature
ed25519

๋…น์Œ ์ƒํ™ฉ (ํฐ์ด ๊ธฐ๋ก) โš ๏ธ ์ž๊ฐ€์‹ ๊ณ 

ํฐ์˜ ์‹œ๊ณ„ยท์œ„์น˜์„ผ์„œ๊ฐ€ ์ ์€ ๊ฐ’์ž…๋‹ˆ๋‹ค โ€” ์•„๋ž˜ โ€˜์‹ ๋ขฐ๋œ ์‹œ๊ฐโ€™๊ณผ๋Š” ๋ณ„๊ฐœ(ํฐ ์‹œ๊ณ„๋Š” ํ‹€๋ฆด ์ˆ˜ ์žˆ์Œ).

๋ถ€ํŒ… ์‹๋ณ„์ž
boot_id
boot_count:24
๋…น์Œ ์‹œ๊ฐ (ํฐ ์ฃผ์žฅ)
captured_at
2026-10-01T07:56:06.989495Z
์œ„์น˜ (GPS)
gps
(์—†์Œ)
๊ธฐ๊ธฐ ์ž‘๋™์‹œ๊ฐ„(ms)
monotonic_offset_ms
294031265
ํ†ต์‹ ๋ง ์‹œ๊ฐ
nitz_time
(์—†์Œ)

๊ธฐ๊ธฐ ์ •๋ณด โš ๏ธ ์ž๊ฐ€์‹ ๊ณ 

ํฐ์ด ์ฃผ์žฅํ•˜๋Š” ๊ธฐ๊ธฐ ์ •๋ณด์ž…๋‹ˆ๋‹ค. ๋‹ค๋งŒ โ€˜์ด ๋ด‰์ธ์„ ๋งŒ๋“  ํ‚ค๊ฐ€ ์ง„์งœ ๋ฐœ๊ธ‰๋œ ๊ธฐ๊ธฐ ํ‚ค์ธ์ง€โ€™๋Š” ์•„๋ž˜ โ€˜ํ‚ค ์‹ ์›โ€™์—์„œ ํ™•์ธ๋ฉ๋‹ˆ๋‹ค.

์•ฑ ๋ฒ„์ „
app_version
0.7
๊ธฐ๊ธฐยท์•ฑ ์ฆ๋ช…
attestation
{"issued_at": null, "kind": "deferred", "nonce": null, "token": null, "verdict": "deferred"}
์šด์˜์ฒด์ œ
os
android
๊ธฐ๊ธฐ ์‹๋ณ„์ž
uid
android-1644b696d96936d0

device_integrity โ„น๏ธ ๋ฉ”ํƒ€

end{"at_ms": 1790841371326, "grade": "strong", "reasons": [], "token_sha256": "372252de6e7ca5ed844eaba2af9e1f777b9fa4aa5564d804febeecba7dc19ba6"}
gradestrong
schemaproofcam-device-integrity/1
start{"at_ms": 1790841370685, "grade": "strong", "reasons": [], "token_sha256": "9705c2fd8f6e5fb25012ce4c8e9d188e578b0f04f204684c6cb271f7d1e0d64b"}

identity โ„น๏ธ ๋ฉ”ํƒ€

display_name๊ตฌ
์‚ฌ์šฉ์ž
user_id
dummy:๊ตฌ
verification_leveldummy
verified_at2026-10-01T07:56:06.989495Z

original_attestation โ„น๏ธ ๋ฉ”ํƒ€

๊ธฐ๊ธฐยท์•ฑ ์ฆ๋ช…
attestation
{"issued_at": null, "kind": "deferred", "nonce": null, "token": null, "verdict": "deferred"}
claims{"alpha_q8": 17, "app_version": "0.7", "capture": {"boot_id": "boot_count:24", "captured_at": "2026-10-01T07:56:06.989495Z", "gps": null, "monotonic_offset_ms": 294031265, "nitz_time": null}, "capture_method": "media_projection", "device_uid": "android-1644b696d96936d0", "identity": {"display_name": "๊ตฌ", "user_id": "dummy:๊ตฌ", "verification_level": "dummy", "verified_at": "2026-10-01T07:56:06.989495Z"}, "media_kind": "screen", "original_sha256": "5929b2d007a28c8f98bb1396abab91cf49728dd712ff3a8ac393708c4625521e", "schema": "proofcam-original-claims/1", "screen": {"black_ratio_pct": 47, "capture_api": "media_projection", "foreground_app": {"install_source": "play", "package": "com.kakao.talk", "signature_sha256": "1e79fc02fc6b7810e5ad6c552234a762403e1cf2f6c97286900452f029e2eb4c"}, "secure_blocked": false}, "seal_id": "1c77582dc5a54a3587db884bee313541"}
claims_signatureMEUCIGVFUyK9twtCk1GxbPohTKPrRMeU2q7bnVEwLLLdLFZFAiEAhpQCk6lM4qLReJyQQ2iPOzAJwe5zk3+kwqlspR5cI08=
claims_signature_algecdsa-p256-sha256
๊ธฐ๊ธฐ ์‹๋ณ„์ž
device_uid
android-1644b696d96936d0
๊ณต๊ฐœํ‚ค
public_key
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEYZywJv7/cVB8b5UXdgkxAK7Ptayvcof0Ic9Tozz55CcHHZ3Ci1tlIYP0K/nNFIiwd2MLLC+Cv5Ti32tAkvNL4Q==
์ „์ž์„œ๋ช… ๋ฐฉ์‹
signature
MEYCIQDueqIsRDCd8lUKapM9sIY1MjeVeq3pnz3EvCSh0Ivk4gIhAO5qwO5BtBNFfwEYd/NEJ2h2umZpIrkWw98mMwxpGEla
signature_algecdsa-p256-sha256
signed_sha2565929b2d007a28c8f98bb1396abab91cf49728dd712ff3a8ac393708c4625521e

screen โ„น๏ธ ๋ฉ”ํƒ€

capture_apimedia_projection
foreground_app{"install_source": "play", "package": "com.kakao.talk", "signature_sha256": "1e79fc02fc6b7810e5ad6c552234a762403e1cf2f6c97286900452f029e2eb4c"}
formatjpeg
height2340
original_sha2565929b2d007a28c8f98bb1396abab91cf49728dd712ff3a8ac393708c4625521e
result_sha256a1f56adebfd0ad242eb9ffe0199d37273f05c766331a9d1c57c92a43a8fa9435
result_size_bytes1214253
width1080

watermark โ„น๏ธ ๋ฉ”ํƒ€

appliedTrue
composite{"alpha_q8": 17, "dot_jpg_sha256": "0277eefde305c98d42cea578f14fa38abd3c110a26cb699ce122a1a55cd1c7c3", "jpeg_quality": 95, "orientation": 1, "origin_x": 0, "origin_y": 0, "pattern_corr_milli": 773, "scale_den": 2, "scale_num": 5, "tile_px": 128, "tile_sha256": "d3bca9efa596a8d1e7748a8993b962431bb7f92ecb9089f99e817b62a44d89c4", "version": "proofcam-dot-composite/1"}
dot_id10100120000000013
schemesmartpaper

์ „์ž ์„œ๋ช… โœ… ๊ฒ€์ฆ๋จ

์ด ๊ณต๊ฐœํ‚ค๋กœ ๋ด‰์ธ ๋‚ด์šฉ ์ „์ฒด์— ์ „์ž์„œ๋ช…ํ•œ ๊ฒŒ ๋งž๋Š”์ง€ ์„œ๋ฒ„๊ฐ€ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค โ€” ๋‚ด์šฉ์ด ๋‹จ ํ•œ ๊ธ€์ž๋ผ๋„ ๋ฐ”๋€Œ๋ฉด ์„œ๋ช…์ด ๊นจ์ง‘๋‹ˆ๋‹ค. (ํฐ=ํ•˜๋“œ์›จ์–ด ํ‚ค, ์„œ๋ฒ„ยท์ธ์ฆ์„œ=KMS ํ‚ค)

์„œ๋ช… ์•Œ๊ณ ๋ฆฌ์ฆ˜
algorithm
ed25519
ํ‚ค ์‹๋ณ„์ž
key_id
25eaae2607d1896f
๊ณต๊ฐœํ‚ค
public_key
DEup3q0hVcdAlh26qceVUaVHP28Tvo5Pg/UwhVRvHRU=
์„œ๋ช… ๊ฐ’
value
1nJn6/qXZO4nNP5vgR0KQMF+Q8JGE5nQmPItDqCOBwVOrgfaP3fDuc52iTl84fedy1PeOdEo4rYUlOisCMd1Bw==

ํ‚ค ์‹ ์› (๋ˆ„๊ฐ€ ๋งŒ๋“  ํ‚ค์ธ๊ฐ€) โ— ์ผ๋ถ€ ๊ฒ€์ฆ

ํ‚ค๊ฐ€ ๋ˆ„๊ตฌ์—๊ฒŒ ๋ฐœ๊ธ‰๋œ ๊ฑด์ง€๋Š” ์•„์ง ํ™•์ธ ์•ˆ ๋จ(์Šค์Šค๋กœ ๋งŒ๋“  ํ‚ค) โ€” ๋‹ค๋งŒ ์œ„ยท๋ณ€์กฐ ์—†์Œ์€ ๋ณ„๊ฐœ๋กœ ์œ ํšจํ•ฉ๋‹ˆ๋‹ค.

์‹ ์› ๋“ฑ๊ธ‰
tier
๋ฏธ๊ฒฐ์† (์Šค์Šค๋กœ ๋งŒ๋“  ํ‚ค)
๊ธฐ๊ธฐ ์‹๋ณ„์ž
device_uid
(์—†์Œ)
์‚ฌ์šฉ์ž
user_id
(์—†์Œ)

์‹ ๋ขฐ๋œ ์‹œ๊ฐ ์ฆ์ธ โœ… ๊ฒ€์ฆ๋จ

์ด ๋ด‰์ธ์ด โ€˜์ด ์‹œ๊ฐ ์ด์ „์— ์กด์žฌํ–ˆ๋‹คโ€™๋ฅผ ๋…๋ฆฝ ๊ธฐ๊ด€(์‹œ๊ฐ ์ธ์ฆ๊ธฐ๊ด€ยท๋ธ”๋ก์ฒด์ธ)์ด ๋ณด์ฆํ•ฉ๋‹ˆ๋‹ค. 1๊ฐœ ์ด์ƒ์ด๋ฉด ์‹œ๊ฐ โ€˜ํ™•์ •โ€™.

์‹œ๊ฐ ์ธ์ฆ๊ธฐ๊ด€ (RFC3161) ยท freetsa ยท ๋ณด์ฆ ์‹œ๊ฐ 2026-10-01T07:56:12+00:00
opentimestamps ยท ๋ณด์ฆ ์‹œ๊ฐ ?

์„œ๋ฒ„๊ฐ€ ๋”ฐ๋กœ ๋ณด๊ด€ํ•œ ๊ฒƒ โ„น๏ธ ๋ฉ”ํƒ€

๋ด‰์ธ ์ฆ๊ฑฐ์™€ ๋ณ„๊ฐœ๋กœ ์„œ๋ฒ„๊ฐ€ ํŽธ์˜์ƒ ๋ณด๊ด€ํ•˜๋Š” ๋ถ€๊ฐ€๋ฌผ์ž…๋‹ˆ๋‹ค (์—†์–ด๋„ ๋ด‰์ธ ์ฆ๋ช…์—” ์ง€์žฅ ์—†์Œ).

์บก์ฒ˜ ํ™”๋ฉด ๋ณด๊ด€์žˆ์Œ (S3)
๋ง์  (์ถ”์ ํ‘œ์‹)์žˆ์Œ (dot_id 10100120000000013)
๋ง์  ๋„ฃ๊ธฐ ์ „ ์›๋ณธ๋ณด๊ด€๋จ
๋ง์  ์ž…ํžŒ ๊ณณ์„œ๋ฒ„(์›๋ณธ์— ์ง์ ‘) ยท ์ง„ํ•˜๊ธฐ 17/255 ยท ๋ฌด๋Šฌ ์ƒ๊ด€ 773/1000
๊ธฐ๊ธฐ ์„œ๋ช…(์›๋ณธ ํ•ด์‹œ)์žˆ์Œ ยท ์„œ๋ฒ„๊ฐ€ ๋ฐ›์„ ๋•Œ ํ™•์ธ
์ดฌ์˜ ๋ฐฉ์‹(๊ธฐ๊ธฐ ์„œ๋ช…๋œ ์ฃผ์žฅ)media_projection
๋ง์  ๋„ฃ๊ธฐ ์ „ ์›๋ณธ ํ™”๋ฉด ๋‚ด๋ ค๋ฐ›๊ธฐ ยท ์›๋ณธ์—๋Š” ๋ง์ ์ด ์—†๋‹ค
์›๋ณธ ๋ฒˆ๋“ค JSON ๋ณด๊ธฐ
{
  "manifest": {
    "algorithms": {
      "canonicalization": "json-sorted-compact-utf8",
      "image_hash": "sha256",
      "manifest_hash": "sha256",
      "signature": "ed25519"
    },
    "capture": {
      "boot_id": "boot_count:24",
      "captured_at": "2026-10-01T07:56:06.989495Z",
      "gps": null,
      "monotonic_offset_ms": 294031265,
      "nitz_time": null
    },
    "device": {
      "app_version": "0.7",
      "attestation": {
        "issued_at": null,
        "kind": "deferred",
        "nonce": null,
        "token": null,
        "verdict": "deferred"
      },
      "os": "android",
      "uid": "android-1644b696d96936d0"
    },
    "device_integrity": {
      "end": {
        "at_ms": 1790841371326,
        "grade": "strong",
        "reasons": [],
        "token_sha256": "372252de6e7ca5ed844eaba2af9e1f777b9fa4aa5564d804febeecba7dc19ba6"
      },
      "grade": "strong",
      "schema": "proofcam-device-integrity/1",
      "start": {
        "at_ms": 1790841370685,
        "grade": "strong",
        "reasons": [],
        "token_sha256": "9705c2fd8f6e5fb25012ce4c8e9d188e578b0f04f204684c6cb271f7d1e0d64b"
      }
    },
    "identity": {
      "display_name": "๊ตฌ",
      "user_id": "dummy:๊ตฌ",
      "verification_level": "dummy",
      "verified_at": "2026-10-01T07:56:06.989495Z"
    },
    "media_kind": "screen",
    "original_attestation": {
      "attestation": {
        "issued_at": null,
        "kind": "deferred",
        "nonce": null,
        "token": null,
        "verdict": "deferred"
      },
      "claims": {
        "alpha_q8": 17,
        "app_version": "0.7",
        "capture": {
          "boot_id": "boot_count:24",
          "captured_at": "2026-10-01T07:56:06.989495Z",
          "gps": null,
          "monotonic_offset_ms": 294031265,
          "nitz_time": null
        },
        "capture_method": "media_projection",
        "device_uid": "android-1644b696d96936d0",
        "identity": {
          "display_name": "๊ตฌ",
          "user_id": "dummy:๊ตฌ",
          "verification_level": "dummy",
          "verified_at": "2026-10-01T07:56:06.989495Z"
        },
        "media_kind": "screen",
        "original_sha256": "5929b2d007a28c8f98bb1396abab91cf49728dd712ff3a8ac393708c4625521e",
        "schema": "proofcam-original-claims/1",
        "screen": {
          "black_ratio_pct": 47,
          "capture_api": "media_projection",
          "foreground_app": {
            "install_source": "play",
            "package": "com.kakao.talk",
            "signature_sha256": "1e79fc02fc6b7810e5ad6c552234a762403e1cf2f6c97286900452f029e2eb4c"
          },
          "secure_blocked": false
        },
        "seal_id": "1c77582dc5a54a3587db884bee313541"
      },
      "claims_signature": "MEUCIGVFUyK9twtCk1GxbPohTKPrRMeU2q7bnVEwLLLdLFZFAiEAhpQCk6lM4qLReJyQQ2iPOzAJwe5zk3+kwqlspR5cI08=",
      "claims_signature_alg": "ecdsa-p256-sha256",
      "device_uid": "android-1644b696d96936d0",
      "public_key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEYZywJv7/cVB8b5UXdgkxAK7Ptayvcof0Ic9Tozz55CcHHZ3Ci1tlIYP0K/nNFIiwd2MLLC+Cv5Ti32tAkvNL4Q==",
      "signature": "MEYCIQDueqIsRDCd8lUKapM9sIY1MjeVeq3pnz3EvCSh0Ivk4gIhAO5qwO5BtBNFfwEYd/NEJ2h2umZpIrkWw98mMwxpGEla",
      "signature_alg": "ecdsa-p256-sha256",
      "signed_sha256": "5929b2d007a28c8f98bb1396abab91cf49728dd712ff3a8ac393708c4625521e"
    },
    "received_at": "2026-10-01T07:56:11Z",
    "screen": {
      "capture_api": "media_projection",
      "foreground_app": {
        "install_source": "play",
        "package": "com.kakao.talk",
        "signature_sha256": "1e79fc02fc6b7810e5ad6c552234a762403e1cf2f6c97286900452f029e2eb4c"
      },
      "format": "jpeg",
      "height": 2340,
      "original_sha256": "5929b2d007a28c8f98bb1396abab91cf49728dd712ff3a8ac393708c4625521e",
      "result_sha256": "a1f56adebfd0ad242eb9ffe0199d37273f05c766331a9d1c57c92a43a8fa9435",
      "result_size_bytes": 1214253,
      "width": 1080
    },
    "seal_id": "1c77582dc5a54a3587db884bee313541",
    "seal_mode": "server-composited",
    "version": "seal-manifest/0.2",
    "watermark": {
      "applied": true,
      "composite": {
        "alpha_q8": 17,
        "dot_jpg_sha256": "0277eefde305c98d42cea578f14fa38abd3c110a26cb699ce122a1a55cd1c7c3",
        "jpeg_quality": 95,
        "orientation": 1,
        "origin_x": 0,
        "origin_y": 0,
        "pattern_corr_milli": 773,
        "scale_den": 2,
        "scale_num": 5,
        "tile_px": 128,
        "tile_sha256": "d3bca9efa596a8d1e7748a8993b962431bb7f92ecb9089f99e817b62a44d89c4",
        "version": "proofcam-dot-composite/1"
      },
      "dot_id": "10100120000000013",
      "scheme": "smartpaper"
    }
  },
  "manifest_sha256": "a9b276824f835db10aeae5b0485c04bb7228dc0ceb03183a193f1ad2e0ca647b",
  "seal_status": "temporary",
  "signature": {
    "algorithm": "ed25519",
    "key_id": "25eaae2607d1896f",
    "public_key": "DEup3q0hVcdAlh26qceVUaVHP28Tvo5Pg/UwhVRvHRU=",
    "value": "1nJn6/qXZO4nNP5vgR0KQMF+Q8JGE5nQmPItDqCOBwVOrgfaP3fDuc52iTl84fedy1PeOdEo4rYUlOisCMd1Bw=="
  },
  "timestamps": [],
  "version": "seal-manifest/0.2"
}