【要約】JPKI Image Signer — マイナンバーカードで画像・作品の真正性を証明する [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
クリエイターや事業者は、AIによる生成物や盗用が横行する中で、自身の作品が「本物である」と証明する手段を必要としている。しかし、従来の技術では以下の課題があった。
- ・透かし技術は、デジタル処理によって容易に除去が可能である。
- ・ブロックチェーン(NFT)は、発行者の身元を公的に担保できない。
- ・画像への直接的な署名(EXIF等)は、SNSへのアップロードや再圧縮によってメタデータが消失し、検証不能になる。
// Approach
開発者は、元データのバイナリを一切変更せずに署名を付与する、サイドカー方式のコンテナ構造を採用した。
- ・画像を一切加工せず、署名と証明書を分離して無圧縮ZIPコンテナ(.jpkisig)に同梱する。
- ・PKCS#7(detached SignedData)標準を用い、RSASSA-PKCS1-v1_5 + SHA-256で検証を行う。
- ・PINロックを防ぐため、APDU通信により署名実行前に試行可能回数を確認する安全装置を実装する。
- ・メモリ上のPIN情報を即座にゼロクリアする等のメモリ管理を行う。
// Result
本ツールにより、クリエイターは公的個人認証を用いた、改ざん不可能な真正性証明が可能となった。
- ・GUIとCLIの両モードを提供し、エンドユーザーから自動化用途まで幅広く対応した。
- ・画像ビューアや印刷に影響を与えない、非破壊的な運用を実現した。
- ・PINロックや個人情報流出のリスクに対し、多重の安全機構と警告UIを実装した。
Senior Engineer Insight
> 実用性とセキュリティのバランスが極めて高い。特に、PINロックを回避するためのAPDUによる残回数確認や、メモリ上のPINゼロクリアの実装は、ハードウェアを扱うツールとして非常に実践的だ。一方で、証明書内の個人情報が平文で含まれる点は、運用上の大きな脆弱性となり得る。B2Bでの導入には、コンテナの配布経路におけるプライバシー保護策が必須となるだろう。