公開CSVに「署名」をつけるだけでデータ信頼性が劇的に変わる話

どうも〜おかむーです!今日はちょっとクリプト寄りでエンジニアっぽい話をしますよ〜
- 公開CSVは形式の話ばかり注目されがちだが、改ざん/破損の検知は軽視されている
- 小さな対策(チェックサムと署名)を運用に組み込めば、二次利用者のコストが劇的に下がる
- 実装パターンとCI連携、運用ルールまで実例付きで示すよ!
結論
政府・自治体が公開するCSVやデータセットには「機械可読性」だけでなく「データの整合性保証(検証可能な署名)」を標準化で求めるべき。要するに、データの正しさを“鍵”で担保する仕組みを作れば、ダッシュボードや分析パイプラインの信頼度が一気に上がりますよね。
レポート本文
現状観察:これ見てくださいよ
公開データは増えている。たとえば内閣官房・デジタル行財政改革会議が機械可読性ルールを議論している(https://www.cas.go.jp/…、資料も公開されてます)し、各省のCSV(例:NOTICEのstatus_notice.csv https://notice.go.jp/docs/status_notice.csv、総務省の全国CSV https://www.soumu.go.jp/main_content/000323625.csv、環境省や厚労省のCSV)もダウンロード可能。
ただ、これらのCSV、ほとんどが「ただのファイル」として公開されていて、ダウンロード時にそれが最新で改ざんされていないかを自動で検証する仕組みが無いことが多い。要するに「フォーマットはあるけど、誰が・いつ・本当に出したのか」を機械が検証できないんです。
なぜ署名(とチェックサム)が必要か
- ネットワーク経由での破損、CDNキャッシュの不一致、ミドルボックスでの改変を検知できない
- 二次利用者はデータ取り込み後に手作業で確認することになり、コストが増える
- 重要政策(医療施設リスト、支援金リスト等)だと不整合が社会的混乱を招く可能性がある
エンジニア的に言うと、チェックサムはハッシュでの整合性検査、署名はそのハッシュに対する公開鍵暗号での認証です。要するに「内容が変わっていない」と「出所が正しい」を両方担保するということです。
実装パターン(ライト&フル)
- ライト:CSVと同じ場所に manifest.json を置く。中身は最低限これだけ
{
"name": "status_notice.csv",
"url": "https://notice.go.jp/docs/status_notice.csv",
"sha256": "<hex>",
"signed_at": "2026-04-25T12:00:00Z",
"signer": "[email protected]",
"signature_url": "https://notice.go.jp/docs/status_notice.csv.sig"
}
- フル:manifest + detached signature (.sig PGP/COSE) + timestamping(TSP/RTT)+公開鍵の配布(well-known URL / DNS TXT / Web Key Directory)
コード例:Pythonでの検証(概念)
import requests, hashlib, gnupg
ダウンロード
r = requests.get(url)
data = r.content
ハッシュ検証
h = hashlib.sha256(data).hexdigest()
assert h == manifest['sha256']
GPG署名検証
gpg = gnupg.GPG()
公開鍵は事前に取得してインポートしておく
verify = gpg.verify_data('status_notice.csv.sig', data)
assert verify.valid
運用ワークフロー(現場向け)
ポリシー面の提案
- 機械可読性ルールに「署名とmanifest必須」を追加。既に検討されている機械可読性(digital.go.jp の資料)に整合性要件を加えるだけで現場の負担は少ないはず
- 重要データ(医療・支援金・施設リスト等)は必須、その他は推奨から段階的適用
- 署名鍵管理はKMS/HSMで。鍵ローテーションと公開鍵のチェーンを定義
コスト感と導入メリット
- 実装コストは小さめ(既存CIに署名ステップを1つ追加するだけ)
- 受け手のコストが大幅に減る(検証スクリプトで自動スキップ可能)
- 信頼性が上がれば民間データ製品や自治体間連携の採用ハードルが下がる
まとめ
CSVをただ公開する時代は終わりつつあります。フォーマットの標準化に次いで必要なのは「そのCSVが本物かどうかを機械が即判定できること」。チェックサム+署名+manifestという小さな投資で、政府データの二次利用エコシステムがぐっと安定するんですよね。
おかむーから一言
データの信頼はケーブル一本で生まれるんじゃなくて、鍵一本から始まります!小さな暗号の約束が、市民とサービスの信頼を作るんです。俺たちでその約束をコードに落としましょう!
情報ソース
- https://notice.go.jp/docs/status_notice.csv
- https://www.env.go.jp/content/900398071.csv
- https://www.inpit.go.jp/content/100869372.csv
- https://www.mhlw.go.jp/content/001682075.csv
- https://www.soumu.go.jp/main_content/000323625.csv
- https://www.zhihu.com/question/290714454
- https://www.cas.go.jp/jp/seisaku/digital_gyozaikaikaku/kakusyoDX4/kakusyoDX4.html
- https://www.zhihu.com/question/6430289390
- https://www.digital.go.jp/assets/contents/node/basic_page/field_ref_resources/256dcba6-b936-4031-b88d-3abb27e27f9b/7c809f2f/20260331_meeting_executive_outline_05.pdf
- https://www.zhihu.com/question/38923279
- https://catalog.data.metro.tokyo.lg.jp/dataset
- https://opendata.pref.saitama.lg.jp/datasets
- https://portal.data.metro.tokyo.lg.jp/
- https://opendata.pref.saitama.lg.jp/
- https://www.city.niigata.lg.jp/shisei/seisaku/it/open-data/
シェアする
関連レポート

公共予約システムの“ログインからAPI化”ロードマップ:パスワードレスで運用コストを下げる技術提案
公共施設予約の認証とデータを段階的にAPI化して運用コストを下げる技術ロードマップを紹介します。

政府データを“つなげる”発想:省庁バラバラを超えるフェデレーション戦略
フェデレーション層で省庁データをつなぎ、PDF混在を克服する実践的な技術案を示す。

政策ダッシュボードは“作るだけ”じゃダメ!KPIを自動で監査するパイプライン設計
政策ダッシュボードの数値を自動監査するパイプライン設計案。API・スキーマ・差分管理でKPIの信頼性を上げる技術手法を紹介します。