Security
セキュリティへの取り組み
認証、会社間分離、監査、データライフサイクルを多層で保護します。
認証とセッション
- PINはサーバー専用の秘密鍵とユーザー別ソルトを用いたHMAC-SHA-256で保護し、平文では保存しません。新規PINは8〜12桁とし、単純な連番や同じ数字を拒否します。
- 管理者はWebAuthnパスキーを併用できます。登録・認証はユーザー検証を必須とし、チャレンジは5分で失効します。公開鍵と署名回数のみを保存し、生体情報は端末外へ出ません。登録・削除・利用を監査します。
- セッションCookieは__Host接頭辞・Secure・HttpOnly・SameSite=Strictを適用します。管理者は12時間、社員は7日間の無操作で失効します。
- アカウント単位とネットワーク単位でログイン試行を制限します。PIN変更・端末解除・全社データ出力・月次確定解除には再認証を適用します。
データ保護
- すべての業務データを会社IDで分離し、社員アカウントには本人の勤怠・申請だけを返します。GPS履歴・会社情報・全社員個人情報は管理者権限をサーバーで検証します。
- 生年月日・住所・電話番号・緊急連絡先は、会社・社員・項目ごとの追加認証データを用いたAES-GCMで暗号化します。
- TAPはマイナンバーを取得・保存・表示・出力しません。
- 重要操作はHMAC-SHA-256付き監査ログに記録し、後日の改ざん検知を可能にします。PINやトークン等の秘密情報は監査ログへ保存しません。
- 管理者の会社データと個人情報はブラウザへ永続保存しません。社員端末は圏外打刻に必要な本人分だけを最小限保持します。
- 打刻とGPS地点には端末発行の一意IDを付け、再送による二重登録を防止します。高精度GPSを取得・検証した後に打刻を保存し、取得できない場合は打刻せず再取得を案内します。
- 位置情報は会社が設定した1〜365日の保存期間を超えたデータから削除します。未送信地点は端末内で最大48時間に限定します。
Web防御
- TLS強制、2年間のHSTS、CSP、クリックジャッキング防止、MIMEスニッフィング防止、リファラー抑制を適用します。
- 状態変更APIはOrigin・Referer・Fetch Metadata・専用CSRFヘッダー・JSON形式・1MB上限を検証し、API応答をブラウザキャッシュに保存しません。
- 地図ライブラリはTAPから配信し、外部スクリプトの実行をCSPで禁止します。地図タイル提供先へ社員の氏名・メールアドレスを送信しません。
お客様にお願いする対策
管理者PINは8桁以上で使い回さず、管理者の個人端末へパスキーを登録し、社員には個別アカウントを発行してください。共有タブレットではキオスクモードを利用し、不要な招待URL・共有端末URL・アカウントを停止してください。月次確定後のデータと定期出力を保管し、脆弱性や不審な挙動は契約窓口へ報告してください。
現在の制約
Webアプリの位置情報は、端末の省電力、ブラウザ終了、権限、通信状態により中断することがあります。重要な労務判断は位置情報だけに依存せず、勤怠、業務報告、本人確認を組み合わせてください。
勤務中の断続的位置記録
- 機能は既定で無効です。会社が規程を登録して有効化し、規程バージョンごとに社員本人が同意した場合だけ開始します。
- 取得は出勤から退勤までのうち、アプリが前面にあり画面が点いている間に限ります。休憩中は既定で停止し、退勤・ログアウト・同意撤回で停止します。
- Webアプリのため、画面ロック、アプリ切替、ブラウザ終了中は取得できません。取得できなかった時間帯を記録なし区間として表示し、不正やサボりとは判定しません。
- 未送信点はIndexedDBへ先に保存し、最大48時間、1回100点まで冪等に再送します。勤務セッション外・未来時刻・48時間を超えた点はサーバーで拒否して監査します。
- 他人の位置は管理者だけが閲覧でき、本人は自分の全記録と閲覧履歴を確認・出力できます。管理者の地図・一覧・CSVアクセスを記録します。
- 保存期間は会社設定の1〜365日です。位置情報だけを根拠に懲戒・人事評価を行いません。