Sicherheit

Letzte Aktualisierung: 25. August 2026

Wie HACCP Hyve gehostet wird, wer worauf zugreifen kann und was mit Ihren Daten passiert. Alles auf dieser Seite beschreibt den heutigen Stand. Wo eine Maßnahme fehlt, steht das hier.

Hosting und Speicherort der Daten

  • Die Anwendung läuft auf Vercel in der europäischen Region (Paris).
  • Die Daten liegen in PostgreSQL auf Supabase, im Pro-Tarif, in einer europäischen Region.
  • Die Datenbank wird ausschließlich aus unserem eigenen Servercode über Prisma erreicht. Die öffentliche Daten-API von Supabase ist geschlossen.

Verschlüsselung

  • Alles wird über HTTPS ausgeliefert. Strict Transport Security ist auf zwei Jahre gesetzt und gilt für Subdomains, sodass ein Browser nicht auf unverschlüsseltes HTTP zurückfällt. Der Header trägt auch die Preload-Direktive, aber die Domain wurde nicht bei der fest in die Browser eingebauten Liste dauerhaft sicherer Seiten eingereicht, also behaupten wir diesen Eintrag nicht.
  • Der Verkehr zwischen Anwendung und Datenbank läuft über TLS.
  • Der Datenbankspeicher wird von Supabase im Ruhezustand verschlüsselt.
  • Unsere eigenen externen Datenbank-Dumps werden mit AES-256 verschlüsselt, der Schlüssel über PBKDF2 abgeleitet, und so geschrieben, dass nur der Eigentümer sie lesen kann.

Härtung von Browser und Anwendung

  • Eine Content Security Policy wird bei jeder Antwort erzwungen und lässt nur unsere Anbieter für Anmeldung, Zahlung und Trainingsvideo zu. Erzwungen wird sie seit dem 28. Juli 2026, nach drei Wochen im reinen Meldemodus ohne einen einzigen Verstoß.
  • Verstöße werden weiterhin an einen eigenen Endpunkt gemeldet, damit ein Rückschritt auffällt und nicht still bleibt.
  • Die Seite lässt sich nicht in einen Frame setzen: X-Frame-Options ist DENY und frame-ancestors ist none.
  • Referrer-Policy ist strict-origin-when-cross-origin, MIME-Sniffing ist abgeschaltet.
  • Kamera-, Mikrofon- und Standortzugriff sind per Policy abgeschaltet.
  • Vorgänge, die echtes Geld oder echte Rechenzeit kosten, etwa Exporte, Zertifikat-PDFs, das per E-Mail versandte Aufzeichnungsbuch, die Abgabe von Prüfungen und alles, was unseren Zahlungsdienstleister aufruft, haben ein Ratenlimit. Die Zähler liegen in der gemeinsamen Datenbank statt im Speicher der einzelnen Server, geführt pro Person und bei den schwersten zusätzlich pro Unternehmen, sodass ein veröffentlichtes Limit überall gleichzeitig dasselbe bedeutet.

Zugriffskontrolle

  • Jede Seite und jede Serveraktion beginnt mit der Prüfung der Rolle der angemeldeten Person. Nichts wird zuerst angezeigt und danach geprüft.
  • Die Rollen sind Unternehmensadministrator, Gebietsleitung, Standortleitung, Abteilungsleitung, stellvertretende Abteilungsleitung, Mitarbeitende und unser eigener Plattformadministrator. Eine Gebietsleitung sieht eine Region. Eine Standortleitung sieht einen Standort. Eine Abteilungsleitung sieht eine Abteilung.
  • Unterhalb des Unternehmensadministrators kann niemand auf eine Person mit gleicher oder höherer Rolle einwirken, und niemand kann jemanden, sich selbst eingeschlossen, über das hinaus anheben, was die eigene Rolle zuweisen darf.
  • Jede Kennung, die der Browser sendet, wird gegen Unternehmen und Berechtigungsbereich des Aufrufers geprüft, bevor etwas geschrieben wird.
  • Endgültiges Löschen ist auf unsere Plattformadministrator-Rolle beschränkt und verlangt, dass der Firmenname oder das Wort DELETE ausgeschrieben wird.

Trennung der Mandanten

  • Jede Abfrage, die Unternehmensdaten zurückgibt, trägt einen Unternehmensfilter, angewendet über einen gemeinsamen Helfer statt auf jeder Seite neu geschrieben.
  • Der Berechtigungsbereich schlägt geschlossen fehl. Eine Standortleitung ohne zugewiesenen Standort trifft auf niemanden zu, nie auf das ganze Unternehmen.
  • Row Level Security ist auf jeder Tabelle aktiv, ohne Policies, was diese Tabellen für die öffentliche API von Supabase schließt. Ein Prüfskript meldet jede offen gebliebene Tabelle und endet mit einem Fehler.
  • Versuche über Mandantengrenzen sind durch Tests abgedeckt: in den Standort eines anderen Unternehmens schreiben, das Team eines anderen Standorts lesen, über die eigene Rolle hinaus handeln und an die Aufzeichnungen eines anderen Unternehmens gelangen.
  • Diese Tests laufen gegen eine echte PostgreSQL-Datenbank statt gegen Mocks, und die Suite muss vor jedem Release bestehen.

Anmeldung

  • Die Anmeldung übernimmt Clerk, per E-Mail und über Google. Die Anwendung sieht oder speichert nie ein Passwort.
  • Mitarbeitende kommen über einen persönlichen Einladungslink herein. Der Link ist ein zufälliges Token, verliert seine Wirkung sobald das Konto besteht, und Abfragen sind auf zehn pro Minute je Adresse begrenzt.
  • Wer entfernt wird, verliert den Zugang mit der nächsten Anfrage, während der Schulungsnachweis erhalten bleibt, den das Unternehmen für eine Kontrolle braucht. Es lässt sich zurücknehmen.
  • Ein gemeinsam genutzter Bildschirm im Betrieb meldet sich mit einem Standortcode an. Code und zugehöriges Sitzungstoken werden nur als SHA-256-Hash gespeichert, das Cookie ist http-only und secure, falsche Codes stoppen nach fünf Versuchen und werden dann um bis zu fünfzehn Minuten verzögert, und der Vergleich ist laufzeitunabhängig.
  • Ein solcher Bildschirm ist keine Person und erreicht keine Seite der Verwaltung, denn jede dieser Seiten fragt einen angemeldeten Nutzer nach einer Rolle, und ein Bildschirm hat keine.
  • Unternehmensweites Single Sign-on gibt es nicht. Es gibt keine SAML- oder OIDC-Verbindung und keine Verzeichnissynchronisation (SCIM). Alle melden sich mit E-Mail oder Google an, und Konten werden in HACCP Hyve selbst angelegt und entfernt.

Zahlungen

  • Zahlungen laufen über Stripe. Kartendaten erreichen unsere Server nicht und liegen nie in unserer Datenbank.
  • Checkout und Abrechnungsportal werden von Stripe gehostet.
  • Stripe-Webhooks werden gegen ein Signaturgeheimnis geprüft, bevor etwas angewendet wird.
  • Jedes Webhook-Ereignis wird über seine id beansprucht, eine wiederholte Zustellung ändert also nichts. Schlägt ein Handler fehl, wird der Anspruch freigegeben und die Anfrage endet mit einem Fehler, damit Stripe erneut zustellt und der Versuch nicht als Duplikat gilt.

Backups und Wiederherstellung

  • Supabase erstellt im Pro-Tarif automatische tägliche Backups, bestätigt am 8. August 2026.
  • Wir erstellen zusätzlich eigene vollständige logische Dumps, Schema und Daten, außerhalb des Hosting-Kontos aufbewahrt, damit sie den Verlust des Projekts oder des Kontos selbst überdauern.
  • Die letzten zwölf Dumps bleiben erhalten, ältere werden entfernt.
  • Eine Wiederherstellung wurde am 16. Juli 2026 in einem separaten PostgreSQL-Cluster getestet. Zeilenzahlen und Zertifikatsnummern stimmten mit der Produktion überein.
  • Point-in-Time-Recovery ist nicht aktiviert. Das wurde am 17. Juli 2026 so entschieden, und deshalb wird der Wiederherstellungspunkt unten in einem Tag und nicht in Minuten gemessen.
  • Wir stehen für einen Wiederherstellungspunkt von 24 Stunden und eine Wiederherstellungszeit von 24 Stunden ein. Wie lange die getestete Wiederherstellung dauerte, wurde nicht festgehalten, deshalb nennen wir den Wert, den wir sicher wissen, und keinen schnelleren.

Verfügbarkeit

  • Wir stehen für 99,5% Verfügbarkeit im Kalendermonat ein, gemessen an der Erreichbarkeit der Anwendung.
  • Die Verfügbarkeit wird von außerhalb der Anwendung durch einen unabhängigen Dienst gemessen, nicht von der Anwendung selbst. Die Prüfungen umfassen die öffentliche Website, die Anmeldung und eine Zustandsprüfung, die eine echte Datenbankabfrage ausführt, sodass eine Seite, die noch angezeigt wird, während die Daten dahinter fehlen, als Ausfall zählt.
  • Aktueller Status und Störungsverlauf werden unter status.haccphyve.com veröffentlicht. Diese Seite wird unabhängig von der Anwendung gehostet und bleibt daher während eines Ausfalls erreichbar. Die durchgehende Messung von außen begann am 25. August 2026, der gemessene Verlauf reicht also bis zu diesem Datum zurück und nicht weiter.
  • Servicegutschriften gehören nicht zu den Standardbedingungen. Eine Enterprise-Vereinbarung kann sie ergänzen.
  • Vercel und Supabase veröffentlichen ihre eigenen Verfügbarkeitszusagen. Der Wert oben ist unserer und keine Wiedergabe ihrer Werte.

Überwachung und Protokollierung

  • Änderungen an Personen, Rollen, Schulungszuweisungen, Betriebsbildschirmen, Abonnements und Unternehmenseinstellungen gehen in ein Prüfprotokoll mit Unternehmen, handelnder Person, Vorgang, betroffenem Datensatz und Zeitpunkt.
  • Auch Lesezugriffe werden festgehalten, nicht nur Änderungen. Wenn unser Plattformadministrator das Konto eines Kunden öffnet, wenn jemand ein fremdes Zertifikat öffnet, bei jedem Export des Schulungsregisters und bei jedem Auslesen der Belegschaftsliste über unsere API entsteht eine Zeile im selben Protokoll.
  • Wenn unser Plattformadministrator die Anwendung zur Unterstützung in einer niedrigeren Rolle ansieht, werden Beginn und Ende dieser Ansicht festgehalten. Was dabei getan wird, bleibt der tatsächlichen Person zugeordnet, nie der angesehenen Rolle.
  • Das Prüfprotokoll ist für unsere Plattformadministrator-Rolle lesbar, und die Einträge eines Unternehmens können auf Anfrage herausgegeben werden.
  • Das Prüfprotokoll ist in der Datenbank selbst nur anfügbar, nicht nur in unserem Code. PostgreSQL verweigert jede Änderung an einer Zeile und verweigert das Löschen, sofern die ausführende Transaktion sich nicht selbst als rechtmäßige Löschung deklariert. Jede Zeile, die eine Löschung entfernt, wird in das eigene Protokoll des Datenbankservers geschrieben, das außerhalb dieser Datenbank liegt.
  • Laufzeitprotokolle hält Vercel für die Dauer, die sein Tarif bietet.
  • Meldungen zur Content Security Policy laufen auf einem eigenen Endpunkt ein, mit einer Begrenzung je Adresse.
  • Ein Versionsendpunkt nennt Commit, Umgebung und Region, die ausliefern, sodass ein Release von außen bestätigt werden kann.

Unterauftragsverarbeiter

Sieben externe Unternehmen sind am Betrieb des Dienstes beteiligt. Es ist dieselbe Liste wie in unserem Auftragsverarbeitungsvertrag.

  • Vercel, Hosting der Anwendung, europäische Region
  • Supabase, PostgreSQL-Datenbank, europäische Region
  • Clerk, Anmeldung und Identität
  • Stripe, Zahlungsabwicklung
  • Resend, transaktionale E-Mail
  • Cloudflare, die Bot-Prüfung auf dem Anmeldebildschirm, eingebunden über Clerk
  • Google (YouTube), nur wenn ein Unternehmen selbst einen YouTube-Link in sein Schulungsmaterial einfügt; YouTube setzt dann eigene Cookies

Wir informieren Kunden, bevor ein Unterauftragsverarbeiter hinzukommt oder ersetzt wird, und ein Kunde kann widersprechen.

Speicherort und Übermittlung

  • Produktionsdaten europäischer Kunden liegen in der Europäischen Union und werden aus Paris ausgeliefert.
  • Sitzt ein Unterauftragsverarbeiter außerhalb der Europäischen Union, erfolgt die Übermittlung auf Grundlage eines Angemessenheitsbeschlusses oder von Standardvertragsklauseln.
  • Wir verarbeiten personenbezogene Daten nach der DSGVO und für Kunden in Japan nach dem Act on the Protection of Personal Information.

Löschung und Export

  • Ein Unternehmensadministrator exportiert das vollständige Schulungsregister jederzeit als CSV, ohne uns zu fragen.
  • Zertifikate und das tägliche Aufzeichnungsbuch lassen sich als PDF herunterladen.
  • Eine einzelne Person kann auf Anfrage gelöscht werden. Ihr Konto beim Anmeldedienst, ihre Schulungs- und Prüfungsdaten und die Prüfprotokolleinträge über sie werden alle entfernt.
  • Ein ganzes Unternehmen kann auf Anfrage gelöscht werden. Das entfernt jeden Nutzer, Standort, jede Abteilung, jedes Prüfungsergebnis, Zertifikat, jede Benachrichtigung und jeden Prüfprotokolleintrag, dazu die Konten beim Anmeldedienst und den Kundendatensatz bei Stripe.
  • Eine geprüfte Löschanfrage schließen wir innerhalb von 30 Tagen ab, normalerweise innerhalb von fünf Arbeitstagen.
  • Zertifikatsdaten bleiben fünf Jahre nach Ausstellung erhalten, damit ein Unternehmen einer Kontrolle seine Historie zeigen kann, sofern nicht früher eine Löschung verlangt wird.

Zertifizierungen

Wir haben keine ISO-27001-Zertifizierung und keinen SOC-2-Bericht, und kein Dritter hat diese Maßnahmen geprüft. Was auf dieser Seite steht, ist im Produkt umgesetzt und daran überprüfbar. Verlangt Ihre Prüfung einen zertifizierten Anbieter, sagen Sie das früh, dann sagen wir Ihnen klar, ob wir das erfüllen können.

Eine Schwachstelle melden

Schreiben Sie an privacy@haccphyve.com, mit dem, was Sie getan und gesehen haben. Wir bestätigen den Eingang innerhalb von zwei Arbeitstagen.

  • Sagen Sie es zuerst uns und geben Sie uns Zeit für eine Behebung, bevor Sie es anderen sagen.
  • Bitte führen Sie keine automatisierten Scans gegen die Live-Seite aus und lesen, ändern oder behalten Sie keine Daten anderer Personen.
  • Gegen wen diese beiden Punkte in gutem Glauben einhält, gehen wir nicht vor.

Zugehörige Dokumente

IT-Teams, die eine formale Prüfung durchführen, können unseren ausgefüllten Sicherheitsfragebogen unter privacy@haccphyve.com anfordern.