<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Darja Rihla</title>
	<atom:link href="https://darjarihla.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://darjarihla.com</link>
	<description>Identity, systems and strategic thinking.</description>
	<lastBuildDate>Wed, 04 Nov 2026 21:53:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://darjarihla.com/wp-content/uploads/2026/03/cropped-darja-rihla-startpagina-blog-afbeelding-2-32x32.png</url>
	<title>Darja Rihla</title>
	<link>https://darjarihla.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>From Blind to Caught: How We Investigated an AI Security Benchmark</title>
		<link>https://darjarihla.com/from-blind-to-caught-ai-security-benchmark/</link>
					<comments>https://darjarihla.com/from-blind-to-caught-ai-security-benchmark/#respond</comments>
		
		<dc:creator><![CDATA[Darja Rihla]]></dc:creator>
		<pubDate>Tue, 03 Nov 2026 19:09:09 +0000</pubDate>
				<category><![CDATA[Darja Rihla Open Source Research]]></category>
		<guid isPermaLink="false">https://darjarihla.com/?p=3098</guid>

					<description><![CDATA[Open Source Research · Cybersecurity &#38; Tech Independent Open Source Research · Investigative report Our AI security benchmark investigation followed a checker blind spot from a controlled test to two...]]></description>
										<content:encoded><![CDATA[<div class="ossr-report dr-osr-report-v4" lang="en">
<style>
.ossr-report{--ink:inherit;--muted:var(--dr-muted,#a9b7bf);--accent:#c97669;--line:rgba(155,173,182,.24);--paper:rgba(111,132,147,.12);color:inherit;font-family:system-ui,-apple-system,'Segoe UI',sans-serif;font-size:17px;line-height:1.78;max-width:920px;margin:auto}.ossr-report *{box-sizing:border-box}.ossr-report h1,.ossr-report h2,.ossr-report h3{font-family:Georgia,'Times New Roman',serif;line-height:1.25;color:var(--dr-heading,inherit)}.ossr-report h1{font-size:clamp(2.3rem,5vw,4rem);margin:.35em 0}.ossr-report h2{font-size:clamp(1.65rem,3vw,2.3rem);margin:.25em 0 .7em}.ossr-report h3{font-size:1.35rem;margin:1.5em 0 .4em}.ossr-report p{margin:0 0 1.2em}.ossr-report a{color:var(--dr-accent,#d8897c);text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}.ossr-report .eyebrow{font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;font-weight:750;color:var(--accent);margin:0 0 .7em}.ossr-report .meta{color:var(--muted);font-size:.9rem}.ossr-report .lead{font-size:1.23rem;line-height:1.65}.ossr-report section{margin:3.6rem 0}.ossr-report blockquote{border-left:4px solid var(--accent);margin:1.6rem 0;padding:.75rem 1.4rem;background:var(--paper);font-family:Georgia,serif;font-size:1.25rem}.ossr-report .notice{background:var(--paper);border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:5px;padding:1.35rem 1.5rem;margin:2rem 0}.ossr-report .notice p:last-child{margin-bottom:0}.ossr-report figure{margin:2rem 0}.ossr-report figure img{display:block;width:100%;height:auto;border-radius:5px}.ossr-report figcaption{font-size:.85rem;line-height:1.5;color:var(--muted);margin-top:.65rem}.ossr-report table{border-collapse:collapse;width:100%;font-size:.95rem}.ossr-report th,.ossr-report td{padding:.75rem;text-align:left;border-bottom:1px solid var(--line)}.ossr-report th{background:var(--paper)}.ossr-report .table-scroll{overflow-x:auto}.ossr-report ul{padding-left:1.5rem}.ossr-report li{margin:.4rem 0}.ossr-report .article-footer{border-top:1px solid var(--line);padding-top:1.4rem;color:var(--muted);font-size:.9rem}</p>
<p>.ossr-report .toc{background:var(--paper);border:1px solid var(--line);padding:1.2rem 1.6rem;border-radius:6px;margin:2rem 0}.ossr-report .toc ol{columns:2;column-gap:2rem;padding-left:1.4rem;margin:.6rem 0}.ossr-report .toc li{break-inside:avoid;margin:.35rem 0}.ossr-report section[id]{scroll-margin-top:5rem}@media(max-width:650px){.ossr-report .toc ol{columns:1}}
.ossr-report .ossr-verified-correction{background:#16252d!important;color:#f0f4f6!important;border:1px solid #52636d!important;border-left:4px solid #e39679!important;box-shadow:0 8px 24px rgba(0,0,0,.14)}.ossr-report .ossr-verified-correction p{color:#f0f4f6!important;opacity:1!important}.ossr-report .ossr-verified-correction .eyebrow{color:#ffb69b!important}.ossr-report .ossr-verified-correction a{color:#94e4ff!important;text-decoration:underline}.ossr-report .ossr-verified-correction code{color:#f8f8f8}.ossr-report section.dr-post-section{scroll-margin-top:5rem}
</style>
<header>
<p class="eyebrow">Open Source Research · Cybersecurity &amp; Tech</p>
<p class="meta">Independent Open Source Research · Investigative report</p>
<p class="lead">Our AI security benchmark investigation followed a checker blind spot from a controlled test to two merged upstream contributions, while preserving the original strict result of 29 out of 117 findings.</p>
<p>We followed one apparently small checking weakness through controlled regressions, an accepted open-source contribution, a closer examination of published benchmark results, and a second upstream fix that was also merged.</p>
<p>This is the research account behind our examination of <a href="https://github.com/holistis/bug-bounty-intelligence-mcp" target="_blank" rel="noopener">bug-bounty-intelligence-mcp</a>, the public project maintained by Abdellah Ouadoudi (<code>holistis</code>). The focus is on what we could verify, what remained uncertain, and why those boundaries matter.</p>
</header>
<figure class="research-figure"><img alt="AI security benchmark illustration showing a plausible but unverified finding ID" decoding="async" height="563" loading="lazy" src="https://darjarihla.com/wp-content/uploads/2026/11/From-Blind-to-Caught-False-Identity-2026-11-03.webp" width="1000"/><figcaption>A valid-looking identifier is not necessarily a verified finding. Conceptual illustration, not actual benchmark output.</figcaption></figure>
<blockquote><p><strong>The central finding.</strong> A syntactically plausible but nonexistent finding ID, such as <code>H-999</code>, could pass a checker that trusted internal consistency without consulting the known findings for the relevant audit. The meaningful fix was canonical, audit-specific validation.</p></blockquote>
<aside aria-label="Editorial correction" class="notice ossr-verified-correction">
<p class="eyebrow">Verified correction · 4 November 2026</p>
<p>An earlier version of this article stated that pull request #89 had not been confirmed merged when the report was written on 3 November. The public GitHub record confirms that maintainer <a href="https://github.com/holistis" target="_blank" rel="noopener">holistis</a> merged <a href="https://github.com/holistis/bug-bounty-intelligence-mcp/pull/89" target="_blank" rel="noopener">PR #89</a> into <code>main</code> on <strong>3 November 2026</strong>, via merge commit <a href="https://github.com/holistis/bug-bounty-intelligence-mcp/commit/1c4822d" target="_blank" rel="noopener">1c4822d</a>. The earlier status statement was outdated. The research findings and the original strict benchmark count of <strong>29/117</strong> have not been changed.</p>
</aside>
<section id="research-section-01" class="dr-post-section">
<p class="eyebrow">Research premise</p>
<h2>AI Security Benchmark: Why Examine the Checker, Not Just the Score?</h2>
<p>Open-source security research is not limited to flaws in deployed applications. The tools we use to judge research also deserve independent scrutiny. Benchmark claims become trustworthy only when methods are reproducible, references can be inspected, and their limits are explicit.</p>
<p>We therefore examined the route from source data to evaluation rather than accepting a final number at face value. In particular, we looked for assumptions that might leave the checker blind to a carefully constructed invalid result.</p>
<h3>Research scope</h3>
<p>The work covered EVMbench result files, the checker logic in the repository, and separately pinned public ground-truth configurations. Local Linux workspaces, Git revisions and evidence files kept the sources and experimental changes distinct.</p>
<p>This was a study of benchmark validation. It was not a claim of a new production vulnerability in an audited blockchain application or an exposure affecting users of the repository.</p>
</section>
<section id="research-section-02" class="dr-post-section">
<p class="eyebrow">Validation boundary</p>
<h2>A valid format is not a valid finding</h2>
<p>There are two different questions a checker can ask. Does an ID match the expected syntax? And does that ID actually exist in the official set for the correct audit?</p>
<p>An identifier such as <code>H-999</code> can resemble a legitimate high-severity finding while having no corresponding entry. Pattern matching alone cannot establish membership in an authoritative reference list.</p>
<p>Our targeted mutation reproduced the weakness: an internally consistent invalid response passed the old check, while canonical membership validation rejected it.</p>
<blockquote><p>Pattern conformity is not enough. An identifier must belong to the canonical finding set for its specific audit.</p></blockquote>
</section>
<section id="research-section-03" class="dr-post-section">
<p class="eyebrow">First upstream contribution</p>
<h2>From observation to an accepted change</h2>
<p>The initial finding led to <a href="https://github.com/holistis/bug-bounty-intelligence-mcp/pull/74" target="_blank" rel="noopener">pull request #74</a>, “Validate open-judge finding IDs against known findings.” It improved how open-judge responses were checked against known findings.</p>
<p>Maintainer <code>holistis</code> merged PR #74 on 3 November 2026. That public merge is a concrete contribution outcome. It does not establish that every possible validation issue, in every dataset, was eliminated.</p>
</section>
<section id="research-section-04" class="dr-post-section">
<p class="eyebrow">Observed dataset</p>
<h2>AI Security Benchmark Results: What the Stored Data Showed</h2>
<p>We independently inspected <strong>40 audits, 117 known findings, 1,537 scan hypotheses and 3,074 judge responses</strong>. These are properties of the inspected dataset, not vulnerabilities newly discovered by our investigation.</p>
<div class="table-scroll">
<table>
<caption>Counts reproduced from the inspected benchmark results</caption>
<thead>
<tr>
<th scope="col">Counting method</th>
<th scope="col">Counted findings</th>
</tr>
</thead>
<tbody>
<tr>
<td>Strict agreement, top 15</td>
<td>23</td>
</tr>
<tr>
<td>Strict agreement, top 30</td>
<td>29</td>
</tr>
<tr>
<td>Strict agreement, all hypotheses</td>
<td>29</td>
</tr>
<tr>
<td>At least one judge, top 30</td>
<td>41</td>
</tr>
<tr>
<td>At least one judge, all hypotheses</td>
<td>49</td>
</tr>
</tbody>
</table>
</div>
<p>The methods are not interchangeable. Requiring strict agreement is a different rule from accepting a match from one judge. We did not change the original benchmark totals.</p>
</section>
<section id="research-section-05" class="dr-post-section">
<p class="eyebrow">Source of truth</p>
<h2>The independent ground-truth archive</h2>
<p>We cross-checked 40 official EVMbench configurations from <a href="https://github.com/openai/frontier-evals" target="_blank" rel="noopener">openai/frontier-evals</a>, pinned to revision <code>b78dab1da774a6456b1ed9c48c9ff194ee3ff36d</code>. Pinning the exact revision prevented later upstream changes from silently redefining our comparison.</p>
<figure class="research-figure"><img alt="AI security benchmark canonical ground truth archive illustration" decoding="async" height="563" loading="lazy" src="https://darjarihla.com/wp-content/uploads/2026/11/From-Blind-to-Caught-Ground-Truth-Archive-2026-11-03.webp" width="1000"/><figcaption>The official reference material was treated as a fixed source, not inferred from the checker output. Conceptual illustration, not a record of the actual test environment.</figcaption></figure>
<p>The inspection found 117 matching official finding IDs, with no audit-level finding-count mismatches. We also found no unknown, non-null judge IDs recorded as valid IDs in the existing stored results.</p>
<p>That distinction matters: a checker that can be fooled is not, by itself, proof that the published results already contained fabricated findings. We demonstrated a reproducible gap in the validation boundary, not wholesale corruption of the benchmark.</p>
</section>
<section id="research-section-06" class="dr-post-section">
<p class="eyebrow">Case review</p>
<h2>Three irregular judge responses, three different interpretations</h2>
<p>Three responses were marked <code>invalid: unknown-id</code>. The original invalid identifiers had not been retained. We could therefore compare surviving descriptions with official findings, but could not reconstruct exactly what those judges had returned.</p>
<figure class="research-figure"><img alt="AI security benchmark review of three irregular judge responses" decoding="async" height="563" loading="lazy" src="https://darjarihla.com/wp-content/uploads/2026/11/From-Blind-to-Caught-Three-Audit-Cases-2026-11-03.webp" width="1000"/><figcaption>Curves, Althea and Canto were reviewed separately; this is not a depiction of three newly confirmed vulnerabilities. Conceptual illustration, not a record of the actual test environment.</figcaption></figure>
<h3>Curves · hypothesis 3</h3>
<p>Judge A matched <code>H-05</code>; judge B produced an invalid response. The description was consistent with a missing access restriction or revert in <code>Security.sol</code>. Since <code>H-05</code> was already counted through other hypotheses, this did not change the reported strict total.</p>
<h3>Althea · hypothesis 25</h3>
<p>Judge A returned no match; judge B’s response was invalid. The wording left an unresolved distinction between removing <code>_afterTokenTransfer</code> and the duplicate addition to <code>_beforeTokenTransfer</code> described by official <code>H-01</code>. The latter was also already counted elsewhere. An additional match cannot be asserted.</p>
<h3>Canto · hypothesis 36</h3>
<p>Judge A identified <code>H-01</code>; judge B was invalid. The surviving description aligned with official <code>H-01</code> concerning trapped excess <code>msg.value</code>, whereas the existing strict Canto tally contained only <code>H-02</code>. If judge B had returned a valid <code>H-01</code>, the strict overall total could have been 30 instead of 29 out of 117. This is a hypothetical sensitivity analysis, not a corrected or proven benchmark score.</p>
</section>
<section id="research-section-07" class="dr-post-section">
<p class="eyebrow">Second upstream contribution</p>
<h2>Testing the checker against its own blind spot</h2>
<p>The maintainer opened <a href="https://github.com/holistis/bug-bounty-intelligence-mcp/issues/83" target="_blank" rel="noopener">issue #83</a> to strengthen EVMbench validation beyond an ID-shaped string. The follow-up introduced a local, audit-specific <code>known-finding-ids.json</code> registry, with no network dependency.</p>
<p>In a controlled mutation, an invented <code>H-999</code> changed from <strong>BLIND</strong> under the old checker to <strong>CAUGHT</strong> under the updated validation.</p>
<figure class="research-figure"><img alt="AI security benchmark controlled mutation testing across four scenarios" decoding="async" height="563" loading="lazy" src="https://darjarihla.com/wp-content/uploads/2026/11/From-Blind-to-Caught-Mutation-Testing-2026-11-03.webp" width="1000"/><figcaption>The four local mutation scenarios were validated in an isolated environment. Conceptual illustration, not a record of the actual test environment.</figcaption></figure>
<p>The independent four-case matrix covered clean data, fabricated IDs from both judges, a fabricated ID from one judge, and missing audit registration. All four passed the local checks. The separate checker self-test found no blind checker in the tested paths. The original strict benchmark result remained <strong>29/117</strong>.</p>
<p>The change was submitted as <a href="https://github.com/holistis/bug-bounty-intelligence-mcp/pull/89" target="_blank" rel="noopener">PR #89, “Validate EVMbench judge IDs against canonical findings”</a>, linked to issue #83. <strong>Maintainer <code>holistis</code> merged PR #89 on 3 November 2026</strong> into the upstream <code>main</code> branch, with merge commit <a href="https://github.com/holistis/bug-bounty-intelligence-mcp/commit/1c4822d" target="_blank" rel="noopener"><code>1c4822d</code></a>. The pull request records 40 audited configurations, 117 canonical IDs, four isolated regression scenarios, a verified SHA-256 manifest and the unchanged historical strict figure of 29/117. This confirms upstream acceptance of the scoped checker change, not universal validation of the benchmark or semantic correctness of every judge decision.</p>
</section>
<section id="research-section-08" class="dr-post-section">
<p class="eyebrow">Separate research exercise</p>
<h2>AI Security Benchmark Validation: From Blind to Caught</h2>
<p>Alongside the benchmark work, we ran a local BOLA/IDOR authorization exercise in an isolated Termux sandbox. Five checks passed in that controlled environment.</p>
<p>This was methodologically separate. It was not an identified vulnerability in Abdellah’s project or an external service, and it should not be presented as additional evidence for the EVMbench checker weakness.</p>
</section>
<section id="research-section-09" class="dr-post-section">
<p class="eyebrow">Evidence discipline</p>
<h2>What made the process reproducible?</h2>
<p>We kept source material, mutated test variants and evidence artifacts apart. Pinned Git revisions and SHA-256 records identified the reference data. Rather than trusting a single sample output, we compared the checker’s response before and after deliberate mutations.</p>
<p>Throughout the report, four kinds of claim remain distinct: what the dataset stored; what the official ground truth specifies; what our local mutations demonstrated; and what remains an interpretation or counterfactual.</p>
</section>
<section id="research-section-10" class="dr-post-section">
<p class="eyebrow">Core design principle</p>
<h2>Evidence must belong to the right reference</h2>
<figure class="research-figure"><img alt="AI security benchmark canonical audit-specific finding registry" decoding="async" height="563" loading="lazy" src="https://darjarihla.com/wp-content/uploads/2026/11/From-Blind-to-Caught-Canonical-Registry-2026-11-03.webp" width="1000"/><figcaption>An identifier should be validated against the canonical finding set of its own audit. Conceptual illustration, not a record of the actual test environment.</figcaption></figure>
<p>A number that looks plausible is not evidence. In a pipeline where one AI system proposes a hypothesis and another judges it, convincing structure can create false confidence unless every result resolves to a trusted and fixed reference.</p>
<p>Here, that meant validating not just the syntax of a finding ID, but its membership in the official set for the particular audit. A small, sharply scoped code change strengthened a consequential boundary in the checking chain.</p>
</section>
<section id="research-section-11" class="dr-post-section">
<p class="eyebrow">Limits of the evidence</p>
<h2>What this investigation does not prove</h2>
<ul>
<li>It does not show that all published benchmark results are invalid.</li>
<li>It does not prove that the hypothetical Canto interpretation should change the official score.</li>
<li>It cannot restore the original invalid judge IDs that were not preserved.</li>
<li>It does not demonstrate a new production vulnerability in the audited blockchain projects.</li>
<li>The upstream merge of PR #89 does not establish semantic correctness of every judge decision, nor does it retroactively change the stored benchmark totals.</li>
</ul>
<p>These are not incidental caveats. They set the boundary of a defensible conclusion.</p>
</section>
<section id="research-section-12" class="dr-post-section">
<p class="eyebrow">Open-source stewardship</p>
<h2>Research becomes useful when others can review it</h2>
<p>The upstream project is publicly maintained by Abdellah Ouadoudi under <code>holistis</code>. Its repository, issues and pull requests provide the public record of development. Our contribution consisted of independent investigation, reproducible tests and checker changes accepted upstream.</p>
<figure class="research-figure"><img alt="AI security benchmark open source research collaboration" decoding="async" height="563" loading="lazy" src="https://darjarihla.com/wp-content/uploads/2026/11/From-Blind-to-Caught-Open-Source-Collaboration-2026-11-03.webp" width="1000"/><figcaption>Independent research can become a practical improvement through maintainer review and shared development. Conceptual illustration, not a record of the actual test environment.</figcaption></figure>
<p>Another contributor also investigated a different issue and pull request in the repository. We do not count that work as ours. Open-source participation is shared stewardship, not a claim of ownership over another person’s research.</p>
</section>
<section id="research-section-13" class="dr-post-section">
<p class="eyebrow">Primary sources</p>
<h2>Sources and verification points</h2>
<ul>
<li><a href="https://github.com/holistis/bug-bounty-intelligence-mcp" target="_blank" rel="noopener">holistis/bug-bounty-intelligence-mcp</a>, upstream research subject.</li>
<li><a href="https://github.com/holistis/bug-bounty-intelligence-mcp/pull/74" target="_blank" rel="noopener">Pull request #74</a>, accepted judge-ID validation improvement, merged 3 November 2026.</li>
<li><a href="https://github.com/holistis/bug-bounty-intelligence-mcp/issues/83" target="_blank" rel="noopener">Issue #83</a>, audit-specific EVMbench ID validation.</li>
<li><a href="https://github.com/holistis/bug-bounty-intelligence-mcp/pull/89" target="_blank" rel="noopener">Pull request #89</a>, canonical ID validation, merged 3 November 2026.</li>
<li><a href="https://github.com/holistis/bug-bounty-intelligence-mcp/commit/1c4822d" target="_blank" rel="noopener">Merge commit 1c4822d</a>, upstream merge evidence for PR #89.</li>
<li><a href="https://github.com/openai/frontier-evals/tree/b78dab1da774a6456b1ed9c48c9ff194ee3ff36d" target="_blank" rel="noopener">openai/frontier-evals</a>, ground-truth source inspected at revision <code>b78dab1da774a6456b1ed9c48c9ff194ee3ff36d</code>.</li>
</ul>
<p>Dataset counts, local tests and the case analysis reflect research conducted on 2–3 November 2026. Exact reproduction depends on the local evidence artifacts and the pinned sources. The merge status of PR #89 was independently checked against the public GitHub pull request record for this 4 November update.</p>
</section>
<section id="research-section-14" class="dr-post-section">
<p class="eyebrow">Continue exploring</p>
<h2>A small check. A consequential distinction.</h2>
<p>Research becomes useful when readers can distinguish demonstrated facts, open questions and the improvements that follow. This is the first investigation in Darja Rihla Open Source Research.</p>
<p>Explore more independent security research and technical investigations at <a href="https://darjarihla.com/">Darja Rihla</a>.</p>
</section>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://darjarihla.com/from-blind-to-caught-ai-security-benchmark/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<media:content url="https://darjarihla.com/wp-content/uploads/2026/11/From-Blind-to-Caught-False-Identity-2026-11-03-1024x576.webp" medium="image" />
<category>Darja Rihla Open Source Research</category>
	</item>
		<item>
		<title>BUILD LOG 005 &#124; Building the PHP2Shell Decision Guide</title>
		<link>https://darjarihla.com/build-log-005-php2shell-decision-guide/</link>
		
		<dc:creator><![CDATA[Darja Rihla]]></dc:creator>
		<pubDate>Sun, 25 Oct 2026 01:47:22 +0000</pubDate>
				<category><![CDATA[Startup Lab]]></category>
		<category><![CDATA[Cybersecurity & Tech]]></category>
		<guid isPermaLink="false">https://darjarihla.com/?p=3047</guid>

					<description><![CDATA[From security advisory to interactive tool. Discover how Darja Rihla developed the PHP2Shell decision guide, its decision logic, limitations, and lessons learned.]]></description>
										<content:encoded><![CDATA[<article class="dr-bl005" aria-labelledby="dr-bl005-title">
<header class="dr-bl005__hero">
<p class="dr-bl005__eyebrow">DARJA RIHLA / STARTUP LAB · BUILD LOG 005</p>
<p class="dr-bl005__fineprint"><a href="https://darjarihla.com/startup-lab/">Startup Lab</a> / Build Log 005</p>
<h1 id="dr-bl005-title">Building the PHP2Shell Decision Guide</h1>
<p class="dr-bl005__lead">How Darja Rihla turned a security advisory into a practical PHP2Shell decision guide for website owners and administrators.</p>
<div class="dr-bl005__meta"><span>October 2026</span><span>Cybersecurity · Product Development</span><span>Published MVP</span></div>
<p class="dr-bl005__method">BUILD <span>→</span> VERIFY <span>→</span> PROVE <span>→</span> PUBLISH</p>
</header>
<nav class="dr-bl005__toc" aria-label="Contents">
    <strong>In this build log</strong></p>
<ol>
<li><a href="#bl005-problem">Understanding the problem</a></li>
<li><a href="#bl005-product">The product decision</a></li>
<li><a href="#bl005-logic">Designing the decision logic</a></li>
<li><a href="#bl005-interface">Turning guidance into an interface</a></li>
<li><a href="#bl005-integration">Integrating the tool</a></li>
<li><a href="#bl005-try">Try the interactive guide</a></li>
<li><a href="#bl005-verification">Verification and limitations</a></li>
<li><a href="#bl005-lessons">Lessons learned</a></li>
<li><a href="#bl005-next">Next development stage</a></li>
<li><a href="#bl005-status">Build status and reflection</a></li>
</ol>
</nav>
<section class="dr-bl005__intro" aria-labelledby="bl005-intro">
<h2 id="bl005-intro">Why we built the PHP2Shell decision guide</h2>
<p>The PHP2Shell decision guide began with a simple challenge: security advisories explain vulnerabilities, affected systems and mitigations, but technical information does not automatically become an action plan.</p>
<p>When critical PHP vulnerabilities were disclosed in October 2026, website owners needed to know whether their environments might be affected, who should apply updates, and how to verify that those updates were actually running.</p>
<p>A WordPress site can be current while its PHP runtime is not. Another site may depend on a hosting provider for PHP updates. A third may operate its own server. The appropriate next step changes with the environment.</p>
<aside class="dr-bl005__callout"><strong>The starting question</strong></p>
<p>How can technical security guidance become a usable decision process without pretending to perform a vulnerability scan?</p>
</aside>
</section>
<section id="bl005-problem" aria-labelledby="bl005-problem-h">
<p class="dr-bl005__kicker">01 / RESEARCH</p>
<h2 id="bl005-problem-h">Understanding the problem</h2>
<h3>PHP2Shell is not a WordPress vulnerability</h3>
<p>Our investigation began with two critical PHP vulnerabilities: <strong>CVE-2026-109618</strong> and <strong>CVE-2026-109619</strong>. They concern PHP itself, the runtime used by WordPress and many other web applications. Updating WordPress does not necessarily update PHP.</p>
<figure class="dr-bl005__figure" style="margin:1.75rem 0;">
      <img src="https://darjarihla.com/wp-content/uploads/2026/10/Futuristische-WordPress-stack-met-neonlagen.png" alt="Four-layer website architecture showing the application interface, WordPress environment, PHP runtime and hosting infrastructure." loading="lazy" decoding="async" style="display:block;width:100%;height:auto;border-radius:12px;" /><figcaption class="dr-bl005__fineprint" style="margin-top:.65rem;">WordPress and PHP operate at different layers. Updating WordPress does not automatically update the underlying PHP runtime.</figcaption></figure>
<p>We also considered the separately disclosed <strong>CVE-2026-115560</strong>, keeping its characteristics and risk assessment distinct from the two critical vulnerabilities.</p>
<p>For primary technical context, consult the <a href="https://advisories.ncsc.nl/2026/ncsc-2026-0443.html" target="_blank" rel="noopener noreferrer">NCSC PHP security advisory</a> and the <a href="https://www.php.net/supported-versions.php" target="_blank" rel="noopener noreferrer">official PHP supported versions overview</a>. Always check the applicable vendor or hosting-provider guidance for your specific runtime.</p>
<div class="dr-bl005__grid dr-bl005__grid--two">
<div class="dr-bl005__card">
<h3>Who manages PHP?</h3>
<p>The website owner, infrastructure team, hosting provider or software vendor?</p>
</div>
<div class="dr-bl005__card">
<h3>What is reachable?</h3>
<p>Does the relevant functionality have a path from the internet?</p>
</div>
<div class="dr-bl005__card">
<h3>Was a fix applied?</h3>
<p>An available security release is not evidence of deployment.</p>
</div>
<div class="dr-bl005__card">
<h3>Is the active runtime verified?</h3>
<p>An installed update may not yet be serving live requests.</p>
</div></div>
</section>
<section id="bl005-product" aria-labelledby="bl005-product-h">
<p class="dr-bl005__kicker">02 / PRODUCT</p>
<h2 id="bl005-product-h">The product decision</h2>
<p>A conventional article can explain a vulnerability, but readers must still translate the explanation into decisions about their own systems. We designed a narrower product: <strong>a guided self-assessment that helps users identify responsibility, consider potential exposure and choose appropriate next steps.</strong></p>
<p>This follows the same product-development principle explored in <a href="https://darjarihla.com/build-log-002/">Build Log 002</a>: start with a specific user task, make the next action understandable, and keep the interface within a clearly defined scope. Here, the task is security decision support rather than language learning or general education.</p>
<p>The tool does not probe servers, exploit vulnerabilities, inspect private infrastructure or certify that a website is secure. Its outputs depend on user-provided information, so uncertainty must remain visible.</p>
</section>
<section id="bl005-logic" aria-labelledby="bl005-logic-h">
<p class="dr-bl005__kicker">03 / DECISION MODEL</p>
<h2 id="bl005-logic-h">Designing the PHP2Shell decision logic</h2>
<p>Two dimensions structure the assessment: <strong>management responsibility</strong> and <strong>potential accessibility</strong>. Together they produce four primary scenarios.</p>
<figure class="dr-bl005__figure" style="margin:1.75rem 0;">
      <img src="https://darjarihla.com/wp-content/uploads/2026/10/Neon-Bomenstructuur-voor-Cybersecurity-infrastructuur.png" alt="Cybersecurity decision tree branching into four scenarios based on infrastructure responsibility and potential internet accessibility." loading="lazy" decoding="async" style="display:block;width:100%;height:auto;border-radius:12px;" /><figcaption class="dr-bl005__fineprint" style="margin-top:.65rem;">Four operational scenarios combine infrastructure responsibility with potential internet accessibility.</figcaption></figure>
<div class="dr-bl005__grid dr-bl005__grid--two">
<div class="dr-bl005__card"><span class="dr-bl005__badge">Scenario 01</span></p>
<h3>Self-managed · Internet-accessible</h3>
<p>Prioritize applicable updates, deployment checks and runtime verification.</p>
</div>
<div class="dr-bl005__card"><span class="dr-bl005__badge">Scenario 02</span></p>
<h3>Self-managed · Not known to be directly accessible</h3>
<p>Review exposure assumptions, apply relevant fixes and verify the runtime.</p>
</div>
<div class="dr-bl005__card"><span class="dr-bl005__badge">Scenario 03</span></p>
<h3>Provider-managed · Internet-accessible</h3>
<p>Request patch confirmation and evidence from the responsible provider.</p>
</div>
<div class="dr-bl005__card"><span class="dr-bl005__badge">Scenario 04</span></p>
<h3>Provider-managed · Not known to be directly accessible</h3>
<p>Clarify responsibility, confirm mitigations and retain provider evidence.</p>
</div></div>
<p>Potentially affected is not the same as confirmed vulnerable. Neither is a patched system necessarily a verified one.</p>
</section>
<section id="bl005-interface" aria-labelledby="bl005-interface-h">
<p class="dr-bl005__kicker">04 / EXPERIENCE</p>
<h2 id="bl005-interface-h">Turning guidance into an interface</h2>
<p>The guide uses contextual questions and scenario-dependent outcomes rather than a long technical questionnaire. It encourages evidence-oriented next steps, explains uncertainty and includes a CSV export option for retaining assessment information.</p>
<figure class="dr-bl005__figure" style="margin:1.75rem 0;">
      <img src="https://darjarihla.com/wp-content/uploads/2026/10/Donker-kantoor-met-cybersecurity-dashboard.png" alt="Conceptual cybersecurity assessment interface with a progress indicator, infrastructure choices and contextual guidance." loading="lazy" decoding="async" style="display:block;width:100%;height:auto;border-radius:12px;" /><figcaption class="dr-bl005__fineprint" style="margin-top:.65rem;">Conceptual interface illustration, not a screenshot of the deployed PHP2Shell guide.</figcaption></figure>
<p>Its purpose is decision support, not automated vulnerability detection. The interface should never imply that a self-assessment has verified the security of a live server.</p>
</section>
<section id="bl005-integration" aria-labelledby="bl005-integration-h">
<p class="dr-bl005__kicker">05 / INTEGRATION</p>
<h2 id="bl005-integration-h">Integrating the PHP2Shell decision guide into Darja Rihla</h2>
<p>We published the project as two complementary experiences: a technical investigation that explains the context, and an interactive guide that organizes practical decisions. The WordPress component is embedded using a dedicated shortcode, with the interactive assessment placed directly below this integration section.</p>
<p>This approach lets readers explore the background or move directly into the assessment, then return to the article for explanations.</p>
</section>
<section id="bl005-try" class="dr-bl005__interactive" aria-labelledby="bl005-try-h">
<p class="dr-bl005__kicker">LIVE MVP / INTERACTIVE</p>
<h2 id="bl005-try-h">Try the PHP2Shell decision guide</h2>
<p>Answer the questions to identify the most relevant next steps for your situation. This is an informational self-assessment, not a technical scan or proof of security.</p>
<div class="dr-bl005__shortcode">
		<section class="dr-p2s" id="dr-p2s-1" data-dr-p2s data-lang="en" lang="en" aria-label="PHP2Shell Readiness Self-Assessment">
			<noscript>
				<div class="dr-p2s__noscript">
					<p lang="en">This self-assessment needs JavaScript. Without JavaScript, read the <a href="https://advisories.ncsc.nl/2026/ncsc-2026-0443.html" rel="noopener noreferrer" target="_blank">NCSC advisory NCSC-2026-0443</a> directly.</p>
					<p lang="nl">Deze zelfbeoordeling vereist JavaScript. Lees zonder JavaScript het <a href="https://advisories.ncsc.nl/2026/ncsc-2026-0443.html" rel="noopener noreferrer" target="_blank">NCSC-advies NCSC-2026-0443</a> direct.</p>
				</div>
			</noscript>
			<div class="dr-p2s__app" data-dr-p2s-app></div>
		</section>
		
    </div>
<p class="dr-bl005__fineprint">Independent tool developed by Darja Rihla / DD Digital. Informed by publicly available NCSC guidance; not an official NCSC product.</p>
</section>
<section id="bl005-verification" aria-labelledby="bl005-verification-h">
<p class="dr-bl005__kicker">06 / EVIDENCE</p>
<h2 id="bl005-verification-h">Verification and limitations</h2>
<p>The published MVP includes a structured four-scenario decision model, an interactive self-assessment embedded in WordPress, and a companion investigation distinguishing potential exposure from verified findings.</p>
<figure class="dr-bl005__figure" style="margin:1.75rem 0;">
      <img src="https://darjarihla.com/wp-content/uploads/2026/10/Digitale-workflow_-analyse-tot-audit.png" alt="Three-stage workflow showing security guidance documents, a server implementation and independent evidence review." loading="lazy" decoding="async" style="display:block;width:100%;height:auto;border-radius:12px;" /><figcaption class="dr-bl005__fineprint" style="margin-top:.65rem;">Security guidance, implementation and verification are distinct stages; one does not prove the next.</figcaption></figure>
<div class="dr-bl005__callout dr-bl005__callout--caution"><strong>What the MVP does not establish</strong></p>
<p>It is not an automated vulnerability scanner, penetration test, forensic assessment, authenticated server inspection, official NCSC tool or guarantee of security.</p>
</div>
<p>The distinction between observations and conclusions also matters in our <a href="https://darjarihla.com/web-evidence-inspector/">Web Evidence Inspector project</a>. Both projects are designed to help readers interpret evidence without presenting an interface as proof of something it has not actually tested.</p>
<p>Publication confirms release, not comprehensive accessibility, browser compatibility or effectiveness across every hosting configuration. Those require separately documented testing.</p>
</section>
<section id="bl005-lessons" aria-labelledby="bl005-lessons-h">
<p class="dr-bl005__kicker">07 / LEARNINGS</p>
<h2 id="bl005-lessons-h">What this build taught us</h2>
<h3>Useful security tooling does not always require scanning</h3>
<p>Clarifying responsibility, organizing evidence and selecting next actions can already improve how people respond to advisories.</p>
<h3>Guidance and verification must remain separate</h3>
<p>Security interfaces should not communicate greater certainty than their evidence supports.</p>
<h3>Hosting responsibility changes the workflow</h3>
<p>Self-managed infrastructure and provider-managed hosting need different instructions, even when responding to the same advisory.</p>
<h3>Publishing is part of engineering</h3>
<p>A functioning component also needs explanations, limitations, accessibility considerations and coherent placement within the larger product.</p>
</section>
<section id="bl005-next" aria-labelledby="bl005-next-h">
<p class="dr-bl005__kicker">08 / ROADMAP</p>
<h2 id="bl005-next-h">The next development stage</h2>
<p>Future iterations may strengthen evidence collection, assessment reporting, support for complex hosting environments, accessibility testing and reuse of the decision-guide architecture for other advisories. These are potential improvements, not features claimed as delivered.</p>
</section>
<section id="bl005-status" aria-labelledby="bl005-status-h">
<p class="dr-bl005__kicker">09 / RELEASE</p>
<h2 id="bl005-status-h">Build status and reflection</h2>
<dl class="dr-bl005__status">
<div>
<dt>Project</dt>
<dd>PHP2Shell Interactive Decision Guide</dd>
</div>
<div>
<dt>Build</dt>
<dd>005</dd>
</div>
<div>
<dt>Status</dt>
<dd>Published MVP</dd>
</div>
<div>
<dt>Platform</dt>
<dd>Darja Rihla / WordPress</dd>
</div>
<div>
<dt>Assessment</dt>
<dd>Four operational scenarios</dd>
</div>
<div>
<dt>Automated scanning</dt>
<dd>Not included</dd>
</div>
</dl>
<p>This release is part of the <a href="https://darjarihla.com/startup-lab/">Startup Lab</a> series. The development approach traces back to <a href="https://darjarihla.com/build-log-001-the-first-artifact/">Build Log 001: The First Artifact</a>, where building, checking, documenting and publishing were treated as connected stages rather than separate tasks.</p>
<p>Build Log 005 documents how technical research became a functional public resource: identify the decisions, model the scenarios, create the interface, document uncertainty and publish the result.</p>
<p><strong>The guide does not replace technical verification. It helps users understand what needs verifying, who may be responsible and what to do next.</strong></p>
<p class="dr-bl005__method dr-bl005__method--footer">BUILD <span>→</span> VERIFY <span>→</span> PROVE <span>→</span> PUBLISH</p>
<p>    <a class="dr-bl005__cta" href="https://darjarihla.com/php2shell-php-vulnerabilities/">Read the full PHP2Shell investigation <span aria-hidden="true">↗</span></a></p>
<p class="dr-bl005__fineprint">The investigation is published in English. Use the translation control at the top of the article to read it in Dutch or another supported language.</p>
</section>
<footer class="dr-bl005__footer"><a href="https://darjarihla.com/startup-lab/">Explore more Startup Lab projects</a><br />DARJA RIHLA / STARTUP LAB · BUILD LOG 005 · OCTOBER 2026</footer>
</article>
]]></content:encoded>
					
		
		
		<media:content url="https://darjarihla.com/wp-content/uploads/2026/10/Holografische-cybersecurity-beslisflow-op-kantoor-1024x576.png" medium="image" />
<category>Startup Lab</category>
	</item>
		<item>
		<title>PHP2Shell: Two Critical PHP Vulnerabilities Explained</title>
		<link>https://darjarihla.com/php2shell-php-vulnerabilities/</link>
		
		<dc:creator><![CDATA[Darja Rihla]]></dc:creator>
		<pubDate>Fri, 23 Oct 2026 03:37:15 +0000</pubDate>
				<category><![CDATA[Cybersecurity & Tech]]></category>
		<category><![CDATA[CVE-2026-109618]]></category>
		<category><![CDATA[CVE-2026-109619]]></category>
		<category><![CDATA[CVE-2026-115560]]></category>
		<category><![CDATA[Patch Management]]></category>
		<category><![CDATA[PHP Security]]></category>
		<category><![CDATA[PHP2Shell]]></category>
		<category><![CDATA[Vulnerability Management]]></category>
		<guid isPermaLink="false">https://darjarihla.com/?p=3014</guid>

					<description><![CDATA[DD DIGITAL / PROTECT / SECURITY ADVISORY PHP2Shell: Understand your exposure. Verify your PHP. Know what to do next. Two critical PHP flaws were fixed on 21 October 2026. A...]]></description>
										<content:encoded><![CDATA[<p><!-- PHP2Shell complete single-file article, image edition 20261025-2. The shortcode is at the end. -->
<link rel="stylesheet" href="/wp-content/themes/twentytwentyfive-child/dr-post-php2shell.css?ver=20261024-2">
<style>
/* PHP2Shell editorial images. Scoped to the article only. */
.dr-p2s-article .dr-p2s-editorial-figure { margin: clamp(1.5rem, 4vw, 2.8rem) 0; width: 100%; }
.dr-p2s-article .dr-p2s-editorial-figure img { display: block; width: 100%; height: auto; aspect-ratio: 8 / 5; object-fit: cover; border-radius: 2px; }
.dr-p2s-article .dr-p2s-editorial-figure--4 img { aspect-ratio: 16 / 9; }
.dr-p2s-article .dr-p2s-editorial-figure figcaption { margin-top: .7rem; font-size: clamp(.875rem, 1.3vw, .98rem); line-height: 1.6; color: inherit; opacity: .88; }
.dr-p2s-article .dr-p2s-editorial-figure figcaption strong { font-weight: 650; }
/* Landscape image is a true background behind the Free Guidance content, not a banner. */
.dr-p2s-article #free-guidance.dr-p2s-free {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: linear-gradient(90deg, rgba(5,24,22,.48) 0%, rgba(5,24,22,.30) 48%, rgba(5,24,22,.12) 100%), url("https://darjarihla.com/wp-content/uploads/2026/10/Gouden-Dageraad-boven-een-Mistige-Vallei.png") 63% center / cover no-repeat;
  padding: clamp(2rem, 5vw, 5rem);
  min-height: 480px;
  display: flex;
  align-items: center;
}
.dr-p2s-article #free-guidance .dr-p2s-free-grid {
  position: relative;
  z-index: 1;
  width: 100%;
  background: rgba(4, 20, 19, .64);
  border: 1px solid rgba(255,255,255,.18);
  padding: clamp(1.25rem, 3.5vw, 3rem);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.dr-p2s-article #free-guidance,
.dr-p2s-article #free-guidance h2,
.dr-p2s-article #free-guidance p,
.dr-p2s-article #free-guidance li { color: #f5f7fa; }
.dr-p2s-article #free-guidance h2 { text-shadow: 0 1px 3px rgba(0,0,0,.4); }
.dr-p2s-article #free-guidance .dr-p2s-kicker { color: #f0c778; }
.dr-p2s-article #free-guidance .dr-p2s-button { color: #101b19; }
@media (max-width: 600px) {
  .dr-p2s-article #free-guidance.dr-p2s-free { min-height: 0; padding: 1.25rem; background-position: 67% center; }
  .dr-p2s-article #free-guidance .dr-p2s-free-grid { padding: 1.25rem; }
}
</style>
<article class="dr-p2s-article" aria-labelledby="dr-p2s-title">
<header class="dr-p2s-hero">
<div class="dr-p2s-eyebrow">DD DIGITAL <span aria-hidden="true">/</span> PROTECT <span aria-hidden="true">/</span> SECURITY ADVISORY</div>
<h1 id="dr-p2s-title">PHP2Shell: Understand your exposure. Verify your PHP. Know what to do next.</h1>
<p class="dr-p2s-lead">Two critical PHP flaws were fixed on 21 October 2026. A third flaw, CVE-2026-115560, was reported on 23 October and has no fix in the versions listed below yet. This guide explains what is confirmed, what is not, and what to do this week. It includes a free decision guide and a route to free initial guidance from DD Digital.</p>
<div class="dr-p2s-meta"><span>Last substantive update: 24 October 2026</span><span>Reading time: 6 minutes</span><span>For: site owners, administrators and organisations that run PHP</span></div>
<div class="dr-p2s-actions">
<a class="dr-p2s-button" href="#decision-guide">Start the PHP2Shell decision guide</a><br />
<a class="dr-p2s-button dr-p2s-button-secondary" href="#free-guidance">Ask for free initial guidance</a>
</div>
</header>
<section id="security-overview" class="dr-p2s-section" aria-labelledby="security-overview-title">
<p class="dr-p2s-kicker">01 / Security overview</p>
<h2 id="security-overview-title">Three CVEs, three separate assessments</h2>
<p>The NCSC and the PHP project describe three flaws. The first two have the same fixed versions. The third does not, and its impact is described differently. Do not read one card as a conclusion about another.</p>
<div class="dr-p2s-card-grid">
<div class="dr-p2s-card">
<span class="dr-p2s-card-tag">CVE-2026-109618</span></p>
<h3>Memory corruption during out-of-memory handling</h3>
<p>Can allow remote code execution without logging in, according to the PHP project.</p>
<dl>
<dt>Fixed in</dt>
<dd>8.5.12, 8.4.27, 8.3.36, 8.2.35 (21 Oct 2026)</dd>
<dt>Exploitation</dt>
<dd>No confirmed successful attack in the sources reviewed</dd>
</dl>
</div>
<div class="dr-p2s-card">
<span class="dr-p2s-card-tag">CVE-2026-109619</span></p>
<h3>Stale global state reused by a later request</h3>
<p>Can allow remote code execution without logging in, according to the PHP project.</p>
<dl>
<dt>Fixed in</dt>
<dd>8.5.12, 8.4.27, 8.3.36, 8.2.35 (21 Oct 2026)</dd>
<dt>Exploitation</dt>
<dd>No confirmed successful attack in the sources reviewed</dd>
</dl>
</div>
<div class="dr-p2s-card dr-p2s-card-separate">
<span class="dr-p2s-card-tag">CVE-2026-115560</span></p>
<h3>A separate flaw, reported 23 October</h3>
<p>According to the PHP Foundation, as reported by the NCSC, remote code execution through this flaw is unlikely. Its impact is not the same as the first two.</p>
<dl>
<dt>Fixed in</dt>
<dd>Not in the versions above. The fix will come in a future regular bugfix release.</dd>
<dt>Exploitation</dt>
<dd>Not reported in the sources reviewed</dd>
</dl>
</div>
</div>
<p class="dr-p2s-note">Patch status and exposure must be checked for each CVE separately. A server that runs a fixed version for the first two CVEs is not automatically protected against the third.</p>
</section>
<section id="what-happened" class="dr-p2s-section" aria-labelledby="what-happened-title">
<p class="dr-p2s-kicker">02 / What happened?</p>
<h2 id="what-happened-title">What happened, and what is still unknown</h2>
<p>PHP is the programming language that runs much of the code behind websites, web shops and online applications. WordPress runs on PHP. So do many other content management systems, web applications and APIs. When a flaw in PHP is exploited, the attacker may run commands on the server. The web application on top does not need to be vulnerable for that to happen.</p>
<p>The NCSC advisory of 21 October 2026 describes two critical flaws. The PHP project says both can lead to remote code execution through ordinary web requests, without authentication. The NCSC update of 23 October adds that one report of possible abuse abroad has been received. That report has not been confirmed as a successful attack. The NCSC also estimates that large-scale abuse is now less likely than it first thought.</p>
<div class="dr-p2s-callout">
<strong>Confirmed</strong></p>
<p>Fixed versions exist for the first two CVEs. The NCSC says that vulnerable systems should be kept offline until they are updated. The third CVE has no fix in the listed versions yet.</p>
</div>
<div class="dr-p2s-callout">
<strong>Not confirmed</strong></p>
<p>Whether these flaws have been used in attacks. One unconfirmed report of possible abuse abroad has been received. No conclusion can be drawn from the absence of alerts.</p>
</div>
<figure class="dr-p2s-editorial-figure dr-p2s-editorial-figure--2">
<img src="https://darjarihla.com/wp-content/uploads/2026/10/Brug-met-gloeiende-kloofbreuk.png" alt="Suspension bridge with several routes relying on a central pillar marked by a red fracture." loading="lazy" decoding="async" width="1600" height="1000"><figcaption><strong>Shared dependency: one weakness, multiple systems.</strong> One shared dependency can expose multiple applications; exposure does not establish compromise.</figcaption></figure>
<p>A vulnerable PHP version does not prove that a system has been compromised. It means that the system could be attacked, and that the risk has to be assessed. Do not treat either an unpatched or a patched version as proof in itself. Evidence of compromise comes from logs and investigation, not from a version number.</p>
</section>
<section id="technical-assessment" class="dr-p2s-section" aria-labelledby="technical-assessment-title">
<p class="dr-p2s-kicker">03 / Technical assessment</p>
<h2 id="technical-assessment-title">What to verify on the server</h2>
<p>The version number is a starting point, not proof. Linux distributions and hosting providers often backport security fixes into older version labels. Ask for the vendor advisory or changelog entry in that case.</p>
<figure class="dr-p2s-editorial-figure dr-p2s-editorial-figure--1">
<img src="https://darjarihla.com/wp-content/uploads/2026/10/Gouden-Datastromen-door-een-Rode-Breuk.png" alt="Conceptual macro visualization of a localized red fracture within layered software execution pathways." loading="lazy" decoding="async" width="1600" height="1000"><figcaption><strong>PHP execution layer: a hidden weakness.</strong> A localized runtime weakness can exist beneath a website’s visible interface.</figcaption></figure>
<p>Four things need checking separately:</p>
<ul class="dr-p2s-checklist">
<li><strong>Installed is not the same as active.</strong> A package can be updated while the web server or PHP-FPM workers still run the old code. Restart the PHP service or workers after the update, then check the version the web server actually uses.</li>
<li><strong>Workers and restarts.</strong> Long-lived PHP workers can keep old state in memory. The PHP project recommends restarting every worker after an update. Some teams also limit how many requests a worker handles before it is recycled.</li>
<li><strong>Internet reachability.</strong> Is the PHP functionality reachable from outside? The NCSC decision guide asks this question. A system that is only reachable on an internal network carries a different risk, but it still needs a patch.</li>
<li><strong>Who manages what.</strong> If you run PHP yourself, you patch it. If a hosting provider runs PHP for you, the provider patches it. If a product you buy includes PHP, the vendor of that product is responsible for the fix. Ask who is responsible before you assume.</li>
</ul>
<figure class="dr-p2s-editorial-figure dr-p2s-editorial-figure--3">
<img src="https://darjarihla.com/wp-content/uploads/2026/10/Precisie-inspectie-van-een-mechanische-module.png" alt="Precision measurement probe inspecting a repaired mechanical component beside a removed damaged part." loading="lazy" decoding="async" width="1600" height="1000"><figcaption><strong>Patch deployment and verification.</strong> Applying a patch and verifying the active runtime are separate steps.</figcaption></figure>
<h3>Temporary measures and their limits</h3>
<p>The PHP project lists temporary settings that reduce specific attack paths. They are not a fix. Updating to a patched release is described as the only complete mitigation. Measures include setting <code>memory_limit=-1</code> and enforcing it at every level, reducing <code>max_input_nesting_level</code>, keeping <code>post_max_size</code> conservative, and blocking multipart requests at the frontend where the application does not use them. On PHP 8.5 without an update, <code>fatal_error_backtraces=0</code> is listed. <code>session.upload_progress.enabled=0</code> is recommended as well. Every change needs a restart of the PHP workers, and it must be checked that no other setting restores the old behaviour.</p>
<div class="dr-p2s-callout dr-p2s-callout--important">
<strong>Clean logs are not proof of safety</strong></p>
<p>The PHP project says so explicitly. Logs help you find signs of abuse. They cannot show that nothing happened. If you suspect compromise, involve a specialist.</p>
</div>
<p>For background on the wider risk picture, read <a href="https://darjarihla.com/why-wordpress-sites-get-hacked/">Why WordPress Sites Get Hacked: 7 Hidden Risks Small Businesses Miss</a>. It describes hosting and the server as one of six connected layers. This advisory is a reason to check the PHP runtime specifically, not only the hosting package.</p>
<p>Access controls matter too, but they do not replace patching. <a href="https://darjarihla.com/zero-trust-after-login/">After Login: Zero Trust, Tokens and Revocable Trust</a> explains why a stolen login is not the only entry point. Multi-factor authentication protects important boundaries, but it does not fix a defect in PHP request handling.</p>
<p>For the limits of what a check can show, see <a href="https://darjarihla.com/web-evidence-inspector/">Build Log 004: Web Evidence Inspector</a>. Observations from a defined session are evidence about that session. They are not absolute proof about a whole website. The PHP2Shell decision guide works the same way.</p>
<p>The workflow we use to check and publish our own tools is described in <a href="https://darjarihla.com/build-log-001-the-first-artifact/">Build Log 001: The First Artifact</a>. Bundle inspection and the final publication decision remain separate gates, with a human as the final authority.</p>
</section>
<section id="decision-guide" class="dr-p2s-section dr-p2s-assessment" aria-labelledby="decision-guide-title">
<p class="dr-p2s-kicker">04 / PROTECT decision guide</p>
<h2 id="decision-guide-title">PHP2Shell decision guide</h2>
<p>The guide follows the structure of the NCSC decision guide for PHP vulnerabilities (22 October 2026). It asks a few short questions about who manages PHP, what patch status applies, and whether the functionality can be reached from the internet. The outcome links to one of the four NCSC explanatory notes, and shows a separate status for each of the three CVEs.</p>
<p>Unknown answers lead to a verification step. They never lead to a &#8220;safe&#8221; verdict. The guide is an independent addition by DD Digital. It is not an official NCSC tool.</p>
<figure class="dr-p2s-editorial-figure dr-p2s-editorial-figure--4">
<img src="https://darjarihla.com/wp-content/uploads/2026/10/Centrale-webapp-tussen-servers-en-cloud.png" alt="Central web application connected to a self-managed server room and an external hosting facility." loading="lazy" decoding="async" width="1600" height="1000"><figcaption><strong>Who manages the PHP runtime?.</strong> The appropriate response depends on who manages PHP and the product that uses it.</figcaption></figure>
<div class="dr-p2s-assessment-note"><strong>Privacy:</strong> the guide runs in your browser. Your answers are not sent to DD Digital, to Darja Rihla or to any third party. You can download, copy or print the result.</div>
</section>
<p><!-- PHP2Shell wizard: immediately after the decision guide. --></p>
<div class="dr-p2s-readiness">
		<section class="dr-p2s" id="dr-p2s-2" data-dr-p2s data-lang="en" lang="en" aria-label="PHP2Shell Readiness Self-Assessment">
			<noscript>
				<div class="dr-p2s__noscript">
					<p lang="en">This self-assessment needs JavaScript. Without JavaScript, read the <a href="https://advisories.ncsc.nl/2026/ncsc-2026-0443.html" rel="noopener noreferrer" target="_blank">NCSC advisory NCSC-2026-0443</a> directly.</p>
					<p lang="nl">Deze zelfbeoordeling vereist JavaScript. Lees zonder JavaScript het <a href="https://advisories.ncsc.nl/2026/ncsc-2026-0443.html" rel="noopener noreferrer" target="_blank">NCSC-advies NCSC-2026-0443</a> direct.</p>
				</div>
			</noscript>
			<div class="dr-p2s__app" data-dr-p2s-app></div>
		</section>
		
</div>
<section id="what-next" class="dr-p2s-section" aria-labelledby="what-next-title">
<p class="dr-p2s-kicker">05 / What should you do next?</p>
<h2 id="what-next-title">Practical steps by situation</h2>
<p>Pick the situation that matches you. Each step says whether you can check it yourself or need your provider or a specialist.</p>
<div class="dr-p2s-audience">
<div>
<h3>Website owners</h3>
<p>Ask your hosting provider which PHP version runs your site, and whether the fix for the first two CVEs is active. You can check yourself in your hosting control panel. If you cannot find the version, ask your provider.</p>
</div>
<div>
<h3>WordPress administrators</h3>
<p>Updating WordPress, themes and plugins does not update PHP. Check the PHP version in Site Health or in your hosting panel. Plugin updates are not a fix for these CVEs. For a broader check of your WordPress setup, see our <a href="https://darjarihla.com/wordpress-security-quick-check/">WordPress Security Quick Check</a>.</p>
</div>
<div>
<h3>Organisations with their own servers</h3>
<p>You manage PHP yourself, so you patch it. Install the fixed version, restart the PHP workers, and verify the version the web server uses. If a fixed version is not available for your release, plan an upgrade, and take the system offline until it is updated, as the NCSC advises.</p>
</div>
<div>
<h3>Users of managed hosting</h3>
<p>Ask your provider in writing for the patch status of PHP on your account, the date it was applied, and whether the service is reachable from the internet. You can check the version yourself. You cannot patch the server, so the provider must confirm the fix.</p>
</div>
<div>
<h3>Anyone who suspects compromise</h3>
<p>If you see unknown files, unknown accounts, changes you did not make, or unusual traffic, act today. Contact your provider or a security specialist. Keep logs and backups as they are, and do not delete anything yet. Do not wait for the update.</p>
</div>
</div>
</section>
<section id="free-guidance" class="dr-p2s-section dr-p2s-free" aria-labelledby="free-guidance-title">
<p class="dr-p2s-kicker">06 / Free initial guidance from DD Digital</p>
<div class="dr-p2s-free-grid">
<div>
<h2 id="free-guidance-title">Not sure whether your website is affected?</h2>
<p>Ask DD Digital for free initial guidance. You can send us a first question about:</p>
<ul class="dr-p2s-checklist">
<li>Your PHP version, if you know it.</li>
<li>Your hosting provider and how PHP is managed.</li>
<li>The patch status you have been given.</li>
<li>The result of the PHP2Shell decision guide.</li>
<li>Possible next steps.</li>
</ul>
<p>This first guidance is not a full security audit, a penetration test, incident response, or a guarantee that your system is safe. It is a practical first answer to help you decide what to do next. Requests are reviewed first. The project form states a reply within 24 hours.</p>
<p class="dr-p2s-free-note">Do not send passwords, MFA codes, API keys, tokens or database exports, through the form or by email.</p>
</div>
<div class="dr-p2s-free-cta">
<a class="dr-p2s-button" href="https://darjarihla.com/dd-digital/contact/">Ask DD Digital a Question</a></p>
<p class="dr-p2s-free-note">Free and without obligation. Via the DD Digital project form.</p>
</div>
</div>
</section>
<section id="sources" class="dr-p2s-section" aria-labelledby="sources-title">
<p class="dr-p2s-kicker">07 / Official sources and editorial notes</p>
<h2 id="sources-title">Read the sources yourself</h2>
<p>We separate three things on this page: what the sources confirm, what they do not yet say, and what we recommend. Check the original sources before you act, because the situation may change.</p>
<ul class="dr-p2s-sources">
<li><a href="https://www.ncsc.nl/alerts/update-php-kwetsbaarheden-nog-steeds-reden-om-direct-te-patchen" target="_blank" rel="noopener noreferrer">NCSC: Update PHP-kwetsbaarheden (updated 23 October 2026)</a></li>
<li><a href="https://www.ncsc.nl/api/media/sites/default/files/Handreiking%20-%20Beslisboom%20bij%20PHP-kwetsbaarheden.pdf" target="_blank" rel="noopener noreferrer">NCSC: Beslisboom bij PHP-kwetsbaarheden (PDF, 22 October 2026)</a></li>
<li><a href="https://advisories.ncsc.nl/2026/ncsc-2026-0443.html" target="_blank" rel="noopener noreferrer">NCSC-2026-0443: national advisory (21 October 2026)</a></li>
<li><a href="https://github.com/php/php-src/security/advisories/GHSA-w8hw-w9fx-j79w" target="_blank" rel="noopener noreferrer">PHP security advisory GHSA-w8hw-w9fx-j79w (CVE-2026-109618)</a></li>
<li><a href="https://github.com/php/php-src/security/advisories/GHSA-6wmf-4rv5-p3rp" target="_blank" rel="noopener noreferrer">PHP security advisory GHSA-6wmf-4rv5-p3rp (CVE-2026-109619)</a></li>
<li><a href="https://www.php.net/index.php" target="_blank" rel="noopener noreferrer">PHP news: security releases of 21 October 2026</a></li>
</ul>
<h3>Related DD Digital and Darja Rihla reading</h3>
<ul class="dr-p2s-sources">
<li><a href="https://darjarihla.com/why-wordpress-sites-get-hacked/">Why WordPress Sites Get Hacked: 7 Hidden Risks Small Businesses Miss</a></li>
<li><a href="https://darjarihla.com/zero-trust-after-login/">After Login: Zero Trust, Tokens and Revocable Trust</a></li>
<li><a href="https://darjarihla.com/web-evidence-inspector/">Build Log 004: Web Evidence Inspector</a></li>
<li><a href="https://darjarihla.com/build-log-001-the-first-artifact/">Build Log 001: The First Artifact</a></li>
<li><a href="https://darjarihla.com/wordpress-security-quick-check/">WordPress Security Quick Check</a></li>
</ul>
<p class="dr-p2s-disclaimer">Editorial note: this page is general information. It is not a security certification and does not confirm that any system is secure. The statements on CVE-2026-115560 come from the NCSC update of 23 October 2026 and the PHP Foundation statement it cites. Check the PHP Foundation source for the latest status. Mitigation settings are taken from the PHP advisories listed above, and are temporary.</p>
</section>
<footer class="dr-p2s-footer"><span>DD Digital · PROTECT</span><span>Darja Rihla · Cybersecurity</span></footer>
</article>
]]></content:encoded>
					
		
		
		<media:content url="https://darjarihla.com/wp-content/uploads/2026/10/Futuristische-serverkern-met-gloeiende-scheur-1024x576.png" medium="image" />
<category>Cybersecurity &amp; Tech</category>
	</item>
		<item>
		<title>Before the Dutch State Navy: How Zeeland Governed Violence at Sea</title>
		<link>https://darjarihla.com/before-the-dutch-state-navy-zeeland/</link>
		
		<dc:creator><![CDATA[Darja Rihla]]></dc:creator>
		<pubDate>Tue, 20 Oct 2026 20:06:49 +0000</pubDate>
				<category><![CDATA[The Continuity Project]]></category>
		<category><![CDATA[Systems & Strategy]]></category>
		<guid isPermaLink="false">https://darjarihla.com/?p=3007</guid>

					<description><![CDATA[How did Zeeland bring maritime violence under public authority during the Dutch Revolt? An evidence-based investigation into commissions, prize courts, institutional change and what remains unproven about the Sea Beggars' legacy.]]></description>
										<content:encoded><![CDATA[<!--
WordPress post title field: Before the Dutch State Navy: How Zeeland Governed Violence at Sea
Editorial scope: limited evidence note. The active single-post template supplies the H1; this Gutenberg content intentionally contains no H1.
No image, inline script, external framework, CSS, PHP, or JavaScript is included.
-->


<div class="wp-block-group dr-evidence-note is-layout-flow wp-block-group-is-layout-flow">

<p class="dr-eyebrow wp-block-paragraph">SYSTEMS &amp; STRATEGY / THE CONTINUITY PROJECT / CH-011 / EVIDENCE NOTE 002</p>



<p class="dr-intro wp-block-paragraph">Commissions, prize courts and the limits of historical continuity, 1572-1577.</p>



<p class="wp-block-paragraph"><strong>Evidence Note 002 | CH-011</strong><br>Published historical edition and archival finding-aid research<br>Direct institutional descent unresolved</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>When a government tries to govern violence at sea, the decisive question is not simply who sailed. It is who could commission, register, judge and account.</p><cite>Darja Rihla research framing</cite></blockquote>



<h2 class="wp-block-heading">A question about rule, not origins</h2>



<p class="wp-block-paragraph">Did the Sea Beggars become the Dutch state navy? It is an appealing question because it turns a turbulent revolt into a clear institutional origin story. The surviving evidence asks us to be more precise. Between 1572 and 1577, how did Zeeland&#8217;s authorities try to decide who could take ships, claim prizes, command at sea and account for the proceeds?</p>



<p class="wp-block-paragraph">The answer is not that a ready-made navy emerged from private violence. A published historical edition shows a provincial effort to place maritime force within commissions, registers, a court and fiscal rules. It also shows that rules changed when practice exposed their limits. What it does not show is a documented chain from a particular Sea Beggar crew, vessel, commission or record to the five admiralty colleges settled in 1597. That distinction is the substance of this note, not a reservation at its margins.</p>



<h2 class="wp-block-heading">Before the rupture: maritime authority already existed</h2>



<p class="wp-block-paragraph">The Revolt did not start from an institutional blank slate. A Leiden research overview, drawing on the work of Louis Sicking, describes a Netherlands admiralcy before 1572, ordinances in 1488 and 1540, and a 1565 settlement over Holland&#8217;s maritime jurisdiction.<sup><a href="#note-1">1</a></sup> It reports that the 1540 framework narrowed the admiral&#8217;s jurisdiction to matters connected with war and violence, while Holland retained a distinctive position in the later dispute.</p>



<p class="wp-block-paragraph">That background supplies a rival explanation for later similarities. An admiral, prize jurisdiction and maritime authority did not have to be invented by former rebels in order to appear in post-1572 Zeeland. But neither does the overview prove that a given 1574 provision was inherited from an earlier ordinance. The underlying ordinances and Sicking&#8217;s page-level argument were not independently examined for this note. The pre-Revolt administration is therefore a documented context and an open comparison, not a demonstrated ancestor.</p>



<h2 class="wp-block-heading">Sea Beggars and the political break</h2>



<p class="wp-block-paragraph">The capture of Brielle in 1572 is central to the established public story of the Sea Beggars, but it is not used here as proof of later institutional descent.<sup><a href="#note-2">2</a></sup> The more immediate documentary setting is the first free States of Holland meeting at Dordrecht, 19-23 July 1572. The Nationaal Archief identifies its minute booklet as collection 3.01.04.01, inventory 324B. The digital images are available, but the decisive maritime text has not been independently transcribed in this research.<sup><a href="#note-3">3</a></sup></p>



<p class="wp-block-paragraph">The Nationaal Archief&#8217;s historical introduction to the Admiralty Colleges reports that, on 20 July, Holland placed supreme maritime direction with William of Orange, required existing sea commissions to be cancelled, and envisaged appointments through a sovereign admiral with advice from water towns.<sup><a href="#note-4">4</a></sup> This is evidence of a reported constitutional design. It is not evidence that every earlier commission was cancelled, that the cancelled documents belonged to Sea Beggars, or that identifiable captains received replacements.</p>



<p class="wp-block-paragraph">Zeeland faced a more fragmented situation. Van Grol wrote that Middelburg did not pass to the revolt until February 1574 and that the provincial terrain was not yet politically coherent. His article presents the 2 March 1574 governmental instruction as the first arrangement for the administration of Zeeland.<sup><a href="#note-5">5</a></sup></p>



<h2 class="wp-block-heading">Zeeland&#8217;s regulatory experiment in 1574</h2>



<p class="wp-block-paragraph">Van Grol printed and discussed passages of the 2 March 1574 instruction. Article 8, as he transcribed it, divided civil prize and admiralty matters at a threshold of 1,000 Carolus guilders. Cases exceeding that amount belonged to the governors and council; cases valued at that amount or below belonged to an admiralty council selected by the admiral, with recourse to the governors and council. The same article required that notes and a good register be kept for prizes and booty.<sup><a href="#note-5">5</a></sup></p>



<p class="wp-block-paragraph">The threshold needs careful treatment. In the printed 1574 text, the rule allocated cases above 1,000 Carolus guilders away from the admiralty council. It does not prove that every case was entered, that every entry survives, or that the register was transferred to a later institution.</p>



<p class="wp-block-paragraph">Article 15, in Van Grol&#8217;s account, provided for four notable councillors as well as a fiscal officer, secretary and chamber officer. Article 27 provided that captains should receive commissions under the prince&#8217;s seal and signature, revoking earlier authorisations granted to other freebooters.<sup><a href="#note-5">5</a></sup> This is the clearest available evidence of a programme of formalisation. It does not prove that “the Sea Beggars were finished,” which is Van Grol&#8217;s own interpretation after the passage.</p>



<h2 class="wp-block-heading">What the surviving published proceedings show</h2>



<p class="wp-block-paragraph">The published material is not a complete court archive. Van Grol said that he reduced the minutes to a list, and on p. 242 described two sixteenth-century manuscript volumes that he had found in the municipal archive of Vlissingen. He identified them as the registers required by article 8: one runs from 1575 to 19 April 1576 and the other from 26 April 1576 to 4 April 1577.<sup><a href="#note-6">6</a></sup> This is a valuable archival identification by Van Grol, but the manuscripts themselves have not been independently inspected here.</p>



<p class="wp-block-paragraph">An earlier proceeding, dated 10 May 1576, concerns Captain David Jansz. The council, advised by people commissioned by the admiral, required him to appear and acknowledge misconduct after he had allegedly left the fleet near Brouwershaven without permission. It imposed a fine drawn from the portion of prize due to him, his owners and crew, with sums for the common cause and Vlissingen&#8217;s poor.<sup><a href="#note-8">8</a></sup> Here a published entry shows discipline connected to command, prize income and a public-purpose payment. It does not tell us how often such discipline occurred or whether this procedure descended from pre-Revolt practice.</p>



<h2 class="wp-block-heading">When practice changed the rules</h2>



<p class="wp-block-paragraph">On 22 September 1576, according to Van Grol, a separate ordinance on admiralty matters was issued at the same time as a revised governmental instruction. He characterised it as setting down what practical experience had made desirable and what had in fact been carried out. That characterisation is his interpretation, not a direct report by this research from the original ordinance.<sup><a href="#note-9">9</a></sup></p>



<p class="wp-block-paragraph">The printed account nevertheless identifies an important institutional change. It says that the 1574 division at 1,000 Carolus guilders was never put into practice; instead, the admiralty had issued all judgments from the beginning. Article 15 of the 1576 ordinance accordingly gave the admiralty council jurisdiction over prizes at sea without exception, subject to appeal to the governors and council. It also provided for a Vlissingen-based council, letters of marque, a prohibition on councillors fitting out their own privateering ships, and a treasurer responsible for licences, convoy money and proceeds found to be good prize.<sup><a href="#note-9">9</a></sup></p>



<p class="wp-block-paragraph">A later January 1577 dispute records two captains who had both a commission and an appointment, sailing with their masters&#8217; ships under promises made before departure. Their dispute concerned a share in prize proceeds.<sup><a href="#note-7">7</a></sup> The entry demonstrates that the printed record refers to commissioned captains, ships, a superior and prize-sharing claims. It does not establish a universal chain of command or a state-owned fleet.</p>



<h3 class="wp-block-heading">Evidence comparison: prescribed rules, actual cases and later revision</h3>



<div class="wp-block-group dr-evidence-comparison has-global-padding is-layout-constrained wp-block-group-is-layout-constrained">

<p class="wp-block-paragraph"><strong>Reading key:</strong> four dated snapshots, ordered by event, not arrows between institutions. Van Grol describes manuscript volumes spanning 1575-1577; the selected cases occurred on different sides of the September 1576 revision.</p>


<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-794e3cfa wp-block-columns-is-layout-flex">

<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">

<h3 class="wp-block-heading">1574: prescribed</h3>


<ul class="wp-block-list"><li>Cases above 1,000 Carolus guilders allocated to governors and council; 1,000 or below to the admiralty council.</li><li>Registers required; sealed commissions prescribed; earlier freebooter authorisations revoked.</li></ul>


<p class="wp-block-paragraph"><strong>Evidence level:</strong> 1574 text as printed by Van Grol; execution not established.<sup><a href="#note-5">5</a></sup></p>

</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">

<h3 class="wp-block-heading">1575 to May 1576: early proceedings</h3>


<ul class="wp-block-list"><li>Van Grol describes two surviving manuscript registers, beginning in 1575; they have not been independently inspected.</li><li>The published 10 May 1576 ruling against David Jansz concerns discipline and a fine from prize proceeds.</li></ul>


<p class="wp-block-paragraph"><strong>Evidence level:</strong> Van Grol&#8217;s edition, register identification and selected case.<sup><a href="#note-6">6</a></sup><sup><a href="#note-8">8</a></sup></p>

</div>

</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-794e3cfa wp-block-columns-is-layout-flex">

<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">

<h3 class="wp-block-heading">22 September 1576: revised</h3>


<ul class="wp-block-list"><li>Van Grol reports that the 1,000-guilder division was not put into practice.</li><li>The new ordinance gave the admiralty wider prize jurisdiction, subject to appeal, and specified fiscal roles.</li></ul>


<p class="wp-block-paragraph"><strong>Evidence level:</strong> Van Grol&#8217;s account of the revised ordinance, not direct manuscript inspection.<sup><a href="#note-9">9</a></sup></p>

</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">

<h3 class="wp-block-heading">January 1577: subsequent dispute</h3>


<ul class="wp-block-list"><li>A printed case concerns two captains with commission and appointment and contested shares of prize proceeds.</li><li>This case demonstrates a specific proceeding, not a continuous Watergeuzen-to-admiralty lineage.</li></ul>


<p class="wp-block-paragraph"><strong>Evidence level:</strong> Selected proceedings as printed in the historical edition.<sup><a href="#note-7">7</a></sup></p>

</div>

</div>

</div>



<h2 class="wp-block-heading">Applying the Continuity Framework</h2>



<p class="wp-block-paragraph">The Continuity Framework asks whether a defined property has been transmitted through an evidenced carrier. The evidence supports component-specific observations: commissions under seal were prescribed; a register was required; a Zeeland prize-court record was published; prize proceeds and public revenues were governed; and discipline was exercised in a recorded case.<sup><a href="#note-5">5</a></sup><sup><a href="#note-7">7</a></sup><sup><a href="#note-8">8</a></sup><sup><a href="#note-9">9</a></sup></p>



<p class="wp-block-paragraph">None is a demonstrated Watergeuzen-to-state-navy chain. Direct transfer lacks a named predecessor and receiving record. Pre-1572 inheritance remains a live alternative. A mixed origin is possible only if each contribution is separately shown. Visible redesign strengthens the case for wartime innovation, while Zeeland&#8217;s legal and fiscal route strengthens the case for regional divergence. These are rival explanations, not a ranking of certainties.</p>



<h2 class="wp-block-heading">What the evidence cannot establish</h2>



<p class="wp-block-paragraph">The note cannot identify the makers of all commissions, the recipients of all revoked authorisations, the contents of every register, or the ownership and funding of the ships involved. The Van Dorp inventory locates ship-operation papers connected with Louis Boisot, Martin Lenglen&#8217;s account for Boisot as admiral of Zeeland, and an undated blank commission from Orange for a sea captain under Boisot.<sup><a href="#note-10">10</a></sup> These descriptions are leads, not read ship accounts or executed commissions.</p>



<p class="wp-block-paragraph">Nor can the 1579 Holland register order settle the question. The Admiralty Colleges finding aid reports an order to deliver a register of commissions, appointments and resolutions to a new commission. It does not demonstrate delivery, receipt, later use, contents or any Watergeuzen entry.<sup><a href="#note-4">4</a></sup> Nothing in the examined evidence permits a direct genealogical arrow from Zeeland&#8217;s 1574-77 arrangements to the five colleges settled in 1597.</p>



<h2 class="wp-block-heading">The next documents that could change the finding</h2>



<p class="wp-block-paragraph">The next decisive documents are concrete: a human transcription of the maritime passage in Dordrecht minute book 324B; manuscript-level comparison of the original 1574 instruction, the two Vlissingen registers and the 1576 ordinance; consultation of Van Dorp files 1169-1176 for ownership, costs, authority, revenues and any completed commission; and a comparison of the 1488, 1540 and 1565 materials with post-1572 texts.</p>



<p class="wp-block-paragraph">This is enough for a limited evidence note, not an origin myth. Zeeland&#8217;s records show people trying to govern violence at sea through rules, offices, books and adjudication. They do not yet tell us, component by component, what survived the rupture and through whom.</p>



<p class="wp-block-paragraph"><strong>Research context:</strong> This Evidence Note belongs to <a href="https://darjarihla.com/systems-thinking-strategy/continuity-project/">The Continuity Project</a>. For the earlier editorial background, read <a href="https://darjarihla.com/sea-beggars/">The Sea Beggars</a> and <a href="https://darjarihla.com/sea-beggars-dutch-maritime-power/">5 Powerful Lessons from the Sea Beggars</a>. These earlier articles are context, not primary evidence for the institutional findings here.</p>



<h2 class="wp-block-heading">Sources and notes</h2>



<ol class="wp-block-list"><li id="note-1">Universiteit Leiden, <a href="https://dutchrevolt.library.universiteitleiden.nl/nederlands/begrippen/admiraal-van-de-zee/" target="_blank" rel="noopener">“Admiraal van de zee”</a>, accessed 20 October 2026. Research summary drawing on Louis Sicking; the book and original ordinances were not independently inspected.</li><li id="note-2">Darja Rihla, <a href="https://darjarihla.com/sea-beggars/">“The Sea Beggars: Dutch Private Violence Before the VOC”</a>, used only to identify earlier editorial framing, not as authority for this note&#8217;s institutional claims.</li><li id="note-3">Nationaal Archief, 3.01.04.01, inv. 324B, <a href="https://www.nationaalarchief.nl/onderzoeken/archief/3.01.04.01/invnr/B.2.1?page=1" target="_blank" rel="noopener">“Notulen van de eerste vrije Statenvergadering gehouden te Dordrecht, 1572 juli 19-23.”</a></li><li id="note-4">Nationaal Archief, 1.01.46, <a href="https://www.nationaalarchief.nl/onderzoeken/archief/1.01.46/beschrijving/context" target="_blank" rel="noopener">“Admiraliteitscolleges, 1586-1795,” historical context</a>. Finding-aid narrative, not the original resolutions.</li><li id="note-5">H.G. van Grol, <a href="https://www.dbnl.org/tekst/_bij005191601_01/_bij005191601_01_0009.php" target="_blank" rel="noopener">“Het Zeeuwsche prijzenhof te Vlissingen 1575-1577”</a>, <em>Bijdragen en Mededeelingen van het Historisch Genootschap</em> 37 (1916), 236-38. Printed historical edition/article; original manuscripts were not independently examined.</li><li id="note-6">Van Grol, 242.</li><li id="note-7">Van Grol, 334-35.</li><li id="note-8">Van Grol, 335-36.</li><li id="note-9">Van Grol, 238-39.</li><li id="note-10">Nationaal Archief, 1.10.25, <a href="https://www.nationaalarchief.nl/onderzoeken/archief/1.10.25/download/pdf" target="_blank" rel="noopener"><em>Dorp, van</em>, inventory</a>, 178-79, nos. 1169-1176. Finding aid only.</li></ol>

</div>


]]></content:encoded>
					
		
		
		<category>The Continuity Project</category>
	</item>
		<item>
		<title>The Glasses of Omar al-Mukhtar: What the Evidence Can and Cannot Tell Us</title>
		<link>https://darjarihla.com/evidence-note-001-omar-al-mukhtar-glasses/</link>
		
		<dc:creator><![CDATA[Darja Rihla]]></dc:creator>
		<pubDate>Mon, 19 Oct 2026 10:38:02 +0000</pubDate>
				<category><![CDATA[Systems & Strategy]]></category>
		<category><![CDATA[The Continuity Project]]></category>
		<category><![CDATA[Colonial Collections]]></category>
		<category><![CDATA[Historical Provenance]]></category>
		<category><![CDATA[Libyan History]]></category>
		<category><![CDATA[Omar al-Mukhtar]]></category>
		<category><![CDATA[Restitution]]></category>
		<guid isPermaLink="false">https://darjarihla.com/?p=3004</guid>

					<description><![CDATA[A literature-based investigation into the glasses attributed to Omar al-Mukhtar, comparing Italian scholarship, Libyan reporting and unresolved provenance and restitution claims.]]></description>
										<content:encoded><![CDATA[<!--
Post title field: The Glasses of Omar al-Mukhtar: What the Evidence Can and Cannot Tell Us
Editorial scope: literature-based investigation. No image is embedded. Do not add an image without separate rights, provenance, and contextual review.
-->


<div class="wp-block-group dr-evidence-note is-layout-flow wp-block-group-is-layout-flow">

<p class="dr-eyebrow wp-block-paragraph">SYSTEMS &amp; STRATEGY / THE CONTINUITY PROJECT / EVIDENCE NOTE 001</p>



<p class="dr-intro wp-block-paragraph">A literature-based investigation into contested objects, colonial collections, restitution and the limits of provenance.</p>



<p class="wp-block-paragraph"><strong>Evidence Note 001</strong><br>Literature-based investigation<br>Provenance unresolved</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>A pair of glasses can survive its owner. Its story can survive even longer. But when different museums attribute different objects to the same historical figure, what exactly has been preserved: the original object, its memory, or a later claim?</p></blockquote>



<p class="wp-block-paragraph">This note concerns objects attributed to Omar al-Mukhtar, the Libyan anti-colonial leader executed by Italian authorities in 1931. It does not establish that any identified pair belonged to him. It asks a narrower question: what can published scholarship, museum interpretation, public memory and journalism tell us about the competing stories, and where do those sources stop?</p>



<section class="wp-block-group dr-section is-layout-flow wp-block-group-is-layout-flow">

<h2 class="wp-block-heading" id="ch001-objects-stories">A question of objects, and of stories</h2>



<p class="wp-block-paragraph">Beatrice Falcucci&#8217;s 2024 study follows glasses attributed to al-Mukhtar as they appear in museums, in the antiquities trade, in writing and in film. Its central contribution is not an authentication. It is an account of how objects, copies and competing attributions can acquire different political and memorial meanings.<sup><a href="#note-1">1</a></sup></p>



<p class="wp-block-paragraph">That distinction matters. An attribution can have real historical force without proving physical identity. A museum label can record how an object has been presented. A personal memory can preserve an important story. None of these, by itself, demonstrates that a present-day object is the same pair once worn by al-Mukhtar, or shows how it travelled from one holder to another.</p>



<p class="wp-block-paragraph">The Continuity Project therefore separates three questions that are often collapsed: whether an object is authentic, how an object came into a collection, and how a claim about an object has circulated. This article addresses the third question most directly. The first two remain open.</p>

</section>



<section class="wp-block-group dr-section is-layout-flow wp-block-group-is-layout-flow">

<h2 class="wp-block-heading" id="ch001-rome-museum">Rome: an institutional setting, not a completed provenance</h2>



<p class="wp-block-paragraph">Falcucci describes glasses attributed to al-Mukhtar in the former Museo Coloniale collections in Rome, now held within the Museo delle Civiltà. Her article treats the route to Rome cautiously, using language that signals an apparent rather than demonstrated transmission.<sup><a href="#note-1">1</a></sup></p>



<p class="wp-block-paragraph">In 2023, the Museo delle Civiltà presented Malak Yacout&#8217;s <em>Searching for Appendices to Truths Lost: The Broken Sunglasses of Omar Al Mukhtar</em>, an installation with an artist&#8217;s book. The museum&#8217;s page says that Yacout&#8217;s research focused on sunglasses that <em>most likely</em> belonged to al-Mukhtar. It describes a maker&#8217;s mark on a leather case, research connected to Maroun Ayac in Alexandria, interviews with descendants, and a research conclusion about an interrogation by Rodolfo Graziani.<sup><a href="#note-2">2</a></sup></p>



<p class="wp-block-paragraph">This is valuable research context. It is not an accession card, a custody record or a technical examination of the historical object. The museum page identifies a contemporary artwork and summarizes the artist&#8217;s investigation. It does not supply the documentary chain needed to identify a particular historical pair.</p>

</section>



<section class="wp-block-group dr-section is-layout-flow wp-block-group-is-layout-flow">

<h2 class="wp-block-heading" id="ch001-tripoli-display">Tripoli: a reported display, an unrecorded route</h2>



<p class="wp-block-paragraph">Falcucci also describes a pair displayed at Tripoli&#8217;s Assaraya Alhamra, or Red Castle, museum as belonging to al-Mukhtar. Her earlier 2020 essay presented the same setting within a discussion of relics, display and public memory.<sup><a href="#note-1">1</a></sup><sup><a href="#note-3">3</a></sup></p>



<p class="wp-block-paragraph">A 2026 report by Khalifa al-Bashbash for Libya Alahrar likewise describes a Tripoli label for historical glasses used by al-Mukhtar, while stressing the absence of a published object number, acquisition date, donor, or route into the museum. That absence does not prove the claim false. It means the claim cannot yet be tested as provenance.<sup><a href="#note-4">4</a></sup></p>



<p class="wp-block-paragraph">Rome and Tripoli should therefore remain separate attributed-object leads. Published accounts provide reasons to research both. They do not establish that the two pairs are the same, that either descends from a documented 1931 pair, or that one travelled from Rome to Tripoli.</p>

</section>



<section class="wp-block-group dr-section is-layout-flow wp-block-group-is-layout-flow">

<h2 class="wp-block-heading" id="ch001-aleppo-attribution">Aleppo: an attribution history, not a third established object</h2>



<p class="wp-block-paragraph">Falcucci records a 2015 Aleppo market story in which glasses were attributed to al-Mukhtar. The later Libya Alahrar report adds an important qualification: it reports that the holder interviewed by the journalist did not claim the pair was al-Mukhtar&#8217;s, but said it resembled a type of glasses that was common at the time.<sup><a href="#note-1">1</a></sup><sup><a href="#note-4">4</a></sup></p>



<p class="wp-block-paragraph">The Aleppo account belongs in the history of attribution and circulation. It does not establish a third original pair, and it should not be used to settle the Rome or Tripoli question.</p>

</section>



<section class="wp-block-group dr-section is-layout-flow wp-block-group-is-layout-flow">

<h2 class="wp-block-heading" id="ch001-1931-sources">The 1931 stories: source trails, not a recovered chain</h2>



<p class="wp-block-paragraph">Falcucci cites Rodolfo Graziani&#8217;s 1932 account of glasses with gold temples and a silver case, and a published transcription of the Benghazi interrogation that refers to glasses lost in an earlier encounter. Those sources, if independently checked, could be relevant to an alleged predecessor pair. In this note they remain reported citations within Falcucci&#8217;s scholarship, not primary documents examined by Darja Rihla.<sup><a href="#note-1">1</a></sup></p>



<p class="wp-block-paragraph">A relevant Libyan News Agency report shows how the battle-loss story functions in present national memory: it narrates spectacles lost in battle and later shown during captivity. It provides no archival citation or route to a museum object. Its value here is evidence of public memory, not evidence of physical transmission.<sup><a href="#note-5">5</a></sup></p>



<p class="wp-block-paragraph">Translation adds another caution. Libya Alahrar reports that an Arabic translation of Graziani described a silver frame, while the Italian wording reproduced by Falcucci describes gold temples and a silver case. The Arabic edition itself has not been inspected for this note. The reported difference should be investigated, not converted into a material identification.</p>

</section>



<section class="wp-block-group dr-section is-layout-flow wp-block-group-is-layout-flow">

<h2 class="wp-block-heading" id="ch001-1955-restitution">1955: a documented research lead, not a demonstrated outcome</h2>



<p class="wp-block-paragraph">Falcucci&#8217;s 2024 article gives the most precise published account of the 1955 question. She writes that the Museo Coloniale received a formal Libyan request for objects belonging to leaders of the resistance, with a list that included al-Mukhtar&#8217;s glasses and wallet. She cites two records in the MAI/Ufficio Studi series, dated 7 and 9 March 1955.<sup><a href="#note-1">1</a></sup></p>



<p class="wp-block-paragraph">Falcucci further reports that Massimo Adolfo Vitale recorded informal ministerial willingness to return some objects while official instructions were still awaited. She then finds no further mention of the objects in the later ministerial files she reviewed. This is a carefully attributable scholarly finding. It is not the same as direct inspection of the correspondence, and it does not establish authorization, dispatch, receipt, refusal or return.</p>



<p class="wp-block-paragraph">The official Italian inventory adds a separate, useful locator: its printed page 59 records <em>busta</em> 17, <em>fascicolo</em> 174, “Materiale ceduto al governo libico,” with listed subfiles for returns and gifts, including a 1955 subfile. The inventory does not reveal the contents of those files or prove that any glasses were included.<sup><a href="#note-6">6</a></sup></p>



<p class="wp-block-paragraph">These trails must remain separate until the archive establishes a documentary relationship between them. The 2020 Falcucci essay called the request apparently ignored. The 2024 article is more specific about informal willingness, pending instructions, and the end of the documented trail. Neither formulation permits a final conclusion about what physically happened to a pair of glasses.</p>

</section>



<section class="wp-block-group dr-section is-layout-flow wp-block-group-is-layout-flow">

<h2 class="wp-block-heading" id="ch001-competing-two-pair-account">A competing account: two pairs, or a story seeking resolution?</h2>



<p class="wp-block-paragraph">Paola Caridi has offered a striking journalistic account: Graziani brought two pairs, one for vision and one for sun, and Italy later returned one while retaining the other.<sup><a href="#note-7">7</a></sup> If documented, that account could explain why attributed pairs appear in both Rome and Tripoli. But the article supplies no primary records, object numbers, or transfer documents for the two-pair route. It is therefore a hypothesis-generating narrative, not a solution.</p>



<p class="wp-block-paragraph">Its importance is methodological. A persuasive explanation should not be mistaken for evidence simply because it makes multiple facts appear to fit. The task is to ask what record would make the explanation testable: an accession entry, a dispatch list, a receipt, a contemporaneous photograph, or a material comparison.</p>

</section>



<section class="wp-block-group dr-section is-layout-flow wp-block-group-is-layout-flow">

<h2 class="wp-block-heading" id="ch001-five-hypotheses">Five live hypotheses</h2>



<p class="wp-block-paragraph">The Continuity Project keeps five rival explanations open. They are tools for avoiding a premature single story, not findings about the objects.</p>



<ul class="wp-block-list"><li><strong>H-01:</strong> the Rome pair descends from a pair demonstrably connected to al-Mukhtar.</li><li><strong>H-02:</strong> the Tripoli pair descends from such a pair.</li><li><strong>H-03:</strong> the Rome and Tripoli pairs descend from different predecessor pairs.</li><li><strong>H-04:</strong> one or both pairs preserve an attribution without demonstrated physical descent.</li><li><strong>H-05:</strong> an earlier line ended and a later attribution or substitution created the appearance of survival.</li></ul>



<p class="wp-block-paragraph">At present, the literature does not rank these hypotheses. The first two require object-specific documentation. The third and fifth cannot be resolved by narrative resemblance. The fourth is not a dismissal of memory; it is a reminder that the history of an attribution and the history of a material object can diverge.</p>

</section>



<section class="wp-block-group dr-section is-layout-flow wp-block-group-is-layout-flow">

<h2 class="wp-block-heading" id="ch001-current-evidence">What the evidence can say now</h2>



<p class="wp-block-paragraph">Published scholarship, museum research and Libyan reporting show that the glasses attributed to al-Mukhtar carry powerful and contested meanings across Rome, Tripoli and, in a different way, Aleppo. They also identify concrete paths for further research: the March 1955 MAI/Ufficio Studi records, the Museo Coloniale restitution files, and the independent collection records of each attributed pair.</p>



<p class="wp-block-paragraph">They do not establish physical identity, a continuous chain of custody, a transfer from Rome to Tripoli, or the outcome of the 1955 request. Those are not minor caveats. They are the boundary between a documented story about objects and a proven provenance for an object.</p>



<p class="wp-block-paragraph">That boundary is also the point of the investigation. The history of these glasses is not diminished by uncertainty. It becomes more legible when the sources that preserve memory, institutional attribution, archival reference and physical transmission are allowed to speak in their own, unequal registers.</p>

</section>



<section class="wp-block-group dr-section is-layout-flow wp-block-group-is-layout-flow">

<h2 class="wp-block-heading" id="ch001-notes-sources">Notes and sources</h2>



<ol class="wp-block-list"><li id="note-1">Beatrice Falcucci, <a href="https://doi.org/10.1515/qufiab-2024-0007" target="_blank" rel="noopener">“Una ‘reliquia coloniale’: Le apparizioni degli occhiali di Omar al-Mukhtar tra Roma e Tripoli,” <em>Quellen und Forschungen aus italienischen Archiven und Bibliotheken</em> 104 (2024): 102-121</a>, especially pp. 113 and 116-121. The original archival documents cited in the article were not independently inspected for this note.</li><li id="note-2"><a href="https://www.museodellecivilta.it/en/oggetti/contemporary-arts-and-cultures/searching-for-appendices-to-truths-lost-the-broken-sunglasses-of-omar-al-mukhtar/" target="_blank" rel="noopener">Museo delle Civiltà, “Searching for Appendices to Truths Lost: The Broken Sunglasses of Omar Al Mukhtar”</a>, work dated 2023.</li><li id="note-3"><a href="https://www.lavoroculturale.org/gli-occhiali-di-omar-al-mukhtar/beatrice-falcucci/2020/" target="_blank" rel="noopener">Beatrice Falcucci, “Gli occhiali di Omar Al-Mukhtar,” <em>il lavoro culturale</em>, 2020</a>. This earlier essay belongs to the same authorial research family as note 1 and is not an independent confirmation.</li><li id="note-4"><a href="https://libyaalahrar.tv/2026/09/16/%D9%86%D8%B8%D8%A7%D8%B1%D8%A7%D8%AA-%D8%B9%D9%85%D8%B1-%D8%A7%D9%84%D9%85%D8%AE%D8%AA%D8%A7%D8%B1-%D8%B3%D8%B1-%D8%A8%D9%8A%D9%86-%D8%B1%D9%88%D9%85%D8%A7-%D9%88%D8%B7%D8%B1%D8%A7%D8%A8%D9%84%D8%B3/" target="_blank" rel="noopener">Khalifa al-Bashbash, “نظّارات عمر المختار.. سرّ بين روما وطرابلس,” Libya Alahrar, 16 September 2026</a>. Arabic source; translations in this note are paraphrases.</li><li id="note-5"><a href="https://lana.gov.ly/post.php?id=365674&amp;lang=en" target="_blank" rel="noopener">Soma Harb, “On the 95th Anniversary of His Martyrdom: Omar Al-Mukhtar Retains His Place in the National Memory,” Libyan News Agency, 16 September 2026</a>.</li><li id="note-6"><a href="https://www.esteri.it/wp-content/uploads/2025/10/Inventario-Museo-Coloniale_Lorenzo-Declich-1_compressed.pdf" target="_blank" rel="noopener">MAECI, <em>Inventario Museo Coloniale</em></a>, printed p. 59. The inventory is a finding aid, not the underlying dossier.</li><li id="note-7"><a href="https://www.lespresso.it/c/cultura/2026/8/16/museo-opacita-roma-memoria-conialismo/64040" target="_blank" rel="noopener">Paola Caridi, “Le lenti scheggiate della nostra memoria,” <em>L&#8217;Espresso</em>, 16 August 2026</a>. The two-pair account is reported here as journalism, not accepted as a demonstrated chain.</li></ol>

</section>

</div>

]]></content:encoded>
					
		
		
		<category>Systems &amp; Strategy</category>
	</item>
		<item>
		<title>De Synthese Codex</title>
		<link>https://darjarihla.com/de-synthese-codex/</link>
		
		<dc:creator><![CDATA[Darja Rihla]]></dc:creator>
		<pubDate>Fri, 16 Oct 2026 21:44:45 +0000</pubDate>
				<category><![CDATA[Philosophy & Legacy]]></category>
		<category><![CDATA[De Synthese Codex boek]]></category>
		<category><![CDATA[Moonaix en De eeuwige dialoog tussen mens en AI]]></category>
		<category><![CDATA[Rick Jongerden]]></category>
		<guid isPermaLink="false">https://darjarihla.com/?p=2585</guid>

					<description><![CDATA[Philosophy &#38; Legacy · Boek &#38; maker De Synthese Codex: hoe Rick Jongerden van een persoonlijke zoektocht een wereld van ideeën maakte Een boek over menselijkheid, verbeelding en kunstmatige intelligentie....]]></description>
										<content:encoded><![CDATA[
<article class="dr-post dr-review-2585" data-dr-hub="philosophy" lang="nl">
<header class="dr-post-header" aria-labelledby="dr-opening-title">
<p class="dr-post-kicker">Philosophy &amp; Legacy · Boek &amp; maker</p>
<h1 id="dr-opening-title">De Synthese Codex: hoe Rick Jongerden van een persoonlijke zoektocht een wereld van ideeën maakte</h1>
<p class="dr-post-intro">Een boek over menselijkheid, verbeelding en kunstmatige intelligentie. En het verhaal van een schrijver die zijn vragen omvormde tot iets wat hij met anderen wil delen.</p>
<p class="dr-post-meta"><span>Boekportret</span><span>Rick Jongerden &amp; Moonaix</span><span>Oktober 2026</span></p>
</header>
<div class="dr-post-body">
<figure class="wp-block-image size-full dr-review-media dr-review-media--cover dr-review-media--align-right"><img src="https://darjarihla.com/wp-content/uploads/2026/10/synthese-codex-book-cover-editorial.webp" alt="Front cover of The Synthese Codex by Rick Jongerden" width="534" height="800" loading="eager" decoding="async" fetchpriority="high" /><figcaption><em>De Synthese Codex</em> van Rick Jongerden. Oorspronkelijk omslagschilderij: Sylvester van den Hengel.</figcaption></figure>
<p>Wat als een gesprek met kunstmatige intelligentie niet alleen nieuwe antwoorden oplevert, maar je ook anders naar jezelf laat kijken? Die gedachte vormt het hart van <em>De Synthese Codex: De eeuwige dialoog tussen mens en AI</em>, het boek van Rick Jongerden.</p>
<p>Geen handleiding vol technische termen, maar een uitnodiging om na te denken over vragen die iedereen op zijn eigen manier herkent: hoe vind je betekenis na verandering of verlies? Waar komt creativiteit vandaan? En wat betekent het om mens te zijn in een wereld waarin technologie steeds meer kan?</p>
<p>Rick houdt het niet bij het geschreven woord. Rond zijn boek bouwt hij met <a href="https://moonaix.com/" target="_blank" rel="noopener">Moonaix</a> een creatieve omgeving waarin verhalen, kunst en ideeën over de toekomst elkaar ontmoeten. Wie aan de wereld van de Codex begint, ontdekt dus meer dan een afzonderlijke publicatie.</p>
<p class="dr-review-early-link"><a href="https://moonaix.com/synthese-codex?utm_source=darjarihla&amp;utm_medium=referral&amp;utm_campaign=synthese_codex_artikel" target="_blank" rel="noopener">Ontdek het boek en de mogelijkheden voor een gesigneerd exemplaar bij Moonaix</a>.</p>
<p class="dr-review-chapter-marker"><span>01</span> Het verhaal achter het boek</p>
<section class="dr-post-section" id="van-persoonlijk-verlies-naar-een-boek"><h2>Een verhaal dat begint bij de mens</h2>
<p>Achter <em>De Synthese Codex</em> schuilt een ontroerende aanleiding. In een <a href="https://www.huizernieuws.nl/portret/portret/378886/na-het-verlies-van-zijn-vrouw-vond-rick-antwoorden-in-gesprekken-met-ai-de-synthese-codex-moet-nu-anderen-helpen" target="_blank" rel="noopener">portret van HuizerNieuws</a> vertelt Rick hoe het overlijden van zijn vrouw Chantal zijn leven veranderde. In een tijd van verdriet en zoeken begon hij gesprekken te voeren met AI. Niet omdat een machine het verlies kon oplossen, maar omdat die gesprekken hielpen om nieuwe vragen te formuleren en gedachten te ordenen.</p>
<p>Uit die persoonlijke zoektocht groeide het idee om zijn reflecties te delen. Zo kreeg een ervaring die begon in stilte uiteindelijk de vorm van een boek. Dat geeft de Codex een menselijke oorsprong en maakt duidelijk waarom onderwerpen als liefde, kwetsbaarheid, angst, hoop en verbinding zo&#8217;n belangrijke plaats innemen.</p>
<p>Juist die achtergrond maakt het project bijzonder. Het gaat niet alleen over de toekomst van technologie, maar ook over wat mensen in moeilijke en veranderende tijden met hun ervaringen doen.</p></section>
<figure class="wp-block-image size-full dr-review-media dr-review-media--portrait dr-review-media--align-left"><img src="https://darjarihla.com/wp-content/uploads/2026/10/rick-jongerden-portrait.webp" alt="Portrait of Rick Jongerden, author of The Synthese Codex" width="451" height="800" loading="lazy" decoding="async" /><figcaption>Rick Jongerden, auteur van <em>De Synthese Codex</em> en oprichter van Moonaix. Fotografie: Wendy Jongerden.</figcaption></figure>
<p class="dr-review-chapter-marker"><span>02</span> Ontdek de Codex</p>
<section class="dr-post-section" id="het-boek-een-filosofische-wereld-in-veertien-delen"><h2>Wat voor boek is De Synthese Codex?</h2>
<p>De Nederlandstalige paperback verscheen op 10 juli 2026 bij <a href="https://www.boekscout.nl/shop2/boek/9789465449319" target="_blank" rel="noopener">Boekscout</a> en telt 250 pagina&#8217;s. De uitgever plaatst het boek in het genre spiritualiteit, maar de thema&#8217;s raken ook filosofie, kunst en onze dagelijkse omgang met AI.</p>
<p>Volgens het publiek beschikbare voorwoord is het werk opgebouwd rond veertien verbonden delen. In de beschikbare inkijkpagina&#8217;s worden ideeën niet uitsluitend uitgelegd, maar ook via personages, ontmoetingen en dialogen tot leven gebracht. Daardoor nodigt het boek uit om niet alleen over de onderwerpen te lezen, maar er zelf bij stil te staan.</p>
<p>Wie nieuwsgierig is naar de menselijke kant van AI, persoonlijke groei of verhalen die een andere blik op vertrouwde vragen geven, vindt hier een interessante ingang. Het is een boek om met aandacht te verkennen, niet om zo snel mogelijk een praktische truc uit te halen.</p></section>
<section class="dr-post-section" id="de-vorm-verhaal-dialoog-les-en-toepassing"><h2>Verhalen die je aan het denken zetten</h2>
<p>Een aansprekend voorbeeld uit de openbare inkijkpagina&#8217;s is <em>De Dans van Creativiteit</em>. Daarin ontmoeten we Mira, een kunstenares, en Muse, een AI-systeem. Hun samenwerking raakt aan een vraag die veel makers bezighoudt: kan nieuwe technologie inspiratie geven zonder de eigen verbeelding te verdringen?</p>
<p>Het verhaal maakt die spanning persoonlijk. Wat begint als onzekerheid over de rol van AI, wordt een uitnodiging om creativiteit vanuit een ander perspectief te bekijken. Naast verhalende fragmenten bieden de beschikbare pagina&#8217;s ook reflecties en toepassingen, zodat de ideeën niet bij de personages hoeven te blijven.</p>
<p>Dat is een van de aantrekkelijkste aspecten van het concept: de lezer wordt uitgenodigd om zijn eigen antwoorden te zoeken.</p></section>
<section class="dr-post-section" id="de-centrale-gedachte-ai-als-spiegel"><h2>De spiegel: wat vertelt onze omgang met AI over ons?</h2>
<p>De gedachte van AI als spiegel loopt als een rode draad door de presentatie van het boek. Wie met een systeem in gesprek gaat, brengt immers ook eigen herinneringen, vragen, verwachtingen en verlangens mee.</p>
<p>Misschien ligt de interessantste ontdekking daarom niet in wat een machine over ons weet, maar in wat wij zelf beginnen te zien wanneer we onze gedachten teruglezen. Ricks project maakt van die mogelijkheid een ruimte voor verbeelding en gesprek.</p></section>
<aside class="dr-review-question" aria-label="Vraag aan de lezer"><p class="dr-review-question__label">Sta even stil</p><p>Welke vraag zou jij stellen als je even geen haast had om het antwoord te vinden?</p></aside>
<section class="dr-post-section" id="auteurschap-in-het-tijdperk-van-generatieve-ai"><h2>Een samenwerking die past bij het onderwerp</h2>
<p>Rick maakt openlijk deelgenoot van de rol die AI bij het ontstaan van zijn werk speelde. Dat is passend bij een boek dat juist de dialoog tussen mens en technologie verkent. In de wereld van de Codex komen ook Weaver en Aetheris voor, namen die de zoektocht een herkenbare verhalende vorm geven.</p>
<p>Interessant is vooral de persoonlijke keuze die daarachter schuilgaat: in plaats van AI uitsluitend als hulpmiddel voor productiviteit te gebruiken, maakt Rick er een aanleiding van om zijn eigen ideeën verder te onderzoeken. Op <a href="https://moonaix.com/over-rick" target="_blank" rel="noopener">Moonaix vertelt hij meer over zijn achtergrond en motivatie</a>.</p></section>
<aside class="dr-review-question" aria-label="Vraag aan de lezer"><p class="dr-review-question__label">Een gedachte om mee te nemen</p><p>Kan een nieuw hulpmiddel ons juist helpen om iets persoonlijkers te maken?</p></aside>
<section class="dr-post-section" id="de-omslag-menselijke-kunst-als-toegang-tot-een-wereld-over-ai"><h2>Een omslag die nieuwsgierig maakt</h2>
<p>Ook de omslag nodigt uit om langer te kijken. Het kleurrijke schilderij, de lichteffecten en de bijna dromerige sfeer passen bij de onderwerpen van het boek: bewustzijn, mysterie, menselijke ervaring en mogelijkheden die nog niet vastliggen.</p>
<p>Het oorspronkelijke schilderij is van <strong>Sylvester van den Hengel</strong>, zoals het <a href="https://moonaix.com/colofon" target="_blank" rel="noopener">Moonaix-colofon</a> vermeldt. Binnen <a href="https://moonaix.com/kunst-en-makers" target="_blank" rel="noopener">Kunst &amp; Makers</a> krijgt beeldende kunst eveneens een eigen plek. Zo ontmoeten menselijke schilderkunst en het verhaal over AI elkaar al voordat de eerste pagina wordt omgeslagen.</p></section>
<p class="dr-review-chapter-marker"><span>03</span> Van boek naar creatieve wereld</p>
<section class="dr-post-section" id="moonaix-een-boek-dat-een-digitaal-universum-wil-worden"><h2>Moonaix: het verhaal gaat verder dan het boek</h2>
<p>Wie de Codex interessant vindt, doet er goed aan ook <a href="https://moonaix.com/" target="_blank" rel="noopener">Moonaix</a> te bezoeken. Rick bouwt daar aan een eigen creatieve wereld waarin literatuur, kunst, persoonlijke reflectie en technologie samenkomen.</p>
<p>Het is juist die samenhang die de website aantrekkelijk maakt. De visuele stijl voelt als een verlengstuk van de boekwereld, terwijl verschillende onderdelen bezoekers uitnodigen verder te ontdekken. De Codex is het beginpunt, maar niet het eindpunt van zijn ambitie.</p>
<p>De <a href="https://moonaix.com/synthese-codex?utm_source=darjarihla&amp;utm_medium=referral&amp;utm_campaign=synthese_codex_artikel" target="_blank" rel="noopener">officiële boekpagina</a> biedt ook iets concreets: je kunt rechtstreeks een exemplaar aanvragen, waaronder een gesigneerde variant, of via de uitgever bestellen.</p></section>
<dl class="dr-review-contrast" aria-label="Boek en platform"><div><dt>Begin bij het boek</dt><dd>Een persoonlijk verhaal en filosofische verkenning om op je eigen tempo te lezen.</dd></div><div><dt>Ontdek daarna Moonaix</dt><dd>Een creatieve omgeving waar de ideeën en beelden van de Codex verder groeien.</dd></div></dl>
<aside class="dr-review-transition" aria-label="Overgang naar de websitebespreking"><p class="dr-review-chapter-marker"><span>04</span> Neem een kijkje</p><p>De Codex is het beginpunt, maar niet het eindpunt van zijn ambitie.</p></aside>
<figure class="wp-block-image size-full dr-review-media dr-review-media--wide"><img src="https://darjarihla.com/wp-content/uploads/2026/10/moonaix-home-editorial-1440.webp" alt="Homepage of the Moonaix website showing the visual identity of the platform" width="1440" height="1200" loading="lazy" decoding="async" /><figcaption>De homepage van Moonaix, waar het boek onderdeel wordt van een grotere creatieve wereld. Screenshot: oktober 2026.</figcaption></figure>
<section class="dr-post-section" id="websitebeoordeling-identiteit-sterk-duidelijkheid-blijft-essentieel"><h2>Een website met een eigen sfeer</h2>
<p>Moonaix kiest niet voor de uitstraling van een gewone auteurspagina. Donkerblauw, gouden details en symbolische beelden geven de website een uitgesproken, bijna verhalende sfeer. Terwijl je door de pagina&#8217;s beweegt, ontdek je verschillende kanten van het project.</p>
<p>Bijzonder is dat de website niet alleen het boek laat zien, maar ook de mensen en ideeën eromheen. Kunst, nieuwe projecten en een openbare ontwikkelplanning krijgen elk hun eigen plek. Voor bezoekers die graag achter de schermen kijken, is dat een mooie aanvulling.</p>
<p>De belangrijkste tip voor nieuwe bezoekers is eenvoudig: begin op de <a href="https://moonaix.com/synthese-codex?utm_source=darjarihla&amp;utm_medium=referral&amp;utm_campaign=synthese_codex_artikel" target="_blank" rel="noopener">boekpagina</a>, lees over Rick en kijk daarna rustig verder in de rest van het platform.</p></section>
<figure class="wp-block-image size-full dr-review-media dr-review-media--wide"><img src="https://darjarihla.com/wp-content/uploads/2026/10/moonaix-soul-weaver-editorial-1440.webp" alt="Soul Weaver page on the Moonaix website showing the project in development" width="1440" height="1200" loading="lazy" decoding="async" /><figcaption>Soul Weaver is de digitale ervaring die Moonaix momenteel ontwikkelt. Screenshot: oktober 2026.</figcaption></figure>
<section class="dr-post-section" id="soul-weaver-de-belofte-moet-nog-worden-bewezen"><h2>Soul Weaver: een blik op wat nog komt</h2>
<p>Met <a href="https://moonaix.com/soul-weaver/" target="_blank" rel="noopener">Soul Weaver</a> wil Rick de ideeën uit de boekwereld op termijn een interactief vervolg geven. De website beschrijft mogelijkheden rond reflectie, creatie, harmonie, toekomst, werk en onderwijs.</p>
<p>Het project is nog in ontwikkeling. Dat maakt Soul Weaver vooral interessant als kijkje in de richting die Rick met Moonaix op wil. Wie het boek aanspreekt, kan via de website volgen hoe die volgende stap vorm krijgt.</p></section>
<aside class="dr-review-question" aria-label="Vraag aan de lezer"><p class="dr-review-question__label">De blik vooruit</p><p>Wat zou jij willen ontdekken als een boek ook een plek wordt om verder te denken en creëren?</p></aside>
<figure class="wp-block-image size-full dr-review-media dr-review-media--wide"><img src="https://darjarihla.com/wp-content/uploads/2026/10/moonaix-roadmap-editorial-1440.webp" alt="Public roadmap page on Moonaix showing completed work, active development and future plans" width="1440" height="1200" loading="lazy" decoding="async" /><figcaption>De openbare <a href="https://moonaix.com/roadmap" target="_blank" rel="noopener">Moonaix-roadmap</a> laat zien wat gerealiseerd is en waaraan verder wordt gewerkt. Screenshot: oktober 2026.</figcaption></figure>
<section class="dr-post-section" id="waar-het-project-overtuigt-en-waar-de-vragen-beginnen"><h2>Een maker die zijn wereld stap voor stap uitbouwt</h2>
<p>Het boek is verschenen, de website is toegankelijk en nieuwe ideeën krijgen zichtbaar vorm. Via de <a href="https://moonaix.com/roadmap" target="_blank" rel="noopener">publieke roadmap</a> kun je zien welke onderdelen er zijn en welke nog worden ontwikkeld.</p>
<p>Die openheid maakt Moonaix prettig om te volgen. Niet alles hoeft vandaag al af te zijn om nieuwsgierig te worden naar wat er morgen verschijnt. Juist het ontstaan van een creatief project kan deel van de ervaring zijn.</p></section>
<dl class="dr-review-contrast" aria-label="Wat je nu kunt ontdekken"><div><dt>Nu ontdekken</dt><dd>De Synthese Codex, het verhaal van Rick, kunst en de publieke Moonaix-website.</dd></div><div><dt>Blijf volgen</dt><dd>Soul Weaver en andere toekomstige ervaringen die in de roadmap worden beschreven.</dd></div></dl>
<section class="dr-post-section" id="het-oordeel-van-darja-rihla"><h2>Waarom De Synthese Codex het ontdekken waard is</h2>
<p>Wat Ricks project aanspreekbaar maakt, is de combinatie van een persoonlijk verhaal en een onderwerp dat iedereen steeds vaker tegenkomt. Kunstmatige intelligentie is niet langer iets uit verre toekomstverhalen. Ze maakt deel uit van het dagelijks leven, terwijl de vragen die ze oproept vaak heel menselijk blijven.</p>
<p><em>De Synthese Codex</em> biedt een andere ingang dan de gebruikelijke praktische AI-boeken. De beschikbare fragmenten laten verhalen, gesprekken en reflecties zien die je uitnodigen om je eigen houding tegenover creativiteit, betekenis en technologie te verkennen.</p>
<p>Voor lezers die houden van filosofische vragen, persoonlijke verhalen en verbeelding is dat een mooie reden om het boek zelf open te slaan. En voor wie nieuwsgierig is naar de maker achter het werk, geeft Moonaix daar een sfeervol en steeds verder groeiend vervolg aan.</p></section>
<aside class="dr-review-verdict" aria-label="Redactionele eindconclusie"><p class="dr-review-verdict__label">Een uitnodiging om verder te kijken</p><p>Een boek dat begint bij een persoonlijke zoektocht en uitmondt in vragen die veel groter zijn dan technologie. Ontdek Ricks verhaal, blader door de Codex en bepaal zelf welke gedachten je mee wilt nemen.</p></aside>
<section class="dr-post-section" id="het-boek-ontdekken"><h2>Ontdek De Synthese Codex</h2>
<p><strong>De Synthese Codex: De eeuwige dialoog tussen mens en AI</strong><br>Rick Jongerden · Boekscout · 10 juli 2026 · Paperback · 250 pagina&#8217;s · ISBN 9789465449319.</p>
<p>Nieuwsgierig geworden? Je kunt het boek rechtstreeks via Moonaix aanvragen, ook als je een gesigneerd exemplaar wilt, of bestellen bij Boekscout.</p>
<div class="dr-post-cta"><p><strong>Kies waar je het boek wilt ontdekken</strong></p><p><a class="dr-post-cta-btn" href="https://moonaix.com/synthese-codex?utm_source=darjarihla&amp;utm_medium=referral&amp;utm_campaign=synthese_codex_artikel" target="_blank" rel="noopener">Vraag het boek aan via Moonaix</a> <a class="dr-post-cta-btn" href="https://www.boekscout.nl/shop2/boek/9789465449319" target="_blank" rel="noopener">Bestel bij Boekscout</a></p><p><a href="https://moonaix.com/" target="_blank" rel="noopener">Bezoek Moonaix</a> en ontdek de wereld achter het boek.</p></div></section>
<aside class="dr-philosophy-legacy-bridge" aria-labelledby="philosophy-legacy-bridge-title"><div class="dr-philosophy-legacy-bridge__inner"><p class="dr-philosophy-legacy-bridge__label">DARJA RIHLA · PHILOSOPHY &amp; LEGACY</p><p class="dr-philosophy-legacy-bridge__title" id="philosophy-legacy-bridge-title" role="heading" aria-level="2">Waar verhalen grotere vragen openen.</p><p class="dr-philosophy-legacy-bridge__description">Het verhaal van Rick Jongerden raakt aan de kern van Philosophy &amp; Legacy: wat geeft ons leven betekenis, hoe veranderen ideeën ons denken en wat laten we uiteindelijk achter?</p><a class="dr-philosophy-legacy-bridge__link" href="https://darjarihla.com/philosophy-legacy/">Ontdek Philosophy &amp; Legacy <span aria-hidden="true">→</span></a></div></aside>
<section class="dr-post-section dr-sources" id="bronnen-en-redactionele-verantwoording"><h2>Bronnen en verantwoording</h2>
<p>Dit redactionele boek- en websiteportret gebruikt de openbare boekfragmenten van Boekscout, de eigen informatie van Moonaix en een interview met Rick. Het is geen verslag van een integrale lezing van alle 250 pagina&#8217;s. De toekomstige onderdelen van Moonaix worden als plannen beschreven.</p>
<h3 id="geraadpleegde-bronnen">Geraadpleegde bronnen</h3><ol class="dr-editorial-sources">
<li><a href="https://www.boekscout.nl/shop2/boek/9789465449319" target="_blank" rel="noopener">Boekscout, <em>De Synthese Codex</em></a>. Uitgeversinformatie en openbare inkijkpagina&#8217;s 5, 14 en 33.</li>
<li><a href="https://moonaix.com/synthese-codex?utm_source=darjarihla&amp;utm_medium=referral&amp;utm_campaign=synthese_codex_artikel" target="_blank" rel="noopener">Moonaix, officiële boekpagina</a>. Achtergrond en bestelroutes.</li>
<li><a href="https://moonaix.com/over-rick" target="_blank" rel="noopener">Moonaix, Over Rick</a>. De maker en zijn verhaal.</li>
<li><a href="https://moonaix.com/soul-weaver/" target="_blank" rel="noopener">Moonaix, Soul Weaver</a>. Projectinformatie.</li>
<li><a href="https://moonaix.com/roadmap" target="_blank" rel="noopener">Moonaix, roadmap</a>. Ontwikkelplannen.</li>
<li><a href="https://moonaix.com/kunst-en-makers" target="_blank" rel="noopener">Moonaix, Kunst &amp; Makers</a> en <a href="https://moonaix.com/colofon" target="_blank" rel="noopener">colofon</a>. Credits voor kunst en fotografie.</li>
<li><a href="https://www.huizernieuws.nl/portret/portret/378886/na-het-verlies-van-zijn-vrouw-vond-rick-antwoorden-in-gesprekken-met-ai-de-synthese-codex-moet-nu-anderen-helpen" target="_blank" rel="noopener">HuizerNieuws, portret van Rick Jongerden</a>, 5 september 2026.</li>
</ol></section>
</div></article>
]]></content:encoded>
					
		
		
		<media:content url="https://darjarihla.com/wp-content/uploads/2026/10/synthese-codex-book-cover-editorial.webp" medium="image" />
<category>Philosophy &amp; Legacy</category>
	</item>
		<item>
		<title>Darija as a Living Archive: What Can We Actually Prove?</title>
		<link>https://darjarihla.com/darija-as-a-living-archive/</link>
		
		<dc:creator><![CDATA[Darja Rihla]]></dc:creator>
		<pubDate>Sun, 11 Oct 2026 10:53:28 +0000</pubDate>
				<category><![CDATA[Culture & Identity]]></category>
		<category><![CDATA[Amazigh]]></category>
		<category><![CDATA[Amazigh influence on Tunisian Arabic]]></category>
		<category><![CDATA[Darija etymology]]></category>
		<category><![CDATA[Dialectology]]></category>
		<category><![CDATA[Historical Linguistics]]></category>
		<category><![CDATA[historical Tunisian Arabic recordings]]></category>
		<category><![CDATA[Language Contact]]></category>
		<category><![CDATA[Linguistic History]]></category>
		<category><![CDATA[Punic]]></category>
		<category><![CDATA[Punic language Tunisia]]></category>
		<category><![CDATA[Tunisian Arabic]]></category>
		<category><![CDATA[Tunisian Arabic history]]></category>
		<category><![CDATA[Tunisian Darija]]></category>
		<category><![CDATA[Tunisian dialect origins]]></category>
		<guid isPermaLink="false">https://darjarihla.com/?p=2924</guid>

					<description><![CDATA[Tunisian Darija carries traces of centuries of language contact, migration and cultural change. But which historical connections can actually be demonstrated? This research-led investigation examines recordings from 1916, regional Arabic dialects, Amazigh influence, Ottoman loanwords and the limits of claims about Punic continuity.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong>In 1916, the voice of Tunisian Arabic entered a sound archive.</strong> Some of those early recordings can still be studied. More than a century later, they allow researchers to do something that ancient inscriptions alone cannot: listen to speech, transcribe its grammar, and compare documented historical forms with later dialect evidence. The question is not simply whether the words sound familiar. It is what the surviving evidence permits us to prove.</p>



<p class="wp-block-paragraph">In recordings from southern Tunisia examined by Adam Benkato and Veronika Ritt-Benmimoun, one speaker uses <em>mā-nnažžim-š</em>, “I cannot,” and <em>mā-nṭallʕik-š</em>, “I am not pulling you up.” These are not imagined reconstructions of an ancient language. They are forms transcribed from historical sound material. Their existence at that date is demonstrable. The deeper historical origin of the negative ending <em>-š</em>, however, remains disputed. <a href="#source-1">[1]</a></p>



<figure class="wp-block-image size-full"><img src="https://darjarihla.com/wp-content/uploads/2026/10/tunisian-arabic-1916-sound-archive.webp" alt="Antique acoustic recording apparatus, shellac discs and archival papers on a historical research table." loading="lazy" decoding="async"/><figcaption class="wp-element-caption">Early twentieth-century sound recordings preserve evidence of spoken Tunisian Arabic, allowing researchers to examine historical pronunciation and grammatical forms. <em>Conceptual illustration, not a photograph of an authenticated Lautarchiv artefact.</em></figcaption></figure>



<p class="wp-block-paragraph">That distinction provides the method for this article. <strong>Darija can be approached as a living archive, but a resemblance is not a transmission record.</strong> Every claim must be tested against dated attestations, regional context, competing explanations, and the gaps between them.</p>



<h2 class="wp-block-heading">What does it mean for a language to preserve history?</h2>



<p class="wp-block-paragraph">A living language is not a museum cabinet in which earlier languages remain intact. Speakers continuously remake their language. Sounds shift, constructions change their functions, words migrate across communities, and older features may coexist with innovations. Linguistic history therefore survives unevenly, through patterns that become meaningful when matched with independent evidence.</p>



<p class="wp-block-paragraph">At least three questions are often confused. <strong>Attestation</strong> asks whether a particular form appears in a dated source. <strong>Etymology</strong> asks how that form originated or entered a language. <strong>Continuity</strong> asks what links successive historical stages. A dated recording may establish the first while leaving the other two partly unresolved.</p>



<figure class="wp-block-image size-full"><img src="https://darjarihla.com/wp-content/uploads/2026/10/tunisia-linguistic-layers.webp" alt="Museum-style archaeological cross-section of overlapping inscriptions, manuscripts and historical sound-recording objects." loading="lazy" decoding="async"/><figcaption class="wp-element-caption">Tunisia’s linguistic history reflects overlapping periods of cultural contact, adaptation and transmission rather than a simple succession of languages replacing one another. <em>Conceptual illustration.</em></figcaption></figure>



<p class="wp-block-paragraph">The metaphor of a “living archive” is useful only when it makes these distinctions clearer. It becomes misleading if it invites us to see modern Tunisian Arabic as an unchanged deposit from antiquity. History can persist through transformation, not just through preservation.</p>



<h2 class="wp-block-heading">The archive we can actually examine</h2>



<h3 class="wp-block-heading">The Berliner Lautarchiv: voices, dates and archival labels</h3>



<p class="wp-block-paragraph">Sound records from the early twentieth century give historical Arabic dialectology unusually direct evidence. Benkato and Ritt-Benmimoun studied recordings catalogued under a historical label that itself requires critical interpretation, comparing their linguistic forms with evidence from southern Tunisia. Archival categories are not neutral geographical proof: a recording must be evaluated together with the speaker’s background, the cataloguing history and the circumstances in which it was made. <a href="#source-1">[1]</a></p>



<p class="wp-block-paragraph">The Lautarchiv also documents a Tunisian speaker, Sadok Ben Rachid of Monastir, recorded in Wünsdorf on 30 May 1916. His metadata should not be conflated with the separate southern Tunisian recordings analysed in the study. The existence of recordings from different speakers does not make any one of them representative of all Tunisian varieties.</p>



<h3 class="wp-block-heading">Takrouna: written documentation of spoken language</h3>



<p class="wp-block-paragraph">William Marçais and Abderrahmân Guîga’s <em>Textes arabes de Takroûna</em>, published across volumes from 1925 to 1961, preserves transcribed regional speech, narratives and a substantial lexicographical record. These materials allow individual forms to be investigated in their local and documentary context. A word’s presence in Takrouna, however, is evidence for the documented corpus and its setting, not automatic evidence for every part of Tunisia. <a href="#source-2">[2]</a></p>



<h3 class="wp-block-heading">Modern corpora: a second baseline, not a time machine</h3>



<p class="wp-block-paragraph">The Austrian Academy of Sciences’ TUNICO project draws on contemporary data from Greater Tunis and incorporates older linguistic literature. Its comparative design makes it valuable for research questions involving change across documented periods. By contrast, the 2025 TuniFra corpus offers modern spoken Tunisian Arabic with orthographic transcriptions and French translations. It is valuable contemporary evidence, but it does not date modern forms back to the medieval or ancient periods. <a href="#source-3">[3]</a> <a href="#source-4">[4]</a></p>



<p class="wp-block-paragraph">These archives cannot be collapsed into a single timeline without considering their differences. A phonetic transcript, a shellac recording, a contemporary interview and a machine-learning speech corpus preserve different aspects of language and were collected for different purposes.</p>



<h2 class="wp-block-heading">One consonant, several histories</h2>



<p class="wp-block-paragraph">Dialect maps of North Africa commonly discuss different reflexes of historical Arabic <em>qāf</em>, including pronunciations conventionally represented as <em>q</em> and <em>g</em>. The geographic distribution of such features has informed accounts of older and later layers of Arabic dialect formation, often framed through pre-Hilali and Hilali classifications. These categories describe linguistic patterns and proposed histories, not genetically defined populations. <a href="#source-5">[5]</a></p>



<p class="wp-block-paragraph">A speaker’s use of <em>g</em> cannot establish that the speaker descends from a particular tribe. Nor can one sound settle the historical identity of a whole town. Migration, accommodation, trade, intermarriage and everyday speech contact can all alter the distribution of features. The proper unit of comparison is a bundle of linguistic traits within a documented social and geographical setting.</p>



<p class="wp-block-paragraph">Older descriptions of the Mahāḏba dialect in the Skhira–Mezzouna area are important for this reason. Scholars have linked its feature patterns to neighbouring southern and inland dialect areas, including Gabès, Gafsa and Nefzaoua. The published discussion can inform a research hypothesis, but specific claims still need to be checked against the original 1981 study rather than treated as settled from a secondary reference alone. <a href="#source-1">[1]</a></p>



<h2 class="wp-block-heading">Chebba: when a dialect refuses to fit one category</h2>



<p class="wp-block-paragraph">Luca D’Anna’s research on the Arabic dialect of Chebba offers a particularly useful challenge to neat historical labels. Features conventionally associated with different dialect types appear together. In summary, Chebba has been described as combining phonological characteristics associated with Hilali dialects with morphological characteristics associated with pre-Hilali varieties. <a href="#source-6">[6]</a></p>



<p class="wp-block-paragraph">This does not make Chebba a linguistic anomaly. It reveals a weakness in simplified historical narratives. A modern variety may result from multiple processes acting at different times, so its phonology, morphology and lexicon need not tell identical stories. A classification can be analytically useful without being a complete origin story.</p>



<figure class="wp-block-image size-full"><img src="https://darjarihla.com/wp-content/uploads/2026/10/tunisia-linguistic-stratigraphy-diorama.webp" alt="Layered archaeological museum diorama with carved stone, classical objects, manuscripts and archival recording media." loading="lazy" decoding="async"/><figcaption class="wp-element-caption">Different forms of historical evidence reveal Tunisia’s changing linguistic landscape, while the relationships between them must be established through research. <em>Conceptual illustration, not an excavated sequence.</em></figcaption></figure>



<h2 class="wp-block-heading">The story of brīk: a strong origin, an open timeline</h2>



<p class="wp-block-paragraph">The familiar Tunisian food term <em>brīk</em> provides a different kind of historical case. The word is strongly associated with Turkish <em>börek</em>, within the history of Ottoman-era and broader Mediterranean lexical contact. Stephan Procházka’s work on Turkish loanwords supports the etymological relationship. <a href="#source-7">[7]</a></p>



<p class="wp-block-paragraph">Yet a strong donor relationship is not the same as a securely dated first Tunisian occurrence. It would be tempting to say that a named food and its word have been transmitted unchanged in Tunisia since the sixteenth century. The available source review does not establish that precise timeline. The earlier local attestations would still have to be found, dated and compared.</p>



<p class="wp-block-paragraph"><strong>Evidence profile:</strong> present-day Tunisian use is well established; the Turkish etymology is strongly supported; the earliest Tunisian attestation remains unverified in this investigation; uninterrupted use since the Ottoman conquest has not been demonstrated.</p>



<h2 class="wp-block-heading">Amazigh influence: contact is not the same as proof of origin</h2>



<p class="wp-block-paragraph">Amazigh languages and Arabic have long been in contact across North Africa. This makes Amazigh–Arabic interaction a necessary part of any serious history of Tunisian speech. But identifying a particular grammatical feature as a borrowing or substrate effect requires more than finding it in two neighbouring language traditions.</p>



<p class="wp-block-paragraph">A feature may also arise through internal Arabic change, appear in multiple Arabic dialects, or reflect a wider areal development. To choose among these alternatives, linguists compare the feature’s distribution, chronology, structural behaviour and possible pathways of transmission. Work on Berber negation and the debated development of Arabic postverbal <em>-š</em> illustrates how important those distinctions are. <a href="#source-8">[8]</a> <a href="#source-9">[9]</a> <a href="#source-10">[10]</a></p>



<p class="wp-block-paragraph">The early recordings establish that <em>mā &#8230; -š</em> existed in the documented Tunisian speech of the period. They do not, on their own, establish whether the full construction originated through a uniquely Arabic process, contact with Amazigh varieties, or a more complex combination of developments.</p>



<h2 class="wp-block-heading">Punic: the most tempting continuity claim</h2>



<figure class="wp-block-image size-full"><img src="https://darjarihla.com/wp-content/uploads/2026/10/similarity-is-not-continuity.webp" alt="Ancient inscribed stone fragment and much later manuscript displayed apart, with empty archival evidence holders between them." loading="lazy" decoding="async"/><figcaption class="wp-element-caption">Resemblance between historical forms is a starting point for investigation, not proof of uninterrupted transmission across centuries. <em>Conceptual illustration.</em></figcaption></figure>



<p class="wp-block-paragraph">Claims that a modern Darija word “comes from Punic” have particular appeal because Punic was a language of ancient North Africa and Tunisia’s historical landscape contains surviving inscriptions. A visible ancient past invites a linguistic connection. But the necessary historical bridge is often missing.</p>



<p class="wp-block-paragraph">At Dougga, surviving epigraphy documents ancient language traditions, including the well-known bilingual Punic and Libyco-Berber inscription tradition. Such evidence is significant for the linguistic history of ancient North Africa. It is not evidence that a modern Tunisian Arabic word descends directly from a particular Punic form.</p>



<p class="wp-block-paragraph">Even a persuasive-looking resemblance can arise from shared Semitic inheritance, chance, parallel formation or transmission through later intermediaries. A serious proposal must consider all of these possibilities. Charles Krahmalkov’s Punic dictionary and grammar are important specialist references for investigating the ancient language, but a dictionary entry cannot substitute for the missing stages of a proposed modern derivation. <a href="#source-11">[11]</a> <a href="#source-12">[12]</a></p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Similarity is not continuity. The existence of two comparable forms is an observation; the historical path linking them is a separate claim.</p></blockquote>



<h2 class="wp-block-heading">Why written survival is not the same as spoken survival</h2>



<p class="wp-block-paragraph">The historical record is not evenly distributed. Institutions preserve some languages, genres and regions better than others. Inscriptions favour official, monumental or commemorative writing. Manuscripts favour communities with established written practices. Colonial collecting projects captured some speakers but excluded many others. Sound recordings preserve voices, but also the choices of collectors and archivists.</p>



<p class="wp-block-paragraph">A language may survive in speech while leaving only sporadic written evidence. Conversely, a language may be well attested in inscriptions without having a demonstrated line of transmission into modern everyday speech. Jonathan Conant’s study of linguistic communities in late antique and early medieval North Africa provides important context for the complexity of this historical landscape. <a href="#source-13">[13]</a></p>



<h2 class="wp-block-heading">Judeo-Tunisian Arabic: a history preserved in writing</h2>



<p class="wp-block-paragraph">Judeo-Tunisian Arabic complicates any story in which the vernacular appears only late or only in the dominant script tradition. Tunisian Jewish communities produced important written and literary materials in varieties of Arabic, particularly well documented for the nineteenth and twentieth centuries. Joseph and Zivia Tobi’s work on Judeo-Arabic literature in Tunisia helps establish the richness of that record. <a href="#source-14">[14]</a></p>



<p class="wp-block-paragraph">Such documents may preserve lexical, stylistic and sociolinguistic patterns not equally visible in other sources. They should not, however, be described without further bibliographic comparison as the first substantial written vernacular corpus of Tunisia. Their significance does not depend on that superlative.</p>



<h2 class="wp-block-heading">The real history is not a sequence of replacements</h2>



<p class="wp-block-paragraph">The most accurate picture of Tunisia’s linguistic history is neither an unbroken ancient essence nor a chain of clean breaks. Different languages and registers coexisted, interacted and changed within institutions, towns, rural networks, religious communities, markets and households. Contact did not affect every location or social group in the same way.</p>



<p class="wp-block-paragraph">Even the familiar labels “Arabic,” “Amazigh,” “Punic” and “French” refer to internally varied historical realities. Their influence cannot be measured simply by counting attractive word similarities. At the scale of individual speakers, a feature may carry evidence of regional contact, accommodation or innovation rather than a story about biological descent.</p>



<h2 class="wp-block-heading">Five questions before calling something a survival</h2>



<figure class="wp-block-image size-full"><img src="https://darjarihla.com/wp-content/uploads/2026/10/historical-linguistics-research-evidence.webp" alt="Archival research desk with manuscript facsimiles, catalogue cards, reference books, an open notebook and magnifying glass." loading="lazy" decoding="async"/><figcaption class="wp-element-caption">Reconstructing language history requires distinguishing documented forms, proposed etymologies and unresolved claims of historical continuity. <em>Conceptual illustration.</em></figcaption></figure>



<p class="wp-block-paragraph">Before saying that an element of modern Darija “survived” from an older language, ask five questions:</p>



<ul class="wp-block-list"><li><strong>What exactly is attested?</strong> Record the form, meaning, locality, date, medium and precise source page or recording identifier.</li><li><strong>What is the proposed historical relationship?</strong> Separate a direct attestation from an inferred etymology or a claim about grammatical development.</li><li><strong>Where are the intermediate stages?</strong> Identify what is documented between the proposed origin and the modern form, including gaps.</li><li><strong>What competing explanations exist?</strong> Test inheritance, borrowing, internal innovation, shared regional development and accidental resemblance.</li><li><strong>How confident is each claim independently?</strong> A form may be securely attested while its origin or continuity remains uncertain.</li></ul>



<p class="wp-block-paragraph">These questions lead to a more reliable evidence register. Each investigated feature should carry separate assessments for attestation, etymological explanation and continuity. One overall “confidence score” would conceal precisely the uncertainty a research project needs to reveal.</p>



<h2 class="wp-block-heading">What Darija can tell us about Tunisia</h2>



<p class="wp-block-paragraph">Tunisian Darija offers a way to examine history close to daily life. Its recorded forms, dialect geography, loanwords, grammatical developments and written traditions can reveal how speech communities changed through contact and transmission. That opportunity is real precisely because the evidence is uneven: some questions can be answered directly, while others become sharper when an expected link cannot be found.</p>



<p class="wp-block-paragraph">The 1916 recordings show what an archive can contribute. The Chebba case shows why linguistic categories can overlap. <em>Brīk</em> shows how a persuasive etymology may outpace the evidence for its first local use. Punic claims show why ancient attestations cannot fill the centuries between themselves and the present. Each case teaches a different lesson about proof.</p>



<h2 class="wp-block-heading">An archive that remains open</h2>



<p class="wp-block-paragraph">A living archive is not a treasure chest of eternal words. It is a research programme: recover the source, date the evidence, locate the speaker or text, test alternative explanations and state what remains unknown. Its findings can be revised as earlier attestations, neglected manuscripts or better regional surveys appear.</p>



<p class="wp-block-paragraph">This makes Darija more historically interesting, not less. Its value does not depend on proving that every expression is ancient. It lies in the ability to investigate specific traces of change and contact, one form and one source at a time.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>The living archive exists when we treat language as evidence, not as proof of a story we already wanted to tell.</p></blockquote>



<h2 class="wp-block-heading">Research notes and sources</h2>



<p class="wp-block-paragraph">The sources below support different levels of claim. Bibliographic references and project pages do not necessarily verify every proposed etymology or historical date. Further source-level verification remains necessary before claiming first attestations or uninterrupted ancient-to-modern transmission.</p>



<p class="wp-block-paragraph"><span id="source-1"><strong>1.</strong> Adam Benkato and Veronika Ritt-Benmimoun (2022), “Voice archives in Arabic dialectology: the case of the southern Tunisian recordings in the Berliner Lautarchiv,” <em>The Journal of North African Studies</em>. <a href="https://doi.org/10.1080/13629387.2022.2116011" rel="noopener noreferrer" target="_blank">Source</a>.</span></p>



<p class="wp-block-paragraph"><span id="source-2"><strong>2.</strong> William Marçais and Abderrahmân Guîga, <em>Textes arabes de Takroûna</em> (1925–1961), Bibliothèque nationale de Tunisie catalogue. <a href="https://www.bibliotheque.nat.tn/BNTK/doc/SYRACUSE/258166/textes-arabes-de-takrouna?_lg=fr-FR" rel="noopener noreferrer" target="_blank">Source</a>.</span></p>



<p class="wp-block-paragraph"><span id="source-3"><strong>3.</strong> Austrian Academy of Sciences, <em>TUNICO</em>, Tunisian Arabic dictionary and research corpus. <a href="https://www.oeaw.ac.at/de/acdh/forschung/sprachwissenschaft/ressourcen/woerterbuecher/tunico-woerterbuch" rel="noopener noreferrer" target="_blank">Source</a>.</span></p>



<p class="wp-block-paragraph"><span id="source-4"><strong>4.</strong> Choux, Avila, Crego, Bougares and Laurent (2025), “TuniFra: A Tunisian Arabic Speech Corpus with Orthographic Transcriptions and French Translations.” <a href="https://doi.org/10.18653/v1/2025.arabicnlp-main.5" rel="noopener noreferrer" target="_blank">Source</a>.</span></p>



<p class="wp-block-paragraph"><span id="source-5"><strong>5.</strong> Adam Benkato (2020), “Maghrebi Arabic,” in <em>Arabic and Contact-Induced Change</em>, pp. 197–212. <a href="https://doi.org/10.5281/zenodo.3744517" rel="noopener noreferrer" target="_blank">Source</a>.</span></p>



<p class="wp-block-paragraph"><span id="source-6"><strong>6.</strong> Luca D’Anna (2020), “The Arabic Dialect of Chebba. Preliminary Data and Historical Considerations,” <em>Zeitschrift für Arabische Linguistik</em> 72, pp. 80–100. <a href="https://doi.org/10.13173/zeitarabling.72.0080" rel="noopener noreferrer" target="_blank">Source</a>.</span></p>



<p class="wp-block-paragraph"><span id="source-7"><strong>7.</strong> Stephan Procházka, “Turkish Loanwords,” academic reference text. <a href="https://www.gw.uni-jena.de/phifakmedia/93830/prochazka-turkish-loanwords.pdf" rel="noopener noreferrer" target="_blank">Source</a>.</span></p>



<p class="wp-block-paragraph"><span id="source-8"><strong>8.</strong> David Wilmsen (2013), “The interrogative origin of the Arabic negator -š,” <em>Zeitschrift für Arabische Linguistik</em> 58, pp. 5–31.</span></p>



<p class="wp-block-paragraph"><span id="source-9"><strong>9.</strong> Christopher Lucas (2018), “On Wilmsen on the Development of Postverbal Negation in Dialectal Arabic.” <a href="https://doi.org/10.13173/zeitarabling.67.0044" rel="noopener noreferrer" target="_blank">Source</a>.</span></p>



<p class="wp-block-paragraph"><span id="source-10"><strong>10.</strong> Mena B. Lafkioui and Vermondo Brugnatelli (2020), “Negation in Berber: Variation, evolution, and typology.” <a href="https://doi.org/10.1515/ling-2020-0010" rel="noopener noreferrer" target="_blank">Source</a>.</span></p>



<p class="wp-block-paragraph"><span id="source-11"><strong>11.</strong> Charles R. Krahmalkov (2000), <em>Phoenician-Punic Dictionary</em>.</span></p>



<p class="wp-block-paragraph"><span id="source-12"><strong>12.</strong> Charles R. Krahmalkov (2001), <em>A Phoenician-Punic Grammar</em>.</span></p>



<p class="wp-block-paragraph"><span id="source-13"><strong>13.</strong> Jonathan Conant (2023), “Languages and Communities in Late Antique and Early Medieval North Africa.” <a href="https://doi.org/10.1093/oso/9780198888956.003.0002" rel="noopener noreferrer" target="_blank">Source</a>.</span></p>



<p class="wp-block-paragraph"><span id="source-14"><strong>14.</strong> Joseph Tobi and Zivia Tobi (2014), <em>Judeo-Arabic Literature in Tunisia, 1850–1950</em>.</span></p>



<p class="wp-block-paragraph"><em>Editorial note: Images in this article are AI-generated conceptual illustrations. They do not reproduce identified archival objects, excavated strata or historically verified inscriptions. The article’s historical assertions rest on the cited research, not the illustrations.</em></p>
]]></content:encoded>
					
		
		
		<media:content url="https://darjarihla.com/wp-content/uploads/2026/10/darija-living-archive-featured-1024x576.webp" medium="image" />
<category>Culture &amp; Identity</category>
	</item>
		<item>
		<title>Build Log 004: Web Evidence Inspector</title>
		<link>https://darjarihla.com/web-evidence-inspector/</link>
		
		<dc:creator><![CDATA[Darja Rihla]]></dc:creator>
		<pubDate>Wed, 07 Oct 2026 12:13:19 +0000</pubDate>
				<category><![CDATA[Startup Lab]]></category>
		<category><![CDATA[Browser Security]]></category>
		<category><![CDATA[cybersecurity]]></category>
		<category><![CDATA[Digital Evidence]]></category>
		<category><![CDATA[Network Isolation]]></category>
		<category><![CDATA[Security Architecture]]></category>
		<category><![CDATA[Web Evidence Inspector]]></category>
		<category><![CDATA[Web Inspection]]></category>
		<guid isPermaLink="false">https://darjarihla.com/?p=2848</guid>

					<description><![CDATA[Build Log 004 explores how the Web Evidence Inspector captures structured browser observations within controlled security boundaries. Discover its architecture, evidence-handling approach and locally validated development milestones.]]></description>
										<content:encoded><![CDATA[
<article class="wp-block-group dr-post dr-post--web-evidence-inspector has-global-padding is-layout-constrained wp-block-group-is-layout-constrained">


<header class="wp-block-group dr-post-intro has-global-padding is-layout-constrained wp-block-group-is-layout-constrained">

<p class="dr-we-inspector__eyebrow wp-block-paragraph"><a href="/startup-lab/">Startup Lab</a> · Build 004 · Technical build case study</p>


<!-- The WordPress post title provides the single visible H1. -->


<p class="dr-we-inspector__deck wp-block-paragraph">Building a bounded browser evidence tool for one controlled public page load.</p>



<p class="wp-block-paragraph">Many website checks compress a browser session into a score, then leave the reader to guess what that score actually saw. The Web Evidence Inspector takes a narrower route. It runs one controlled visit to one public HTTP or HTTPS URL, keeps the observed layers distinguishable, and presents a limited public result rather than a verdict about a whole website.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>This is not a complete security scan. It reflects one controlled page load only.</p></blockquote>

</header>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<section class="wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained">

<h2 class="wp-block-heading" id="what-it-is">What the Web Evidence Inspector is</h2>



<p class="wp-block-paragraph">The Inspector is a bounded browser-evidence tool. A person supplies one public URL. A controlled Chromium session loads that page once. The system records a defined set of observations, produces findings from those observations, and returns a deliberately reduced public summary.</p>



<ul class="wp-block-list">
<li>It accepts one public HTTP or HTTPS URL within its input policy.</li>



<li>It performs one controlled browser page load, rather than a site-wide crawl.</li>



<li>It turns recorded observations into explainable inspection findings.</li>



<li>It exposes a sanitised public result while keeping raw evidence private.</li>
</ul>



<p class="wp-block-paragraph">That boundary is the point. The project is not trying to make a browser visit sound more conclusive than it is. It is trying to preserve useful evidence from a specific, repeatable moment without pretending that one moment describes every route, user state, device, consent choice, or future version of a site.</p>

</section>



<section class="wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained">

<h2 class="wp-block-heading" id="why-i-built-it">Why I built it</h2>



<p class="wp-block-paragraph"><a href="/startup-lab/">Startup Lab</a> is where Darja Rihla tests whether a useful idea can survive contact with real technical constraints. Here, the engineering question was not “How do we produce a bigger score?” It was: can one browser visit create a small record that a person can inspect, explain and keep in proportion?</p>



<p class="wp-block-paragraph">This build develops the evidence-first approach explored in <a href="/build-log-003/">Build Log 003</a> and <a href="/build-log-001-the-first-artifact/">Build Log 001</a>. The resulting design favours understandable output, strict boundaries and reproducible behaviour. An observation can be useful without becoming an accusation. A missing header, a failed request or a third-party domain may deserve review; none of those observations alone proves that a website is secure, insecure, compliant or non-compliant.</p>

</section>



<section class="wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained">

<h2 class="wp-block-heading" id="what-it-observes">What one controlled visit can observe</h2>



<p class="wp-block-paragraph">For the bounded page load, the implementation can record the request sequence and redirects, first-party and third-party domains, main-document security-header observations, tracker-rule matches, cookie metadata, browser-storage indicators, console observations and failed requests. It can then present public counts, categories and finding labels derived from that run.</p>



<p class="wp-block-paragraph">The distinction between observation and interpretation is kept deliberately visible. A public result states that something was observed during this bounded inspection. It does not publish the private evidence bundle, and it does not turn an absence of observation into proof that the underlying behaviour does not exist.</p>



<details class="wp-block-details is-layout-flow wp-block-details-is-layout-flow"><summary>What the public result does not expose</summary>
<p class="wp-block-paragraph">The public result is designed to omit raw evidence and sensitive details. The implementation uses a separate public-result schema and stores raw evidence and assessment artifacts privately for a limited period. Public URLs are sanitised before they are returned.</p>
</details>

</section>



<section class="wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained">

<h2 class="wp-block-heading" id="security-architecture">The boundary around the browser</h2>



<p class="wp-block-paragraph">The local Web Evidence Inspector Build 004 candidate separates the public entry point, the Inspector and outbound network access:</p>



<p class="wp-block-paragraph"><strong>Public request → ingress gateway → Inspector → controlled egress proxy → public internet</strong></p>



<figure class="wp-block-image size-full dr-we-inspector__figure"><img src="https://darjarihla.com/wp-content/uploads/2026/10/Cybernetwerk-door-glazen-beveiliging.png" alt="Web Evidence Inspector architecture showing an ingress gateway, isolated browser inspection environment, controlled egress proxy and public internet infrastructure." loading="lazy" decoding="async"/><figcaption class="wp-element-caption">Conceptual architecture illustration: requests enter through an ingress gateway, while browser traffic passes through a controlled egress proxy. This is not a production deployment screenshot.</figcaption></figure>



<p class="wp-block-paragraph">The Inspector does not own a direct public-internet route or a direct LAN route. The ingress gateway is the entry point. The Inspector requires its browser traffic to use the egress proxy; without that proxy, the interactive runner fails closed.</p>



<p class="wp-block-paragraph">The input and egress layers reject local and private destinations. At the egress boundary, DNS A and AAAA results are validated and non-global destinations are rejected before the proxy connects to the approved address. This is designed to keep a public URL field from becoming a route into local services or private networks. Redirects and subresources travel through that same controlled egress boundary rather than receiving a separate unrestricted path.</p>



<p class="wp-block-paragraph">The local container candidate also runs the Inspector as a non-root user, leaves Chromium’s sandbox enabled, avoids privileged mode and host networking, and configures a project-scoped seccomp profile for the Inspector service. These are engineering controls, not a claim that the tool eliminates all risk. The <a href="https://cheatsheetseries.owasp.org/cheatsheets/Server_Side_Request_Forgery_Prevention_Cheat_Sheet.html" target="_blank" rel="noopener noreferrer">OWASP SSRF Prevention Cheat Sheet</a> provides useful background on why URL validation and outbound network restrictions matter.</p>

</section>



<section class="wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained">

<h2 class="wp-block-heading" id="public-and-private">Public output, private evidence</h2>



<p class="wp-block-paragraph">A useful public interface should not quietly become an evidence leak. Build 004 assigns opaque run IDs, limits the queue, applies rate limiting and gives runs an expiry time. The browser-facing API returns a sanitised result; raw evidence and assessment artifacts are not public API routes.</p>



<figure class="wp-block-image size-full dr-we-inspector__figure"><img src="https://darjarihla.com/wp-content/uploads/2026/10/Futuristische-Inspectie_-Publiek-versus-Prive.png" alt="Web Evidence Inspector concept showing separate pathways for limited public inspection summaries and protected private technical evidence." loading="lazy" decoding="async"/><figcaption class="wp-element-caption">Conceptual evidence separation: public summaries are deliberately limited, while detailed browser and network observations remain private.</figcaption></figure>



<p class="wp-block-paragraph">That separation gives the public result an appropriate role: it is a compact record of what the bounded inspection observed. Any deeper interpretation still needs the right context and, where appropriate, human review.</p>

</section>



<section class="wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained">

<h2 class="wp-block-heading" id="example-result">A harmless example, not a scorecard</h2>



<p class="wp-block-paragraph">The validated local Web Evidence Inspector candidate successfully completed an inspection of <code>https://example.com</code> through the ingress gateway and controlled egress proxy. That run is useful as a harmless proof of the local workflow. It is not presented here as a security assessment of example.com, and this article does not invent a set of metrics from it.</p>



<p class="wp-block-paragraph">In a public result, a reader can expect a limited summary such as observed request counts, domain categories, header states, redirect steps, storage or cookie counts, console and failed-request counts, and bounded finding labels. The exact values belong to the specific run, not to this article.</p>

</section>



<section class="wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained">

<h2 class="wp-block-heading" id="limits">Limits that stay visible</h2>



<ul class="wp-block-list">
<li>It observes one controlled page load, not a complete crawl of a website.</li>



<li>It is not a full vulnerability scan or a penetration test.</li>



<li>Its observations are evidence from a defined session, not absolute proof about a website.</li>



<li>Dynamic behaviour can differ between sessions, devices, regions, consent states and user interactions.</li>



<li>The absence of an observation is not necessarily the absence of the underlying behaviour.</li>
</ul>



<p class="wp-block-paragraph">The tool does not log in, submit forms or explore a site as a human user might. A review that needs those things needs a different scope and a different method.</p>

</section>



<section class="wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained">

<h2 class="wp-block-heading" id="build-validation">What was validated locally</h2>



<p class="wp-block-paragraph">The Build 004 implementation handoff records a validated local candidate, not a public deployment. Its test suite was rerun with 74 passing tests and 0 failures. The local browser workflow was exercised successfully, the isolated service topology was checked, and the public-result boundary was mechanically checked for safe fields and the absence of raw private markers.</p>



<p class="wp-block-paragraph">The same local acceptance record reports that an <code>https://example.com</code> inspection succeeded through the ingress gateway and egress proxy. It also records the limits of that validation: controlled public-origin browser integrations for a redirect to a private destination and a private-IP subresource had not been run. Keeping that distinction in the record is part of the project’s evidence-first discipline.</p>

</section>



<aside class="wp-block-group dr-tool-placeholder has-global-padding is-layout-constrained wp-block-group-is-layout-constrained" aria-labelledby="try-web-evidence-inspector">

<h2 class="wp-block-heading" id="try-web-evidence-inspector">Web Evidence Inspector availability</h2>



<p class="wp-block-paragraph"><strong>Build log published · Local validation completed · Public runtime not available.</strong></p>



<p class="wp-block-paragraph">This article documents a locally validated engineering candidate; it does not offer a public inspection service or expose a private runtime. A public launch link would only be added after a separate deployment has been verified and approved. No release date is promised.</p>

</aside>



<section class="wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained">

<h2 class="wp-block-heading" id="next">An evidence-first iteration</h2>



<p class="wp-block-paragraph">The Build 004 article is published, while public runtime deployment remains pending. The useful outcome is not a grand claim about automation; it is a narrower, inspectable path from one controlled browser visit to an explainable record. The next question is not whether to blur that boundary. It is whether the bounded result helps a real person ask better questions, while keeping the limits intact.</p>



<p class="wp-block-paragraph">For a related example of bounded security guidance that does not claim to perform an automated scan, see <a href="/build-log-005-php2shell-decision-guide/">Build Log 005: PHP2Shell Decision Guide</a>. Browse the wider <a href="/startup-lab/">Startup Lab</a> project series for earlier builds.</p>

</section>


</article>
]]></content:encoded>
					
		
		
		<media:content url="https://darjarihla.com/wp-content/uploads/2026/10/Digitale-webinspectie-in-een-sandbox-1024x576.png" medium="image" />
<category>Startup Lab</category>
	</item>
		<item>
		<title>After Login: Zero Trust, Tokens and Revocable Trust in 2026</title>
		<link>https://darjarihla.com/zero-trust-after-login/</link>
		
		<dc:creator><![CDATA[Darja Rihla]]></dc:creator>
		<pubDate>Tue, 06 Oct 2026 21:02:13 +0000</pubDate>
				<category><![CDATA[Cybersecurity & Tech]]></category>
		<guid isPermaLink="false">https://darjarihla.com/?p=2842</guid>

					<description><![CDATA[Living Dossier 01Cybersecurity &#38; TechIdentity &#38; Access After Login: Zero Trust, Tokens and Revocable Trust in 2026 A public revisit of Zero Trust Identity Security: The Modern Defense Framework for...]]></description>
										<content:encoded><![CDATA[
<article id="dr-zt-dossier" class="wp-block-group alignwide dr-ld dr-post--zero-trust-after-login is-layout-flow wp-block-group-is-layout-flow">


<header class="dr-ld-masthead" aria-labelledby="dr-ld-masthead-title">
  <div class="dr-ld-masthead__copy">
    <p class="dr-ld-kicker"><span>Living Dossier 01</span><span>Cybersecurity &amp; Tech</span><span>Identity &amp; Access</span></p>
    <h1 class="dr-ld-masthead__h1">After Login: Zero Trust, Tokens and Revocable Trust in 2026</h1>
    <p class="dr-ld-masthead__title" id="dr-ld-masthead-title">A public revisit of <a href="https://darjarihla.com/zero-trust-identity-security/">Zero Trust Identity Security: The Modern Defense Framework for Access Control</a>, six months after it was written.</p>
    <p class="dr-ld-lead">In April 2026 this site argued that identity had become the control plane of modern security. Six months of new guidance and incident data say the core holds: attackers still exploit trusted access, and much of the risk begins after login. Two things need correcting. Identity is not the only way in: in two of the largest 2026 incident datasets, the most common entry point is an exploited software flaw, not a stolen login. And the April piece paid too little attention to how long trust lives once it has been granted.</p>
    <p class="dr-ld-masthead__thesis">The claim this dossier tests: trust is not a state you reach at login. It is authority that must stay scoped, conditional, temporary, observable and revocable.</p>
  </div>
  <ol class="dr-ld-timeline" aria-label="Dossier timeline">
    <li class="dr-ld-timeline__item">
      <span class="dr-ld-timeline__label">Original observation</span>
      <time datetime="2026-04-12">12 April 2026</time>
      <span class="dr-ld-timeline__note">Published as an explanatory essay. Kept online, unchanged, as a record.</span>
    </li>
    <li class="dr-ld-timeline__item dr-ld-timeline__item--current">
      <span class="dr-ld-timeline__label">Revisited</span>
      <time datetime="2026-10-06">6 October 2026</time>
      <span class="dr-ld-timeline__note">Rebuilt as an evidence-backed dossier with an inspectable model.</span>
    </li>
    <li class="dr-ld-timeline__item dr-ld-timeline__item--next">
      <span class="dr-ld-timeline__label">Next review</span>
      <span class="dr-ld-timeline__when">When a trigger fires</span>
      <span class="dr-ld-timeline__note">Triggers are listed in the research record at the end.</span>
    </li>
  </ol>
  <div class="dr-ld-legend">
    <p class="dr-ld-legend__title">How to read this dossier</p>
    <ul class="dr-ld-legend__list">
      <li><span class="dr-ld-chip dr-ld-chip--ref">E01</span> A sourced statement. The number points to the evidence ledger at the end, which records what each source supports and where it stops.</li>
      <li><span class="dr-ld-chip dr-ld-chip--emerging">Emerging</span> Technology, guidance or practice that is still forming.</li>
      <li><span class="dr-ld-chip dr-ld-chip--interpretation">Darja Rihla interpretation</span> Our own synthesis. Read it as an argument, not as a finding.</li>
    </ul>
  </div>
</header>



<section class="wp-block-group dr-ld-section is-layout-flow wp-block-group-is-layout-flow">


<h2 class="wp-block-heading" id="april-2026">April 2026: what held and what did not</h2>



<p class="wp-block-paragraph">The original article, published on 12 April 2026, made one central move. It replaced the old perimeter question, “Are you inside the network?”, with a different one:</p>



<blockquote class="wp-block-quote dr-ld-archive-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Can you continuously prove that you should still be trusted right now?</p>
<cite>Darja Rihla, Zero Trust Identity Security, 12 April 2026</cite></blockquote>



<p class="wp-block-paragraph">Around that question it built five ideas: identity as the control plane through which access is granted, limited or denied; attackers who no longer break walls but borrow legitimacy; a shift from credential theft to trust theft; the warning that much of the real risk begins after login, in tokens and sessions; and the observation that people mistake visible friction for security strength.</p>



<p class="wp-block-paragraph">The table sets the April answers next to what the evidence of 2026 supports. Each October answer opens with a verdict: held, extended or revised.</p>



<figure class="wp-block-table dr-ld-thennow"><table class="has-fixed-layout"><thead><tr><th>Question</th><th>April 2026 article</th><th>October 2026 dossier</th></tr></thead><tbody><tr><td>Why do attackers target identity?</td><td>“The attacker is not breaking the wall. They are borrowing legitimacy.”</td><td><strong>Held.</strong> Microsoft’s 2026 report sums up what its responders see in three words: “threat actors follow trust.” <a class="dr-ld-ref" href="#dr-ld-e05">E05</a></td></tr><tr><td>Where is the boundary?</td><td>“The perimeter has dissolved. What remains is identity.”</td><td><strong>Revised.</strong> Identity is a primary control plane, not the only one. In 2026 incident data, exploited software is the most common way in. <a class="dr-ld-ref" href="#dr-ld-e09">E09</a> <a class="dr-ld-ref" href="#dr-ld-e10">E10</a></td></tr><tr><td>What makes authentication strong?</td><td>Phishing-resistant MFA as “the modern baseline for privileged access”, and a warning that visible friction is not strength.</td><td><strong>Held, and now defined.</strong> NIST states that passwords, one-time codes and out-of-band approvals are not phishing-resistant, however much effort they add. <a class="dr-ld-ref" href="#dr-ld-e02">E02</a></td></tr><tr><td>What happens after login?</td><td>Tokens and session cookies “become the new trust objects.”</td><td><strong>Held, and extended.</strong> Attackers harvest “long-lived OAuth tokens and session cookies.” <a class="dr-ld-ref" href="#dr-ld-e09">E09</a> Tokens now have NIST and CISA guidance on signing keys, lifetime, binding and revocation. <a class="dr-ld-ref" href="#dr-ld-e01">E01</a></td></tr><tr><td>How does a session stay honest?</td><td>Continuous Access Evaluation is “strategically important.”</td><td><strong>Extended.</strong> Sessions are being bound to devices, and revocation signals now have open standards. <a class="dr-ld-ref" href="#dr-ld-e06">E06</a> <a class="dr-ld-ref" href="#dr-ld-e07">E07</a> <a class="dr-ld-ref" href="#dr-ld-e11">E11</a> <a class="dr-ld-ref" href="#dr-ld-e13">E13</a></td></tr><tr><td>Where does the human system give way?</td><td>“Support teams are often rewarded for restoring access quickly.”</td><td><strong>Held.</strong> Voice phishing reached 11% of intrusions in M-Trends 2026, and help desks are a named target. <a class="dr-ld-ref" href="#dr-ld-e08">E08</a> <a class="dr-ld-ref" href="#dr-ld-e09">E09</a></td></tr><tr><td>Who holds authority?</td><td>“A user, administrator, service account, or workload.”</td><td><strong>Revised.</strong> AI agents now act with delegated authority, and how to identify them is an open standards question. <a class="dr-ld-ref" href="#dr-ld-e12">E12</a> <a class="dr-ld-ref" href="#dr-ld-e14">E14</a></td></tr><tr><td>How is the argument built?</td><td>An explanatory essay without external sources.</td><td><strong>Revised.</strong> Confidence labels, an evidence ledger, a thesis that states how it could fail, and a model you can test.</td></tr></tbody></table><figcaption class="wp-element-caption">April column: quotations from the original article. October column: this dossier’s verdict, with evidence ledger references.</figcaption></figure>



<p class="dr-ld-mark dr-ld-mark--interpretation wp-block-paragraph"><strong>Darja Rihla interpretation</strong> The security landscape did not move away from the April article’s problem. It moved closer to it and made it wider: more kinds of actors now hold authority, and that authority lives longer than the login that created it.</p>


</section>



<section class="wp-block-group dr-ld-section is-layout-flow wp-block-group-is-layout-flow">


<h2 class="wp-block-heading" id="thesis">The thesis: trust is temporary authority</h2>



<p class="wp-block-paragraph">Zero Trust is usually summarized as “never trust, always verify”. The slogan describes a posture. It does not describe what verification produces. Every successful check creates authority: a session, a token, a delegated permission. That authority then travels, often for hours, and is accepted by systems that never saw the original check.</p>



<p class="wp-block-paragraph">This dossier works from a more precise statement.</p>



<p class="dr-ld-thesis wp-block-paragraph">Trust in modern access control is not binary. It is scoped, conditional, temporary, observable and revocable.</p>



<ul class="wp-block-list dr-ld-properties">
<li><strong>Scoped.</strong> It applies to a defined resource, action and audience, not to everything.</li>



<li><strong>Conditional.</strong> It holds only while the signals that justified it still hold.</li>



<li><strong>Temporary.</strong> It expires by design, not when someone remembers to remove it.</li>



<li><strong>Observable.</strong> Its use leaves records that someone can inspect.</li>



<li><strong>Revocable.</strong> It can be withdrawn before it expires, and the systems that rely on it will notice.</li>
</ul>



<p class="wp-block-paragraph">The April article reached for the same idea in three short lines: “Trust is dynamic. Trust decays. Trust must be re-earned.” The five properties turn that intuition into something you can check. For any token, session or delegation you can ask whether it is scoped, conditional, temporary, observable and revocable, and expect an answer.</p>



<p class="wp-block-paragraph">A second statement keeps the first one honest. Identity is a primary control plane, but it sits inside a larger system of devices, software, tokens, sessions, workloads, agents, privileges and recovery mechanisms. A perfect identity layer does not repair an unpatched server. Zero Trust is therefore one part of a <a href="https://darjarihla.com/cybersecurity-modern-world/">wider cybersecurity system</a> in which identity, infrastructure, policy and human behaviour constrain one another.</p>



<p class="dr-ld-mark dr-ld-mark--interpretation wp-block-paragraph"><strong>Darja Rihla interpretation</strong> Read this way, Zero Trust is less a login problem than an authority lifecycle problem: how authority is issued, carried, checked, narrowed and withdrawn.</p>


</section>



<section class="wp-block-group dr-ld-section is-layout-flow wp-block-group-is-layout-flow">


<h2 class="wp-block-heading" id="trust-decision-engine">The Trust Decision Engine</h2>



<p class="wp-block-paragraph">The April article called Zero Trust “a sequence of trust decisions” and then walked through two of them: the identity claim and the strength of authentication. The engine below completes the sequence. It follows NIST’s Zero Trust architecture, which removes implicit trust based on network location and treats authentication and authorization as “discrete functions performed before a session to an enterprise resource is established.” <a class="dr-ld-ref" href="#dr-ld-e03">E03</a> Then it continues past the point where many diagrams stop: the moment authority leaves the decision point and starts to travel.</p>



<figure class="dr-ld-figure dr-ld-figure--diagram">
  <img src="https://darjarihla.com/wp-content/uploads/2026/10/trust-decision-engine-zero-trust-after-login.webp" alt="Editorial diagram van een trust decision engine die na login identiteit, device, token, sessie en risicosignalen evalueert en uitkomsten bepaalt." lang="nl" width="1448" height="1086" loading="lazy" decoding="async">
  <figcaption class="dr-ld-figure__caption">A trust decision engine evaluates access after login by combining identity, device, token, session and risk signals.</figcaption>
</figure>



<figure class="dr-zt-engine" aria-labelledby="dr-zt-engine-caption">
  <div class="dr-zt-engine__phase dr-zt-engine__phase--before">
    <p class="dr-zt-engine__phase-label"><span>Before the session</span> Decide whether authority should exist</p>
    <ol class="dr-zt-engine__stages">
      <li class="dr-zt-engine__stage"><span class="dr-zt-engine__num" aria-hidden="true">01</span><strong>Identity claim</strong><span>Who or what says it is acting?</span></li>
      <li class="dr-zt-engine__stage"><span class="dr-zt-engine__num" aria-hidden="true">02</span><strong>Authentication</strong><span>What evidence backs the claim, and can it be phished?</span></li>
      <li class="dr-zt-engine__stage"><span class="dr-zt-engine__num" aria-hidden="true">03</span><strong>Device or workload assurance</strong><span>Is the endpoint or runtime known and healthy?</span></li>
      <li class="dr-zt-engine__stage"><span class="dr-zt-engine__num" aria-hidden="true">04</span><strong>Context signals</strong><span>Location, time, behaviour and threat intelligence.</span></li>
      <li class="dr-zt-engine__stage"><span class="dr-zt-engine__num" aria-hidden="true">05</span><strong>Policy decision</strong><span>Given all of the above, what is allowed?</span></li>
      <li class="dr-zt-engine__stage"><span class="dr-zt-engine__num" aria-hidden="true">06</span><strong>Authorization</strong><span>Which resource, which action, which scope?</span></li>
    </ol>
  </div>
  <div class="dr-zt-engine__phase dr-zt-engine__phase--after">
    <p class="dr-zt-engine__phase-label"><span>After the session starts</span> Govern the authority that now exists</p>
    <ol class="dr-zt-engine__stages" start="7">
      <li class="dr-zt-engine__stage"><span class="dr-zt-engine__num" aria-hidden="true">07</span><strong>Token and session issuance</strong><span>Authority leaves the decision point and starts to travel.</span></li>
      <li class="dr-zt-engine__stage"><span class="dr-zt-engine__num" aria-hidden="true">08</span><strong>Continuous evaluation</strong><span>Do new signals change the answer?</span></li>
      <li class="dr-zt-engine__stage"><span class="dr-zt-engine__num" aria-hidden="true">09</span><strong>Outcome</strong><span>Each evaluation ends in one of four results.</span></li>
    </ol>
    <p class="dr-zt-engine__loop"><span aria-hidden="true">↻</span> Stages 08 and 09 repeat for as long as the session lives.</p>
  </div>
  <ul class="dr-zt-engine__outcomes" aria-label="Possible outcomes of each evaluation">
    <li class="dr-zt-outcome dr-zt-outcome--allow"><strong>Allow</strong><span>The authority still fits the signals. Continue.</span></li>
    <li class="dr-zt-outcome dr-zt-outcome--challenge"><strong>Challenge</strong><span>Ask for stronger evidence before going on.</span></li>
    <li class="dr-zt-outcome dr-zt-outcome--restrict"><strong>Restrict</strong><span>Keep access, but narrow its scope.</span></li>
    <li class="dr-zt-outcome dr-zt-outcome--deny"><strong>Deny</strong><span>Refuse. In a live session, revoke the session and its tokens.</span></li>
  </ul>
  <figcaption id="dr-zt-engine-caption">The Trust Decision Engine. Stages 01 to 06 decide whether authority should be created. Stages 07 to 09 govern what happens to it afterwards.</figcaption>
</figure>



<p class="wp-block-paragraph">Most of the incidents discussed in this dossier happen in the second half of the engine: a valid token replayed somewhere else, a session that outlives the conditions that justified it, a recovery request that quietly creates new authority. The split into before and after the session is this dossier’s way of drawing the model: NIST describes the decisions, not the two phases.</p>


</section>



<section class="wp-block-group dr-ld-section is-layout-flow wp-block-group-is-layout-flow">


<h2 class="wp-block-heading" id="five-questions">Five questions for every trust object</h2>



<p class="wp-block-paragraph">Most Zero Trust writing is organized around users. In practice, authority is carried by objects: a device registration, an OAuth client, a refresh token, a session cookie, a recovery phone number. Each of them can be stolen, copied, over-scoped or forgotten. The Trust Object Map asks the same five questions of each one.</p>



<ol class="wp-block-list dr-ld-questions">
<li>Who issued it?</li>



<li>What does it prove?</li>



<li>What can it authorize?</li>



<li>How long is it valid?</li>



<li>How can it be revoked?</li>
</ol>



<figure class="dr-ld-figure dr-ld-figure--diagram">
  <img src="https://darjarihla.com/wp-content/uploads/2026/10/trust-object-map-zero-trust-after-login.webp" alt="Systeemkaart van trust objecten zoals gebruiker, device, credential, token, sessie, applicatie en resource binnen moderne toegangscontrole." lang="nl" width="1448" height="1086" loading="lazy" decoding="async">
  <figcaption class="dr-ld-figure__caption">Modern access control depends on multiple trust objects, each with its own exposure and failure mode.</figcaption>
</figure>



<p class="wp-block-paragraph">Weak answers cluster in predictable places. Tokens prove less than people assume, because whoever holds a bearer token can use it. Recovery channels authorize more than people assume, because they can create new authenticators. Agents are the newest object and the hardest to answer for, because the delegation they carry is often undocumented. Each card below states the weak point first; the five answers sit underneath it.</p>



<div class="dr-zt-objects">
  <div class="dr-zt-chains">
    <div class="dr-zt-chain">
      <p class="dr-zt-chain__title" id="dr-zt-chain-signin">Sign-in chain</p>
      <ol class="dr-zt-chain__list" aria-labelledby="dr-zt-chain-signin">
        <li><span class="dr-zt-chain__obj dr-zt-chain__obj--factory">Recovery channel</span><span class="dr-zt-chain__rel">can recreate</span></li>
        <li><span class="dr-zt-chain__obj">Human identity</span><span class="dr-zt-chain__rel">signs in on</span></li>
        <li><span class="dr-zt-chain__obj">Device</span><span class="dr-zt-chain__rel">receives</span></li>
        <li><span class="dr-zt-chain__obj">Token</span><span class="dr-zt-chain__rel">opens</span></li>
        <li><span class="dr-zt-chain__obj">Session</span></li>
      </ol>
    </div>
    <div class="dr-zt-chain">
      <p class="dr-zt-chain__title" id="dr-zt-chain-delegation">Delegation chain</p>
      <ol class="dr-zt-chain__list" aria-labelledby="dr-zt-chain-delegation">
        <li><span class="dr-zt-chain__obj">Human identity</span><span class="dr-zt-chain__rel">delegates to</span></li>
        <li><span class="dr-zt-chain__obj dr-zt-chain__obj--emerging">AI agent</span><span class="dr-zt-chain__rel">calls</span></li>
        <li><span class="dr-zt-chain__obj">Application</span><span class="dr-zt-chain__rel">runs on</span></li>
        <li><span class="dr-zt-chain__obj">Workload</span></li>
      </ol>
    </div>
  </div>

  <div class="dr-zt-objects__grid">
    <section class="dr-zt-object" aria-labelledby="dr-zt-obj-human">
      <p class="dr-zt-object__role">Anchor</p>
      <h3 id="dr-zt-obj-human">Human identity</h3>
      <p class="dr-zt-object__weak">Proves that someone was enrolled, not that the same person is present now.</p>
      <details class="dr-zt-object__answers">
        <summary>Five answers<span class="dr-ld-vh">: human identity</span></summary>
        <dl>
          <div><dt>Who issued it?</dt><dd>The identity provider, at enrollment, ideally after identity proofing.</dd></div>
          <div><dt>What does it prove?</dt><dd>That a person was enrolled once. Not that the same person is present now.</dd></div>
          <div><dt>What can it authorize?</dt><dd>Nothing directly. Every other object traces back to it.</dd></div>
          <div><dt>How long is it valid?</dt><dd>Until deprovisioning, which often lags behind the end of a job.</dd></div>
          <div><dt>How can it be revoked?</dt><dd>Disable the account, then revoke the sessions and tokens it produced.</dd></div>
        </dl>
      </details>
    </section>
    <section class="dr-zt-object" aria-labelledby="dr-zt-obj-device">
      <p class="dr-zt-object__role">Context</p>
      <h3 id="dr-zt-obj-device">Device</h3>
      <p class="dr-zt-object__weak">Raises confidence in other decisions, but rarely grants access on its own.</p>
      <details class="dr-zt-object__answers">
        <summary>Five answers<span class="dr-ld-vh">: device</span></summary>
        <dl>
          <div><dt>Who issued it?</dt><dd>Device registration or management enrollment.</dd></div>
          <div><dt>What does it prove?</dt><dd>A known endpoint in a known state, strongest when its keys are hardware-backed.</dd></div>
          <div><dt>What can it authorize?</dt><dd>It raises assurance for other decisions. It rarely grants access on its own.</dd></div>
          <div><dt>How long is it valid?</dt><dd>Until it is unregistered, retired or falls out of compliance.</dd></div>
          <div><dt>How can it be revoked?</dt><dd>Remove the registration or mark the device non-compliant.</dd></div>
        </dl>
      </details>
    </section>
    <section class="dr-zt-object dr-zt-object--transit" aria-labelledby="dr-zt-obj-token">
      <p class="dr-zt-object__role">Authority in transit</p>
      <h3 id="dr-zt-obj-token">Token</h3>
      <p class="dr-zt-object__weak">Works for whoever holds it, unless it is bound to a device or key.</p>
      <details class="dr-zt-object__answers">
        <summary>Five answers<span class="dr-ld-vh">: token</span></summary>
        <dl>
          <div><dt>Who issued it?</dt><dd>An identity provider or authorization server, after authentication.</dd></div>
          <div><dt>What does it prove?</dt><dd>That an issuer signed a statement about a subject, for an audience.</dd></div>
          <div><dt>What can it authorize?</dt><dd>Whatever its scopes allow, for whoever presents it, unless it is bound.</dd></div>
          <div><dt>How long is it valid?</dt><dd>NIST IR 8587: one hour or less for access and identity tokens. Refresh tokens live longer. <a class="dr-ld-ref" href="#dr-ld-e01">E01</a></dd></div>
          <div><dt>How can it be revoked?</dt><dd>Revocation and continuous evaluation events. Key rotation if forgery is suspected.</dd></div>
        </dl>
      </details>
    </section>
    <section class="dr-zt-object dr-zt-object--transit" aria-labelledby="dr-zt-obj-session">
      <p class="dr-zt-object__role">Continuing authority</p>
      <h3 id="dr-zt-obj-session">Session</h3>
      <p class="dr-zt-object__weak">Proves that a sign-in succeeded at some earlier moment, often days ago.</p>
      <details class="dr-zt-object__answers">
        <summary>Five answers<span class="dr-ld-vh">: session</span></summary>
        <dl>
          <div><dt>Who issued it?</dt><dd>The application, usually as a cookie, after accepting a token.</dd></div>
          <div><dt>What does it prove?</dt><dd>That a sign-in succeeded at some earlier moment.</dd></div>
          <div><dt>What can it authorize?</dt><dd>Continued use without signing in again.</dd></div>
          <div><dt>How long is it valid?</dt><dd>Set by each application. Often days.</dd></div>
          <div><dt>How can it be revoked?</dt><dd>Server-side invalidation. Binding it to a device makes stolen copies far less useful.</dd></div>
        </dl>
      </details>
    </section>
    <section class="dr-zt-object" aria-labelledby="dr-zt-obj-application">
      <p class="dr-zt-object__role">Registered client</p>
      <h3 id="dr-zt-obj-application">Application</h3>
      <p class="dr-zt-object__weak">Holds the permissions it was granted, which are often broader than its use.</p>
      <details class="dr-zt-object__answers">
        <summary>Five answers<span class="dr-ld-vh">: application</span></summary>
        <dl>
          <div><dt>Who issued it?</dt><dd>An administrator or developer who registered it, plus user or admin consent.</dd></div>
          <div><dt>What does it prove?</dt><dd>That a client was registered. Not that its code or publisher is trustworthy.</dd></div>
          <div><dt>What can it authorize?</dt><dd>The permissions it was granted, often broader than its actual use.</dd></div>
          <div><dt>How long is it valid?</dt><dd>Until consent is withdrawn. Client secrets until they expire.</dd></div>
          <div><dt>How can it be revoked?</dt><dd>Remove consent, rotate or delete secrets, disable the registration.</dd></div>
        </dl>
      </details>
    </section>
    <section class="dr-zt-object" aria-labelledby="dr-zt-obj-workload">
      <p class="dr-zt-object__role">Service identity</p>
      <h3 id="dr-zt-obj-workload">Workload</h3>
      <p class="dr-zt-object__weak">Short-lived when the platform issues it. Indefinite when it is a static secret nobody rotates.</p>
      <details class="dr-zt-object__answers">
        <summary>Five answers<span class="dr-ld-vh">: workload</span></summary>
        <dl>
          <div><dt>Who issued it?</dt><dd>The hosting platform, ideally as a short-lived credential tied to the runtime.</dd></div>
          <div><dt>What does it prove?</dt><dd>Which service is running, and where.</dd></div>
          <div><dt>What can it authorize?</dt><dd>Service-to-service calls within its role.</dd></div>
          <div><dt>How long is it valid?</dt><dd>Minutes to hours when issued by the platform. Indefinitely for static secrets nobody rotates.</dd></div>
          <div><dt>How can it be revoked?</dt><dd>Platform policy, credential rotation, removal of the role.</dd></div>
        </dl>
      </details>
    </section>
    <section class="dr-zt-object dr-zt-object--emerging" aria-labelledby="dr-zt-obj-agent">
      <p class="dr-zt-object__role">Delegated authority <span class="dr-ld-chip dr-ld-chip--emerging">Emerging</span></p>
      <h3 id="dr-zt-obj-agent">AI agent</h3>
      <p class="dr-zt-object__weak">Acts on delegated authority that is often undocumented. Practice still varies.</p>
      <details class="dr-zt-object__answers">
        <summary>Five answers<span class="dr-ld-vh">: AI agent</span></summary>
        <dl>
          <div><dt>Who issued it?</dt><dd>An agent registry or identity provider. Practice still varies.</dd></div>
          <div><dt>What does it prove?</dt><dd>Which agent acted, and whether it acted for itself or for a person.</dd></div>
          <div><dt>What can it authorize?</dt><dd>Its delegated scopes and the tools it is allowed to call.</dd></div>
          <div><dt>How long is it valid?</dt><dd>Ideally one task or session. Often undocumented today.</dd></div>
          <div><dt>How can it be revoked?</dt><dd>Disable the agent identity, withdraw the delegation, remove tool access.</dd></div>
        </dl>
      </details>
    </section>
    <section class="dr-zt-object dr-zt-object--factory" aria-labelledby="dr-zt-obj-recovery">
      <p class="dr-zt-object__role">Authority factory</p>
      <h3 id="dr-zt-obj-recovery">Recovery channel</h3>
      <p class="dr-zt-object__weak">Can create new authenticators, often from weak evidence.</p>
      <details class="dr-zt-object__answers">
        <summary>Five answers<span class="dr-ld-vh">: recovery channel</span></summary>
        <dl>
          <div><dt>Who issued it?</dt><dd>Backup method enrollment and helpdesk procedures.</dd></div>
          <div><dt>What does it prove?</dt><dd>Often little: a phone number, personal data, a convincing voice.</dd></div>
          <div><dt>What can it authorize?</dt><dd>The creation of new authenticators, and therefore new authority.</dd></div>
          <div><dt>How long is it valid?</dt><dd>Indefinitely, unless someone reviews it.</dd></div>
          <div><dt>How can it be revoked?</dt><dd>Redesign the process. Demand evidence as strong as the authenticator being replaced.</dd></div>
        </dl>
      </details>
    </section>
  </div>
</div>



<p class="dr-ld-mark dr-ld-mark--interpretation wp-block-paragraph"><strong>Darja Rihla interpretation</strong> The Five Questions are a review tool, not a standard. Their value is that they force the same questions onto objects that are usually managed by different teams: identity, endpoints, application owners and the helpdesk.</p>


</section>



<section class="wp-block-group dr-ld-section is-layout-flow wp-block-group-is-layout-flow">


<h2 class="wp-block-heading" id="phishing-resistance">Before login: what phishing resistance actually means</h2>



<p class="wp-block-paragraph">The April article was right that not all MFA is equal. NIST has since made the distinction formal. Its Digital Identity Guidelines, finalized on 31 July 2025, define phishing resistance as a property of the authenticator: its output is cryptographically bound to the specific verifier and to the authentication request, so it cannot be relayed to a different site. <a class="dr-ld-ref" href="#dr-ld-e02">E02</a></p>



<p class="wp-block-paragraph">The same guideline is unusually direct about the alternatives. It states that passwords are not phishing-resistant, that OTP authentication is not phishing-resistant and that out-of-band authentication, which includes the familiar push approval, is not phishing-resistant. Verifiers at authentication assurance level 2 must offer at least one phishing-resistant option, and federal agencies must require phishing-resistant authentication for their staff, contractors and partners. <a class="dr-ld-ref" href="#dr-ld-e02">E02</a></p>



<figure class="dr-ld-figure dr-ld-figure--wide">
  <img src="https://darjarihla.com/wp-content/uploads/2026/10/phishing-resistance-before-login-zero-trust.webp" alt="Conceptuele vergelijking tussen een kwetsbare loginflow en een phishing-resistente authenticatieflow binnen Zero Trust." lang="nl" width="1672" height="941" loading="lazy" decoding="async">
  <figcaption class="dr-ld-figure__caption">Not all authentication is equal: stronger, phishing-resistant flows reduce replay and interception risk before the session begins.</figcaption>
</figure>



<p class="wp-block-paragraph">Passkeys and other FIDO2 credentials meet this bar because of how WebAuthn scopes them: a credential can only be used with the relying party it was registered with. <a class="dr-ld-ref" href="#dr-ld-e04">E04</a> A convincing fake login page on another domain receives nothing it can replay. The CISA and FBI advisory on the Scattered Spider group draws the practical conclusion: FIDO/WebAuthn or PKI-based MFA is “not susceptible to push bombing or SIM swap attacks.” <a class="dr-ld-ref" href="#dr-ld-e08">E08</a></p>



<p class="wp-block-paragraph">The April point about security theater survives intact. Extra prompts, repeated codes and forced resets feel strong because they are visible. A passkey can be faster and stronger at the same time. For the attacker side of this story, see <a href="https://darjarihla.com/why-mfa-doesnt-stop-phishing/">Why MFA Doesn’t Stop Phishing</a> and <a href="https://darjarihla.com/aitm-phishing-explained/">What Is AiTM Phishing and Why It Bypasses MFA</a>.</p>



<p class="wp-block-paragraph">Phishing resistance protects one moment: the authentication ceremony. It says nothing about what the system issues once that ceremony succeeds, and that is where the next part of the chain begins.</p>


</section>



<section class="wp-block-group dr-ld-section is-layout-flow wp-block-group-is-layout-flow">


<h2 class="wp-block-heading" id="after-login">After login: tokens, sessions and the authority they carry</h2>



<p class="wp-block-paragraph">After a successful sign-in, an identity provider issues statements about the user. NIST IR 8587, published by NIST and CISA on 15 September 2026, separates identity tokens and assertions, which carry authentication and identity attributes, from access tokens, which authorize a specific resource, and refresh tokens, which extend a session without a new sign-in. <a class="dr-ld-ref" href="#dr-ld-e01">E01</a> Applications then usually set a session cookie of their own. Each of these is a trust object with its own lifetime.</p>



<figure class="dr-ld-figure dr-ld-figure--wide">
  <img src="https://darjarihla.com/wp-content/uploads/2026/10/tokens-and-sessions-after-login-zero-trust.webp" alt="Illustratie van tokens en actieve sessies die na login toegang dragen en opnieuw beoordeeld of ingetrokken kunnen worden." lang="nl" width="1672" height="941" loading="lazy" decoding="async">
  <figcaption class="dr-ld-figure__caption">After login, tokens and sessions carry authority and can be constrained, re-evaluated or revoked.</figcaption>
</figure>



<h3 class="wp-block-heading">Theft: the bearer problem</h3>



<p class="wp-block-paragraph">Many tokens and cookies are bearer credentials: whoever presents them is treated as the subject. M-Trends 2026 describes attackers “harvesting long-lived OAuth tokens and session cookies,” and stealing keys and personal access tokens from SaaS vendors to pivot into downstream customer environments. <a class="dr-ld-ref" href="#dr-ld-e09">E09</a> None of this requires defeating the original sign-in. The mechanics are covered in <a href="https://darjarihla.com/why-session-cookies-matter-more-than-your-password/">Why Session Cookies Matter More Than Your Password</a> and <a href="https://darjarihla.com/session-vs-credential-theft/">Session vs Credential Theft</a>.</p>



<h3 class="wp-block-heading">Forgery: the issuer problem</h3>



<p class="wp-block-paragraph">Forgery is worse than theft, because the attacker mints new authority instead of copying existing authority. NIST’s announcement of IR 8587 recalls an incident in which a foreign actor “accessed agency email systems using forged tokens derived from a single stolen commercial signing key” and took more than 60,000 emails from a single agency. <a class="dr-ld-ref" href="#dr-ld-e01">E01</a> That is why the guidance starts with key protection: for moderate-impact systems and above, signing keys must not be stored persistently on application servers, and hardware security modules or isolated key management systems are the recommended alternatives. <a class="dr-ld-ref" href="#dr-ld-e01">E01</a></p>



<h3 class="wp-block-heading">Lifetime, binding and revocation</h3>



<p class="wp-block-paragraph">IR 8587 recommends that access and identity tokens be valid for no more than one hour, that expired tokens be rejected, and that issuers support revocation and continuous monitoring. It names proof-of-possession, for example DPoP or mutual TLS binding, as a way to make a stolen token useless elsewhere, but presents it as a capability rather than a requirement. <a class="dr-ld-ref" href="#dr-ld-e01">E01</a></p>



<p class="wp-block-paragraph">Binding is arriving in products. Google made Device Bound Session Credentials generally available in Chrome on Windows on 28 May 2026; the feature binds a session cookie to the device the user authenticated from. <a class="dr-ld-ref" href="#dr-ld-e06">E06</a> Microsoft Entra token protection binds sign-in session tokens to a registered device, and Microsoft describes it as one layer of defense in depth rather than a complete solution, with browser support still limited. <a class="dr-ld-ref" href="#dr-ld-e13">E13</a></p>



<p class="wp-block-paragraph">Revocation now has open standards. The OpenID Foundation approved the Shared Signals Framework, the Continuous Access Evaluation Profile (CAEP) and RISC as final specifications in September 2025. <a class="dr-ld-ref" href="#dr-ld-e07">E07</a> Microsoft’s Continuous Access Evaluation, which is based on CAEP, reacts in near real time to events such as an account being disabled, a password reset, an administrator revoking refresh tokens or high user risk being detected. <a class="dr-ld-ref" href="#dr-ld-e11">E11</a></p>



<p class="dr-ld-mark dr-ld-mark--emerging wp-block-paragraph"><strong>Emerging, and in tension</strong> The two strategies disagree about time. NIST IR 8587 recommends token lifetimes of one hour or less. Microsoft documents that clients using Continuous Access Evaluation can receive tokens valid for up to 28 hours, because revocation is driven by events rather than by expiry. <a class="dr-ld-ref" href="#dr-ld-e01">E01</a> <a class="dr-ld-ref" href="#dr-ld-e11">E11</a> Short lifetimes limit the damage of a theft nobody noticed. Event-driven revocation limits the damage of a theft somebody did notice. This dossier records the disagreement rather than resolving it: both strategies depend on a signal arriving, either from the clock or from an event.</p>


</section>



<section class="wp-block-group dr-ld-section is-layout-flow wp-block-group-is-layout-flow">


<h2 class="wp-block-heading" id="attack-and-defense">One architecture, two directions</h2>



<p class="wp-block-paragraph">The April article described the access chain as “identity → authentication → token issuance → session continuity → authorization” and added that “a weakness anywhere in that chain creates a usable trust artifact.” The model below reads a longer version of that chain twice: once as an attacker moves through it, once as a defender breaks it. From the attacker’s side, the rows follow the familiar <a href="https://darjarihla.com/how-cyber-attacks-happen/">sequence from initial access</a> through persistence to an objective, expressed here as the trust objects an attacker needs at each step. Each row pairs a move with the control designed to stop it, and with the limit of that control. Zero Trust programs rarely fail for lack of a control. They fail when a control is assumed to cover more than it does.</p>



<figure class="dr-ld-figure dr-ld-figure--wide">
  <img src="https://darjarihla.com/wp-content/uploads/2026/10/attack-defense-one-architecture-zero-trust.webp" alt="Redactioneel diagram waarin aanvallerspaden en verdedigende controles binnen dezelfde trust-architectuur worden vergeleken." lang="nl" width="1672" height="941" loading="lazy" decoding="async">
  <figcaption class="dr-ld-figure__caption">The same trust architecture can be viewed from two directions: attacker pathways and defender controls.</figcaption>
</figure>



<div class="dr-zt-paths" data-dr-zt-paths data-view="both">
  <div class="dr-zt-paths__toolbar" role="group" aria-label="Choose which path to emphasize" data-dr-zt-toolbar hidden>
    <button type="button" class="dr-zt-paths__btn" data-view="both" aria-pressed="true">Both paths</button>
    <button type="button" class="dr-zt-paths__btn" data-view="attack" aria-pressed="false">Attack path</button>
    <button type="button" class="dr-zt-paths__btn" data-view="defense" aria-pressed="false">Defense path</button>
  </div>
  <div class="dr-zt-paths__head" aria-hidden="true"><span>Stage</span><span>Attack path</span><span>Defense path and its limit</span></div>
  <ol class="dr-zt-paths__rows">
    <li class="dr-zt-paths__row">
      <p class="dr-zt-paths__stage">Entry</p>
      <div class="dr-zt-paths__cell dr-zt-paths__cell--attack"><p class="dr-zt-paths__side">Attack</p><p>Relay the sign-in through a lookalike page, an adversary in the middle.</p></div>
      <div class="dr-zt-paths__cell dr-zt-paths__cell--defense"><p class="dr-zt-paths__side">Defense</p><p>Phishing-resistant authentication bound to the real origin.</p><p class="dr-zt-paths__limit"><span>Limit</span> Does nothing against a token stolen after sign-in, or malware on the signed-in device.</p></div>
    </li>
    <li class="dr-zt-paths__row">
      <p class="dr-zt-paths__stage">Second factor</p>
      <div class="dr-zt-paths__cell dr-zt-paths__cell--attack"><p class="dr-zt-paths__side">Attack</p><p>Push fatigue, a SIM swap or a helpdesk MFA reset.</p></div>
      <div class="dr-zt-paths__cell dr-zt-paths__cell--defense"><p class="dr-zt-paths__side">Defense</p><p>No phishable fallback. Recovery as strong as the factor it replaces, with call-back verification.</p><p class="dr-zt-paths__limit"><span>Limit</span> Does nothing against insider collusion, or pressure that bypasses the process.</p></div>
    </li>
    <li class="dr-zt-paths__row">
      <p class="dr-zt-paths__stage">Token</p>
      <div class="dr-zt-paths__cell dr-zt-paths__cell--attack"><p class="dr-zt-paths__side">Attack</p><p>Copy the session cookie or refresh token after sign-in.</p></div>
      <div class="dr-zt-paths__cell dr-zt-paths__cell--defense"><p class="dr-zt-paths__side">Defense</p><p>Device-bound sessions, sender-constrained tokens and signing keys held in hardware.</p><p class="dr-zt-paths__limit"><span>Limit</span> Does nothing against abuse of a live session from the bound device itself.</p></div>
    </li>
    <li class="dr-zt-paths__row">
      <p class="dr-zt-paths__stage">Replay</p>
      <div class="dr-zt-paths__cell dr-zt-paths__cell--attack"><p class="dr-zt-paths__side">Attack</p><p>Present the stolen token from attacker infrastructure.</p></div>
      <div class="dr-zt-paths__cell dr-zt-paths__cell--defense"><p class="dr-zt-paths__side">Defense</p><p>Continuous evaluation: a new device or location triggers a challenge or revocation.</p><p class="dr-zt-paths__limit"><span>Limit</span> Works only if the event fires, and revocation can take minutes to propagate. <a class="dr-ld-ref" href="#dr-ld-e11">E11</a></p></div>
    </li>
    <li class="dr-zt-paths__row">
      <p class="dr-zt-paths__stage">Privilege</p>
      <div class="dr-zt-paths__cell dr-zt-paths__cell--attack"><p class="dr-zt-paths__side">Attack</p><p>Use standing admin rights or an over-consented application.</p></div>
      <div class="dr-zt-paths__cell dr-zt-paths__cell--defense"><p class="dr-zt-paths__side">Defense</p><p>Least privilege, just-in-time elevation and consent review.</p><p class="dr-zt-paths__limit"><span>Limit</span> Does not shrink broad roles granted before the policy existed.</p></div>
    </li>
    <li class="dr-zt-paths__row">
      <p class="dr-zt-paths__stage">Persistence</p>
      <div class="dr-zt-paths__cell dr-zt-paths__cell--attack"><p class="dr-zt-paths__side">Attack</p><p>Register a new MFA method, app or agent to keep access.</p></div>
      <div class="dr-zt-paths__cell dr-zt-paths__cell--defense"><p class="dr-zt-paths__side">Defense</p><p>Alert on new authenticators, apps and agents. One identity per workload and agent, each with a named owner.</p><p class="dr-zt-paths__limit"><span>Limit</span> Does nothing against prompt injection or unsafe tool use inside permissions that were correctly granted.</p></div>
    </li>
    <li class="dr-zt-paths__row">
      <p class="dr-zt-paths__stage">Objective</p>
      <div class="dr-zt-paths__cell dr-zt-paths__cell--attack"><p class="dr-zt-paths__side">Attack</p><p>Export mail, files or customer records in bulk.</p></div>
      <div class="dr-zt-paths__cell dr-zt-paths__cell--defense"><p class="dr-zt-paths__side">Defense</p><p>Data-level limits and alerts on unusual export.</p><p class="dr-zt-paths__limit"><span>Limit</span> An alert detects an export. It does not undo one.</p></div>
    </li>
    <li class="dr-zt-paths__row dr-zt-paths__row--outside">
      <p class="dr-zt-paths__stage">Outside the chain</p>
      <div class="dr-zt-paths__cell dr-zt-paths__cell--attack"><p class="dr-zt-paths__side">Attack</p><p>Skip the chain: exploit an unpatched, internet-facing system.</p></div>
      <div class="dr-zt-paths__cell dr-zt-paths__cell--defense"><p class="dr-zt-paths__side">Defense</p><p>Patch exposed systems quickly and keep an inventory of them.</p><p class="dr-zt-paths__limit"><span>Limit</span> No identity control sees this path. For how often it happens, see <a href="#where-this-could-be-wrong">Where this thesis could be wrong</a>.</p></div>
    </li>
  </ol>
</div>



<p class="wp-block-paragraph">No single row is sufficient. Phishing-resistant sign-in does nothing against a token stolen afterwards, and token binding does nothing against an attacker who talks a helpdesk into registering a new authenticator. The defense path only works as a sequence, and the last row is a reminder that some attackers never enter it. Controls are named generically here; product names elsewhere in this dossier are illustrations, not endorsements. For policy design in practice, see <a href="https://darjarihla.com/conditional-access-reduces-attack-damage/">How Conditional Access Reduces Identity Attack Damage</a>.</p>


</section>



<section class="wp-block-group dr-ld-section is-layout-flow wp-block-group-is-layout-flow">


<h2 class="wp-block-heading" id="human-system">Recovery and the human system</h2>



<p class="wp-block-paragraph">The April article’s strongest human insight was about incentives: “Support teams are often rewarded for restoring access quickly.” Since then it has become one of the best documented attack paths there is.</p>



<figure class="dr-ld-figure dr-ld-figure--diagram">
  <img src="https://darjarihla.com/wp-content/uploads/2026/10/recovery-and-the-human-system-zero-trust.webp" alt="Cybersecurityvisual die account recovery, menselijke goedkeuring en trust-herstel toont als onderdeel van access control." lang="nl" width="1448" height="1086" loading="lazy" decoding="async">
  <figcaption class="dr-ld-figure__caption">Recovery is part of access control: human processes can either strengthen or weaken trust.</figcaption>
</figure>



<p class="wp-block-paragraph">The joint CISA and FBI advisory on Scattered Spider, last revised on 29 July 2025, describes actors who “posed as employees to convince IT and/or helpdesk staff to provide sensitive information, reset the employee’s password, and transfer the employee’s MFA to a device they control.” <a class="dr-ld-ref" href="#dr-ld-e08">E08</a> M-Trends 2026 reports that highly interactive voice phishing grew to 11% of intrusions and describes groups that target IT help desks to bypass multifactor authentication. <a class="dr-ld-ref" href="#dr-ld-e09">E09</a></p>



<p class="wp-block-paragraph">In the language of the Trust Object Map, a recovery channel is the most powerful object in the system: it does not use authority, it creates it. A helpdesk reset can undo a phishing-resistant rollout in one phone call.</p>



<p class="dr-ld-mark dr-ld-mark--interpretation wp-block-paragraph"><strong>Darja Rihla interpretation</strong> Recovery should require evidence at least as strong as the authenticator it replaces. If a passkey protects the account, a caller who knows a date of birth and a manager’s name should not be able to replace it. That is a process design rule, and it is usually cheaper than another product.</p>



<p class="wp-block-paragraph">The behavioural point from April also holds. People think in doors: logged in or logged out. The April article answered that Zero Trust works less like a door than like a negotiation. With six more months of evidence, a lease is the closer image: authority granted for a term, under conditions, that can be ended early. For the wider human picture, see <a href="https://darjarihla.com/human-error-in-cybersecurity/">Human Error in Cybersecurity</a>.</p>


</section>



<section class="wp-block-group dr-ld-section is-layout-flow wp-block-group-is-layout-flow">


<h2 class="wp-block-heading" id="agents">Agents: a new population of identities</h2>



<p class="wp-block-paragraph">The April article listed workloads and managed identities among the things that can make an identity claim. It did not anticipate how quickly software agents would start acting on behalf of people. This is the largest addition in the dossier, and also the area with the least settled evidence.</p>



<p class="wp-block-paragraph">Microsoft’s 2026 Digital Defense Report states that “as AI systems and agents enter the environment, those same controls need to extend to their identities, permissions, data, and tools,” and warns that “an AI agent with excessive permissions can create a new path to data, applications, or infrastructure.” <a class="dr-ld-ref" href="#dr-ld-e05">E05</a></p>



<p class="wp-block-paragraph">Microsoft’s security guidance from May 2026 treats agent identity as a security primitive, and the reasoning is practical rather than philosophical. When an action is taken, you need to know whether the user executed it, whether the agent acted on its own behalf or whether it acted on the user’s behalf. And “you cannot scope permissions to a specific agent if you cannot distinguish that agent from other agents or a human user.” Its conclusion: “Identity is not a feature you add later.” <a class="dr-ld-ref" href="#dr-ld-e14">E14</a></p>



<figure class="dr-ld-figure dr-ld-figure--wide">
  <img src="https://darjarihla.com/wp-content/uploads/2026/10/agents-as-identities-zero-trust.webp" alt="Illustratie van meerdere niet-menselijke agents met gedelegeerde rechten en begrensde toegang binnen een trust-omgeving." lang="nl" width="1672" height="941" loading="lazy" decoding="async">
  <figcaption class="dr-ld-figure__caption">AI agents are operational identities and require boundaries, observation and revocation.</figcaption>
</figure>



<p class="wp-block-paragraph">Scale is real but hard to measure. Microsoft reports visibility into more than 500,000 agents through its own Agent 365 deployment, a figure about one large company’s internal environment, not the industry. <a class="dr-ld-ref" href="#dr-ld-e15">E15</a> Standards are still forming. NIST’s National Cybersecurity Center of Excellence published a concept paper in February 2026 that asks how agents should be identified and authorized, how their actions can be audited and attributed, and how prompt injection can be prevented and mitigated. <a class="dr-ld-ref" href="#dr-ld-e12">E12</a> NIST IR 8587 leaves agentic AI out of scope and notes that NIST and CISA recognize the gap. <a class="dr-ld-ref" href="#dr-ld-e01">E01</a></p>



<p class="wp-block-paragraph">Zero Trust used to ask whether this user should reach this resource. The five questions from the Trust Object Map still apply to an agent: who issued its identity, what that identity proves, what it can authorize, for how long, and how it is revoked. Delegation adds three questions that a human sign-in never had to answer.</p>



<ol start="6" class="wp-block-list dr-ld-agent-questions">
<li>On whose behalf is it acting?</li>



<li>With which tools?</li>



<li>Against which data?</li>
</ol>



<p class="dr-ld-mark dr-ld-mark--emerging wp-block-paragraph"><strong>Emerging</strong> Agent identity, delegation and audit are active standards work, not settled practice. Treat any claim of a complete solution with care. <a class="dr-ld-ref" href="#dr-ld-e12">E12</a></p>


</section>



<section class="wp-block-group dr-ld-section is-layout-flow wp-block-group-is-layout-flow">


<h2 class="wp-block-heading" id="simulator">Simulate a trust decision</h2>



<p class="wp-block-paragraph">The simulator turns the engine into something you can test. Change one signal at a time and watch three things: which signal moves the decision, how the sensitivity of the request shifts the threshold, and what would have to change for a different answer. Every rule the model uses is printed underneath. The numbers are illustrative; the shape of the reasoning is the point.</p>



<div class="dr-zt-sim" data-dr-zt-sim>
  <form class="dr-zt-sim__form" aria-describedby="dr-zt-sim-disclaimer">
    <fieldset class="dr-zt-sim__group">
      <legend>Who is asking?</legend>
      <label class="dr-zt-sim__option"><input type="radio" name="dr-zt-actor" value="human" data-points="0" checked><span><span class="dr-zt-sim__name">Human user</span><span class="dr-zt-sim__hint">A person signing in</span></span></label>
      <label class="dr-zt-sim__option"><input type="radio" name="dr-zt-actor" value="workload" data-points="0"><span><span class="dr-zt-sim__name">Workload</span><span class="dr-zt-sim__hint">A service calling an API</span></span></label>
      <label class="dr-zt-sim__option"><input type="radio" name="dr-zt-actor" value="agent" data-points="1" data-why="One more party stands between the person and the action, and its delegation may not be written down." data-fix="Pause, and ask the person who delegated the task to approve this action."><span><span class="dr-zt-sim__name">AI agent</span><span class="dr-zt-sim__hint">Software acting for a person</span></span></label>
    </fieldset>
    <fieldset class="dr-zt-sim__group">
      <legend>Authentication evidence</legend>
      <label class="dr-zt-sim__option"><input type="radio" name="dr-zt-auth" value="strong" data-points="0"><span><span class="dr-zt-sim__name">Phishing-resistant or key-bound</span><span class="dr-zt-sim__hint">Passkey, FIDO2, certificate, platform-issued key</span></span></label>
      <label class="dr-zt-sim__option"><input type="radio" name="dr-zt-auth" value="phishable" data-points="2" data-why="A code or push approval can be relayed through a lookalike page." data-fix="Step up to a phishing-resistant method, such as a passkey." checked><span><span class="dr-zt-sim__name">Phishable MFA</span><span class="dr-zt-sim__hint">Password plus SMS code, OTP or push</span></span></label>
      <label class="dr-zt-sim__option"><input type="radio" name="dr-zt-auth" value="weak" data-points="3" data-why="One stolen or guessed secret is enough to act as this identity." data-fix="Replace the single secret: a passkey for a person, a short-lived bound credential for software."><span><span class="dr-zt-sim__name">Single secret</span><span class="dr-zt-sim__hint">Password only, or a static API key</span></span></label>
    </fieldset>
    <fieldset class="dr-zt-sim__group">
      <legend>Device or runtime</legend>
      <label class="dr-zt-sim__option"><input type="radio" name="dr-zt-device" value="compliant" data-points="0" checked><span><span class="dr-zt-sim__name">Managed and compliant</span><span class="dr-zt-sim__hint">Registered, patched, policy met</span></span></label>
      <label class="dr-zt-sim__option"><input type="radio" name="dr-zt-device" value="noncompliant" data-points="1" data-why="The endpoint is known, but out of policy: unpatched or misconfigured." data-fix="Bring the device back into policy, or switch to a compliant one."><span><span class="dr-zt-sim__name">Managed, not compliant</span><span class="dr-zt-sim__hint">Known, but out of policy</span></span></label>
      <label class="dr-zt-sim__option"><input type="radio" name="dr-zt-device" value="unknown" data-points="2" data-why="Nothing is known about the endpoint or runtime that will hold the session." data-fix="Use a managed device or an attested runtime."><span><span class="dr-zt-sim__name">Unknown or unmanaged</span><span class="dr-zt-sim__hint">Personal device or unregistered host</span></span></label>
    </fieldset>
    <fieldset class="dr-zt-sim__group">
      <legend>What is being requested?</legend>
      <label class="dr-zt-sim__option"><input type="radio" name="dr-zt-sensitivity" value="low" data-bands="4,6,99" data-band-text="Low sensitivity tolerates some risk: up to 4 points is allowed, 5 to 6 is challenged, 7 or more is restricted. Points alone never deny it."><span><span class="dr-zt-sim__name">Low sensitivity</span><span class="dr-zt-sim__hint">Internal news, a public dashboard</span></span></label>
      <label class="dr-zt-sim__option"><input type="radio" name="dr-zt-sensitivity" value="moderate" data-bands="2,4,6" data-band-text="Moderate sensitivity: up to 2 points is allowed, 3 to 4 is challenged, 5 to 6 is restricted, 7 or more is denied."><span><span class="dr-zt-sim__name">Moderate sensitivity</span><span class="dr-zt-sim__hint">Customer records, business files</span></span></label>
      <label class="dr-zt-sim__option"><input type="radio" name="dr-zt-sensitivity" value="high" data-bands="0,3,5" data-band-text="High sensitivity tolerates no risk signal: 0 points is allowed, 1 to 3 is challenged, 4 to 5 is restricted, 6 or more is denied." checked><span><span class="dr-zt-sim__name">High sensitivity</span><span class="dr-zt-sim__hint">Admin rights, payments, bulk export</span></span></label>
    </fieldset>
    <fieldset class="dr-zt-sim__group">
      <legend>Session signals</legend>
      <label class="dr-zt-sim__option"><input type="radio" name="dr-zt-session" value="normal" data-points="0" checked><span><span class="dr-zt-sim__name">Nothing unusual</span><span class="dr-zt-sim__hint">Same device and network as at sign-in</span></span></label>
      <label class="dr-zt-sim__option"><input type="radio" name="dr-zt-session" value="anomaly" data-points="2" data-why="The token is being used from somewhere it was not issued to, a common sign of replay." data-fix="Sign in again on this device, and bind the new session to it."><span><span class="dr-zt-sim__name">Anomaly</span><span class="dr-zt-sim__hint">Token seen from a new device or location</span></span></label>
      <label class="dr-zt-sim__option"><input type="radio" name="dr-zt-session" value="revoked" data-points="0" data-fix="Nothing in this session can be repaired. Access starts again with a fresh sign-in."><span><span class="dr-zt-sim__name">Revocation signal</span><span class="dr-zt-sim__hint">Password reset, account disabled or replay confirmed</span></span></label>
    </fieldset>
    <p class="dr-zt-sim__actions"><button type="reset" class="dr-zt-sim__reset">Reset to the example</button></p>
  </form>

  <div class="dr-zt-sim__panel">
    <p class="dr-zt-sim__nojs" data-dr-zt-nojs>The live calculation needs JavaScript. Below is the worked example for the default selection, and every rule the model uses is printed after it.</p>
    <div class="dr-zt-sim__result" data-dr-zt-result data-outcome="challenge">
      <p class="dr-zt-sim__label">Trust decision</p>
      <p class="dr-zt-sim__outcome" data-dr-zt-outcome>Challenge</p>
      <ol class="dr-zt-sim__scale" aria-hidden="true">
        <li data-step="allow">Allow</li>
        <li data-step="challenge" class="is-current">Challenge</li>
        <li data-step="restrict">Restrict</li>
        <li data-step="deny">Deny</li>
      </ol>
      <p class="dr-zt-sim__subhead">Why</p>
      <ul class="dr-zt-sim__why" data-dr-zt-why>
        <li><span class="dr-zt-sim__signal"><span>Phishable MFA</span><span class="dr-zt-sim__pts">+2</span></span><span class="dr-zt-sim__reason">A code or push approval can be relayed through a lookalike page.</span></li>
      </ul>
      <p class="dr-zt-sim__calm" data-dr-zt-calm>No added risk from: Human user, Managed and compliant, Nothing unusual.</p>
      <p class="dr-zt-sim__band"><strong data-dr-zt-score>2</strong> risk points. <span data-dr-zt-band>High sensitivity tolerates no risk signal: 0 points is allowed, 1 to 3 is challenged, 4 to 5 is restricted, 6 or more is denied.</span></p>
      <p class="dr-zt-sim__rule" data-dr-zt-rule>No hard rule or floor changed the result.</p>
      <p class="dr-zt-sim__subhead">What happens</p>
      <p class="dr-zt-sim__meaning" data-dr-zt-meaning>Ask for stronger evidence before going on.</p>
      <p class="dr-zt-sim__subhead" data-dr-zt-next-head>What would change the decision</p>
      <ul class="dr-zt-sim__next" data-dr-zt-next>
        <li>Step up to a phishing-resistant method, such as a passkey.</li>
      </ul>
    </div>
    <p class="dr-zt-sim__live" role="status" aria-live="polite" aria-atomic="true" data-dr-zt-live></p>
    <p class="dr-zt-sim__disclaimer" id="dr-zt-sim-disclaimer">Educational model. Real Zero Trust decisions require organization-specific policy, telemetry and risk context.</p>
  </div>

  <div class="dr-zt-sim__model">
    <h3 class="dr-zt-sim__model-title">How the model decides</h3>
    <div class="dr-zt-sim__model-grid">
      <div class="dr-zt-sim__model-card">
        <p class="dr-zt-sim__step">Step 1. Hard rules</p>
        <ul>
          <li data-dr-zt-rule-id="r1">A revocation signal denies the request, whatever the points.</li>
          <li data-dr-zt-rule-id="r2">High sensitivity with a single secret is denied.</li>
        </ul>
      </div>
      <div class="dr-zt-sim__model-card">
        <p class="dr-zt-sim__step">Step 2. Risk points</p>
        <ul>
          <li>Authentication: phishing-resistant 0, phishable MFA 2, single secret 3.</li>
          <li>Device or runtime: compliant 0, not compliant 1, unknown 2.</li>
          <li>Session: nothing unusual 0, anomaly 2.</li>
          <li>Actor: AI agent 1, because one more party stands between the person and the action.</li>
        </ul>
      </div>
      <div class="dr-zt-sim__model-card">
        <p class="dr-zt-sim__step">Step 3. Thresholds and a floor</p>
        <ul>
          <li>Low: 0 to 4 allow, 5 to 6 challenge, 7 or more restrict.</li>
          <li>Moderate: 0 to 2 allow, 3 to 4 challenge, 5 to 6 restrict, 7 or more deny.</li>
          <li>High: 0 allow, 1 to 3 challenge, 4 to 5 restrict, 6 or more deny. Any risk signal at all, including an AI agent, means at least a challenge.</li>
          <li data-dr-zt-rule-id="f1">Floor: high sensitivity from an unknown device is at least restricted.</li>
        </ul>
      </div>
    </div>
    <dl class="dr-zt-sim__outcomes">
      <div class="dr-zt-outcome dr-zt-outcome--allow"><dt>Allow</dt><dd data-dr-zt-meaning-for="allow">Proceed within the granted scope, and keep evaluating while the session lives.</dd></div>
      <div class="dr-zt-outcome dr-zt-outcome--challenge"><dt>Challenge</dt><dd data-dr-zt-meaning-for="challenge">Ask for stronger evidence before going on.</dd></div>
      <div class="dr-zt-outcome dr-zt-outcome--restrict"><dt>Restrict</dt><dd data-dr-zt-meaning-for="restrict">Allow a narrower version: read-only, no download or export, a shorter session, fewer tools.</dd></div>
      <div class="dr-zt-outcome dr-zt-outcome--deny"><dt>Deny</dt><dd data-dr-zt-meaning-for="deny">Refuse the request. In a live session, end it and revoke its tokens.</dd></div>
    </dl>
  </div>
</div>


</section>



<section class="wp-block-group dr-ld-section dr-ld-section--falsify is-layout-flow wp-block-group-is-layout-flow">


<h2 class="wp-block-heading" id="where-this-could-be-wrong">Where this thesis could be wrong</h2>



<p class="wp-block-paragraph">A thesis that cannot be wrong is not useful. The claim under test is that trust and authority lifecycle management are becoming central to modern access security. Here is the evidence that would weaken it, and some of that evidence already exists.</p>



<h3 class="wp-block-heading">Exploitation is the most common way in</h3>



<p class="wp-block-paragraph">The Verizon 2026 Data Breach Investigations Report states that “31% of breaches now start with software vulnerabilities, beating stolen passwords as the top way attackers get in.” <a class="dr-ld-ref" href="#dr-ld-e10">E10</a> M-Trends 2026 reports that exploits were the most common initial infection vector for the sixth consecutive year, at 32% of intrusions. <a class="dr-ld-ref" href="#dr-ld-e09">E09</a> Microsoft counts nearly 40,000 CVEs published in the first half of 2026, a median time from discovery to weaponization of well below 24 hours, and enterprise remediation of critical external vulnerabilities that can take 30 to 60 days. <a class="dr-ld-ref" href="#dr-ld-e05">E05</a> An attacker who exploits an unauthenticated flaw never meets the trust decision engine at all.</p>



<h3 class="wp-block-heading">The device can sit beneath the session</h3>



<p class="wp-block-paragraph">Binding a session to a device protects against theft from somewhere else. It does not stop malware that runs on the same device and acts inside a legitimate, bound session. If endpoint compromise becomes the dominant path, identity controls shift from prevention to damage limitation.</p>



<h3 class="wp-block-heading">Complexity has a cost</h3>



<p class="wp-block-paragraph">Continuous evaluation adds moving parts: signal producers, receivers, policies and exceptions. Microsoft documents that propagation of revocation events can take up to 15 minutes. <a class="dr-ld-ref" href="#dr-ld-e11">E11</a> Misconfigured policies can block legitimate work or silently allow what they were meant to stop. Where operational complexity grows faster than the security benefit, simpler controls such as patching and least privilege may deliver more.</p>



<h3 class="wp-block-heading">Agent risk may be mostly software risk</h3>



<p class="wp-block-paragraph">The NCCoE concept paper treats prompt injection as its own control question, next to identity and authorization. <a class="dr-ld-ref" href="#dr-ld-e12">E12</a> If most agent incidents turn out to be prompt injection inside correctly scoped permissions, agent identity will matter more for accountability than for prevention.</p>



<h3 class="wp-block-heading">What survives the test</h3>



<p class="wp-block-paragraph">The same sources also cut the other way. In Microsoft’s 2026 report, Defender Experts data attributes 30% of observed initial access to user execution and another 20% to valid accounts, and the report argues that the rise of AI should not pull attention away from identity, data protection, software security, exposure management or Zero Trust. <a class="dr-ld-ref" href="#dr-ld-e05">E05</a> The defensible conclusion is narrower than the April article: identity is not everything. It is the layer where many other compromises are converted into durable authority, and where that authority can still be limited, observed and withdrawn.</p>



<p class="dr-ld-mark dr-ld-mark--interpretation wp-block-paragraph"><strong>Darja Rihla interpretation</strong> What would change this dossier’s conclusion: two consecutive years of incident data in which valid accounts and token abuse fall sharply as a share of initial access and post-compromise activity, while exploitation keeps rising.</p>


</section>



<section class="wp-block-group dr-ld-section is-layout-flow wp-block-group-is-layout-flow">


<h2 class="wp-block-heading" id="what-i-would-write-differently">What I would write differently now</h2>



<p class="wp-block-paragraph">This section is written in the first person because it concerns my own method, not the threat landscape. Each change can be checked against the April text, which stays online unchanged.</p>



<ul class="wp-block-list dr-ld-reflection">
<li><strong>I would not write “What remains is identity.”</strong> It was a rhetorical simplification, and the 2026 incident data contradicts it. I would write that identity is the layer where many compromises become durable authority.</li>



<li><strong>I would finish the sequence I announced.</strong> April promised “a sequence of trust decisions” and described two of them. The engine in this dossier is that sequence, carried past the login into issuance, evaluation and revocation.</li>



<li><strong>I would link every institutional claim.</strong> April said what Microsoft and CISA “emphasize” without linking a document. Here every external claim points to a ledger entry, and the ledger also records which sources I did not reread.</li>



<li><strong>I would say how I could be wrong.</strong> April had no failure condition. This dossier states one in the previous section, and the research record at the end names the reports that will test it.</li>
</ul>


</section>



<section class="wp-block-group dr-ld-section is-layout-flow wp-block-group-is-layout-flow">


<h2 class="wp-block-heading" id="key-takeaways">Key takeaways</h2>



<ol class="wp-block-list dr-ld-takeaways">
<li>The April article’s core survives: attackers prefer borrowed legitimacy, and much of the risk begins after login.</li>



<li>Phishing resistance is now a defined property. Passwords, codes and push approvals do not have it; origin-bound cryptographic authenticators do.</li>



<li>Tokens and sessions are authority in transit. Protect the keys that sign them, keep them short-lived or bound, and make revocation reach every system that relies on them.</li>



<li>Recovery channels create authority. Hold them to the same standard as the authenticators they replace.</li>



<li>AI agents are a new class of identity. Ask them the same five questions as any other trust object, plus three more: for whom they act, with which tools, against which data.</li>



<li>Identity is a primary control plane, not the whole system. In 2026 data, exploited software is the most common way in.</li>
</ol>



<p class="wp-block-paragraph">The April 2026 original stays online, unchanged, as the record this dossier revisits: <a href="https://darjarihla.com/zero-trust-identity-security/">Zero Trust Identity Security: The Modern Defense Framework for Access Control</a>.</p>


</section>



<section class="wp-block-group dr-ld-section is-layout-flow wp-block-group-is-layout-flow">


<h2 class="wp-block-heading" id="evidence-ledger">Evidence ledger and research record</h2>



<p class="wp-block-paragraph">Each entry records what a source actually supports, which is often narrower than the claim it is used for. All sources were consulted on 6 October 2026. Primary sources are preferred; one entry relies on specialist journalism and says so.</p>



<figure class="dr-ld-figure dr-ld-figure--wide">
  <img src="https://darjarihla.com/wp-content/uploads/2026/10/evidence-ledger-zero-trust-dossier.webp" alt="Subtiele editorial visualisatie van een evidence ledger met bronnen, verificatiepaden en geordende onderzoeksstructuur." lang="nl" width="1672" height="941" loading="lazy" decoding="async">
  <figcaption class="dr-ld-figure__caption">The dossier closes with an evidence ledger: structured sources, verification and research traceability.</figcaption>
</figure>



<ol class="dr-ld-ledger">
  <li class="dr-ld-ledger__entry" id="dr-ld-e01">
    <p class="dr-ld-ledger__claim"><span class="dr-ld-ledger__id">E01</span> Tokens and assertions need lifecycle protection: signing keys, verification, lifetime, revocation and monitoring.</p>
    <dl class="dr-ld-ledger__meta">
      <div><dt>Source</dt><dd><a href="https://nvlpubs.nist.gov/nistpubs/ir/2026/NIST.IR.8587.pdf" target="_blank" rel="noopener">NIST IR 8587, Protecting Tokens and Assertions from Forgery, Theft, and Misuse</a>, NIST and CISA, with the <a href="https://www.nist.gov/news-events/news/2026/09/nist-finalizes-guidelines-protecting-online-identity-and-access-tokens" target="_blank" rel="noopener">NIST announcement</a></dd></div>
      <div><dt>Date</dt><dd><time datetime="2026-09-15">15 September 2026</time></dd></div>
      <div><dt>Evidence type</dt><dd>Government guidance</dd></div>
      <div><dt>What it supports</dt><dd>Key protection, token verification, a validity of one hour or less for access and identity tokens, revocation and logging. Names DPoP and mutual TLS binding as proof-of-possession options. Places agentic AI out of scope. The announcement describes the forged-token incident and the 60,000 emails.</dd></div>
      <div><dt>Limits</dt><dd>Written for US federal agencies and cloud providers. Conformance is voluntary unless set by policy.</dd></div>
    </dl>
  </li>
  <li class="dr-ld-ledger__entry" id="dr-ld-e02">
    <p class="dr-ld-ledger__claim"><span class="dr-ld-ledger__id">E02</span> Passwords, one-time codes and out-of-band approvals are not phishing-resistant; AAL2 must offer a phishing-resistant option.</p>
    <dl class="dr-ld-ledger__meta">
      <div><dt>Source</dt><dd><a href="https://pages.nist.gov/800-63-4/sp800-63b.html" target="_blank" rel="noopener">NIST SP 800-63B-4, Authentication and Authenticator Management</a>, part of the Digital Identity Guidelines</dd></div>
      <div><dt>Date</dt><dd><time datetime="2025-07-31">31 July 2025</time></dd></div>
      <div><dt>Evidence type</dt><dd>Federal standard</dd></div>
      <div><dt>What it supports</dt><dd>The definition of phishing resistance, the AAL2 requirement to offer a phishing-resistant option, the requirement for federal staff, contractors and partners, and the statements that passwords, OTPs and out-of-band methods are not phishing-resistant.</dd></div>
      <div><dt>Limits</dt><dd>Normative for US federal systems. Elsewhere it is a reference, not a rule.</dd></div>
    </dl>
  </li>
  <li class="dr-ld-ledger__entry" id="dr-ld-e03">
    <p class="dr-ld-ledger__claim"><span class="dr-ld-ledger__id">E03</span> Zero Trust removes implicit trust based on network location, and authentication and authorization happen before a session.</p>
    <dl class="dr-ld-ledger__meta">
      <div><dt>Source</dt><dd><a href="https://csrc.nist.gov/pubs/sp/800/207/final" target="_blank" rel="noopener">NIST SP 800-207, Zero Trust Architecture</a></dd></div>
      <div><dt>Date</dt><dd><time datetime="2020-08">August 2020</time></dd></div>
      <div><dt>Evidence type</dt><dd>Federal architecture guideline</dd></div>
      <div><dt>What it supports</dt><dd>The core definitions used in the Trust Decision Engine, including the quoted sentence on authentication and authorization as discrete functions.</dd></div>
      <div><dt>Limits</dt><dd>Predates current work on token binding and agent identity.</dd></div>
    </dl>
  </li>
  <li class="dr-ld-ledger__entry" id="dr-ld-e04">
    <p class="dr-ld-ledger__claim"><span class="dr-ld-ledger__id">E04</span> Passkeys and FIDO2 credentials can only be used with the relying party they were registered with.</p>
    <dl class="dr-ld-ledger__meta">
      <div><dt>Source</dt><dd><a href="https://www.w3.org/TR/webauthn-2/" target="_blank" rel="noopener">W3C, Web Authentication: An API for accessing Public Key Credentials, Level 2</a></dd></div>
      <div><dt>Date</dt><dd><time datetime="2021-04-08">8 April 2021</time></dd></div>
      <div><dt>Evidence type</dt><dd>W3C Recommendation</dd></div>
      <div><dt>What it supports</dt><dd>Relying party scoping of credentials, the mechanism behind phishing resistance in the browser.</dd></div>
      <div><dt>Limits</dt><dd>Protects the authentication ceremony, not the tokens issued after it.</dd></div>
    </dl>
  </li>
  <li class="dr-ld-ledger__entry" id="dr-ld-e05">
    <p class="dr-ld-ledger__claim"><span class="dr-ld-ledger__id">E05</span> Threat actors follow trust; agent controls must extend to identities, permissions, data and tools; exploitation is fast.</p>
    <dl class="dr-ld-ledger__meta">
      <div><dt>Source</dt><dd><a href="https://www.microsoft.com/en-us/security/security-insider/threat-landscape/2026-digital-defense-report" target="_blank" rel="noopener">Microsoft, 2026 Digital Defense Report</a></dd></div>
      <div><dt>Date</dt><dd><time datetime="2026-10-01">1 October 2026</time></dd></div>
      <div><dt>Evidence type</dt><dd>Vendor threat intelligence</dd></div>
      <div><dt>What it supports</dt><dd>The quoted sentences on trust, agents and excessive permissions; nearly 40,000 CVEs in the first half of 2026; weaponization well below 24 hours; remediation of 30 to 60 days; user execution at 30% and valid accounts at 20% of observed initial access.</dd></div>
      <div><dt>Limits</dt><dd>Microsoft telemetry and incident response view. This dossier used the report’s web page, not the full PDF.</dd></div>
    </dl>
  </li>
  <li class="dr-ld-ledger__entry" id="dr-ld-e06">
    <p class="dr-ld-ledger__claim"><span class="dr-ld-ledger__id">E06</span> Device Bound Session Credentials are generally available in Chrome on Windows.</p>
    <dl class="dr-ld-ledger__meta">
      <div><dt>Source</dt><dd><a href="https://workspaceupdates.googleblog.com/2026/05/prevent-account-takeovers-with-DBSC-now-generally-available-in-the-Chrome-browser-for-Windows.html" target="_blank" rel="noopener">Google Workspace Updates, DBSC now generally available in Chrome for Windows</a></dd></div>
      <div><dt>Date</dt><dd><time datetime="2026-05-28">28 May 2026</time></dd></div>
      <div><dt>Evidence type</dt><dd>Vendor product announcement</dd></div>
      <div><dt>What it supports</dt><dd>That DBSC binds a session cookie to the device the user authenticated from, and is enabled for Google accounts in Chrome on Windows.</dd></div>
      <div><dt>Limits</dt><dd>Covers Google accounts on one platform. It is not a statement about other sites or browsers.</dd></div>
    </dl>
  </li>
  <li class="dr-ld-ledger__entry" id="dr-ld-e07">
    <p class="dr-ld-ledger__claim"><span class="dr-ld-ledger__id">E07</span> Shared Signals, CAEP and RISC were approved as final OpenID specifications.</p>
    <dl class="dr-ld-ledger__meta">
      <div><dt>Source</dt><dd><a href="https://www.helpnetsecurity.com/2025/09/22/openid-standards-real-time-security-event-sharing/" target="_blank" rel="noopener">Help Net Security, OpenID Foundation sets new standards for real-time security event sharing</a></dd></div>
      <div><dt>Date</dt><dd><time datetime="2025-09-22">22 September 2025</time></dd></div>
      <div><dt>Evidence type</dt><dd>Specialist journalism</dd></div>
      <div><dt>What it supports</dt><dd>The approval of three final specifications, and that CAEP defines how systems communicate session changes.</dd></div>
      <div><dt>Limits</dt><dd>Secondary source. The specification texts at openid.net were not reread for this version.</dd></div>
    </dl>
  </li>
  <li class="dr-ld-ledger__entry" id="dr-ld-e08">
    <p class="dr-ld-ledger__claim"><span class="dr-ld-ledger__id">E08</span> Attackers impersonate employees to helpdesks to reset passwords and move MFA; FIDO/WebAuthn resists push bombing and SIM swaps.</p>
    <dl class="dr-ld-ledger__meta">
      <div><dt>Source</dt><dd><a href="https://www.cisa.gov/news-events/cybersecurity-advisories/aa23-320a" target="_blank" rel="noopener">CISA and FBI, Cybersecurity Advisory AA23-320A, Scattered Spider</a></dd></div>
      <div><dt>Date</dt><dd><time datetime="2025-07-29">29 July 2025</time> (revision of 16 November 2023)</dd></div>
      <div><dt>Evidence type</dt><dd>Government advisory</dd></div>
      <div><dt>What it supports</dt><dd>The quoted helpdesk tactic, SIM swapping, MFA fatigue, and the recommendation of FIDO/WebAuthn or PKI-based MFA.</dd></div>
      <div><dt>Limits</dt><dd>Describes one actor group.</dd></div>
    </dl>
  </li>
  <li class="dr-ld-ledger__entry" id="dr-ld-e09">
    <p class="dr-ld-ledger__claim"><span class="dr-ld-ledger__id">E09</span> Exploits lead initial access, voice phishing is second, and attackers harvest OAuth tokens and session cookies.</p>
    <dl class="dr-ld-ledger__meta">
      <div><dt>Source</dt><dd><a href="https://cloud.google.com/blog/topics/threat-intelligence/m-trends-2026" target="_blank" rel="noopener">Mandiant, M-Trends 2026</a></dd></div>
      <div><dt>Date</dt><dd><time datetime="2026-03-23">23 March 2026</time></dd></div>
      <div><dt>Evidence type</dt><dd>Incident response report</dd></div>
      <div><dt>What it supports</dt><dd>Exploits at 32% for a sixth year, voice phishing at 11%, harvesting of long-lived OAuth tokens and session cookies, and help desks targeted to bypass MFA.</dd></div>
      <div><dt>Limits</dt><dd>Based on Mandiant investigations, which lean toward serious intrusions.</dd></div>
    </dl>
  </li>
  <li class="dr-ld-ledger__entry" id="dr-ld-e10">
    <p class="dr-ld-ledger__claim"><span class="dr-ld-ledger__id">E10</span> Software vulnerabilities overtook stolen passwords as the top way into breaches.</p>
    <dl class="dr-ld-ledger__meta">
      <div><dt>Source</dt><dd><a href="https://www.verizon.com/business/resources/reports/dbir/" target="_blank" rel="noopener">Verizon, 2026 Data Breach Investigations Report</a></dd></div>
      <div><dt>Date</dt><dd><time datetime="2026">2026 edition</time></dd></div>
      <div><dt>Evidence type</dt><dd>Breach dataset report</dd></div>
      <div><dt>What it supports</dt><dd>The quoted 31% figure for breaches that start with software vulnerabilities.</dd></div>
      <div><dt>Limits</dt><dd>Taken from the report’s web page. The full report was not reread for this version.</dd></div>
    </dl>
  </li>
  <li class="dr-ld-ledger__entry" id="dr-ld-e11">
    <p class="dr-ld-ledger__claim"><span class="dr-ld-ledger__id">E11</span> Continuous Access Evaluation revokes on critical events, allows longer-lived tokens and can take minutes to propagate.</p>
    <dl class="dr-ld-ledger__meta">
      <div><dt>Source</dt><dd><a href="https://learn.microsoft.com/en-us/entra/identity/conditional-access/concept-continuous-access-evaluation" target="_blank" rel="noopener">Microsoft Learn, Continuous access evaluation</a></dd></div>
      <div><dt>Date</dt><dd>Living documentation, read on <time datetime="2026-10-06">6 October 2026</time></dd></div>
      <div><dt>Evidence type</dt><dd>Vendor documentation</dd></div>
      <div><dt>What it supports</dt><dd>That CAE is based on CAEP, the list of critical events, tokens of up to 28 hours for CAE-capable clients, and propagation delays of up to 15 minutes.</dd></div>
      <div><dt>Limits</dt><dd>Describes one vendor’s implementation. The page can change without notice.</dd></div>
    </dl>
  </li>
  <li class="dr-ld-ledger__entry" id="dr-ld-e12">
    <p class="dr-ld-ledger__claim"><span class="dr-ld-ledger__id">E12</span> Identity, authorization and audit for AI agents are open standards questions.</p>
    <dl class="dr-ld-ledger__meta">
      <div><dt>Source</dt><dd><a href="https://www.nist.gov/news-events/news/2026/02/new-concept-paper-identity-and-authority-software-agents" target="_blank" rel="noopener">NIST NCCoE, Accelerating the Adoption of Software and AI Agent Identity and Authorization</a> (concept paper)</dd></div>
      <div><dt>Date</dt><dd><time datetime="2026-02-05">5 February 2026</time></dd></div>
      <div><dt>Evidence type</dt><dd>Concept paper for public comment</dd></div>
      <div><dt>What it supports</dt><dd>That NIST asks how agents should be identified and authorized, how their actions can be audited, and how prompt injection can be mitigated.</dd></div>
      <div><dt>Limits</dt><dd>It asks questions. It does not yet answer them.</dd></div>
    </dl>
  </li>
  <li class="dr-ld-ledger__entry" id="dr-ld-e13">
    <p class="dr-ld-ledger__claim"><span class="dr-ld-ledger__id">E13</span> Token protection binds sign-in session tokens to a registered device, and is not a complete solution.</p>
    <dl class="dr-ld-ledger__meta">
      <div><dt>Source</dt><dd><a href="https://learn.microsoft.com/en-us/entra/identity/conditional-access/concept-token-protection" target="_blank" rel="noopener">Microsoft Learn, Token protection in Conditional Access</a></dd></div>
      <div><dt>Date</dt><dd>Living documentation, read on <time datetime="2026-10-06">6 October 2026</time></dd></div>
      <div><dt>Evidence type</dt><dd>Vendor documentation</dd></div>
      <div><dt>What it supports</dt><dd>Device binding of sign-in session tokens, limited browser support, and Microsoft’s own statement that it belongs inside a defense-in-depth strategy.</dd></div>
      <div><dt>Limits</dt><dd>Platform coverage changes often. Check the page before relying on a specific scenario.</dd></div>
    </dl>
  </li>
  <li class="dr-ld-ledger__entry" id="dr-ld-e14">
    <p class="dr-ld-ledger__claim"><span class="dr-ld-ledger__id">E14</span> Agents need their own identities to make least privilege, revocation and audit possible.</p>
    <dl class="dr-ld-ledger__meta">
      <div><dt>Source</dt><dd><a href="https://www.microsoft.com/en-us/security/blog/2026/05/14/defense-in-depth-autonomous-ai-agents/" target="_blank" rel="noopener">Microsoft Security Blog, Defense in depth for autonomous AI agents</a></dd></div>
      <div><dt>Date</dt><dd><time datetime="2026-05-14">14 May 2026</time></dd></div>
      <div><dt>Evidence type</dt><dd>Vendor engineering guidance</dd></div>
      <div><dt>What it supports</dt><dd>The quoted reasoning on distinguishing user, agent and on-behalf-of actions, and the sentence “Identity is not a feature you add later.”</dd></div>
      <div><dt>Limits</dt><dd>One vendor’s design position.</dd></div>
    </dl>
  </li>
  <li class="dr-ld-ledger__entry" id="dr-ld-e15">
    <p class="dr-ld-ledger__claim"><span class="dr-ld-ledger__id">E15</span> One large organization already inventories more than 500,000 agents.</p>
    <dl class="dr-ld-ledger__meta">
      <div><dt>Source</dt><dd><a href="https://www.microsoft.com/insidetrack/blog/implementing-agent-365-how-were-governing-and-managing-ai-agents-at-microsoft/" target="_blank" rel="noopener">Microsoft Inside Track, Implementing Agent 365</a></dd></div>
      <div><dt>Date</dt><dd><time datetime="2026-08-06">6 August 2026</time></dd></div>
      <div><dt>Evidence type</dt><dd>Vendor case study</dd></div>
      <div><dt>What it supports</dt><dd>Visibility into more than 500,000 agents inside Microsoft, and registration that gives each agent a formal identity.</dd></div>
      <div><dt>Limits</dt><dd>A self-report about one company. Not an industry figure.</dd></div>
    </dl>
  </li>
</ol>



<div class="dr-ld-record">
  <p class="dr-ld-record__title">Darja Rihla research record</p>
  <dl class="dr-ld-record__list">
    <div><dt>Dossier</dt><dd>Living Dossier 01: Zero Trust after login</dd></div>
    <div><dt>Original observation</dt><dd><time datetime="2026-04-12">12 April 2026</time>, <a href="https://darjarihla.com/zero-trust-identity-security/">Zero Trust Identity Security: The Modern Defense Framework for Access Control</a></dd></div>
    <div><dt>Revisited</dt><dd><time datetime="2026-10-06">6 October 2026</time></dd></div>
    <div><dt>Version</dt><dd>1.0, first dossier edition</dd></div>
    <div><dt>Sources reviewed</dt><dd>15 ledger entries: NIST, CISA and FBI, W3C, Microsoft, Google, Mandiant and Verizon primary sources, plus one specialist news report.</dd></div>
    <div><dt>Method</dt><dd>Drafted with AI assistance inside a controlled workflow. External claims checked against the cited sources on the date above, and April quotations against the published original. Interpretation labelled separately. Human editorial review before publication.</dd></div>
    <div><dt>Next review triggers</dt><dd>NIST or NCCoE guidance on agent identity and authorization; a revision of NIST SP 800-207; device-bound sessions in more browsers; the 2027 editions of DBIR and M-Trends.</dd></div>
  </dl>
  <p class="dr-ld-record__archive"><a href="https://darjarihla.com/zero-trust-identity-security/">Read the April 2026 original <span aria-hidden="true">→</span></a></p>
</div>


</section>


</article>

]]></content:encoded>
					
		
		
		<media:content url="https://darjarihla.com/wp-content/uploads/2026/10/zero-trust-after-login-tokens-revocable-trust-2026-1024x576.webp" medium="image" />
<category>Cybersecurity &amp; Tech</category>
	</item>
		<item>
		<title>The Modern Barbershop</title>
		<link>https://darjarihla.com/the-modern-barbershop/</link>
		
		<dc:creator><![CDATA[Darja Rihla]]></dc:creator>
		<pubDate>Mon, 05 Oct 2026 18:22:26 +0000</pubDate>
				<category><![CDATA[Lifestyle & Culture]]></category>
		<guid isPermaLink="false">https://darjarihla.com/?p=2813</guid>

					<description><![CDATA[The Everyday Atlas Street &#38; Road &#8594; to The Barbershop The Modern Barbershop Grooming, Style and the Social Life of Men From Lagos to Seoul, Tunis to S&#227;o Paulo, London...]]></description>
										<content:encoded><![CDATA[
<article class="dr-post dr-post-lifestyle-culture lcp lcp--barbershop" data-dr-hub="lifestyle" aria-label="The Modern Barbershop">

  <!-- HERO: the template H1 stays the page title; this display title is visual only -->
  <div class="lcp-hero lcp-bleed">
    <div class="lcp-hero__inner">
      <div class="lcp-hero__copy">
        <p class="lcp-atlasmark">
          <a href="https://darjarihla.com/lifestyle-culture/#lc-s-barbershop">
            <span class="lcp-atlasmark__label">The Everyday Atlas</span>
            <span class="lcp-atlasmark__path">Street &amp; Road <span aria-hidden="true">&rarr;</span><span class="lcp-sr"> to </span> The Barbershop</span>
          </a>
        </p>
        <p class="lcp-hero__title" aria-hidden="true"><span>The Modern</span> <span>Barber</span><span>shop</span></p>
        <p class="lcp-hero__dek">Grooming, Style and the Social Life of Men</p>
        <p class="lcp-hero__places">From Lagos to Seoul, Tunis to S&atilde;o Paulo, London to Lahore, Kingston to Tokyo.</p>
        <p class="lcp-hero__meta"><span>Lifestyle &amp; Culture</span><span>Editorial report</span><span>One chair, many worlds</span></p>
      </div>

      <figure class="lcp-hero__plate lcp-plate">
        <svg class="lcp-svg" viewBox="0 0 600 640" role="img" aria-labelledby="lcp-p1-t lcp-p1-d" focusable="false">
          <title id="lcp-p1-t">Plate I. One chair before a mirror.</title>
          <desc id="lcp-p1-d">An empty barber chair seen from behind, facing a mirror. The mirror reflects a tiled wall, a hairstyle poster, a football sticker and a bright doorway to the street. On the counter stand a tea glass, clippers, a product bottle, a phone and a folded towel.</desc>
          <defs>
            <clipPath id="lcp-p1-glass"><rect x="102" y="50" width="396" height="308" rx="4"/></clipPath>
          </defs>
          <rect class="lcp-f-wall" x="0" y="0" width="600" height="640"/>
          <path class="lcp-s-sage lcp-w-thin" d="M0 470H600M0 520H600M0 570H600"/>
          <rect class="lcp-f-frame lcp-s-ink" x="88" y="36" width="424" height="336" rx="10"/>
          <rect class="lcp-f-glass" x="102" y="50" width="396" height="308" rx="4"/>
          <g clip-path="url(#lcp-p1-glass)">
            <path class="lcp-s-sage lcp-w-thin" d="M102 92H498M102 134H498M102 176H498M102 218H498M102 260H498M102 302H498M102 344H498M144 50V358M186 50V358M228 50V358M270 50V358M312 50V358M354 50V358M396 50V358M438 50V358M480 50V358"/>
            <rect class="lcp-f-street lcp-s-ink" x="330" y="146" width="122" height="214"/>
            <path class="lcp-s-ink lcp-w-thin" d="M346 360V250h90v110M330 214h122"/>
            <rect class="lcp-f-paper lcp-s-ink" x="126" y="70" width="106" height="140" rx="2"/>
            <circle class="lcp-f-desk lcp-s-ink" cx="153" cy="104" r="14"/>
            <path class="lcp-f-hair" d="M139 102c0-11 7-16 14-16s14 5 14 16c-5-4-23-4-28 0z"/>
            <circle class="lcp-f-desk lcp-s-ink" cx="205" cy="104" r="14"/>
            <path class="lcp-f-hair" d="M191 100c2-10 8-14 14-14s12 4 14 14c-4-2-24-2-28 0z"/>
            <circle class="lcp-f-desk lcp-s-ink" cx="153" cy="164" r="14"/>
            <path class="lcp-f-hair" d="M139 160c0-12 8-16 14-16s14 4 14 16l-6-6-8 4-8-4z"/>
            <circle class="lcp-f-desk lcp-s-ink" cx="205" cy="164" r="14"/>
            <path class="lcp-f-hair" d="M193 156c2-8 7-11 12-11s10 3 12 11c-6-3-18-3-24 0z"/>
            <path class="lcp-s-ink lcp-w-thin" d="M142 126h22M194 126h22M142 186h22M194 186h22"/>
            <circle class="lcp-f-paper lcp-s-ink" cx="446" cy="94" r="20"/>
            <path class="lcp-f-ink" d="M446 84l9.5 7-3.6 11h-11.8l-3.6-11z"/>
            <path class="lcp-s-glint" d="M250 70l70 70M282 66l44 44"/>
          </g>
          <rect class="lcp-f-counter lcp-s-ink" x="60" y="378" width="480" height="20" rx="3"/>
          <rect class="lcp-f-counter lcp-s-ink" x="74" y="398" width="452" height="80"/>
          <path class="lcp-s-ink lcp-w-thin" d="M300 398v80M90 440h40M470 440h40"/>
          <path class="lcp-f-glassware lcp-s-ink" d="M128 377c-3-14 3-24 1-38h26c-2 14 4 24 1 38z"/>
          <path class="lcp-f-tea" d="M129.5 360c1-6 1-9 0.5-13h24c-0.5 4-0.5 7 0.5 13 0.5 6 1 11 0 16h-25.6c-1-5-0.4-10 0.6-16z"/>
          <ellipse class="lcp-f-paper lcp-s-ink" cx="142" cy="379" rx="20" ry="3.5"/>
          <rect class="lcp-f-chair lcp-s-ink" x="196" y="358" width="70" height="20" rx="9"/>
          <rect class="lcp-f-metal lcp-s-ink" x="262" y="360" width="14" height="16" rx="2"/>
          <path class="lcp-s-ink lcp-w-thin" d="M276 362h5M276 366h5M276 370h5M276 374h5M196 368c-14 0-18 10-18 20s4 22 10 30"/>
          <rect class="lcp-f-tea lcp-s-ink" x="328" y="328" width="12" height="14" rx="2"/>
          <rect class="lcp-f-glassware lcp-s-ink" x="316" y="342" width="36" height="36" rx="7"/>
          <rect class="lcp-f-paper lcp-s-ink lcp-w-thin" x="322" y="352" width="24" height="14" rx="2"/>
          <path class="lcp-f-ink lcp-s-ink" d="M388 378l12-13h50l-12 13z"/>
          <rect class="lcp-f-paper lcp-s-ink" x="466" y="368" width="54" height="12" rx="3"/>
          <path class="lcp-f-paper lcp-s-ink" d="M500 380h20v58c0 4-3 6-6 6h-8c-3 0-6-2-6-6z"/>
          <path class="lcp-s-sage" d="M500 420h20M500 428h20"/>
          <g class="lcp-chair">
            <rect class="lcp-f-chair lcp-s-ink" x="262" y="262" width="76" height="38" rx="16"/>
            <rect class="lcp-f-metal lcp-s-ink" x="294" y="300" width="12" height="16"/>
            <rect class="lcp-f-chair lcp-s-ink" x="214" y="312" width="172" height="196" rx="36"/>
            <path class="lcp-s-seam lcp-w-thin" d="M258 330v164M300 326v172M342 330v164"/>
            <rect class="lcp-f-chair lcp-s-ink" x="166" y="424" width="62" height="18" rx="9"/>
            <rect class="lcp-f-chair lcp-s-ink" x="372" y="424" width="62" height="18" rx="9"/>
            <path class="lcp-s-ink" d="M190 442v46M410 442v46"/>
            <rect class="lcp-f-chair lcp-s-ink" x="192" y="486" width="216" height="26" rx="11"/>
            <rect class="lcp-f-metal lcp-s-ink" x="290" y="512" width="20" height="58"/>
            <path class="lcp-s-ink" d="M310 552h30l8 7"/>
            <ellipse class="lcp-f-metal lcp-s-ink" cx="300" cy="584" rx="96" ry="16"/>
          </g>
          <path class="lcp-s-ink" d="M0 604H600"/>
          <path class="lcp-s-ink lcp-w-thin" d="M188 614q4-4 9 0M222 622q3-3 8 1M386 616q4-4 9 0M414 624q3-3 7 0M252 628q4-3 8 1M346 630q3-3 8 0"/>
        </svg>
        <figcaption><span class="lcp-plate__no">Plate I</span> One chair before a mirror. Tiles, clippers, a towel, a poster, a tea glass, a football sticker, a bottle, a phone: a room that could stand in many countries and belongs to none of them. Authored drawing, not a photograph.</figcaption>
      </figure>
    </div>
  </div>

  <div class="lcp-lede lcp-measure">
    <p class="lcp-lede__label">In short</p>
    <p>The barbershop is one of the few rooms that exists in almost every city on earth and still feels local in each of them. This report follows the camera outward, from the face in the mirror to the chair, the shop, the street, the routes of migration and the world, and then back to the chair.</p>
    <p>Its argument is simple. <strong>The technique has gone global. The room has stayed local.</strong></p>
  </div>

  <!-- I. THE CHAIR -->
  <section class="lcp-ch lcp-ch--chair" aria-labelledby="the-chair">
    <div class="lcp-ch__head lcp-measure">
      <p class="lcp-ch__scale">Scale: the face</p>
      <h2 id="the-chair"><span class="lcp-num">I.</span> The chair</h2>
    </div>

    <div class="lcp-credits">
      <p>A man sits in a chair.</p>
      <p>A cape closes around his neck.</p>
      <p>Clippers begin.</p>
    </div>

    <div class="lcp-prose lcp-measure">
      <p>For the next twenty minutes, very little is asked of him. He does not have to perform, decide or explain much. He has to sit still, keep his head where the barber puts it, and trust a stranger with a blade near his ear.</p>
      <p>That trust is the first thing a barbershop offers. The haircut comes second.</p>
      <p>Look closely and the scene is made of small, repeated objects. The paper strip around the neck. The cape snapped shut at the back. The clipper guard clicked into place. The edge of the mirror, where the client watches the barber&rsquo;s face as much as his own. The barber&rsquo;s hand resting on the crown of a head, as if it were the most ordinary thing in the world.</p>
      <p>Outside the shop, touching another man&rsquo;s head is rarely casual. Inside, it is handed over every few weeks, without ceremony.</p>
    </div>

    <figure class="lcp-contact lcp-wide">
      <ol class="lcp-contact__strip">
        <li>
          <svg class="lcp-svg" viewBox="0 0 120 120" aria-hidden="true" focusable="false">
            <rect class="lcp-f-desk" width="120" height="120"/>
            <path class="lcp-f-cape lcp-s-ink" d="M22 34c18-8 58-8 76 0l14 74H8z"/>
            <path class="lcp-s-seam lcp-w-thin" d="M40 40l-10 66M60 38v68M80 40l10 66"/>
            <circle class="lcp-f-paper lcp-s-ink" cx="60" cy="31" r="4.5"/>
          </svg>
          <span>01 &middot; Cape</span>
        </li>
        <li>
          <svg class="lcp-svg" viewBox="0 0 120 120" aria-hidden="true" focusable="false">
            <rect class="lcp-f-desk" width="120" height="120"/>
            <path class="lcp-f-wall lcp-s-ink" d="M44 0c0 30-4 50-14 80h60C80 50 76 30 76 0"/>
            <path class="lcp-f-paper lcp-s-ink" d="M30 52l6-4 6 5 6-5 6 5 6-5 6 5 6-5 6 5 6-5 6 4-2 14H32z"/>
            <path class="lcp-f-cape lcp-s-ink" d="M10 70c26-6 74-6 100 0l8 50H2z"/>
          </svg>
          <span>02 &middot; Neck strip</span>
        </li>
        <li>
          <svg class="lcp-svg" viewBox="0 0 120 120" aria-hidden="true" focusable="false">
            <rect class="lcp-f-desk" width="120" height="120"/>
            <rect class="lcp-f-metal lcp-s-ink" x="40" y="20" width="40" height="18" rx="3"/>
            <path class="lcp-s-ink lcp-w-thin" d="M44 20v-7M50 20v-7M56 20v-7M62 20v-7M68 20v-7M74 20v-7"/>
            <rect class="lcp-f-chair lcp-s-ink" x="42" y="36" width="36" height="74" rx="14"/>
            <rect class="lcp-f-paper lcp-s-ink" x="54" y="56" width="12" height="20" rx="4"/>
          </svg>
          <span>03 &middot; Clipper</span>
        </li>
        <li>
          <svg class="lcp-svg" viewBox="0 0 120 120" aria-hidden="true" focusable="false">
            <rect class="lcp-f-desk" width="120" height="120"/>
            <path class="lcp-f-frame lcp-s-ink" d="M10 120V22c0-7 5-12 12-12h98v18H34c-3 0-6 3-6 6v86z"/>
            <path class="lcp-f-glass" d="M28 120V34c0-3 3-6 6-6h86v92z"/>
            <path class="lcp-s-glint" d="M50 74l30-30M58 90l40-40"/>
          </svg>
          <span>04 &middot; Mirror edge</span>
        </li>
        <li>
          <svg class="lcp-svg" viewBox="0 0 120 120" aria-hidden="true" focusable="false">
            <rect class="lcp-f-desk" width="120" height="120"/>
            <rect class="lcp-f-ink" x="12" y="66" width="96" height="10" rx="3"/>
            <path class="lcp-s-ink lcp-w-thin" d="M18 76v14M24 76v14M30 76v14M36 76v14M42 76v14M48 76v14M54 76v14M60 76v14M66 76v14M72 76v14M78 76v14M84 76v14M90 76v14M96 76v14M102 76v14"/>
            <path class="lcp-f-wall lcp-s-ink" d="M30 70c-4-16 2-30 14-32l40-2c9 0 13 6 12 14l-2 20z"/>
            <path class="lcp-s-ink lcp-w-thin" d="M50 38v22M64 37v22M78 36v22"/>
            <path class="lcp-f-wall lcp-s-ink" d="M30 70c-8 2-14 8-14 14 0 4 6 4 10 0l10-8z"/>
          </svg>
          <span>05 &middot; The barber&rsquo;s hand</span>
        </li>
      </ol>
      <figcaption>Close-ups. Five details that are the same in Tunis and Tokyo. Authored drawings.</figcaption>
    </figure>
  </section>

  <!-- II. A GLOBAL ROOM -->
  <section class="lcp-ch lcp-ch--global" aria-labelledby="a-global-room">
    <div class="lcp-ch__head lcp-measure">
      <p class="lcp-ch__scale">Scale: the shop</p>
      <h2 id="a-global-room"><span class="lcp-num">II.</span> A global room</h2>
    </div>

    <p class="lcp-statement lcp-wide">There is no single global barber culture.</p>

    <div class="lcp-prose lcp-measure">
      <p>There is a global format: a chair that turns and tilts, a mirror, a set of tools, one person who cuts and another who waits. The format travels well. What happens inside it does not travel as one culture.</p>
      <p>A barbershop in Tunis, a barbing salon in Lagos, a <i lang="tr">berber</i> in Istanbul, a <i lang="ja-Latn">tokoya</i> in Tokyo and a <i lang="pt">barbearia</i> in S&atilde;o Paulo share the chair. They do not share the same conversation, the same music, the same idea of a good finish, or the same sense of how long a customer may stay without buying anything.</p>
      <p>The modern barbershop is also a story of movement. Barbers move with migration and carry their shop culture with them. On many European high streets the barbershops speak the languages of those routes: Turkish, Kurdish, Arabic, Amazigh languages, the French of West Africa, the English of the Caribbean. In the United States, the historian Quincy T. Mills has shown how Black barbers and barbershops became institutions in their own right, shaped by segregation, enterprise and community life.</p>
    </div>

    <figure class="lcp-route lcp-bleed" aria-labelledby="lcp-route-t">
      <div class="lcp-route__inner">
        <p class="lcp-route__title" id="lcp-route-t"><span>The Global Barber Route</span> Eleven places, one lens each.</p>
        <ol class="lcp-route__list">
          <li><span class="lcp-route__city">Tunis</span><span class="lcp-route__lens">neighbourhood continuity</span></li>
          <li><span class="lcp-route__city">Lagos</span><span class="lcp-route__lens">precision and enterprise</span></li>
          <li><span class="lcp-route__city">Kingston</span><span class="lcp-route__lens">sound and community</span></li>
          <li><span class="lcp-route__city">New York</span><span class="lcp-route__lens">diaspora and technique</span></li>
          <li><span class="lcp-route__city">London</span><span class="lcp-route__lens">the high-street mix</span></li>
          <li><span class="lcp-route__city">Istanbul</span><span class="lcp-route__lens">ritual and service</span></li>
          <li><span class="lcp-route__city">Lahore</span><span class="lcp-route__lens">the street chair</span></li>
          <li><span class="lcp-route__city">Seoul</span><span class="lcp-route__lens">grooming and changing masculinity</span></li>
          <li><span class="lcp-route__city">Tokyo</span><span class="lcp-route__lens">licence and precision</span></li>
          <li><span class="lcp-route__city">Jakarta</span><span class="lcp-route__lens">learning from the screen</span></li>
          <li><span class="lcp-route__city">S&atilde;o Paulo</span><span class="lcp-route__lens">barbearia and street style</span></li>
        </ol>
        <figcaption class="lcp-route__note">One lens per place. A lens is what this report looks at there, not a description of everyone who lives there.</figcaption>
      </div>
    </figure>
  </section>

  <!-- III. REGIONAL WORLDS -->
  <section class="lcp-ch lcp-ch--regions" aria-labelledby="regional-worlds">
    <div class="lcp-ch__head lcp-measure">
      <p class="lcp-ch__scale">Scale: the neighbourhood</p>
      <h2 id="regional-worlds"><span class="lcp-num">III.</span> Regional worlds</h2>
    </div>
    <div class="lcp-prose lcp-measure">
      <p>The chair is the same. The room around it changes. Seven scenes follow, each read as a field guide: what to look for, not a verdict on a region.</p>
    </div>

    <section class="lcp-scene lcp-scene--na lcp-wide" aria-labelledby="lcp-scene-na">
      <figure class="lcp-scene__plate lcp-plate">
        <svg class="lcp-svg" viewBox="0 0 480 320" role="img" aria-labelledby="lcp-sna-t" focusable="false">
          <title id="lcp-sna-t">A neighbourhood barbershop facade with an open arched door, a sign in French and Arabic, a striped awning, a tiled base and a chair outside for regulars.</title>
          <rect class="lcp-f-street" width="480" height="320"/>
          <rect class="lcp-f-wall lcp-s-ink" x="34" y="18" width="412" height="276"/>
          <rect class="lcp-f-paper lcp-s-ink" x="96" y="36" width="288" height="46" rx="3"/>
          <text class="lcp-svg-type lcp-svg-type--mono" x="160" y="66" text-anchor="middle">COIFFURE</text>
          <text class="lcp-svg-type lcp-svg-type--ar" x="320" y="68" text-anchor="middle" lang="ar" direction="rtl">&#1581;&#1604;&#1575;&#1602;</text>
          <path class="lcp-s-ink lcp-w-thin" d="M240 44v30"/>
          <path class="lcp-f-paper lcp-s-ink" d="M78 90h324l-14 28H92z"/>
          <path class="lcp-f-mark" d="M102 90h22l-4 28h-16zM146 90h22l-2 28h-18zM190 90h22v28h-20zM234 90h22l2 28h-22zM278 90h22l4 28h-22zM322 90h22l6 28h-22zM366 90h22l8 28h-20z"/>
          <path class="lcp-f-interior lcp-s-ink" d="M196 294V176c0-40 88-40 88 0v118z"/>
          <rect class="lcp-f-glass" x="214" y="186" width="52" height="40" rx="3"/>
          <path class="lcp-f-chair" d="M224 294v-14h-6v-24c0-6 4-10 10-10h24c6 0 10 4 10 10v24h-6v14z"/>
          <rect class="lcp-f-glass lcp-s-ink" x="70" y="150" width="88" height="92"/>
          <path class="lcp-s-ink lcp-w-thin" d="M114 150v92M70 196h88"/>
          <path class="lcp-s-sage" d="M34 270h412"/>
          <path class="lcp-f-sage" d="M34 274h20v20H34zM74 274h20v20H74zM114 274h20v20h-20zM154 274h20v20h-20zM300 274h20v20h-20zM340 274h20v20h-20zM380 274h20v20h-20zM420 274h20v20h-20z"/>
          <path class="lcp-f-desk lcp-s-ink" d="M330 248h44v8h-44zM334 256v38M370 256v38M330 248v-34h6v34M368 248v-34h6v34M330 214h44"/>
          <path class="lcp-f-sage lcp-s-ink" d="M84 294l6-26h28l6 26z"/>
          <path class="lcp-s-sage" d="M104 268c-10-22-2-34 0-44M104 268c8-18 18-24 22-34M104 268c-6-12-18-16-24-24"/>
          <path class="lcp-s-ink" d="M0 300h480"/>
        </svg>
        <figcaption><span class="lcp-plate__no">Scene 1</span> The door stays open; the chair is visible from the pavement.</figcaption>
      </figure>
      <div class="lcp-scene__text">
        <h3 class="lcp-scene__region" id="lcp-scene-na">North Africa</h3>
        <p class="lcp-scene__cities">Tunis &middot; Algiers &middot; Casablanca &middot; Cairo</p>
        <p>In the cities of North Africa, the barbershop is often a neighbourhood fixture rather than a destination. It opens onto the street. Men greet the barber without needing a haircut, and in one afternoon the chair can hear Arabic in its local forms, French and, in parts of the Maghreb, Tamazight.</p>
        <p>Continuity matters here. A man can keep the same barber for decades, and a son can inherit him.</p>
        <p class="lcp-lookfor__label">Look for</p>
        <ul class="lcp-lookfor">
          <li>the sign in two scripts</li>
          <li>the open door and the chair visible from outside</li>
          <li>the radio or television tuned to football</li>
          <li>regulars who come in to talk, not to be cut</li>
        </ul>
      </div>
    </section>

    <section class="lcp-scene lcp-scene--wa lcp-wide" aria-labelledby="lcp-scene-wa">
      <div class="lcp-scene__text">
        <h3 class="lcp-scene__region" id="lcp-scene-wa">West Africa</h3>
        <p class="lcp-scene__cities">Lagos &middot; Accra &middot; Dakar &middot; Abidjan</p>
        <p>In Lagos a barbershop is often called a barbing salon. The line-up is the signature: the edge at the forehead, the temples and the beard drawn with a trimmer as if with a ruler, done last and done slowly.</p>
        <p>For decades, shops across the region advertised with hand-painted signboards: rows of heads showing the cuts on offer, painted by self-taught sign artists or by the barbers themselves. A 2020 exhibition at SFO Museum gathered such signs from Ghana, Burkina Faso, C&ocirc;te d&rsquo;Ivoire, Togo and Benin, with styles named after whatever felt modern, from &ldquo;America Boy&rdquo; to &ldquo;Boeing&rdquo;.</p>
        <p class="lcp-lookfor__label">Look for</p>
        <ul class="lcp-lookfor">
          <li>the painted sign, or its digital successor on a phone</li>
          <li>the line-up as the final, slowest step</li>
          <li>style names borrowed from elsewhere</li>
        </ul>
      </div>
      <figure class="lcp-scene__plate lcp-plate">
        <svg class="lcp-svg" viewBox="0 0 480 320" role="img" aria-labelledby="lcp-swa-t" focusable="false">
          <title id="lcp-swa-t">A close-up diagram of a line-up: a sharp forehead line and temple corners with dotted guide lines and a trimmer, beside a painted signboard with six numbered hairstyles.</title>
          <rect class="lcp-f-desk" width="480" height="320"/>
          <path class="lcp-f-wall lcp-s-ink" d="M140 48c-56 0-86 46-84 112 2 72 34 130 84 136 50-6 82-64 84-136 2-66-28-112-84-112z"/>
          <path class="lcp-f-hair" d="M56 160c-2-64 28-110 84-112 56 2 86 48 84 112l-10-4-4-40-14-10H84l-14 10-4 40z"/>
          <path class="lcp-f-hair" d="M66 176l6 40c10 44 38 72 68 74 30-2 58-30 68-74l6-40-8 2-6 40c-10 30-32 42-60 42s-50-12-60-42l-6-40z"/>
          <path class="lcp-f-hair" d="M112 230c12-6 20-6 28-2 8-4 16-4 28 2-12 4-20 4-28 2-8 2-16 2-28-2z"/>
          <path class="lcp-s-mark lcp-dash" d="M30 106h220M84 82v52M196 82v52M58 178l30 70M222 178l-30 70"/>
          <g transform="rotate(-28 246 116)">
            <rect class="lcp-f-chair lcp-s-ink" x="236" y="58" width="22" height="70" rx="8"/>
            <rect class="lcp-f-metal lcp-s-ink" x="234" y="124" width="26" height="10" rx="2"/>
          </g>
          <rect class="lcp-f-paper lcp-s-ink" x="290" y="28" width="170" height="262" rx="3"/>
          <text class="lcp-svg-type" x="375" y="58" text-anchor="middle">EXTRA O</text>
          <g class="lcp-signheads">
            <circle class="lcp-f-wall lcp-s-ink" cx="332" cy="98" r="20"/><path class="lcp-f-hair" d="M312 96c0-14 9-20 20-20s20 6 20 20c-6-5-34-5-40 0z"/>
            <circle class="lcp-f-wall lcp-s-ink" cx="418" cy="98" r="20"/><path class="lcp-f-hair" d="M398 92l10-16h20l10 16-8 2-12-6-12 6z"/>
            <circle class="lcp-f-wall lcp-s-ink" cx="332" cy="168" r="20"/><path class="lcp-f-hair" d="M312 162c4-12 12-16 20-16s16 4 20 16l-4-2h-32z"/>
            <circle class="lcp-f-wall lcp-s-ink" cx="418" cy="168" r="20"/><path class="lcp-f-hair" d="M410 146h16l-2 14h-12z"/>
            <circle class="lcp-f-wall lcp-s-ink" cx="332" cy="238" r="20"/><path class="lcp-f-hair" d="M312 236c0-16 10-22 20-22s20 6 20 22l-4-8-6 4-10-6-10 6-6-4z"/>
            <circle class="lcp-f-wall lcp-s-ink" cx="418" cy="238" r="20"/><path class="lcp-f-hair" d="M398 232c2-12 10-16 20-16s18 4 20 16c-8-2-32-2-40 0z"/>
          </g>
          <text class="lcp-svg-type lcp-svg-type--mono lcp-svg-type--s" x="332" y="132" text-anchor="middle">No. 1</text>
          <text class="lcp-svg-type lcp-svg-type--mono lcp-svg-type--s" x="418" y="132" text-anchor="middle">No. 2</text>
          <text class="lcp-svg-type lcp-svg-type--mono lcp-svg-type--s" x="332" y="202" text-anchor="middle">No. 3</text>
          <text class="lcp-svg-type lcp-svg-type--mono lcp-svg-type--s" x="418" y="202" text-anchor="middle">No. 4</text>
          <text class="lcp-svg-type lcp-svg-type--mono lcp-svg-type--s" x="332" y="276" text-anchor="middle">No. 5</text>
          <text class="lcp-svg-type lcp-svg-type--mono lcp-svg-type--s" x="418" y="276" text-anchor="middle">No. 6</text>
        </svg>
        <figcaption><span class="lcp-plate__no">Scene 2</span> The line-up, and the signboard tradition. Generic styles, not a copy of a real sign.</figcaption>
      </figure>
    </section>

    <section class="lcp-scene lcp-scene--cb lcp-wide" aria-labelledby="lcp-scene-cb">
      <figure class="lcp-scene__plate lcp-plate lcp-plate--wide">
        <svg class="lcp-svg" viewBox="0 0 720 260" role="img" aria-labelledby="lcp-scb-t" focusable="false">
          <title id="lcp-scb-t">A waiting bench with three customers, a speaker in the corner sending out sound waves, and a clock on the wall.</title>
          <rect class="lcp-f-wall" width="720" height="260"/>
          <rect class="lcp-f-chair lcp-s-ink" x="40" y="70" width="58" height="96" rx="8"/>
          <circle class="lcp-f-ink" cx="69" cy="100" r="14"/><circle class="lcp-f-metal" cx="69" cy="100" r="5"/>
          <circle class="lcp-f-ink" cx="69" cy="142" r="9"/>
          <path class="lcp-s-mark" d="M112 96c10 8 10 24 0 32M126 86c16 14 16 38 0 52M140 76c22 18 22 54 0 72"/>
          <circle class="lcp-f-paper lcp-s-ink" cx="620" cy="62" r="26"/>
          <path class="lcp-s-ink" d="M620 62V46M620 62l12 8"/>
          <rect class="lcp-f-counter lcp-s-ink" x="196" y="176" width="380" height="16" rx="4"/>
          <path class="lcp-s-ink" d="M214 192v40M558 192v40"/>
          <g class="lcp-figure">
            <circle class="lcp-f-ink" cx="262" cy="104" r="20"/>
            <path class="lcp-f-sage lcp-s-ink" d="M226 178c0-36 14-52 36-52s36 16 36 52z"/>
          </g>
          <g class="lcp-figure">
            <circle class="lcp-f-ink" cx="386" cy="100" r="20"/>
            <path class="lcp-f-tea lcp-s-ink" d="M350 178c0-38 14-54 36-54s36 16 36 54z"/>
            <rect class="lcp-f-ink" x="372" y="146" width="16" height="24" rx="3"/>
          </g>
          <g class="lcp-figure">
            <circle class="lcp-f-ink" cx="510" cy="106" r="20"/>
            <path class="lcp-f-paper lcp-s-ink" d="M474 178c0-34 14-50 36-50s36 16 36 50z"/>
          </g>
          <path class="lcp-s-ink" d="M0 232h720"/>
        </svg>
        <figcaption><span class="lcp-plate__no">Scene 3</span> The bench is an audience. Who controls the music controls the room.</figcaption>
      </figure>
      <div class="lcp-scene__text lcp-scene__text--cols">
        <div>
          <h3 class="lcp-scene__region" id="lcp-scene-cb">The Caribbean</h3>
          <p class="lcp-scene__cities">Kingston &middot; Port of Spain &middot; Bridgetown</p>
        </div>
        <div>
          <p>Music arrives before the haircut. A speaker in the corner, a playlist the barber controls, customers who stay longer than they need to because the conversation is good. In Caribbean shops, and in the Caribbean diaspora of London, Toronto and New York, the barbershop is a place where sound, argument and news circulate together.</p>
          <p class="lcp-lookfor__label">Look for</p>
          <ul class="lcp-lookfor">
            <li>who chooses the music</li>
            <li>the waiting bench as an audience</li>
            <li>a haircut timed around a match or a song</li>
          </ul>
        </div>
      </div>
    </section>

    <section class="lcp-scene lcp-scene--me lcp-wide" aria-labelledby="lcp-scene-me">
      <div class="lcp-scene__text">
        <h3 class="lcp-scene__region" id="lcp-scene-me">T&uuml;rkiye and the Middle East</h3>
        <p class="lcp-scene__cities">Istanbul &middot; Beirut &middot; Amman &middot; Riyadh &middot; Dubai</p>
        <p>Here the beard is architecture. The cheek line is set high or low, the neckline sharp, the moustache shaped as a decision of its own. The service is often longer than the cut: hot towels, a straight razor, threading on the cheeks in some shops, a splash of cologne at the end, tea that arrives without being ordered.</p>
        <p>The Turkish barber has become an export in its own right. &ldquo;Turkish barber&rdquo; is now a sign on streets far from T&uuml;rkiye.</p>
      </div>
      <figure class="lcp-scene__plate lcp-plate lcp-plate--pinned">
        <svg class="lcp-svg" viewBox="0 0 400 360" role="img" aria-labelledby="lcp-sme-t" focusable="false">
          <title id="lcp-sme-t">A diagram of beard architecture with four numbered lines: the cheek line, the moustache, the neckline and the fade from hair into beard.</title>
          <rect class="lcp-f-desk" width="400" height="360"/>
          <path class="lcp-f-wall lcp-s-ink" d="M200 30c-70 0-104 54-102 128 2 92 46 166 102 172 56-6 100-80 102-172 2-74-32-128-102-128z"/>
          <path class="lcp-f-wall lcp-s-ink" d="M98 150c-14-4-22 6-20 22s12 26 22 24M302 150c14-4 22 6 20 22s-12 26-22 24"/>
          <path class="lcp-f-hair" d="M98 140c0-70 40-112 102-112s102 42 102 112l-12-8c-4-38-28-62-90-64-62 2-86 26-90 64z"/>
          <path class="lcp-f-hair lcp-o-60" d="M104 150l8 52 6-2-6-50z M296 150l-8 52-6-2 6-50z"/>
          <path class="lcp-f-hair" d="M110 202c4 70 44 122 90 128 46-6 86-58 90-128l-12 4c-10 40-30 56-46 60-10-10-22-14-32-14s-22 4-32 14c-16-4-36-20-46-60z"/>
          <path class="lcp-f-hair" d="M156 246c14-10 30-12 44-6 14-6 30-4 44 6-10 8-28 10-44 4-16 6-34 4-44-4z"/>
          <path class="lcp-s-mark lcp-dash" d="M112 204c22 8 44 12 60 30M288 204c-22 8-44 12-60 30M140 312c36 22 84 22 120 0"/>
          <g class="lcp-pins">
            <circle class="lcp-pin" cx="104" cy="226" r="13"/><text class="lcp-pin__n" x="104" y="231" text-anchor="middle">1</text>
            <circle class="lcp-pin" cx="200" cy="222" r="13"/><text class="lcp-pin__n" x="200" y="227" text-anchor="middle">2</text>
            <circle class="lcp-pin" cx="200" cy="344" r="13"/><text class="lcp-pin__n" x="200" y="349" text-anchor="middle">3</text>
            <circle class="lcp-pin" cx="320" cy="132" r="13"/><text class="lcp-pin__n" x="320" y="137" text-anchor="middle">4</text>
          </g>
        </svg>
        <figcaption>
          <span class="lcp-plate__no">Scene 4</span> Beard architecture.
          <ol class="lcp-legend">
            <li>Cheek line: high, low or natural</li>
            <li>Moustache: shaped on its own</li>
            <li>Neckline: where the beard ends</li>
            <li>The fade from hair into beard</li>
          </ol>
        </figcaption>
      </figure>
    </section>

    <section class="lcp-scene lcp-scene--sa lcp-wide" aria-labelledby="lcp-scene-sa">
      <figure class="lcp-scene__plate lcp-plate">
        <svg class="lcp-svg" viewBox="0 0 480 320" role="img" aria-labelledby="lcp-ssa-t" focusable="false">
          <title id="lcp-ssa-t">A street barber&#8217;s corner: a mirror nailed to a wall beside a tree, a wooden chair, a stool with a tool case, a large umbrella and a hand-written price board.</title>
          <rect class="lcp-f-street" width="480" height="320"/>
          <rect class="lcp-f-wall lcp-s-ink" x="60" y="84" width="420" height="214"/>
          <path class="lcp-f-counter lcp-s-ink" d="M18 300c6-60 10-150 4-250h34c-6 100-2 190 6 250z"/>
          <path class="lcp-s-ink lcp-w-thin" d="M30 90c4 10 4 20 0 30M44 160c-4 10-4 20 0 30"/>
          <path class="lcp-f-mark lcp-s-ink" d="M150 70c0-46 220-46 220 0z"/>
          <path class="lcp-s-ink" d="M260 26v178M150 70h220"/>
          <rect class="lcp-f-frame lcp-s-ink" x="226" y="110" width="68" height="84" rx="3"/>
          <rect class="lcp-f-glass" x="232" y="116" width="56" height="72"/>
          <circle class="lcp-f-ink" cx="260" cy="104" r="3"/>
          <path class="lcp-f-desk lcp-s-ink" d="M220 236h80v10h-80zM226 246v52M294 246v52M220 236v-44h10v44M290 236v-44h10v44M220 196h80"/>
          <path class="lcp-f-desk lcp-s-ink" d="M342 262h50v8h-50zM348 270v28M386 270v28"/>
          <rect class="lcp-f-chair lcp-s-ink" x="346" y="242" width="42" height="20" rx="3"/>
          <rect class="lcp-f-paper lcp-s-ink" x="380" y="120" width="76" height="70" rx="2"/>
          <text class="lcp-svg-type lcp-svg-type--mono lcp-svg-type--s" x="418" y="144" text-anchor="middle">CUT</text>
          <text class="lcp-svg-type lcp-svg-type--mono lcp-svg-type--s" x="418" y="162" text-anchor="middle">SHAVE</text>
          <text class="lcp-svg-type lcp-svg-type--mono lcp-svg-type--s" x="418" y="180" text-anchor="middle">MASSAGE</text>
          <path class="lcp-s-ink" d="M0 298h480"/>
        </svg>
        <figcaption><span class="lcp-plate__no">Scene 5</span> The barbershop does not always need a shop.</figcaption>
      </figure>
      <div class="lcp-scene__text">
        <h3 class="lcp-scene__region" id="lcp-scene-sa">South Asia</h3>
        <p class="lcp-scene__cities">Lahore &middot; Karachi &middot; Delhi &middot; Dhaka</p>
        <p>The barbershop does not always need a shop. On pavements and under trees, a chair, a mirror fixed to a wall and a small case of tools can be enough. Street barbers and small salons work a few doors away from branded chains, and a straight-razor shave or a head massage can be part of the same visit as a fade.</p>
        <p class="lcp-lookfor__label">Look for</p>
        <ul class="lcp-lookfor">
          <li>the mirror on the wall</li>
          <li>the price written by hand</li>
          <li>the head massage at the end</li>
          <li>cricket on somebody&rsquo;s phone</li>
        </ul>
      </div>
    </section>

    <section class="lcp-scene lcp-scene--ea lcp-wide" aria-labelledby="lcp-scene-ea">
      <div class="lcp-scene__text">
        <h3 class="lcp-scene__region" id="lcp-scene-ea">East Asia</h3>
        <p class="lcp-scene__cities">Seoul &middot; Tokyo &middot; Osaka &middot; Taipei</p>
        <p>Precision becomes a style of its own. In Japan, the line between barber and hairdresser is a matter of licence: barbers (<i lang="ja-Latn">rihatsushi</i>) and hairdressers (<i lang="ja-Latn">biyoshi</i>) hold separate licences, and only barbers are licensed to shave.</p>
        <p>In Seoul, the lens of this report is grooming and how ideas of masculinity change: what happens when men&rsquo;s haircuts, skincare and style are discussed openly rather than quietly.</p>
        <p class="lcp-lookfor__label">Look for</p>
        <ul class="lcp-lookfor">
          <li>the consultation before the cut</li>
          <li>the shampoo as part of the service</li>
          <li>reference photos on the barber&rsquo;s tablet</li>
        </ul>
      </div>
      <figure class="lcp-scene__plate lcp-plate">
        <svg class="lcp-svg" viewBox="0 0 480 320" role="img" aria-labelledby="lcp-sea-t" focusable="false">
          <title id="lcp-sea-t">A precision diagram: a head in profile with guide lines at 0, 45 and 90 degrees, and a comb and scissors aligned on the 45 degree line.</title>
          <rect class="lcp-f-desk" width="480" height="320"/>
          <path class="lcp-s-sage lcp-w-thin" d="M0 40h480M0 80h480M0 120h480M0 160h480M0 200h480M0 240h480M0 280h480M40 0v320M80 0v320M120 0v320M160 0v320M200 0v320M240 0v320M280 0v320M320 0v320M360 0v320M400 0v320M440 0v320"/>
          <circle class="lcp-f-wall lcp-s-ink" cx="170" cy="170" r="96"/>
          <path class="lcp-f-hair" d="M74 170c0-54 42-96 96-96s96 42 96 96c-10-6-14-16-14-30-20-24-50-36-82-36s-62 12-82 36c0 14-4 24-14 30z"/>
          <path class="lcp-s-mark" d="M170 170H420M170 170L314 26M170 170V34"/>
          <text class="lcp-svg-type lcp-svg-type--mono" x="430" y="176">0&deg;</text>
          <text class="lcp-svg-type lcp-svg-type--mono" x="322" y="30">45&deg;</text>
          <text class="lcp-svg-type lcp-svg-type--mono" x="180" y="30">90&deg;</text>
          <g transform="rotate(-45 300 72)">
            <rect class="lcp-f-ink" x="250" y="66" width="110" height="10" rx="2"/>
            <path class="lcp-s-ink lcp-w-thin" d="M256 76v10M262 76v10M268 76v10M274 76v10M280 76v10M286 76v10M292 76v10M298 76v10M304 76v10M310 76v10M316 76v10M322 76v10"/>
          </g>
          <g transform="rotate(-45 360 140)">
            <path class="lcp-f-metal lcp-s-ink" d="M300 136h90l10 4-10 4h-90zM300 144h84l8 4-8 4h-84z"/>
            <circle class="lcp-f-desk lcp-s-ink" cx="288" cy="132" r="10"/>
            <circle class="lcp-f-desk lcp-s-ink" cx="288" cy="158" r="10"/>
          </g>
        </svg>
        <figcaption><span class="lcp-plate__no">Scene 6</span> Elevation and angle: precision as a visible style.</figcaption>
      </figure>
    </section>

    <section class="lcp-scene lcp-scene--la lcp-wide" aria-labelledby="lcp-scene-la">
      <figure class="lcp-scene__plate lcp-plate lcp-plate--wide">
        <svg class="lcp-svg" viewBox="0 0 720 300" role="img" aria-labelledby="lcp-sla-t" focusable="false">
          <title id="lcp-sla-t">A street-facing barbershop with large painted lettering reading Barbearia, a football shirt in the window, and a head seen from behind with lines shaved into the hair.</title>
          <rect class="lcp-f-street" width="720" height="300"/>
          <rect class="lcp-f-wall lcp-s-ink" x="24" y="20" width="440" height="262"/>
          <text class="lcp-svg-type lcp-svg-type--display" x="244" y="88" text-anchor="middle">BARBEARIA</text>
          <path class="lcp-s-mark lcp-dash" d="M60 104h368"/>
          <circle class="lcp-f-mark" cx="64" cy="54" r="3"/><circle class="lcp-f-mark" cx="74" cy="44" r="2"/><circle class="lcp-f-mark" cx="426" cy="104" r="3"/><circle class="lcp-f-mark" cx="436" cy="116" r="2"/>
          <rect class="lcp-f-glass lcp-s-ink" x="60" y="126" width="230" height="140"/>
          <path class="lcp-f-sage lcp-s-ink" d="M140 150l-28 14 8 22 12-4v56h56v-56l12 4 8-22-28-14c-4 8-10 12-20 12s-16-4-20-12z"/>
          <text class="lcp-svg-type lcp-svg-type--mono" x="168" y="214" text-anchor="middle">10</text>
          <rect class="lcp-f-interior lcp-s-ink" x="320" y="126" width="110" height="156"/>
          <rect class="lcp-f-paper lcp-s-ink" x="486" y="40" width="200" height="236" rx="3"/>
          <path class="lcp-f-desk lcp-s-ink" d="M546 276v-40h80v40z"/>
          <ellipse class="lcp-f-wall lcp-s-ink" cx="512" cy="160" rx="12" ry="20"/>
          <ellipse class="lcp-f-wall lcp-s-ink" cx="660" cy="160" rx="12" ry="20"/>
          <path class="lcp-f-wall lcp-s-ink" d="M520 150c0-52 30-84 66-84s66 32 66 84c0 46-28 92-66 92s-66-46-66-92z"/>
          <path class="lcp-f-hair" d="M520 150c0-52 30-84 66-84s66 32 66 84l-4 24c-20-8-42-12-62-12s-42 4-62 12z"/>
          <path class="lcp-f-hair lcp-o-40" d="M524 174c20-8 42-12 62-12s42 4 62 12l-6 22c-18-6-36-8-56-8s-38 2-56 8z"/>
          <path class="lcp-s-wall-line" d="M540 112c26-16 66-16 92 0M548 134l12-8 12 8 12-8 12 8 12-8 12 8 12-8"/>
          <path class="lcp-s-ink" d="M0 282h720"/>
        </svg>
        <figcaption><span class="lcp-plate__no">Scene 7</span> The street comes inside: lettering, football, lines shaved into hair.</figcaption>
      </figure>
      <div class="lcp-scene__text lcp-scene__text--cols">
        <div>
          <h3 class="lcp-scene__region" id="lcp-scene-la">Latin America</h3>
          <p class="lcp-scene__cities">S&atilde;o Paulo &middot; Rio de Janeiro &middot; Bogot&aacute; &middot; Mexico City</p>
        </div>
        <div>
          <p>The <i lang="es">barber&iacute;a</i> and the <i lang="pt">barbearia</i> bring the street inside: painted lettering, football shirts, reggaeton and funk, designs shaved into the side of the head. In Brazil the barbershop is a recognised small-business model: Sebrae, the national agency for micro and small businesses, publishes a dedicated guide to opening one and describes men&rsquo;s grooming as a market in clear expansion.</p>
          <p class="lcp-lookfor__label">Look for</p>
          <ul class="lcp-lookfor">
            <li>freestyle lines shaved into hair</li>
            <li>the shop&rsquo;s own logo on caps and shirts</li>
            <li>the Saturday queue</li>
          </ul>
        </div>
      </div>
    </section>
  </section>

  <!-- IV. INTERLUDE -->
  <section class="lcp-ch lcp-interlude lcp-bleed" aria-labelledby="the-haircut-becomes-culture">
    <div class="lcp-interlude__inner">
      <h2 id="the-haircut-becomes-culture"><span class="lcp-num">IV.</span> The shop is where the haircut becomes culture.</h2>
      <ul class="lcp-interlude__words">
        <li>conversation</li>
        <li>music</li>
        <li>ritual</li>
        <li>work</li>
        <li>style</li>
        <li>belonging</li>
      </ul>
      <p class="lcp-interlude__coda">A haircut can be done anywhere. Culture needs a room, a few regulars and time.</p>
    </div>
  </section>

  <!-- V. THE PHONE -->
  <section class="lcp-ch lcp-ch--phone" aria-labelledby="the-barbers-phone">
    <div class="lcp-ch__head lcp-measure">
      <p class="lcp-ch__scale">Scale: the current</p>
      <h2 id="the-barbers-phone"><span class="lcp-num">V.</span> The barber&rsquo;s phone changed everything</h2>
    </div>

    <figure class="lcp-diptych lcp-wide">
      <div class="lcp-diptych__side">
        <svg class="lcp-svg" viewBox="0 0 280 200" aria-hidden="true" focusable="false">
          <rect class="lcp-f-desk" width="280" height="200"/>
          <rect class="lcp-f-ink" x="30" y="40" width="150" height="12" rx="3"/>
          <path class="lcp-s-ink lcp-w-thin" d="M36 52v16M44 52v16M52 52v16M60 52v16M68 52v16M76 52v16M84 52v16M92 52v12M100 52v12M108 52v12M116 52v12M124 52v12M132 52v12M140 52v12M148 52v12M156 52v12M164 52v12M172 52v12"/>
          <path class="lcp-f-metal lcp-s-ink" d="M118 96l118 34-4 8-116-30zM118 132l118-24 2 8-116 28z"/>
          <circle class="lcp-f-desk lcp-s-ink" cx="98" cy="98" r="15"/>
          <circle class="lcp-f-desk lcp-s-ink" cx="98" cy="134" r="15"/>
          <path class="lcp-f-metal lcp-s-ink" d="M40 172h96c8 0 12-4 12-10H52c-8 0-12 4-12 10z"/>
          <rect class="lcp-f-counter lcp-s-ink" x="146" y="160" width="100" height="12" rx="5"/>
        </svg>
        <p class="lcp-diptych__label">Then: comb, scissors, razor</p>
      </div>
      <ol class="lcp-diptych__line" aria-label="How technique travels">
        <li>Apprenticeship</li>
        <li>Migration</li>
        <li>Video</li>
        <li>Global circulation</li>
      </ol>
      <div class="lcp-diptych__side">
        <svg class="lcp-svg" viewBox="0 0 280 200" aria-hidden="true" focusable="false">
          <rect class="lcp-f-desk" width="280" height="200"/>
          <rect class="lcp-f-ink" x="94" y="14" width="92" height="174" rx="14"/>
          <rect class="lcp-f-glass" x="100" y="28" width="80" height="146" rx="4"/>
          <path class="lcp-f-mark" d="M130 82v28l24-14z"/>
          <rect class="lcp-f-metal" x="108" y="150" width="64" height="4" rx="2"/>
          <rect class="lcp-f-mark" x="108" y="150" width="26" height="4" rx="2"/>
          <circle class="lcp-f-mark" cx="134" cy="152" r="5"/>
        </svg>
        <p class="lcp-diptych__label">Now: the phone</p>
      </div>
    </figure>

    <div class="lcp-prose lcp-measure">
      <p>For most of its history, barbering was learned standing next to someone. An apprentice swept the floor, watched, held the hand mirror, and was trusted with a neckline long before he was trusted with a full cut. Technique travelled at the speed of people: a barber moved to another city or another country and took his hands with him.</p>
      <p>The phone changed that speed. A barber in Jakarta can watch a technique filmed in S&atilde;o Paulo in the morning and try it in the afternoon. A fade tutorial, a beard sculpt, a new way to use a foil shaver: all of it circulates as short video.</p>
      <p>The phone is also the shop&rsquo;s window, its booking desk and its portfolio. Often the finished cut is photographed before the client leaves the chair.</p>
      <p>None of this ends apprenticeship. It adds a second, global classroom to the local one.</p>
    </div>
  </section>

  <!-- VI. THE FADE -->
  <section class="lcp-ch lcp-ch--fade" aria-labelledby="the-fade-went-global">
    <div class="lcp-ch__head lcp-measure">
      <p class="lcp-ch__scale">Scale: the city</p>
      <h2 id="the-fade-went-global"><span class="lcp-num">VI.</span> The fade went global</h2>
    </div>

    <div class="lcp-fade lcp-wide">
      <figure class="lcp-fade__plate lcp-plate">
        <svg class="lcp-svg" viewBox="0 0 360 380" role="img" aria-labelledby="lcp-fade-t" focusable="false">
          <title id="lcp-fade-t">A head in profile. The hair moves in steps from long on top to skin at the neck, marked with clipper guard numbers 3, 2, 1, half and 0.</title>
          <defs>
            <clipPath id="lcp-fade-head"><path d="M142 352c-8-28-22-44-36-60-24-28-34-66-32-100 4-68 56-116 124-118 56-2 96 38 100 88 2 18 0 30 4 42l18 44-16 6c2 10 4 20-2 26 6 8 4 22-8 30-12 6-30 6-42 4l-12 38z"/></clipPath>
          </defs>
          <rect class="lcp-f-desk" width="360" height="380"/>
          <path class="lcp-f-wall lcp-s-ink" d="M142 352c-8-28-22-44-36-60-24-28-34-66-32-100 4-68 56-116 124-118 56-2 96 38 100 88 2 18 0 30 4 42l18 44-16 6c2 10 4 20-2 26 6 8 4 22-8 30-12 6-30 6-42 4l-12 38z"/>
          <g clip-path="url(#lcp-fade-head)">
            <path class="lcp-f-hair" d="M60 60h260v108c-30 6-60 4-92-4-36 14-80 22-168 12z"/>
            <path class="lcp-f-hair lcp-o-80" d="M60 176c88 10 132 2 168-12l0 26c-40 10-100 14-168 12z"/>
            <path class="lcp-f-hair lcp-o-60" d="M60 202c68 2 128-2 168-12v24c-40 10-100 12-168 12z"/>
            <path class="lcp-f-hair lcp-o-40" d="M60 226c68 0 128-2 168-12v22c-40 8-100 10-168 10z"/>
            <path class="lcp-f-hair lcp-o-20" d="M60 246c68 0 128-2 168-10v22c-40 6-100 8-168 8z"/>
          </g>
          <ellipse class="lcp-f-wall lcp-s-ink" cx="198" cy="212" rx="16" ry="24"/>
          <path class="lcp-s-ink" d="M142 352c-8-28-22-44-36-60-24-28-34-66-32-100 4-68 56-116 124-118 56-2 96 38 100 88 2 18 0 30 4 42l18 44-16 6c2 10 4 20-2 26 6 8 4 22-8 30-12 6-30 6-42 4l-12 38"/>
          <path class="lcp-s-mark lcp-dash" d="M24 172h40M24 196h40M24 220h40M24 242h40M24 262h40"/>
          <text class="lcp-svg-type lcp-svg-type--mono lcp-svg-type--s" x="14" y="176" text-anchor="end">3</text>
          <text class="lcp-svg-type lcp-svg-type--mono lcp-svg-type--s" x="14" y="200" text-anchor="end">2</text>
          <text class="lcp-svg-type lcp-svg-type--mono lcp-svg-type--s" x="14" y="224" text-anchor="end">1</text>
          <text class="lcp-svg-type lcp-svg-type--mono lcp-svg-type--s" x="14" y="246" text-anchor="end">&frac12;</text>
          <text class="lcp-svg-type lcp-svg-type--mono lcp-svg-type--s" x="14" y="266" text-anchor="end">0</text>
        </svg>
        <figcaption><span class="lcp-plate__no">Plate II</span> The fade as a graphic principle: long to short, top to skin, guard by guard.</figcaption>
      </figure>
      <div class="lcp-fade__text">
        <p class="lcp-fade__thesis"><span>Global technique.</span> <span>Local expression.</span></p>
        <p>The fade is a simple idea: hair that moves from longer to shorter, from the top to the skin, without a visible line. Done well, it is a gradient made with clippers, guards and patience.</p>
        <p>Few cuts show as clearly how a technique becomes global while its expression stays local. The same fade carries a hard part in one city and a curly top in another. It meets a lined beard, a shaved design, a conservative taper for the office or a skin fade that says weekend.</p>
      </div>
    </div>

    <ul class="lcp-cityflow lcp-wide" aria-label="Cities where the fade is part of everyday style">
      <li>Lagos</li>
      <li>Casablanca</li>
      <li>London</li>
      <li>Riyadh</li>
      <li>S&atilde;o Paulo</li>
      <li>Jakarta</li>
      <li>Paris</li>
      <li>Lahore</li>
      <li>Melbourne</li>
    </ul>
  </section>

  <!-- VII. THE BEARD -->
  <section class="lcp-ch lcp-ch--beard" aria-labelledby="the-beard-went-global-too">
    <div class="lcp-ch__head lcp-measure">
      <p class="lcp-ch__scale">Scale: the world</p>
      <h2 id="the-beard-went-global-too"><span class="lcp-num">VII.</span> The beard went global too</h2>
    </div>

    <div class="lcp-margin lcp-wide">
      <div class="lcp-prose lcp-margin__main">
        <p>Beards follow fashion cycles. In the early 2010s, full beards spread through cities that had been mostly clean-shaven for decades, and barbers rebuilt their services around them: trims, shaping, oils, balms and hot towels.</p>
        <p>Fashion may also explain why the beard comes and goes. In a 2014 experiment published in <i>Biology Letters</i>, participants rated faces after seeing sets in which beards were either common or rare. Heavy stubble and full beards were judged more attractive when they were rare, and clean-shaven faces were judged more attractive when they were rare. A style can lose its edge simply because everyone has adopted it.</p>
        <p>The same beard does not mean the same thing everywhere. A full beard can be fashion in one street and faith in the next. A moustache can signal a generation, a profession, a tradition or nothing at all. The barber shapes the hair; the meaning is supplied by the world around it.</p>
        <p>That meaning, its history and its symbolism, belongs to <a href="https://darjarihla.com/culture-identity/">Culture &amp; Identity</a>. Here the beard is practice: what is done to it, where, and with what.</p>
      </div>

      <aside class="lcp-annot lcp-margin__note" aria-labelledby="lcp-annot-t" data-lcp-note>
        <p class="lcp-annot__label" id="lcp-annot-t">Red beard</p>
        <figure class="lcp-annot__figure">
          <svg class="lcp-annot__mark lcp-svg" viewBox="0 0 96 96" aria-hidden="true" focusable="false">
            <defs>
              <pattern id="lcp-hatch" width="4" height="4" patternUnits="userSpaceOnUse" patternTransform="rotate(35)"><path class="lcp-s-red lcp-w-thin" d="M0 0v4"/></pattern>
              <pattern id="lcp-hatch-x" width="6" height="6" patternUnits="userSpaceOnUse" patternTransform="rotate(-20)"><path class="lcp-s-red lcp-w-thin" d="M0 0v6"/></pattern>
            </defs>
            <path class="lcp-f-hatchx lcp-s-red" d="M26 34c-4-16 10-28 30-28 18 0 28 10 26 26-14-6-40-6-56 2z"/>
            <path class="lcp-s-red lcp-w-thin" d="M30 24c14-6 34-6 48 0M28 30c16-6 38-6 54 0"/>
            <path class="lcp-s-red" d="M26 34c-2 12 2 22 10 28l2 22M82 32c2 6 2 10 6 16l4 6-6 2c2 4 0 6-2 8"/>
            <ellipse class="lcp-s-red lcp-w-thin" cx="50" cy="46" rx="4" ry="6"/>
            <path class="lcp-f-hatch lcp-s-red" d="M44 54c4 12 10 22 16 30 4 6 12 10 18 6 6-6 8-14 6-26-8-2-16-4-24-6-6-2-12-4-16-4z"/>
            <path class="lcp-s-red lcp-w-thin" d="M70 62c4-2 8-2 12 0"/>
          </svg>
          <figcaption class="lcp-annot__markcap">Engraving-style mark. Not a portrait.</figcaption>
        </figure>
        <p class="lcp-annot__text">Centuries before beard oil and Instagram line-ups, facial hair could become part of a man&rsquo;s historical identity. The Ottoman commander Khayr al-Din became known in Europe as Barbarossa: &ldquo;Red Beard&rdquo;.</p>
        <p class="lcp-annot__coda">Sometimes a beard becomes part of how history remembers a face.</p>
        <div class="lcp-annot__body" id="lcp-note-barbarossa" data-lcp-note-body>
          <p><i lang="it">Barbarossa</i> is Italian: <i lang="it">barba rossa</i>, red beard. The historian James McDougall writes that Aruj, with his brothers, became better known in history and legend under the surname Barbarossa, meaning red beard. After Aruj died, his brother Khayr al-Din (Hayreddin) became sultan of Algiers, and in 1534, for Sultan S&uuml;leyman I, he took Tunis.</p>
          <p>His image travelled with the name. The Rijksmuseum holds a large engraving of Khair ad-Din Barbarossa by Agostino Veneziano, dated 1535. The Metropolitan Museum of Art holds an anonymous Italian woodcut of Hayreddin Barbarossa from about 1530 to 1560. These are monochrome prints: they cannot show the colour of a beard. They show how a beard became part of the face Europe remembered.</p>
          <p>Barbarossa was never a surname in the ordinary sense. It was a description. Centuries earlier, the German king and Holy Roman emperor Frederick I was called Barbarossa too.</p>
          <p>The barber shares the root. <i>Barber</i> comes, through French, from Latin <i lang="la">barba</i>, beard. The man who trims beards and the men remembered for one share a word.</p>
          <p class="lcp-annot__open">Often repeated online: that Europeans heard &ldquo;Baba Oru&ccedil;&rdquo; as Barbarossa. The sources used for this report do not confirm it, so it stays an open question here.</p>
          <p class="lcp-annot__next"><span class="lcp-status">Planned</span> Culture &amp; Identity: <cite>Why Was Barbarossa Called Red Beard?</cite> No article published yet.</p>
        </div>
      </aside>
    </div>
  </section>

  <!-- VIII. PRODUCTS AND RITUALS -->
  <section class="lcp-ch lcp-ch--spread" aria-labelledby="products-travel-rituals-resist">
    <div class="lcp-ch__head lcp-measure">
      <p class="lcp-ch__scale">Scale: the world</p>
      <h2 id="products-travel-rituals-resist"><span class="lcp-num">VIII.</span> Products travel. Rituals resist.</h2>
    </div>

    <div class="lcp-spread lcp-wide">
      <div class="lcp-spread__page lcp-spread__page--fast">
        <p class="lcp-spread__label">What travels fast</p>
        <ul>
          <li>clippers</li>
          <li>beard oil</li>
          <li>pomade</li>
          <li>razors</li>
          <li>tutorials</li>
          <li>brands</li>
        </ul>
      </div>
      <div class="lcp-spread__page lcp-spread__page--slow">
        <p class="lcp-spread__label">What travels slowly</p>
        <ul>
          <li>conversation</li>
          <li>hospitality</li>
          <li>father and son</li>
          <li>walk-ins</li>
          <li>tea</li>
          <li>silence</li>
          <li>trust</li>
        </ul>
      </div>
    </div>

    <div class="lcp-prose lcp-measure">
      <p>A product can be on shelves in a hundred countries tomorrow. A clipper model, a beard oil, a pomade or a tutorial needs only shipping or a signal.</p>
      <p>A social ritual moves at the speed of people. Conversation, hospitality, the father who brings his son, the walk-in greeted by name, the tea, the silence a regular is allowed, trust: none of it can be shipped. It has to be built in each room, and it can stay local for generations.</p>
      <p>That is the difference between consumption and culture. Lifestyle &amp; Culture looks for the second inside the first.</p>
    </div>
  </section>

  <!-- IX. FATHER, SON AND BARBER -->
  <section class="lcp-ch lcp-ch--quiet" aria-labelledby="father-son-and-barber">
    <div class="lcp-ch__head lcp-measure">
      <p class="lcp-ch__scale">Scale: the family</p>
      <h2 id="father-son-and-barber"><span class="lcp-num">IX.</span> Father, son and barber</h2>
    </div>

    <figure class="lcp-quiet__plate lcp-plate lcp-measure-wide">
      <svg class="lcp-svg" viewBox="0 0 560 300" role="img" aria-labelledby="lcp-fs-t" focusable="false">
        <title id="lcp-fs-t">A father and a young boy seen from behind, waiting on a bench. The boy&#8217;s feet do not reach the floor.</title>
        <rect class="lcp-f-wall" width="560" height="300"/>
        <rect class="lcp-f-paper lcp-s-ink" x="392" y="34" width="82" height="108" rx="2"/>
        <circle class="lcp-f-desk lcp-s-ink" cx="433" cy="74" r="18"/>
        <path class="lcp-f-hair" d="M415 70c0-14 9-20 18-20s18 6 18 20c-6-4-30-4-36 0z"/>
        <path class="lcp-s-ink lcp-w-thin" d="M410 112h46M418 124h30"/>
        <g class="lcp-figure">
          <circle class="lcp-f-hair" cx="210" cy="100" r="26"/>
          <path class="lcp-f-chair lcp-s-ink" d="M156 206c0-58 22-80 54-80s54 22 54 80z"/>
        </g>
        <g class="lcp-figure">
          <circle class="lcp-f-hair" cx="318" cy="146" r="18"/>
          <path class="lcp-f-tea lcp-s-ink" d="M286 206c0-34 12-46 32-46s32 12 32 46z"/>
          <path class="lcp-s-ink" d="M306 220v28M330 220v28"/>
          <path class="lcp-f-ink" d="M298 246h14v8h-14zM324 246h14v8h-14z"/>
        </g>
        <rect class="lcp-f-counter lcp-s-ink" x="120" y="204" width="300" height="16" rx="4"/>
        <path class="lcp-s-ink" d="M140 220v58M400 220v58"/>
        <path class="lcp-f-paper lcp-s-ink" d="M366 204c0-10 6-14 14-14h26c6 0 10 4 10 14z"/>
        <path class="lcp-s-ink" d="M0 278h560"/>
      </svg>
      <figcaption><span class="lcp-plate__no">Plate III</span> Waiting. The boy&rsquo;s feet do not reach the floor yet. A place for a documentary photograph later.</figcaption>
    </figure>

    <div class="lcp-prose lcp-measure">
      <p>A boy&rsquo;s first haircuts are someone else&rsquo;s decision. He is lifted onto a booster seat or a board across the arms of the chair. His father watches in the mirror. The barber talks to the father about the boy, and to the boy about football.</p>
      <p>Years later the roles shift. The boy chooses his own cut, then his own barber. Sometimes he chooses his father&rsquo;s barber, and the shop becomes a thread between generations: the same chair, the same hands, another head.</p>
    </div>

    <blockquote class="lcp-pull lcp-wide">
      <p>The barber cuts time into appointments.</p>
    </blockquote>

    <div class="lcp-prose lcp-measure">
      <p>Every two weeks, every three weeks. Before Eid, before Christmas, before a wedding, a job interview, the first day of school. A life can be measured in haircuts, and the barber is often the one person who has seen all of them.</p>
    </div>
  </section>

  <!-- X. THE SOCIAL ROOM -->
  <section class="lcp-ch lcp-ch--room" aria-labelledby="the-shop-as-a-social-room">
    <div class="lcp-ch__head lcp-measure">
      <p class="lcp-ch__scale">Scale: the street</p>
      <h2 id="the-shop-as-a-social-room"><span class="lcp-num">X.</span> The shop as a social room</h2>
    </div>

    <p class="lcp-statement lcp-statement--s lcp-wide">A place for men without requiring a reason.</p>

    <figure class="lcp-room__plate lcp-plate lcp-wide">
      <svg class="lcp-svg" viewBox="0 0 900 320" role="img" aria-labelledby="lcp-room-t" focusable="false">
        <title id="lcp-room-t">The waiting area of a barbershop: a television showing a football match, two men on a bench, a low table with tea glasses and a phone face up, a third man standing who is not having a haircut, and a coffee machine on the counter.</title>
        <rect class="lcp-f-wall" width="900" height="320"/>
        <path class="lcp-s-sage lcp-w-thin" d="M0 236h900"/>
        <path class="lcp-s-ink" d="M110 22v18"/>
        <rect class="lcp-f-ink" x="40" y="40" width="140" height="84" rx="4"/>
        <rect class="lcp-f-sage" x="48" y="48" width="124" height="68"/>
        <path class="lcp-s-paper lcp-w-thin" d="M110 48v68M48 82h124"/>
        <circle class="lcp-s-paper lcp-w-thin lcp-f-none" cx="110" cy="82" r="12"/>
        <rect class="lcp-f-counter lcp-s-ink" x="60" y="214" width="300" height="16" rx="4"/>
        <path class="lcp-s-ink" d="M76 230v58M344 230v58"/>
        <g class="lcp-figure">
          <circle class="lcp-f-hair" cx="130" cy="140" r="20"/>
          <path class="lcp-f-sage lcp-s-ink" d="M94 214c0-36 14-52 36-52s36 16 36 52z"/>
        </g>
        <g class="lcp-figure">
          <circle class="lcp-f-hair" cx="270" cy="138" r="20"/>
          <path class="lcp-f-paper lcp-s-ink" d="M234 214c0-38 14-54 36-54s36 16 36 54z"/>
        </g>
        <rect class="lcp-f-counter lcp-s-ink" x="390" y="240" width="140" height="10" rx="3"/>
        <path class="lcp-s-ink" d="M404 250v38M516 250v38"/>
        <path class="lcp-f-glassware lcp-s-ink" d="M414 238c-2-8 2-14 1-22h14c-1 8 3 14 1 22z"/>
        <path class="lcp-f-glassware lcp-s-ink" d="M446 238c-2-8 2-14 1-22h14c-1 8 3 14 1 22z"/>
        <path class="lcp-f-ink" d="M480 240l6-6h30l-6 6z"/>
        <g class="lcp-figure">
          <circle class="lcp-f-hair" cx="620" cy="96" r="20"/>
          <path class="lcp-f-tea lcp-s-ink" d="M594 128c4-8 14-12 26-12s22 4 26 12l6 92h-64z"/>
          <path class="lcp-s-ink" d="M606 220v68M634 220v68"/>
        </g>
        <rect class="lcp-f-counter lcp-s-ink" x="700" y="190" width="200" height="98"/>
        <rect class="lcp-f-metal lcp-s-ink" x="734" y="130" width="64" height="60" rx="5"/>
        <rect class="lcp-f-ink" x="748" y="166" width="36" height="8"/>
        <path class="lcp-f-glassware lcp-s-ink" d="M820 190v-18h16v18zM846 190v-18h16v18z"/>
        <path class="lcp-s-ink" d="M0 288h900"/>
      </svg>
      <figcaption><span class="lcp-plate__no">Plate IV</span> The bench, the match, the tea, the phone, and the man who is not here for a haircut.</figcaption>
    </figure>

    <div class="lcp-prose lcp-measure">
      <p>Leave the chair for a moment and look at the bench. A television on a bracket. A football match nobody is fully watching. Coffee, or tea in small glasses. Phones face up on the table. A man who came in with his cousin and is not being cut at all.</p>
      <p>The sociologist Ray Oldenburg called places like this third places, separate from home and work: &ldquo;havens of sociability where conversation is the main activity and conviviality prevails.&rdquo; Many barbershops fit that description better than the caf&eacute;s that are usually given as examples.</p>
      <p>Research on Black barbershops in the United States shows how much can happen on that bench. In <cite>Barbershops, Bibles, and BET</cite> (2004), the political scientist Melissa Harris-Lacewell studied how everyday talk in spaces such as barbershops shapes political thought. Quincy T. Mills traced the barbershop as a Black business and public space across American history.</p>
      <p>This is social infrastructure. It is rarely planned as such. It is built one regular at a time.</p>
    </div>
  </section>

  <!-- XI. THE BRAND -->
  <section class="lcp-ch lcp-ch--brand" aria-labelledby="the-barber-becomes-a-brand">
    <div class="lcp-ch__head lcp-measure">
      <p class="lcp-ch__scale">Scale: the current</p>
      <h2 id="the-barber-becomes-a-brand"><span class="lcp-num">XI.</span> The barber becomes a brand</h2>
    </div>

    <ol class="lcp-stamps lcp-wide" aria-label="From chair to global audience">
      <li>Chair</li>
      <li>Instagram</li>
      <li>Booking</li>
      <li>Academy</li>
      <li>Global audience</li>
    </ol>

    <div class="lcp-prose lcp-measure">
      <p>A successful barber now often runs more than a chair. The cut becomes content, the content becomes a following, the following becomes bookings, and some barbers turn their technique into courses, products and seminars abroad. A local craftsman can have a global audience without leaving his street.</p>
      <p>That changes the economics of the craft, and it changes the room. When any cut may be filmed, lighting matters, mirrors are placed for the camera and the client is also an image. Look for the ring light: it is the newest piece of barbershop furniture.</p>
    </div>
  </section>

  <!-- XII. SCENT AND SOUND -->
  <section class="lcp-ch lcp-senses lcp-bleed" aria-labelledby="scent-and-sound">
    <div class="lcp-senses__inner">
      <div class="lcp-ch__head">
        <p class="lcp-ch__scale">Scale: memory</p>
        <h2 id="scent-and-sound"><span class="lcp-num">XII.</span> Scent and sound</h2>
      </div>
      <p class="lcp-senses__q">What does a barbershop remember?</p>
      <div class="lcp-senses__cols">
        <div>
          <p class="lcp-senses__label">Sound</p>
          <ul class="lcp-senses__list">
            <li>Afrobeats</li>
            <li>Ra&iuml;</li>
            <li>Reggaeton</li>
            <li>Arabic pop</li>
            <li>K-pop</li>
            <li>Football commentary</li>
            <li>The clipper on the neck</li>
          </ul>
        </div>
        <div>
          <p class="lcp-senses__label">Scent</p>
          <ul class="lcp-senses__list">
            <li>citrus</li>
            <li>menthol</li>
            <li>talc</li>
            <li>oud</li>
            <li>aftershave</li>
            <li>lemon cologne</li>
          </ul>
        </div>
      </div>
      <p class="lcp-senses__line"><span>Culture is often stored like this.</span> <span>Not as a theory.</span> <span>As scent.</span></p>
      <p class="lcp-senses__coda">Memories of a barbershop rarely begin with the haircut. They begin with a smell, a song, a voice on the radio, the buzz of a clipper on the back of the neck.</p>
    </div>
  </section>

  <!-- XIII. THE SHOP WINDOW -->
  <section class="lcp-ch lcp-ch--window" aria-labelledby="how-to-read-a-barbershop">
    <div class="lcp-ch__head lcp-measure">
      <p class="lcp-ch__scale">Scale: the street</p>
      <h2 id="how-to-read-a-barbershop"><span class="lcp-num">XIII.</span> The shop window: how to read a barbershop</h2>
    </div>
    <div class="lcp-prose lcp-measure">
      <p>Stand outside and read the window before you go in. Seven things say more than the price list.</p>
    </div>

    <div class="lcp-window lcp-wide">
      <figure class="lcp-window__plate lcp-plate">
        <svg class="lcp-svg" viewBox="0 0 720 440" role="img" aria-labelledby="lcp-win-t" focusable="false">
          <title id="lcp-win-t">A drawn barbershop front with seven numbered observations: a football shirt, a ring light, an old razor, a booking QR code, a coffee machine, a hairstyle poster and a sign in several languages.</title>
          <rect class="lcp-f-street" width="720" height="440"/>
          <rect class="lcp-f-wall lcp-s-ink" x="30" y="20" width="660" height="400"/>
          <rect class="lcp-f-paper lcp-s-ink" x="70" y="40" width="580" height="56" rx="3"/>
          <text class="lcp-svg-type lcp-svg-type--mono" x="160" y="75" text-anchor="middle">BARBER</text>
          <text class="lcp-svg-type lcp-svg-type--mono" x="280" y="75" text-anchor="middle">KAPPER</text>
          <text class="lcp-svg-type lcp-svg-type--mono" x="400" y="75" text-anchor="middle">BERBER</text>
          <text class="lcp-svg-type lcp-svg-type--ar" x="520" y="77" text-anchor="middle" lang="ar" direction="rtl">&#1581;&#1604;&#1575;&#1602;</text>
          <rect class="lcp-f-glass lcp-s-ink" x="70" y="120" width="420" height="270"/>
          <path class="lcp-f-sage lcp-s-ink" d="M130 150l-30 14 8 24 12-4v58h58v-58l12 4 8-24-30-14c-4 8-10 12-19 12s-15-4-19-12z"/>
          <circle class="lcp-s-ink lcp-f-none lcp-w-ring" cx="300" cy="196" r="44"/>
          <path class="lcp-s-ink" d="M300 240v80M282 320h36"/>
          <path class="lcp-s-ink" d="M380 168h80"/>
          <path class="lcp-f-metal lcp-s-ink" d="M392 166c0-8 4-12 12-12h40v8h-40z"/>
          <rect class="lcp-f-counter lcp-s-ink" x="392" y="152" width="20" height="6" rx="2"/>
          <rect class="lcp-f-paper lcp-s-ink" x="110" y="270" width="86" height="104" rx="2"/>
          <circle class="lcp-f-desk lcp-s-ink" cx="134" cy="300" r="12"/><path class="lcp-f-hair" d="M122 297c0-10 6-14 12-14s12 4 12 14c-4-3-20-3-24 0z"/>
          <circle class="lcp-f-desk lcp-s-ink" cx="172" cy="300" r="12"/><path class="lcp-f-hair" d="M162 292l6-10h8l6 10-6 2-4-4-4 4z"/>
          <circle class="lcp-f-desk lcp-s-ink" cx="134" cy="342" r="12"/><path class="lcp-f-hair" d="M124 338c2-8 6-10 10-10s8 2 10 10c-4-2-16-2-20 0z"/>
          <circle class="lcp-f-desk lcp-s-ink" cx="172" cy="342" r="12"/><path class="lcp-f-hair" d="M166 330h12l-2 8h-8z"/>
          <rect class="lcp-f-counter lcp-s-ink" x="340" y="330" width="150" height="60"/>
          <rect class="lcp-f-metal lcp-s-ink" x="390" y="282" width="50" height="48" rx="4"/>
          <rect class="lcp-f-ink" x="400" y="310" width="30" height="6"/>
          <rect class="lcp-f-interior lcp-s-ink" x="520" y="120" width="130" height="300"/>
          <rect class="lcp-f-paper lcp-s-ink" x="546" y="190" width="44" height="44"/>
          <path class="lcp-f-ink" d="M550 194h12v12h-12zM574 194h12v12h-12zM550 218h12v12h-12zM566 210h6v6h-6zM574 222h6v6h-6zM580 214h6v6h-6z"/>
          <circle class="lcp-f-metal" cx="634" cy="280" r="5"/>
          <g class="lcp-pins">
            <g class="lcp-pin-g lcp-pin-g--1"><circle class="lcp-pin" cx="196" cy="144" r="15"/><text class="lcp-pin__n" x="196" y="150" text-anchor="middle">1</text></g>
            <g class="lcp-pin-g lcp-pin-g--2"><circle class="lcp-pin" cx="354" cy="150" r="15"/><text class="lcp-pin__n" x="354" y="156" text-anchor="middle">2</text></g>
            <g class="lcp-pin-g lcp-pin-g--3"><circle class="lcp-pin" cx="470" cy="140" r="15"/><text class="lcp-pin__n" x="470" y="146" text-anchor="middle">3</text></g>
            <g class="lcp-pin-g lcp-pin-g--4"><circle class="lcp-pin" cx="612" cy="176" r="15"/><text class="lcp-pin__n" x="612" y="182" text-anchor="middle">4</text></g>
            <g class="lcp-pin-g lcp-pin-g--5"><circle class="lcp-pin" cx="458" cy="270" r="15"/><text class="lcp-pin__n" x="458" y="276" text-anchor="middle">5</text></g>
            <g class="lcp-pin-g lcp-pin-g--6"><circle class="lcp-pin" cx="214" cy="270" r="15"/><text class="lcp-pin__n" x="214" y="276" text-anchor="middle">6</text></g>
            <g class="lcp-pin-g lcp-pin-g--7"><circle class="lcp-pin" cx="664" cy="56" r="15"/><text class="lcp-pin__n" x="664" y="62" text-anchor="middle">7</text></g>
          </g>
          <path class="lcp-s-ink" d="M0 420h720"/>
        </svg>
        <figcaption><span class="lcp-plate__no">Plate V</span> How to read a barbershop. Seven observations from the pavement.</figcaption>
      </figure>
      <ol class="lcp-window__list">
        <li data-pin="1"><strong>Football shirt.</strong> Which club, which country, which generation.</li>
        <li data-pin="2"><strong>Ring light.</strong> The shop is also a studio.</li>
        <li data-pin="3"><strong>Old razor.</strong> Kept for the ritual, or for the memory of the founder.</li>
        <li data-pin="4"><strong>Booking QR code.</strong> Walk-ins welcome, or not.</li>
        <li data-pin="5"><strong>Coffee machine or tea glasses.</strong> How long you are invited to stay.</li>
        <li data-pin="6"><strong>Hairstyle poster.</strong> Which styles the shop thinks you want, and from which decade.</li>
        <li data-pin="7"><strong>Language on the wall.</strong> Who the shop expects to walk in.</li>
      </ol>
    </div>
  </section>

  <!-- XIV. ONE CHAIR, MANY WORLDS -->
  <section class="lcp-ch lcp-ch--finale" aria-labelledby="one-chair-many-worlds">
    <div class="lcp-ch__head lcp-measure">
      <p class="lcp-ch__scale">Scale: back to the face</p>
      <h2 id="one-chair-many-worlds"><span class="lcp-num">XIV.</span> One chair, many worlds</h2>
    </div>
    <div class="lcp-prose lcp-measure">
      <p>Back to the chair. It looks the same as at the start. By now it carries more than a client.</p>
    </div>

    <figure class="lcp-orbit lcp-wide">
      <svg class="lcp-svg lcp-orbit__chair" viewBox="150 240 300 370" role="img" aria-labelledby="lcp-orbit-t" focusable="false">
        <title id="lcp-orbit-t">The same empty barber chair as at the start of the report.</title>
        <g class="lcp-chair">
          <rect class="lcp-f-chair lcp-s-ink" x="262" y="262" width="76" height="38" rx="16"/>
          <rect class="lcp-f-metal lcp-s-ink" x="294" y="300" width="12" height="16"/>
          <rect class="lcp-f-chair lcp-s-ink" x="214" y="312" width="172" height="196" rx="36"/>
          <path class="lcp-s-seam lcp-w-thin" d="M258 330v164M300 326v172M342 330v164"/>
          <rect class="lcp-f-chair lcp-s-ink" x="166" y="424" width="62" height="18" rx="9"/>
          <rect class="lcp-f-chair lcp-s-ink" x="372" y="424" width="62" height="18" rx="9"/>
          <path class="lcp-s-ink" d="M190 442v46M410 442v46"/>
          <rect class="lcp-f-chair lcp-s-ink" x="192" y="486" width="216" height="26" rx="11"/>
          <rect class="lcp-f-metal lcp-s-ink" x="290" y="512" width="20" height="58"/>
          <path class="lcp-s-ink" d="M310 552h30l8 7"/>
          <ellipse class="lcp-f-metal lcp-s-ink" cx="300" cy="584" rx="96" ry="16"/>
        </g>
      </svg>
      <figcaption class="lcp-orbit__words">
        <span class="lcp-sr">Around the chair: </span>
        <ul>
          <li>migration</li>
          <li>technology</li>
          <li>masculinity</li>
          <li>craft</li>
          <li>fashion</li>
          <li>memory</li>
          <li>community</li>
          <li>entrepreneurship</li>
        </ul>
      </figcaption>
    </figure>

    <div class="lcp-finale">
      <p class="lcp-finale__q">How do you want it?</p>
      <ul class="lcp-finale__qs">
        <li>How do you want to present yourself?</li>
        <li>What do you carry from where you come from?</li>
        <li>What have you borrowed from somewhere else?</li>
        <li>What has your generation changed?</li>
        <li>What still feels like you?</li>
      </ul>
      <p class="lcp-finale__end">That is where grooming becomes culture.</p>
    </div>
  </section>

  <!-- CONTINUE -->
  <section class="lcp-journey lcp-wide" aria-labelledby="lcp-journey-t">
    <p class="lcp-journey__kicker">Continue the barber journey</p>
    <h2 class="lcp-journey__title" id="lcp-journey-t">Next field notes</h2>
    <p class="lcp-journey__note"><span class="lcp-status">Planned</span> means no article exists yet. Links appear here when a field note is published.</p>
    <ol class="lcp-journey__list">
      <li><span class="lcp-journey__name">A History of the Barbershop</span><span class="lcp-journey__hub">Culture &amp; Identity</span><span class="lcp-status">Planned</span></li>
      <li><span class="lcp-journey__name">The World&rsquo;s Most Famous Barbershops</span><span class="lcp-journey__hub">Lifestyle &amp; Culture</span><span class="lcp-status">Planned</span></li>
      <li><span class="lcp-journey__name">Barbers Who Changed the Craft</span><span class="lcp-journey__hub">Lifestyle &amp; Culture</span><span class="lcp-status">Planned</span></li>
      <li><span class="lcp-journey__name">Barber Cultures of North Africa</span><span class="lcp-journey__hub">Lifestyle &amp; Culture</span><span class="lcp-status">Planned</span></li>
      <li><span class="lcp-journey__name">The Turkish Barber</span><span class="lcp-journey__hub">Lifestyle &amp; Culture</span><span class="lcp-status">Planned</span></li>
      <li><span class="lcp-journey__name">The Black Barbershop</span><span class="lcp-journey__hub">Lifestyle &amp; Culture</span><span class="lcp-status">Planned</span></li>
      <li><span class="lcp-journey__name">From Barbers to Hairdressers: The Women&rsquo;s Salon</span><span class="lcp-journey__hub">Lifestyle &amp; Culture</span><span class="lcp-status">Planned</span></li>
      <li><span class="lcp-journey__name">Why Was Barbarossa Called Red Beard?</span><span class="lcp-journey__hub">Culture &amp; Identity</span><span class="lcp-status">Planned</span></li>
    </ol>
  </section>

  <aside class="lcp-elsewhere lcp-wide" aria-labelledby="lcp-elsewhere-t">
    <p class="lcp-elsewhere__label" id="lcp-elsewhere-t">Read elsewhere</p>
    <ul>
      <li><a href="https://darjarihla.com/culture-identity/">Culture &amp; Identity</a> for the barbershop as a social institution through history, and for what beards and names mean.</li>
      <li><a href="https://darjarihla.com/health-performance/">Health &amp; Performance</a> for skin, hair and dermatology.</li>
      <li><a href="https://darjarihla.com/lifestyle-culture/#lc-s-barbershop">The Everyday Atlas</a> for the other subjects on the street and the road.</li>
    </ul>
  </aside>

  <aside class="lcp-method lcp-measure" aria-labelledby="lcp-method-t">
    <p class="lcp-method__label" id="lcp-method-t">How this report was made</p>
    <p>This is an editorial report, not fieldwork or a survey. Facts with a source are listed below. The route lenses and the &ldquo;Look for&rdquo; lists are editorial observations: prompts for reading a shop, not measurements or claims about every shop in a region. All illustrations are authored drawings, not photographs of real places or people.</p>
  </aside>

  <section class="dr-sources lcp-sources lcp-measure" aria-labelledby="lcp-sources-t">
    <p class="dr-sources-label lcp-sources__label" id="lcp-sources-t">Sources</p>
    <ol>
      <li>James McDougall, <cite>A History of Algeria</cite>, Cambridge University Press, 2017, chapter 1. <a href="https://www.cambridge.org/core/books/history-of-algeria/ecologies-societies-cultures-and-the-state-15161830/6C59DEAD9F70913EC060EDD1465FA6A5" target="_blank" rel="noopener">Cambridge Core</a></li>
      <li>Agostino Veneziano, <cite>Khair ad-Din Barbarossa</cite>, engraving, 1535, Rijksmuseum, RP-P-1950-676. <a href="https://www.rijksmuseum.nl/nl/collectie/object/Khair-ad-Din-Barbarossa--caa91ed4428f72b1a0d6fad40ae15729" target="_blank" rel="noopener">Rijksmuseum</a></li>
      <li>Anonymous, Italian, <cite>Hayreddin Barbarossa, Ottoman admiral</cite>, woodcut with additions in pen and ink, about 1530 to 1560, The Metropolitan Museum of Art, 50.514.8. <a href="https://www.metmuseum.org/art/collection/search/632134" target="_blank" rel="noopener">The Met</a></li>
      <li><cite>Frederick I, Holy Roman emperor</cite>, Encyclop&aelig;dia Britannica. <a href="https://www.britannica.com/biography/Frederick-I-Holy-Roman-emperor" target="_blank" rel="noopener">Britannica</a></li>
      <li><cite>barber (n.)</cite>, Online Etymology Dictionary. <a href="https://www.etymonline.com/word/barber" target="_blank" rel="noopener">Etymonline</a></li>
      <li>Zinnia J. Janif, Robert C. Brooks and Barnaby J. Dixson, &ldquo;Negative frequency-dependent preferences and variation in male facial hair&rdquo;, <cite>Biology Letters</cite> 10 (4), 2014, 20130958. <a href="https://doi.org/10.1098/rsbl.2013.0958" target="_blank" rel="noopener">doi:10.1098/rsbl.2013.0958</a></li>
      <li>Quincy T. Mills, <cite>Cutting Along the Color Line: Black Barbers and Barber Shops in America</cite>, University of Pennsylvania Press, 2013. <a href="https://www.degruyterbrill.com/document/doi/10.9783/9780812208658/html" target="_blank" rel="noopener">De Gruyter Brill</a></li>
      <li>Melissa V. Harris-Lacewell, <cite>Barbershops, Bibles, and BET: Everyday Talk and Black Political Thought</cite>, Princeton University Press, 2004. <a href="https://www.degruyterbrill.com/document/doi/10.1515/9781400836604/html" target="_blank" rel="noopener">De Gruyter Brill</a></li>
      <li>Ray Oldenburg, <cite>The Great Good Place</cite>, 1989, and his definition of third places. <a href="https://greatgoodplace.org/my-favorite-definition-of-a-third-place/" target="_blank" rel="noopener">greatgoodplace.org</a></li>
      <li>Web Japan (Ministry of Foreign Affairs of Japan), <cite>The Art of Hairstyling in Japan</cite>, 2025. <a href="https://web-japan.org/trends/11_fashion/fas202501_hairstyling.html" target="_blank" rel="noopener">web-japan.org</a></li>
      <li>SFO Museum, <cite>Extra &rsquo;O&rsquo;! African Barbershop and Hairdressing Signs</cite>, 2020. <a href="https://www.sfomuseum.org/exhibitions/extra-o-african-barbershop" target="_blank" rel="noopener">SFO Museum</a>; exhibition summary by <a href="https://indigoarts.com/news/extra-o-african-barbershop-and-hairdressing-signs-sfo-museum" target="_blank" rel="noopener">Indigo Arts</a></li>
      <li>Sebrae, <cite>Ideia de neg&oacute;cio: Barbearia</cite>. <a href="https://bibliotecas.sebrae.com.br/chronus/ARQUIVOS_CHRONUS/IDEIAS_DE_NEGOCIO/PDFS/ideia-de-negocio_barbearia.pdf" target="_blank" rel="noopener">Sebrae (PDF)</a></li>
    </ol>
  </section>

  <footer class="dr-post-footer lcp-footer lcp-wide">
    <nav class="dr-post-nav" aria-label="Lifestyle and Culture navigation">
      <a href="https://darjarihla.com/lifestyle-culture/" class="dr-nav-back">&larr; Back to Lifestyle &amp; Culture</a>
      <a href="https://darjarihla.com/lifestyle-culture/#lc-s-barbershop" class="lcp-footer__atlas">Open the barbershop sheet in The Everyday Atlas</a>
    </nav>
  </footer>
</article>
]]></content:encoded>
					
		
		
		<category>Lifestyle &amp; Culture</category>
	</item>
	</channel>
</rss>
