プライバシーポリシー

対象:iOS アプリ「Aoshingo(青信号)」、実測データを受け取るサーバー、このウェブサイト
運営者:Aoshingo の開発者(GitHub:4sh0u0)
制定日:2026 年 11 月 11 日

1. 基本方針

  • アカウント登録は不要です。広告、アクセス解析、トラッキング、第三者の SDK は使っていません。
  • 受信したデータは、初期状態では端末の外に送信しません。
  • 端末の外に送信するのは、利用者が「実測データの提供に協力する」を選んだ場合の、「4. 実測データの提供」に書いた情報だけです。

2. 端末の中だけで扱う情報

端末の中だけで扱う情報と使い方
情報 使い方
受信した Bluetooth 信号(高度化PICS) 信号の状態を表示するために、メモリ上で扱います。受信のみで、信号機には何も送信しません。
受信データの記録ファイル 設定で「受信データを記録する」をオンにしたときだけ作ります。端末内(アプリの書類フォルダ)に保存し、利用者が共有しない限り端末の外に出ません。受信した信号データ(交差点 ID と、信号機が発信する交差点の位置を含む)と受信時刻を記録します。送信機は E1、E2… と表記します。利用者の現在地(緯度・経度)は含みませんが、交差点 ID、交差点の位置、受信した時刻を含むため、いつどの交差点にいたかは分かります。共有するときはご注意ください。
設定 表示の配色、画面を消さない設定、実測データの提供の選択などを端末内に保存します。

アプリを削除すると、これらはすべて端末から削除されます。

3. 位置情報

  • 位置情報の利用許可は、実測データの提供に協力している場合だけ求めます。協力しない場合は求めません。
  • 位置情報は、交差点から見たおおまかな方向(8 方位)を端末内で計算するためだけに使います。利用者の現在地の緯度・経度は、保存も送信もしません。
  • 許可しなくても、すべての機能を使えます。その場合、方向は「不明」として送信します。

4. 実測データの提供(任意)

初回起動時に協力するかどうかを選べます。どちらを選んでも、使える機能は同じです。設定画面でいつでも変更できます。

送信する情報

協力している場合だけ、アプリが実際の信号を受信している間に、次の情報を送信します。デモや記録ファイルの再生中のデータは送信しません。

送信する情報と内容
情報 内容
交差点 ID 信号機が発信している 8 桁の ID
受信した信号データ 信号機が発信しているデータそのもの(交差点名、交差点の位置、信号の状態など)。間引いて送信します。
信号が変わった時刻 信号ごとの状態の変化(例:赤 → 青)と、その時刻(秒単位)
電波強度 5 dB 単位に丸めた値
方向 交差点から見た利用者の方向と、端末の向きを、それぞれ 8 方位に丸めた値
送信機の情報 Service UUID と、送信機の数
アプリのバージョン 例:aoshingo-ios/0.1.0

送信しない情報

利用者の現在地(緯度・経度)、機種、OS のバージョン、言語・地域、広告 ID、氏名・メールアドレスなどの個人情報は送信しません。なお、受信した信号データには、信号機が発信する交差点の位置が含まれます。

インストールごとに異なる値として、App Attest の鍵の ID(keyId)を送ります。送るのは鍵の登録と送信用トークンの取得のときだけで、実測データの送信には含めません(「5. 不正なデータを防ぐ仕組み」)。

送信のタイミング

受信中はおよそ 1 分ごとに、アプリを閉じたときにも、未送信のデータをまとめて送信します。1 回の送信に含めるのは最大 10 分間のデータです。送信に失敗したときは、間隔を広げながら再試行します。サーバーがその日の受け付けの上限に達しているときは、翌日(UTC)まで待ちます。送信できなかったデータは端末内に最大 50 件まで保存し、6 日を過ぎたものは送信せずに削除します。

送信には、最長 6 時間有効な送信用トークンを付けます。その間の送信には同じトークンを使うため、サーバーは受け取るときに、同じ時間帯の送信どうしを同じ端末からのものと見分けられます。サーバーはトークンを確かめるためだけに使い、実測データと一緒には保存しません。ただし、送信内容の時刻は秒単位なので、保存したデータを時刻順に並べると、同じ人が続けて通った交差点を推測できる可能性があります。

通信内容と形式の詳細は「送信 API の仕様」をご覧ください。

5. 不正なデータを防ぐ仕組み(App Attest)

偽造されたデータの混入を防ぐため、Apple の App Attest を使い、送信元が正規の Aoshingo アプリであることを確認します。

  • 協力をオンにすると、アプリは端末の安全な領域(Secure Enclave)に鍵を作り、Apple のサーバーで証明を受けます。この処理には Apple のプライバシーポリシーが適用されます。
  • 鍵の ID(keyId)は、協力をオンにしたインストールごとに 1 つ作られる値です。鍵の登録と送信用トークンの取得のときだけ、開発者のサーバーに送ります。
  • サーバーは鍵の ID、公開鍵、署名の回数、App Attest の環境(開発用か本番か)、登録した日と最後に使われた日(どちらも日単位)を、実測データとは別の表に保存し、実測データとは結び付けません。実測データの行には、鍵の ID も送信用トークンも保存しません。
  • サーバーは、最後に使われた日から 30 日を過ぎた鍵の ID と公開鍵を削除します(最後に使われてから最長で 31 日と 18 時間ほど)。
  • 送信用トークンには鍵の ID を含めません。協力をオフにすると、アプリはこの鍵を破棄し、もう一度オンにすると新しい鍵を作ります。

6. サーバーでの扱い

  • サーバーは Cloudflare Workers と D1 データベースで運用しています。
  • 通信を届けるために Cloudflare は IP アドレスを処理しますが、サーバーのプログラムは IP アドレスや国などを示すヘッダーを読まず、記録もしません。アクセスログやトレースの記録は無効にしています。Cloudflare 自身の扱いについては Cloudflare のプライバシーポリシーをご覧ください。
  • 受け取った日時は「日」単位でだけ記録します。送信内容に含まれる信号の変化や受信の時刻(秒単位)は、そのまま保存します。
  • 受け取った実測データは 90 日間保存し、その後は毎日 1 回の処理で交差点ごとの集計(信号ごとの変化の回数を時間帯別に数えたもの、電波強度と方向ごとの受信回数など)に置き換えてから削除します。受け取ってから削除するまでは、最長で 91 日と 18 時間ほどです。集計には個々の送信を区別できる情報は残りません。集計は期限を定めずに保存します。
  • 削除したデータも、Cloudflare D1 の復元機能(Time Travel)により、削除から 7 日間はデータベースごと削除前の状態に戻せる形で残ります。戻せるのはサーバーの運用者だけです。

7. 利用目的

  • 信号の番号(1 番〜6 番)がどの横断歩道に当たるかを確かめるため
  • 信号機ごとの発信間隔、送信機の数、受信できる範囲を調べるため
  • 「残り目安」の表示や、信号の判定の正確さを改善するため

集計結果を公開する場合は、事前にこのポリシーを更新してお知らせします。

8. 第三者への提供

実測データを販売したり、広告などの目的で第三者に提供したりすることはありません。サーバーの運用(Cloudflare)と不正防止(Apple)のために、上に書いた範囲でこれらの事業者が処理することがあります。法令に基づいて開示を求められた場合は、法令に従って対応します。

9. 提供の停止と削除

  • 設定画面で実測データの提供をオフにすると、端末内の未送信のデータはすぐに削除され、以後は何も送信しません。
  • すでに送信したデータは、利用者や端末と結び付けて保存していないため、個別に探して削除することができません。受け取ってから最長で 91 日と 18 時間ほどで集計に置き換えられ、個々のデータは削除されます。

10. このポリシーの変更

内容を変更するときは、このページと GitHub のリポジトリで変更を公開し、重要な変更はリリースノートでもお知らせします。送信する情報を増やす場合は、改めて利用者の同意を得ます。

11. このウェブサイト

  • このウェブサイトは GitHub Pages で公開しています。GitHub は、セキュリティのために、サイトを閲覧した人の IP アドレスを記録します。GitHub 自身の扱いについては GitHub のプライバシーに関する声明をご覧ください。
  • このサイト自体は、Cookie、アクセス解析、広告、外部のフォントを使っていません。開発者がこのサイトの閲覧者の情報を集めることはありません。
  • サポートページとこのページの「メールアドレスを表示」ボタンを押したときだけ、迷惑メールを防ぐために Cloudflare の Turnstile を使います。ボタンを押すと、ブラウザーは Cloudflare(challenges.cloudflare.com)からスクリプトを読み込み、ロボットによる操作でないかを確かめます。このとき Cloudflare は、確かめるために必要な情報(IP アドレス、ブラウザーや端末の情報など)を処理し、確認のために Cloudflare のドメインで Cookie やブラウザーの保存領域を使うことがあります。ボタンを押さなければ、Turnstile は読み込まれません。Cloudflare の扱いについては、Turnstile のプライバシーに関する補足(英語)と Cloudflare のプライバシーポリシーをご覧ください。
  • 確認が済むと、ブラウザーは確認の結果(1 回だけ使える符号)を、開発者が Cloudflare Workers で動かしているプログラムに送ります。プログラムは、その結果が正しいことを Cloudflare に問い合わせてから、メールアドレスを返します。通信を届けるために Cloudflare は IP アドレスを処理しますが、このプログラムは IP アドレスや国などを示すヘッダーを読まず、何も保存せず、アクセスログやトレースの記録も無効にしています。
  • ほかに GitHub や Cloudflare のサービスをこのサイトで使うときは、使い始める前に、サービスの名前、使う目的、そのサービスに送られる情報をこの節に書き加えます。

12. お問い合わせ

GitHub の Issue でお問い合わせください。Issue は公開されるため、個人情報は書かないでください。

メールでお問い合わせいただいた場合、メールアドレスと内容は、返信と対応のためだけに使い、法令に基づく場合を除いて第三者に提供しません。

ページの先頭へ戻る