WO2002071195A1 - Verfahren und einrichtung zum übertragen von programmcodes im internet - Google Patents

Verfahren und einrichtung zum übertragen von programmcodes im internet Download PDF

Info

Publication number
WO2002071195A1
WO2002071195A1 PCT/EP2002/001064 EP0201064W WO02071195A1 WO 2002071195 A1 WO2002071195 A1 WO 2002071195A1 EP 0201064 W EP0201064 W EP 0201064W WO 02071195 A1 WO02071195 A1 WO 02071195A1
Authority
WO
WIPO (PCT)
Prior art keywords
program code
client system
client
server
transmitted
Prior art date
Application number
PCT/EP2002/001064
Other languages
English (en)
French (fr)
Inventor
Peter Russ
Original Assignee
Hmd-Software Ag
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hmd-Software Ag filed Critical Hmd-Software Ag
Publication of WO2002071195A1 publication Critical patent/WO2002071195A1/de

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity

Definitions

  • the invention relates to a method for transmitting a program code for a web application from a server system to a client system and a device therefor.
  • the Internet is a global network of computer networks that connect several million computers to enable data exchange. All sub-networks and computers on the Internet use a uniform addressing scheme and the TCP / IP protocols for data transmission. The data transmission is in packet form. Various services are offered on the Internet, the most important of which is the World Wide Web.
  • the World Wide Web - hereinafter also referred to briefly as the Web - is an interactive information system that enables the exchange of digital documents between computers.
  • the web consists of the so-called hypertext systems, also called websites.
  • Each web site denotes a place on the Internet where one or more related web documents can be found.
  • Each website is assigned an address on the Internet that makes it distinguishable from all other websites and thus enables targeted access.
  • the web sites are generally located on individual computers, the so-called web servers, on which they are made available on the Internet with the aid of a special web server program. The websites can then be accessed from the other computers with the aid of a client program, generally an Internet browser.
  • the website documents are presented in a platform-independent description language, the so-called Hypertext Markup Language (HTML).
  • HTML Hypertext Markup Language
  • the HTML description language contains language elements for the content and presentation of the documents and for interactions to exchange data between the server and the client and also uses various codes to describe the components and the links between the documents on a website ,
  • websites or the HTML documents can contain self-executable programs, hereinafter also called applets, which e.g. serve to animate objects and perform calculations, or enable the web user to interact with the website via buttons.
  • applets are usually embedded in the HTML documents and are generally executed directly on the client computer.
  • the server transmits the applets so that they are initially stored in a buffer, which is usually a defined area on the hard drive of the client computer, until all instructions of the applet have been received.
  • the instructions of the applet are then carried out, the execution being carried out directly by the client's display program, that is to say the Internet browser, or using an appropriately suitable extension embedded in the browser.
  • the program instructions are transferred in plain text to the client computer.
  • the plain text instructions of the applets are generally generated with the help of an editor in a script language, such as Javascript or J-Script.
  • a platform-independent program language such as Java.
  • the programs are transmitted in bytecode form. This bytecode can run on any computer in a network. fen, which has a corresponding extension, the so-called Java virtual machine. This Java virtual machine then translates the bytecode into code that can be processed by the computer's hardware.
  • a disadvantage of programming the applets embedded in a website using a platform-independent programming language such as Java or a script language such as Javascript is that the program code is almost open to every user. If a visitor calls up a website with embedded applets, these applets are generally completely transferred to the client computer and executed there either directly or with the help of an appropriate extension. The applets are then stored in plain text form when using a script language such as Javascript or when using Java as a compiled file in bytecode form in the buffer of the client computer, so that the program code can be easily traced. This makes it impossible to protect copyright when programming the applet and to secure investments in program development. The provider of the website can only hope that the website provided by him with the embedded applets will only be used and used in accordance with his guidelines.
  • the program codes which are generally available as plain text instructions or in a compiled form on the website, are transmitted from a server system to a client system in order to transmit program codes for web applications before the transmission encrypted.
  • the program codes that are then encrypted and transferred into a buffer of the client system are then decrypted in the client system after the transfer so that an executable program code is generated in the working memory of the client system.
  • the decryption of the program codes transmitted to the client system is carried out in such a way that an executable and thus uncoded program form is only generated in the working memory of the client system.
  • This working memory is non-permanent on a computer
  • the client system is set up such that a key for decrypting the transmitted program codes is already stored in advance.
  • a key for decrypting the transmitted program codes is already stored in advance.
  • This can, for example, be embedded in the browser of the client system or can also be integrated as an additional device in the client system. This enables a particularly simple encryption to be reliably guaranteed, since the key to the Decryption is kept safe and not easily accessible on the client system.
  • Another advantage is to execute the key as part of a digital signature in the client system, which at the same time ensures the identity of the user on the client system and thus indicates his access authorization to the program code on the website.
  • program parts embedded in the website are present in uncoded form on the server system and are only encrypted by the client system before the transmission by the server system when the website requests this. This ensures that the conventional programming languages and programming techniques can continue to be used to set up and program the website.
  • Fig. 1 shows schematically the inventive method for .transmitting program codes for web applications
  • 3b shows a possible sequence for decryption.
  • the Internet is a worldwide network of interconnected computer networks, in which each connected computer can communicate with every other computer.
  • a uniform addressing scheme and data transfer protocol according to the TCP / IP standard are used for data exchange between the computers.
  • a wide variety of data, such as software, text and messages, can be transmitted in a standardized manner via the network.
  • the data to be transmitted are divided into small information units, so-called data packets.
  • these data packets also contain control information for addressing, transmission sequence, flow control and error correction.
  • the data packets can have a fixed or variable length, with a maximum limit being specified.
  • the data packets are then transmitted separately over the Internet and reassembled at the destination to form the original overall information.
  • the World Wide Web hereinafter also referred to as the Web, an interactive information system that enables the exchange of digital documents.
  • the web consists of hypertext systems, the so-called web sites, which usually contain several related web documents.
  • the web documents of the web site are generally located on a special computer, the so-called server, which makes the web site available to the computers connected to the Internet, the so-called clients, with the help of a special web server program.
  • HTML Hypertext Markup Language
  • HTML documents can be created using any text editor because they are stored as ASCII text.
  • the web documents often also have additional program codes which control or execute smaller applications on the website.
  • These applications also referred to below as applets, are often integrated into the HTML text itself, with a script language such as usually used as the program language
  • Javascript or a language such as Java, in which the codes are in compiled form, is used. This ensures that the web applications can be executed independently of the operating system of the respective user.
  • the applets are available as independent files independent of the HTML document, reference being made to these files in the HTML document.
  • the method of processing the program instruction on the client computer is conventionally such that the client computer requests a website from the server and the server then the website with its HTML texts and the embedded program codes on the client.
  • Computer transfers, the program codes are written into a buffer of the client computer.
  • the storage of the program codes in the intermediate memory ensures that all program instructions are available on the client computer before the applets are executed.
  • the buffer memory is also used to make web sites frequently requested on the client computer available again without prior transmission.
  • the Clien computer checks whether the requested website and thus the applets embedded in it are not already available in the cache in their current version. If this is the case, the relevant program codes are sent to the Internet Transfer browser for execution directly from the cache.
  • the client computer runs the web sites with the embedded applets using the Internet browser.
  • the program code is transmitted as plain text, i.e. if it e.g. is programmed with a script language
  • the browser executes the program application directly.
  • the program code is in Java, i.e. is transmitted in the form of a bytecode
  • the browser must have an additional extension, the so-called virtual Java machine, in order to be able to execute the applets.
  • the program code is in plain text form or as a bytecode in the client computer's cache, it can be easily traced and, if necessary, used against the guidelines of the user and his copyright claim.
  • the program code is encrypted before transmission to the client computer. This can happen, as shown in the upper branch in FIG. 1, by the fact that the program codes are already encoded on the server, that is to say, for example, they are built into the HTM documents in encrypted form.
  • the website with the program code is then transferred from the server to the client computer on request by the client computer, the coded program code preferably being temporarily stored on a hard disk of the client computer.
  • This temporarily stored coded program code is then decrypted either by suitable hardware means in the client system and / or corresponding instructions in the client software, the decryption program being designed in such a way that the executable program code is stored in a non-permanent and not freely accessible working memory of the client. Computer is generated. The client computer then works the decrypted Instructions from the working memory and thus executes the desired web application. If - as explained - the program code is already encoded on the server when the client computer is requested, decryption can always be carried out according to a fixed scheme. The key can be stored on the client computer in a suitable form, ie both as software and as independent hardware, or transmitted from the server together with the coded program code.
  • the key can also be part of a digital signature that can be used to determine the identity of the user on the client computer.
  • the digital signature ensures that a document actually comes from the specified sender and that it is not changed on its way through the Internet.
  • the digital signature can e.g. be stored on a chip card on which an electronic key is applied by a certification body. Using the digital signature in combination with the key to decode the program code, the access authorization of the user on the client system who accesses the website with the encrypted program codes and the decryption required to execute the program code on the client computer can then be ensured become.
  • FIG. 2 shows a possible sequence for an encrypted transmission of program codes for web applications between a server and a client. If the client computer requests a website from a server via the corresponding addressing of this website in a first step, the server then checks in a second step whether the website contains program codes to be protected, i.e. in particular whether the HTML documents requested by the client have embedded program applets that are in plain text or byte code form. These program applets enable e.g. the web user to interact with the website on the client computer using buttons.
  • the server If such program codes to be protected, which are to be transmitted on the client computer together with the HTML documents, are determined by the server, the server generates a key for encryption in a third step and then encrypts the program codes to be transmitted. In a fourth step, the encrypted program code is then transferred to the client computer, the server also simultaneously transmitting a decryption program with the corresponding key.
  • the encrypted program code with the decryption program is preferably temporarily stored on the client computer on its hard disk.
  • the client computer then decrypts the encrypted program code on the hard disk using the decryption program and translates the program code back into executable program code that is loaded into the working memory of the client computer. Then, in a sixth step, the client computer processes the program instructions from the main memory.
  • This method according to the invention reliably ensures that the program code of web applications, which is usually in the form of byte code or plain text, so that it can be executed on the client computer independently of the platform, is not transmitted unprotected to the client computer.
  • An open Java or JavaScript program code that can be executed by the interpreter is only present in the client's working memory, which is difficult to access, in the encrypted transmission between server and client according to the invention and can therefore only be obtained with additional knowledge of the
  • variable encryption and decryption by generating a key in the server and transferring it to the client together with the encrypted program code
  • a fixed encryption / decryption method can also be used, in which the program codes already exist before the corresponding website is encrypted on the server before requesting it.
  • the associated key for decrypting can then already be stored on the client computer in a suitable hardware or software form or can also be supplied together with the encrypted program code as in the functional sequence shown.
  • the process for the encryption is shown in more detail in FIG. 3A and the process for the decryption is shown in FIG. 3B.
  • the encryption takes place in the functional sequence explained in connection with FIG. 2 in such a way that the key is generated in a first step.
  • This key is then stored and, at the same time, the program package to be encrypted is encrypted with this key.
  • the key transmitted with the encrypted program code is used for decryption.
  • Key generation and encryption can be carried out by the server as part of the web server program. Alternatively, there is also the option of using independent additional devices for key generation and encryption. Decryption can also be carried out on the client computer as part of the client program, ie the Internet browser. However, there is also the possibility here of providing independent additional devices in the client computer which receive the transmitted key and carry out the decryption.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

Zur Übertragung von Programmcodes für Webanwendungen von einem Server-System auf ein Client-System wird der zu übertragene Programmcode verschlüsselt in eine Zwischenspeicher übertragen und im Client-System dann wieder entschlüsselt, um ein ausführbares Programm in einem Arbeitsspeicher des Client-Systems zu erzeugen.

Description

Beschreibung
Verfahren und Einrichtung zum Übertragen von Programmcodes im Internet
Die Erfindung betrifft ein Verfahren zum Übertragen eines Programmcodes für eine Webanwendung von einem Server-System auf ein Client-System und eine Einrichtung hierfür.
Das Internet stellt einen weltweiten Zusammenschluss von Computer-Netzwerken dar, über die mehrere Millionen Computer miteinander verbunden sind, um einen Datenaustausch zu ermöglichen. Alle Unternetze und Computer des Internets benutzen dabei ein einheitliches Adressierungsschema sowie die TCP/IP- Protokolle zur Datenübertragung. Die Datenübertragung erfolgt in Paketform. Im Internet werden dabei verschiedenste Dienste angeboten, deren wichtigster das World Wide Web ist.
Das World Wide Web - im weiteren kurz auch Web genannt - ist ein interaktives Informationssystem, das den Austausch digitaler Dokumente zwischen Computern ermöglicht. Das Web besteht dabei aus den sogenannten Hypertext-Systemen, auch WebSites genannt. Jede Web-Site bezeichnet eine Stelle im Internet, an der ein oder mehrere zusammengehörige Web-Dokumente zu finden sind. Jeder Web-Site ist dabei eine Adresse im Internet zugewiesen, die sie von allen anderen Web-Sites unterscheidbar macht und somit einen gezielten Zugriff ermöglicht. Die Web-Sites befinden sich im allgemeinen auf einzelnen Computern, den sogenannten Web-Servern, auf denen sie mit Hilfe eines speziellen Web-Server-Programms im Internet bereitgestellt werden. Auf die Web-Sites kann dann von den übrigen Computern mit Hilfe eines Client-Programms, im allgemeinen einen Internet-Browser, zugegriffen werden.
Die Dokumente der Web-Sites werden mit einer plattformunabhängigen Beschreibungssprache, der sogenannten Hypertext Markup Language (HTML) dargestellt. Die HTML-Beschreibungs- spräche enthält dabei Sprachelemente für den Inhalt und die Darstellung der Dokumente sowie für Interaktionen, um Daten zwischen dem Server und dem Client auszutauschen und nutzt darüber hinaus diverse Codes, um die Komponenten und die Ver- knüpfungspunkte der Dokumente auf einer Web-Site untereinander zu beschreiben.
Neben rein inhaltlichen Informationen und Darstellungen können Web-Sites bzw. die HTML-Dokumente selbstausführbare Pro- gramme, im weiteren auch Applets genannt, enthalten, die z.B. dazu dienen, Objekte zu animieren und Berechnungen durchzuführen, oder es dem Web-Benutzer ermöglichen über Schaltflächen mit der Web-Site zu interagieren. Diese Applets sind meist in den HTML-Dokumenten eingebettet und werden im all- gemeinen direkt auf dem Client-Computer ausgeführt. Zur Ausführung auf den Client-Rechner müssen die Applets vom Server auf den Client aufgespielt werden. Der Server überträgt dabei die Applets, so dass diese zunächst in einem Zwischenspeicher, der in der Regel ein festgelegter Bereich auf der Festplatte des Client-Computers ist, abgelegt werden, bis alle Anweisungen des Applets empfangen wurden. Danach werden die Anweisungen des Applets ausgeführt, wobei die Ausführung direkt durch das Darstellungsprogramm des Clients, also dem Internet-Browser, bewerkstelligt oder mit Hilfe einer in den Browser eingebetteten entsprechend geeigneten Erweiterung durchgeführt wird.
Zur Ausführung der Applets direkt durch den Internet-Browser werden die Programmanweisungen in Klartext-Form auf den Client-Rechner übertragen. Die Klartext-Anweisungen der Applets werden im allgemeinen mit Hilfe eines Editors in einer Scriptsprache, wie Javascript oder J-Script erzeugt. Alternativ zu einer Klartext-Programmierung der Applets besteht auch die Möglichkeit, eine plattformunabhängige Pro- grammsprache, wie Java einzusetzen. Bei einer Java-Programmierung werden die Programme in Bytecode-Form übertragen. Dieser Bytecode kann auf jedem Computers eines Netzwerks lau- fen, der über eine entsprechende Erweiterung, die sogenannte virtuelle Java-Maschine, verfügt. Diese virtuelle Java- Maschine übersetzt den Bytecode dann in einen Code, der von der Hardware des Computers verarbeitet werden kann.
Nachteilig an einer Programmierung der in eine Web-Site eingebetteten Applets mit Hilfe einer plattformunabhängigen Programmiersprache wie Java oder einer Scriptsprache wie Javascript ist, dass der Programmcode für jeden Anwender nahezu offen vorliegt. Wird von einem Besucher eine Web-Site mit eingebetteten Applets aufgerufen, werden diese Applets im allgemeinen auf den Client-Computer vollständig übertragen und dort vom Internet-Browser direkt oder mit Hilfe einer entsprechenden Erweiterung ausgeführt. Die Applets sind dann bei Verwendung einer Scriptsprache wie Javascript in Klartext-Form oder bei einem Java-Einsatz als kompilierte Datei in Bytecode-Form im Zwischenspeicher des Client-Rechners abgespeichert, so dass der Programmcode ohne großen Aufwand nachvollzogen werden kann. Dies macht sowohl einen Schutz des Urheberrechts bei der Programmierung des Applets als auch eine Sicherung der Investitionen zur Programmentwicklung unmöglich. Der Anbieter der Web-Site kann also nur hoffen, dass das von ihm zur Verfügung gestellte Web-Site mit den eingebetteten Applets nur entsprechend seinen Richtlinien einge- setzt und verwendet wird.
Aufgabe der vorliegenden Erfindung ist es deshalb, ein Verfahren zum Übertragen von Programmcode für Webanwendungen und eine entsprechende Einrichtung zu schaffen, die die berech- tigten Schutzinteressen des Web-Site-Anbieters bzw. Entwicklers gewährleistet, wobei gleichzeitig die Vorteile einer plattformunabhängigen Programmierung der Webanwendungen erhalten bleiben.
Diese Aufgabe wird durch ein Verfahren gemäß Anspruch 1 und durch eine Einrichtung gemäß Anspruch 12 gelöst. Bevorzugte Weiterbildungen sind in den abhängigen Ansprüchen angegeben. Beim erfindungsgemäßen Verfahren und der zugehörigen Einrichtung werden zum Übertragen von Programmcodes für Webanwendungen von einem Server-System auf ein Client-System die Pro- grammcodes, die im allgemeinen als Klartext-Anweisungen oder in kompilierter Form auf der Web-Site vorliegen, vor der Übertragung verschlüsselt. Die dann verschlüsselt in einen Zwischenspeicher des Client-Systems übertragenen Programmcodes werden im Client-System nach der Übertragung dann wie- der so entschlüsselt, dass im Arbeitsspeicher des Client- Systems ein ausführbarer Programmcode erzeugt wird.
Hierdurch wird gewährleistet, dass die auf das Client-System übertragenen Programmcodes der Webanwendungen dort nicht of- fen und damit ohne großen Aufwand nachvollziehbar vorliegen. Gemäß der Erfindung wird nämlich die Entschlüsselung der auf das Client-System übertragenen Programmcodes so vorgenommen, dass eine lauffähige und damit uncodierte Programmform nur im Arbeitsspeicher des Client-Systems erzeugt wird. Dieser Ar- beitsspeicher ist bei einem Computer als nicht-permanenter
Speicher ausgelegt, auf den die Rechnerzentraleinheit schnell zugegriffen kann, wobei die Daten aber nur so lange gespeichert werden, bis die Stromzufuhr unterbrochen oder das Programm beendet wird. Ohne detaillierte Kenntnis des Client- Systems und dessen Programmierung ist aber ein Nachvollziehen der Programmcodes im Arbeitsspeicher im wesentlichen ausgeschlossen, so dass dem Anwender bzw. Entwickler der Programme ein weitgehender Schutz gegen eine unkontrollierte Weiterverwendung seines Programms gewährt wird.
Gemäß einer bevorzugten Ausführung ist das Client-System so eingerichtet, dass ein Schlüssel zur Entschlüsselung der übertragenen Programmcodes bereits vorab hinterlegt ist. Dieser kann z.B. in den Browser des Client-Systems eingebettet sein oder auch als Zusatzgerät im Client-System integriert werden. Hierdurch lässt sich eine besonders einfache Verschlüsselung zuverlässig gewährleisten, da der Schlüssel zum Entschlüsseln sicher und nicht einfach zugänglich auf dem Client-System verwahrt wird. Ein weiterer Vorzug ist dabei, den Schlüssel als Teil einer digitalen Signatur im Client- System auszuführen, die zugleich die Identität des Benutzers am Client-System sicherstellt und somit seine Zugangsberechtigung zum Programmcode auf der Web-Site angibt.
Alternativ besteht gemäß einer weiteren bevorzugten Ausführungsform jedoch auch die Möglichkeit, den Schlüssel zum Entschlüsseln des codierten Programmcodes zusammen mit diesem vom Server-System auf das Client-System zu übertragen. Diese Verschlüsselungstechnik hat den Vorteil, dass beim Client- System zur Ausführung des erfindungsgemäßen Verfahrens weder hard- noch softwaremäßig zusätzliche Maßnahmen ergriffen wer- den müssen. Alle für die Verschlüsselungstechnik notwendigen Schritte bzw. Einrichtungen können ausschließlich auf dem Server-System vorgesehen und damit zentral eingerichtet werden.
Gemäß einer weiteren bevorzugten Ausführungsform liegen in die Web-Site eingebetteten Programmteile auf dem Server- System uncodiert vor und werden erst auf Anforderung der WebSite durch ein Client-System vor der Übertragung durch das Server-System verschlüsselt. Hierdurch wird gewährleistet, dass zum Aufbau und Programmieren der Web-Site weiterhin die herkömmlichen Programmsprachen und Programmiertechniken eingesetzt werden können.
Die Erfindung wird anhand der beigefügten Zeichnungen näher erläutert. Es zeigen:
Fig. 1 schematisch das erfindungsgemäße Verfahren zum .Übertragen von Programmcodes für Webanwendungen;
Fig. 2 eine mögliche Ausführungsform des erfindungsgemäßen Verfahrens im Detail; Fig. 3a einen möglichen Ablauf für die Verschlüsselung; und
Fig. 3b einen möglichen Ablauf für die Entschlüsselung.
Das Internet stellt ein weltweites Geflecht miteinander verbundener Computer-Netzwerke dar, bei dem jeder angeschlossene Rechner gleichrangig mit jedem anderen Rechner kommunizieren kann. Zum Datenaustausch zwischen den Rechnern werden dabei ein einheitliches Adressierungsschema sowie Datenüber- tragungsprotokoll nach dem TCP/IP-Standard verwendet. Über das Netzwerk können so Daten unterschiedlichster Art, wie Software, Text, Nachrichten standardisiert übermittelt werden. Die zu übertragenden Daten werden zu diesem Zweck in kleine Informationseinheiten, sogenannten Datenpaketen, zer- teilt. Diese Datenpakete enthalten neben Nutzdaten auch Steuerinformationen für die Adressierung, Sendefolge, Flusskontrolle und Fehlerkorrektur. Die Datenpakete können dabei eine feste oder variable Länge haben, wobei eine Höchstgrenze spezifiziert ist. Die Datenpakete werden dann getrennt über das Internet übertragen und am Bestimmungsziel wieder zur ursprünglichen Gesamtinformation zusammengefügt.
Im Internet werden dabei verschiedenste Dienste angeboten, deren wichtigster das World Wide Web, im folgenden auch kurz Web genannt, ist, ein interaktives Informationssystem, das den Austausch digitaler Dokumente ermöglicht. Das Web besteht aus Hypertext-Systemen, den sogenannten Web-Sites, die in der Regel mehrere zusammenhängende Web-Dokumente enthalten. Die Web-Dokumente der Web-Site befinden sich dabei im allgemeinen auf einem speziellen Rechner, dem sogenannten Server, der die Web-Site den ans Internet angeschlossenen Computern, den sogenannten Clients, mit Hilfe eines speziellen Web-Server-Programms zur Verfügung stellt.
Zum Beschreiben des Seiteninhalts und des grafischen Aufbaus der Web-Dokumente, wird als AufZeichnungssprache überwiegend HTML (Hypertext Markup Language) verwendet, eine einfache und plattformunabhängige AufZeichnungssprache. HTML-Dokumente können dabei mittels eines beliebigen Text-Editors erstellt werden, da sie selbst als ASCII-Text hinterlegt sind.
Die Web-Dokumente weisen neben der Text-und-Layout-Beschrei- bung in HTML oft auch noch zusätzliche Programmcodes auf, die kleinere Anwendungen auf der Web-Site kontrollieren oder ausführen. Diese Anwendungen im weiteren auch als Applets bezeichnet, sind oft in den HTML-Text selbst integriert, wobei als Programmsprache üblicherweise eine Scriptsprache wie
Javascript oder eine Sprache wie Java, bei der die Codes im kompilierter Form vorliegen, verwendet wird. Hierdurch wird gewährleistet, dass die Web-Anwendungen unabhängig vom Betriebssystems des jeweiligen Nutzers ausführbar sind. Neben einer Einbettung der Applets direkt in den HTML-Text besteht jedoch auch die Möglichkeit, dass die Applets als eigenständige Dateien unabhängig vom HTML-Dokument vorliegen, wobei im HTML-Dokument auf diese Dateien dann verwiesen wird.
Die Funktionsweise bei der Abarbeitung der Programmanweisung auf dem Client-Rechner erfolgt dabei herkömmlicherweise so, dass der Client-Rechner eine Web-Site vom Server anfordert und der Server daraufhin die Web-Site mit ihrem HTML-Texten und den eingebetteten Programmcodes auf den Client-Rechner überträgt, wobei die Programmcodes in einen Zwischenspeicher des Client-Rechners eingeschrieben werden. Das Einspeichern der Programmcodes in den Zwischenspeicher gewährleistet, dass vor einer Ausführung der Applets alle Programmanweisungen auf dem Client-Rechner vorliegen. Weiterhin wird der Zwischen- Speicher auch dazu verwendet, häufig auf den Client-Rechner angeforderte Web-Sites ohne vorherige Übertragung wieder zur Verfügung zu stellen. Bevor nämlich die Übertragung der WebSite vom Server auf den Client durchgeführt wird, überprüft der Clien -Rechner, ob die angeforderte Web-Site und damit die darin eingebetteten Applets in ihrer aktuellen Version nicht bereits im Zwischenspeicher vorhanden ist. Ist das der Fall, werden die betreffenden Programmcodes dem Internet- Browser zur Ausführung direkt aus dem Zwischenspeicher übergeben.
Der Client-Rechner führt die Web-Sites mit den eingebetteten Applets mit Hilfe des Internet-Browser aus. Wenn der Programmcode als Klartext übertragen wird, also dann wenn er z.B. mit einer Scriptsprache programmiert ist, führt der Browser die Programmanwendung direkt aus. Im Falle das der Programmcode in Java vorliegt, also in Form eines Bytecode übertragen wird, muss der Browser eine zusätzliche Erweiterung, die sogenannte virtuelle Javamaschine aufweisen, um die Applets ausführen zu können. Prinzipiell gilt jedoch, dass dann, wenn der Programmcode im Zwischenspeicher des Client-Rechners in Klartext-Form oder als Bytecode vorliegt, er sich im wesentlichen ohne großen Aufwand nachvollziehen und gegebenenfalls gegen die Richtlinien des Anwenders und dessen Urheberrechtsanspruch einsetzen lässt.
Um zu gewährleisten, dass der Programmcode nur im Sinne des Anwenders und Entwicklers eingesetzt und weiterverwendet wird, wird gemäß der Erfindung - wie in Fig. 1 gezeigt - der Programmcode vor der Übertragung auf den Client-Rechner verschlüsselt. Dies kann einmal, wie am oberen Zweig in Fig. 1 gezeigt, dadurch geschehen, dass die Programmcodes auf dem Server bereits codiert vorliegen, also z.B. verschlüsselt in die HTM -Dokumente eingebaut sind. Die Web-Site mit dem Programmcode wird dann auf Anforderung durch den Client-Rechner vom Server auf den Client-Rechner übertragen, wobei der codierte Programmcode vorzugsweise auf einer Festplatte des Client-Rechners zwischengespeichert wird. Dieser zwischengespeicherte codierte Programmcode wird dann entweder durch geeignete Hardwaremittel im Client-System und/oder entsprechende Anweisungen in der Client-Software entschlüsselt, wobei das Entschlüsselungsprogramm so ausgelegt ist, dass der ausführbare Programmcode in einem nicht-permanenten und nicht frei zugänglichen Arbeitsspeicher des Client-Rechners erzeugt wird. Der Client-Rechner arbeitet dann die entschlüsselten Anweisungen aus dem Arbeitsspeicher ab und führt damit die gewünschte Webanwendung aus . Wenn - wie erläutert - der Programmcode bereits codiert bei Anforderung des Client-Rechners auf dem Server vorliegt, kann die Entschlüsselung immer nach einem festen Schema erfolgen. Der Schlüssel kann dabei auf dem Client-Rechner in geeigneter Form, d.h. sowohl als Software als auch als eigenständige Hardware hinterlegt sein, oder vom Server zusammen mit dem codierten Programmcode übertragen werden .
Der Schlüssel kann dabei auch Teil einer digitalen Signatur sein, mit der sich die Identität des Benutzers am Client- Rechner feststellen lässt. Durch die digitale Signatur wird sichergestellt, dass ein Dokument tatsächlich vom angegebenen Absender stammt und das es auf seinem Weg durch das Internet nicht verändert wird. Die digitale Signatur kann z.B. auf einer Chipkarte gespeichert sein, auf der von einer Zertifizierungsstelle ein elektronischer Schlüssel aufgebracht ist. Mit der digitalen Signatur in Kombination mit dem Schlüssel zum Programmcode decodieren, kann dann zugleich die Zugangsberechtigung des Benutzers am Client-System, der die Web-Site mit den verschlüsselten Programmcodes aufruft, und die erforderliche Entschlüsselung zur Ausführung des Programmcodes auf dem Client-Rechner sichergestellt werden.
Neben einer festen Vorverschlüsselung des Programmcodes auf der Web-Site besteht auch die Möglichkeit einer Verschlüsselung bzw. Entschlüsselung nach einem variablen Schema. Diese Möglichkeit ist als unterer Zweig in Fig. 1 gezeigt. Hier liegt der Programmcode auf dem Server uncodiert vor und wird erst dann, wenn die entsprechende Web-Site von einem Client aufgerufen wird, zur Übertragung auf diesen Client verschlüsselt. Diese Verschlüsselung kann dabei ebenfalls nach einem festen Schlüsselschema erfolgen, das außerdem zur Entschlüsselung auf dem Client voreingespeichert ist. Alternativ besteht auch die Möglichkeit, dass der Server seinen Schlüssel selbst generiert und zusammen mit dem dann ver- schlüsselten Programmcode auf den Client zum Entschlüsseln überträgt .
Fig. 2 zeigt einen möglichen Ablauf für eine verschlüsselte Übertragung von Programmcodes für Webanwendungen zwischen einem Server und einem Client. Wenn der Client-Computer eine Web-Site von einem Server über die entsprechende Adressierung dieser Web-Site in einem ersten Schritt anfordert, prüft der Server dann in einem zweiten Schritt, ob die Web-Site zu schützende Programmcodes enthält, d.h. insbesondere, ob die vom Client angeforderten HTML-Dokumente eingebettete Programm-Applets, die in Klartext- oder Bytecode-Form vorliegen, aufweist. Diese Programm-Applets ermöglichen es z.B. dem Web- Benutzer am Client-Rechner über Schaltflächen mit der Web- Site zu interagieren.
Wenn solche zu schützenden Programmcodes, die auf dem Client- Rechner zusammen mit den HTML-Dokumenten übertragen werden sollen, vom Server ermittelt werden, generiert der Server in einem dritten Schritt einen Schlüssel zur Verschlüsselung und verschlüsselt dann die zu übertragenden Programmcodes. In einem vierten Schritt wird dann der verschlüsselte Programmcode auf den Client-Rechner übertragen, wobei der Server gleichzeitig auch ein Entschlüsselungsprogramm mit dem entsprechen- den Schlüssel mit überträgt. Der verschlüsselte Programmcode mit dem Entschlüsselungsprogramm wird vorzugsweise auf dem Client-Rechner auf dessen Festplatte zwischengespeichert.
In einem fünften Schritt entschlüsselt dann der Client-Rech- ner den auf der Festplatte liegenden verschlüsselten Programmcode mit Hilfe des Entschlüsselungsprogramms und übersetzt dabei den Programmcode wieder in einen ausführbaren Programmcode, der in den Arbeitsspeicher des Client-Rechners geladen wird. Anschließend arbeitet dann in einem sechsten Schritt der Client-Rechner die Programmanweisungen aus dem Arbeitsspeicher ab. Durch dieses erfindungsgemäße Verfahren wird zuverlässig gewährleistet, dass der Programmcode von Webanwendungen, der üblicherweise als Bytecode oder Klartext vorliegt, um plattformunabhängig auf dem Client-Rechner ausgeführt werden zu können, nicht ungeschützt auf den Client-Rechner übertragen wird. Ein für den Interpreter ausführbarer offener Java- oder Javascript-Programmcode liegt nämlich bei der erfindungsgemäßen verschlüsselten Übertragung zwischen Server und Client nur im schwer zugänglichen Arbeitsspeicher des Clients vor und kann deshalb nur mit zusätzlichen Kenntnissen über das
Client-System und dessen Programmierung entgegen den vom Anbieter bzw. Entwickler vorgegebenen Richtlinien weiterverwendet werden.
Anstatt, wie in Figur 2 dargestellt, den Schlüssel zum Entschlüsseln des übertragenen Programmcodes zusammen mit diesem über das Internet zu übertragen, besteht jedoch auch die Möglichkeit, den Schlüssel über einen vom Internet unabhängigen Kanal z.B. über eine Funkstrecke vom Server zum Client zu transportieren. Dies kann, wie dargestellt, gleichzeitig mit der Übertragung der Web-Site und der eingebetteten Applets vom Server auf den Client erfolgen oder unabhängig davon durchgeführt werden.
Alternativ zum vorgenannten Verfahrensablauf kann - wie bereits weiter oben erläutert - statt einer variablen Verschlüsselung und Entschlüsselung durch Generieren eines Schlüssels im Server und dessen Übertragung zusammen mit dem verschlüsselten Programmcode auf den Client auch ein festes Verschlüsselungs-/Entschlüsselungsverfahren verwendet werden, bei dem die Programmcodes bereits vor einer Anforderung der entsprechenden Web-Site auf dem Server verschlüsselt auf diesem vorliegen. Der zugehörige Schlüssel zum Entschlüsseln kann dann auch bereits auf dem Client-Rechner in geeigneter Hard- oder Softwareform hinterlegt sein oder auch wie beim dargestellten Funktionsablauf zusammen mit dem verschlüsselten Programmcode mitgeliefert werden. In Fig. 3A ist nochmals genauer der Ablauf für die Verschlüsselung und in Fig. 3B der Ablauf für die Entschlüsselung dargestellt. Die Verschlüsselung erfolgt dabei bei dem in Zusam- menhang mit Fig. 2 erläuterten Funktionsablauf so, dass in einem ersten Schritt der Schlüssel erzeugt wird. Dieser Schlüssel wird dann gespeichert und gleichzeitig mit diesem Schlüssel das zu verschlüsselnde Programmpaket verschlüsselt. Zur Entschlüsselung wird der mit dem verschlüsselten Pro- grammcode übertragene Schlüssel verwendet. Die Schlüsseler- zeugung und Verschlüsselung können vom Server im Rahmen des Web-Server-Programms ausgeführt werden. Alternativ besteht auch die Möglichkeit, eigenständige Zusatzgeräte für die Schlüsselerzeugung und Verschlüsselung einzusetzen. Auch die Entschlüsselung kann im Client-Rechner im Rahmen des Client- Programms, d.h. des Internet-Browsers, durchgeführt werden. Es besteht jedoch auch hier die Möglichkeit, eigenständige Zusatzgeräte im Client-Rechner vorzusehen, die den übertragenen Schlüssel empfangen und die Entschlüsselung vornehmen.
Die in der vorstehenden Beschreibung, den Ansprüchen und den Zeichnungen offenbarte Merkmale der Erfindung können sowohl einzeln als auch in beliebiger Kombination für die Verwirklichung der Erfindung in ihren verschiedenen Ausgestaltungen wesentlich sein .

Claims

Patentansprüche
1. Verfahren zum Übertragen von Programmcodes für Webanwendungen von einem Server-System auf ein Client-System mit den Schritten:
Verschlüsseln des Programmcodes;
Übertragen des codierten Programmcodes vom Server-System in einen Zwischenspeicher des Client-Systems; und Entschlüsseln des übertragenen Programmcodes, um einen aus- führbaren Programmcode in einem Arbeitsspeicher des Client- Systems zu erzeugen.
2. Verfahren nach Anspruch 1, wobei ein Schlüssel zum Entschlüsseln des übertragenen Programmcodes vor dem Übertragen des verschlüsselten Programmcodes auf dem Client-System hinterlegt wird.
3. Verfahren nach Anspruch 2, wobei der Schlüssel Teil einer digitalen Signatur ist.
4. Verfahren nach Anspruch 1, wobei ein Schlüssel zum Entschlüsseln des verschlüsselten Programmeödes zusammen mit dem verschlüsselten Programmcode vom Server-System zum Client- System übertragen wird.
5. Verfahren nach Anspruch 4, wobei der Schlüssel auf einem vom Internet unabhängigen Kanal vom Server-System zum Client- System übertragen wird.
6. Verfahren nach einem der Ansprüche 1 bis 5, wobei das
Server-System den nicht verschlüsselten Programmcode nach einer Anforderung zur Übertragung der Webanwendung durch das Client-System verschlüsselt.
7. Verfahren nach Anspruch 6, wobei das Server-System den Schlüssel zum Verschlüsseln und Entschlüsseln des Programmcodes selbst erzeugt.
8. Verfahren nach einem der Ansprüche 1 bis 7, wobei der übertragene verschlüsselte Programmcode auf einem Festspeicher des Client-Systems zwischengespeichert wird.
9. Verfahren nach einem der Ansprüche 1 bis 8, wobei der Programmcode in einer Scriptsprache definiert ist .
10. Verfahren nach einem der Ansprüche 1 bis 8, wobei der Programmcode als Bytecode vorliegt.
11. Verfahren nach Anspruch 9 oder 10, wobei der Programmcode in ein HTML-Dokumente eingebettet ist.
12. Einrichtung zum Durchführen eines Verfahrens zum Übertragen eines Programmcodes für eine Webanwendung von einem Server-System zu einem Client-System nach einem der Ansprüche 1 bis 11, mit Mitteln zum Verschlüsseln eines uncodierten Programmcodes im Server-System; und
Mitteln zum Entschlüsseln eines in einen Zwischenspeicher des Client-Systems übertragenen codierten Programmeodes , um in einem Arbeitsspeicher des Client-Systems einen ausführbaren Programmcode zu erzeugen.
13. Einrichtung nach Anspruch 11, wobei die Mittel zum Verschlüsseln zur Einrichtung auf dem Server-System und die Mittel zum Entschlüsseln zur Einrichtung auf dem Client-System ausgelegt sind.
14. Einrichtung nach Anspruch 11, wobei die Mittel zum Verschlüsseln auf dem Server-System und die Mittel zum Entschlüsseln auf dem Client-System vorgesehen sind.
PCT/EP2002/001064 2001-02-05 2002-02-01 Verfahren und einrichtung zum übertragen von programmcodes im internet WO2002071195A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE10105053A DE10105053A1 (de) 2001-02-05 2001-02-05 Verfahren und Einrichtung zum Übertragen von Programmcodes im Internet
DE10105053.4 2001-02-05

Publications (1)

Publication Number Publication Date
WO2002071195A1 true WO2002071195A1 (de) 2002-09-12

Family

ID=7672840

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2002/001064 WO2002071195A1 (de) 2001-02-05 2002-02-01 Verfahren und einrichtung zum übertragen von programmcodes im internet

Country Status (2)

Country Link
DE (1) DE10105053A1 (de)
WO (1) WO2002071195A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AT501255A1 (de) * 2003-06-06 2006-07-15 Siemens Ag Oesterreich Lizenz-abhängige ausführung von programmdateien
DE102004061634A1 (de) * 2004-12-17 2006-06-29 Siemens Ag Verfahren und Vorrichtung zur Verschlüsselung und Ausführung einer Software-Bibliothek

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0875815A2 (de) * 1997-04-30 1998-11-04 Sony Corporation Informationsverarbeitungsvorrichtung und Verfahren und Aufzeichnungsmedium
WO1999041651A2 (en) * 1998-02-13 1999-08-19 National Computer Board, Acting Through Its R & D Division, The Information Technology Institute Method for protecting bytecode
GB2341461A (en) * 1998-09-10 2000-03-15 Ibm Encrypted program component distribution
GB2343022A (en) * 1998-10-19 2000-04-26 Ibm Encrypting of Java methods
WO2000070429A1 (en) * 1999-05-17 2000-11-23 Wave Systems Corp. Public cryptographic control unit and system therefor

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0875815A2 (de) * 1997-04-30 1998-11-04 Sony Corporation Informationsverarbeitungsvorrichtung und Verfahren und Aufzeichnungsmedium
WO1999041651A2 (en) * 1998-02-13 1999-08-19 National Computer Board, Acting Through Its R & D Division, The Information Technology Institute Method for protecting bytecode
GB2341461A (en) * 1998-09-10 2000-03-15 Ibm Encrypted program component distribution
GB2343022A (en) * 1998-10-19 2000-04-26 Ibm Encrypting of Java methods
WO2000070429A1 (en) * 1999-05-17 2000-11-23 Wave Systems Corp. Public cryptographic control unit and system therefor

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
CLINICK A: "Clinick's Clinic on Scripting: Take Five What's New in the Version 5.0 Script Engines", MSDN LIBRARY, 4 November 1998 (1998-11-04), XP002204430, Retrieved from the Internet <URL:http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnclinic/html/CLINICK_IE5.asp> [retrieved on 20020703] *

Also Published As

Publication number Publication date
DE10105053A1 (de) 2002-08-29

Similar Documents

Publication Publication Date Title
DE69832786T2 (de) Vorrichtung und verfahren zur identifizierung von klienten die an netzwer-sites zugreifen
DE60031340T2 (de) Geschützter Zugang durch Netzwerk-Firewalls
DE60207812T2 (de) Verfahren und vorrichtung zum dynamischen zuweisen von benutzungsrechten zu digitalen werken
EP2529529B1 (de) Verfahren zum gesicherten download von verteilten downloadsourcen
EP1628184A1 (de) Verfahren und Computersystem zur Durchführung eines netzwerkgestützten Geschäftsprozesses
DE112011101831T5 (de) Schutz vor websiteübergreifenden Scripting-Attacken
DE19953055C2 (de) Vorrichtung und Verfahren zur geschützten Ausgabe eines elektronischen Dokuments über ein Datenübertragungsnetz
WO2014044507A1 (de) Verfahren zum sicheren bedienen eines feldgerätes
WO2002071195A1 (de) Verfahren und einrichtung zum übertragen von programmcodes im internet
EP1636700A1 (de) Verfahren zum nachladen einer software in den bootsektor eines programmierbaren lesespeicher
EP3528473A1 (de) Verfahren, client-computer und computerprogramm zur ausführung von quellcode an einem client-computer
EP3497606B1 (de) Individuelles verschlüsseln von steuerbefehlen
DE102005046696B4 (de) Verfahren zum Erzeugen von geschütztem Programmcode und Verfahren zum Ausführen von Programmcode eines geschützten Computerprogramms sowie Computerprogrammprodukt
EP4107640B1 (de) Verfahren und systeme zum übertragen von software-artefakten aus einem quellnetzwerk zu einem zielnetzwerk
EP3557341A1 (de) Verfahren und verwaltungseinrichtung zur optimierung eines industriellen prozesses
EP2137943B1 (de) Portable datenträger als web-server
DE10125383B4 (de) Verschlüsselung von Steuerungsprogrammen
EP2184695A1 (de) Verfahren zum Kombinieren von Daten mit einer zur Verarbeitung der Daten vorgesehenen Vorrichtung, korrespondierende Funktionalität zur Ausführung einzelner Schritte des Verfahrens und Computerprogram zur Implementierung des Verfahrens
EP1246391A1 (de) Verfahren und System zur kryptographischen Datenkommunikation mit mehreren Instanzen
WO2006063876A1 (de) Verfahren und vorrichtung zur verschlüsselung und ausführung einer software-bibliothek
DE10028265A1 (de) Vorrichtung und Verfahren zum Entschlüsseln eines verschlüsselten elektronischen Dokuments
EP3122015A1 (de) Verfahren zur darstellung von web-seiten an einem computerarbeitsplatz eines sicherheitskritischen computersystems
DE10059931B4 (de) Verfahren und Vorrichtung zur Datenübertragung und ferngesteuerten Erzeugung von Ausgabedaten
EP2905943B1 (de) Verfahren zur Bereitstellung von externen Kontrolldiensten in einem Netzwerk
CH720073A1 (de) Vorrichtung und verfahren zur bearbeitung eines sicheren elektronischen dokuments

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SD SE SG SI SK SL TJ TM TN TR TT TZ UA UG US UZ VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP