Retoin · 製品紹介

Secure WebCore Engine

超軽量 · 高性能 · セキュリティ重視の Java Web Server Framework

なぜ自社開発したのか

なぜ独自の WebCore Engine を開発したのか

Tomcat、Jetty、JBossなどの標準的なWASは優れたプラットフォームですが、構造や脆弱性、攻撃パターンまですべて公開されている分、攻撃対象領域も非常に広くなります。

Retoinは「簡潔さ + 制御できるコード + 予測可能なセキュリティ」を追求しています。そのため外部のスタックに依存せず、自ら制御できるWebCoreエンジンを開発しました。

概要

Secure WebCore Engine は、Retoinが自ら設計・運用している純Javaベースの超軽量 Web Server & WebSocket Engine です。

  • Servlet・JSPなしで動作するシンプルな構造
  • 最新の HTTPS / TLS スタックによる暗号化通信に対応
  • HTTPパーサー・URLのセキュアな正規化・WebSocketを自社実装
  • HtmlAutoTag による HTMLネイティブのテンプレート処理
  • Zero-dependency 構造
  • シンプルで検証可能、攻撃対象領域が非常に小さい

エンジンの構成要素

Retoin Secure WebCore Engine の構成要素

WebCore Engine ├─ HTTP Core │ ├─ HttpQ (HTTPパーサー) │ ├─ SecURL (セキュアなURL正規化) │ └─ SimURL (軽量URLパーサー) │ ├─ Session & State │ └─ HSession (メモリセッション) │ ├─ Template & View │ └─ HtmlAutoTag (HTMLネイティブ テンプレートエンジン) │ ├─ Localization │ └─ H_locale (i18nエンジン) │ ├─ Protocol Extensions │ └─ WebSocket Engine (独自WSプロトコル) │ └─ System └─ HttpStatus (HTTPステータスコード)

HtmlAutoTag

HTMLネイティブのテンプレートエンジン

HtmlAutoTag は単なるHTML生成器ではありません。既存のHTML文法をそのまま使いながら、サーバー側でのみごく薄く拡張するテンプレートエンジンです。

  • デザイナー・フロントエンド開発者は純粋な HTML / CSS だけを書く
  • if, loop and ${...} プレースホルダーで条件・繰り返し・置換を処理
  • Javaコードでは Map<String,Object> にデータを入れて渡すだけ
  • HtmlAutoTag.doit(...) の1回の呼び出しで、テンプレートのレンダリングとETag管理

例:端末リスト、権限、多言語の文言を使うテンプレート

<div if="terminal_list" class="gd_sw_terminal"> <div loop="terminal_list" class="gd_sw_vector sub1" option="${terminal_list.name}"> <div>${terminal_list.displayname}</div> </div> <div if="ADMIN" class="gd_sw_vector sub1 sub1all" option="ALL"> <span class="sub1all">ALL</span> </div> <div class="gd_sw sub1">${L_mlog.archive}</div> <div class="gd_sw_vector sub2" option="ARCHIVE_USER">${L_mlog.archive_user}</div> <div if="ADMIN" class="gd_sw_vector sub2" option="ARCHIVE_DATE">${L_mlog.archive_date}</div> </div>

JSPや複雑なテンプレート文法なしに、純粋なHTML構造のままサーバーサイドレンダリングを行います。

セキュリティ設計の考え方

Security by Simplicity

小さいことが安全

最小限の機能で攻撃対象領域を減らします。

標準スタックを使わない

自動化された攻撃ツールがエンジンの構造を認識できません。

最新の HTTPS / TLS

最新のTLSプロトコルスタック上で暗号化通信を処理します。

TOTPによる管理者認証

管理コンソールへのアクセスには、標準でTOTPの二要素認証を求めます。

自社実装

すべてのレイヤーの動作を100%理解し、制御できます。

予測可能な動作

不要な複雑さを取り除いた設計です。

管理者認証とTOTP

WebCore Engine上で動作する管理コンソールは、標準でTOTPベースの二要素認証(時間ベースのワンタイムパスワード)を使用します。

  • 管理者アカウントはID・パスワードだけではログインできず、TOTPコードが必ず必要
  • 初回設定時にTOTPシークレットを作成し、QRコード(TOTPアプリでスキャン)で簡単に登録
  • サーバー側でTOTP検証ロジックを実装し、外部の認証サービスに依存しない
  • HSession(セッションエンジン)・HtmlAutoTagテンプレート・HTTPS / TLS通信と自然に連携

※ 管理コンソールのTOTP認証フローは、Retoinが運用中の実サービスにすでに適用されており、管理アカウントの乗っ取り・セッションハイジャックのリスクを大きく減らすための基本セキュリティポリシーです。

現在と今後

Retoin Secure WebCore Engine の現在と今後

適用事例
  • Retoin公式サイト(retoin.com)
  • MAIL PRISM AI 社内システムの一部モジュール
  • 社内の自動化・管理用Webツールのエンジン

※ 特定の社内システムの詳細な構造と実装は、セキュリティ上公開していません。

エンジン性能の概要
  • メモリ使用量:Tomcatの約1/20
  • リクエスト受信からHTML応答までに呼ばれるメソッドスタックの深さがTomcatの約10% ― レイテンシとオーバーヘッドが非常に小さい
  • リクエスト処理のオーバーヘッド:数ミリ秒
  • WebSocket:数百クライアントを問題なく処理
  • Zero-dependency → ビルドとメモリの無駄がない
  • Java 8ベースでプラットフォーム互換性を最大化
今後のロードマップ
  • Router DSLと静的ファイルサーバー機能の正式化
  • エンジンのドキュメントとサンプルの提供
  • 整理したバージョンのオープンソース公開を準備
  • WS性能の強化と軽量APIゲートウェイ機能の研究