DE10105053A1 - Method and device for transmitting program codes on the Internet - Google Patents
Method and device for transmitting program codes on the InternetInfo
- Publication number
- DE10105053A1 DE10105053A1 DE10105053A DE10105053A DE10105053A1 DE 10105053 A1 DE10105053 A1 DE 10105053A1 DE 10105053 A DE10105053 A DE 10105053A DE 10105053 A DE10105053 A DE 10105053A DE 10105053 A1 DE10105053 A1 DE 10105053A1
- Authority
- DE
- Germany
- Prior art keywords
- program code
- client system
- client
- key
- server system
- Prior art date
- Legal status (The legal status 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 status listed.)
- Ceased
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
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)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
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.The invention relates to a method for transmitting a Program codes for a web application from a server system on a client system and a facility for this.
Das Internet stellt einen weltweiten Zusammenschluss von Com puter-Netzwerken dar, über die mehrere Millionen Computer miteinander verbunden sind, um einen Datenaustausch zu ermög lichen. 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.The Internet represents a worldwide association of Com computer networks over which several million computers are interconnected to enable data exchange union. Use all subnets and computers on the Internet a uniform addressing scheme and the TCP / IP Data transmission protocols. The data transfer takes place in package form. Various services are available on the Internet offered, the most important of which is the World Wide Web.
Das World Wide Web - im weiteren kurz auch Web genannt - ist ein interaktives Informationssystem, das den Austausch digi taler Dokumente zwischen Computern ermöglicht. Das Web be steht dabei aus den sogenannten Hypertext-Systemen, auch Web- Sites genannt. Jede Web-Site bezeichnet eine Stelle im Inter net, an der ein oder mehrere zusammengehörige Web-Dokumente zu finden sind. Jeder Web-Site ist dabei eine Adresse im In ternet zugewiesen, die sie von allen anderen Web-Sites unter scheidbar macht und somit einen gezielten Zugriff ermöglicht. Die Web-Sites befinden sich im allgemeinen auf einzelnen Com putern, den sogenannten Web-Servern, auf denen sie mit Hilfe eines speziellen Web-Server-Programms im Internet bereit gestellt werden. Auf die Web-Sites kann dann von den übrigen Computern mit Hilfe eines Client-Programms, im allgemeinen einen Internet-Browser, zugegriffen werden.The World Wide Web - hereinafter also called the Web - is an interactive information system that enables the digi taler documents between computers. The web be stands out of the so-called hypertext systems, also web Called sites. Each website designates a place in the Inter net, on which one or more related web documents can be found. Each website is an address in the ternet assigned to them from all other websites below makes separable and thus enables targeted access. The web sites are generally located on individual com puters, the so-called web servers, on which they help a special web server program on the Internet be put. The web sites can then be used by the rest Computers using a client program, in general an Internet browser.
Die Dokumente der Web-Sites werden mit einer plattformunab hängigen Beschreibungssprache, der sogenannten Hypertext Markup Language (HTML) dargestellt. Die HTML-Beschreibungssprache 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 untereinan der zu beschreiben.The documents of the websites are platform-independent dependent description language, the so-called hypertext Markup Language (HTML) shown. The HTML description language contains language elements for the content and the Presentation of documents as well as for interactions to data exchange and use between the server and the client in addition, various codes for the components and the ver links between the documents on a website to describe the.
Neben rein inhaltlichen Informationen und Darstellungen kön nen 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 durchzu führen, oder es dem Web-Benutzer ermöglichen über Schalt flä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 Aus fü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 Zwischen speicher, 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.In addition to purely content-related information and representations, NEN websites or the HTML documents self-executable pro grams, also called applets, contain z. B. serve to animate objects and perform calculations lead, or enable the web user via switching to interact with the website. These applets are mostly embedded in the HTML documents and are in space generally run directly on the client computer. To the end The applets must be routed to the client computer from the server be uploaded to the client. The server transmits the applets so these first in an intermediate memory that is usually a specified area on the The client computer's hard drive is to be filed until all instructions of the applet have been received. After that executed the instructions of the applet, the execution directly through the client's display program, i.e. the Internet browser, accomplished or with the help of one in the Browser embedded according to suitable extension is carried out.
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 be steht auch die Möglichkeit, eine plattformunabhängige Pro grammsprache, wie Java einzusetzen. Bei einer Java-Program mierung werden die Programme in Bytecode-Form übertragen. Dieser Bytecode kann auf jedem Computers eines Netzwerks laufen, 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.To execute the applets directly through the Internet browser the program instructions are in plain text on the Transfer client computer. The plain text instructions of the Applets are generally created using an editor in a scripting language, such as Javascript or J-Script. As an alternative to plain text programming of the applets there is also the option of a platform independent pro grammar, how to use Java. With a Java program The programs are transmitted in bytecode form. This bytecode can run on any computer on a network, the one via a corresponding extension, the so-called Java virtual machine. This virtual java The machine then translates the bytecode into a code written by the hardware of the computer can be processed.
Nachteilig an einer Programmierung der in eine Web-Site ein gebetteten Applets mit Hilfe einer plattformunabhängigen Pro grammiersprache wie Java oder einer Scriptsprache wie Java script 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 Klar text-Form oder bei einem Java-Einsatz als kompilierte Datei in Bytecode-Form im Zwischenspeicher des Client-Rechners ab gespeichert, 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 un möglich. Der Anbieter der Web-Site kann also nur hoffen, dass das von ihm zur Verfügung gestellte Web-Site mit den einge betteten Applets nur entsprechend seinen Richtlinien einge setzt und verwendet wird.A disadvantage of programming in a web site embedded applets using a platform-independent pro programming language like Java or a scripting language like Java script is that the program code for almost every user is open. Is used by a visitor using a web site embedded applets are called, these applets are in the generally fully transferred to the client computer and there directly from the Internet browser or with the help of a corresponding extension executed. The applets are then when using a script language such as Javascript in clear text form or, when using Java, as a compiled file in bytecode form in the buffer of the client computer saved so that the program code without much effort can be traced. This makes both protection of the Copyright when programming the applet as well securing investments for program development and possible. The provider of the website can only hope that the website provided by him with the entered embedded applets only according to its guidelines sets and is used.
Aufgabe der vorliegenden Erfindung ist es deshalb, ein Ver fahren zum Übertragen von Programmcode für Webanwendungen und eine entsprechende Einrichtung zu schaffen, die die berech tigten Schutzinteressen des Web-Site-Anbieters bzw. Ent wicklers gewährleistet, wobei gleichzeitig die Vorteile einer plattformunabhängigen Programmierung der Webanwendungen er halten bleiben.The object of the present invention is therefore a Ver drive to transfer program code for web applications and to create a corresponding facility that the calc Protected interests of the website provider or Ent guaranteed, while taking advantage of a platform-independent programming of web applications hold on.
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. This object is achieved by a method according to claim 1 and solved by a device according to claim 12. preferred Developments are specified in the dependent claims.
Beim erfindungsgemäßen Verfahren und der zugehörigen Einrich tung werden zum Übertragen von Programmcodes für Webanwen dungen 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 Programm codes 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.In the method according to the invention and the associated device device for transferring program codes for web applications Pro from a server system to a client system gram codes, generally as plain text instructions or available in a compiled form on the website before Transfer encrypted. Then encrypted into one Buffer of the program transferred to the client system Codes are then like in the client system after transmission which decrypts in such a way that Systems an executable program code is generated.
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 gespei chert werden, bis die Stromzufuhr unterbrochen oder das Pro gramm beendet wird. Ohne detaillierte Kenntnis des Client- Systems und dessen Programmierung ist aber ein Nachvollziehen der Programmcodes im Arbeitsspeicher im wesentlichen ausge schlossen, so dass dem Anwender bzw. Entwickler der Programme ein weitgehender Schutz gegen eine unkontrollierte Weiter verwendung seines Programms gewährt wird.This ensures that the client system transmitted program codes of the web applications are not there fen and thus available easily understandable. According to the invention, the decryption is based on program code transmitted to the client system in such a way that an executable and thus uncoded program form is only available in RAM of the client system is generated. This ar memory is non-permanent in a computer Memory designed for the computer central unit quickly can be accessed, but the data is only saved as long be saved until the power supply is interrupted or the Pro gram is ended. Without detailed knowledge of the client Systems and its programming is an understanding the program codes in the main memory essentially closed so that the user or developer of the programs extensive protection against uncontrolled continuation use of his program is granted.
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. Die ser 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 Ver schlü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 Zugangsberech tigung zum Programmcode auf der Web-Site angibt.According to a preferred embodiment, the client system is like this set up a key to decrypt the transferred program codes is already stored in advance. the ser can z. B. embedded in the browser of the client system be or integrated as an additional device in the client system become. This allows a particularly simple Ver Ensure encryption reliably because the key to Decrypt safely and not easily accessible on the Client system is kept. Another advantage is the key as part of a digital signature in the client System run, which is also the identity of the user on the client system and thus its access calculation program code on the website.
Alternativ besteht gemäß einer weiteren bevorzugten Aus fü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 wer den.Alternatively, according to a further preferred Aus form of management but also the possibility of the key to Decrypt the encoded program code together with this transfer from the server system to the client system. This Encryption technology has the advantage that the client System for executing the method according to the invention neither Additional measures are taken in terms of hardware and software have to. All necessary for the encryption technology Steps or facilities can only be used on the Server system provided and thus set up centrally the.
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 Web- Site 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 ein gesetzt werden können.According to a further preferred embodiment, in the web site embedded program parts on the server System uncoded and are only requested by the web Site through a client system before transmission through the Server system encrypted. This ensures that continue to build and program the site conventional programming languages and programming techniques can be placed.
Die Erfindung wird anhand der beigefügten Zeichnungen näher erläutert. Es zeigen:The invention will become more apparent from the accompanying drawings explained. Show it:
Fig. 1 schematisch das erfindungsgemäße Verfahren zum Übertragen von Programmcodes für Webanwendungen; Fig. 1 is a schematic method of transferring program codes for Web applications according to the invention;
Fig. 2 eine mögliche Ausführungsform des erfindungsgemäßen Verfahrens im Detail; Fig. 2 shows a possible embodiment of the method according to the invention in detail;
Fig. 3a einen möglichen Ablauf für die Verschlüsselung; und FIG. 3a shows a possible sequence for encryption; and
Fig. 3b einen möglichen Ablauf für die Entschlüsselung. FIG. 3b shows a possible sequence for decryption.
Das Internet stellt ein weltweites Geflecht miteinander ver bundener 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 wer den. Die zu übertragenden Daten werden zu diesem Zweck in kleine Informationseinheiten, sogenannten Datenpaketen, zer teilt. Diese Datenpakete enthalten neben Nutzdaten auch Steu erinformationen für die Adressierung, Sendefolge, Fluss kontrolle 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 ur sprünglichen Gesamtinformation zusammengefügt.The Internet blocks a worldwide network connected computer networks, where everyone is connected Communicate computers equally with any other computer can. For data exchange between the computers a uniform addressing scheme and data transfer protocol used according to the TCP / IP standard. about the network can use data of all kinds Software, text, messages are transmitted in a standardized way the. For this purpose, the data to be transferred are stored in small information units, so-called data packets, zer Splits. In addition to user data, these data packets also contain tax Information for addressing, transmission sequence, flow control and error correction. The data packets can have a fixed or variable length, with a maximum is specified. The data packets are then separated over broadcast the internet and go back to the original destination overall information put together.
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 so genannten Clients, mit Hilfe eines speziellen Web-Server-Pro gramms zur Verfügung stellt.Various services are offered on the Internet, the most important of which is the World Wide Web, hereinafter also briefly Web, is an interactive information system that enables the exchange of digital documents. The web exists from hypertext systems, the so-called web sites, in the Usually contain several related web documents. The Web documents of the website are generally found on a special computer, the so-called server, which the Web site for computers connected to the Internet, so mentioned clients, with the help of a special web server pro provides gramms.
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.To describe the page content and the graphic structure of web documents, is predominantly used as the recording language HTML (Hypertext Markup Language) is used, a simple and platform-independent recording language. HTML documents can be created using any text editor because they are stored as ASCII text.
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 aus führen. Diese Anwendungen im weiteren auch als Applets be zeichnet, 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 Be triebssystems 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än dige Dateien unabhängig vom HTML-Dokument vorliegen, wobei im HTML-Dokument auf diese Dateien dann verwiesen wird.The web documents show next to the text and layout description in HTML often include additional program codes that control or turn off smaller applications on the website to lead. These applications are also referred to as applets are often integrated into the HTML text itself, whereby as a program language usually a script language like Javascript or a language like Java, in which the codes in compiled form are used. This will ensures that the web applications regardless of loading drive system of the respective user are executable. Next there is an embedding of the applets directly in the HTML text but also the possibility that the applets stand alone files are available regardless of the HTML document, whereby in HTML document is then referenced to these files.
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 Web- Site vom Server auf den Client durchgeführt wird, überprüft der Client-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 über geben.How it works when processing the program instruction on the client computer, conventionally, 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 in a buffer of the client computer. Saving the program codes in the buffer ensures that open all program instructions before executing the applets available to the client computer. Furthermore, the in-between memory is also often used on the client machine requested web sites without prior transmission To make available. Before the transfer of the web Site from server to client is checked the client machine whether the requested website and thus the current version of the applets embedded in it does not already exist in the buffer. Is that the Case, the relevant program codes are sent to the Internet Browser for execution directly from the cache via give.
Der Client-Rechner führt die Web-Sites mit den eingebetteten Applets mit Hilfe des Internet-Browser aus. Wenn der Pro grammcode 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 Erwei terung, 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.The client computer runs the web sites with the embedded ones Applets using the internet browser. If the pro Gram code is transmitted as plain text, i.e. when it z. B. is programmed with a scripting language Browser the program application directly. In the case of that Program code is available in Java, i.e. in the form of a byte code is transferred, the browser needs an additional exp the so-called virtual Java machine to be able to run the applets. In principle, however, that if the program code in the cache of the Client computer in plain text form or as byte code, he can understand it essentially without much effort and possibly against the guidelines of the user and whose copyright claim can be used.
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 ver schlü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 HTML-Dokumente eingebaut sind. Die Web-Site mit dem Pro grammcode 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 zwischen gespeicherte codierte Programmcode wird dann entweder durch geeignete Hardwaremittel im Client-System und/oder ent sprechende 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 Pro grammcode 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 Soft ware als auch als eigenständige Hardware hinterlegt sein, oder vom Server zusammen mit dem codierten Programmcode über tragen werden.In order to ensure that the program code is used and used only in the sense of the user and developer, according to the invention - as shown in FIG. 1 - the program code is encrypted before transmission to the client computer. This can be done once, as shown in the upper branch in FIG. 1, by the program codes already being encoded on the server, that is to say, e.g. B. are encoded in the HTML documents. 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 buffered on a hard drive of the client computer. This coded program code stored between 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 processes the decrypted instructions from the main memory and thus executes the desired web application. If - as explained - the program code is already encoded on the server when the client computer requests it, the 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 can be transmitted by the server together with the coded program code.
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 ei ner Chipkarte gespeichert sein, auf der von einer Zertifi zierungsstelle ein elektronischer Schlüssel aufgebracht ist. Mit der digitalen Signatur in Kombination mit dem Schlüssel zum Programmcode decodieren, kann dann zugleich die Zugangs berechtigung des Benutzers am Client-System, der die Web-Site mit den verschlüsselten Programmcodes aufruft, und die erfor derliche Entschlüsselung zur Ausführung des Programmcodes auf dem Client-Rechner sichergestellt werden.The key can also be part of a digital signature with which the identity of the user on the client Calculator can be determined. Through the digital signature ensures that a document is actually from the specified Sender originates and that it is on its way through the internet is not changed. The digital signature can e.g. B. on egg ner chip card can be stored on a certificate ornamental point an electronic key is applied. With the digital signature in combination with the key to decode the program code can then access at the same time authorization of the user on the client system that owns the website with the encrypted program codes, and the requ decryption to execute the program code the client computer can be ensured.
Neben einer festen Vorverschlüsselung des Programmcodes auf der Web-Site besteht auch die Möglichkeit einer Verschlüs selung 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. Alter nativ besteht auch die Möglichkeit, dass der Server seinen Schlüssel selbst generiert und zusammen mit dem dann verschlüsselten Programmcode auf den Client zum Entschlüsseln überträgt.In addition to a fixed pre-encryption of the program code on the website, there is also the possibility of encryption or decryption according to a variable scheme. This possibility is shown as the lower branch in FIG. 1. Here the program code is uncoded on the server and is only encrypted for transmission to this client when the corresponding website is called up by a client. This encryption can also be carried out according to a fixed key scheme, which is also pre-stored on the client for decryption. Alternatively, there is also the possibility that the server generates its key itself and transfers it together with the then encrypted program code to the client for decryption.
Fig. 2 zeigt einen möglichen Ablauf für eine verschlüsselte Übertragung von Programmcodes für Webanwendungen zwischen ei nem 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 Pro gramm-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. 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, ie in particular whether the HTML documents requested by the client have embedded program applets which are in plain text or byte code form. These program applets allow e.g. B. the web user on the client computer to interact with buttons on the website.
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 ei nem vierten Schritt wird dann der verschlüsselte Programmcode auf den Client-Rechner übertragen, wobei der Server gleich zeitig 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.If such program codes to be protected that are on the client Calculator can be transferred together with the HTML documents should be determined by the server, the server generates in a third step a key for encryption and then encrypts the program codes to be transmitted. In egg The fourth step is the encrypted program code transferred to the client computer, the server being the same a decryption program with the corresponding transmits the key. The encrypted program code with the decryption program is preferably on the Client computer cached on its hard drive.
In einem fünften Schritt entschlüsselt dann der Client-Rech ner den auf der Festplatte liegenden verschlüsselten Pro grammcode mit Hilfe des Entschlüsselungsprogramms und über setzt 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. In a fifth step, the client computer decrypts ner the encrypted pro on the hard disk gram code using the decryption program and over puts the program code back into an executable Program code that is in the working memory of the client computer is loaded. Then then works in a sixth Step the client computer the program instructions from the Memory.
Durch dieses erfindungsgemäße Verfahren wird zuverlässig ge währleistet, dass der Programmcode von Webanwendungen, der üblicherweise als Bytecode oder Klartext vorliegt, um platt formunabhä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 erfindungsge mäß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 An bieter bzw. Entwickler vorgegebenen Richtlinien weiterver wendet werden.This inventive method is reliable ge ensures that the code of web applications that usually in the form of bytecode or plain text in order to get flat independent of the form to be executed on the client computer can not be transferred to the client computer without protection becomes. An open Java or executable for the interpreter Javascript program code lies namely with the fiction encrypted transmission between server and client only in the hard-to-access RAM of the client and can therefore only with additional knowledge of the Client system and its programming contrary to that of the customer provider or developer be applied.
Anstatt, wie in Fig. 2 dargestellt, den Schlüssel zum Ent schlüsseln des übertragenen Programmcodes zusammen mit diesem über das Internet zu übertragen, besteht jedoch auch die Mög lichkeit, 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.Instead of, as shown in Fig. 2, the key to decrypt the transmitted program code together with this to transmit over the Internet, but there is also the possibility of the key over an independent of the Internet channel z. B. to be transported over a radio link from the server to the client. As shown, this can take place simultaneously with the transfer of the website and the embedded applets from the server to the client or can be carried out independently of this.
Alternativ zum vorgenannten Verfahrensablauf kann - wie be reits weiter oben erläutert - statt einer variablen Ver schlü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 die sem 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üssel ten Programmcode mitgeliefert werden. As an alternative to the aforementioned procedure, as can be already explained above - instead of a variable Ver encryption and decryption by generating one Key in the server and its transmission together with the encrypted program code on the client also a fixed Encryption / decryption methods are used in which the program codes before a request from corresponding website on the server is encrypted on the sem present. The corresponding key for decrypting can then already be used on the client computer in a suitable manner Be stored in hardware or software form or as with Functional sequence shown together with the encryption program code.
In Fig. 3A ist nochmals genauer der Ablauf für die Verschlüs selung und in Fig. 3B der Ablauf für die Entschlüsselung dar gestellt. 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 übertrage nen Schlüssel empfangen und die Entschlüsselung vornehmen.In Fig. 3A, the process for encryption is again more precise and in Fig. 3B the process for decryption is provided. The encryption takes place in the functional sequence explained in conjunction 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. The 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 in the client computer as part of the client program, ie the Internet browser. However, it is also possible to provide independent additional devices in the client computer that receive the transmitted key and perform the decryption.
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 Verwirk lichung der Erfindung in ihren verschiedenen Ausgestaltungen wesentlich sein.The in the above description, the claims and the Features of the invention disclosed in drawings may be both individually as well as in any combination for the forfeiture Lichung the invention in its various configurations be essential.
Claims (14)
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.1. A method for transferring program codes for web applications from a server system to a client system with the steps:
Encrypting the program code;
Transferring the coded program code from the server system into a buffer of the client system; and
Decrypt the transmitted program code in order to generate executable program code in a working memory of the client system.
Mitteln zum Verschlüsseln eines uncodierten Programmcodes im Server-System; und
Mitteln zum Entschlüsseln eines in einen Zwischenspeicher des Client-Systems übertragenen codierten Programmcodes, um in einem Arbeitsspeicher des Client-Systems einen ausführbaren Programmcode zu erzeugen.12. A device for performing a method for transmitting a program code for a web application from a server system to a client system according to one of claims 1 to 11, with
Means for encrypting an uncoded program code in the server system; and
Means for decrypting an encoded program code transferred to a buffer of the client system in order to generate an executable program code in a working memory of the client system.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10105053A DE10105053A1 (en) | 2001-02-05 | 2001-02-05 | Method and device for transmitting program codes on the Internet |
PCT/EP2002/001064 WO2002071195A1 (en) | 2001-02-05 | 2002-02-01 | Method and device for transmitting programme codes via the internet |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10105053A DE10105053A1 (en) | 2001-02-05 | 2001-02-05 | Method and device for transmitting program codes on the Internet |
Publications (1)
Publication Number | Publication Date |
---|---|
DE10105053A1 true DE10105053A1 (en) | 2002-08-29 |
Family
ID=7672840
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE10105053A Ceased DE10105053A1 (en) | 2001-02-05 | 2001-02-05 | Method and device for transmitting program codes on the Internet |
Country Status (2)
Country | Link |
---|---|
DE (1) | DE10105053A1 (en) |
WO (1) | WO2002071195A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006063876A1 (en) * | 2004-12-17 | 2006-06-22 | Siemens Aktiengesellschaft | Method and device for encoding and for carrying out a software library |
AT501255A1 (en) * | 2003-06-06 | 2006-07-15 | Siemens Ag Oesterreich | LICENSE-DEPENDENT EXECUTION OF PROGRAM FILES |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10301772A (en) * | 1997-04-30 | 1998-11-13 | Sony Corp | Information processor and method therefor and recording medium |
AU6645398A (en) * | 1998-02-13 | 1999-08-30 | National Computer Board | Method for protecting bytecode |
GB2341461B (en) * | 1998-09-10 | 2003-03-12 | Ibm | Program component distribution |
GB2343022B (en) * | 1998-10-19 | 2003-01-08 | Ibm | Encrypting of java methods |
US6449720B1 (en) * | 1999-05-17 | 2002-09-10 | Wave Systems Corp. | Public cryptographic control unit and system therefor |
-
2001
- 2001-02-05 DE DE10105053A patent/DE10105053A1/en not_active Ceased
-
2002
- 2002-02-01 WO PCT/EP2002/001064 patent/WO2002071195A1/en not_active Application Discontinuation
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AT501255A1 (en) * | 2003-06-06 | 2006-07-15 | Siemens Ag Oesterreich | LICENSE-DEPENDENT EXECUTION OF PROGRAM FILES |
WO2006063876A1 (en) * | 2004-12-17 | 2006-06-22 | Siemens Aktiengesellschaft | Method and device for encoding and for carrying out a software library |
Also Published As
Publication number | Publication date |
---|---|
WO2002071195A1 (en) | 2002-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2529529B1 (en) | Method for securely downloading from distributed download sources | |
DE102004036976A1 (en) | Method for generating Internet pages, associated computer program and computer system | |
DE19953055C2 (en) | Device and method for the protected output of an electronic document via a data transmission network | |
DE10196978T5 (en) | System and method for inserting and integrating a flowing video content into a digital medium | |
DE102018128502A1 (en) | Method and device for operating and controlling a machine system using a graphic development interface and creating a fieldbus configuration | |
DE10105053A1 (en) | Method and device for transmitting program codes on the Internet | |
EP1636700A1 (en) | Method for booting up a software in the boot sector of a programmable read-only memory | |
DE102018103529A1 (en) | Method and client computer for executing source code on a client computer | |
EP3912305A1 (en) | Method for securely transferring a file | |
DE102005046696B4 (en) | A method for generating protected program code and method for executing program code of a protected computer program and computer program product | |
EP2130337B1 (en) | Method and system for providing an rel token | |
EP3497606B1 (en) | Individual encryption of control commands | |
EP3557341A1 (en) | Method and administration device for optimizing an industrial process | |
EP2378422A1 (en) | System and method for transport of data | |
EP3896590A1 (en) | Method and systems for transferring software artefacts from a source network to a destination network | |
EP2184695A1 (en) | Method of combining data with a device to be used for processing data, corresponding functionality to execute the individual steps in the procedure and computer program to implement the procedure | |
EP2863605B1 (en) | Mobile end device system with safety operation system | |
DE10028265A1 (en) | Decoding of an encoded document transmission received over the Internet | |
WO2006063876A1 (en) | Method and device for encoding and for carrying out a software library | |
EP1246391A1 (en) | Method and system for cryptographic data communication with a plurality of instances | |
EP1318451B1 (en) | Method to execute a program on a computer | |
CH720073A1 (en) | DEVICE AND METHOD FOR PROCESSING A SECURE ELECTRONIC DOCUMENT | |
DE102020133065A1 (en) | Interactive confirmation platform for conditionally dependent relations | |
DE102014114222A1 (en) | Method for encrypting source user data | |
WO2022200027A1 (en) | Providing data to be protected in a secured execution environment of a data processing system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8127 | New person/name/address of the applicant |
Owner name: HMD-SOFTWARE-AKTIENGESELLSCHAFT, 82346 ANDECHS, DE Owner name: RUSS, PETER, 82229 SEEFELD, DE |
|
8131 | Rejection |