セキュリティ技術詳細
このページでは、eSolia Periodicで実装されているセキュリティ対策の技術的な詳細を説明します。
認証
パスワードハッシュ
| パラメータ | 値 |
|---|---|
| アルゴリズム | PBKDF2-SHA512 |
| 反復回数 | 600,000 (OWASP 2024) |
| ソルト長 | 128 bits (16 bytes) |
| 出力長 | 512 bits (64 bytes) |
パスワード要件: 12文字以上、大文字・小文字・数字・特殊文字を各1つ以上含む
多要素認証(MFA)
| 機能 | 実装 |
|---|---|
| 方式 | TOTP (RFC 6238) |
| タイムステップ | 30秒 |
| コード長 | 6桁 |
| バックアップコード | 10個(各12文字、1回使用可) |
マジックリンク認証
| パラメータ | 値 |
|---|---|
| トークン長 | 256 bits (32 bytes) |
| 有効期限 | 15分 |
| 使用回数 | 1回のみ |
セッション管理
Cookieセキュリティ
session_id={token}; Path=/; Max-Age={seconds}; Secure; SameSite=Lax; HttpOnly | フラグ | 目的 |
|---|---|
Secure | HTTPSのみで送信 |
HttpOnly | JavaScriptからのアクセスを防止 |
SameSite=Lax | CSRF保護 |
HTTPセキュリティヘッダー
| ヘッダー | 値 |
|---|---|
X-Frame-Options | SAMEORIGIN |
X-Content-Type-Options | nosniff |
X-XSS-Protection | 1; mode=block |
Referrer-Policy | strict-origin-when-cross-origin |
Permissions-Policy | camera=(), microphone=(), ... |
Content Security Policy
default-src 'self';
script-src 'self' 'unsafe-inline' https://unpkg.com;
style-src 'self' 'unsafe-inline' https://fonts.googleapis.com https://cdn.jsdelivr.net;
font-src 'self' https://fonts.gstatic.com https://cdn.jsdelivr.net;
img-src 'self' data: https:;
connect-src 'self';
frame-ancestors 'self';
form-action 'self';
base-uri 'self';データストレージ
Deno KV
- 保存時の暗号化(Deno Deployプラットフォームによる)
- デプロイメントごとのデータ分離
- セッション、トークン、レート制限のTTL自動期限切れ
OWASP Top 10 対策
01
アクセス制御の不備
役割ベースアクセス制御(admin/client)、クライアントごとのデータ分離、セッション検証
02
暗号化の失敗
HTTPS必須、PBKDF2-SHA512パスワードハッシュ(60万反復)、保存時暗号化(D1/KV)
03
インジェクション
パラメータ化クエリ(KV)、入力検証、HTMLエスケープ出力
04
安全でない設計
多層防御、セキュリティファーストのアーキテクチャ、脅威モデリング
05
セキュリティ設定ミス
セキュリティヘッダー(CSP、X-Frame-Options等)、安全なデフォルト
06
脆弱なコンポーネント
Deno依存関係監査、最小限の外部依存、定期的な更新
07
認証の失敗
MFA/TOTP、マジックリンク、パスワードポリシー、レート制限
08
データ整合性の失敗
デジタル署名済みデプロイ(Deno Deploy)、CI/CD整合性チェック
09
ログ記録の失敗
セキュリティイベントログ、監査証跡、異常検知
10
SSRF
外部リクエストの検証、許可リストベースのDNSクエリ