KASUGAI Canvas v6.17.0

簡易パスワード認証(password)

← 認証とプラグインへ戻る

2. 簡易パスワード認証(password)

概要

環境変数やクラウドが不要で、JS ファイル内のハッシュと比較するだけの簡易な起動制御です。公開用ではありません。GLWAN など限定的な環境やテスト用途に限定してください。インターネットや社内共有サーバーで公開する場合は 3. Cloudflare 認証(cloudflare) を使用してください。

利用シーン

  • GLWAN など限定的な環境でのテスト
  • 非公開の社内共有サーバーでの一時的な起動制限
  • インターネット公開や本番運用は対象外

起動と設定

web/auth-methods.json の control を 2 に設定すると、この認証方式が選択されます。

{
  "control": 2
}

ブラウザで http://127.0.0.1:8510/ を開くだけで起動します。

ID/PASS の設定

web/PLUGIN/auth-password/auth.js の以下の定数を編集してください。

const EXPECTED_USER = "admin";
const EXPECTED_SALT = "2tr4Cnrn5LXfo6fpf7ozNg==";
const EXPECTED_HASH = "67mzCzSXZtPm1xNbLmYgPN+ME4F974mZ+qqIxKOu5Zg=";

初期値: ユーザーID admin、パスワード admin

ハッシュ生成

新しい SALT / HASH を生成する例です。

python -c "import base64,secrets,hashlib; s=secrets.token_bytes(16); h=hashlib.pbkdf2_hmac('sha256',b'USER:PASS',s,100000,32); print(base64.b64encode(s).decode()); print(base64.b64encode(h).decode())"

資産ごとの秘匿状況

資産未ログインの第三者備考
ID/PASS△ ハッシュで露出ユーザー名は平文、パスワードは PBKDF2 ハッシュとして auth.js 内に存在。ハッシュの逆算は困難ですが、弱いパスワードはオフライン総当たりで解析可能です
.kasc 設定❌ 全公開静的ファイルとして誰でも取得可能
HTML/JS/CSS(アプリ本体)❌ 全公開ログイン画面は見た目のゲートのみ。ファイルは全て取得可能
データ(web/)
URL が公開情報から分かる
❌ 列挙容易.kasc や projects.json に記載のパス、DATA/ の固定パスは一覧・推測で容易に取得可能
データ(web/)
URL が非公開・推測困難
△ obscurityどこにもパスが書かれていないファイルは URL を知らなければ到達困難。ただし認証はないため URL が漏れれば即座に取得可能

サーバー側で守られる資産は一切ありません。ハッシュ化は「パスワードの中身を読みにくくする」だけで、ファイル・データの保護にはなりません。

セキュリティ上の注意

  • 保護できるもの:アプリ起動制御(ID/PASS のハッシュ照合)
  • 保護できないもの:HTML/JS/CSS 等の静的ファイル、DATA/ 内の画像・GeoJSON 等、認証情報(auth-password.js 内の SALT/HASH)の読み取り
  • 利用場面:GLWAN など限定的な環境・テスト用途(公開不可)
  • 注意:真のセキュリティには向いていません。完全な保護が必要な場合は cloudflare 方式を使用してください