Netzwerk Verschlüsselung

03.
März
2014
Veröffentlicht von: Christian Klose

Seit dem Erscheinen der Oracle Datenbank 12c wurde eine Reihe von Security Features, die bisher Bestandteil der Advanced-Security-Option (ASO) waren, als Feature für die Datenbank verfügbar gemacht.

Seit dem Erscheinen der Oracle Datenbank 12c wurde eine Reihe von Security Features, die bisher Bestandteil der Advanced-Security-Option (ASO) waren, als Feature für die Datenbank verfügbar gemacht. Dies gilt für die Enterprise Edition und auch für die Standard Edition. Siehe auch Öffnet externen Link in neuem FensterOracle icensing Guide.

SQL*Net mit geringem Aufwand verschlüsseln

Auf der Serverseite unter UNIX $ORACLE_HOME/network/admin, oder unter Windows %ORACLE_HOME%\network\admin folgende Einträge in der sqlnet.ora vornehmen:

### SQL*Net encryption ##################################
SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER = (MD5)
SQLNET.CRYPTO_CHECKSUM_SERVER = REQUIRED
SQLNET.CRYPTO_SEED="9iY3kcmwXdiZwXZypQ8g#_:*'!10aRtopRC#"
SQLNET.ENCRYPTION_TYPES_SERVER = (rc4_256)
SQLNET.ENCRYPTION_SERVER = REQUIRED
### SQL*Net encryption end ##############################

Die sqlnet.ora des/der Client/s wird nicht modifiziert.

Die Bedeutung der Werte im Einzelnen:

SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER

mögliche Werte

  • MD5 für den RSA Algorythmus
  • SHA1 für den Secure Hash Algorythmus

SQLNET.CRYPTO_CHECKSUM_SERVER

  • ACCEPTED - (Default) und bedeutet, dass die Verschlüsselung akzeptiert wird, wenn der Kommunikationspartner dies möchte.
  • REJECTED - Die Verschlüsselung wird grundsätzlich abgelehnt.
  • REQUESTED - Die Verschlüsselung wird gewünscht, aber nicht verlangt.
  • REQUIRED - Die Verschlüsselung ist notwendig.

SQLNET.CRYPTO_SEED

Der Wert sollte aus 10 bis 70 Buchstaben, Zahlen und Sonderzeichen bestehen. SQLNET.CRYPTO_SEED ist notwendig für die Checksummenprüfung und die Verschlüsselung. Als default wird der Wert "qwertyuiopasdfghjkl;zxcvbnm,.s1" verwendet.

SQLNET.ENCRYPTION_TYPES_SERVER

Die zur Verfügung stehenden Verschlüsselungs Algorythmen sind:

  • 3des112 for triple DES with a two-key (112-bit) option
  • 3des168 for triple DES with a three-key (168-bit) option
  • des for standard 56-bit key size
  • des40 for 40-bit key size
  • rc4_40 for 40-bit key size
  • rc4_56 for 56-bit key size
  • rc4_128 for 128-bit key size
  • rc4_256 for 256-bit key size

SQLNET.ENCRYPTION_SERVER

  • ACCEPTED - Die Verschlüsselung wird akzeptiert, wenn der Kommunikationspartner dies möchte.
  • REJECTED - Die Verschlüsselung wird grundsätzlich abgelehnt.
  • REQUESTED - Die Verschlüsselung wird gewünscht, aber nicht verlangt.
  • REQUIRED - Die Verschlüsselung ist obligatorisch

Der Test:

Das Funktionieren der SQL*Net Verschlüsselung lässt sich ganz einfach überprüfen. Dazu wird in der sqlnet.ora das Tracing aktiviert.

Serverseitig:

DIAG_ADR_ENABLED=off
trace_level_server=16
trace_directory_server = /tmp/ora_trace
trace_file_server = srv

Clientseitig:

DIAG_ADR_ENABLED=off
trace_level_client=16
trace_directory_client = C:\tmp\ora_trace
trace_file_client = cli

Die Tracefiles unverschlüsselt
vom Server:

[03-MRZ-2014 13:41:20:734] nsprecv: packet dump
[03-MRZ-2014 13:41:20:734] nsprecv: 2F 73 65 6C 65 63 74 20  |/select.|
[03-MRZ-2014 13:41:20:734] nsprecv: 65 6E 61 6D 65 2C 20 73  |ename,.s|
[03-MRZ-2014 13:41:20:734] nsprecv: 61 6C 20 66 72 6F 6D 20  |al.from.|
[03-MRZ-2014 13:41:20:734] nsprecv: 65 6D 70 20 77 68 65 72  |emp.wher|
[03-MRZ-2014 13:41:20:734] nsprecv: 65 20 65 6E 61 6D 65 20  |e.ename.|
[03-MRZ-2014 13:41:20:734] nsprecv: 3D 20 27 4B 49 4E 47 27  |=.'KING'|
[03-MRZ-2014 13:41:20:734] nsprecv: 00 00 00 00              |....    |
[03-MRZ-2014 13:41:20:734] nsprecv: normal exit

vom Client:

[03-MRZ-2014 13:41:20:911] nsbasic_bsd: packet dump
[03-MRZ-2014 13:41:20:911] nsbasic_bsd: 2F 73 65 6C 65 63 74 20  |/select.|
[03-MRZ-2014 13:41:20:911] nsbasic_bsd: 65 6E 61 6D 65 2C 20 73  |ename,.s|
[03-MRZ-2014 13:41:20:911] nsbasic_bsd: 61 6C 20 66 72 6F 6D 20  |al.from.|
[03-MRZ-2014 13:41:20:911] nsbasic_bsd: 65 6D 70 20 77 68 65 72  |emp.wher|
[03-MRZ-2014 13:41:20:911] nsbasic_bsd: 65 20 65 6E 61 6D 65 20  |e.ename.|
[03-MRZ-2014 13:41:20:911] nsbasic_bsd: 3D 20 27 4B 49 4E 47 27  |=.'KING'|
[03-MRZ-2014 13:41:20:912] nsbasic_bsd: 00 00 00 00              |....    |
[03-MRZ-2014 13:41:20:912] nsbasic_bsd: exit (0)

Die Tracefiles verschlüsselt
vom Server:

[03-MRZ-2014 13:47:46:719] nspsend: packet dump
[03-MRZ-2014 13:47:46:719] nspsend: 2A 86 48 86 F7 12 01 02  |*.H.....|
[03-MRZ-2014 13:47:46:719] nspsend: 02 02 00 6F 81 88 30 81  |...o..0.|
[03-MRZ-2014 13:47:46:719] nspsend: 85 A0 03 02 01 05 A1 03  |........|
[03-MRZ-2014 13:47:46:719] nspsend: 02 01 0F A2 79 30 77 A0  |....y0w.|
[03-MRZ-2014 13:47:46:719] nspsend: 03 02 01 12 A2 70 04 6E  |.....p.n|
[03-MRZ-2014 13:47:46:719] nspsend: 5E 9B EB EC 6B 37 CD FB  |^...k7..|
[03-MRZ-2014 13:47:46:719] nspsend: A2 6F 08 21 6B 02 F8 33  |.o.!k..3|
[03-MRZ-2014 13:47:46:719] nspsend: 0A 2E E2 71 A3 33 FC BE  |...q.3..|
[03-MRZ-2014 13:47:46:719] nspsend: 97 E8 70 C3 71 D6 98 F6  |..p.q...|
[03-MRZ-2014 13:47:46:719] nspsend: F5 F2 A2 48 47 67 E9 34  |...HGg.4|
[03-MRZ-2014 13:47:46:719] nspsend: 28 09 ED F1 10 93 3B 72  |(.....;r|
[03-MRZ-2014 13:47:46:719] nspsend: 8B A0 59 B5 F3 DA FE 7E  |..Y....~|
[03-MRZ-2014 13:47:46:719] nspsend: 0A F8 EB AF D8 64 4C D9  |.....dL.|
[03-MRZ-2014 13:47:46:719] nspsend: 25 A8 19 41 E1 39 DD 9A  |%..A.9..|
[03-MRZ-2014 13:47:46:719] nspsend: 4F CD 43 81 3A F2 57 4A  |O.C.:.WJ|
[03-MRZ-2014 13:47:46:719] nspsend: 1E 1B 5D 68 03 0A 6B 6D  |..]h..km|
[03-MRZ-2014 13:47:46:719] nspsend: 96 27 BC 43 05 E7 49 51  |.'.C..IQ|
[03-MRZ-2014 13:47:46:719] nspsend: AB D8 41 E9 6C AE BB 47  |..A.l..G|
[03-MRZ-2014 13:47:46:719] nspsend: FB C0 73 0E 72 37        |..s.r7  |

vom Client:

[03-MRZ-2014 13:47:46:998] nsprecv: packet dump
[03-MRZ-2014 13:47:46:998] nsprecv: 88 1B 3E A9 2A 2E D7 7E  |..>.*..~|
[03-MRZ-2014 13:47:46:998] nsprecv: DB 19 32 AD BE E1 04 8D  |..2.....|
[03-MRZ-2014 13:47:46:998] nsprecv: CF 5B 1D 4B 69 F2 75 4A  |.[.Ki.uJ|
[03-MRZ-2014 13:47:46:998] nsprecv: 4F 9F 2E CE 5E 49 DC 13  |O...^I..|
[03-MRZ-2014 13:47:46:998] nsprecv: 9D 18 D9 16 9A 8E BE BB  |........|
[03-MRZ-2014 13:47:46:998] nsprecv: 4C 79 78 F4 23 82 95 3A  |Lyx.#..:|
[03-MRZ-2014 13:47:46:998] nsprecv: 53 6C DA B0 6E 47 92 68  |Sl..nG.h|
[03-MRZ-2014 13:47:46:998] nsprecv: 5D 1A 27 69 34 7E 96 A4  |].'i4~..|
[03-MRZ-2014 13:47:46:998] nsprecv: 84 A1 36 26 83 AC F2 8A  |..6&....|
[03-MRZ-2014 13:47:46:998] nsprecv: 2D 70 59 03 DB 56 C2 76  |-pY..V.v|
[03-MRZ-2014 13:47:46:998] nsprecv: 9E DA 5E DB 4D E6 D9 7D  |..^.M..}|
[03-MRZ-2014 13:47:46:998] nsprecv: 4D 2D 92 E1 89 54 57 3C  |M-...TW<|
[03-MRZ-2014 13:47:46:998] nsprecv: B6 FA B1 09 68 4E 05 A0  |....hN..|
[03-MRZ-2014 13:47:46:998] nsprecv: 88 0B C1 87 BE 69 FD 9C  |.....i..|
[03-MRZ-2014 13:47:46:998] nsprecv: 22 DE FD D0 DA 5E FF 03  |"....^..|
[03-MRZ-2014 13:47:46:998] nsprecv: B7 7F 53 F5 8B 88 35 6F  |..S...5o|
[03-MRZ-2014 13:47:46:998] nsprecv: 7D FE 64 CF 71 82 C7 83  |}.d.q...|
[03-MRZ-2014 13:47:46:998] nsprecv: 0A AE B4 4B 98 C8 9E AC  |...K....|
[03-MRZ-2014 13:47:46:998] nsprecv: 07 AE A0 55 5D 3A 76 BD  |...U]:v.|
[03-MRZ-2014 13:47:46:998] nsprecv: 1A 3A A6 DF 2A EB AC 9F  |.:..*...|
[03-MRZ-2014 13:47:46:998] nsprecv: D7 AB 13 6F 84 48 FC 81  |...o.H..|
[03-MRZ-2014 13:47:46:998] nsprecv: 54 76 E2 D0 D0 C2 69 7E  |Tv....i~|
[03-MRZ-2014 13:47:46:998] nsprecv: DF D4 73 0D CB B6 88 C7  |..s.....|
[03-MRZ-2014 13:47:46:998] nsprecv: 38 3D 1B 24 9D FD BF 77  |8=.$...w|
[03-MRZ-2014 13:47:46:998] nsprecv: E2 3B F9 E8 19 5B B4 3D  |.;...[.=|
[03-MRZ-2014 13:47:46:998] nsprecv: 19 7B FA C4 3C 27 7E D0  |.{..<'~.|
[03-MRZ-2014 13:47:46:998] nsprecv: 3C 5F B3 FB 79 36 FA 07  |<_..y6..|
[03-MRZ-2014 13:47:46:998] nsprecv: 99 BB EF 2E 7A D4 65 1B  |....z.e.|
[03-MRZ-2014 13:47:46:998] nsprecv: B6 05 12 80 4C 70 6E C3  |....Lpn.|
[03-MRZ-2014 13:47:46:998] nsprecv: 3F C3 5C 76 74 4C 75 B0  |?.\vtLu.|
[03-MRZ-2014 13:47:46:998] nsprecv: 0D F8 F4 AD 6E 76 68 1D  |....nvh.|
[03-MRZ-2014 13:47:46:998] nsprecv: 33 DF 3F E9 45 BF 5E D4  |3.?.E.^.|
[03-MRZ-2014 13:47:46:998] nsprecv: 87 4C 3A 03 0F C9 99 8E  |.L:.....|
[03-MRZ-2014 13:47:46:998] nsprecv: 39 84 A1 5C B7 DD AD F7  |9..\....|
[03-MRZ-2014 13:47:46:998] nsprecv: A6 6D F2 C3 0B 74 18 04  |.m...t..|
[03-MRZ-2014 13:47:46:998] nsprecv: 4E D1 0A 01              |N...    |

Fazit:

Die SQL*Net Verschlüsselung ist einfach einzurichten und es entstehen keine zusätzliche Kosten. Performanceunterschiede zwischen verschlüsselter und unverschlüsselter Datenübertragung sind nicht bekannt.

Sollten Sie Interesse an weiteren Sicherheitsfunktionen zu Oracle Datenbanken haben, besuchen Sie doch unseren Kurs Datenbank Security. 

SQLNET.ENCRYPTION SQLNET.CRYPTO Verschlüsselung Trace File Netzwerkdateien

Jede Menge Know-how für Sie!

In unserer Know-How Datenbank finden Sie mehr als 300 ausführliche Beiträge zu den Oracle-Themen wie DBA, SQL, PL/SQL, APEX und vielem mehr.
Hier erhalten Sie Antworten auf Ihre Fragen.