initial
This commit is contained in:
commit
4cda1ca41b
72 files changed
+8169
No files matched your search
+323
@@ -0,0 +1,323 @@
|
||||
export type Lang = 'en' | 'de';
|
||||
export const langs: Lang[] = ['en', 'de'];
|
||||
export const defaultLang: Lang = 'en';
|
||||
|
||||
export function langFromUrl(url: URL): Lang {
|
||||
const [, first] = url.pathname.split('/');
|
||||
return first === 'de' ? 'de' : 'en';
|
||||
}
|
||||
|
||||
/** Prefix a site-relative path for a language. `path` starts with "/". */
|
||||
export function localePath(lang: Lang, path: string): string {
|
||||
if (lang === 'en') return path === '' ? '/' : path;
|
||||
return path === '/' ? '/de' : `/de${path}`;
|
||||
}
|
||||
|
||||
/** The same page in the other language. */
|
||||
export function switchLang(url: URL, to: Lang): string {
|
||||
const clean = url.pathname.replace(/^\/de(?=\/|$)/, '') || '/';
|
||||
return localePath(to, clean) + url.hash;
|
||||
}
|
||||
|
||||
export function formatDate(date: Date, lang: Lang): string {
|
||||
return new Intl.DateTimeFormat(lang === 'de' ? 'de-DE' : 'en-GB', {
|
||||
day: 'numeric', month: 'long', year: 'numeric',
|
||||
}).format(date);
|
||||
}
|
||||
|
||||
const en = {
|
||||
meta: {
|
||||
siteName: 'CipherCell',
|
||||
home: { title: 'CipherCell. Security engineering for complex infrastructure.', description: 'CipherCell is a security engineering company in Passau. Threat analysis, security engineering, verification and monitoring for private 5G, critical network infrastructure and cloud-native systems.' },
|
||||
team: { title: 'Team', description: 'The security researchers, engineers and architects behind CipherCell.' },
|
||||
insights: { title: 'Insights', description: 'Notes on the security of private 5G, critical networks and the systems that run them.' },
|
||||
imprint: { title: 'Legal notice', description: 'Legal notice for the CipherCell website.' },
|
||||
privacy: { title: 'Privacy', description: 'Privacy policy for the CipherCell website.' },
|
||||
},
|
||||
nav: {
|
||||
skip: 'Skip to content',
|
||||
capabilities: 'Capabilities',
|
||||
sectors: 'Sectors',
|
||||
insights: 'Insights',
|
||||
team: 'Team',
|
||||
contact: 'Contact',
|
||||
menu: 'Menu',
|
||||
close: 'Close',
|
||||
homeLabel: 'CipherCell, home',
|
||||
},
|
||||
hero: {
|
||||
lines: ['Security for the networks', 'everything else runs on.'],
|
||||
imageAlt: 'An industrial plant at dusk: pipe racks, storage tanks and a lattice mast carrying 5G antennas under an overcast sky.',
|
||||
},
|
||||
manifesto: {
|
||||
lines: ['Security is built in,', 'not bolted on.'],
|
||||
p1: 'Private 5G networks, industrial control systems and cloud platforms are assembled from the components of many vendors. Every interface between them is an attack surface, and off-the-shelf tools were not built for that.',
|
||||
p2: 'CipherCell is a security engineering company. We model real adversaries, build zero trust into the architecture rather than around it, and prove that the posture holds. From the first threat model to the running system.',
|
||||
cta: 'About CipherCell',
|
||||
},
|
||||
method: {
|
||||
lines: ['Four stages.', 'One method.'],
|
||||
body: 'Threat analysis, engineering, verification and monitoring, run as one continuous method rather than four separate projects. Modular, integrable and built for operational reality.',
|
||||
imageAlt: 'A security engineer seen through glass, the reflections of monitoring screens layered across her face.',
|
||||
diagramTitle: 'The CipherCell method',
|
||||
diagramDesc: 'A closed loop of four stages: threat analysis, engineering, verification and monitoring. Each stage carries its own instruments: threat model, attack paths and CI/CD integration; zero trust, key management and secure APIs; independent review, hardening and testing; intrusion detection, security logging and resilience checks. Monitoring feeds back into threat analysis.',
|
||||
stages: [
|
||||
{ title: 'Threat analysis', items: ['Threat model', 'Attack paths', 'CI/CD integration'] },
|
||||
{ title: 'Engineering', items: ['Zero trust', 'Key management', 'Secure APIs'] },
|
||||
{ title: 'Verification', items: ['Independent review', 'Hardening', 'Testing'] },
|
||||
{ title: 'Monitoring', items: ['Intrusion detection', 'Security logging', 'Resilience checks'] },
|
||||
],
|
||||
},
|
||||
stages: {
|
||||
eyebrow: 'What we do.',
|
||||
items: [
|
||||
{ title: 'Threat analysis', body: 'Automated, empirical analysis of real attack paths. It runs inside your CI/CD pipeline and delivers continuous assurance.' },
|
||||
{ title: 'Engineering', body: 'Zero-trust enforcement, key management and secure API design as modular, composable tools for complex deployments.' },
|
||||
{ title: 'Verification', body: 'Independent review of security measures, hardening checklists and application-level testing across all components.' },
|
||||
{ title: 'Monitoring', body: 'Intrusion detection and security logging, from the first deployment through ongoing resilience verification.' },
|
||||
],
|
||||
},
|
||||
sectors: {
|
||||
title: 'Who we work with',
|
||||
items: [
|
||||
{ title: 'Private 5G and campus networks', body: 'Disaggregated networks with open interfaces and a multi-vendor supply chain. Our origin, and still the hardest case.', imageAlt: 'A private 5G antenna and radio cabinet on the parapet of a factory roof, cranes in the distance.' },
|
||||
{ title: 'Critical network infrastructure', body: 'Networks where a breach stops production, damages equipment or endangers people.', imageAlt: 'An electrical substation seen straight from above: transformers, switchgear and a service road.' },
|
||||
{ title: 'Cloud-native systems', body: 'Containers, service meshes and CI/CD pipelines that carry infrastructure workloads. Security that runs as code, alongside yours.', imageAlt: 'A cold aisle between server racks in a data centre, a technician far in the distance.' },
|
||||
],
|
||||
},
|
||||
proof: {
|
||||
title: 'Where we come from.',
|
||||
items: [
|
||||
{ name: 'University of Passau', body: 'Our method grew out of academic security research. The university remains our research partner.' },
|
||||
{ name: 'xG-ALOE alliance and xG-Incubator', body: 'Partners in the alliance for open enterprise networks, from lab to deployment.' },
|
||||
{ name: 'Federal Ministry of Research, Technology and Space', body: 'Our work is publicly funded.' },
|
||||
],
|
||||
},
|
||||
quote: {
|
||||
eyebrow: 'From the essay',
|
||||
text: 'Standard-compliant is not the same as secure.',
|
||||
name: 'Dr. Felix Klement',
|
||||
role: 'Founder and CEO',
|
||||
link: 'Read the essay',
|
||||
portraitAlt: 'Portrait of Dr. Felix Klement, founder and CEO of CipherCell.',
|
||||
},
|
||||
insights: {
|
||||
title: 'Insights',
|
||||
all: 'All insights',
|
||||
intro: 'Notes on the security of private 5G, critical networks and the systems that run them.',
|
||||
readingTime: (min: number) => `${min} min read`,
|
||||
event: { category: 'Event', when: 'September 2026', text: 'Meet us at the xG‑ALOE Plugfest 2026.', link: 'Event details', href: 'https://xg-aloe.de/xg-aloe-plugfest-2026/' },
|
||||
back: 'All insights',
|
||||
by: 'By',
|
||||
inEnglish: 'This essay is available in English.',
|
||||
},
|
||||
contact: {
|
||||
title: 'Talk to us.',
|
||||
body: 'Complex infrastructure, a tight compliance deadline, or a problem no one has solved yet. We respond within 24 hours.',
|
||||
address: ['Innstr. 43', '94032 Passau, Germany'],
|
||||
phone: '+49 (0)851 / 509-3218',
|
||||
phoneHref: 'tel:+498515093218',
|
||||
email: 'office@ciphercell.de',
|
||||
form: {
|
||||
firstName: 'First name',
|
||||
lastName: 'Last name',
|
||||
email: 'Email',
|
||||
message: 'Message',
|
||||
required: 'Required.',
|
||||
honeypot: 'Leave this field empty',
|
||||
submit: 'Send message',
|
||||
},
|
||||
},
|
||||
footer: {
|
||||
mission: 'Security engineering for infrastructure where failure has consequences.',
|
||||
company: 'Company',
|
||||
capabilities: 'Capabilities',
|
||||
contact: 'Contact',
|
||||
legal: 'Legal',
|
||||
language: 'Language',
|
||||
imprint: 'Legal notice',
|
||||
privacy: 'Privacy',
|
||||
github: 'GitHub',
|
||||
email: 'Email',
|
||||
fundingAlt: 'With funding from the Federal Ministry of Research, Technology and Space.',
|
||||
copyright: (year: number) => `© ${year} CipherCell`,
|
||||
en: 'English',
|
||||
de: 'Deutsch',
|
||||
},
|
||||
team: {
|
||||
title: ['Researchers,', 'engineers,', 'architects.'],
|
||||
intro: 'The people who go deep on the problems that matter, from 5G and private networks to hardware, software and cloud-native systems.',
|
||||
photoAlt: 'The CipherCell team on a staircase in the offices in Passau.',
|
||||
links: { github: 'GitHub', linkedin: 'LinkedIn', email: 'Email' },
|
||||
roles: {
|
||||
ceo: 'Founder and CEO',
|
||||
cto: 'Founder and CTO',
|
||||
engineer: 'Software engineer',
|
||||
bizdev: 'Business development',
|
||||
studentF: 'Working student, development',
|
||||
studentM: 'Working student, development',
|
||||
},
|
||||
},
|
||||
notFound: {
|
||||
title: 'Page not found',
|
||||
body: 'The address you followed leads nowhere. The pages that exist are listed in the footer.',
|
||||
link: 'Go to the start page',
|
||||
},
|
||||
legal: {
|
||||
imprintEyebrow: 'Information pursuant to § 5 TMG',
|
||||
responsible: 'Responsible',
|
||||
mailing: 'Mailing address',
|
||||
contact: 'Contact',
|
||||
asOf: 'As of 14 June 2025',
|
||||
},
|
||||
};
|
||||
|
||||
const de: typeof en = {
|
||||
meta: {
|
||||
siteName: 'CipherCell',
|
||||
home: { title: 'CipherCell. Security Engineering für komplexe Infrastruktur.', description: 'CipherCell ist ein Security-Engineering-Unternehmen in Passau. Bedrohungsanalyse, Security Engineering, Verifikation und Monitoring für private 5G-Netze, kritische Netzinfrastruktur und Cloud-native Systeme.' },
|
||||
team: { title: 'Team', description: 'Die Sicherheitsforschenden, Ingenieurinnen und Architekten hinter CipherCell.' },
|
||||
insights: { title: 'Einblicke', description: 'Notizen zur Sicherheit privater 5G-Netze, kritischer Netze und der Systeme, die sie betreiben.' },
|
||||
imprint: { title: 'Impressum', description: 'Impressum der CipherCell-Website.' },
|
||||
privacy: { title: 'Datenschutz', description: 'Datenschutzerklärung der CipherCell-Website.' },
|
||||
},
|
||||
nav: {
|
||||
skip: 'Zum Inhalt springen',
|
||||
capabilities: 'Leistungen',
|
||||
sectors: 'Einsatzfelder',
|
||||
insights: 'Einblicke',
|
||||
team: 'Team',
|
||||
contact: 'Kontakt',
|
||||
menu: 'Menü',
|
||||
close: 'Schließen',
|
||||
homeLabel: 'CipherCell, Startseite',
|
||||
},
|
||||
hero: {
|
||||
lines: ['Sicherheit für die Netze,', 'auf denen alles andere läuft.'],
|
||||
imageAlt: 'Eine Industrieanlage in der Dämmerung: Rohrbrücken, Tanks und ein Gittermast mit 5G-Antennen unter bedecktem Himmel.',
|
||||
},
|
||||
manifesto: {
|
||||
lines: ['Sicherheit wird eingebaut,', 'nicht angeschraubt.'],
|
||||
p1: 'Private 5G-Netze, industrielle Steuerungssysteme und Cloud-Plattformen werden aus Komponenten vieler Hersteller zusammengesetzt. Jede Schnittstelle dazwischen ist eine Angriffsfläche, und Standardwerkzeuge sind dafür nicht gebaut.',
|
||||
p2: 'CipherCell ist ein Security-Engineering-Unternehmen. Wir modellieren reale Angreifer, verankern Zero Trust in der Architektur statt daneben und weisen nach, dass sie standhält. Vom ersten Bedrohungsmodell bis zum laufenden System.',
|
||||
cta: 'Über CipherCell',
|
||||
},
|
||||
method: {
|
||||
lines: ['Vier Stufen.', 'Eine Methode.'],
|
||||
body: 'Bedrohungsanalyse, Engineering, Verifikation und Monitoring, als eine durchgehende Methode statt vier getrennter Projekte. Modular, integrierbar und gebaut für den operativen Alltag.',
|
||||
imageAlt: 'Eine Sicherheitsingenieurin hinter Glas, die Spiegelungen von Monitoring-Bildschirmen liegen über ihrem Gesicht.',
|
||||
diagramTitle: 'Die CipherCell-Methode',
|
||||
diagramDesc: 'Ein geschlossener Kreislauf aus vier Stufen: Bedrohungsanalyse, Engineering, Verifikation und Monitoring. Jede Stufe hat ihre Instrumente: Bedrohungsmodell, Angriffspfade und CI/CD-Integration; Zero Trust, Schlüsselmanagement und sichere APIs; unabhängige Prüfung, Härtung und Tests; Angriffserkennung, Security-Logging und Resilienzprüfung. Das Monitoring fließt zurück in die Bedrohungsanalyse.',
|
||||
stages: [
|
||||
{ title: 'Bedrohungsanalyse', items: ['Bedrohungsmodell', 'Angriffspfade', 'CI/CD-Integration'] },
|
||||
{ title: 'Engineering', items: ['Zero Trust', 'Schlüsselmanagement', 'Sichere APIs'] },
|
||||
{ title: 'Verifikation', items: ['Unabhängige Prüfung', 'Härtung', 'Tests'] },
|
||||
{ title: 'Monitoring', items: ['Angriffserkennung', 'Security-Logging', 'Resilienzprüfung'] },
|
||||
],
|
||||
},
|
||||
stages: {
|
||||
eyebrow: 'Was wir tun.',
|
||||
items: [
|
||||
{ title: 'Bedrohungs\u00ADanalyse', body: 'Automatisierte, empirische Analyse realer Angriffspfade. Sie läuft in Ihrer CI/CD-Pipeline und liefert kontinuierliche Absicherung.' },
|
||||
{ title: 'Engineering', body: 'Zero-Trust-Durchsetzung, Schlüsselmanagement und sicheres API-Design als modulare, kombinierbare Werkzeuge für komplexe Deployments.' },
|
||||
{ title: 'Verifikation', body: 'Unabhängige Prüfung von Sicherheitsmaßnahmen, Härtungs-Checklisten und anwendungsnahe Tests über alle Komponenten.' },
|
||||
{ title: 'Monitoring', body: 'Angriffserkennung und Security-Logging, vom ersten Deployment bis zur laufenden Resilienzprüfung.' },
|
||||
],
|
||||
},
|
||||
sectors: {
|
||||
title: 'Für wen wir arbeiten',
|
||||
items: [
|
||||
{ title: 'Private 5G- und Campusnetze', body: 'Disaggregierte Netze mit offenen Schnittstellen und einer Lieferkette aus vielen Herstellern. Unser Ursprung, und noch immer der schwerste Fall.', imageAlt: 'Eine private 5G-Antenne mit Funkschrank auf der Attika eines Fabrikdachs, Kräne im Hintergrund.' },
|
||||
{ title: 'Kritische Netzinfrastruktur', body: 'Netze, in denen ein Einbruch die Produktion stoppt, Anlagen beschädigt oder Menschen gefährdet.', imageAlt: 'Ein Umspannwerk senkrecht von oben: Transformatoren, Schaltanlagen und eine Zufahrt.' },
|
||||
{ title: 'Cloud-native Systeme', body: 'Container, Service Meshes und CI/CD-Pipelines, die Infrastruktur tragen. Sicherheit als Code, neben Ihrem.', imageAlt: 'Ein Kaltgang zwischen Serverschränken in einem Rechenzentrum, ein Techniker weit hinten.' },
|
||||
],
|
||||
},
|
||||
proof: {
|
||||
title: 'Woher wir kommen.',
|
||||
items: [
|
||||
{ name: 'Universität Passau', body: 'Unsere Methode ist aus akademischer Sicherheitsforschung entstanden. Die Universität bleibt unser Forschungspartner.' },
|
||||
{ name: 'xG-ALOE-Allianz und xG-Incubator', body: 'Partner in der Allianz für offene Unternehmensnetze, vom Labor bis zum Betrieb.' },
|
||||
{ name: 'Bundesministerium für Forschung, Technologie und Raumfahrt', body: 'Unsere Arbeit wird öffentlich gefördert.' },
|
||||
],
|
||||
},
|
||||
quote: {
|
||||
eyebrow: 'Aus dem Essay',
|
||||
text: 'Standardkonform ist nicht dasselbe wie sicher.',
|
||||
name: 'Dr. Felix Klement',
|
||||
role: 'Gründer und CEO',
|
||||
link: 'Essay lesen',
|
||||
portraitAlt: 'Porträt von Dr. Felix Klement, Gründer und CEO von CipherCell.',
|
||||
},
|
||||
insights: {
|
||||
title: 'Einblicke',
|
||||
all: 'Alle Einblicke',
|
||||
intro: 'Notizen zur Sicherheit privater 5G-Netze, kritischer Netze und der Systeme, die sie betreiben.',
|
||||
readingTime: (min: number) => `${min} Min. Lesezeit`,
|
||||
event: { category: 'Veranstaltung', when: 'September 2026', text: 'Treffen Sie uns beim xG‑ALOE Plugfest 2026.', link: 'Zur Veranstaltung', href: 'https://xg-aloe.de/xg-aloe-plugfest-2026/' },
|
||||
back: 'Alle Einblicke',
|
||||
by: 'Von',
|
||||
inEnglish: 'Dieser Essay liegt auf Englisch vor.',
|
||||
},
|
||||
contact: {
|
||||
title: 'Sprechen Sie mit uns.',
|
||||
body: 'Komplexe Infrastruktur, eine knappe Compliance-Frist oder ein Problem, das noch niemand gelöst hat. Wir antworten innerhalb von 24 Stunden.',
|
||||
address: ['Innstr. 43', '94032 Passau, Deutschland'],
|
||||
phone: '+49 (0)851 / 509-3218',
|
||||
phoneHref: 'tel:+498515093218',
|
||||
email: 'office@ciphercell.de',
|
||||
form: {
|
||||
firstName: 'Vorname',
|
||||
lastName: 'Nachname',
|
||||
email: 'E-Mail',
|
||||
message: 'Nachricht',
|
||||
required: 'Pflichtfeld.',
|
||||
honeypot: 'Dieses Feld bitte leer lassen',
|
||||
submit: 'Nachricht senden',
|
||||
},
|
||||
},
|
||||
footer: {
|
||||
mission: 'Security Engineering für Infrastruktur, in der Ausfälle Folgen haben.',
|
||||
company: 'Unternehmen',
|
||||
capabilities: 'Leistungen',
|
||||
contact: 'Kontakt',
|
||||
legal: 'Rechtliches',
|
||||
language: 'Sprache',
|
||||
imprint: 'Impressum',
|
||||
privacy: 'Datenschutz',
|
||||
github: 'GitHub',
|
||||
email: 'E-Mail',
|
||||
fundingAlt: 'Gefördert vom Bundesministerium für Forschung, Technologie und Raumfahrt.',
|
||||
copyright: (year: number) => `© ${year} CipherCell`,
|
||||
en: 'English',
|
||||
de: 'Deutsch',
|
||||
},
|
||||
team: {
|
||||
title: ['Forschende,', 'Ingenieure,', 'Architekten.'],
|
||||
intro: 'Die Menschen, die sich in die Probleme vertiefen, auf die es ankommt: von 5G und privaten Netzen bis zu Hardware, Software und Cloud-nativen Systemen.',
|
||||
photoAlt: 'Das CipherCell-Team auf einer Treppe in den Büros in Passau.',
|
||||
links: { github: 'GitHub', linkedin: 'LinkedIn', email: 'E-Mail' },
|
||||
roles: {
|
||||
ceo: 'Gründer und CEO',
|
||||
cto: 'Gründer und CTO',
|
||||
engineer: 'Software Engineer',
|
||||
bizdev: 'Business Development',
|
||||
studentF: 'Werkstudentin, Entwicklung',
|
||||
studentM: 'Werkstudent, Entwicklung',
|
||||
},
|
||||
},
|
||||
notFound: {
|
||||
title: 'Seite nicht gefunden',
|
||||
body: 'Die Adresse, der Sie gefolgt sind, führt ins Leere. Die vorhandenen Seiten stehen in der Fußzeile.',
|
||||
link: 'Zur Startseite',
|
||||
},
|
||||
legal: {
|
||||
imprintEyebrow: 'Angaben gemäß § 5 TMG',
|
||||
responsible: 'Verantwortlich',
|
||||
mailing: 'Postanschrift',
|
||||
contact: 'Kontakt',
|
||||
asOf: 'Stand: 14. Juni 2025',
|
||||
},
|
||||
};
|
||||
|
||||
export const ui: Record<Lang, typeof en> = { en, de };
|
||||
export function t(lang: Lang) { return ui[lang]; }
|
||||
Reference in new issue
Block a user