通信が不安定な場所でも、
撮影記録を残せます。

地下駅や地下施設など、電波が届きにくい場所でも撮影と署名処理を実行できます。専用の検証ツールで、画像データ、記録時刻、署名の組み合わせが一致するかを確認できます。

写真を検証する (実物検証)

SpotLock-Cameraでできること

電波が届きにくい現場での撮影と署名データの整合性確認

通信が不安定な場所で撮影

撮影と署名処理は、インターネットへリアルタイム接続せずに実行できます。

記録時刻の紐付け署名

署名処理時に端末へ記録された時刻を、画像データとともに署名して格納します。

標準画像形式で保存

JPEG画像内にデータを保持するため、標準の画像ビューアでそのまま閲覧できます。

組み合わせの一致を検証

署名後に画像や記録情報だけが変更され、対応する署名が更新されていない場合、署名不一致として検知できます。

実物検証

SpotLock-Cameraで撮影された写真(JPEG)をアップロードして、署名とデータの整合性を直接検証できます

テスト用サンプルJPEG画像のダウンロード(テスト動作確認用のサンプル画像も用意しています)

ここに写真(JPEG)をドラッグ&ドロップ
またはクリックしてファイルを選択

電子署名とJPEG埋め込みの仕組み

署名時に画像と記録情報を紐付け、検証ツールで確認する技術構造

項目 仕様表記 説明
署名アルゴリズム ECDSA P-256 (SHA256withECDSA) 非対称鍵による電子署名処理
JPEG 埋め込み構造 JPEGのAPP15セグメントを利用した独自データ構造 JPEG規格の 0xFFEF (APP15) 領域に挿入する独自構造化データ
識別コード "SPOTLOCK" (0x53504F544C4F434B) セグメント冒頭の 8 バイト ASCII 識別用文字列
署名対象データ Timestamp String + JPEG Binary 署名処理時に端末へ記録された時刻文字列(ミリ秒)と画像データ
位置情報の扱い 位置情報 (GPS) 不使用 撮影および署名処理に位置情報を使用しない仕様

検証できる範囲

検証ツールが直接確認する事実と前提条件

検証ツールは、画像内に含まれる公開鍵を使用して、画像データと記録時刻に対する署名の整合性を確認します。

署名不一致が検知されるケース

  • 署名を更新せずに行われた画像編集や色調変更
  • 署名を更新せずに行われた記録時刻文字列の書き換え
  • 署名対象データの破損、または署名データの不一致

公開鍵の信頼性に関する構造上の前提

第三者が新しい鍵ペアでデータ全体を再署名し、その公開鍵も画像へ格納した場合、署名検証自体は成功する可能性があります。

セキュリティ上の留意事項

システム利用における技術的な確認限界と鍵管理の仕様について

確認・保証できない事項

  • 正規アプリ・正規端末の証明: 検証ツールが公開鍵の信頼性を別途確認しない構成では、正規アプリまたは信頼された端末で署名されたかを判別するものではありません。
  • 現実の時刻の一致: 署名処理時に端末内のローカル時刻を記録するため、記録時刻が現実の正確な時間と一致していることや、署名前に端末時刻が変更されていないことを確認するものではありません。
  • 写真内容の真偽・詳細特定: 写真内容の真実性、変更箇所、変更者、意図的な改ざんか偶発的なデータ破損かを判別するものではありません。

鍵管理の実装構造についての留意点

本アプリは Android Keystore を使用し、端末ごとに署名鍵ペアを生成します。v2形式では画像内に公開鍵を含め、その公開鍵を使って署名を検証します。検証ツールが公開鍵の信頼性を別途確認しない構成では、第三者が自身の鍵で再署名したデータについても、署名の整合性検証が成功する可能性があります。