HorizOS の最大の特色は、ゼロ依存 (Zero-Dependency) の理念に基づき、外部ライブラリ由来の潜在的な脆弱性を排除した上で実装された独自の暗号およびセキュリティレイヤーにある。
OpenSSL や rustls のような複雑で巨大な外部ライブラリを使用せず、パッケージマネージャーに組み込みで TLS 1.3 クライアントを独自実装している。
- ハンドシェイクと鍵交換: 楕円曲線ディフィー・ヘルマン鍵共有 (X25519) を利用したセキュアな鍵交換。
- 暗号化通信 (AEAD): パフォーマンスと安全性を両立する ChaCha20-Poly1305 アルゴリズム。
- 鍵導出 (KDF): SHA-256 に基づく HMAC-based Extract-and-Expand Key Derivation Function (HKDF)。
- サーバー証明書検証: サーバーから送信された Ed25519 署名の証明書を、システム標準のトラストストア (
/etc/horiz/certs.pem) またはユーザー指定のルート証明書に基づき検証し、中間者攻撃 (MITM) を防止する。
- ストレッチング処理: SHA-256 ハッシュ関数を 10,000 回反復(ストレッチング)させることで、ブルートフォース攻撃やディクショナリアタックの計算コストを意図的に引き上げている。
- 定数時間比較 (Constant-time Comparison): ハッシュ値の比較時、途中で不一致が見つかっても処理を中断せず、XOR演算を用いて全バイトを最後まで評価する。これにより、処理時間の差からパスワードを推測されるタイミング攻撃を完全に無効化する。
- セキュアソルト (CSPRNG): OSの提供する乱数源
/dev/urandomから予測不能な 16 バイトのソルトを動的生成して利用する。
ネットワーク経由でダウンロードされる実行可能バイナリやアップデートファイルは、厳密な検証を経るまで実行・配置されない。
- Ed25519 署名検証: 付属の
.sig署名ファイルと、システムに組み込まれた公開鍵 (/bin/pkg.pub) を用いて Twisted Edwards 曲線上の Ed25519 署名を検証し、ファイルの出所に関する真正性とシステム書き換えの権限を確認する。 - ハッシュ整合性: 署名とあわせて SHA-512 サムによるファイルの破損・改ざんチェックが行われる。
- アトミックリスワップ (TOCTOU対策): 単一ファイルへのダウンロードと検証を一時ファイルに対して行い、全てに合格した場合のみ
renameシステムコールによって原子的に対象パスへ置換する。これにより、Time-of-Check to Time-of-Use 攻撃を防ぐ。 - パストラバーサル保護: パッケージの指定名や出力パスに
/や..の使用を検知した場合は即時ブロックを行う。
- 特権分離:
/bin/initは認証成功直後に特権を破棄 (setuid/setgid) し、不必要な root 権限のままシェルが実行されるのを防ぐ。 - マウントセキュリティ: 仮想ファイルシステム (
/proc等) はMS_NOSUID,MS_NOEXEC,MS_NODEVオプションを付与してマウントされ、システム情報領域からの特権昇格や不正なバイナリ実行を防止する。 - シンボリックリンク攻撃対策: ログの書き込み時など、予測可能なパスを扱う際は事前にシンボリックリンクでないか確認し、権限を悪用した別ファイルの上書きを阻止する。