Mechanismen der Datensicherheit

Einheitliche Authentifizierung und Autorisierung, Datenverschlüsselung und Hashing sowie Audit- und Überwachungssubsysteme, die Daten auf der gesamten Plattform schützen.

Einheitliches System zur Authentifizierung und Autorisierung

Das einheitliche Authentifizierungs- und Autorisierungssystem ist eine Schlüsselkomponente des Datenschutzes, die einen sicheren Zugriff auf Systemressourcen ermöglicht. Es ermöglicht Ihnen die Verwaltung von Benutzern, deren Berechtigungen und den Zugriff auf Daten auf systemweiter Ebene.

Zur Erinnerung:

  • Authentifizierung ist der Prozess der Überprüfung der Authentizität eines Benutzers (z. B. mit Hilfe eines Benutzernamens und eines Passworts).
  • Autorisierung ist der Prozess der Überprüfung der Berechtigung eines Benutzers zur Durchführung bestimmter Aktionen (z. B. Zugriff auf Daten oder Systemfunktionen).

Ein einheitliches Authentifizierungs- und Autorisierungssystem bietet folgende Vorteile:

  • Zentrale Verwaltung: Vereinfacht die Verwaltung von Benutzern und deren Berechtigungen.
  • Sicherheit: Schützt Daten vor unberechtigtem Zugriff.
  • Konsistenz: Alle Anwendungen und Systeme verwenden denselben Authentifizierungs- und Autorisierungsmechanismus.
  • Skalierbarkeit: Einfaches Hinzufügen neuer Anwendungen und Benutzer.

Systemkomponenten

Authentifizierung

  • Anmeldung und Passwort: Die traditionelle Methode der Authentifizierung.

Bei der Anmeldung muss sich der Benutzer zunächst mit einem Benutzernamen und einem Passwort identifizieren.

  • Multifaktorielle Authentifizierung (MFA): Die Verwendung mehrerer Faktoren (z. B. ein dynamisch aktualisiertes Programm-Token für die WEB-API).

Die Token-basierte Authentifizierung vereinfacht den Prozess für etablierte Benutzer. Zu Beginn sendet der Benutzer eine Anfrage an den Server mit einem Benutzernamen und einem Passwort. Der Server validiert diese dann anhand der in seiner Identitätsdatenbank registrierten Werte. Wenn die Identitäten bestätigt werden, sendet der Server ein Authentifizierungs-Token zurück (das ebenfalls in der Datenbank gespeichert ist).

Wenn derselbe Benutzer später Anfragen für den Zugriff auf geschützte Ressourcen sendet, können diese Anfragen mit einem Authentifizierungs-Token anstelle eines Benutzernamens und eines Passworts autorisiert werden. Der Server vergleicht das Token mit dem in der Datenbank registrierten Token und gewährt den Zugang.

Ermächtigung

  • Rollen und Berechtigungen: Benutzern werden Rollen zugewiesen (z. B. Zugangsadministrator, Benutzer), die ihre Berechtigungen festlegen.
  • ACL (Zugriffskontrolllisten): Zugriffskontrolllisten, die festlegen, wer Zugriff auf welche Ressourcen hat.
  • RBAC (Role-Based Access Control): Die rollenbasierte Zugriffskontrolle.
  • ABAC (Attributbasierte Zugriffskontrolle): Attributbasierte Zugangskontrolle (z. B. Tageszeit, Standort).

Speicherung von Benutzerdaten

  • Benutzerdatenbank: Speicherung von Informationen über Benutzer, ihre Rollen und Berechtigungen in einer einzigen Datenbank.

Sicherheit

  • Verschlüsselung: Schützt Daten während der Übertragung und Speicherung.
  • Zugangs-Token: Verwendung dynamisch aktualisierter Software-Tokens für die Sitzungsverwaltung.
  • Auditing: Protokollierung aller Benutzeraktionen zur späteren Analyse.

Systemimplementierung

Der Benutzer gibt ein Login und ein Passwort ein, das System validiert diese und gibt ein Zugangstoken zurück. Die E-Mail-Adresse des Benutzers wird als Login verwendet.

Beispiel für eine Anfrage im Curl-Format:

Request example
curl -i --header "Content-Type: application/json" \
--request POST \
--data '{"email":"api@local.net","password":"Str0ngPas$"}'\
https://server123/api/v1/auth/sign_in

Als Antwort erhalten wir die folgende Meldung:

Response example
HTTP/1.1 200 OK
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block X-Content-Type-Options: nosniff X-Download-Options: noopen X-Permitted-Cross-Domain-Policies: none Referrer-Policy: strict-origin-when-cross-origin Content-Type: application/json; charset=utf-8 access-token: tgervk9_9xicJYpmSsnnNA
token-type: Bearer
client: D-Uv3ER53873olhnNLjL9w
expiry: 1615227012
uid: api@local.net
ETag: W/"5b9bcc76f7223b72b79d9f2d31ff0fd5"
Cache-Control: max-age=0, private, must-revalidate
X-Request-Id: c18e06b4-e5bd-40b5-875d-7ac958e2fbb5
X-Runtime: 0.391069
Transfer-Encoding: chunked
{"data":{"id":6,"email":"api@local.
net","provider":"email","uid":"api@local.net","name":"API user"}}

In dieser Antwort interessieren wir uns für den Parameter access_token. Der Wert dieser Kopfzeile wird als Passwort für jede Anfrage verwendet. Der Wert ändert sich bei jeder Anfrage.

Hier ist ein Beispiel für eine Anfrage, die das Token aus der vorherigen Antwort verwendet:

Request example with token
curl -i --header "access-token: tgervk9_9xicJYpmSsnnNA" \
--header "token-type: Bearer" \
--header "client: D-Uv3ER53873olhnNLjL9w" \
--header "uid: api@local.net" \
--request GET \
--header "Content-Type: application/json" \
--data '{"page":"2"}' \
https://server123/api/v1/stations

Als Antwort erhalten wir die folgende Meldung:

Um die Sitzung zu beenden, können Sie die Prozedur SignOut verwenden oder die notwendigen Header der letzten Anfrage speichern und beim nächsten Mal verwenden, wenn die Lebensdauer des Tokens noch nicht abgelaufen ist. Denken Sie daran, dass das letzte Token ohne Beendigung der Sitzung noch einige Zeit gültig ist, je nach den Systemeinstellungen des Servers.

Vorteile des Systems

Ein einheitliches Authentifizierungs- und Autorisierungssystem ist ein leistungsfähiges Instrument für den Datenschutz und die Zugriffskontrolle. Es bietet die folgenden Vorteile:

  • Zentrale Verwaltung: Vereinfacht die Verwaltung von Benutzern und deren Berechtigungen.
  • Sicherheit: Schützt Daten vor unberechtigtem Zugriff.
  • Konsistenz: Alle Anwendungen und Systeme verwenden denselben Authentifizierungs- und Autorisierungsmechanismus.
  • Skalierbarkeit: Einfaches Hinzufügen neuer Anwendungen und Benutzer.

Datenverschlüsselung

Um wichtige Informationen zu schützen, verwendet das System Verschlüsselung (Umwandlung von Informationen in eine Form, die ohne den entsprechenden Schlüssel nicht gelesen werden kann) und Hashing (Umwandlung von Daten in eine eindeutige Zeichenfolge fester Länge - Hash) von Daten. Dies ist einer der wichtigsten Datenschutzmechanismen, der die Vertraulichkeit, Integrität und Sicherheit von Informationen sowohl bei der Speicherung als auch bei der Übertragung gewährleistet.

Das System verwendet verschiedene Algorithmen zur Datenverschlüsselung und zum Hashing.

Anwendung der Verschlüsselung im System

Speicherverschlüsselung

  • Datenbanken: Verschlüsselung einzelner Datenbankfelder.
  • Dateien: Verschlüsseln von Dateien vor dem Speichern auf der Festplatte.

Verschlüsselung von Daten bei der Übertragung

  • HTTPS: Verwendung von SSL/TLS zur Verschlüsselung von Daten während der Netzwerkübertragung.
  • VPN: Schaffung eines sicheren Tunnels für die Datenübertragung.

Passwortverschlüsselung

Speichern von Passwort-Hashes anstelle von Passwörtern.

Beispiele für die Ver-/Entschlüsselung von Daten

Sehen wir uns Beispiele für die Verschlüsselung/Entschlüsselung von Systemkonfigurationsdateien an:

Datenverschlüsselung

example.config
mkdir_p(encrypted_dir_path)
encrypted = Rails.application.encrypted(encrypted_file_path, key_path: 'config/system.key')
encrypted.write(File.read(decrypted_file_path))
File.delete(decrypted_file_path)

Auswertung der Daten

example.config
mkdir_p(decrypted_dir_path)
File.write(decrypted_file_path,
  Rails.application.encrypted(encrypted_file_path, key_path: 'config/system.key').read
)

Vorteile der Datenverschlüsselung

  • Vertraulichkeit: Schutz der Daten vor unberechtigtem Zugriff.
  • Glaubwürdigkeit: Sicherstellen, dass die Daten nicht verändert wurden.
  • Authentizität: Bestätigung der Quelle der Daten.
  • Konformität: Anforderungen: Erfüllung der gesetzlichen Anforderungen.

Prüfung und Überwachung

Es wurde eine Reihe von Subsystemen entwickelt und miteinander verbunden, um Benutzer- und Systemaktivitäten zu überwachen, verdächtige Aktivitäten zu erkennen und die Einhaltung von Sicherheitsanforderungen zu gewährleisten.

Zu diesem Zweck:

  • Das System ist so organisiert, dass es Informationen über Benutzer- und Systemaktivitäten sammelt, analysiert und speichert, um Rechenschaftspflicht und Compliance zu gewährleisten.
  • Organisierte kontinuierliche Echtzeit-Überwachung des Systems und der Geräte, um Vorfälle zu erkennen und darauf zu reagieren.

Zielsetzungen

  • Rechenschaftspflicht: Sicherstellen, dass alle Benutzer- und Systemaktivitäten aufgezeichnet werden.
  • Sicherheit: Erkennen und Verhindern unbefugter Aktivitäten.
  • Problem-Erkennung: Erkennen von Hardwareproblemen und Anomalien und Ergreifen von Maßnahmen zu deren Behebung.
  • Performance-Optimierung: Analysieren der Systemleistung und Auffinden von Engpässen, die eine Optimierung erfordern.
  • Vorhersage und Planung: Sammeln von Daten zur Vorhersage künftiger Arbeitsbelastungen und zur Planung von Ressourcen.
  • Einhaltung: Sicherstellung der Einhaltung gesetzlicher Vorschriften.
  • Vorfallanalyse: Analyse bereits aufgetretener Zwischenfälle und Verhinderung künftiger Zwischenfälle.

Komponenten zur Prüfung und Überwachung

Datenerhebung

  • Protokolle: Aufzeichnungen von Benutzer- und Systemaktionen auf allen Ebenen.
  • Metriken: Systemleistungsdaten (z. B. CPU-Auslastung, Speichernutzung).

Datenspeicherung

  • Log-Speicher: Sammeln von Daten aus verschiedenen Quellen, organisierte verteilte Speicherung von Protokollen und Metriken nach Themenbereichen.
  • Log Rotation: Automatische Löschung alter Protokolle, um Speicherplatz zu sparen.

Datenanalyse

  • Suchen und Filtern: Möglichkeit, Protokolle nach verschiedenen Kriterien zu suchen und zu filtern.
  • Analytik: Verwendung von Datenanalysetools (z. B. Zabbix).

Warnungen

  • Alerts: Senden von Benachrichtigungen über verdächtige Aktivitäten, Notfälle (z.B. E-Mail, Telegram-Chat).
  • Automatische Aktionen: Automatisches Reagieren auf Vorfälle (z. B. Sperren eines Nutzers).

Beispielhafte Implementierung

Protokollierung

Verwendung einer Bibliothek für die Protokollierung in der Anwendung.

Erfassung von Fehlern in den Daten von Zählern

Holzlagerung

Verwendung eines zentralen Speichers für Protokolle.

Tabelle audits.

In dieser Tabelle werden Datenprotokollierungsinformationen gespeichert.

FeldTypBeschreibung
idintegerEindeutiger Bezeichner des Datensatzes (Primärschlüssel).
auditable_idintegerReferenz auf das geprüfte Objekt (equipment.id, stations.id …).
auditable_typeCharacter varyingAuditierbares Objekt (equipment, stations …).
user_idintegerVerweis auf die Benutzerkennung (users.id)
actionZeichen variierendAktion
audited_changesjsonbGeprüfte Änderungen
versionintegerVersion der Änderungen
remote_addressZeichen variierendGelöschte Adresse
request_uuidZeichen variierendDer Bezeichner des Ereignisses.
created_attimestamp(6) without time zoneDatum/Uhrzeit der Änderung.
Tabelle error_logs.

In dieser Tabelle werden Informationen über Fehler in den von den Zählern stammenden Daten gespeichert.

FeldTypBeschreibung
idintegerEindeutiger Bezeichner des Datensatzes (Primärschlüssel).
loggable_idintegerReferenz auf das registrierte Objekt (equipment.id …).
loggable_typeCharacter varyingRegistriertes Objekt (equipment …).
messageintegerVerweis auf den Fehlerbezeichner.
paramsjsonbMerkmale des Fehlers.
created_attimestamp(6) without time zoneDatum/Uhrzeit der Änderung.

Protokollanalyse

Werkzeuge für die Analyse von Protokollen:

  • Einrichten von Webformularen zur Visualisierung und Analyse von Protokollen.
  • Erstellen von Dashboards zur Überwachung der Benutzeraktivitäten.

Warnungen

Maßgeschneiderte Warnmeldungen bei verdächtigen Aktivitäten:

  • Konfigurieren von Alarmen in Zabbix zur Überwachung von Metriken.
  • Versenden von Benachrichtigungen per E-Mail oder Telegram-Chat bei Alarmereignissen.

Vorteile von Auditing und Monitoring

Auditing und Monitoring sind leistungsstarke Datenschutz-Tools, mit denen Sie Benutzer- und Systemaktivitäten verfolgen, verdächtige Aktivitäten erkennen und die Einhaltung von Sicherheitsvorschriften gewährleisten können. Sie ermöglichen es Ihnen:

  • Gewährleistung der Verantwortlichkeit und Sicherheit der Daten.
  • Erkennen und Verhindern von Zwischenfällen.
  • Erfüllung gesetzlicher Anforderungen.
Zuletzt aktualisiert am

War diese Seite hilfreich?