Hinweise zur Datensicherheit
Vermuten Sie eine Sicherheitslücke bei Citavi?
Dann sind wir sehr dankbar für einen entsprechenden Hinweis. Bitte senden Sie uns eine kurze E-Mail an service@citavi.com, damit wir uns mit Ihnen in Verbindung setzen können.
Was wir für die Sicherheit von Citavi tun
Interne Sicherheit bei Swiss Academic Software
Sicherheit beginnt inhouse.
Als Resultat einer langfristigen Strategie haben wir alle unsere Inhouse-Dienste in die Cloud verlagert (GitHub, Office 365, Azure u.a.). Wir betreiben keine Inhouse-Server mehr und profitieren damit von den hohen Sicherheitsstandards, mit denen die Cloud-Betreiber arbeiten. Indirekt erfüllen wir damit auch zahlreiche Sicherheits-Zertifizierungen, die wir als kleine Firma aufgrund des Aufwands nicht anbieten könnten.
Wir betreiben auch in der Cloud keine virtuellen Maschinen (für deren Sicherheit und Aktualisierung wir selbst sorgen müssten), sondern nutzen konsequent „Software as a Service“.
Wir achten darauf, dass unsere Client-Computer auf dem neusten Stand sind. Für den Fall eines Diebstahls sind die Festplatten verschlüsselt. Wir schützen den Zugriff auf unser Netzwerk mit starken Maßnahmen.
Alle Cloud-Dienste, die wir nutzen, sichern wir mit Zwei-Faktor-Authentifizierung ab. Das heißt: selbst wenn ein Angreifer User-Namen und Passwörter von uns stehlen könnte, könnte er sich nicht in unsere Systeme einloggen.
Entwicklungsabteilung
Wir sensibilisieren und schulen unsere Entwickler regelmäßig in Sicherheitsfragen. Wir informieren uns systematisch über Sicherheitsfragen (insbesondere auf OWASP) und achten darauf, alle best practices umzusetzen. Dazu gehören u.a.:
- Für sicherheitskritischen Code (z.B. unser WebApi) führen wir gegenseitige Code Reviews durch.
- Wir aktualisieren Dritthersteller-Komponenten (NuGet-Pakete) regelmäßig.
- Alle SQL-Zugriffe erfolgen ausschließlich parametrisiert, um SQL Injection auszuschließen.
- Unser Quellcode enthält ausschließlich stark verschlüsselte Passwörter (für den Fall, dass ein Entwicklercomputer gestohlen werden sollte).
- Zugriffe werden im Code doppelt autorisiert – auf der «obersten» Ebene und auf der «untersten» Ebene. Auf diese Weise wollen wir vermeiden, dass versehentliche Entwicklerfehler zu Autorisierungsfehlern führen. Zudem haben wir diverse Unit Tests, welche Autorisierungen überprüfen.
- Unsere Entwicklungs- und Produktionsumgebungen sind vollständig getrennt. Das heißt, dass durch die unmittelbare Entwicklungsarbeit keinerlei Nutzerdaten in der Produktionsumgebung berührt werden.
Externe Tests
Ein außenstehender Experte prüft unsere Systeme und Dienste regelmäßig auf Schwachstellen (so genannte Penetration Tests).
DBServer
Verbindung
Citavi nutzt für die Verbindung zum SQL Server die Standard-Bibliotheken von .NET (System.Data.SqlClient). Die gesamte Kommunikation zwischen Citavi und dem Datenbankserver erfolgt auf dieser Basis und gemäß den von Microsoft etablierten und bewährten Protokollen.
DBServer Manager
DBServer Manager ist keine Server-Software, kommuniziert also nicht mit Citavi. DBServer Manager ist ein Frontend, mit welchem wir SQL-Statements an den ausgewählten SQL Server senden, oder mit anderen Worten: ein «Management Studio light für Citavi-Zwecke». Da DBServer Manager keine Serversoftware ist, ist sie sicherheitstechnisch wenig kritisch.
Projekt-/Datensicherheit
Die Sicherheit auf Datenbank-/Projektebene wird mit Standard-Verfahren von SQL Server durchgesetzt (also nicht mit Citavi-eigenen Mitteln).
Ein Projekt wird SQL Server-seitig als Schema abgebildet. Für jedes Schema gibt es drei Rollen: Managers, Authors, Readers. Authors haben auf dem Schema Insert/Update/Delete-Rechte, Readers lediglich Select-Rechte. (Manager haben zusätzlich das Recht, Rollenmitgliedschaften zu ändern.)
Wenn im DBServer Manager einem User Autorenrechte gegeben werden, heißt das technisch: der User wird per SQL zur Rolle «Authors» des entsprechenden Projektschemas hinzugefügt. Diese Architektur bedeutet: Auch wenn ein User mit einem anderen Client als Citavi auf die SQL Server-Datenbank zugreift, kann er nur Daten sehen, die er auch mit Citavi sehen könnte.
Cloud
Für unsere Webdienste nutzen wir die Azure-Cloud von Microsoft. Unsere Server betreiben wir als so genannte WebApps (Platform-as-a-Service). Das bedeutet, dass Microsoft auf mehreren Ebenen selbst für die Sicherheit dieser Maschinen sorgt.
Kommunikation
Alle Kommunikation mit unseren Servern erfolgt immer verschlüsselt (https / TLS).
Accounts
Für die Anmeldung am Citavi-Account nutzen wir den Industriestandard OAuth2. Für die Implementation verwenden wir Identity Server, eine weit verbreitete, gut gepflegte und etablierte Standard-Komponente.
Die Passwörter unserer User werden von dieser Komponente verarbeitet und nach vielen Hash-Vorgängen in unserer Datenbank gespeichert. Wir speichern Passwörter zu keinem Zeitpunkt im Klartext; eine Rückübersetzung von gehashten Passwörtern zu Klartext ist technisch nicht möglich.
Projekt-Datenbank
Cloud-Projekte werden in einer SQL Azure-Datenbank gespeichert. Wir stellen über mehrere Maßnahmen in unserem Code und auf Datenbank-Ebene sicher, dass ein Benutzer niemals «fremde» Projektdaten sehen kann – auch dann nicht, wenn einer unserer Entwickler versehentlich eine falsche SQL Query schreiben sollte.
SQL Azure spiegelt alle Daten auf drei Instanzen gleichzeitig, damit im Falle eines Hardware-Ausfalls keine Daten verloren gehen. SQL Azure erstellt im Minutenabstand automatische Backups und sichert diese für die letzten 7 Tage. Für den Extremfall, dass ein ganzes Rechenzentrum ausfällt, werden die Daten laufend in ein anderes Rechenzentrum kopiert.
Die SQL Azure-Daten sind auf physischer Ebene verschlüsselt und damit für einen externen Angreifer, der Zugriff auf die Speichersysteme der Datenbank erlangt, unzugänglich. Für Swiss Academic Software selbst sind die Daten nicht verschlüsselt – dies ist aus technischen Gründen unumgänglich. Mit dem Administrationszugriff auf die Produktionsumgebung geht deshalb auch die Möglichkeit einher, auf die Citavi-Projektdaten und die Attachments unserer Nutzer zuzugreifen. Deshalb haben wir die technische Möglichkeit, die Produktionsumgebung zu administrieren, auf sehr wenige Personen beschränkt. Sie sind verpflichtet, keine Kenntnis von den Nutzerdaten zu nehmen.
Client (Desktop-Programm)
Das Citavi Desktop-Programm stellt keine Serverdienste zur Verfügung und kann deshalb nicht von außen angegriffen werden. In diesem Sinne ist es sicherheitstechnisch wenig kritisch.
Wenn Citavi sicherheitsrelevante Informationen speichert (z.B. im Falle eines so genannten Access Tokens), verwenden wir starke Public/Private-Key-Verschlüsselung.