WO2004070610A2 - Method for installing a plug-in program - Google Patents

Method for installing a plug-in program Download PDF

Info

Publication number
WO2004070610A2
WO2004070610A2 PCT/EP2004/001120 EP2004001120W WO2004070610A2 WO 2004070610 A2 WO2004070610 A2 WO 2004070610A2 EP 2004001120 W EP2004001120 W EP 2004001120W WO 2004070610 A2 WO2004070610 A2 WO 2004070610A2
Authority
WO
WIPO (PCT)
Prior art keywords
program
plug
key
data carrier
identifier
Prior art date
Application number
PCT/EP2004/001120
Other languages
German (de)
French (fr)
Other versions
WO2004070610A3 (en
Inventor
Rolf Demitz
Klaus Geissler
Ernst LÜTHE
Wolfgang Maier-Hinze
Original Assignee
Siemens Aktiengesellschaft
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 Siemens Aktiengesellschaft filed Critical Siemens Aktiengesellschaft
Priority to EP04708745A priority Critical patent/EP1597671A2/en
Publication of WO2004070610A2 publication Critical patent/WO2004070610A2/en
Publication of WO2004070610A3 publication Critical patent/WO2004070610A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment

Definitions

  • the present invention relates to a method for installing a plug-in program, a data carrier with a plug-in program and an automation system.
  • An open system generally consists of at least one basic software, the interfaces of which are disclosed to third-party manufacturers, so that third-party manufacturers can use interoperable plug-ins for the basic software can create.
  • Such open system concepts are used in particular in the field of automation technology to implement open control architectures based on hardware and software components from various manufacturers.
  • An example of a corresponding basic software is OpenCNC (http://www.mdsi2.com/deutsch/gerbrochure.html).
  • SIMATIC iMap (http: // www.siemens.de/cba/products/html__00/imap.html) is used for the plant-wide and cross-manufacturer merging of distributed applications.
  • Previously created software components are imported into SIMATIC iMap and stored in a library.
  • the components for all PROFInet-compatible devices can be integrated as library elements via the disclosed interface of SIMATIC iMap.
  • the software protection concepts known per se can be used for software protection of the basic software of open systems and of the plug-in programs for the basic software. If different hardware and / or software-based protection concepts are used by the various software manufacturers, conflicts can arise between the individual protection concepts.
  • the software protection concepts are not compatible with each other, so that sensible combinations of components cannot be implemented because of such incompatibilities. Even if the individual protection concepts are compatible with one another, the combination of the various manufacturer-specific software protection concepts can lead to difficult-to-handle and user-unfriendly systems, which are also limited in their flexibility. It is generally not possible for the various software manufacturers to agree on a uniform software protection concept to avoid these disadvantages, since the protection system of the manufacturer of the Basic software would have to be disclosed to third-party manufacturers.
  • the invention is therefore based on the object of providing an improved method for installing a plug-in program and a data carrier with such a plug-in program and an automation system with a device on which the plug-in program can be installed ,
  • this is intended to create a software protection concept which avoids the disadvantages of the prior art.
  • the software protection according to the invention is based on a combination of a device identifier and a manufacturer identifier.
  • a specific device on which the use of the plug-in program is authorized is clearly identified via the device identifier.
  • the so-called media access control (MAC) address of a device can be used as such a device identifier.
  • MAC media access control
  • This device identifier is communicated to the software manufacturer of the plug-in program by the user, for example.
  • the manufacturer then generates a key from this device identifier and its manufacturer identifier.
  • This key is stored together with the plug-in program on a data medium, such as. B. a CD-ROM, stored.
  • the installation of the plug-in program is then carried out, for example, as follows: First, the device identifier of the device on which the plug-in program is to be installed is queried. Then via a user interface the manufacturer ID of the manufacturer of the plug-in program to be installed is requested.
  • a key is in turn formed from the device identifier and the manufacturer identifier using the same encryption method.
  • the key previously created by the manufacturer and stored on the data carrier is then compared with the key generated by the user during installation. If the two keys match, the transmission of the plug-in program to the device is enabled so that it can be used there in connection with basic software.
  • the basic software of the open system can be protected by a proprietary protection concept from the manufacturer of the basic software. It is not necessary to disclose this proprietary protection concept of the basic software, since this mechanism is only used to protect the basic software.
  • the manufacturer of the basic software offers software support, for example in the form of a so-called wizard, in order to offer third-party manufacturers a uniform, convenient software protection concept to protect their plug-in software.
  • software support can be part of a development kit. This avoids incompatibilities between different software protection concepts from different third-party manufacturers, since all software components are protected with the same mechanism and the basic software ensures that this protection concept is compatible with that of the basic software.
  • the device on which the plug-in program is installed to be a so-called intelligent camera.
  • an intelligent camera has an image processing unit with various image processing methods for extracting image features.
  • Such intelligent cameras and image processing programs are known per se from the prior art (compare the product commission from Siemens AG, http: // www. Ad. Siemens. De / machine vision / html 00 / area / area / provis .htm ).
  • the program version Provision V2.1 supports an open interface for the integration of self-created plug-in test elements, which can be used just like all standard test elements. In this way, the test program can be conveniently configured regardless of the standard range of functions.
  • test elements can easily be created in the programming language C ++ and used in commission. This allows the user to combine the convenience of project planning with commission with the flexibility of high-level language programming. Many SIMATIC Machine Vision partner companies have already developed such plug-in test elements.
  • the present invention thus makes it possible in a convenient manner, for. B. to provide another image processing method for the image processing program as a plug-in, the authorized use of the plug-in program is guaranteed by the software protection concept according to the invention.
  • the device is preferably connected to an external computer, in particular a conventional personal computer.
  • This connection can be made via a network connection or a bus connection of the
  • Automation system are manufactured, for. B. via a fieldbus or Profibus.
  • a separate ⁇ tes cable or wireless only for the purpose of installation between the computer and the device a local connection.
  • the device identifier in particular the MAC address of the device, is queried via this connection and / or the plug-in program is transmitted via this connection.
  • a so-called hash key is formed from the device identifier and the manufacturer identifier in order to carry out a key transformation.
  • a hash function is used to form this hash key transformation.
  • B. is specified by the development kit for the plug-in program.
  • a key is formed from the device identifier and the manufacturer identifier using a cyclic redundancy check (CRC) method.
  • CRC cyclic redundancy check
  • the CRC method is a common method for error detection in digital signal transmission.
  • a message chain is divided using a keyword.
  • a keyword is also called a generator polynomial.
  • the key word is known to both the sender and the recipient.
  • the remainder of the division forms the so-called checkword, which is used to check that the message transmission is error-free.
  • a CRC method is known for example from US 4,283,787.
  • this CRC method which is used per se from the prior art for error detection in digital message transmission, is used to implement a software protection concept.
  • the device identifier is linked to the manufacturer identifier to form a string.
  • This concatenation is then divided by a keyword. The remainder of the division serves as the key.
  • This method is used by the manufacturer to generate the key that is stored on the data carrier.
  • the same procedure is also carried out by the user with the same keyword in order to create a checkword from the device identifier queried by the device and that via the
  • FIG. 1 shows a flow chart for creating a data carrier according to the invention
  • FIG. 2 shows a flowchart for generating a key for storage on the data carrier
  • FIG. 3 shows a flow diagram of an installation of the plug-in on a device
  • Figure 4 is a block diagram of an automation system with an intelligent camera.
  • FIG. 1 shows the steps for creating a data carrier with a plug-in for basic software and a software protection mechanism.
  • the plug-in program is created. This can be done within a development environment with the help of a so-called development kit, which is made available by the manufacturer of the basic software to the third-party manufacturer of the plug-in.
  • This development kit includes a plug-in wizard with an encryption process. This encryption method is preferably only passed on as a binary code, to ensure software protection of third-party plug-in components.
  • step 100 After programming the plug-in program in step 100, the encryption process of the plug-in wizard is started in step 102.
  • step 102 an input window appears with the request to enter the third-party identification.
  • a further input window appears in step 104 with the prompt for a unique device identifier of the device authorized to use the plug-in.
  • This device identifier is preferably the MAC address of the authorized device. This is communicated to the third party manufacturer by the user. The third-party manufacturer enters this MAC address in the input window.
  • step 106 the MAC address and the manufacturer's identification are then encrypted by means of a key transformation of the encryption method of the plug-in wizard.
  • step 108 the plug-in program is stored on a data carrier with the key generated in step 106.
  • FIG. 2 shows an example for the implementation of an encryption method in step 106.
  • a chain is formed in step 200 from the MAC address and the third-party identification.
  • this concatenation is divided using a keyword.
  • the keyword is secret and part of the encryption process of the plug-in wizard.
  • This key word is a so-called generator polynomial, as is known per se from CRC methods.
  • the remainder of the division of the chaining by the generator polynomial in step 202 is the result of the key transformation, ie the so-called checkword.
  • This is output in step 204 for storage on the data carrier.
  • FIG. 3 shows the procedure for installing the plug-in program on a device.
  • the data carrier is inserted into a corresponding reading device of a personal computer.
  • the data carrier e.g. B. over an Internet connection to the disk, for. B. the hard drive of a third-party server can be accessed.
  • step 302 the set-up program for installing the plug-in program is started.
  • a connection is then established in step 304 between the personal computer and the device on which the plug-in is to be installed.
  • step 306 the MAC address is requested from the device and transmitted via the connection to the personal computer.
  • step 308 an input window appears on the screen of the personal computer, asking for the third-party identification of the plug-in to be installed. This third-party identification is entered by the user, for example, on the keyboard of the personal computer.
  • step 310 the MAC address queried by the device in step 306 and the third-party identification entered in step 308 are then encrypted.
  • the encryption method used in step 310 is the same as the encryption method in step 106 (see FIG. 1).
  • step 312 it is checked whether that in step 108
  • the key stored on the data carrier is identical to the key generated in step 310. If this is not the case, a corresponding message for the user is output in step 314 via the user interface. From there, the sequence control goes back to step 308 in order to grant the user a renewed input attempt for the correct third-party identification.
  • step 312 If it is determined in step 312 that the keys are indeed identical, the plug-in program is transferred from the data carrier to the device in step 316, so that the plug-in program in the device in connection with the basic software can be used.
  • FIG. 4 shows a block diagram of an automation system.
  • the automation system has an intelligent camera 400 with a CCD camera module 402 for the delivery of image data 404.
  • the camera module 402 is connected to an image processing unit 406, which is integrated in the intelligent camera 400.
  • An image processing program 408 is installed in the image processing unit 406.
  • the image processing program 408 is basic software that is supplied by the manufacturer of the intelligent camera 400.
  • the image processing methods 410, 412, ... for common image processing applications are already included in the scope of this basic software.
  • the image processing method 410 is used to recognize a bar code.
  • the Image processing method 412 is used, for example, to recognize a fill level and to compare the detected fill level with a desired fill level.
  • the image processing unit 406 outputs image features 414 via an interface 416, e.g. B. to a network 418 of the automation system, so that the image features 414 can be transmitted to an automation component 420.
  • the image features 414 are, for example, the recognized bar code.
  • the image processing method 412 it is the information as to whether the detected fill level is in a target range or whether
  • the automation component 420 can initiate a corresponding readjustment.
  • the intelligent camera 400 also has a memory 422 in which the MAC address is stored as the device identifier of the intelligent camera 400.
  • a data carrier 424 is supplied by the third-party manufacturer, for example, on which a specialized image processing method 426 in the form of a plug-in for the image processing program 408 is stored.
  • a key 428 is also stored on the data carrier 424.
  • the data carrier 424 is created, for example, by the third-party manufacturer using the method shown in FIG.
  • a personal computer 430 is provided to install the image processing method 426.
  • a set-up program 432 runs on the personal computer 430 and has been loaded into the personal computer 430 from the data carrier 424, for example.
  • the set-up program 432 contains a program module 434 with a sequence control for realizing an installation wizard.
  • the set-up program 432 also has an encryption module 436 for implementing the encryption, which has also been used to generate the key 428.
  • the set-up program 432 has a comparison module 438. Via a user interface 440, e.g. B. via a keyboard, the user can enter a third-party identification 442.
  • the procedure for installing the image processing method 426 on the intelligent camera 400 is as follows:
  • the user inserts the data carrier 424 into a corresponding reading device of the personal computer 430.
  • the set-up program 432 is loaded from the data carrier 424 and started on the personal computer 430.
  • the user is then asked to identify via the user interface 440 the device of the automation system on which the additional plug-in program is to be installed.
  • the user gives z.
  • B. graphically interactive on the intelligent camera 400.
  • a block diagram of the automation system can be displayed on the user interface.
  • the set-up program 432 queries the MAC address of the device of the automation system selected by the user, ie in the case considered here by the intelligent camera 400. Based on this query, the image processing unit 406 accesses the memory 422, reads the MAC address from the memory 422 and transmits it via the interface 416 and the network 418 to the personal computer 430.
  • the set-up program 432 prompts the user to enter the third-party identification 442 of the third-party manufacturer who created the image processing method 426. With the aid of the third-party identification 442 and the MAC address from the memory 422, a key transformation is carried out by the set-up program 432 by means of the encryption module 436.
  • the resulting key is compared by the comparison module 438 with the key 428 of the data carrier 424. If both keys match, the use of the
  • Image processing method 426 is authorized as a plug-in of image processing program 408 on intelligent camera 400, and the corresponding plug-in is then transmitted, i. H. of the image processing method 426 from the personal computer 430 via the network 418 to the intelligent camera 400. There the image processing method 426 can be used as a plug-in for the image processing program 408 for the special application desired by the user.
  • This process can be repeated for different image processing methods or other plug-ins for the implementation of special applications, which gives a high degree of flexibility to adapt the automation system to new applications.

Abstract

The invention relates to a method for installing a plug-in program (426) in a device (40), comprising the following steps: transmitting a device code (422) of the device from the device to a computer (430); inputting a manufacturer code via a user interface of the computer; forming a first key (436) from the device code and from the manufacturer code; reading a second key (428) from a data carrier (424); comparing the first and second keys; transmitting the plug-in program stored on the data carrier to the device in the event the first and second keys correspond.

Description

Beschreibungdescription
Verfahren zur Installation eines Plug-in-ProgrammsProcedure for installing a plug-in program
Die vorliegende Erfindung betrifft ein Verfahren zur Installation eines Plug-in-Programms, einen Datenträger mit einem Plug-in-Programm sowie ein Automatisierungssystem-.The present invention relates to a method for installing a plug-in program, a data carrier with a plug-in program and an automation system.
Aus dem Stand der Technik sind verschiedene Söftware-Schutz- konzepte bekannt, die zur Vermeidung einer unautorisiertenVarious software protection concepts are known from the prior art, which are used to avoid unauthorized use
Nutzung der zu schützenden Software dienen. Dabei gibt es zum einen hardwaregestützte Lösungen.Use the software to be protected. On the one hand, there are hardware-based solutions.
Bei hardwaregestützten Lösungen ist beispielsweise der An- schluss eines so genannten Dongles an den Computer erforderlich, um die Ausführung der geschützten Software zu ermöglichen. Solche hardwaregestützten Software-Schutzkonzepte haben den Nachteil, dass sie relativ benutzerunfreundlich sind und ferner aus Kostengründen oftmals ausscheiden.In hardware-based solutions, for example, a so-called dongle must be connected to the computer in order to enable the protected software to be executed. Hardware-based software protection concepts of this type have the disadvantage that they are relatively user-unfriendly and, moreover, are often eliminated for cost reasons.
Zum anderen ist es auch bekannt, Software mit einer Lizenznummer gegen unautorisierte Nutzung zu schützen. Hierzu muss bei der Installation der Software eine dem Kunden beim Kauf der Softwarelizenz mitgeteilte Lizenznummer in ein Eingabe- fenster des Set-up-Progra ms angegeben werden. Nachteilig bei einer solchen softwarebasierten Lösung ist, dass diese keinen hinreichenden Schutz gegen unautorisierte Benutzung bietet. Beispielsweise versagt ein solches softwaregestütztes Schutzkonzept, wenn der Kunde dieselbe Lizenznummer zur mehrfachen Installation der Software auf verschiedenen Rechnern verwendet oder gar die Lizenznummer an Dritte mitteilt.On the other hand, it is also known to protect software with a license number against unauthorized use. When installing the software, a license number communicated to the customer when purchasing the software license must be entered in an input window of the set-up program. A disadvantage of such a software-based solution is that it does not offer adequate protection against unauthorized use. For example, such a software-based protection concept fails if the customer uses the same license number to install the software multiple times on different computers or even communicates the license number to third parties.
Besondere Relevanz haben Software-Schutzkonzepte für so genannte offene Systeme. Ein offenes System besteht im All- gemeinen aus zumindest einer Basissoftware, deren Schnittstellen gegenüber Drittherstellern offen gelegt sind, sodass Dritthersteller interoperable Plug-ins für die Basissoftware erstellen können. Solche offenen Systemkonzepte werden insbesondere auch auf dem Gebiet der Automatisierungstechnik zur Realisierung offener Steuerungsarchitekturen basierend auf Hardware- und Softwarekomponenten verschiedenster Hersteller eingesetzt. Ein Beispiel für eine entsprechende Basissoftware ist OpenCNC (http://www.mdsi2.com/deutsch/gerbrochure.html).Software protection concepts are particularly relevant for so-called open systems. An open system generally consists of at least one basic software, the interfaces of which are disclosed to third-party manufacturers, so that third-party manufacturers can use interoperable plug-ins for the basic software can create. Such open system concepts are used in particular in the field of automation technology to implement open control architectures based on hardware and software components from various manufacturers. An example of a corresponding basic software is OpenCNC (http://www.mdsi2.com/deutsch/gerbrochure.html).
Das Produkt SIMATIC iMap der Firma Siemens AGThe product SIMATIC iMap from Siemens AG
(http: //www. ad. siemens.de/cba/products/html__00/imap.html) dient zur anlagenweiten und herstellerübergreifenden Zusammenführung verteilter Anwendungen. Zuvor erstellte Softwarekomponenten werden in SIMATIC iMap importiert und in einer Bibliothek abgelegt. Über die offen gelegte Schnittstelle von SIMATIC iMap können die Komponenten für alle PROFInet-fähigen Geräte als Bibliothekselemente eingebunden werden.(http: // www.siemens.de/cba/products/html__00/imap.html) is used for the plant-wide and cross-manufacturer merging of distributed applications. Previously created software components are imported into SIMATIC iMap and stored in a library. The components for all PROFInet-compatible devices can be integrated as library elements via the disclosed interface of SIMATIC iMap.
Zum Softwareschutz der Basissoftware offener Systeme sowie der Plug-in-Programme für die Basissoftware können die an sich bekannten Software-Schutzkonzepte eingesetzt werden. Bei Einsatz unterschiedlicher Hardware und/oder Software basierter Schutzkonzepte durch die verschiedenen Softwarehersteller kann es zu Konflikten zwischen den einzelnen Schutzkonzepten kommen .The software protection concepts known per se can be used for software protection of the basic software of open systems and of the plug-in programs for the basic software. If different hardware and / or software-based protection concepts are used by the various software manufacturers, conflicts can arise between the individual protection concepts.
In manchen Fällen sind die Software-Schutzkonzepte nicht miteinander verträglich, sodass an sich sinnvolle Kombinationen von Komponenten nur aufgrund solcher Unverträglichkeiten nicht realisiert werden können. Auch bei Verträglichkeit der einzelnen Schutzkonzepte miteinander führt die Kombination der verschiedenen herstellerindividuellen Software-Schutzkonzepte unter Umständen zu schwer hantierbaren und benutzerunfreundlichen Systemen, die auch in ihrer Flexibilität eingeschränkt sind. Eine Einigung der verschiedenen Software- hersteiler auf ein einheitliches Software-Schutzkonzept zur Vermeidung dieser Nachteile ist im Allgemeinen nicht möglich, da hierzu das Schutzsystem beispielsweise des Herstellers der Basissoftware gegenüber den Drittherstellern offen gelegt werden müsste.In some cases, the software protection concepts are not compatible with each other, so that sensible combinations of components cannot be implemented because of such incompatibilities. Even if the individual protection concepts are compatible with one another, the combination of the various manufacturer-specific software protection concepts can lead to difficult-to-handle and user-unfriendly systems, which are also limited in their flexibility. It is generally not possible for the various software manufacturers to agree on a uniform software protection concept to avoid these disadvantages, since the protection system of the manufacturer of the Basic software would have to be disclosed to third-party manufacturers.
Der Erfindung liegt daher die Aufgabe zugrunde, ein verbes- sertes Verfahren zur Installation eines Plug-in-Programms zu schaffen sowie einen Datenträger mit einem solchen Plug-inProgramm und einem Automatisierungssystem mit einem Gerät, auf dem das Plug-in-Programm installiert werden kann. Insbesondere soll hierdurch ein Software-Schutzkonzept geschaf- fen werden, das die Nachteile des Standes der Technik vermeidet .The invention is therefore based on the object of providing an improved method for installing a plug-in program and a data carrier with such a plug-in program and an automation system with a device on which the plug-in program can be installed , In particular, this is intended to create a software protection concept which avoids the disadvantages of the prior art.
Die der Erfindung zugrunde liegenden Aufgaben werden jeweils durch die Merkmale der unabhängigen Patentansprüche gelöst. Bevorzugte Ausführungsformen der Erfindung sind in den abhängigen Patentansprüchen angegeben.The objects underlying the invention are each solved by the features of the independent claims. Preferred embodiments of the invention are specified in the dependent claims.
Der erfindungsgemäße Softwareschutz basiert auf einer Kombination einer Gerätekennung und einer Herstellerkennung. Über die Gerätekennung wird ein bestimmtes Gerät, auf dem die Nutzung des Plug-in-Programms autorisiert ist, eindeutig identifiziert. Beispielsweise kann die so genannte Media- Access-Control (MAC) -Adresse eines Geräts als eine solche Gerätekennung verwendet werden.The software protection according to the invention is based on a combination of a device identifier and a manufacturer identifier. A specific device on which the use of the plug-in program is authorized is clearly identified via the device identifier. For example, the so-called media access control (MAC) address of a device can be used as such a device identifier.
Diese Gerätekennung wird dem Softwarehersteller des Plug-inProgramms beispielsweise von dem Anwender mitgeteilt. Der Hersteller erzeugt dann aus dieser Gerätekennung und seiner Herstellerkennung einen Schlüssel. Dieser Schlüssel wird zu- sammen mit dem Plug-in-Programm auf einen Datenträger, wie z. B. eine CD-ROM, gespeichert.This device identifier is communicated to the software manufacturer of the plug-in program by the user, for example. The manufacturer then generates a key from this device identifier and its manufacturer identifier. This key is stored together with the plug-in program on a data medium, such as. B. a CD-ROM, stored.
Zur Installation des Plug-in-Programms wird dann beispielsweise wie folgt vorgegangen: Zunächst wird die Gerätekennung des Geräts abgefragt, auf dem das Plug-in-Programm installiert werden soll. Über eine Nutzerschnittstelle wird sodann die Herstellerkennung des Herstellers des zu installierenden Plug-in-Programms abgefragt.The installation of the plug-in program is then carried out, for example, as follows: First, the device identifier of the device on which the plug-in program is to be installed is queried. Then via a user interface the manufacturer ID of the manufacturer of the plug-in program to be installed is requested.
Aus der Gerätekennung und der Herstellerkennung wird wiederum mit demselben Verschlüsselungsverfahren ein Schlüssel gebildet. Der zuvor herstellerseitig gebildete Schlüssel, der auf dem Datenträger gespeichert ist, wird dann mit dem nutzer- seitig bei der Installation erzeugten Schlüssel verglichen. Stimmen die beiden Schlüssel überein, so wird die Übertragung des Plug-in-Programms zu dem Gerät freigegeben, sodass es dort im Zusammenhang mit einer Basissoftware benutzt werden kann.A key is in turn formed from the device identifier and the manufacturer identifier using the same encryption method. The key previously created by the manufacturer and stored on the data carrier is then compared with the key generated by the user during installation. If the two keys match, the transmission of the plug-in program to the device is enabled so that it can be used there in connection with basic software.
Diese Vorgehensweise bietet insbesondere die Möglichkeit, ein zweistufiges Software-Schutzkonzept zu realisieren:In particular, this procedure offers the possibility of implementing a two-stage software protection concept:
- Die Basissoftware des offenen Systems kann durch ein proprietäres Schutzkonzept des Herstellers der Basissoftware geschützt werden. Eine Offenlegung dieses proprietären Schutzkonzepts der Basissoftware ist nicht erforderlich, da dieser Mechanismus ausschließlich zum Schutz der Basissoftware genutzt wird.- The basic software of the open system can be protected by a proprietary protection concept from the manufacturer of the basic software. It is not necessary to disclose this proprietary protection concept of the basic software, since this mechanism is only used to protect the basic software.
- Der Hersteller der Basissoftware bietet eine Software- Unterstützung an, beispielsweise in Form eines so genannten Wizards, um Drittherstellern ein einheitliches, komfortables Software-Schutzkonzept zum Schutz von deren Plug-inSoftware zu bieten. Eine solche Softwareunterstützung kann Teil eines Developmentkits sein. Damit werden Unverträg- lichkeiten zwischen verschiedenen Software-Schutzkonzepten unterschiedlicher Dritthersteller vermieden, da alle Softwarekomponenten mit demselben Mechanismus geschützt werden und die Basissoftware gewährleistet, dass dieses Schutzkonzept mit dem der Basissoftware verträglich ist.- The manufacturer of the basic software offers software support, for example in the form of a so-called wizard, in order to offer third-party manufacturers a uniform, convenient software protection concept to protect their plug-in software. Such software support can be part of a development kit. This avoids incompatibilities between different software protection concepts from different third-party manufacturers, since all software components are protected with the same mechanism and the basic software ensures that this protection concept is compatible with that of the basic software.
Nach einer bevorzugten Ausführungsform der Erfindung handelt es sich bei dem Gerät, auf dem das Plug-in-Programm instal- liert werden soll, um eine so genannte intelligente Kamera. Eine intelligente Kamera hat neben der eigentlichen Kamerafunktion eine Bildverarbeitungseinheit mit verschiedenen Bildverarbeitungsverfahren zur Extraktion von Bildmerkmalen. Solche intelligenten Kameras und Bildverarbeitungsprogramme sind an sich aus dem Stand der Technik bekannt (vergleiche das Produkt Provision der Firma Siemens AG, http: //www. ad. siemens . de/machine- vision/html 00/produkte/produkte/provis .htm) .According to a preferred embodiment of the invention, the device on which the plug-in program is installed to be a so-called intelligent camera. In addition to the actual camera function, an intelligent camera has an image processing unit with various image processing methods for extracting image features. Such intelligent cameras and image processing programs are known per se from the prior art (compare the product commission from Siemens AG, http: // www. Ad. Siemens. De / machine vision / html 00 / produkte / produkte / provis .htm ).
Insbesondere unterstützt die Programmversion Provision V2.1 eine offene Schnittstelle für die Integration von selbst erstellten Plug-in-Prüfelementen, die genau wie alle Standard-Prüfelemente verwendet werden können. Auf diese Weise kann das Prüfprogramm unabhängig vom Standard-Funktionsumfang komfortabel projektiert werden.In particular, the program version Provision V2.1 supports an open interface for the integration of self-created plug-in test elements, which can be used just like all standard test elements. In this way, the test program can be conveniently configured regardless of the standard range of functions.
Die individuellen Prüfelemente können leicht in der Programmiersprache C++ erstellt und in Provision genutzt werden. Dadurch kann der Anwender den Komfort der Projektierung unter Provision mit der Flexibilität einer Hochsprachen-Programmierung kombinieren. Viele SIMATIC Machine Vision Partnerfirmen haben bereits solche Plug-in-Prüfelemente entwickelt.The individual test elements can easily be created in the programming language C ++ and used in commission. This allows the user to combine the convenience of project planning with commission with the flexibility of high-level language programming. Many SIMATIC Machine Vision partner companies have already developed such plug-in test elements.
Die vorliegende Erfindung ermöglicht es also auf komfortable Art und Weise, z. B. ein weiteres Bildverarbeitungsverfahren für das Bildverarbeitungsprogramm als Plug-in zur Verfügung zu stellen, wobei die autorisierte Benutzung des Plug-inProgramms durch das erfindungsgemäße Software-Schutzkonzept gewährleistet ist.The present invention thus makes it possible in a convenient manner, for. B. to provide another image processing method for the image processing program as a plug-in, the authorized use of the plug-in program is guaranteed by the software protection concept according to the invention.
Für die Installation des Plug-in-Programms wird das Gerät vorzugsweise mit einem externen Computer, insbesondere einem üblichen Personalcomputer verbunden. Diese Verbindung kann über eine Netzwerkverbindung oder eine Busverbindung desFor the installation of the plug-in program, the device is preferably connected to an external computer, in particular a conventional personal computer. This connection can be made via a network connection or a bus connection of the
Automatisierungssystems hergestellt werden, z. B. über einen Feldbus oder Profibus. Alternativ kann auch über ein separa- β tes Kabel oder drahtlos nur für die Zwecke der Installation zwischen dem Computer und dem Gerät eine lokale Verbindung hergestellt werden. Über diese Verbindung wird die Gerätekennung, also insbesondere die MAC-Adresse des Geräts, ab- gefragt und/oder es wird das Plug-in-Programm über diese Verbindung übertragen.Automation system are manufactured, for. B. via a fieldbus or Profibus. Alternatively, a separate β tes cable or wireless only for the purpose of installation between the computer and the device a local connection. The device identifier, in particular the MAC address of the device, is queried via this connection and / or the plug-in program is transmitted via this connection.
Nach einer bevorzugten Ausführungsform der Erfindung wird zur Durchführung einer Schlüsseltransformation ein so genannter Hash-Schlüssel aus der Gerätekennung und der Herstellerkennung gebildet. Zur Bildung dieser Hash-Schlüsseltransfor- mation kommt eine Hash-Funktion zum Einsatz, die z. B. durch das Developmentkit für das Plug-in-Programm vorgegeben ist.According to a preferred embodiment of the invention, a so-called hash key is formed from the device identifier and the manufacturer identifier in order to carry out a key transformation. A hash function is used to form this hash key transformation. B. is specified by the development kit for the plug-in program.
Nach einer weiteren bevorzugten Ausführungsform der Erfindung wird aus der Gerätekennung und der Herstellerkennung mittels eines Cyclic-Redundancy-Check (CRC) -Verfahrens ein Schlüssel gebildet .According to a further preferred embodiment of the invention, a key is formed from the device identifier and the manufacturer identifier using a cyclic redundancy check (CRC) method.
Das CRC-Verfahren ist ein geläufiges Verfahren zur Fehlererkennung bei der digitalen Signalübertragung. Zur Durchführung eines CRC-Verfahrens wird eine Nachrichtenkette mit Hilfe eines Schlüsselworts dividiert. Ein solches Schlüsselwort wird auch als Generatorpolynom bezeichnet. Das Schlüs- selwort ist sowohl dem Sender als auch dem Empfänger bekannt. Der Divisionsrest bildet das so genannte Checkword, welches zur Überprüfung der Fehlerfreiheit der Nachrichtenübertragung dient. Ein CRC-Verfahren ist beispielsweise aus US 4,283,787 bekannt .The CRC method is a common method for error detection in digital signal transmission. To carry out a CRC process, a message chain is divided using a keyword. Such a keyword is also called a generator polynomial. The key word is known to both the sender and the recipient. The remainder of the division forms the so-called checkword, which is used to check that the message transmission is error-free. A CRC method is known for example from US 4,283,787.
Erfindungsgemäß wird dieses an sich aus dem Stand der Technik für die Fehlererkennung bei der digitalen Nachrichtenübertragung verwendete CRC-Verfahren zur Realisierung eines Software-Schutzkonzepts eingesetzt. Hierzu wird die Gerätekennung mit der Herstellerkennung zu einem String verkettet. Diese Verkettung wird dann durch ein Schlüsselwort dividiert. Der Divisionsrest dient als Schlüssel. Dieses Verfahren wird herstellerseitig angewendet, um den Schlüssel zu erzeugen, der auf dem Datenträger abgespeichert wird. Dasselbe Verfahren wird auch anwenderseitig mit demselben Schlüsselwort durchgeführt, um ein Checkword aus der von dem Gerät abgefragten Gerätekennung und der über dieAccording to the invention, this CRC method, which is used per se from the prior art for error detection in digital message transmission, is used to implement a software protection concept. For this purpose, the device identifier is linked to the manufacturer identifier to form a string. This concatenation is then divided by a keyword. The remainder of the division serves as the key. This method is used by the manufacturer to generate the key that is stored on the data carrier. The same procedure is also carried out by the user with the same keyword in order to create a checkword from the device identifier queried by the device and that via the
Nutzerschnittstelle eingegebenen Herstellerkennung zu bilden. Stimmt das auf dem Datenträger gespeicherte Checkword mit dem anwenderseitig gebildeten Checkword überein, so folgt daraus die Autorisierung der Nutzung des Plug-ins auf dem betreffen- den Gerät.To form the user interface entered manufacturer ID. If the checkword stored on the data carrier matches the checkword created by the user, the authorization for using the plug-in on the device concerned follows from this.
Im Weiteren werden bevorzugte Ausführungsbeispiele der Erfindung mit Bezugnahme auf die Zeichnungen näher erläutert. Es zeigen:Preferred exemplary embodiments of the invention are explained in more detail below with reference to the drawings. Show it:
Figur 1 ein Flussdiagramm zur Erstellung eines erfindungsgemäßen Datenträgers,FIG. 1 shows a flow chart for creating a data carrier according to the invention,
Figur 2 ein Flussdiagramm zur Erzeugung eines Schlüssels zur Abspeicherung auf dem Datenträger,FIG. 2 shows a flowchart for generating a key for storage on the data carrier,
Figur 3 ein Flussdiagramm einer Installation des Plug-ins auf einem Gerät,FIG. 3 shows a flow diagram of an installation of the plug-in on a device,
Figur 4 ein Blockdiagramm eines Automatisierungssystems mit einer intelligenten Kamera.Figure 4 is a block diagram of an automation system with an intelligent camera.
Die Figur 1 zeigt die Schritte zur Erstellung eines Datenträgers mit einem Plug-in für eine Basissoftware und einem Software-Schutzmechanismus. In dem Schritt 100 wird das Plugin-Programm erstellt. Dies kann innerhalb einer Entwicklungsumgebung mit Hilfe eines so genannten Developmentkits erfolgen, welches von dem Hersteller der Basissoftware dem Dritthersteller des Plug-ins zur Verfügung gestellt wird. Dieses Developmentkit beinhaltet einen Plug-in-Wizard mit einem Verschlüsselungsverfahren. Dieses Verschlüsselungsverfahren wird vorzugsweise nur als Binärcode weitergegeben, um den Softwareschutz der Plug-in-Komponenten der Dritthersteller zu gewährleisten.FIG. 1 shows the steps for creating a data carrier with a plug-in for basic software and a software protection mechanism. In step 100, the plug-in program is created. This can be done within a development environment with the help of a so-called development kit, which is made available by the manufacturer of the basic software to the third-party manufacturer of the plug-in. This development kit includes a plug-in wizard with an encryption process. This encryption method is preferably only passed on as a binary code, to ensure software protection of third-party plug-in components.
Nach der Programmierung des Plug-in-Programms in dem Schritt 100 wird das Verschlüsselungsverfahren des Plug-in-Wizards in dem Schritt 102 gestartet.After programming the plug-in program in step 100, the encryption process of the plug-in wizard is started in step 102.
In dem Schritt 102 erscheint ein Eingabefenster mit der Aufforderung zur Eingabe der Drittherstellerkennung. Nach dieser Eingabe erscheint in dem Schritt 104 ein weiteres Eingabefenster mit der Eingabeaufforderung einer eindeutigen Gerätekennung des für die Benutzung des Plug-ins autorisierten Geräts. Bei dieser Gerätekennung handelt es sich vorzugsweise um die MAC-Adresse des autorisierten Geräts. Diese wird dem Dritthersteller von dem Anwender mitgeteilt. Der Dritthersteller gibt diese MAC-Adresse in das Eingabefenster ein.In step 102, an input window appears with the request to enter the third-party identification. After this entry, a further input window appears in step 104 with the prompt for a unique device identifier of the device authorized to use the plug-in. This device identifier is preferably the MAC address of the authorized device. This is communicated to the third party manufacturer by the user. The third-party manufacturer enters this MAC address in the input window.
In dem Schritt 106 erfolgt danach eine Verschlüsselung der MAC-Adresse und der Herstellerkennung mittels einer Schlüs- seltransformation des Verschlüsselungsverfahrens des Plug-inWizards .In step 106, the MAC address and the manufacturer's identification are then encrypted by means of a key transformation of the encryption method of the plug-in wizard.
In dem Schritt 108 wird das Plug-in-Programm mit dem in dem Schritt 106 erzeugten Schlüssel auf einem Datenträger gespei- chert.In step 108 the plug-in program is stored on a data carrier with the key generated in step 106.
Die Figur 2 zeigt ein Beispiel für die Durchführung eines Verschlüsselungsverfahrens in dem Schritt 106. Zur Durchführung des Verschlüsselungsverfahrens wird in dem Schritt 200 eine Verkettung aus der MAC-Adresse und der Drittherstellerkennung gebildet. In dem Schritt 202 wird diese Verkettung mittels eines Schlüsselworts dividiert. Das Schlüsselwort ist geheim und Teil des Verschlüsselungsverfahrens des Plug-in-Wizards. Bei diesem Schlüsselwort handelt es sich um ein so genanntes Generatorpolynom, wie es an sich von CRC-Verfahren bekannt ist. Der Divisionsrest der Division der Verkettung durch das Generatorpolynom in dem Schritt 202 ist das Ergebnis der Schlüsseltransformation, d. h. das so genannte Checkword. Dieses wird in dem Schritt 204 zur Abspeicherung auf dem Datenträger ausgegeben. Von besonderem Vorteil ist derFIG. 2 shows an example for the implementation of an encryption method in step 106. To carry out the encryption method, a chain is formed in step 200 from the MAC address and the third-party identification. In step 202, this concatenation is divided using a keyword. The keyword is secret and part of the encryption process of the plug-in wizard. This key word is a so-called generator polynomial, as is known per se from CRC methods. The remainder of the division of the chaining by the generator polynomial in step 202 is the result of the key transformation, ie the so-called checkword. This is output in step 204 for storage on the data carrier. The is of particular advantage
Einsatz dieses CRC-Check-Verfahrens besonders bei Anwendungen mit hohen Performance-Anforderungen, wie beispielsweise in der Bildverarbeitung, da das CRC-Check-Verfahren besonders schnell arbeitet. Alternativ können auch Hash-Verfahren zum Einsatz kommen, die ebenfalls schnell sind.Use of this CRC check procedure particularly in applications with high performance requirements, such as in image processing, since the CRC check procedure works particularly quickly. Alternatively, hash methods can also be used, which are also fast.
Die Figur 3 zeigt die Vorgehensweise zur Installation des Plug-in-Programms auf einem Gerät. In dem Schritt 300 wird der Datenträger in ein entsprechendes Lesegerät eines Personalcomputers eingeführt. Alternativ kann auch z. B. über eine Internetverbindung auf den Datenträger, z. B. die Festplatte eines Servers des Drittherstellers, zugegriffen werden.FIG. 3 shows the procedure for installing the plug-in program on a device. In step 300, the data carrier is inserted into a corresponding reading device of a personal computer. Alternatively, e.g. B. over an Internet connection to the disk, for. B. the hard drive of a third-party server can be accessed.
In dem Schritt 302 wird das Set-up-Programm zur Installation des Plug-in-Programms gestartet. Daraufhin wird in dem Schritt 304 eine Verbindung zwischen dem Personalcomputer und dem Gerät, auf dem das Plug-in installiert werden soll, hergestellt.In step 302, the set-up program for installing the plug-in program is started. A connection is then established in step 304 between the personal computer and the device on which the plug-in is to be installed.
In dem Schritt 306 wird die MAC-Adresse von dem Gerät abgefragt und über die Verbindung zu dem Personalcomputer übertragen. In dem Schritt 308 erscheint auf dem Bildschirm des Personalcomputers ein Eingabefenster mit der Aufforderung zur Eingabe der Drittherstellerkennung des zu installierenden Plug-ins. Diese Drittherstellerkennung wird beispielsweise über die Tastatur des Personalcomputers von dem Anwender eingegeben.In step 306, the MAC address is requested from the device and transmitted via the connection to the personal computer. In step 308, an input window appears on the screen of the personal computer, asking for the third-party identification of the plug-in to be installed. This third-party identification is entered by the user, for example, on the keyboard of the personal computer.
In dem Schritt 310 erfolgt sodann die Verschlüsselung der in dem Schritt 306 von dem Gerät abgefragten MAC-Adresse und der in dem Schritt 308 eingegebenen Drittherstellerkennung. Das in dem Schritt 310 zur Anwendung kommende Verschlüsselungsverfahren ist dasselbe wie das Verschlüsselungsverfahren des Schritts 106 (vergleiche Figur 1) .In step 310, the MAC address queried by the device in step 306 and the third-party identification entered in step 308 are then encrypted. The The encryption method used in step 310 is the same as the encryption method in step 106 (see FIG. 1).
In dem Schritt 312 wird geprüft, ob der in dem Schritt 108In step 312, it is checked whether that in step 108
(vergleiche Figur 1) auf dem Datenträger gespeicherte Schlüssel mit dem in dem Schritt 310 erzeugten Schlüssel identisch ist. Falls dies nicht der Fall ist, wird in dem Schritt 314 über die Nutzerschnittstelle ein entsprechender Hinweis für den Anwender ausgegeben. Die Ablaufsteuerung geht von dort zu dem Schritt 308 zurück, um dem Anwender einen erneuten Eingabeversuch für die korrekte Drittherstellerkennung zu gewähren.(compare FIG. 1), the key stored on the data carrier is identical to the key generated in step 310. If this is not the case, a corresponding message for the user is output in step 314 via the user interface. From there, the sequence control goes back to step 308 in order to grant the user a renewed input attempt for the correct third-party identification.
Wenn in dem Schritt 312 festgestellt wird, dass die Schlüssel in der Tat identisch sind, erfolgt in dem Schritt 316 eine Übertragung des Plug-in-Programms von dem Datenträger zu dem Gerät, sodass das Plug-in-Programm in dem Gerät in Verbindung mit der Basissoftware benutzt werden kann.If it is determined in step 312 that the keys are indeed identical, the plug-in program is transferred from the data carrier to the device in step 316, so that the plug-in program in the device in connection with the basic software can be used.
Die Figur 4 zeigt ein Blockdiagramm eines Automatisierungssystems. Das Automatisierungssystem hat eine intelligente Kamera 400 mit einem CCD-Kameramodul 402 zur Lieferung von Bilddaten 404.FIG. 4 shows a block diagram of an automation system. The automation system has an intelligent camera 400 with a CCD camera module 402 for the delivery of image data 404.
Das Kameramodul 402 ist mit einer Bildverarbeitungseinheit 406 verbunden, welche in die intelligente Kamera 400 integriert ist. In der Bildverarbeitungseinheit 406 ist ein Bildverarbeitungsprogramm 408 installiert. Bei dem Bild- Verarbeitungsprogramm 408 handelt es sich um eine Basissoftware, die von dem Hersteller der intelligenten Kamera 400 mitgeliefert wird.The camera module 402 is connected to an image processing unit 406, which is integrated in the intelligent camera 400. An image processing program 408 is installed in the image processing unit 406. The image processing program 408 is basic software that is supplied by the manufacturer of the intelligent camera 400.
Im Umfang dieser Basissoftware sind bereits die Bildverarbei- tungsverfahren 410, 412, ... für gängige Bildverarbeitungsanwendungen beinhaltet. Beispielsweise dient das Bildverarbeitungsverfahren 410 zur Erkennung eines Barcodes. Das Bildverarbeitungsverfahren 412 dient beispielsweise zur Erkennung eines Füllstands und zum Vergleich des erkannten Füllstands mit einem Sollfüllstand.The image processing methods 410, 412, ... for common image processing applications are already included in the scope of this basic software. For example, the image processing method 410 is used to recognize a bar code. The Image processing method 412 is used, for example, to recognize a fill level and to compare the detected fill level with a desired fill level.
Als Ergebnis der Bildverarbeitung gibt die Bildverarbeitungseinheit 406 Bildmerkmale 414 über eine Schnittstelle 416, z. B. an ein Netzwerk 418 des Automatisierungssystems, aus, sodass die Bildmerkmale 414 zu einer Automatisierungskomponente 420 übertragen werden können.As a result of the image processing, the image processing unit 406 outputs image features 414 via an interface 416, e.g. B. to a network 418 of the automation system, so that the image features 414 can be transmitted to an automation component 420.
Wenn das Bildverarbeitungsverfahren 410 zur Anwendung kommt, handelt es sich bei den Bildmerkmalen 414 beispielsweise um den erkannten Barcode. Im Fall des Bildverarbeitungsverfahrens 412 handelt es sich dagegen um die Information, ob der erkannte Füllstand in einem Sollbereich liegt oder ob derIf the image processing method 410 is used, the image features 414 are, for example, the recognized bar code. In the case of the image processing method 412, on the other hand, it is the information as to whether the detected fill level is in a target range or whether
Füllstand oberhalb oder unterhalb des Sollbereichs liegt. Mit Hilfe dieser Information kann die Automatisierungskomponente 420 eine entsprechende Nachregelung veranlassen.Level is above or below the target range. With the aid of this information, the automation component 420 can initiate a corresponding readjustment.
Die intelligente Kamera 400 hat ferner einen Speicher 422, in dem die MAC-Adresse als Gerätekennung der intelligenten Kamera 400 gespeichert ist.The intelligent camera 400 also has a memory 422 in which the MAC address is stored as the device identifier of the intelligent camera 400.
Für den Fall, dass die im Basisumfang des Bildverarbeitungs- Programms 408 beinhalteten Bildverarbeitungsverfahren 410,In the event that the image processing methods 410 included in the basic scope of the image processing program 408,
412, ... für den Anwender nicht ausreichend sind, kann dieser ein spezialisiertes Bildverarbeitungsverfahren für eine Spezialanwendung von einem Dritthersteller zukaufen. Von dem Dritthersteller wird beispielsweise ein Datenträger 424 ge- liefert, auf dem ein spezialisiertes Bildverarbeitungsverfahren 426 in der Form eines Plug-ins für das Bildverarbeitungsprogramm 408 gespeichert ist. Ferner ist auf dem Datenträger 424 ein Schlüssel 428 gespeichert. Der Datenträger 424 wird dabei beispielsweise nach dem in der Figur 1 gezeigten Ver- fahren von dem Dritthersteller erstellt. Zur Installation des Bildverarbeitungsverfahrens 426 ist ein Personalcomputer 430 vorgesehen. Auf dem Personalcomputer 430 läuft ein Set-up-Programm 432, welches beispielsweise von dem Datenträger 424 in den Personalcomputer 430 geladen worden ist. Das Set-up-Programm 432 beinhaltet ein Programmmodul 434 mit einer Ablaufsteuerung zur Realisierung eines Installations-Wizards. Ferner hat das Set-up-Programm 432 ein Verschlüsselungsmodul 436 zur Realisierung der Verschlüsselung, die auch zur Erzeugung des Schlüssels 428 verwendet worden ist. Ferner hat das Set-up-Programm 432 ein Vergleichsmodul 438. Über eine Nutzerschnittstelle 440, z. B. über eine Tastatur, kann der Anwender eine Drittherstellerkennung 442 eingeben.412, ... are not sufficient for the user, he can buy a specialized image processing method for a special application from a third-party manufacturer. A data carrier 424 is supplied by the third-party manufacturer, for example, on which a specialized image processing method 426 in the form of a plug-in for the image processing program 408 is stored. A key 428 is also stored on the data carrier 424. The data carrier 424 is created, for example, by the third-party manufacturer using the method shown in FIG. A personal computer 430 is provided to install the image processing method 426. A set-up program 432 runs on the personal computer 430 and has been loaded into the personal computer 430 from the data carrier 424, for example. The set-up program 432 contains a program module 434 with a sequence control for realizing an installation wizard. The set-up program 432 also has an encryption module 436 for implementing the encryption, which has also been used to generate the key 428. Furthermore, the set-up program 432 has a comparison module 438. Via a user interface 440, e.g. B. via a keyboard, the user can enter a third-party identification 442.
Zur Installation des Bildverarbeitungsverfahrens 426 auf der intelligenten Kamera 400 wird wie folgt vorgegangen:The procedure for installing the image processing method 426 on the intelligent camera 400 is as follows:
Der Anwender legt den Datenträger 424 in ein entsprechendes Lesegerät des Personalcomputers 430 ein. Alternativ wird eine Datenverbindung zwischen dem PC 430 und z. B. einem Server des Drittherstellers aufgebaut, um von dem PC 430 aus auf einen serverseitig vorhandenen Datenträger mit dem Bildverarbeitungsverfahren 426 und dem Schlüssel 428 zugreifen zu können.The user inserts the data carrier 424 into a corresponding reading device of the personal computer 430. Alternatively, a data connection between the PC 430 and e.g. B. a server from the third-party manufacturer, in order to be able to access from the PC 430 a data carrier on the server side with the image processing method 426 and the key 428.
Z. B. wird von dem Datenträger 424 das Set-up-Programm 432 geladen und auf dem Personalcomputer 430 gestartet. Der Anwender wird dann aufgefordert, über die Nutzerschnittstelle 440 dasjenige Gerät des Automatisierungssystems zu identi- fizieren, auf dem das zusätzliche Plug-in-Programm installiert werden soll. In dem hier betrachteten Beispielfall gibt der Anwender hierzu z. B. grafisch interaktiv die intelligente Kamera 400 an. Hierzu kann auf der Nutzerschnittstelle beispielsweise ein Blockdiagramm des Automatisierungssystems angezeigt werden, aus dem der Anwender z. B. durch Anklicken das Gerät auswählt, auf dem das Plug-in installiert werden soll . Das Set-up-Programm 432 fragt dann die MAC-Adresse von dem von dem Anwender ausgewählten Gerät des Automatisierungssystems ab, d. h. in dem hier betrachteten Fall von der intelligenten Kamera 400. Aufgrund dieser Abfrage greift die Bildverarbeitungseinheit 406 auf den Speicher 422 zu, liest die MAC-Adresse aus dem Speicher 422 aus und überträgt diese über die Schnittstelle 416 und das Netzwerk 418 zu dem Personalcomputer 430.For example, the set-up program 432 is loaded from the data carrier 424 and started on the personal computer 430. The user is then asked to identify via the user interface 440 the device of the automation system on which the additional plug-in program is to be installed. In the example case considered here, the user gives z. B. graphically interactive on the intelligent camera 400. For this purpose, for example, a block diagram of the automation system can be displayed on the user interface. B. Click to select the device on which the plug-in is to be installed. The set-up program 432 then queries the MAC address of the device of the automation system selected by the user, ie in the case considered here by the intelligent camera 400. Based on this query, the image processing unit 406 accesses the memory 422, reads the MAC address from the memory 422 and transmits it via the interface 416 and the network 418 to the personal computer 430.
Über die Nutzerschnittstelle 440 fordert das Set-up-Programm 432 den Anwender zur Eingabe der Drittherstellerkennung 442 desjenigen Drittherstellers, der das Bildverarbeitungsverfahren 426 erstellt hat, auf. Mit Hilfe der Drittherstellerkennung 442 und der MAC-Adresse aus dem Speicher 422 wird mittels des Verschlüsselungsmoduls 436 durch das Set-up- Programm 432 eine Schlüsseltransformation durchgeführt.Via the user interface 440, the set-up program 432 prompts the user to enter the third-party identification 442 of the third-party manufacturer who created the image processing method 426. With the aid of the third-party identification 442 and the MAC address from the memory 422, a key transformation is carried out by the set-up program 432 by means of the encryption module 436.
Der resultierende Schlüssel wird durch das Vergleichsmodul 438 mit dem Schlüssel 428 des Datenträgers 424 verglichen. Stimmen beide Schlüssel überein, so ist die Nutzung desThe resulting key is compared by the comparison module 438 with the key 428 of the data carrier 424. If both keys match, the use of the
Bildverarbeitungsverfahrens 426 als Plug-in des Bildverarbeitungsprogramms 408 auf der intelligenten Kamera 400 autorisiert und es erfolgt daraufhin eine Übertragung des entsprechenden Plug-ins, d. h. des Bildverarbeitungsverfahrens 426 von dem Personalcomputer 430 über das Netzwerk 418 an die intelligente Kamera 400. Dort kann das Bildverarbeitungsverfahren 426 als Plug-in für das Bildverarbeitungsprogramm 408 für die vom Anwender gewünschte Spezialanwendung im Weiteren benutzt werden.Image processing method 426 is authorized as a plug-in of image processing program 408 on intelligent camera 400, and the corresponding plug-in is then transmitted, i. H. of the image processing method 426 from the personal computer 430 via the network 418 to the intelligent camera 400. There the image processing method 426 can be used as a plug-in for the image processing program 408 for the special application desired by the user.
Dieser Vorgang lässt sich wiederholt für verschiedene Bildverarbeitungsverfahren oder andere Plug-ins zur Realisierung von Spezialanwendungen wiederholen, wodurch ein höchstes Maß an Flexibilität zur Anpassung des Automatisierungssystems an neue Anwendungen gegeben ist. This process can be repeated for different image processing methods or other plug-ins for the implementation of special applications, which gives a high degree of flexibility to adapt the automation system to new applications.

Claims

Patentansprüche claims
1. Verfahren zur Installation eines Plug-in-Programms (426) in einem Gerät (400) , mit folgenden Schritten:1. A method for installing a plug-in program (426) in a device (400), comprising the following steps:
- Übertragung einer Gerätekennung (422) des Geräts von dem Gerät zu einem Computer (430),Transmission of a device identifier (422) of the device from the device to a computer (430),
Eingabe einer Herstellerkennung (442) über eine Nutzer- Schnittstelle (440) des Computers,Entering a manufacturer identification (442) via a user interface (440) of the computer,
Bildung eines ersten Schlüssels (436) aus der Gerätekennung (422) und der Herstellerkennung (442) ,Formation of a first key (436) from the device identifier (422) and the manufacturer identifier (442),
- Lesen eines zweiten Schlüssels (428) von einem Datenträger (424),- reading a second key (428) from a data carrier (424),
Vergleich der ersten und zweiten Schlüssel,Comparison of the first and second keys,
- falls die ersten und zweiten Schlüssel übereinstimmen: Übertragung des auf dem Datenträger gespeicherten Plugin-Programms zu dem Gerät (400).- If the first and second keys match: transmission of the plug-in program stored on the data carrier to the device (400).
2. Verfahren nach Anspruch 1, wobei es sich bei dem Gerät um eine intelligente Kamera mit einem Bildverarbeitungsprogramm (408) handelt, wobei das Plug-in-Programm für das Bildverarbeitungsprogramm vorgesehen ist.2. The method according to claim 1, wherein the device is an intelligent camera with an image processing program (408), the plug-in program being provided for the image processing program.
3. Verfahren nach Anspruch 1 oder 2, wobei es sich bei dem Plug-in-Programm um ein Bildverarbeitungsverfahren handelt.3. The method of claim 1 or 2, wherein the plug-in program is an image processing method.
4. Verfahren nach einem der vorhergehenden Ansprüche 1, 2 oder 3, wobei es sich bei der Gerätekennung um die Media- Access-Control (MAC) -Adresse des Geräts handelt.4. The method according to any one of the preceding claims 1, 2 or 3, wherein the device identifier is the media access control (MAC) address of the device.
5. Verfahren nach einem der vorhergehenden Ansprüche 1 bis 4, wobei die Übertragung der Gerätekennung und/oder die Übertragung des Plug-in-Programms über eine Netzwerkverbindung (418) oder eine Busverbindung erfolgt, insbesondere über einen Profibus oder Feldbus.5. The method according to any one of the preceding claims 1 to 4, wherein the transmission of the device identifier and / or the The plug-in program is transmitted via a network connection (418) or a bus connection, in particular via a Profibus or fieldbus.
6. Verfahren nach einem der vorhergehenden Ansprüche 1 bis 5, wobei es sich bei dem ersten Schlüssel um einen Hash- Schlüssel handelt.6. The method according to any one of the preceding claims 1 to 5, wherein the first key is a hash key.
7. Verfahren nach einem der vorhergehenden Ansprüche 1 bis 6, wobei der erste Schlüssel nach einem Cyclic-Redun- dancy-Check (CRC) -Verfahren gebildet wird.7. The method according to any one of the preceding claims 1 to 6, wherein the first key is formed by a cyclic redundancy check (CRC) method.
8. Verfahren nach Anspruch 7, wobei zur Durchführung des CRC-Verfahrens die Gerätekennung (422) und die Hersteller- kennung miteinander verkettet werden und die Verkettung durch ein Schlüsselwort dividiert wird, wobei es sich bei dem Ergebnis der Division um das erste Schlüsselwort (436) handelt.8. The method according to claim 7, wherein to carry out the CRC method, the device identifier (422) and the manufacturer identifier are chained together and the chaining is divided by a keyword, the result of the division being the first keyword (436 ) acts.
9. Datenträger mit einem Plug-in-Programm (426) und einem Schlüssel (428), wobei der Schlüssel aus einer Gerätekennung9. Data carrier with a plug-in program (426) and a key (428), the key being a device identifier
(422) und einer Herstellerkennung gebildet ist.(422) and a manufacturer identifier is formed.
10. Datenträger nach Anspruch 9, wobei es sich bei dem Schlüssel um einen Hash-Schlüssel handelt.10. A data carrier according to claim 9, wherein the key is a hash key.
11. Datenträger nach Anspruch 9, wobei es sich bei dem Schlüssel um das Checkword eines Cyclic-Redundancy-Check (CRC) -Verfahrens handelt.11. The data carrier of claim 9, wherein the key is the checkword of a cyclic redundancy check (CRC) method.
12. Datenträger nach Anspruch 9, 10 oder 11, mit einem Installationsprogramm zur Durchführung der folgenden Schritte:12. A data carrier according to claim 9, 10 or 11, with an installation program for performing the following steps:
Abfrage einer Gerätekennung (422) von einem Gerät (400),Interrogation of a device identifier (422) from a device (400),
- Eingabe einer Herstellerkennung über eine Nutzerschnittstelle (440), - Bildung eines Schlüssels (436) aus der Gerätekennung und der Herstellerkennung,- Entering a manufacturer ID via a user interface (440), Formation of a key (436) from the device identifier and the manufacturer identifier,
- Vergleich (438) des Schlüssels mit dem auf dem Daten- träger gespeicherten Schlüssel,- comparison (438) of the key with the key stored on the data carrier,
Übertragung (418) des auf dem Datenträger gespeicherten Plug-in-Programms zu dem Gerät.Transfer (418) of the plug-in program stored on the data carrier to the device.
13. Datenträger nach einem der vorhergehenden Ansprüche 9 bis 12, wobei es sich bei der Gerätekennung um die Media- Access-Control (MAC) -Kennung des Geräts, für das das Plug-inProgramm vorgesehen ist, handelt.13. Data carrier according to one of the preceding claims 9 to 12, wherein the device identifier is the media access control (MAC) identifier of the device for which the plug-in program is intended.
14. Datenträger nach einem der vorhergehenden Ansprüche 9 bis 13, wobei es sich bei dem Plug-in-Programm um ein Bildverarbeitungsverfahren (428) für ein Bildverarbeitungsprogramm (408) des Geräts handelt.14. Data carrier according to one of the preceding claims 9 to 13, wherein the plug-in program is an image processing method (428) for an image processing program (408) of the device.
15. Automatisierungssystem mit einem Gerät (400), welches eine Gerätekennung (422) aufweist, wobei das Gerät Mittel (406) zur Ausführung eines Programms (408) hat, und mit einem mit dem Gerät verbindbaren Computer (430) mit Mitteln zum Lesen eines Datenträgers (424), wobei auf dem Datenträger ein Plug-in (426) für das Programm (408) gespeichert ist, und mit einem Installationsprogramm (432) zur Durchführung der folgenden Schritte:15. Automation system with a device (400) which has a device identifier (422), the device having means (406) for executing a program (408), and with a computer (430) which can be connected to the device and has means for reading a Data carrier (424), a plug-in (426) for the program (408) being stored on the data carrier, and with an installation program (432) for carrying out the following steps:
- Übertragung einer Gerätekennung (422) des Geräts von dem Gerät zu einem Computer (430) ,Transmission of a device identifier (422) of the device from the device to a computer (430),
- Eingabe einer Herstellerkennung über eine Nutzerschnittstelle des Computers,Entering a manufacturer ID via a user interface of the computer
- Bildung eines ersten Schlüssels (436) aus der Gerätekennung und der Herstellerkennung, Lesen eines zweiten Schlüssels (428) von einem Datenträger (424),Formation of a first key (436) from the device identifier and the manufacturer identifier, Reading a second key (428) from a data carrier (424),
Vergleich der ersten und zweiten Schlüssel,Comparison of the first and second keys,
- falls die ersten und zweiten Schlüssel übereinstimmen: Übertragung des auf dem Datenträger gespeicherten Plugin-Programms zu dem Gerät.- if the first and second keys match: transfer of the plug-in program stored on the data carrier to the device.
16. Automatisierungssystem nach Anspruch 15, wobei es sich bei dem Gerät um eine intelligente Kamera (400) handelt.16. Automation system according to claim 15, wherein the device is an intelligent camera (400).
17. Automatisierungssystem nach Anspruch 15 oder 16 mit einem Netzwerk (418) oder einem Bussystem zur Übertragung der Ge- rätekennung und/oder des Plug-in-Programms. 17. Automation system according to claim 15 or 16 with a network (418) or a bus system for transmitting the device identifier and / or the plug-in program.
PCT/EP2004/001120 2003-02-06 2004-02-06 Method for installing a plug-in program WO2004070610A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
EP04708745A EP1597671A2 (en) 2003-02-06 2004-02-06 Method for installing a plug-in program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE10304877A DE10304877A1 (en) 2003-02-06 2003-02-06 Procedure for installing a plug-in program
DE10304877.4 2003-02-06

Publications (2)

Publication Number Publication Date
WO2004070610A2 true WO2004070610A2 (en) 2004-08-19
WO2004070610A3 WO2004070610A3 (en) 2005-11-17

Family

ID=32730821

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2004/001120 WO2004070610A2 (en) 2003-02-06 2004-02-06 Method for installing a plug-in program

Country Status (3)

Country Link
EP (1) EP1597671A2 (en)
DE (1) DE10304877A1 (en)
WO (1) WO2004070610A2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1762931A1 (en) * 2005-09-12 2007-03-14 Robert Bosch Gmbh System for providing applications
CN116781424A (en) * 2023-08-21 2023-09-19 广东咏声动漫股份有限公司 Animation plug-in authorization configuration method

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102012220767A1 (en) 2012-11-14 2014-05-28 Siemens Aktiengesellschaft Methods and apparatus for installing building control software

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0302710A2 (en) * 1987-08-05 1989-02-08 International Business Machines Corporation A method of controlling the use of computer programs
US5199066A (en) * 1989-04-18 1993-03-30 Special Effects Software, Inc. Method and apparatus for protecting software
US6108420A (en) * 1997-04-10 2000-08-22 Channelware Inc. Method and system for networked installation of uniquely customized, authenticable, and traceable software application

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0302710A2 (en) * 1987-08-05 1989-02-08 International Business Machines Corporation A method of controlling the use of computer programs
US5199066A (en) * 1989-04-18 1993-03-30 Special Effects Software, Inc. Method and apparatus for protecting software
US6108420A (en) * 1997-04-10 2000-08-22 Channelware Inc. Method and system for networked installation of uniquely customized, authenticable, and traceable software application

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ANONYMOUS: "Protection of Software Against Copying" IBM TECHNICAL DISCLOSURE BULLETIN, Bd. 28, Nr. 3, 1. August 1985 (1985-08-01), Seiten 1097-1098, XP002341237 New York, US *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1762931A1 (en) * 2005-09-12 2007-03-14 Robert Bosch Gmbh System for providing applications
CN116781424A (en) * 2023-08-21 2023-09-19 广东咏声动漫股份有限公司 Animation plug-in authorization configuration method
CN116781424B (en) * 2023-08-21 2023-11-24 广东咏声动漫股份有限公司 Animation plug-in authorization configuration method

Also Published As

Publication number Publication date
EP1597671A2 (en) 2005-11-23
DE10304877A1 (en) 2004-08-19
WO2004070610A3 (en) 2005-11-17

Similar Documents

Publication Publication Date Title
DE102012110499B4 (en) Safety access procedure for electronic automotive control units
DE69728182T2 (en) METHOD AND DEVICE FOR REMOVING NETWORK ACCESS ENTRY AND NETWORK ACCESS REPORT
EP1133849B1 (en) Method and device for generating an encoded user data stream and method and device for decoding such a data stream
DE112004002470B4 (en) Certificate-based Digital Rights Management
EP2232366A2 (en) Method system and simulation or analysis model for data processing
WO2000074001A1 (en) Devices and methods for biometric authentication
DE19963471A1 (en) Device for prevention of pirate copies of computer programs being made for use with a computer, has input- and output-devices corresponding to a module-port of the computer so that they are insertable into the port
EP2673731B1 (en) Method for programming a mobile terminal chip
DE10065684A1 (en) System and method for granting permission to run a program installed on a computer
EP1710981A1 (en) A method and an apparatus for providing Internet services in Internet marketplaces
EP1399813A2 (en) Method for transmitting software modules
EP1358571B1 (en) Data processing device
EP1597671A2 (en) Method for installing a plug-in program
WO2018059964A1 (en) Method for the secured access of data of a vehicle
DE112006000349T5 (en) Combined command and data code
WO2007113163A1 (en) Improved digital rights management for domains
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
EP1748398A2 (en) System comprising at least one computer platform and at least one user token
CN108280359A (en) A kind of management method and server of security document
EP1460510B1 (en) Method for secure communication between data processing equipment and a security device
WO2004017182A2 (en) Accepting a set of data in a computer unit
WO2003088053A2 (en) Method for securing a program
DE102021114853A1 (en) Motor vehicle control device and method for producing a motor vehicle control device
EP4167114A1 (en) Automatic analysis of exploitation of vulnerability of a software image
DE102020105529A1 (en) Process for the selective provision of data

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG 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 NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

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

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2004708745

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 1020057021933

Country of ref document: KR

WWP Wipo information: published in national office

Ref document number: 2004708745

Country of ref document: EP

WWW Wipo information: withdrawn in national office

Ref document number: 1020057021933

Country of ref document: KR

DPEN Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed from 20040101)