SDF APP 運用モデル
| 著者 | 日付 | 変更内容 |
|---|---|---|
| 朝鮮王朝 | 2026-02-03 | 最初の作成 |
1. 目的
SDFアプリ(オンプレミス)環境は、インストールサーバーが明確に存在するため、識別子ベースの運用とともに**サーバー数制限(サーバースロット)**実行が必要です。
この文書は「サーバーをどのように区別するか」ではなく、サーバーの数の制限をどのように「確実に実施」するかに焦点を当てます。
つまり、IP/MACのような「変動可能な値」の代わりにサーバーが所有するキー(秘密鍵)で「登録されたサーバーであること」を証明する構造を目指します。
- ライセンス1つにつき
- 識別子3つ基本提供
- アプリ環境は**許可されたサーバー数の制限(サーバースロット)**必要
- IP/MACベースのデバイス識別は失敗事例が多く信頼性が低い →**キーに基づく検証(登録サーバーの み許可)**への移行
※ ハイブリッド運用基準は上位文書(SDFハイブリッド運用モデル)で定義されており、本文書はApp(On-Prem)環境で追加されるサーバースロット実行方式を詳細に説明します。
2. 運営基準および核心概念の定義
2.1. 運営基準
SDFは基本的に識別子中心の運用モデルに従います。
アプリ環境では、識別子運用構造の上にサーバーユニットの実行要素が追加されます。
- つまり、App 環境は業務単位 + サーバ単位の実行が同時に必要します。
| 区分 | コンテナ環境 | App(On-Prem) 環境 |
|---|---|---|
| サーバーの概念 | なし | あります |
| 制限基準 | 識別子の数のみ制限 | 識別子+ サーバースロット制限 |
| 運営単位 | 業務識別子中心 | 業務識別子 + インストールサーバー |
※ コンテナ/App 共通運用基準は識別子であり、App 環境でのみサーバースロットの実行が追加されます。
2.2 コア概念の定義
| 概念 | 意味 |
|---|---|
| ライセンスキー | 識別子数 + サーバースロット数の決定 |
| AK(Access Key) | 呼び出し主体認証シークレット |
| 識別子 | 業務単位(ポリシー/ログ/課金基準) |
| サーバースロット | 登録可能な App Server 最大台数 |
- 例示
- 識別子3つまで許可:業務システムは最大3つの業務単位で運用可能
- サーバースロット2つ許可: App Serverは最大2台までインストール/運用可能です。
3. サーバースロットの執行 (Enforcement)
- 登録: スロットの残りがある場合のみ登録を許可
- 呼び出し: 未登録サーバーリクエストのブロック
- 運用: 登録/廃棄/回避試行監査ログ記録
4. IP/MAC の制限
4.1 IPベースの限界
- IPはネットワーク構成(DHCP/NAT/再割り当てなど)により変更/共有可能です。
- そのサーバーを代表するのは難しく、サーバー数制限の実施には不適切です。
- IPはサーバーのアイデンティティというよりも「現在のネットワーク位置」に近い → サーバー台数の実行(2台/3台制限)に不正確
**結論:**サーバー登録基準をIPのみにする方式は運用リスクが大きい。
4.2 MACに基づく限界
- マルチNICサーバーはMACアドレスが複数あるため混乱が発生します
- 仮想NIC/セキュリティソリューション/ドライバー環境で代表MACが揺れる可能性があります
- Java環境でのOSインターフェース選択が不安定で失敗事例多数
- MACは一意に見えますが、仮想/複数NIC環境では代表値の選択が不安定で、スプーフィングの可能性も存在します。
結論:“MAC 1つの代表値固定”方式は誤動作/障害の可能性が高い
5. サーバー検証設計原則(To-Be)
5.1 原則
- サーバー数の制限は「サーバーを当てる問題」ではなく登録されたサーバーのみを通過させる検証問題
- サーバーを値(IP/MAC)で識別せず、サーバーが持つ秘密鍵(Private Key)「私が登録されたサーバー」であることを証明する方法が安定している
- したがって、IP/MACの代わりにプライベートキーに基づく検証構造に移行します。
- キーに基づく検証は「サーバーがキーを所有しているか(Proof of Possession)」を証明するため、ネットワーク/環境の変化に強いです。
5.2 推奨アプローチ
- **サーバー登録(Enrollment) + キーに基づく証明(Proof of Possession)**構造
- OS/ハードウェアフィンガープリンツは単独実行ではなく補助信号ロマン活用(異常徴候検出/交換確認)
つまり、Device Identification(値ベースの識別)ではなく、Device Verification(キー ベースの検証)方式に切り替えます。
6. サーバー登録および証明書ベースの実行構造(提案)
6.1 なぜ「登録」が必要なのか?
サーバーの制限をするには「このサーバーは許可されたサーバーである」という検証可能な状態値この必要
IP/MACは揺れるので、登録されたサーバーのみが保有するキー/証明書で証明
つまり、サーバースロットは「数字」ではなく**登録(状態) + 検証(通過/ブロック)**で執行されなければならない
6.2 登録ステージの詳細シナリオ
サーバースロットの実行のために、App Serverは最初に1回の登録手続きを実行します。
-
管理者(ウェブコンソール)がライセンスキーを登録する
- 識別子スロット3つを有効化
- サーバースロット N 個を有効化
-
App Serverがサーバー登録リクエスト
- アプリサーバー内部で**鍵ペア(公開鍵/秘密鍵)**生成
- 個人鍵は外部に露出してはいけません(ローカル安全保存)
- 公開鍵基盤**CSR(証明書署名要求)**生成
-
コンソール/ライセンスサーバーが登録承認
- サーバースロット残り数確認
- 承認時に「登録完了」状態を保存
- サーバースロット 1個消費(残り -1)
-
証明書の発行/インストール完了
- その後、API呼び出し時にサーバーはこの証明書で自分を証明します。
6.3 複製インストール防止(運用ポイント)
- サーバープログラム/イメージを複製しても登録されたキー/証明書がない場合は未登録サーバーで処理されて呼び出しがブロックされました
- 再インストール/交換は再登録で制御されます
- (選択) TPMバインディングによる秘密鍵の複製難易度を高めるオプションの検討
7. API 呼び出しステップの実行(各リクエスト)
運用中のAPIリクエストは、次の順序で検証されます。
検証順序
- 登録サーバーの有無確認
- AK 呼び出し主体認証
- 業務単位識別子ライセンス範囲検証
- ポリシーの適用とドキュメント変換処理
- ログ記録
サーバースロットの実行は必ず1段階(登録サーバー検 証)でブロック可能でなければならない 未登録サーバーがアクセストークン/識別子をバイパスして呼び出すのを根本的にブロックするため したがって、サーバー検証(mTLSまたは署名検証)はAPI Gatewayレベルで最初に実行される
推奨検証方式
- サーバーはクライアント証明書自分を証明する
- システムは「登録された証明書のリスト」と照合して許可の可否を決定します。
(代替) サインベースのトークン方式
mTLSが難しい環境(プロキシ/特殊ネットワーク)では、次の代替案も可能です。
- サーバーがリクエストに
nonce + timestampを含み、秘密鍵で署名 - サーバー/コンソールが登録された公開鍵で署名を検証
- 再送信攻撃を防ぐためにnonceの保存/期限処理が必要です