-
Die
vorliegende Erfindung betrifft allgemein das Bereitstellen einer
Verschlüsselung
in Systemen der Computertelefonie. Spezieller betrifft die vorliegende
Erfindung Verfahren und Vorrichtungen zum Verschlüsseln von
Audiodaten, welche zwischen Systemen der Computertelefonie übertragen
werden, wie etwa über
ein Computernetz.
-
In
dem Maße,
wie sich die Übertragungsgeschwindigkeiten
und Bandbreiten erhöhen,
findet Computertelefonie zunehmend Verbreitung. Dementsprechend
stellen nunmehr verschiedene Lieferanten Telefonieanwendungspakete
für die
private und geschäftliche
Nutzung zur Verfügung.
Diese Telefonieanwendungen werden normalerweise auf zwei oder mehr
Computer geladen, so dass zwei Benutzer von zwei Computern telefonisch
kommunizieren können.
-
Der
Wert, welchen eine Telefonieanwendung einem bestimmten Benutzer
zur Verfügung
stellt, ist im Allgemeinen proportional zur Anzahl anderer Benutzer,
welche ebenfalls eine Telefonieanwendung nutzen. Falls zum Beispiel
sämtliche
Freunde oder Kollegen des betreffenden Benutzers ebenfalls eine Telefonieanwendung
nutzen, wird der Benutzer wahrscheinlich die Telefonieanwendung
recht wertvoll finden und sie häufig
benutzen, um mit seinen Freunden oder Kollegen zu sprechen. Falls
dagegen keiner von den Freunden oder Kollegen des betreffenden Benutzers
Telefoniesoftware nutzt, wird der Benutzer wahrscheinlich finden,
dass die Telefoniesoftware recht nutzlos ist.
-
Eine
Zunahme der Anzahl der Benutzer von Computertelefonie ist jedoch
auch mit Nachteilen verbunden. Zum Beispiel wird es mit zunehmender Anzahl
der Benutzer von Computertelefonie wahrscheinlicher, dass die Sicherheit
der Kommunikation eines bestimmten Benutzers durch einen Hacker
verletzt werden kann. Das heißt,
eine Sabotage oder ein Diebstahl von Informationen bei Computertelefonie-Verbindungen
wird für
Hacker attraktiver, wenn die Anzahl der Benutzer und der entsprechenden
Telefonverbindungen zunimmt.
-
Aufgrund
von Bedenken wegen potentieller Hacker haben einige Lieferanten
von Telefonieanwendungen versucht, Sicherheitsmerkmale in ihre Anwendungssoftware
aufzunehmen. Die Sicherheitsmerkmale sind normalerweise fest in
Module von Formatierungssoftware integriert, welche sich zwischen
verschiedenen Arten von Telefonieanwendungen unterscheiden. Das
heißt,
die Sicherheitsalgorithmen sind von den Formatierungsalgorithmen abhängig, welche
speziell für
eine bestimmte Telefonieanwendung von einem bestimmten Lieferanten entwickelt
wurden. Somit enthalten herkömmliche
Sicherheitsmerkmale normalerweise eine Entschlüsselung und Verschlüsselung,
welche nur für
Daten, z.B. Audiodaten, funktioniert, welche zwischen zwei Benutzern
derselben Telefonieanwendung gesendet werden.
-
Traditionell
erfolgte die Verschlüsselung
von Sprachkommunikation in Systemen der Computertelefonie in einem "Benutzermodus": entweder in der Anwendung
selbst, in ihren Coder/Decoder- (Codec-) Komponenten, oder in dem
verwendeten Kommunikationsstapel. Infolgedessen ist eine verschlüsselte Audiokommunikation
zwischen Clients der Computertelefonie, die von verschiedenen Firmen
hergestellt wurden, mit herkömmlichen
Sicherheitsmerkmalen nicht möglich.
Anders ausgedrückt,
unterschiedliche Telefonie-Lieferanten bieten keine kompatiblen
Sicherheitsmechanismen an.
-
Ein
Beispiel eines bekannten Verfahrens zur Bereitstellung einer Verschlüsselung
in einem System der Computertelefonie wird in WO 98/11704 beschrieben.
-
In
Anbetracht des Obigen besteht Bedarf an alternativen, flexibleren
Vorrichtungen und Verfahren der Computertelefonie, welche eine Verschlüsselung und
Entschlüsselung
für die
Kommunikation zwischen unterschiedlichen Clients der Computertelefonie
gewährleisten.
-
Dementsprechend
ist die vorliegende Erfindung in den unabhängigen Ansprüchen definiert. Weitere
vorteilhafte Merkmale sind in den abhängigen Ansprüchen detailliert
dargelegt. Allgemein ausgedrückt,
werden Verschlüsselungs-
und Entschlüsselungsmechanismen
in den Verbindungsweg zwischen Clients eingefügt, so dass ein beliebiger
Typ von Telefonieanwendung oder -system von den zwei Clients implementiert
werden kann. Zum Beispiel können
beide Clients die Telefoniesoftware HiNetTM RC
3000 von Siemens implementieren, oder beide Clients können die
Software NetMeeting von Microsoft implementieren. Stattdessen kann
auch ein Client Telefoniesoftware von einem Lieferanten von Telefoniesoftware
implementieren, und der andere Client kann Telefoniesoftware von
einem anderen Lieferanten von Telefoniesoftware implementieren.
Ungeachtet der Unterschiede (zum Beispiel bei der Telefoniesoftware)
zwischen den zwei Clients können
ihre Nachrichten verschlüsselt
und entschlüsselt
werden.
-
Ausführungsformen
der vorliegenden Erfindung haben viele Vorteile. Zum Beispiel ermöglichen unabhängige Sicherheitsmechanismen, Änderungen an
den Formatierungsmechanismen vorzunehmen, die von einer bestimmten
Telefonieanwendung benötigt
oder verwendet werden, ohne dass Änderungen existierender Sicherheitsmechanismen
erforderlich sind. Ebenso erfordern Änderungen an den Sicherheitsmechanismen
keine Änderungen
an den Formatierungsmechanismen, die durch bestimmte Telefonieanwendungen
implementiert sind. Außerdem müssen nicht
für jedes
spezielle Formatierungsverfahren der Telefonie Sicherheitsmechanismen
entwickelt werden. Infolgedessen können die Kosten der Entwicklung
sicherer Telefonieanwendungen wesentlich gesenkt werden.
-
Diese
und andere Merkmale und Vorteile der vorliegenden Erfindung werden
in der nachfolgenden Beschreibung der Erfindung und den beigefügten Abbildungen
ausführlicher
dargestellt, wobei die Abbildungen die Prinzipien der Erfindung
beispielhaft veranschaulichen und wobei
-
1A einen
verallgemeinerten Durchlaufweg für
Telefonsignale, die von einem ersten System der Computertelefonie
gesendet und von einem zweiten System der Computertelefonie empfangen werden,
gemäß einer
Ausführungsform
der vorliegenden Erfindung darstellt;
-
1B eine
schematische Darstellung eines Systems der Computertelefonie, das
innerhalb einer Betriebssystemumgebung implementiert ist, die einen
Benutzermodus und einen Kernmodus aufweist, gemäß einer speziellen Ausführungsform
der vorliegenden Erfindung ist;
-
2 eine
schematische Darstellung des Entscheidungsflusses eines Verschlüsselungs-Filtertreibers,
welcher nur geladen wird, wenn eine Verschlüsselung und/oder Entschlüsselung
gewählt
ist, gemäß einer
speziellen Ausführungsform
der vorliegenden Erfindung ist;
-
3 eine
schematische Darstellung eines Entscheidungsprozesses, der durch
einen Filtertreiber mit programmierbaren Verschlüsselungs- und/oder Entschlüsselungs-Flags implementiert
ist, gemäß einer
anderen Ausführungsform
der vorliegenden Erfindung ist; und
-
4 ein
Computersystem zeigt, das zum Implementieren gewisser spezieller
Ausführungsformen
der vorliegenden Erfindung geeignet ist.
-
1A stellt
einen verallgemeinerten Durchlaufweg für Telefonsignale, die von einem
ersten System der Computertelefonie 10 gesendet und von
einem zweiten System der Computertelefonie 11 empfangen
werden, gemäß einer
Ausführungsform der
vorliegenden Erfindung dar. Obwohl 1A das erste
Telefoniesystem 10 als nur Sendekomponenten aufweisend
und das zweite Telefoniesystem 11 als nur Empfangskomponenten
aufweisend zeigt, wird diese vereinfachte Ansicht nur verwendet,
um die Erörterung
zu vereinfachen und die Erfindung nicht unnötig zu verdecken. Natürlich kann
jedes Telefoniesystem sowohl Sende- als auch Empfangskomponenten
enthalten. Eine detailliertere Ausführungsform des Systems der
Computertelefonie gemäß der vorliegenden
Erfindung wird weiter unten unter Bezugnahme auf 1B beschrieben.
Es ist anzumerken, dass ein Client oder System der "Computertelefonie" ein telefoniefähiger Computer
oder ein H.323-konformes (oder mit dem Session Initiation Protocol
konformes) Telefon sein kann.
-
Betrachtet
man die "Sendeseite", welche durch das
Telefoniesystem 10 repräsentiert
wird, so werden Telefonsignale 12 in einem Telefon-Eingabegerät 14 empfangen.
Zum Beispiel spricht ein Benutzer in ein Telefon. Das Eingabegerät 14 kann
die Form eines beliebigen geeigneten Mechanismus zum Empfangen von
Telefonsignalen (z.B. Sprach- oder
Audiosignalen) und zum Umwandeln derselben in computerlesbare Signale
haben. Zum Beispiel kann das Eingabegerät 14 ein Mikrofon,
eine Soundkarte und verschiedene Softwaremodule der Soundkartenschnittstelle
oder Treiber zum Umwandeln der analogen Telefonsignale in eine binäre Darstellung aus
Einsen und Nullen enthalten.
-
Die
empfangenen Telefonsignale 12 werden durch das Eingabegerät 14 verarbeitet
und können danach
durch Block 16 verschlüsselt
werden. Eine zusätzliche
Verarbeitung der Telefonsignale kann nach der Verschlüsselung
erfolgen. Zum Beispiel können
die Telefonsignale für
die speziellen Schnittstellenanforderungen des Betriebssystems oder
des Telefonie-Clients geeignet formatiert werden.
-
Es
kann ein beliebiger Verschlüsselungsalgorithmus
implementiert werden, welcher geeignet ist, die Sicherheit von Telefonieverbindungen
zu gewährleisten.
Als spezielle Beispiele können
der IDEA Verschlüsselungsalgorithmus,
der DES Verschlüsselungsalgorithmus,
der LOST Algorithmus, der RC5 Algorithmus, der SEAL Algorithmus
oder Verschlüsselung
mit Schlüsseldatei
für die
vorliegende Erfindung benutzt werden. Natürlich können auch andere Typen von
Verschlüsselungsalgorithmen,
die in anderen Anwendungen (außer
Telefonie) verwendet werden, wie etwa Dateitransfer, für die Verwendung bei
der vorliegenden Erfindung angepasst werden.
-
Wie
in 1A dargestellt, werden die Telefonsignale, nachdem
sie verschlüsselt
wurden, in Block 18 zu einem bestimmten Format formatiert, welches
durch das empfangende System der Computertelefonie 11 erkannt
wird und implementiert ist. Zum Beispiel werden die Telefonsignale
unter Verwendung eines bestimmten Kompressionsalgorithmus komprimiert,
welcher von dem System der Computertelefonie 11 erkannt
wird. Als ein weiteres Beispiel kann das Formatieren so durchgeführt werden, dass
die Anforderungen verschiedener Standardprotokolle erfüllt werden,
wie etwa von H.323, RTP (Real Time Protocol), TCP (Transmission
Control Protocol) und IP (Internet Protocol).
-
Dieser
Formatierungsblock 18 kann eine beliebige Formatierung
beinhalten, welche von einer bestimmten Anordnung eines Telefoniesystems
benötigt
wird. Zum Beispiel erfordern bestimmte Telefonieanwendungen unterschiedliche
Kompressionsroutinen oder Codecs, wie etwa G.711, G.723 und G.729
Codecs. Als ein weiteres Beispiel erfordern unterschiedliche Telefonieanwendungen
unterschiedliche Implementierungen des Kommunikationsstapels. Anstelle
des oben erwähnten
H.323 Standards können
auch andere Formate wie etwa SIP (Session Initiation Protocol) benutzt
werden.
-
Betrachtet
man nun die "empfangenden
Seite", so werden
die verschlüsselten
und formatierten Signale dann zu dem empfangenden System der Computertelefonie 11 übermittelt,
wo die Signale von Block 20 des Telefoniesystems 11 interpretiert
werden. Beispielsweise können
die Signale in Block 20 dekomprimiert werden.
-
Die
Telefonsignale können
dann in Block 22 entschlüsselt werden. Die entschlüsselten
und interpretierten Signale werden anschließend zu dem Telefon-Ausgabegerät 24 geleitet.
Das Telefon-Ausgabegerät 24 bewirkt,
dass die entschlüsselten
Telefonsignale in Audiosignale 26 umgewandelt werden. Zum Beispiel
kann das Ausgabegerät 24 die
Form von Audio-Lautsprechern,
einer Soundkarte sowie von Software oder Treibern für die Soundkarte
haben.
-
Wie
in 1A dargestellt, werden für die vorliegende Erfindung
Verschlüsselung
und Entschlüsselung
getrennt von der Formatierung durchgeführt, welche für die spezielle
Telefonieanwendung oder das spezielle Telefoniesystem, das verwendet wird,
spezifisch ist. Das heißt,
Verschlüsselungs- und/oder Entschlüsselungsfunktionen
sind unabhängig
von beliebigen Formatierungsfunktionen, welche bei unterschiedlichen
Anwendungen und Systemen der Computertelefonie unterschiedlich sind.
Zum Beispiel hängt
die Verschlüsselung
nicht davon ab, welcher Typ von Kompressionsalgorithmus implementiert
wird. Somit bietet die vorliegende Erfindung mehrere Vorteile. Zum
Beispiel kann ein universelles Verschlüsselungs- oder Entschlüsselungsmodul
mit einem beliebigen Typ von Telefonieanwendung verwendet werden.
Demzufolge erfordern, wenn die Formatierungsalgorithmen der Telefonieanwendung geändert werden,
der Verschlüsselungs-
und Entschlüsselungsmodul
nicht ebenfalls eine Änderung. Außerdem muss
nicht für
jede neue Telefonieanwendung und entsprechende neue Formatierungsverfahren
ein gesondertes Sicherheitsmodul geschaffen werden. Kurz gesagt,
kann die Trennung der spezialisierten Formatierungsmechanismen von
den Sicherheitsmechanismen die Vielseitigkeit wesentlich erhöhen und
die Kosten der Bereitstellung von Systemen der Computertelefonie
senken.
-
Bei
manchen Ausführungsformen
sind die Sicherheitsalgorithmen auch unabhängig vom Code der Telefonieanwendung
selbst. Das heißt,
das Sicherheitsmodul und die Telefonieanwendung sind separate Softwaremodule.
Somit können
das Sicherheitsmodul und die Software der Telefonieanwendung unabhängig voneinander
entwickelt und geändert
werden. Zum Beispiel kann das Sicherheitsmodul in einer anderen
Programmiersprache geschrieben werden als die Software der Telefonieanwendung.
-
1B ist
eine schematische Darstellung eines Systems der Computertelefonie 100,
das innerhalb einer Betriebssystemumgebung implementiert ist, die
einen Benutzermodus und einen Kernmodus aufweist, gemäß einer
Ausführungsform
der vorliegenden Erfindung. Allgemein gesagt, zeigt 1B eine
Audio- und eine Netzpfad-Struktur, welche beide von einem Computertelefonie-Client 102 benutzt werden,
um mit einem anderen System der Computertelefonie (nicht dargestellt)
zu kommunizieren. Wie dargestellt, enthält das Telefoniesystem 100 einen Computertelefonie-Client 102,
der mit einem Netzgerät 111 (welches
normalerweise sowohl Hardware- als auch Softwarekomponenten enthält) zum Übermitteln
von Signalen zu und von einem zweiten System der Computertelefonie
(nicht dargestellt) und einem Audiogerät 119 (welches normalerweise
sowohl Hardware- als auch Softwarekomponenten enthält) zum
Empfangen von Tönen
zum Beispiel von einem Benutzer und zum Erzeugen von Tönen gekoppelt ist.
-
Betrachtet
man die "sendende
Seite", so werden
ein oder mehrere Töne
von dem Audiogerät 119 empfangen.
Wie oben beschrieben, kann das Audiogerät einen beliebigen geeigneten
Mechanismus zum Umsetzen von Tönen
in vom Computer verwertbare Signale enthalten. Bei der dargestellten Ausführungsform
wird Ton (z.B. von einem sprechenden Benutzer) in einem Mikrofon
empfangen, das mit einer Soundkarte 122 gekoppelt ist.
Die Soundkarte 122 bewirkt im Allgemeinen in Verbindung
mit einem Soundkartentreiber 120, dass die analogen Audiosignale
in digitale Audiosignale umgewandelt werden und eine eventuelle
Formatierung durchgeführt
wird, die von dem Betriebssystem oder dem Telefonie-Client oder
der Anwendung gefordert wird. Die Umwandlungs- und Formatierungsfunktionen
können durch
eine beliebige Kombination von Hardware- und/oder Softwaremodulen
implementiert werden. Beispielsweise kann die Soundkarte 122 eine
anwendungsspezifische integrierte Schaltung (Application Specific
Integrated Circuit, ASIC) zum schnellen Ausführen wohlbekannter Verarbeitungsfunktionen enthalten,
und/oder sie kann programmierbare Logikanordnungen (Programmable
Logic Devices, PLD) zum Implementieren sich schnell ändernder
Verarbeitungsfunktionen enthalten, und/oder sie kann einen oder
mehrere digitale Signalprozessoren (DSPs) zum Ausführen spezieller
Berechnungen enthalten.
-
Gegenwärtig sind
viele Typen von Soundkarten und zugehörigen Treibern erhältlich,
welche die Audiosignale jeweils auf eine spezifische Weise verarbeiten.
Zum Beispiel enthalten manche Soundkarten und Treiber Verarbeitungsfunktionen,
welche für die
verwendete Telefonieanwendung spezifisch sind. Manche Soundkarten
und Treiber implementieren möglicherweise
den populären
Kompressionsalgorithmus G.711 Codec. Dagegen enthalten andere Soundkarten
und Treiber den G.711 Codec nicht, sondern überlassen die Ausführung dieser
Funktion dem Telefonie-Client,
oder sie enthalten zwar G.711, doch gestatten, dass dieser leiterplattenintegrierte Codec
umgangen wird.
-
Die
Audiosignale werden dann normalerweise zu einem Universal-Sound-Treiber 118 weitergeleitet.
Während
der Soundkartentreiber 120 spezifisch nur mit der zugehörigen Soundkarte 122 gekoppelt
werden kann, ist der Universal-Sound-Treiber 118 für eine Kopplung
mit verschiedenen Typen von Soundkartentreibern und ihren zugehörigen Soundkarten
geeignet. Ohne Implementierung der vorliegenden Erfindung wären die
Audiosignale dann von einem Ein-/Ausgangs- (I/O) Supervisor 108 empfangen
worden.
-
Eine
der Funktionen des I/O-Supervisors 108 besteht darin zu
bestimmen, wie verschiedene Daten zwischen verschiedenen Softwareanwendungs-Clients,
welche auf dem Betriebssystem laufen, und verschiedenen Softwaremodulen
zur Verbindung mit den Peripheriegeräten, welche mit dem Computersystem
gekoppelt sind, zu routen sind. Bei einer Ausführungsform routet der I/O-Supervisor 108,
wenn die Audiosignale in der Form von Computertelefonie-Signalen
vorliegen, die Audiosignale zu dem Computertelefonie-Client 102.
Der Telefonie-Client 102 richtet dann eine Anforderung
an den I/O-Supervisor 108, die Audiosignale zu einem zweiten Computertelefonie-Client
(nicht dargestellt) zu routen.
-
Der
zweite Telefonie-Client kann sich auf einem anderen Computer befinden,
welcher mit einem LAN-Netz gekoppelt ist, welches seinerseits mit
einem WAN-Netz gekoppelt sein kann. Ein Computernetzwerk enthält normalerweise
eine Menge von Übertragungskanälen, die
eine Menge von Rechengeräten
oder Knoten miteinander verbinden, welche miteinander kommunizieren
können.
Diese Knoten können
Computer, Endgeräte,
Workstations oder Kommunikationseinheiten unterschiedlicher Art
sein, die über
verschiedene Standorte verteilt sind. Sie kommunizieren über Übertragungskanäle, welche von öffentlichen
Betreibern (z.B. Telefongesellschaften) geleast sein können oder
von den Eigentümern des
Netzwerks zur Verfügung
gestellt werden. Diese Kanäle
können
vielfältige Übertragungsmedien
verwenden, darunter Lichtwellenleiter, Koaxialkabel, verdrillte
Kupferleitungspaare, Satellitenverbindungen oder digitale Richtfunkstrecken.
Die Knoten können über ein
weites Gebiet verteilt sein (Entfernungen von Hunderten oder Tausenden
von Meilen), oder über
ein örtlich
begrenztes Gebiet (Entfernungen von einhundert Fuß bis zu
mehreren Meilen), wobei die Netze in diesen Fällen als Fernnetze (Wide Area
Networks, WANs) bzw. Lokalnetze (Local Area Networks, LANs) bezeichnet
werden. Es sind auch Kombinationen von LANs und WANs möglich, indem weit
voneinander entfernte LANs, zum Beispiel in Zweigniederlassungen, über ein
WAN gekoppelt werden.
-
Bei
der dargestellten Ausführungsform
werden die Audiosignale durch den Netzpfad oder das Netzgerät 111 zu
der Netzkarte 114 gelenkt. Das Netzgerät enthält beliebige geeignete Software- und/oder
Hardwaremodule zum Kommunizieren über einen bestimmten Typ von
Netzen, wie etwa IP- oder ATM- (Asynchronous
Transfer Mode) Netzen. Wie dargestellt, enthält das Netzgerät 111 eine
Netzkarte 114, einen Netzkartentreiber 112 für ein bestimmtes Netz
und einen Universal-Netztreiber 110.
-
Zu
Beginn werden die Audiosignale von dem I/O-Supervisor 108 durch
den Universal-Netztreiber 110 geleitet. Der Universal-Netztreiber 110 ist
in der Lage, die Audiosignale zu verschiedenen Typen von Netzkartentreibern
und ihren zugehörigen
Netzkarten zu übertragen.
Wie dargestellt, stellt der Universaltreiber eine Schnittstelle
zwischen dem I/O-Supervisor 108 und
dem Netzkartentreiber 112 zur Verfügung.
-
Der
Netzkartentreiber 112 ist normalerweise für die Kopplung
mit der Netzkarte verantwortlich. Zum Beispiel zeigt der Netzkartentreiber 112 der Netzkarte 114 an,
dass er Audiosignale oder Daten zum Netz zu übertragen hat. Die Netzkarte 14 teilt dann
mit, dass sie bereit ist, einen Block von Audiodaten zu empfangen,
und der Netzkartentreiber 112 sendet dann einen Block von
Audiodaten zusammen mit eventuell erforderlichen Informationen,
z.B. Datenlänge.
Die Audiodaten werden dann über
ein Netz wie etwa ein LAN- und/oder WAN-Netz zu dem zweiten Computertelefonie-Client übertragen.
-
Betrachtet
man die empfangende Seite, so werden Audiosignale in der Netzkarte 114 von
einem sendenden Computertelefonie-Client über das Netz empfangen. Die
empfangenen Signale werden dann sowohl von der Netzkarte 114 als
auch von dem Netzkartentreiber 112 verarbeitet. Der Netzkartentreiber 112 wandelt
die empfangenen elektrischen Signale in computerlesbare Signale,
z.B. binäre
Daten um. Die Netzkarte 114 und/oder der Treiber 112 kann auch
Mechanismen zum Speichern von Daten und Steuern des Flusses zur
Verfügung
stellen (z.B. Kollisionskontrolle bereitstellen). Außerdem erkennt
die Netzkarte 114 und/oder der Treiber 112 bestimmte Datenformate
eines bestimmten Netztyps. Dagegen erkennt der Universal-Netztreiber 110 Daten
und ermöglicht
eine Kopplung mit Daten, die von verschiedenen Typen von Netzkarten
empfangen wurden.
-
Das
empfangene Signal wird dann zu dem I/O-Supervisor 108 übertragen,
von wo es danach zu dem Computertelefonie-Client 102 übertragen
wird. Der Telefonie-Client 102 kann Mechanismen zur Kopplung
mit einem oder mehreren Netzpfaden oder Medienpfaden enthalten (z.B.
die Soundkarte und Soundtreiber). Wie dargestellt enthält der Telefonie-Client 102 ein
H.323 Modul 104 zum Erfüllen
der Formatierungsanforderungen des H.323 Standards, der im Netz
angewendet wird. Der Telefonie-Client 102 enthält außerdem ein
Mediensteuermodul 106 zur Kopplung mit verschiedenen Mediengeräten über den
I/O-Supervisor 108.
-
Das
H.323-Modul 104 enthält
eine Implementierung des Real Time Protocols (RTP), welches erwartet,
dass Audiosignale zu Datagrammen formatiert und über einen verbindungslosen
Einrichtbetrieb übertragen
werden. Das RTP des H.323-Moduls legt fest, was mit den Audiodaten
geschieht. Beispielsweise paketiert das RTP die Audiodaten und fügt zu den
paketierten Audiodaten einen RTP-Header hinzu, bevor es sie zu einem
anderen Telefoniesystem sendet.
-
Nachdem
die Audiosignale geeignet formatiert worden sind, um beliebige Netzstandards
zu erfüllen,
empfängt
der I/O-Supervisor 108 dann
eine Anforderung von dem Telefonie-Client 102, das empfangene
Signal über
den Universal-Sound-Treiber 118, den Soundkartentreiber 120 und
in die Soundkarte 122 zu senden. Die Soundkarte 122 gibt
das empfangene Signal zu einem oder mehreren Lautsprechern aus.
-
Das
Mediensteuermodul 106 kann einen geeigneten Dekompressionsalgorithmus
für die
empfangenen Audiodaten wählen
und implementieren. Zum Beispiel kann das Mediensteuermodul 106 einen
bestimmten Codec wählen,
welcher verwendet wurde, um die ankommenden Daten zu komprimieren.
Auf der "Sendeseite" kann das Mediensteuermodul 106 einen
bestimmten Kompressionsalgorithmus (z.B. Codec) für die Audiodaten
wählen
und implementieren, der auf der verwendeten speziellen Telefonie-Client-Software
beruht. Anders ausgedrückt, unterschiedliche
Lieferanten von Telefonie-Client-Software
verwenden unterschiedliche Codecs.
-
Durch
die vorliegende Erfindung werden Mechanismen zum Verschlüsseln und
Entschlüsseln verschiedener
Tonsignale unabhängig
von der Verarbeitung, die durch den Computertelefonie-Client 102 durchgeführt wurde,
bereitgestellt. Das heißt,
die Verschlüsselung
und Entschlüsselung
werden auf dieselbe Weise durchgeführt, ungeachtet der speziellen
Formatierung, die von dem Telefonie-Client 102 implementiert ist.
Zum Beispiel sind unabhängig
davon, welcher spezielle Codec von einem bestimmten Telefonie-Client 102 implementiert
ist, die Verschlüsselungs-
und Entschlüsselungsfunktionen
dieselben.
-
Bei
der dargestellten Ausführungsform
der vorliegenden Erfindung ist ein Verschlüsselungs- und Entschlüsselungs-Filtertreiber 116 zwischen
dem I/O-Supervisor 108 und dem Universal-Soundtreiber 118 eingefügt. Infolgedessen
können
Audiosignale zu und von dem Telefonie-Client 102 für verschiedene
Formatierungsfunktionen übermittelt
werden und außerdem
unabhängig
zu und von dem Verschlüsselungs-/Entschlüsselungs-Filtertreiber 116 übermittelt werden.
Anders ausgedrückt,
die Audiosignale werden unabhängig
von der Formatierung des Telefonie-Clients verschlüsselt und
entschlüsselt.
-
In
Verbindung mit der vorliegenden Erfindung kann ein beliebiges geeignetes
Betriebssystem implementiert werden. Vorzugsweise wird die vorliegende
Erfindung innerhalb einer Microsoft Windows NT Umgebung implementiert,
welche gegenwärtig Mechanismen
zum Einfügen
von speziell angefertigten Treibern im Kern-Modus zur Verfügung stellt.
Andere Betriebssysteme können
so modifiziert werden, dass sie ein ähnliches Einfügungsmerkmal
enthalten, um den Filtertreiber 116 der vorliegenden Erfindung an
einer geeigneten Stelle zur Verfügung
zu stellen.
-
Wie
dargestellt enthält
das Telefoniesystem 100 Software und/oder Hardware, welche
entweder in einem Benutzermodus 101 oder in einem Kernmodus 107 implementiert
ist. Zum Beispiel werden lieferantenspezifische Anwendungen im Benutzermodus 101 ausgeführt. Wie
in 1B dargestellt, arbeiten der Computertelefonie-Client 102 und
das zugehörige
Mediensteuermodul 106 und H.323-Modul 104 im Benutzermodus 101.
-
Zusätzlich zur
Software und/oder Hardware des Benutzermodus werden im Kernmodus 107 im Allgemeinen
Betriebssystemdienste für
verschiedene wichtige Netzverbindungen und Mediensteuerung ausgeführt. Normalerweise
ist der Kern verantwortlich für
Speichermanagement, Prozess-, Task- und Hardware-Management. Zum
Beispiel ist der I/O-Supervisor 108 wie
dargestellt innerhalb des Kernmodus 107 als eine Schnittstelle
zwischen dem Computertelefonie-Client 102 und einer Netzkarte 114 sowie einer
Soundkarte 122 vorgesehen. Daher sind verschiedene Software-
und/oder Hardwaremodule zwischen der Netzkarte und dem Computertelefonie-Client
sowie zwischen der Soundkarte und dem Computertelefonie-Client vorgesehen.
-
Das
Verschlüsselungs-
und Entschlüsselungsmodul
kann sich an einem beliebigen geeigneten Ort innerhalb des Übertragungsweges
befinden, so dass die Verschlüsselung
und/oder Entschlüsselung
unabhängig
von irgendwelchen spezifischen Formatierungsfunktionen ist, die
durch die speziellen Computertelefonie-Clients implementiert sind.
Bei der in 1B dargestellten Ausführungsform
befindet sich der Verschlüsselungs-/Entschlüsselungs-Filtertreiber 116 innerhalb
des Kernmodus-Teils 107. Ein Verfahren zum Einfügen eines
Treibers in den Kern des Betriebssystems Windows NT ist in dem Artikel
Examining the Windows NT File System, Dr. Dobb's Journal, Februar 1997 beschrieben,
auf den verwiesen werden kann.
-
Der
Verschlüsselungs-/Entschlüsselungs-Filtertreiber 116 kann
auf eine beliebige geeignete Art und Weise implementiert werden.
Zum Beispiel kann eine Benutzeroberfläche durch den Computertelefonie-Client
selbst oder innerhalb eines separaten Dienstprogramms zum Einfügen des
Filtertreibers zur Verfügung
gestellt werden. Die Benutzeroberfläche kann den Benutzer auffordern
einzugeben, ob eine Verschlüsselung
und/oder Entschlüsselung
für nachfolgende
Telefonverbindungen gewünscht
wird. Stattdessen kann die Wahl von Verschlüsselung und/oder Entschlüsselung
auch von einem oder mehreren Systemparametern abhängen, welche
zum Beispiel von einem Systemadministrator eingestellt werden.
-
Gemäß speziellen
Ausführungsformen
kann das Einfügen
des Verschlüsselungs-/Entschlüsselungs-Filtertreibers
davon abhängen,
ob der Benutzer Verschlüsselung
und Entschlüsselung
wählt oder nicht.
Das heißt,
der Filtertreiber wird nur geladen, wenn der Benutzer Verschlüsselung
und Entschlüsselung
wählt.
Stattdessen kann der Filtertreiber auch unabhängig von der Wahl des Benutzers
geladen werden, und die Wahl des Benutzers ist in die Filtertreiber-Software
selbst integriert. Zum Beispiel kann durch die Wahl des Benutzers
ein Flag für Verschlüsselung
und/oder Entschlüsselung
gesetzt oder gelöscht
werden, um anzuzeigen, ob Verschlüsselung und/oder Entschlüsselung
auszuführen
ist oder nicht.
-
2 ist
eine schematische Darstellung des Entscheidungsflusses eines Verschlüsselungs-/Entschlüsselungs-Filtertreibers, welcher
nur geladen wird, wenn eine Verschlüsselung und/oder Entschlüsselung
gewählt
ist, gemäß einer
Ausführungsform
der vorliegenden Erfindung. Zu Beginn werden in Block 202 Eingangsdaten
von Ausgangsdaten unterschieden. Eingangsdaten können zum Beispiel in der Form
von Audiodaten vorliegen, welche ein erster Benutzer in ein Mikrofon
eingibt. Ausgangsdaten können
in der Form von Audiodaten vorliegen, welche über einen Netzpfad von einem
anderen Telefonie-Client empfangen wurden (z.B. wie durch die Netzkarte 114,
den Netzkartentreiber 112 und den Universal-Netztreiber 110 von 1B dargestellt
ist).
-
Falls
Eingangsdaten vorliegen, werden sie in Block 204 verschlüsselt. Zum
Beispiel werden die Mikrofondaten verschlüsselt. Bei dieser Ausführungsform
wird angenommen, dass, wenn der Filtertreiber geladen wird, Verschlüsselung
bereits gewählt
worden ist. Die verschlüsselten
Daten werden dann in Block 206 durch das Filter zu dem
I/O-Supervisor übertragen.
-
Für Ausgangsdaten
wird in Block 208 zuerst bestimmt, ob die Ausgangsdaten
verschlüsselt
sind. Falls sie verschlüsselt
sind, werden die Ausgangsdaten in Block 210 entschlüsselt, und
die entschlüsselten
Daten werden dann in Block 214 durch das Filter und durch
den Sound-Pfad (z.B. den Universal-Sound-Treiber 118, den Soundkartentreiber 120 und
die Soundkarte 122) gesendet. Falls jedoch die Ausgangsdaten
nicht verschlüsselt
sind, werden sie nur in Block 212 durch das Filter gesendet,
ohne dass sie entschlüsselt
werden.
-
2 stellt
nur einen Mechanismus zum Verschlüsseln und Entschlüsseln von
Telefonie-Daten dar. Wie oben beschrieben wurde, erfolgt beim Laden
des Filtertreibers nicht notwendigerweise automatisch eine Verschlüsselung.
Anders ausgedrückt,
in den Entscheidungsprozess kann mehr Flexibilität integriert werden. Zum Beispiel
kann die Wahl von Verschlüsselung
und/oder Entschlüsselung durch
den Benutzer eine Modifikation des Verschlüsselungs-/Entschlüsselungs-Filtertreibers selbst
zur Folge haben.
-
3 ist
eine schematische Darstellung eines Entscheidungsprozesses 300,
der durch einen Verschlüsselungs-/Entschlüsselungs-Filtertreiber 116 mit
programmierbaren Verschlüsselungs- und/oder
Entschlüsselungs-Flags
implementiert ist, gemäß einer
anderen Ausführungsform
der vorliegenden Erfindung. Zu Beginn wird in Block 302 der Treiber
geladen. Danach wird in Block 304 der Benutzer aufgefordert,
Sicherheitseinstellungen zu wählen. Das
heißt,
der Benutzer kann aufgefordert werden zu wählen, ob verschlüsselt werden
soll oder nicht. Danach werden in Block 306 ein oder mehrere
Sicherheits-Flags gesetzt. Zum Beispiel kann ein Verschlüsselungs-Flag
auf einen Wert null für "Verschlüsselung" und auf einen Wert
eins für "keine Verschlüsselung" gesetzt werden.
Ebenso kann ein Entschlüsselungs-Flag
auf einen Wert null für "Entschlüsselung" und auf einen Wert
eins für "keine Entschlüsselung" gesetzt werden.
-
Obwohl
die Blöcke 302 bis 306 als
innerhalb des Filtertreibers selbst implementiert beschrieben sind,
können
sie natürlich
auch innerhalb anderer Softwaremodule implementiert werden. Zum
Beispiel kann die Telefonieanwendungs-Software eine graphische Benutzeroberfläche (Graphical
User Interface, GUI) enthalten, um den Benutzer aufzufordern, Verschlüsselung
und/oder Entschlüsselung
zu wählen
oder abzuwählen.
Stattdessen kann eine GUI auch von einem Dienstprogramm zum Einfügen des Filtertreibers
zur Verfügung
gestellt werden. Natürlich ist eine
GUI nicht notwendig. Das heißt,
Verschlüsselung
und/oder Entschlüsselung
kann auf der Basis bestimmter Systemparameter automatisch gewählt werden.
-
In
Block 308 wird dann bestimmt, ob irgendwelche ankommenden
oder abgehenden Telefoniedaten vorhanden sind. Wenn Telefoniedaten
vorhanden sind, wird danach in Block 310 bestimmt, ob die Daten
ankommende oder abgehende Daten sind. Falls die Daten in der Form
von Ausgangsdaten vorliegen, kann der Prozess 300 auf dieselbe
Weise fortgesetzt werden, wie im Ausgangs-Zweig von 2, wenn
Entschlüsselung
nicht wählbar
ist (z.B. wenn Entschlüsselung
nur davon abhängt,
ob die Ausgangsdaten verschlüsselt
sind). Entschlüsselung kann
jedoch wählbar
sein, zum Beispiel wenn andere verfügbare Entschlüsselungsmechanismen
anstelle des Filter-Entschlüsselungsmechanismus
gewünscht
werden können.
Zum Beispiel kann ein Benutzer wünschen,
Entschlüsselungsmechanismen
zu verwenden, welche innerhalb der Telefonie-Client-Software verfügbar sind.
In diesem Falle wird zu Beginn in Block 318 bestimmt, ob
die Ausgangsdaten verschlüsselt
sind.
-
Falls
die Ausgangsdaten verschlüsselt
sind, wird in Block 320 bestimmt, ob das Entschlüsselungs-Flag
Entschlüsselung
anzeigt. Fall das Flag Entschlüsselung
anzeigt, werden in Block 322 die Ausgangsdaten entschlüsselt. Die
entschlüsselten Ausgangsdaten
werden dann in Block 324 durch das Filter gesendet. Wenn
in Block 318 ermittelt wird, dass die Quelle nicht verschlüsselt ist,
werden die Ausgangsdaten natürlich
in Block 324 durch das Filter gesendet, ohne dass eine
Entschlüsselung
durchgeführt
wird, und der Prozess 300 endet. Außerdem werden, wenn in Block 318 ermittelt
wird, dass die Quelle verschlüsselt
ist, jedoch keine Entschlüsselung
angezeigt ist, die Ausgangsdaten ebenfalls in Block 324 ohne
Entschlüsselung
durch das Filter gesendet, und der Prozess 300 endet.
-
Für Eingangsdaten
wird in Block 312 zunächst
bestimmt, ob das Verschlüsselungs-Flag
Verschlüsselung
anzeigt. Falls Verschlüsselung
angezeigt ist, werden die Eingangsdaten in Block 316 verschlüsselt, und
die verschlüsselten
Eingangsdaten werden dann in Block 314 durch das Filter
gesendet. Falls das Flag jedoch keine Verschlüsselung anzeigt, werden die
Eingangsdaten nur in Block 314 durch das Filter gesendet,
ohne dass eine Verschlüsselung durchgeführt wird.
Danach endet der Prozess 300.
-
4 zeigt
ein Computersystem 900, das zum Implementieren von Ausführungsformen
der vorliegenden Erfindung geeignet ist. 4 zeigt eine
mögliche
physikalische Form des Computersystems. Natürlich kann das Computersystem
viele physikalische Formen aufweisen, die von einer integrierten
Schaltung, einer Leiterplatte und einem kleinen Handgerät bis hin
zu einem riesigen Supercomputer reichen. Das Computersystem 900 enthält einen
Monitor 902, ein Display 904, ein Gehäuse 906,
ein Plattenlaufwerk 908, eine Tastatur 910 und
eine Maus 912. Die Platte 914 ist ein computerlesbares
Medium, das verwendet wird, um Daten zu und von dem Computersystem 900 zu übertragen.
-
4 ist
ein Beispiel eines Blockschaltbildes für das Computersystem 900.
An einen Systembus 920 sind vielfältige Untersysteme angeschlossen.
Der/die Prozessor(en) 922 (auch als Zentraleinheiten oder
CPUs bezeichnet) ist/sind mit Speichergeräten gekoppelt, die einen Speicher 924 enthalten. Der
Speicher 924 enthält
einen Direktzugriffsspeicher (Random Access Memory, RAM) und einen Nur-Lese-Speicher
(Read-Only Memory, ROM). Wie in der Technik wohlbekannt ist, bewirkt
der ROM, dass Daten und Anwendungen unidirektional zu der CPU übertragen
werden, und der RAM wird normalerweise verwendet, um Daten und Anweisungen
bidirektional zu übertragen.
Diese beiden Arten von Speichern können eine beliebige geeignete
Kombination der unten beschriebenen computerlesbaren Medien enthalten.
Eine Festplatte 926 ist ebenfalls bidirektional mit der
CPU 922 gekoppelt; sie stellt zusätzliche Datenspeicherkapazität zur Verfügung und kann
ebenfalls irgendwelche der unten beschriebenen computerlesbaren
Medien enthalten. Die Festplatte 926 kann verwendet werden,
um Programme, Daten und Ähnliches
zu speichern, und sie ist normalerweise ein sekundäres Speichermedium
(wie etwa eine Hartplatte), welche langsamer ist als der primäre Speicher.
Es ist leicht einzusehen, dass die Informationen, die auf der Festplatte 926 enthalten
sind, in entsprechenden Fällen
standardmäßig als
virtueller Speicher in den Speicher 924 integriert sein
können. Die
Wechselplatte 914 kann die Form irgendwelcher der unten
beschriebenen computerlesbaren Medien haben.
-
Die
CPU 922 ist außerdem
mit vielfältigen Ein-/Ausgabegeräten gekoppelt,
wie etwa einem Display 904, einer Tastatur 910,
einer Maus 912 und Lautsprechern 930. Im Allgemeinen
kann ein Ein-/Ausgabegerät
irgendeines der folgenden Geräte sein:
Bildschirmgeräte,
Trackballs, Mäuse,
Tastaturen, Mikrofone, Berührungsbildschirme,
Wandlerkarten-Leser,
Magnet- oder Papierbandleser, Tablet-PCs, Lichtgriffel, Sprach-
oder Handschriften-Erkennungsgeräte,
biometrische Lesegeräte
oder andere Computer. Die CPU 922 kann wahlweise mit Hilfe
einer Netzschnittstelle 940 mit einem anderen Computer
oder Telekommunikationsnetz gekoppelt sein. Mit einer solchen Netzschnittstelle
ist es denkbar, dass die CPU im Verlaufe der Durchführung der oben
beschriebenen Telefoniefunktionen Informationen vom Netz empfangen
könnte
oder Informationen an das Netz ausgeben könnte. Ferner ist es möglich, dass
Ausführungsformen
von Verfahren der vorliegenden Erfindung ausschließlich auf
der CPU 922 ausgeführt
werden, oder dass sie in Verbindung mit einer entfernten CPU, welche
einen Teil der Verarbeitung übernimmt, über ein
Netz wie etwa das Internet ausgeführt werden.
-
Außerdem betreffen
Ausführungsformen
der vorliegenden Erfindung ferner Computerspeicherprodukte mit einem
computerlesbaren Medium, auf welchem sich Computercode befindet,
zum Ausführen verschiedener
auf dem Computer implementierter Arbeitsgänge. Die Medien und der Computercode können diejenigen
sein, die speziell für
die Zwecke der vorliegenden Erfindung entwickelt und konstruiert wurden,
oder sie können
von der Art sein, welche für Fachleute
auf dem Gebiet der Computersoftware wohlbekannt und verfügbar ist.
Beispiele computerlesbarer Medien sind insbesondere: magnetische Medien,
wie etwa Festplatten, Disketten und Magnetband; optische Medien
wie etwa CD-ROMs und holographische Geräte; magneto-optische Medien
wie etwa Floptical-Disks (Floptische Disketten); und Hardwaregeräte, welche
speziell konfiguriert sind, um Programmcode zu speichern und auszuführen, wie
etwa anwendungsspezifische integrierte Schaltungen (Application
Specific Integrated Circuits, ASICs), programmierbare Logikanordnungen
(Programmable Logic Devices, PLDs) sowie ROM- und RAM-Geräte. Zu den
Beispielen von Computercode gehören
Maschinencode, wie er von einem Compiler erzeugt wird, und Dateien,
die problemorientierten Code enthalten und von einem Computer unter
Verwendung eines Interpretierers ausgeführt werden.
-
Obwohl
die obige Erfindung zum Zwecke der Erleichterung des Verständnisses
mit gewissen Details beschrieben wurde, ist es offensichtlich, dass
innerhalb des Rahmens der beigefügten
Ansprüche gewisse Änderungen
und Modifikationen vorgenommen werden können. Es ist anzumerken, dass
mehrere verschiedene Möglichkeiten
existieren, um sowohl den Prozess als auch die Vorrichtung der vorliegenden
Erfindung zu implementieren. Zum Beispiel können Verschlüsselungs-
und Entschlüsselungsmechanismen
in die ursprüngliche
Betriebssystem-Software selbst integriert sein; folglich wäre das Einfügen eines
Filtertreibers nicht erforderlich.
-
Dementsprechend
sind die vorliegenden Ausführungsformen
als der Veranschaulichung dienend und nicht als einschränkend zu
betrachten, und die Erfindung ist nicht auf die hier angegebenen
Einzelheiten beschränkt,
sondern kann innerhalb des Rahmens der beigefügten Ansprüche modifiziert werden.