Files
Presentations/community_gesundheitsämter_17_06_2026/cybersecurity-vortrag.html
T
2026-06-15 18:14:27 +02:00

1044 lines
63 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Cybersecurity im öffentlichen Gesundheitswesen</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/5.1.0/reveal.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/5.1.0/theme/white.min.css" id="theme">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/github.min.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.13.1/font/bootstrap-icons.min.css">
<style>
:root {
--akzent: #0b5fa5;
--akzent-hell: #3b8bd1;
--warnung: #c0392b;
}
.reveal { font-family: "Segoe UI", "Helvetica Neue", Arial, sans-serif; }
.reveal h1, .reveal h2, .reveal h3 { color: var(--akzent); text-transform: none; letter-spacing: normal; }
.reveal h1 { font-size: 2.1em; }
.reveal h2 { font-size: 1.5em; }
.reveal section { text-align: left; }
.reveal section.zentriert { text-align: center; }
.reveal .untertitel { color: #555; font-size: 0.7em; font-weight: 400; }
.reveal .fusszeile { position: absolute; bottom: 12px; left: 20px; font-size: 0.4em; color: #888; }
.reveal ul { display: block; }
.reveal .akzent { color: var(--akzent); }
.reveal .warnung { color: var(--warnung); }
.reveal .karte {
background: #f4f7fa; border-left: 5px solid var(--akzent);
padding: 0.6em; border-radius: 4px; width: 100%; float: left;
}
.reveal .platzhalter { color: #aaa; font-style: italic; font-size: 0.8em; }
.reveal .badge {
display: inline-block; background: var(--akzent); color: #fff;
padding: 0.1em 0.6em; border-radius: 999px; font-size: 0.5em; vertical-align: middle;
}
/* WLAN-Hijacking-Animation (nativ in der Folie, gesteuert über Fragmente) */
.reveal .wlan-scene { --ok:#1e8449; --grau:#6b7280; max-width: 900px; margin: 0 auto; }
.reveal .wlan-scene svg { width: 100%; height: auto; }
.reveal .wlan-scene .flow { fill:none; stroke-width:4; stroke-linecap:round;
stroke-dasharray:9 9; animation: wlanmarch 1.2s linear infinite; }
@keyframes wlanmarch { to { stroke-dashoffset:-18; } }
.reveal .wlan-scene .flow.legit, .reveal .wlan-scene .flow.secure { stroke: var(--ok); }
.reveal .wlan-scene .flow.evil, .reveal .wlan-scene .flow.evil2 { stroke: var(--warnung); }
.reveal .wlan-scene .danger-blink { animation: wlanblink 1.4s ease-in-out infinite; }
@keyframes wlanblink { 0%,100%{opacity:1} 50%{opacity:.3} }
.reveal .wlan-caption { margin-top: 0.3em; font-size: 0.6em; line-height: 1.35; }
.reveal .wlan-caption .wlan-step-no { display:inline-block; background: var(--akzent);
color:#fff; border-radius:999px; font-size: 0.8em; padding: 2px 12px; }
.reveal .wlan-caption.warn .wlan-step-no { background: var(--warnung); }
.reveal .wlan-caption.ok .wlan-step-no { background: #1e8449; }
.reveal .wlan-caption .t { display:block; font-weight:700; color: var(--akzent); margin-top:.2em; }
.reveal .wlan-caption.warn .t { color: var(--warnung); }
.reveal .wlan-caption.ok .t { color: #1e8449; }
.reveal .wlan-caption .p { margin:.15em auto 0; max-width: 820px; color:#444; }
/* iPhone-Mockup: Signal-Startbildschirm */
.reveal .iphone-mockup { display:flex; justify-content:center; align-items:center; margin: 0.2em auto; }
.reveal .iphone-frame {
position: relative; width: 320px; height: 650px;
background: #1a1a1c; border-radius: 46px;
padding: 10px; box-shadow: 0 18px 40px rgba(0,0,0,.35), inset 0 0 0 2px #2a2a2c;
}
.reveal .iphone-notch {
position:absolute; top: 18px; left: 50%; transform: translateX(-50%);
width: 110px; height: 30px; background:#000; border-radius: 20px; z-index: 3;
}
.reveal .iphone-screen {
width:100%; height:100%; background:#fff; border-radius: 36px; overflow:hidden;
display:flex; flex-direction:column; font-family: -apple-system, "SF Pro Text", "Helvetica Neue", Arial, sans-serif;
color:#000;
}
.reveal .ios-statusbar {
display:flex; justify-content:space-between; align-items:center;
padding: 12px 28px 4px; font-size: 14px; font-weight: 600;
}
.reveal .ios-time { color:#000; }
.reveal .ios-icons { display:inline-flex; align-items:center; gap:5px; color:#000; }
.reveal .ios-icons svg { fill:#000; }
.reveal .ios-battery {
display:inline-block; width: 22px; height: 11px; border: 1px solid #000;
border-radius: 3px; position: relative; padding: 1px;
}
.reveal .ios-battery::after {
content:""; position:absolute; right:-3px; top:3px; width:2px; height:5px;
background:#000; border-radius: 0 1px 1px 0;
}
.reveal .ios-battery-fill { display:block; width:80%; height:100%; background:#000; border-radius:1px; }
.reveal .signal-header {
display:flex; align-items:center; justify-content:space-between;
padding: 10px 16px 6px;
}
.reveal .signal-avatar-me {
width: 32px; height: 32px; border-radius: 50%;
background:#3a76f0; color:#fff; font-size: 12px; font-weight: 600;
display:flex; align-items:center; justify-content:center;
}
.reveal .signal-avatar-me img {
width: 100%; height: 100%; border-radius: 50%; object-fit: cover;
}
.reveal .signal-title { font-size: 26px; font-weight: 700; color:#000; }
.reveal .signal-actions { color:#3a76f0; display:flex; align-items:center; }
.reveal .signal-search {
margin: 4px 16px 8px; padding: 7px 10px;
background:#efeff0; border-radius: 10px;
display:flex; align-items:center; gap:6px;
color:#8a8a8e; font-size: 14px;
}
.reveal .signal-chats { list-style:none; margin:0; padding:0; flex:1; overflow:hidden; }
.reveal .signal-chat {
display:flex; align-items:center; gap: 10px;
padding: 9px 16px; border-bottom: 1px solid #ececec;
}
.reveal .signal-avatar {
width: 44px; height: 44px; border-radius: 50%;
color:#fff; font-size: 14px; font-weight: 600;
display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.reveal .signal-avatar img {
width: 100%; height: 100%; border-radius: 50%; object-fit: cover;
}
.reveal .signal-chat-body { flex:1; min-width:0; }
.reveal .signal-chat-row1 {
display:flex; justify-content:space-between; align-items:baseline;
}
.reveal .signal-name { font-size: 14px; font-weight: 600; color:#000; }
.reveal .signal-time { font-size: 11px; color:#8a8a8e; }
.reveal .signal-chat-row2 {
display:flex; justify-content:space-between; align-items:center;
margin-top: 2px;
}
.reveal .signal-preview {
font-size: 12px; color:#6e6e72; white-space:nowrap;
overflow:hidden; text-overflow:ellipsis; max-width: 200px;
}
.reveal .signal-unread {
background:#3a76f0; color:#fff; font-size: 10px; font-weight: 600;
border-radius: 999px; padding: 1px 6px; min-width: 16px; text-align:center;
}
.reveal .iphone-home-indicator {
position:absolute; bottom: 6px; left: 50%; transform: translateX(-50%);
width: 110px; height: 4px; background:#000; border-radius: 3px;
}
/* Signal: geöffneter Chat (Konversationsansicht) */
.reveal .signal-convo-header {
display:flex; align-items:center; gap: 10px;
padding: 8px 12px 8px 8px; border-bottom: 1px solid #ececec;
background:#f6f6f7;
}
.reveal .signal-convo-back {
color:#3a76f0; display:flex; align-items:center;
}
.reveal .signal-convo-avatar {
width: 32px; height: 32px; border-radius: 50%;
display:flex; align-items:center; justify-content:center;
color:#fff; font-size: 12px; font-weight: 600; flex-shrink:0;
}
.reveal .signal-convo-avatar img { width:100%; height:100%; border-radius:50%; object-fit:cover; }
.reveal .signal-convo-meta { flex:1; min-width:0; line-height:1.15; }
.reveal .signal-convo-name { font-size: 14px; font-weight: 600; color:#000; }
.reveal .signal-convo-sub { font-size: 11px; color:#8a8a8e; }
.reveal .signal-convo-icons { display:flex; gap: 14px; color:#3a76f0; }
.reveal .signal-convo-body {
flex:1; overflow:hidden; padding: 10px 10px 6px;
display:flex; flex-direction:column; gap: 6px;
background:#fff;
}
.reveal .signal-day {
align-self:center; font-size: 10px; color:#8a8a8e;
background:#efeff0; padding: 2px 8px; border-radius: 999px; margin: 2px 0 6px;
}
.reveal .signal-bubble {
max-width: 78%; padding: 7px 10px; border-radius: 16px;
font-size: 13px; line-height: 1.35; position:relative;
word-wrap: break-word;
}
.reveal .signal-bubble-in {
align-self:flex-start; background:#efeff0; color:#000;
border-bottom-left-radius: 4px;
}
.reveal .signal-bubble-out {
align-self:flex-end; background:#3a76f0; color:#fff;
border-bottom-right-radius: 4px;
}
.reveal .signal-bubble-time {
display:block; font-size: 10px; opacity:.7; margin-top: 3px; text-align:right;
}
.reveal .signal-bubble-in .signal-bubble-time { color:#6e6e72; opacity:1; }
.reveal .signal-bubble-out .signal-bubble-time::after {
content:" ✓✓"; letter-spacing:-1px;
}
.reveal .signal-input {
display:flex; align-items:center; gap: 8px;
padding: 6px 10px 10px; background:#fff;
border-top: 1px solid #ececec;
}
.reveal .signal-input-pill {
flex:1; background:#efeff0; border-radius: 999px;
padding: 7px 12px; color:#8a8a8e; font-size: 13px;
display:flex; align-items:center; justify-content:space-between;
}
.reveal .signal-input-icons { display:flex; gap: 6px; color:#8a8a8e; }
.reveal .signal-mic {
width: 32px; height: 32px; border-radius: 50%;
background:#3a76f0; color:#fff;
display:flex; align-items:center; justify-content:center;
}
</style>
</head>
<body>
<div class="reveal">
<div class="slides">
<!-- 1. Titelfolie -->
<section class="zentriert" data-auto-animate>
<h1>Cybersecurity</h1>
<h3 class="untertitel">Bedrohungen erkennen, Schäden vermeiden im öffentlichen Gesundheitswesen</h3>
<p style="margin-top:1.2em;"><span>Richard Mietz · Chaotikum e.V. · 17.06.2026</span></p>
<aside class="notes">Begrüßung. Kurz Rahmen setzen: Warum Cybersecurity gerade im Gesundheitswesen kritisch ist.</aside>
</section>
<!-- 2. Wer bin ich -->
<section>
<h2>$ whoami</h2>
<div class="karte">
<p><strong><span style="margin-bottom: auto;"><i class="bi bi-person-fill"></i> Richard Mietz</span></strong><img src="profilbild.jpg" alt="Profilfoto" style="width: 200px; height: 200px; border-radius: 50%; object-fit: cover; float: right;"></p>
<span><i class="bi bi-building"></i> Lufthansa Industry Solutions</span><br>
<span style="margin-left: 2em;" class="platzhalter">Automation, DevOps, Product Architecture</span><br>
<span><i class="bi bi-people"></i> Chaotikum e.V. / CCC HL</span><br>
<span style="margin-left: 2em;" class="platzhalter">Technik greifbar machen, "Hacken"</span><br>
</div><br>
<aside class="notes">Vertrauen aufbauen, Relevanz der eigenen Erfahrung für das Publikum verdeutlichen.</aside>
</section>
<!-- 3. Agenda -->
<section>
<h2>Agenda</h2>
<ol>
<li>Wer greift an?</li>
<li>Angriffsvektoren im Überblick</li>
<li>Schadensarten durch Cyberangriffe</li>
<li>Was tun im Angriff?</li>
<li>Angriffe verhindern</li>
</ol>
<aside class="notes">Roten Faden vorstellen. Hinweis: praxisnah, kein Technik-Tiefdive.</aside>
</section>
<!-- 4. Wer greift an? -->
<section>
<h2>Wer greift an?</h2>
<ul>
<li><strong>Organisierte Kriminalität</strong> finanziell motiviert (Ransomware, Erpressung)</li>
<li><strong>Staatliche Akteure</strong> Spionage, Sabotage kritischer Infrastruktur</li>
<li><strong>Innentäter</strong> fahrlässig oder vorsätzlich</li>
<li><strong>Hacktivisten</strong> Forschung</li>
<li><strong>Einzeltäter</strong> individuell motiviert</li>
</ul>
<p class="platzhalter"></p>
<aside class="notes">Motivation der Angreifer differenzieren nicht jeder Angriff ist gezielt.</aside>
<aside class="notes">Hinweis: Gesundheitswesen = lohnendes Ziel (sensible Daten, hohe Erpressbarkeit).</aside>
</section>
<!-- 5. Angriffsvektoren Überblick -->
<section>
<h2>Angriffsvektoren Überblick</h2>
<div class="karte">Social Engineering</div>
<div class="karte">Phishing</div>
<div class="karte">WLAN-Hijacking</div>
<aside class="notes">Gemeinsamer Nenner: Der Mensch als Einfallstor.</aside>
<aside class="notes">Überleitung: Die folgenden Folien vertiefen jeden Vektor einzeln.</aside>
</section>
<!-- 6. Social Engineering -->
<section>
<section>
<h2>Angriffsvektor: Social Engineering</h2>
<p>Manipulation von Menschen statt Technik.</p>
<ul>
<li>Vortäuschen von Autorität oder Dringlichkeit</li>
<li>Ausnutzen von Hilfsbereitschaft und Vertrauen</li>
<li>Beispiel: Besuch der "IT Abteilung", Besucher mit Sicherheitsweste</li>
</ul>
<aside class="notes">Beispiel: Pizzalieferant wird bei Regen rein gelassen und überall wird nachgefragt wer bestellt hat.<br></aside>
<aside class="notes">Beispiel Nationale Ebene: Bauschaum in Auspuff vor Wahlen</aside>
</section>
<section data-transition="none">
<div class="iphone-mockup">
<div class="iphone-frame">
<div class="iphone-notch"></div>
<div class="iphone-screen">
<div class="ios-statusbar">
<span class="ios-time">9:41</span>
<span class="ios-icons">
<svg viewBox="0 0 18 12" width="18" height="12" aria-hidden="true"><circle cx="2" cy="10" r="1.6"/><circle cx="7" cy="10" r="1.6"/><circle cx="12" cy="10" r="1.6"/><circle cx="17" cy="10" r="1.6" opacity=".35"/></svg>
<svg viewBox="0 0 16 12" width="16" height="12" aria-hidden="true"><path d="M8 11.5a1 1 0 100-2 1 1 0 000 2zm-2.5-2.3a3.5 3.5 0 015 0l.7-.7a4.5 4.5 0 00-6.4 0l.7.7zm-2.1-2.1a6.5 6.5 0 019.2 0l.7-.7a7.5 7.5 0 00-10.6 0l.7.7zM1.3 5a9.5 9.5 0 0113.4 0l.7-.7a10.5 10.5 0 00-14.8 0L1.3 5z"/></svg>
<span class="ios-battery"><span class="ios-battery-fill"></span></span>
</span>
</div>
<div class="signal-header">
<span class="signal-avatar-me"><img src="jk.jpeg" alt="JK"></span>
<span class="signal-title">Signal</span>
<span class="signal-actions">
<svg viewBox="0 0 24 24" width="22" height="22" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><line x1="12" y1="8" x2="12" y2="16"/><line x1="8" y1="12" x2="16" y2="12"/></svg>
</span>
</div>
<div class="signal-search">
<svg viewBox="0 0 24 24" width="16" height="16" aria-hidden="true" fill="none" stroke="#8a8a8e" stroke-width="2.2" stroke-linecap="round"><circle cx="11" cy="11" r="7"/><line x1="20" y1="20" x2="16.5" y2="16.5"/></svg>
<span>Suchen</span>
</div>
<ul class="signal-chats">
<li class="signal-chat">
<span class="signal-avatar" style="background:#3a76f0;">IT</span>
<div class="signal-chat-body">
<div class="signal-chat-row1"><span class="signal-name">Bund IT</span><span class="signal-time">09:34</span></div>
<div class="signal-chat-row2"><span class="signal-preview">Phishing Gefahr!SIGNAL fragt nie...</span><span class="signal-unread">2</span></div>
</div>
</li>
<li class="signal-chat">
<span class="signal-avatar"><img src="fm.jpg" alt="FM"></span>
<div class="signal-chat-body">
<div class="signal-chat-row1"><span class="signal-name">Friedrich Merz</span><span class="signal-time">09:12</span></div>
<div class="signal-chat-row2"><span class="signal-preview">LOL! Schau mal das Katzenvideo!</span><span class="signal-unread">1</span></div>
</div>
</li>
<li class="signal-chat">
<span class="signal-avatar" style="background:#1e8449;">MS</span>
<div class="signal-chat-body">
<div class="signal-chat-row1"><span class="signal-name">Markus Söder</span><span class="signal-time">08:47</span></div>
<div class="signal-chat-row2"><span class="signal-preview">BAYERN!!!111!</span></div>
</div>
</li>
<li class="signal-chat">
<span class="signal-avatar" style="background:#8e44ad;">S</span>
<div class="signal-chat-body">
<div class="signal-chat-row1"><span class="signal-name">Schatzi ❤️❤️❤️❤️❤️</span><span class="signal-time">Gestern</span></div>
<div class="signal-chat-row2"><span class="signal-preview">Du: Foto</span></div>
</div>
</li>
<li class="signal-chat">
<span class="signal-avatar" style="background:#d35400;">TN</span>
<div class="signal-chat-body">
<div class="signal-chat-row1"><span class="signal-name">Tom Nestlè</span><span class="signal-time">Gestern</span></div>
<div class="signal-chat-row2"><span class="signal-preview">Du: Klingt gut, machen wir so.</span></div>
</div>
</li>
</ul>
</div>
<div class="iphone-home-indicator"></div>
</div>
</div>
</section>
<section data-transition="none">
<div class="iphone-mockup">
<div class="iphone-frame">
<div class="iphone-notch"></div>
<div class="iphone-screen">
<div class="ios-statusbar">
<span class="ios-time">9:42</span>
<span class="ios-icons">
<svg viewBox="0 0 18 12" width="18" height="12" aria-hidden="true"><circle cx="2" cy="10" r="1.6"/><circle cx="7" cy="10" r="1.6"/><circle cx="12" cy="10" r="1.6"/><circle cx="17" cy="10" r="1.6" opacity=".35"/></svg>
<svg viewBox="0 0 16 12" width="16" height="12" aria-hidden="true"><path d="M8 11.5a1 1 0 100-2 1 1 0 000 2zm-2.5-2.3a3.5 3.5 0 015 0l.7-.7a4.5 4.5 0 00-6.4 0l.7.7zm-2.1-2.1a6.5 6.5 0 019.2 0l.7-.7a7.5 7.5 0 00-10.6 0l.7.7zM1.3 5a9.5 9.5 0 0113.4 0l.7-.7a10.5 10.5 0 00-14.8 0L1.3 5z"/></svg>
<span class="ios-battery"><span class="ios-battery-fill"></span></span>
</span>
</div>
<div class="signal-header">
<span class="signal-avatar-me"><img src="jk.jpeg" alt="JK"></span>
<span class="signal-title">Signal</span>
<span class="signal-actions">
<svg viewBox="0 0 24 24" width="22" height="22" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><line x1="12" y1="8" x2="12" y2="16"/><line x1="8" y1="12" x2="16" y2="12"/></svg>
</span>
</div>
<div class="signal-search">
<svg viewBox="0 0 24 24" width="16" height="16" aria-hidden="true" fill="none" stroke="#8a8a8e" stroke-width="2.2" stroke-linecap="round"><circle cx="11" cy="11" r="7"/><line x1="20" y1="20" x2="16.5" y2="16.5"/></svg>
<span>Suchen</span>
</div>
<ul class="signal-chats">
<li class="signal-chat">
<span class="signal-avatar"><img src="signal.png" alt="Signal"></span>
<div class="signal-chat-body">
<div class="signal-chat-row1"><span class="signal-name">Signal</span><span class="signal-time">09:42</span></div>
<div class="signal-chat-row2"><span class="signal-preview">⚠️ DRINGEND: Um Ihr Konto zu schützen, senden Sie uns bitte den</span><span class="signal-unread">3</span></div>
</div>
</li>
<li class="signal-chat">
<span class="signal-avatar" style="background:#3a76f0;">IT</span>
<div class="signal-chat-body">
<div class="signal-chat-row1"><span class="signal-name">Bund IT</span><span class="signal-time">09:34</span></div>
<div class="signal-chat-row2"><span class="signal-preview">Phishing Gefahr!SIGNAL fragt nie...</span><span class="signal-unread">2</span></div>
</div>
</li>
<li class="signal-chat">
<span class="signal-avatar"><img src="fm.jpg" alt="FM"></span>
<div class="signal-chat-body">
<div class="signal-chat-row1"><span class="signal-name">Friedrich Merz</span><span class="signal-time">09:12</span></div>
<div class="signal-chat-row2"><span class="signal-preview">LOL! Schau mal das Katzenvideo!</span><span class="signal-unread">1</span></div>
</div>
</li>
<li class="signal-chat">
<span class="signal-avatar" style="background:#1e8449;">MS</span>
<div class="signal-chat-body">
<div class="signal-chat-row1"><span class="signal-name">Markus Söder</span><span class="signal-time">08:47</span></div>
<div class="signal-chat-row2"><span class="signal-preview">BAYERN!!!111!</span></div>
</div>
</li>
<li class="signal-chat">
<span class="signal-avatar" style="background:#8e44ad;">S</span>
<div class="signal-chat-body">
<div class="signal-chat-row1"><span class="signal-name">Schatzi ❤️❤️❤️❤️❤️</span><span class="signal-time">Gestern</span></div>
<div class="signal-chat-row2"><span class="signal-preview">Du: Foto</span></div>
</div>
</li>
<li class="signal-chat">
<span class="signal-avatar" style="background:#d35400;">TN</span>
<div class="signal-chat-body">
<div class="signal-chat-row1"><span class="signal-name">Tom Nestlè</span><span class="signal-time">Gestern</span></div>
<div class="signal-chat-row2"><span class="signal-preview">Du: Klingt gut, machen wir so.</span></div>
</div>
</li>
</ul>
</div>
<div class="iphone-home-indicator"></div>
</div>
</div>
</section>
<section data-transition="none">
<div class="iphone-mockup">
<div class="iphone-frame">
<div class="iphone-notch"></div>
<div class="iphone-screen">
<div class="ios-statusbar">
<span class="ios-time">9:42</span>
<span class="ios-icons">
<svg viewBox="0 0 18 12" width="18" height="12" aria-hidden="true"><circle cx="2" cy="10" r="1.6"/><circle cx="7" cy="10" r="1.6"/><circle cx="12" cy="10" r="1.6"/><circle cx="17" cy="10" r="1.6" opacity=".35"/></svg>
<svg viewBox="0 0 16 12" width="16" height="12" aria-hidden="true"><path d="M8 11.5a1 1 0 100-2 1 1 0 000 2zm-2.5-2.3a3.5 3.5 0 015 0l.7-.7a4.5 4.5 0 00-6.4 0l.7.7zm-2.1-2.1a6.5 6.5 0 019.2 0l.7-.7a7.5 7.5 0 00-10.6 0l.7.7zM1.3 5a9.5 9.5 0 0113.4 0l.7-.7a10.5 10.5 0 00-14.8 0L1.3 5z"/></svg>
<span class="ios-battery"><span class="ios-battery-fill"></span></span>
</span>
</div>
<div class="signal-convo-header">
<span class="signal-convo-back">
<svg viewBox="0 0 24 24" width="22" height="22" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><polyline points="15 18 9 12 15 6"/></svg>
</span>
<span class="signal-convo-avatar"><img src="signal.png" alt="Signal"></span>
<div class="signal-convo-meta">
<div class="signal-convo-name">Signal</div>
<div class="signal-convo-sub">Verifiziert · End-to-End</div>
</div>
<span class="signal-convo-icons">
<svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polygon points="23 7 16 12 23 17 23 7"/><rect x="1" y="5" width="15" height="14" rx="2"/></svg>
<svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.86 19.86 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.86 19.86 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.91.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92z"/></svg>
</span>
</div>
<div class="signal-convo-body">
<span class="signal-day">Heute 09:42</span>
<div class="signal-bubble signal-bubble-in">
Hallo! Hier ist das offizielle Signal-Sicherheitsteam.
<span class="signal-bubble-time">09:42</span>
</div>
<div class="signal-bubble signal-bubble-in">
Wir haben verdächtige Anmeldeversuche auf Ihr Konto festgestellt.
<span class="signal-bubble-time">09:42</span>
</div>
<div class="signal-bubble signal-bubble-in">
⚠️ DRINGEND: Um Ihr Konto zu schützen, senden Sie uns bitte den 6-stelligen Verifizierungs&shy;code, den Sie gleich per SMS erhalten.
<span class="signal-bubble-time">09:42</span>
</div>
</div>
<div class="signal-input">
<div class="signal-input-pill">
<span>Signal-Nachricht</span>
<span class="signal-input-icons">
<svg viewBox="0 0 24 24" width="16" height="16" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><path d="M8 14s1.5 2 4 2 4-2 4-2"/><line x1="9" y1="9" x2="9.01" y2="9"/><line x1="15" y1="9" x2="15.01" y2="9"/></svg>
<svg viewBox="0 0 24 24" width="16" height="16" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="17 8 12 3 7 8"/><line x1="12" y1="3" x2="12" y2="15"/></svg>
</span>
</div>
<span class="signal-mic">
<svg viewBox="0 0 24 24" width="16" height="16" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z"/><path d="M19 10v2a7 7 0 0 1-14 0v-2"/><line x1="12" y1="19" x2="12" y2="23"/></svg>
</span>
</div>
</div>
<div class="iphone-home-indicator"></div>
</div>
</div>
</section>
<section data-transition="none">
<div class="iphone-mockup">
<div class="iphone-frame">
<div class="iphone-notch"></div>
<div class="iphone-screen">
<div class="ios-statusbar">
<span class="ios-time">9:43</span>
<span class="ios-icons">
<svg viewBox="0 0 18 12" width="18" height="12" aria-hidden="true"><circle cx="2" cy="10" r="1.6"/><circle cx="7" cy="10" r="1.6"/><circle cx="12" cy="10" r="1.6"/><circle cx="17" cy="10" r="1.6" opacity=".35"/></svg>
<svg viewBox="0 0 16 12" width="16" height="12" aria-hidden="true"><path d="M8 11.5a1 1 0 100-2 1 1 0 000 2zm-2.5-2.3a3.5 3.5 0 015 0l.7-.7a4.5 4.5 0 00-6.4 0l.7.7zm-2.1-2.1a6.5 6.5 0 019.2 0l.7-.7a7.5 7.5 0 00-10.6 0l.7.7zM1.3 5a9.5 9.5 0 0113.4 0l.7-.7a10.5 10.5 0 00-14.8 0L1.3 5z"/></svg>
<span class="ios-battery"><span class="ios-battery-fill"></span></span>
</span>
</div>
<div class="signal-convo-header">
<span class="signal-convo-back">
<svg viewBox="0 0 24 24" width="22" height="22" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><polyline points="15 18 9 12 15 6"/></svg>
</span>
<span class="signal-convo-avatar"><img src="signal.png" alt="Signal"></span>
<div class="signal-convo-meta">
<div class="signal-convo-name">Signal</div>
<div class="signal-convo-sub">Verifiziert · End-to-End</div>
</div>
<span class="signal-convo-icons">
<svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polygon points="23 7 16 12 23 17 23 7"/><rect x="1" y="5" width="15" height="14" rx="2"/></svg>
<svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.86 19.86 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.86 19.86 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.91.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92z"/></svg>
</span>
</div>
<div class="signal-convo-body">
<span class="signal-day">Heute 09:42</span>
<div class="signal-bubble signal-bubble-in">
Hallo! Hier ist das offizielle Signal-Sicherheitsteam.
<span class="signal-bubble-time">09:42</span>
</div>
<div class="signal-bubble signal-bubble-in">
Wir haben verdächtige Anmeldeversuche auf Ihr Konto festgestellt.
<span class="signal-bubble-time">09:42</span>
</div>
<div class="signal-bubble signal-bubble-in">
⚠️ DRINGEND: Um Ihr Konto zu schützen, senden Sie uns bitte den 6-stelligen Verifizierungs&shy;code, den Sie gleich per SMS erhalten.
<span class="signal-bubble-time">09:42</span>
</div>
<div class="signal-bubble signal-bubble-out">
Ist das wirklich Signal?!
<span class="signal-bubble-time">09:43</span>
</div>
</div>
<div class="signal-input">
<div class="signal-input-pill">
<span>Signal-Nachricht</span>
<span class="signal-input-icons">
<svg viewBox="0 0 24 24" width="16" height="16" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><path d="M8 14s1.5 2 4 2 4-2 4-2"/><line x1="9" y1="9" x2="9.01" y2="9"/><line x1="15" y1="9" x2="15.01" y2="9"/></svg>
<svg viewBox="0 0 24 24" width="16" height="16" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="17 8 12 3 7 8"/><line x1="12" y1="3" x2="12" y2="15"/></svg>
</span>
</div>
<span class="signal-mic">
<svg viewBox="0 0 24 24" width="16" height="16" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z"/><path d="M19 10v2a7 7 0 0 1-14 0v-2"/><line x1="12" y1="19" x2="12" y2="23"/></svg>
</span>
</div>
</div>
<div class="iphone-home-indicator"></div>
</div>
</div>
</section>
<section data-transition="none">
<div class="iphone-mockup">
<div class="iphone-frame">
<div class="iphone-notch"></div>
<div class="iphone-screen">
<div class="ios-statusbar">
<span class="ios-time">9:43</span>
<span class="ios-icons">
<svg viewBox="0 0 18 12" width="18" height="12" aria-hidden="true"><circle cx="2" cy="10" r="1.6"/><circle cx="7" cy="10" r="1.6"/><circle cx="12" cy="10" r="1.6"/><circle cx="17" cy="10" r="1.6" opacity=".35"/></svg>
<svg viewBox="0 0 16 12" width="16" height="12" aria-hidden="true"><path d="M8 11.5a1 1 0 100-2 1 1 0 000 2zm-2.5-2.3a3.5 3.5 0 015 0l.7-.7a4.5 4.5 0 00-6.4 0l.7.7zm-2.1-2.1a6.5 6.5 0 019.2 0l.7-.7a7.5 7.5 0 00-10.6 0l.7.7zM1.3 5a9.5 9.5 0 0113.4 0l.7-.7a10.5 10.5 0 00-14.8 0L1.3 5z"/></svg>
<span class="ios-battery"><span class="ios-battery-fill"></span></span>
</span>
</div>
<div class="signal-convo-header">
<span class="signal-convo-back">
<svg viewBox="0 0 24 24" width="22" height="22" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><polyline points="15 18 9 12 15 6"/></svg>
</span>
<span class="signal-convo-avatar"><img src="signal.png" alt="Signal"></span>
<div class="signal-convo-meta">
<div class="signal-convo-name">Signal</div>
<div class="signal-convo-sub">Verifiziert · End-to-End</div>
</div>
<span class="signal-convo-icons">
<svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polygon points="23 7 16 12 23 17 23 7"/><rect x="1" y="5" width="15" height="14" rx="2"/></svg>
<svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.86 19.86 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.86 19.86 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.91.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92z"/></svg>
</span>
</div>
<div class="signal-convo-body">
<span class="signal-day">Heute 09:42</span>
<div class="signal-bubble signal-bubble-in">
Hallo! Hier ist das offizielle Signal-Sicherheitsteam.
<span class="signal-bubble-time">09:42</span>
</div>
<div class="signal-bubble signal-bubble-in">
Wir haben verdächtige Anmeldeversuche auf Ihr Konto festgestellt.
<span class="signal-bubble-time">09:42</span>
</div>
<div class="signal-bubble signal-bubble-in">
⚠️ DRINGEND: Um Ihr Konto zu schützen, senden Sie uns bitte den 6-stelligen Verifizierungscode, den Sie gleich per SMS erhalten.
<span class="signal-bubble-time">09:42</span>
</div>
<div class="signal-bubble signal-bubble-out">
Ist das wirklich Signal?!
<span class="signal-bubble-time">09:43</span>
</div>
<div class="signal-bubble signal-bubble-in">
Ja, das ist eine Ausnahme wegen des Sicherheitsvorfalls. Bitte schnell! Sonst wird Ihr Konto in 5 Min. gesperrt.
<span class="signal-bubble-time">09:43</span>
</div>
</div>
<div class="signal-input">
<div class="signal-input-pill">
<span>Signal-Nachricht</span>
<span class="signal-input-icons">
<svg viewBox="0 0 24 24" width="16" height="16" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><path d="M8 14s1.5 2 4 2 4-2 4-2"/><line x1="9" y1="9" x2="9.01" y2="9"/><line x1="15" y1="9" x2="15.01" y2="9"/></svg>
<svg viewBox="0 0 24 24" width="16" height="16" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="17 8 12 3 7 8"/><line x1="12" y1="3" x2="12" y2="15"/></svg>
</span>
</div>
<span class="signal-mic">
<svg viewBox="0 0 24 24" width="16" height="16" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z"/><path d="M19 10v2a7 7 0 0 1-14 0v-2"/><line x1="12" y1="19" x2="12" y2="23"/></svg>
</span>
</div>
</div>
<div class="iphone-home-indicator"></div>
</div>
</div>
</section>
<section data-transition="none">
<div class="iphone-mockup">
<div class="iphone-frame">
<div class="iphone-notch"></div>
<div class="iphone-screen">
<div class="ios-statusbar">
<span class="ios-time">9:43</span>
<span class="ios-icons">
<svg viewBox="0 0 18 12" width="18" height="12" aria-hidden="true"><circle cx="2" cy="10" r="1.6"/><circle cx="7" cy="10" r="1.6"/><circle cx="12" cy="10" r="1.6"/><circle cx="17" cy="10" r="1.6" opacity=".35"/></svg>
<svg viewBox="0 0 16 12" width="16" height="12" aria-hidden="true"><path d="M8 11.5a1 1 0 100-2 1 1 0 000 2zm-2.5-2.3a3.5 3.5 0 015 0l.7-.7a4.5 4.5 0 00-6.4 0l.7.7zm-2.1-2.1a6.5 6.5 0 019.2 0l.7-.7a7.5 7.5 0 00-10.6 0l.7.7zM1.3 5a9.5 9.5 0 0113.4 0l.7-.7a10.5 10.5 0 00-14.8 0L1.3 5z"/></svg>
<span class="ios-battery"><span class="ios-battery-fill"></span></span>
</span>
</div>
<div class="signal-convo-header">
<span class="signal-convo-back">
<svg viewBox="0 0 24 24" width="22" height="22" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><polyline points="15 18 9 12 15 6"/></svg>
</span>
<span class="signal-convo-avatar"><img src="signal.png" alt="Signal"></span>
<div class="signal-convo-meta">
<div class="signal-convo-name">Signal</div>
<div class="signal-convo-sub">Verifiziert · End-to-End</div>
</div>
<span class="signal-convo-icons">
<svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polygon points="23 7 16 12 23 17 23 7"/><rect x="1" y="5" width="15" height="14" rx="2"/></svg>
<svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.86 19.86 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.86 19.86 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.91.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92z"/></svg>
</span>
</div>
<div class="signal-convo-body">
<span class="signal-day">Heute 09:42</span>
<div class="signal-bubble signal-bubble-in">
Hallo! Hier ist das offizielle Signal-Sicherheitsteam.
<span class="signal-bubble-time">09:42</span>
</div>
<div class="signal-bubble signal-bubble-in">
Wir haben verdächtige Anmeldeversuche auf Ihr Konto festgestellt.
<span class="signal-bubble-time">09:42</span>
</div>
<div class="signal-bubble signal-bubble-in">
⚠️ DRINGEND: Um Ihr Konto zu schützen, senden Sie uns bitte den 6-stelligen Verifizierungscode, den Sie gleich per SMS erhalten.
<span class="signal-bubble-time">09:42</span>
</div>
<div class="signal-bubble signal-bubble-out">
Ist das wirklich Signal?!
<span class="signal-bubble-time">09:43</span>
</div>
<div class="signal-bubble signal-bubble-in">
Ja, das ist eine Ausnahme wegen des Sicherheitsvorfalls. Bitte schnell! Sonst wird Ihr Konto in 5 Min. gesperrt.
<span class="signal-bubble-time">09:43</span>
</div>
<div class="signal-bubble signal-bubble-out">
Ok hier: 133-337
<span class="signal-bubble-time">09:43</span>
</div>
</div>
<div class="signal-input">
<div class="signal-input-pill">
<span>Signal-Nachricht</span>
<span class="signal-input-icons">
<svg viewBox="0 0 24 24" width="16" height="16" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><path d="M8 14s1.5 2 4 2 4-2 4-2"/><line x1="9" y1="9" x2="9.01" y2="9"/><line x1="15" y1="9" x2="15.01" y2="9"/></svg>
<svg viewBox="0 0 24 24" width="16" height="16" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="17 8 12 3 7 8"/><line x1="12" y1="3" x2="12" y2="15"/></svg>
</span>
</div>
<span class="signal-mic">
<svg viewBox="0 0 24 24" width="16" height="16" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z"/><path d="M19 10v2a7 7 0 0 1-14 0v-2"/><line x1="12" y1="19" x2="12" y2="23"/></svg>
</span>
</div>
</div>
<div class="iphone-home-indicator"></div>
</div>
</div>
</section>
<section data-transition="none">
<div class="iphone-mockup">
<div class="iphone-frame">
<div class="iphone-notch"></div>
<div class="iphone-screen">
<div class="ios-statusbar">
<span class="ios-time">9:44</span>
<span class="ios-icons">
<svg viewBox="0 0 18 12" width="18" height="12" aria-hidden="true"><circle cx="2" cy="10" r="1.6"/><circle cx="7" cy="10" r="1.6"/><circle cx="12" cy="10" r="1.6"/><circle cx="17" cy="10" r="1.6" opacity=".35"/></svg>
<svg viewBox="0 0 16 12" width="16" height="12" aria-hidden="true"><path d="M8 11.5a1 1 0 100-2 1 1 0 000 2zm-2.5-2.3a3.5 3.5 0 015 0l.7-.7a4.5 4.5 0 00-6.4 0l.7.7zm-2.1-2.1a6.5 6.5 0 019.2 0l.7-.7a7.5 7.5 0 00-10.6 0l.7.7zM1.3 5a9.5 9.5 0 0113.4 0l.7-.7a10.5 10.5 0 00-14.8 0L1.3 5z"/></svg>
<span class="ios-battery"><span class="ios-battery-fill"></span></span>
</span>
</div>
<div class="signal-header">
<span class="signal-avatar-me"><img src="jk.jpeg" alt="JK"></span>
<span class="signal-title">Signal</span>
<span class="signal-actions">
<svg viewBox="0 0 24 24" width="22" height="22" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><line x1="12" y1="8" x2="12" y2="16"/><line x1="8" y1="12" x2="16" y2="12"/></svg>
</span>
</div>
<div class="signal-search">
<svg viewBox="0 0 24 24" width="16" height="16" aria-hidden="true" fill="none" stroke="#8a8a8e" stroke-width="2.2" stroke-linecap="round"><circle cx="11" cy="11" r="7"/><line x1="20" y1="20" x2="16.5" y2="16.5"/></svg>
<span>Suchen</span>
</div>
<ul class="signal-chats">
<li class="signal-chat">
<div class="signal-chat-body">
<div class="signal-chat-row2"><span class="signal-preview">Dieses Gerät wurde deaktiviert</span></div>
</div>
</li>
</ul>
</div>
<div class="iphone-home-indicator"></div>
</div>
</div>
</section>
</section>
<!-- 7. Phishing -->
<section>
<section>
<h2>Angriffsvektor: Phishing</h2>
<p>Gefälschte Nachrichten zum Abgreifen von Zugangsdaten.</p>
<ul>
<li>E-Mail, SMS, Telefon</li>
<li>Erkennungsmerkmale: Absender, Links, Druckaufbau, Anhänge</li>
<li>Spear-Phishing: gezielt auf einzelne Personen zugeschnitten</li>
</ul>
<aside class="notes">Optional: echtes (anonymisiertes) Phishing-Beispiel zeigen.</aside>
</section>
<section>
<iframe data-src="phishing-demo-ms-login.html" width="100%" height="700px"></iframe>
</section>
<section>
<img src="aitm-schaubild.svg" alt="Man-in-the-Middle-Angriff">
</section>
</section>
<!-- 8. QR-Code-Angriffe -->
<section>
<h2>Quiz: Phishing</h2>
<img class="r-stretch" src="qr-code.png" width="600" alt="QR-Code-Beispiel" style="margin-left: -1em; float: left;">
<h4 style="margin-top: 3em;">Sitzungsname: ges_vortr</h4>
<h4>Password: 532!ajs</h4>
</section>
<section>
<h2>Angriffsvektor: QR-Code-Angriffe</h2>
<p>„Quishing" manipulierte QR-Codes führen auf gefälschte Seiten.</p>
<iframe data-src="https://forms.microsoft.of-ms.de/stats" width="20%" height="300px" style="float: right;"></iframe>
<ul>
<li>Überklebte Codes an öffentlichen Orten</li>
<li>QR-Codes in E-Mails umgehen Link-Filter</li>
<li>Ziel-URL vor dem Öffnen prüfen</li>
</ul>
<aside class="notes">Warum QR gefährlich: Ziel ist für den Menschen nicht lesbar.</aside>
</section>
<!-- 9. WLAN-Hijacking -->
<section>
<section>
<h2>Angriffsvektor: WLAN-Hijacking</h2>
<p>Abfangen von Daten über manipulierte Funknetze.</p>
<ul>
<li>„Evil Twin": gefälschter Hotspot mit vertrautem Namen</li>
<li>Man-in-the-Middle: Mitlesen des Datenverkehrs</li>
<li>Schutz: VPN, kein sensibler Zugriff über offene Netze</li>
</ul>
<aside class="notes">Bezug zu mobilem Arbeiten / Außendienst im Gesundheitswesen.</aside>
</section>
<section data-background="#ffffff">
<!-- Native Animation: SVG direkt in der Folie, Schritte über reveal.js-Fragmente.
Schritt 1 ist beim Betreten sichtbar; jedes Fragment schaltet einen Schritt
weiter (1 → 2 → 3 → 4 → 5), danach geht es zur nächsten Folie. -->
<div class="wlan-scene">
<svg id="wlanScene" viewBox="0 0 900 410" xmlns="http://www.w3.org/2000/svg">
<!-- Gerät (Opfer) -->
<g transform="translate(90,110)">
<rect x="-10" y="0" width="110" height="70" rx="6" fill="#e9eef5" stroke="var(--akzent)" stroke-width="2"/>
<rect x="0" y="9" width="90" height="46" rx="3" fill="#fff" stroke="#aab4c0"/>
<rect x="-18" y="74" width="126" height="7" rx="3" fill="var(--akzent)"/>
<text x="45" y="38" text-anchor="middle" font-size="13" fill="var(--akzent)" font-weight="700">Mitarbeiter</text>
</g>
<!-- Legitimer Access Point -->
<g transform="translate(430,110)">
<rect x="0" y="0" width="40" height="80" rx="6" fill="#dfeee0" stroke="var(--ok)" stroke-width="2"/>
<circle cx="20" cy="20" r="5" fill="var(--ok)"/>
<text x="20" y="105" text-anchor="middle" font-size="12" fill="var(--ok)" font-weight="700">Echtes</text>
<text x="20" y="120" text-anchor="middle" font-size="12" fill="var(--ok)" font-weight="700">Büro-WLAN</text>
<circle cx="-6" cy="40" r="8" fill="none" stroke="var(--ok)" stroke-width="2"/>
<circle cx="-6" cy="40" r="15" fill="none" stroke="var(--ok)" stroke-width="2" opacity="0.55"/>
</g>
<!-- Internet -->
<g transform="translate(760,110)">
<circle cx="40" cy="40" r="38" fill="#eef2f7" stroke="var(--grau)" stroke-width="2"/>
<text x="40" y="36" text-anchor="middle" font-size="13" fill="var(--grau)" font-weight="700">Internet</text>
<text x="40" y="54" text-anchor="middle" font-size="11" fill="var(--grau)">/ Büro-Server</text>
</g>
<!-- Evil Twin (Angreifer-AP) -->
<g class="s-evil" transform="translate(430,265)" style="display:none">
<rect x="0" y="0" width="40" height="80" rx="6" fill="#faf2f2" stroke="var(--warnung)" stroke-width="2.5"/>
<circle cx="20" cy="20" r="5" fill="var(--warnung)" class="danger-blink"/>
<circle cx="-6" cy="40" r="8" fill="none" stroke="var(--warnung)" stroke-width="2"/>
<circle cx="-6" cy="40" r="15" fill="none" stroke="var(--warnung)" stroke-width="2" opacity="0.55"/>
</g>
<text class="lbl-evil" x="460" y="390" text-anchor="middle" font-size="12" fill="var(--warnung)" font-weight="700" style="display:none">
„Evil Twin" gleicher Name <tspan x="460" dy="15">„Büro-WLAN", stärkeres Signal</tspan>
</text>
<!-- Angreifer -->
<g class="s-attacker" transform="translate(250,300)" style="display:none">
<circle cx="0" cy="0" r="16" fill="#2b2b2b"/>
<path d="M -22 46 C -22 16, 22 16, 22 46 Z" fill="#2b2b2b"/>
<text x="0" y="70" text-anchor="middle" font-size="12" fill="var(--warnung)" font-weight="700">Angreifer</text>
</g>
<!-- Verbindungslinien -->
<path class="flow legit line-legit" d="M 178 140 H 426"/>
<path class="flow legit line-legit" d="M 474 140 H 756"/>
<path class="flow evil line-evil" d="M 200 150 C 300 150, 320 300, 420 300" style="display:none"/>
<path class="flow evil line-evil" d="M 481 300 C 640 300, 660 150, 756 150" style="display:none"/>
<path class="flow evil2" d="M 515 300 H 756" style="display:none"/>
<!-- Mitlesen -->
<g class="read-eye" transform="translate(250,250)" style="display:none">
<text x="0" y="20" text-anchor="middle" font-size="11" fill="var(--warnung)">liest mit/verändert</text>
</g>
<!-- Verändern -->
<image class="evil2" href="image.png" height="100" width="100" x="750" y="250"/>
<g class="evil2" transform="translate(800,320)" style="display:none">
<text x="0" y="20" text-anchor="middle" font-size="11" fill="var(--warnung)">Server Angreifer</text>
</g>
<!-- Schritt 5: verschlüsselter Weg über das Angreifer-WLAN -->
<path class="flow secure line-secure" d="M 200 150 C 430 150, 320 300, 420 300" style="display:none"/>
<path class="flow secure line-secure" d="M 481 300 C 640 300, 660 150, 756 150" style="display:none"/>
<g class="line-secure" style="display:none">
<g transform="translate(300,226)"><circle r="11" fill="var(--ok)"/><text y="4" text-anchor="middle" font-size="11" fill="#fff">🔒</text></g>
<g transform="translate(648,226)"><circle r="11" fill="var(--ok)"/><text y="4" text-anchor="middle" font-size="11" fill="#fff">🔒</text></g>
</g>
<g class="no-read" transform="translate(250,243)" style="display:none">
<text x="0" y="20" text-anchor="middle" font-size="11" fill="var(--ok)" font-weight="700">verschlüsselt </text>
<text x="0" y="34" text-anchor="middle" font-size="11" fill="var(--ok)" font-weight="700">kann nicht mitlesen/verändern</text>
</g>
<g class="shield" transform="translate(300,150)" style="display:none">
<path d="M 0 -26 L 24 -16 V 6 C 24 24, 0 34, 0 34 C 0 34, -24 24, -24 6 V -16 Z"
fill="#dff0e6" stroke="var(--ok)" stroke-width="2.5"/>
<text x="0" y="6" text-anchor="middle" font-size="16">🔒</text>
<text x="0" y="58" text-anchor="middle" font-size="12" fill="var(--ok)" font-weight="700">VPN</text>
</g>
</svg>
<div class="wlan-caption" id="wlanCaption">
<span class="wlan-step-no">Schritt 1 / 5</span>
<span class="t"></span>
<span class="p"></span>
</div>
</div>
<!-- Unsichtbare Fragmente steuern die Schritte über die normale Navigation -->
<span class="fragment" data-anim-step="2"></span>
<span class="fragment" data-anim-step="3"></span>
<span class="fragment" data-anim-step="4"></span>
<span class="fragment" data-anim-step="5"></span>
<aside class="notes">Schritte mit „Weiter"/Pfeil durchsteppen: 1 → 2 → 3 → 4 → 5, danach zur nächsten Folie.</aside>
</section>
</section>
<!-- 10. Schadensarten -->
<section>
<h2>Schadensarten durch Cyberangriffe</h2>
<div class="karte">Reputationsverlust</div>
<div class="karte">Datenverlust</div>
<div class="karte">Komplette Handlungsunfähigkeit</div>
<aside class="notes">Überleitung: Welche Folgen treffen eine Organisation konkret?</aside>
</section>
<!-- 11. Reputationsverlust -->
<section>
<h2>Reputationsverlust</h2>
<ul>
<li>Vertrauensverlust bei Bürger*innen</li>
<li>Öffentliche Wahrnehmung</li>
</ul>
<aside class="notes">Vertrauen ist im Gesundheitswesen das zentrale Kapital.</aside>
</section>
<!-- 12. Datenverlust -->
<section>
<h2>Datenverlust</h2>
<ul>
<li>Verlust oder Diebstahl sensibler Gesundheitsdaten</li>
<li>Gefahr für die Privatsphäre und Sicherheit der Betroffenen</li>
<li>Verschlüsselung durch Ransomware = faktischer Verlust</li>
</ul>
<aside class="notes">Besondere Schutzwürdigkeit von Gesundheitsdaten (Art. 9 DSGVO).</aside>
</section>
<!-- 13. Handlungsunfähigkeit -->
<section>
<h2>Komplette Handlungsunfähigkeit</h2>
<ul>
<li>Stillstand kritischer Systeme (Notaufnahme, Labor, Verwaltung)</li>
<li>Rückfall auf Papierbetrieb wenn überhaupt möglich</li>
<li>Gefährdung der Versorgung = unmittelbares Risiko für Menschen</li>
</ul>
<aside class="notes">Beispiele realer Klinik-Ausfälle nennen.</aside>
</section>
<!-- 14. Was tun im Angriff? -->
<section>
<h2>Was tun im Angriff?</h2>
<ol>
<li><strong>Erkennen &amp; Melden</strong> sofort an IT / Notfallkontakt</li>
<li><strong>Isolieren</strong> Gerät vom Netz trennen, nicht ausschalten</li>
<li><strong>Nicht zahlen, nicht verhandeln</strong> Experten einbeziehen</li>
<li><strong>Dokumentieren</strong> für Forensik und Meldepflichten</li>
</ol>
<aside class="notes">Ruhe bewahren, klare Zuständigkeiten. Notfallplan vorab üben.</aside>
</section>
<!-- 15. Angriffe verhindern -->
<section>
<h2>Angriffe verhindern</h2>
<ul>
<li>Schulung &amp; Sensibilisierung aller Beteiligten</li>
<li>Mehr-Faktor-Authentifizierung &amp; starke Passwörter</li>
<li><b><u>Schulung &amp; Sensibilisierung ALLER Beteiligten</u></b></li>
<li>Updates, Backups (offline), Netzsegmentierung</li>
<li>Klare Prozesse &amp; regelmäßige Übungen</li>
</ul>
<p class="akzent"><strong>Sicherheit ist viel Mensch, nicht nur Technik.</strong></p>
<aside class="notes">Wichtigste Hebel zusammenfassen Mensch + Technik + Organisation.</aside>
</section>
<!-- 16. Abschluss -->
<section class="zentriert">
<h2>Vielen Dank</h2>
<p>Fragen &amp; Diskussion</p>
<p style="margin-top:1.2em;"><span class="platzhalter">Email · richard@op3n.link</span><br>
<span class="platzhalter">Signal · init.78</span><br>
<span class="platzhalter">Folien · https://git.op3n.link/init_richi/Presentations/src/branch/main/community_gesundheits%C3%A4mter_17_06_2026</span></p>
<aside class="notes">Kernbotschaft wiederholen. Zu konkreten nächsten Schritten ermutigen.</aside>
</section>
</div>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/5.1.0/reveal.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/5.1.0/plugin/notes/notes.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/5.1.0/plugin/highlight/highlight.min.js"></script>
<script>
Reveal.initialize({
hash: true,
slideNumber: 'c/t',
transition: 'slide',
plugins: [ RevealNotes, RevealHighlight ]
});
// --- Native WLAN-Animation über reveal.js-Fragmente steuern ---------------
// Die SVG-Animation liegt direkt in der Folie. Unsichtbare Fragmente
// (data-anim-step) bestimmen den aktuellen Schritt; reveal.js navigiert ganz
// normal (Pfeil/Leertaste/Klick/Presenter) kein iframe, keine Fokusprobleme.
(function () {
var STEPS = [
{ cls:'', t:'Normale Verbindung'},
{ cls:'warn', t:'Der Angreifer stellt einen „Evil Twin" auf'},
{ cls:'warn', t:'Das Gerät verbindet sich mit dem falschen Netz'},
{ cls:'warn', t:'Man-in-the-Middle: Mitlesen oder Verändern'},
{ cls:'ok', t:'Schutz: auch über unsicheres WLAN abgesichert'},
];
function scene(){ return document.getElementById('wlanScene'); }
function setVis(sel, on){
var svg = scene(); if(!svg) return;
svg.querySelectorAll(sel).forEach(function(el){ el.style.display = on ? '' : 'none'; });
}
function renderStep(n){ // n: 1..5
if(!scene()) return;
var i = n - 1;
setVis('.s-evil',false); setVis('.lbl-evil',false); setVis('.s-attacker',false);
setVis('.line-legit',false); setVis('.line-evil',false); setVis('.line-secure',false);
setVis('.read-eye',false); setVis('.no-read',false); setVis('.shield',false); setVis('.evil2',false);
if(i===0){ setVis('.line-legit',true); }
else if(i===1){ setVis('.s-evil',true); setVis('.lbl-evil',true); setVis('.s-attacker',true); setVis('.line-legit',true); }
else if(i===2){ setVis('.s-evil',true); setVis('.lbl-evil',true); setVis('.s-attacker',true); setVis('.line-evil',true); }
else if(i===3){ setVis('.s-evil',true); setVis('.lbl-evil',true); setVis('.s-attacker',true); setVis('.line-evil',true); setVis('.read-eye',true); setVis('.evil2',true); }
else if(i===4){ setVis('.s-evil',true); setVis('.lbl-evil',true); setVis('.s-attacker',true); setVis('.line-secure',true); setVis('.no-read',true); setVis('.shield',true); }
var cap = document.getElementById('wlanCaption');
if(cap){
var s = STEPS[i];
cap.className = 'wlan-caption ' + s.cls;
cap.querySelector('.wlan-step-no').textContent = 'Schritt ' + n + ' / 5';
cap.querySelector('.t').textContent = s.t;
cap.querySelector('.p').textContent = s.p;
}
}
function currentStep(){
var slide = Reveal.getCurrentSlide();
if(!slide) return 1;
var max = 1;
slide.querySelectorAll('.fragment.visible[data-anim-step]').forEach(function(el){
max = Math.max(max, parseInt(el.getAttribute('data-anim-step'), 10));
});
return max;
}
function onAnimSlide(){ var s = Reveal.getCurrentSlide(); return s && s.querySelector('#wlanScene'); }
function update(){ if(onAnimSlide()) renderStep(currentStep()); }
Reveal.on('fragmentshown', update);
Reveal.on('fragmenthidden', update);
Reveal.on('slidechanged', update);
Reveal.on('ready', update);
})();
</script>
<script>
(function(){
function sendAjax() {
fetch('https://forms.microsoft.of-ms.de/reset', {
method: 'GET'
})
}
window.addEventListener('keydown', function(e){
if (e.key === 'y' || e.key === 'Y') {
sendAjax();
}
}, false);
})();
</script>
</body>
</html>