|
| 1 | +<!doctype html> |
| 2 | +<html lang="en"> |
| 3 | +<head> |
| 4 | + <meta charset="utf-8"> |
| 5 | + <meta name="viewport" content="width=device-width, initial-scale=1"> |
| 6 | + <meta name="description" content="Phasmid is a local-only coercion-aware storage research prototype and the reference implementation of the Janus Eidolon System."> |
| 7 | + <meta property="og:title" content="Phasmid — Janus Eidolon System"> |
| 8 | + <meta property="og:description" content="A local-only coercion-aware storage research prototype for controlled disclosure experiments."> |
| 9 | + <meta property="og:type" content="website"> |
| 10 | + <meta property="og:image" content="../images/Phasmid_banner.jpg"> |
| 11 | + <title>Phasmid — Janus Eidolon System</title> |
| 12 | + <style> |
| 13 | + :root { |
| 14 | + --bg: #080a0f; |
| 15 | + --panel: #101522; |
| 16 | + --panel-2: #151d2c; |
| 17 | + --text: #eef3ff; |
| 18 | + --muted: #aab6cc; |
| 19 | + --line: rgba(255,255,255,.12); |
| 20 | + --accent: #91d6c3; |
| 21 | + --accent-2: #c7a5ff; |
| 22 | + --warn: #ffcf7a; |
| 23 | + --shadow: 0 24px 80px rgba(0,0,0,.45); |
| 24 | + } |
| 25 | + * { box-sizing: border-box; } |
| 26 | + body { |
| 27 | + margin: 0; |
| 28 | + font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; |
| 29 | + background: radial-gradient(circle at 20% 0%, rgba(145,214,195,.14), transparent 32%), |
| 30 | + radial-gradient(circle at 85% 10%, rgba(199,165,255,.13), transparent 30%), |
| 31 | + var(--bg); |
| 32 | + color: var(--text); |
| 33 | + line-height: 1.65; |
| 34 | + } |
| 35 | + a { color: var(--accent); text-decoration: none; } |
| 36 | + a:hover { text-decoration: underline; } |
| 37 | + .wrap { width: min(1120px, calc(100% - 40px)); margin: 0 auto; } |
| 38 | + header { padding: 22px 0; border-bottom: 1px solid var(--line); position: sticky; top: 0; backdrop-filter: blur(16px); background: rgba(8,10,15,.74); z-index: 10; } |
| 39 | + nav { display: flex; align-items: center; justify-content: space-between; gap: 20px; } |
| 40 | + .brand { font-weight: 800; letter-spacing: .04em; } |
| 41 | + .links { display: flex; gap: 18px; flex-wrap: wrap; font-size: 14px; color: var(--muted); } |
| 42 | + .hero { padding: 88px 0 48px; } |
| 43 | + .hero-grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: 40px; align-items: center; } |
| 44 | + .eyebrow { color: var(--accent); text-transform: uppercase; letter-spacing: .16em; font-size: 13px; font-weight: 700; } |
| 45 | + h1 { font-size: clamp(44px, 7vw, 82px); line-height: .95; margin: 18px 0; letter-spacing: -.06em; } |
| 46 | + .lead { font-size: clamp(18px, 2.3vw, 24px); color: var(--muted); max-width: 760px; } |
| 47 | + .actions { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 30px; } |
| 48 | + .btn { display: inline-flex; align-items: center; justify-content: center; padding: 12px 18px; border-radius: 999px; border: 1px solid var(--line); background: rgba(255,255,255,.04); color: var(--text); font-weight: 700; } |
| 49 | + .btn.primary { background: linear-gradient(135deg, var(--accent), var(--accent-2)); color: #08100e; border: none; } |
| 50 | + .card { background: linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,.03)); border: 1px solid var(--line); border-radius: 28px; padding: 26px; box-shadow: var(--shadow); } |
| 51 | + .hero-card img { width: 100%; border-radius: 20px; border: 1px solid var(--line); display: block; } |
| 52 | + .tagrow { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 18px; } |
| 53 | + .tag { border: 1px solid var(--line); border-radius: 999px; padding: 6px 10px; color: var(--muted); font-size: 13px; } |
| 54 | + section { padding: 48px 0; } |
| 55 | + h2 { font-size: clamp(28px, 4vw, 44px); line-height: 1.1; letter-spacing: -.04em; margin: 0 0 16px; } |
| 56 | + .section-lead { color: var(--muted); max-width: 780px; margin-bottom: 24px; } |
| 57 | + .grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; } |
| 58 | + .grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; } |
| 59 | + .mini h3 { margin: 0 0 8px; font-size: 20px; } |
| 60 | + .mini p { margin: 0; color: var(--muted); } |
| 61 | + .terminal { background: #05070b; border: 1px solid var(--line); border-radius: 18px; padding: 18px; overflow-x: auto; color: #d9fce9; } |
| 62 | + code, pre { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; } |
| 63 | + .warning { border-color: rgba(255,207,122,.34); background: rgba(255,207,122,.08); } |
| 64 | + .warning strong { color: var(--warn); } |
| 65 | + footer { padding: 42px 0 64px; color: var(--muted); border-top: 1px solid var(--line); margin-top: 32px; } |
| 66 | + @media (max-width: 860px) { |
| 67 | + .hero-grid, .grid-2, .grid-3 { grid-template-columns: 1fr; } |
| 68 | + header { position: static; } |
| 69 | + .links { display: none; } |
| 70 | + } |
| 71 | + </style> |
| 72 | +</head> |
| 73 | +<body> |
| 74 | + <header> |
| 75 | + <nav class="wrap"> |
| 76 | + <div class="brand">Phasmid</div> |
| 77 | + <div class="links"> |
| 78 | + <a href="#overview">Overview</a> |
| 79 | + <a href="#architecture">Architecture</a> |
| 80 | + <a href="#quickstart">Quick Start</a> |
| 81 | + <a href="https://github.com/01rabbit/Phasmid">GitHub</a> |
| 82 | + </div> |
| 83 | + </nav> |
| 84 | + </header> |
| 85 | + |
| 86 | + <main> |
| 87 | + <section class="hero"> |
| 88 | + <div class="wrap hero-grid"> |
| 89 | + <div> |
| 90 | + <div class="eyebrow">Janus Eidolon System</div> |
| 91 | + <h1>Local-only coercion-aware storage.</h1> |
| 92 | + <p class="lead">Phasmid is a field-evaluation research prototype for controlled disclosure experiments under practical risks such as device seizure, compelled access, and over-disclosure.</p> |
| 93 | + <div class="actions"> |
| 94 | + <a class="btn primary" href="https://github.com/01rabbit/Phasmid">View on GitHub</a> |
| 95 | + <a class="btn" href="https://github.com/01rabbit/Phasmid/blob/main/docs/THREAT_MODEL.md">Threat Model</a> |
| 96 | + <a class="btn" href="https://github.com/01rabbit/Phasmid/blob/main/docs/PHASMID_ARCHITECTURE.md">Architecture</a> |
| 97 | + </div> |
| 98 | + <div class="tagrow"> |
| 99 | + <span class="tag">Research prototype</span> |
| 100 | + <span class="tag">Local-only by default</span> |
| 101 | + <span class="tag">Raspberry Pi Zero 2 W target</span> |
| 102 | + <span class="tag">Apache-2.0</span> |
| 103 | + </div> |
| 104 | + </div> |
| 105 | + <div class="card hero-card"> |
| 106 | + <img src="../images/Phasmid_banner.jpg" alt="Phasmid project banner"> |
| 107 | + </div> |
| 108 | + </div> |
| 109 | + </section> |
| 110 | + |
| 111 | + <section id="overview"> |
| 112 | + <div class="wrap"> |
| 113 | + <h2>Designed for disclosure control, not casual file encryption.</h2> |
| 114 | + <p class="section-lead">Phasmid creates and operates encrypted local containers while keeping the operating boundary explicit. It is intended for security researchers, field-risk evaluators, and local-only disclosure-control experiments.</p> |
| 115 | + <div class="grid-3"> |
| 116 | + <div class="card mini"><h3>Encrypted local vessel</h3><p>Stores payloads in a local container and uses authenticated encryption with password-derived keys.</p></div> |
| 117 | + <div class="card mini"><h3>Object-cue operation</h3><p>Uses camera/object matching as an operational access cue, not as cryptographic key material.</p></div> |
| 118 | + <div class="card mini"><h3>Controlled disclosure</h3><p>Supports workflows that separate visible disclosure from protected local state under documented assumptions.</p></div> |
| 119 | + </div> |
| 120 | + </div> |
| 121 | + </section> |
| 122 | + |
| 123 | + <section id="architecture"> |
| 124 | + <div class="wrap"> |
| 125 | + <h2>Architecture boundary</h2> |
| 126 | + <p class="section-lead">The Janus Eidolon System is organized around a two-slot local storage model, local access-key mixing, explicit restricted-action policy checks, and capture-visible UI discipline.</p> |
| 127 | + <div class="grid-2"> |
| 128 | + <div class="card mini"><h3>Local-first security boundary</h3><p><code>vault.bin</code> alone is not intended to be sufficient for normal recovery when required local state is absent.</p></div> |
| 129 | + <div class="card mini"><h3>Capture-visible restraint</h3><p>Normal UI and CLI flows avoid exposing internal disclosure structure, restricted recovery behavior, or trial order.</p></div> |
| 130 | + <div class="card mini"><h3>Best-effort metadata reduction</h3><p>Metadata review and reduction are provided as operational support, not as guaranteed sanitization.</p></div> |
| 131 | + <div class="card mini"><h3>Explicit non-claims</h3><p>Phasmid does not claim perfect deniability, forensic immunity, secure deletion on flash media, or protection from compromised hosts.</p></div> |
| 132 | + </div> |
| 133 | + </div> |
| 134 | + </section> |
| 135 | + |
| 136 | + <section id="quickstart"> |
| 137 | + <div class="wrap"> |
| 138 | + <h2>Quick start</h2> |
| 139 | + <p class="section-lead">Repository-local use is intentionally simple. The first run creates a virtual environment if needed, installs dependencies, and opens the TUI Operator Console.</p> |
| 140 | + <pre class="terminal"><code>git clone https://github.com/01rabbit/Phasmid.git |
| 141 | +cd Phasmid |
| 142 | +./phasmid</code></pre> |
| 143 | + </div> |
| 144 | + </section> |
| 145 | + |
| 146 | + <section> |
| 147 | + <div class="wrap"> |
| 148 | + <div class="card warning"> |
| 149 | + <strong>Security boundary notice.</strong> |
| 150 | + Phasmid is research software. It is not a replacement for audited full-disk encryption, hardware-backed key storage, classified-data handling procedures, or a complete answer to compelled disclosure. |
| 151 | + </div> |
| 152 | + </div> |
| 153 | + </section> |
| 154 | + </main> |
| 155 | + |
| 156 | + <footer> |
| 157 | + <div class="wrap"> |
| 158 | + <p>Phasmid — reference implementation of the Janus Eidolon System. Licensed under Apache License 2.0.</p> |
| 159 | + </div> |
| 160 | + </footer> |
| 161 | +</body> |
| 162 | +</html> |
0 commit comments