CubePlot 技術資料

CubePlotが外部通信を行わないことの確認方法

本資料は、ダウンロードしてご利用いただくCubePlot本体を対象としています。
CubePlotは、読み込んだCSVデータや操作内容が一切外部に送信されない設計です。これは「そういう作りにしている」という説明にとどまらず、ブラウザのセキュリティ機能によって技術的に強制されています。以下の手順で、どなたでもご自身の環境で確認いただけます。

1. CSPの記載箇所と内容

CubePlot本体のHTMLファイルをテキストエディタで開く、またはブラウザで開いた状態で右クリック→「ページのソースを表示」(もしくは表示中にCtrl+U)をすると、ファイル冒頭、<head>内の先頭付近に以下の1行が記載されています。

<meta http-equiv="Content-Security-Policy" content="default-src 'none'; script-src 'unsafe-inline'; style-src 'unsafe-inline'; img-src data: blob:; font-src data:; connect-src 'self' blob: data:; worker-src blob:; media-src blob: data:; object-src 'none'; base-uri 'none'; form-action 'none'">

これはCSP(Content Security Policy)と呼ばれる、Webブラウザが標準でサポートするセキュリティ機能の宣言です。ブラウザ自身がこの宣言を読み取り、違反する通信を強制的にブロックします。CubePlot側のプログラムが「送らない」と約束しているのではなく、ブラウザという第三者のソフトウェアが実行時に強制的に通信を止める、という点が重要です。

2. 各項目(ディレクティブ)の意味

項目 内容
default-src 'none' 基本方針として、以下で個別に許可した通信・読み込み以外はすべて禁止
script-src 'unsafe-inline' ファイル内に直接書かれたJavaScriptの実行のみ許可(外部のスクリプトファイルを読み込むことは不可)
style-src 'unsafe-inline' ファイル内に直接書かれたCSSの適用のみ許可(外部のスタイルシート読み込みは不可)
img-src data: blob: 画像はファイル内に埋め込まれたデータ、またはブラウザのメモリ上で生成されたデータのみ許可(外部サーバーからの画像取得は不可)
font-src data: フォントはファイル内埋め込みのみ許可(外部フォントサービスの利用は不可)
connect-src 'self' blob: data: 最も重要な項目。JavaScriptが通信(データの送受信)してよい相手を「CubePlotを開いた元(ローカルファイル、または配信元のSRWサイト)」「ブラウザのメモリ上のデータ」に限定。第三者のサーバー・ドメインが一切含まれていないため、たとえプログラム側に通信を試みるコードがあったとしても、ブラウザがその時点でブロックします
worker-src blob: バックグラウンド処理(Webワーカー)もメモリ上のデータからのみ起動可能。外部スクリプトは不可
media-src blob: data: 音声・動画もファイル内埋め込み/メモリ上のデータのみ(外部配信は不可)
object-src 'none' 外部プラグイン・埋め込みオブジェクトを全面禁止
base-uri 'none' ページの基準URLを外部から書き換えられないようにする、改ざん対策
form-action 'none' フォームの送信先を一切許可しない(CubePlotはそもそもフォーム送信機能を持ちませんが、念のための多重防御)

補足

script-srcstyle-src'unsafe-inline'が含まれるのは、CubePlotが外部ファイルに依存しない単一HTML構成で、プログラムとスタイルをファイル内に直接記述しているためです。情報漏えい対策の核心はデータの外部送信を防ぐconnect-srcにあり、こちらが外部の通信先を一切許可していないことが、この設計の要になります。

3. 実際に確認する手順(開発者ツール)

技術的な知識がなくても、以下の3ステップで確認できます。

  1. CubePlot本体のファイルを開く前に、ブラウザの開発者ツールを開きます(キーボードのF12、またはページを右クリックして「検証」)。表示されたパネルの中から「Network」(ネットワーク)タブを選択します
  2. その状態でCubePlot本体のファイルを開き、CSVファイルの読み込み、3D表示の操作、色分け・スライス、PNG書き出しなど、一通りの機能を操作します
  3. Networkタブに表示される通信の一覧を確認します。何を操作しても、外部サーバーへの通信が一切記録されないことが確認できます(ファイルをダブルクリックして直接開いた場合は、一覧はそもそも空のままです)

補足: さらに簡単な確認方法

開発者ツールを使わなくても確認できる、より簡単な方法もあります。インターネット接続を切った状態(Wi-Fiをオフにする等)でCubePlot本体のファイルを開き、通常通り動作することを確認してください。外部と通信する作りであれば機能が停止するはずですが、CubePlotはネット接続なしでも全機能が正常に動作します。

4. 配布ファイルの改ざん確認(ハッシュ値)

「外部に何も送らない」ことの確認に加えて、「お手元のファイルがSoul Resonant Worksが配布した正規のものと同一か(改ざん・破損されていないか)」も、ハッシュ値(SHA-256)で確認できます。CSPによる通信の確認と並ぶ、もうひとつの信頼の根拠です。

環境 確認コマンド
Windows(PowerShell) Get-FileHash <ファイル名> -Algorithm SHA256
Mac(ターミナル) shasum -a 256 <ファイル名>

表示された値を、公式のハッシュ値と照合してください。公式のハッシュ値は、CubePlot利用マニュアル巻末の付録「配布ファイルの改ざん確認」に掲載しています(アプリ本体と同時にビルドされるため、常に最新の値が反映されます。本ページに数値を直接記載すると、更新のたびに手動での書き換えが必要になり、更新漏れがかえって「正規ファイルが改ざんされたように見える」誤解を招くリスクがあるため、数値の一次情報はマニュアル側の1箇所に一本化しています)。

確認の対象

対象はアプリ本体(CubePlot.html / cubeplot_free.html)のみです。マニュアルPDF自体は対象に含まれません(ハッシュ値を記載した時点でファイルの中身が変わり、値自体も変わってしまうため、技術的に対象にできません)。

以上、ご不明点があれば biz@sr-works.net までお問い合わせください。
← CubePlot 製品ページに戻る