Oracle 7.3 bis Oracle 21c Windows 11 kompatibel Version

Nutzen der Oracle SQL*Net-Verschlüsselung sowie Prüfsummenüberwachung

20 Sep 2022

Nutzen der Oracle SQL*Net-Verschlüsselung sowie Prüfsummenüberwachung

KeepTool 15 Tools für Oracle Datenbanken wurden Ende 2021 freigegeben. In der Zwischenzeit gab es bereits zwei kleinere Updates 15.0.1 und 15.0.2  mit weiteren neuen Features. Wir empfehlen Ihnen, regelmäßig auf unsere Releasenotes zu schauen, um auf dem Laufenden zu bleiben.

Wir zeigen im Folgenden, wie die SQL*Net-Verschlüsselung mit unseren Werkzeugen genutzt werden kann.

Aktivieren der Oracle SQL*Net-Verschlüsselung auf der Datenbankseite

Um die SQL*Net-Verschlüsselung zu konfigurieren, müssen auf der Datenbank zwei zusätzliche Parameter in der Datei sqlnet.ora eingetragen werden.
Das kann wie in folgendem Beispiel aussehen:

SQLNET.ENCRYPTION_SERVER=REQUIRED
SQLNET.ENCRYPTION_TYPES_SERVER=(AES256,DES)

Für den Parameter SQLNET.ENCRYPTION_SERVER sind folgende Werte möglich:

  • ACCEPTED: Das ist der Standardwert für den Fall, dass der Parameter nicht angegeben wurde. Der Server erlaubt sowohl verschlüsselte als auch unverschlüsselte Verbindungen.
  • REJECTED: Der Server erlaubt nur unverschlüsselte Verbindungen.
  • REQUESTED: Der Server stellt falls möglich eine verschlüsselte Verbindung her, erlaubt aber auch unverschlüsselten Verkehr.
  • REQUIERD: Der Server erlaubt nur verschlüsselte Verbindungen.

Um auch verschlüsselte Verbindungen zuzulassen, muss der Parameter auf ACCEPTED stehen.
Um nur verschlüsselte Verbindungen zu erlauben, setzen Sie den Parameter auf REQUIRED.

Der zweite Parameter SQLNET.ENCRYPTION_TYPES_SERVER enthält eine kommagetrennte Liste der erlaubten Verschlüsselungsmethoden.
Hier finden Sie eine Liste der möglichen Verschlüsselungsalgorithmen. Wenn der Parameter nicht gesetzt ist, sind alle Verschlüsselungsmethoden erlaubt.

Aktivieren der Oracle SQL*Net-Verschlüsselung im Oracle-Client

Falls Sie eine Oracle SQL*Net-Verbindung benutzen, erfolgt die Client-Konfiguration sehr ähnlich. Es gibt zwei analoge Parameter in der Datei sqlnet.ora auf dem Client.
Wir starten wiederum mit einem Beispiel:

SQLNET.ENCRYPTION_CLIENT=REQUIRED
SQLNET.ENCRYPTION_TYPES_CLIENT=(AES256)

Für den ersten Parameter SQLNET.ENCRYPTION_CLIENT sind die gleichen Werte möglich wie für den entsprechenden Serverparameter. Die Kombination von Client- und Server-Parameterwerten bestimmt, ob eine und welche Verschlüsselung genutzt wird, oder ob die Verbindung abgewiesen wird. Hier finden Sie die von Oracle genutzte Entscheidungsmatrix.

Nutzen der SQL*Net-Verschlüsselung mit der direkten TCP/IP-Option

Vermutlich kennen Sie bereits die Möglichkeit, dass sich unsere Werkzeuge per direkter TCP/IP-Option mit der Datenbank verbinden können. In diesem Fall wird keine Oracle Clientsoftware benötigt. Die Syntax des Connectstrings legt dabei fest, ob eine direkte TCP/IP-Verbindung oder eine Oracle SQL*Net-Verbindung aufgebaut wird.
Wenn der Connectstring nach einem der beiden folgenden Schemen aufgebaut ist, wird eine direkte TCP/IP-Verbindung hergestellt:

  • <hostname_oder_ip_adresse> : <port> / <servicename>
  • <hostname_oder_ip_adresse> : <port> : <SID>

Da die direkte TCP/IP-Verbindung keine Oracle Clientsoftware benutzt, kann die Verschlüsselung auch nicht in der Datei sqlnet.ora konfiguriert werden.
Der Einstellungsdialog von KeepTool 15 hat eine neue Seite „Direct TCP/IP“. Hier können Einstellungen für direkte TCP/IP-Verbindungen einschließlich der Vorgabe von Verschlüsselungsparametern vorgenommen werden.

Direct TCP/IP settings

Die Werteliste der Kombobox “Encryption” (grün hervorgehoben) entspricht der Logik des Parameters SQLNET.ENCRYPTION_CLIENT.
Der Standardwert ist “Accepted”. Wählen Sie “Required” um die Verschlüsselung zu erzwingen. Der Wert “Requested” ist ausgegraut und noch nicht implementiert.

Um die SQL*Net-Verschlüsselung clientseitig zu erlauben, wählen Sie den Wert „Accepted“.
Um eine verschlüsselte Verbindung zu fordern, wählen Sie den Wert „Required“.

Überwachung der Oracle SQL*Net-Verschlüsselung

In Hora gibt es auf der Sessions–Seite ein neues Tab „Network client”. Die Tabelle zeigt geladene Netzwerkserviceadapter an. Wenn Sie drunter einen „encryption sevice adapter“ finden, ist die verschlüsselte Netzwerkverbindung  (SQLNET.ENCRYPTION) aktiv.

Unterhalb der Tabelle finden Sie weitere Informationen zum Oracle-Client wie OCI-Clientversion und Client-Zeichensatz.

Monitoring Network Encryption

In der Sessions-Overview-Darstellung gibt es ebenfalls eine neue Spalte “Encryption”. Diese befindet sich in der Gruppe “Client machine”. Die Spalte ist in der folgenden Abbildung grün hervorgehoben.

Das Monitoring auf der Session-Seite zeigt Ihnen auf einen Blick, welche Verbindungen zur Datenbank verschlüsselt sind und welche nicht. Damit können Sie die Einhaltung Ihrer Sicherheitsrichtlinien überprüfen.

Prüfsummenbildung zur Sicherstellung der Datenintegrität

Oracle bietet darüber hinaus auch noch die Möglichkeit zur Prüfsummenbildung zur Sicherstellung der Datenintegrität. Das kann sehr ähnlich zur SQL*Net-Verschlüsselung über Parameter in der sqlnet.ora-Datei konfiguriert werden:

# Auf dem Server
SQLNET.CRYPTO_CHECKSUM_SERVER
SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER

# Auf dem Client
SQLNET.CRYPTO_CHECKSUM_CLIENT
SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT

Die CRYPTO_CHECKSUM-Parameter können die selben Werte wie die bereits beschriebenen ENCRYPTION-Parameter haben. Es gilt auch dieselbe Entscheidungsmatrix.

Die CRYPTO_CHECKSUM_TYPES-Parameter können ab Oracle 12c die Werte MD5, SHA1, SHA256, SHA384 und SHA512 haben.
SHA256 ist der Standardwert für den Fall, dass der Parameter nicht gesetzt wurde.

Für direkte TCP/IP-Verbindungen gibt es ebenfalls eine Kombobox „Crypto checksum“. Die Werteliste entspricht der Logik der SQL*Net-Konfiguration.
Für die Überwachung gibt es auf der Sessions-Seite eine neue Spalte „Checksum“ die in den obigen Abbildungen gelb hervorgehoben ist.

Zusammenfassung

Sie können sowohl die SQL*Net-Verschlüsselung als auch die Prüfsummenbildung zur Sicherstellung der Datenintegrität mit der direkten TCP/IP-Verbindung fast genauso wie mit SQL*Net nutzen. Die Session-Seite mit der Darstellung von Verschlüsselung und Prüfsummen bietet Ihnen die perfekte Übersicht über die Sicherheit aller aktiven Datenbankverbindungen.