DE102022207549A1 - Method for managing executable software modules through certificates - Google Patents

Method for managing executable software modules through certificates Download PDF

Info

Publication number
DE102022207549A1
DE102022207549A1 DE102022207549.8A DE102022207549A DE102022207549A1 DE 102022207549 A1 DE102022207549 A1 DE 102022207549A1 DE 102022207549 A DE102022207549 A DE 102022207549A DE 102022207549 A1 DE102022207549 A1 DE 102022207549A1
Authority
DE
Germany
Prior art keywords
certificate
software module
attributes
checking
execution
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.)
Pending
Application number
DE102022207549.8A
Other languages
German (de)
Inventor
Tobias Krug
Udo Schulz
Mouham Tanimou
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102022207549.8A priority Critical patent/DE102022207549A1/en
Publication of DE102022207549A1 publication Critical patent/DE102022207549A1/en
Pending legal-status Critical Current

Links

Images

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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zur Verwaltung von ausführbaren Softwaremodulen in einer Vorrichtung, umfassend ein Erfassen (120) eines digitalen Zertifikats, welches mindestens einem Softwaremodul in der Vorrichtung zugeordnet ist, durch eine Verwaltungseinheit in der Vorrichtung; ein Prüfen (150) von einem oder mehreren Attributen, die in dem Zertifikat gespeichert sind; und ein Durchführen (154) oder Verhindern (152) einer Ausführung des mindestens einen Softwaremoduls in Abhängigkeit von der Prüfung der ein oder mehreren Attribute.The invention relates to a method for managing executable software modules in a device, comprising acquiring (120) a digital certificate, which is assigned to at least one software module in the device, by a management unit in the device; checking (150) one or more attributes stored in the certificate; and performing (154) or preventing (152) execution of the at least one software module depending on the check of the one or more attributes.

Description

Die vorliegende Erfindung betrifft ein Verfahren zur Verwaltung von ausführbaren Softwaremodulen in einer Vorrichtung sowie eine Recheneinheit und ein Computerprogramm zu dessen Durchführung.The present invention relates to a method for managing executable software modules in a device as well as a computing unit and a computer program for carrying it out.

Hintergrund der ErfindungBackground of the invention

Die Verwendung von digitalen Zertifikaten ist insbesondere in der Webtechnologie weit verbreitet. Zentral dafür ist das Zertifikatsmanagement, was den Prozess zur Verwaltung von digitalen Sicherheitszertifikaten bezeichnet, also die Erzeugung, Speicherung, Verteilung, Überwachung, Sperrung und Widerruf von Zertifikaten. Dabei kommt sogenannten ‚Certificate Authorities‘ bzw. offiziellen Zertifizierungsstellen eine Schlüsselrolle zu, denn sie sind für das Zertifikatsmanagement verantwortlich und dienen als Registrierungsstelle.The use of digital certificates is particularly widespread in web technology. Central to this is certificate management, which refers to the process for managing digital security certificates, i.e. the creation, storage, distribution, monitoring, revocation and revocation of certificates. So-called 'Certificate Authorities' or official certification bodies play a key role because they are responsible for certificate management and serve as registration authorities.

Die Zertifizierungsstelle (CA) hat üblicherweise das Recht, Zertifikate zu erstellen und an diejenigen auszustellen, die sie anfordern. Ausgestellte Zertifikate können zur Verteilung in einem ‚Certificate Repository‘ abgespeichert sein. Diese Einheit kann Aufzeichnungen über gültige Zertifikate mit Attributen wie einer Gültigkeitsdauer und Eigentümern der Zertifikate führen. Zertifikate, die nicht von bekannten Zertifizierungsstellen ausgestellt wurden, werden als zweifelhaft angesehen, so dass beispielsweise der Zugang zu einer mit diesem Zertifikat versehenen Webseite blockiert werden kann.The certificate authority (CA) usually has the right to create and issue certificates to those who request them. Issued certificates can be stored in a 'Certificate Repository' for distribution. This entity can maintain records of valid certificates with attributes such as a validity period and certificate owners. Certificates that are not issued by well-known certification authorities are considered dubious, so that, for example, access to a website bearing this certificate can be blocked.

Grundsätzlich können auch andere Elemente als Webinhalte mit Zertifikaten versehen werden, z.B. Software. Die Verwendung einer zentralen Zertifizierungsstelle zur Zertifikatsverwaltung bringt zwar viele Vorteile insbesondere in Bezug auf die Authentifizierungsfunktionen von Zertifikaten. Jedoch wird dabei immer eine bestehende Verbindung zu den Servern der Zertifizierungsstelle vorausgesetzt.In principle, elements other than web content can also be provided with certificates, e.g. software. Using a central certification authority for certificate management brings many advantages, especially with regard to the authentication functions of certificates. However, an existing connection to the certification authority's servers is always required.

Offenbarung der ErfindungDisclosure of the invention

Erfindungsgemäß werden ein Verfahren zur Verwaltung von ausführbaren Softwaremodulen in einer Vorrichtung sowie eine Recheneinheit und ein Computerprogramm zu dessen Durchführung mit den Merkmalen der unabhängigen Patentansprüche vorgeschlagen. Vorteilhafte Ausgestaltungen sind Gegenstand der Unteransprüche sowie der nachfolgenden Beschreibung.According to the invention, a method for managing executable software modules in a device as well as a computing unit and a computer program for its implementation are proposed with the features of the independent claims. Advantageous refinements are the subject of the subclaims and the following description.

Insbesondere wird ein Verfahren zur Verwaltung von ausführbaren Softwaremodulen mit Hilfe von Zertifikaten vorgeschlagen, bei dem zunächst ein digitales Zertifikat, welches mindestens einem Softwaremodul in der Vorrichtung zugeordnet ist, durch eine Verwaltungseinheit in der Vorrichtung erfasst wird. Dann werden ein oder mehrere Attribute, die in dem Zertifikat gespeichert sind, durch die Verwaltungseinheit geprüft, und eine Ausführung des mindestens einen Softwaremoduls in Abhängigkeit von der Prüfung der ein oder mehreren Attribute zugelassen oder verhindert.In particular, a method for managing executable software modules using certificates is proposed, in which a digital certificate, which is assigned to at least one software module in the device, is first recorded by an administration unit in the device. Then one or more attributes stored in the certificate are checked by the management unit, and execution of the at least one software module is permitted or prevented depending on the check of the one or more attributes.

Dabei kann das Verfahren unter anderem einschließen, dass zunächst das Zertifikat auf Gültigkeit geprüft wird, und dass eine Ausführung aller Softwaremodule, welche dem Zertifikat zugeordnet sind, verhindert wird, falls das Zertifikat nicht gültig ist. Eine solche Prüfung auf Gültigkeit kann beispielsweise das Prüfen eines Gültigkeitszeitraums auf Grundlage einer Zeitangabe in dem Zertifikat, und/oder das Prüfen einer kryptographischen Signatur des Zertifikats umfassen.The method can include, among other things, that the certificate is first checked for validity and that execution of all software modules that are assigned to the certificate is prevented if the certificate is not valid. Such a validity check can include, for example, checking a validity period based on a time specification in the certificate, and/or checking a cryptographic signature of the certificate.

Das beschriebene Prüfen von Attributen kann je nach Ausführungsform beispielsweise das Erfassen eines Zertifikattyps, der in dem Zertifikat als ein Attribut angegeben ist, und das Ausführen einer Aktion für das mindestens eine Softwaremodul in Abhängigkeit von dem erfassten Zertifikattyp umfassen; damit können Aktionen wie Softwareaktualisierungen, Kompatibilitätsprüfungen, Integrationen mit anderen Modulen, Versionsprüfungen und andere umgesetzt werden. Insbesondere können auch vorübergehende oder dauerhafte Deaktivierungen bzw. Sperrungen von Softwaremodulen in Abhängigkeit von den Zertifikattypen ermöglicht werden. Weiter können Aktionen ausgelöst werden, die zur Prüfung weiterer Attribute erforderlich sind; wenn es sich beispielsweise um ein Zertifikat mit Ortsangaben handelt und dies durch Angabe eines Zertifikatstyps erkannt wurde, kann im nächsten Schritt der Ort der Vorrichtung über ein Lokalisierungsmodul (z.B. GPS-Daten) ermittelt werden.Depending on the embodiment, the described checking of attributes may include, for example, detecting a certificate type specified in the certificate as an attribute and executing an action for the at least one software module depending on the detected certificate type; This allows actions such as software updates, compatibility checks, integrations with other modules, version checks and others to be implemented. In particular, temporary or permanent deactivations or blocks of software modules can also be made possible depending on the certificate types. Actions that are required to check additional attributes can also be triggered; For example, if it is a certificate with location information and this was recognized by specifying a certificate type, the location of the device can be determined in the next step using a localization module (e.g. GPS data).

Die Attribute, die überprüft werden können, können beispielsweise eines oder mehrere der folgenden zeitlichen Attribute umfassen: eine absolute Gültigkeitsdauer für das Zertifikat; eine Angabe eines Zeitfensters, in welchem die Ausführung des mindestens einen Softwaremoduls zugelassen oder nicht zugelassen ist; eine Gültigkeitsdauer des Zertifikats ab einem Installationsdatum eines zugeordneten Softwaremoduls. Damit kann die Ausführung eines Softwaremoduls ausdrücklich zugelassen oder verhindert werden, falls eine zeitliche Prüfung (z.B. mit der Systemzeit oder einer Laufzeit der Software) ergibt, dass die aktuelle Zeit in einen als gültig angegebenen Zeitraum fällt.The attributes that can be checked may include, for example, one or more of the following temporal attributes: an absolute validity period for the certificate; an indication of a time window in which the execution of the at least one software module is permitted or not permitted; a validity period of the certificate from an installation date of an assigned software module. This means that the execution of a software module can be expressly permitted or prevented if a time check (e.g. with the system time or a runtime of the software) shows that the current time falls within a period specified as valid.

Alternativ oder zusätzlich können die Attribute eine oder mehrere Angaben zur Identifikation eines Nutzers umfassen, so dass das Prüfen der Attribute ein Vergleichen der Angaben zur Identifikation mit einem Benutzerkonto der Vorrichtung umfasst, welches auf ein zugeordnetes Softwaremodul zugreifen kann. So ist auch eine einfache Veränderung von Nutzungsrechten mit sicherer Authentifizierung möglich.Alternatively or additionally, the attributes can include one or more information for identifying a user, so that checking the attributes involves comparing the identification information with a user account of the device includes, which can access an assigned software module. This also makes it possible to easily change usage rights with secure authentication.

Alternativ oder zusätzlich können die Attribute eine Angabe eines örtlichen Bereichs umfassen, in welchem die Ausführung des mindestens einen Softwaremoduls zugelassen oder nicht zugelassen ist. Die Prüfung kann dann insbesondere das Erfassen eines aktuellen Orts der Vorrichtung umfassen, wonach geprüft wird, ob der aktuelle Ort in dem angegebenen örtlichen Bereich liegt, und falls dies der Fall ist, Ausführen oder Verhindern einer Ausführung des Softwaremoduls in Abhängigkeit von der Angabe des Attributs. Damit können „Geofencing“-Mechanismen umgesetzt werden.Alternatively or additionally, the attributes can include an indication of a local area in which the execution of the at least one software module is permitted or not permitted. The check can then in particular include detecting a current location of the device, after which it is checked whether the current location is in the specified local area, and if this is the case, executing or preventing execution of the software module depending on the specification of the attribute . This allows “geofencing” mechanisms to be implemented.

Die Attribute können alternativ oder zusätzlich auch eine Angabe von unterstützten Versionen eines Softwaremoduls umfassen. In diesem Fall kann das Prüfen der Attribute einen Vergleich einer aktuellen Versionsangabe eines installierten Softwaremoduls mit der Angabe von unterstützten Versionen des Softwaremoduls umfassen, und das Ausführen des Softwaremoduls kann verhindert werden, falls die aktuelle Version des installierten Softwaremoduls nicht mit der Angabe der unterstützten Versionen übereinstimmt. Optional kann bei einer nicht unterstützten Version dann auch direkt eine Aktualisierung eines Softwaremoduls automatisch eingeleitet werden, oder ein Nutzer kann durch eine entsprechende Benachrichtigung zu einer Aktualisierung eines Softwaremoduls aufgefordert werden.The attributes can alternatively or additionally also include an indication of supported versions of a software module. In this case, checking the attributes may include comparing a current version indication of an installed software module with the indication of supported versions of the software module, and executing the software module may be prevented if the current version of the installed software module does not match the indication of supported versions . Optionally, in the case of an unsupported version, an update of a software module can then be initiated automatically, or a user can be prompted to update a software module through a corresponding notification.

Es ist darüber hinaus auch möglich, dass das Zertifikat einen oder mehrere kryptographische Signaturschlüssel umfasst, die dann zur Signatur weiterer Zertifikate, zur Signatur von Softwaremodulen oder zu anderen Zwecken eingesetzt werden können.It is also possible for the certificate to include one or more cryptographic signature keys, which can then be used to sign other certificates, to sign software modules or for other purposes.

Die Prüfung von Attributen des Zertifikats kann beispielsweise durch einen Aufruf eines zugeordneten Softwaremoduls zur Ausführung, eine Installation eines Softwaremoduls, oder einen Ablauf einer vorgegebenen Zeitspanne ausgelöst werden.The checking of attributes of the certificate can be triggered, for example, by calling an assigned software module for execution, installing a software module, or expiring a predetermined period of time.

Das Verfahren kann in beispielhaften Ausführungsformen darüber hinaus auch weitere Verwaltungsmechanismen für die Zertifikate umfassen, wie etwa das Erhalten, von einer entfernten Verwaltungseinheit, einer Information über einen Rückruf eines Zertifikats, welches in der Vorrichtung vorliegt; und das Markieren des zurückgerufenen Zertifikats als ungültig.In exemplary embodiments, the method may also include further management mechanisms for the certificates, such as obtaining, from a remote management unit, information about a revocation of a certificate that is present in the device; and marking the revoked certificate as invalid.

Die automatische lokale Verwaltung der Zertifikate durch die Verwaltungseinheit reduziert den Aufwand deutlich, z.B. muss niemand vor Ort sein, um Änderungen an Zertifikaten durchzuführen oder neue Zertifikate auf das System aufzuspielen. Durch die Verwendung von Zertifikaten zur Prüfung der Ausführbarkeit einzelner Softwaremodule ist es auf einfache Weise möglich, eine Vielzahl von Bedingungen für die Ausführung festzulegen, wie etwa zeitliche und örtliche Einschränkungen, Nutzerberechtigungen, Kompatibilitäts- und Versionseinschränkungen und andere, und diese Bedingungen auch flexibel abzuändern oder zu widerrufen.The automatic local management of certificates by the administrative unit significantly reduces the effort, e.g. no one has to be on site to make changes to certificates or upload new certificates to the system. By using certificates to check the executability of individual software modules, it is easily possible to set a variety of conditions for execution, such as time and location restrictions, user permissions, compatibility and version restrictions, and others, and to also flexibly change these conditions to revoke.

Eine erfindungsgemäße Recheneinheit, z.B. ein Steuergerät eines Kraftfahrzeugs, ist, insbesondere programmtechnisch, dazu eingerichtet, ein erfindungsgemäßes Verfahren durchzuführen.A computing unit according to the invention, for example a control unit of a motor vehicle, is set up, in particular in terms of programming, to carry out a method according to the invention.

Auch die Implementierung eines erfindungsgemäßen Verfahrens in Form eines Computerprogramms oder Computerprogrammprodukts mit Programmcode zur Durchführung aller Verfahrensschritte ist vorteilhaft, da dies besonders geringe Kosten verursacht, insbesondere wenn ein ausführendes Steuergerät noch für weitere Aufgaben genutzt wird und daher ohnehin vorhanden ist. Schließlich ist ein maschinenlesbares Speichermedium vorgesehen mit einem darauf gespeicherten Computerprogramm wie oben beschrieben. Geeignete Speichermedien bzw. Datenträger zur Bereitstellung des Computerprogramms sind insbesondere magnetische, optische und elektrische Speicher, wie z.B. Festplatten, Flash-Speicher, EEPROMs, DVDs u.a.m. Auch ein Download eines Programms über Computernetze (Internet, Intranet usw.) ist möglich. Ein solcher Download kann dabei drahtgebunden bzw. kabelgebunden oder drahtlos (z.B. über ein WLAN-Netz, eine 3G-, 4G-, 5G- oder 6G-Verbindung, etc.) erfolgen.The implementation of a method according to the invention in the form of a computer program or computer program product with program code for carrying out all method steps is also advantageous because this causes particularly low costs, especially if an executing control device is used for additional tasks and is therefore present anyway. Finally, a machine-readable storage medium is provided with a computer program stored thereon as described above. Suitable storage media or data carriers for providing the computer program are, in particular, magnetic, optical and electrical memories, such as hard drives, flash memories, EEPROMs, DVDs, etc. It is also possible to download a program via computer networks (Internet, intranet, etc.). Such a download can be wired or wired or wireless (e.g. via a WLAN network, a 3G, 4G, 5G or 6G connection, etc.).

Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und der beiliegenden Zeichnung.Further advantages and refinements of the invention result from the description and the accompanying drawing.

Die Erfindung ist anhand von Ausführungsbeispielen in der Zeichnung schematisch dargestellt und wird im Folgenden unter Bezugnahme auf die Zeichnung beschrieben.The invention is shown schematically in the drawing using exemplary embodiments and is described below with reference to the drawing.

Kurze Beschreibung der ZeichnungenBrief description of the drawings

  • 1 zeigt den Ablauf eines beispielhaften Verfahrens als Flussdiagramm. 1 shows the sequence of an exemplary procedure as a flowchart.

Ausführungsformen der ErfindungEmbodiments of the invention

Die vorliegende Erfindung nutzt Grundprinzipien digitaler Sicherheitszertifikate und wandelt diese für eine erweiterte Verwaltung von Softwarefunktionalitäten auf Endgeräten ab. Dabei wird die Notwendigkeit einer starren Kopplung mit einer Zertifizierungsstelle überwunden sowie die üblichen Verwaltungsmechanismen durch weitere Funktionalitäten erweitert. Dabei kann eine lokal auf einer Vorrichtung verwendete Verwaltungseinheit optional auch mit cloudbasierten Methoden gekoppelt werden. Die Zertifikate können insbesondere genutzt werden, um verschiedene Berechtigungen, Funktionalitäten und ähnliches für ein Softwaremodul auf einer Vorrichtung zu steuern und zu überwachen und damit für verbesserte Sicherheit bei gewährleisteter Funktionsfähigkeit zu sorgen.The present invention uses basic principles of digital security certificates and modifies them for expanded management of software functionalities on end devices. This eliminates the need for a rigid connection with a certification authority and the usual ver Management mechanisms expanded with additional functionalities. An administration unit used locally on a device can optionally also be coupled with cloud-based methods. The certificates can be used in particular to control and monitor various authorizations, functionalities and the like for a software module on a device and thus to ensure improved security while ensuring functionality.

Insbesondere können die hier beschriebenen Ausführungsformen in Verbindung mit einer Architektur verwendet werden, bei der eine oder mehrere Vorrichtungen bzw. Komponenten mit einer zentralen Steuereinheit verbunden sind und die Vorrichtungen über Softwaremodule bzw. „app-like Software“ über eine gemeinsame Softwareplattform durch die Steuereinheit angesteuert werden. Dabei kann die gemeinsame Plattform verschiedene Funktionen übernehmen, wie etwa eine Abstrahierung der Anwendungssoftware von den physischen Komponenten und eine Integration einzelner Softwaremodule und einzelner angesteuerter Komponenten in das Gesamtsystem. Die Softwaremodule können beispielsweise über mehrere Ebenen und geeignete Anwendungsschnittstellen soweit abstrahiert werden, dass die Softwaremodule unabhängig von der tatsächlichen Ausgestaltung angesteuerter Hardware entwickelt und ausgeführt werden können.In particular, the embodiments described here can be used in conjunction with an architecture in which one or more devices or components are connected to a central control unit and the devices are controlled by the control unit via software modules or “app-like software” via a common software platform become. The common platform can take on various functions, such as abstracting the application software from the physical components and integrating individual software modules and individual controlled components into the overall system. The software modules can, for example, be abstracted across multiple levels and suitable application interfaces to such an extent that the software modules can be developed and executed independently of the actual design of the controlled hardware.

Systeme dieser Art eignen sich beispielsweise für industrielle oder landwirtschaftliche Systeme mit mehreren eigenständigen Komponenten, die zumindest teilweise zentral und/oder gemeinsam angesteuert werden sollen. Es kann sich dabei als Beispiel um ein landwirtschaftliches Gespann mit mehreren eigenständigen Vorrichtungen handeln, wie etwa einem Traktor und zusätzlichen Anbaugeräten wie etwa einer Feldspritze. Jede Vorrichtung kann auch wiederum verschiedene, getrennt ansteuerbare Komponenten umfassen, z.B. verschiedene Aktoren, Sensoren, Düsen und andere. Es kann dann eine Steuereinheit vorgesehen sein, die auf einer der Vorrichtungen (z.B. dem Traktor) zur Steuerung des Gesamtsystems installiert ist, während sich die Vorrichtungen bzw. Anbaugeräte im Gespann, die mit diesem Steuergerät ebenfalls angesteuert werden, immer wieder ändern können. Es können aber auch externe Steuereinheiten oder mehrere zusammenarbeitende Steuereinheiten genutzt werden. Zur Steuerung und Kommunikation zwischen den Vorrichtungen und einer oder mehreren Steuereinheiten kann eine geeignete Datenverbindung vorgesehen sein, die drahtlos und/oder drahtgebunden eingerichtet sein kann.Systems of this type are suitable, for example, for industrial or agricultural systems with several independent components that are to be controlled at least partially centrally and/or together. For example, this can be an agricultural combination with several independent devices, such as a tractor and additional attachments such as a field sprayer. Each device can also include different, separately controllable components, e.g. different actuators, sensors, nozzles and others. A control unit can then be provided, which is installed on one of the devices (e.g. the tractor) to control the entire system, while the devices or attachments in the trailer, which are also controlled with this control device, can change again and again. However, external control units or several control units working together can also be used. For control and communication between the devices and one or more control units, a suitable data connection can be provided, which can be set up wirelessly and/or wired.

Zur Ausführung der Softwaremodule können Steuereinheiten wie beispielsweise dedizierte Maschinencontroller, Steuergeräte, Computer, Mobilgeräte wie Smartphones und Tablets oder auch andere prozessor- oder controllerbasierte Vorrichtungen genutzt werden. Es versteht sich, dass solche Vorrichtungen mit verschiedenen üblichen Komponenten ausgestattet sein können, insbesondere mit Prozessoren, verschiedenen Schnittstellen, flüchtigen und/oder nichtflüchtigen Speicherelementen zur Speicherung von Daten und ausführbaren Anwendungen, einem geeigneten Betriebssystem und sonstigem.Control units such as dedicated machine controllers, control devices, computers, mobile devices such as smartphones and tablets or other processor- or controller-based devices can be used to execute the software modules. It is understood that such devices can be equipped with various common components, in particular with processors, various interfaces, volatile and/or non-volatile memory elements for storing data and executable applications, a suitable operating system and others.

Für Softwaremodule, die auf einem solchen oder einem anderen System ausgeführt werden, sollen nun erweiterte Zertifikatsfunktionen eingeführt werden. Generell können Zertifikate insbesondere dazu dienen, eine bestimmte Aufgabe oder Funktion zu legitimieren. Dabei soll ein Zertifikat üblicherweise die Identität des Ausstellers bestätigen und damit die Sicherheit bieten, dass das Zertifikat selbst und die enthaltenen Informationen von dem vertrauenswürdigen Aussteller stammen.Extended certificate functions are now to be introduced for software modules that run on such or another system. In general, certificates can be used to legitimize a specific task or function. A certificate is usually intended to confirm the identity of the issuer and thus provide security that the certificate itself and the information it contains come from the trustworthy issuer.

Bei einer verteilten oder vernetzten Architektur mit modularen Funktionalitäten ist es besonders vorteilhaft, wenn die Funktionalitäten jeweils den aktuellsten Stand der Entwicklung darstellen. Für den Fall, dass beispielsweise ein kritisches Sicherheitsupdate eines Softwaremoduls bereitgestellt wird, kann sichergestellt werden, dass die nicht mehr sichere Modulversion ohne ein Update nicht mehr ausgeführt werden darf. Zur Verwirklichung solcher Funktionen kann gemäß beispielhafter Ausführungsformen ein Zertifikatssystem genutzt werden. Beispielsweise könnte über ein gezieltes Verfallsdatum eines Zertifikats für ein bestimmtes Softwaremodul oder über einen Rückruf von Zertifikaten die zuvor beschriebene Funktion zur Versionskontrolle umgesetzt werden.In the case of a distributed or networked architecture with modular functionalities, it is particularly advantageous if the functionalities represent the latest development status. In the event that, for example, a critical security update of a software module is provided, it can be ensured that the module version that is no longer secure can no longer be executed without an update. According to exemplary embodiments, a certificate system can be used to implement such functions. For example, the previously described version control function could be implemented via a targeted expiry date of a certificate for a specific software module or via a recall of certificates.

Dabei kann ein Endgerät bzw. eine Vorrichtung vorhanden sein, welche eine oder mehrere darauf installierte Softwaremodule (Anwendungssoftware) ausführen kann. Dabei kann es sich um eine einzelne Vorrichtung mit bestimmten Funktionalitäten handeln; ebenso kann die Vorrichtung aber auch dazu bestimmt sein, direkt oder mittels der Softwaremodule ein oder mehrere andere Geräte oder Peripherieelemente anzusteuern, z.B. als Steuergerät eines Gesamtsystems. Falls ein System wie oben beispielhaft beschrieben vorliegt, in dem eine gemeinsame Softwareplattform als Ansteuerungs- und Abstraktionsschicht für ein oder mehrere der Softwaremodule dient, können alle nachfolgenden Schritte insbesondere innerhalb einer solchen gemeinsamen Plattform auf der Vorrichtung, die als zentrale Steuerung dient, durchgeführt werden. Bevorzugt hat die gemeinsame Softwareplattform in diesem Fall verschiedene Informationen über die vorhandenen Softwaremodule und ihr Zusammenwirken, und hat außerdem zumindest teilweise die Möglichkeit, die Ausführung von einzelnen Softwaremodulen zu verhindern, Parameter zu verändern oder die Ausführung von Softwaremodulen zu erlauben. Damit eignet sich ein solches System besonders für das hier vorgestellte Zertifikatsverfahren. Grundsätzlich kann aber das hier beschriebene Verfahren in allen Systemen ausgeführt werden, in der eine Verwaltungseinheit die Möglichkeit hat, die Ausführung einer Software zu überwachen, entweder direkt oder durch Kommunikation mit einer anderen Einheit.There may be a terminal or device that can execute one or more software modules (application software) installed on it. This can be a single device with specific functionalities; Likewise, the device can also be intended to control one or more other devices or peripheral elements directly or by means of the software modules, for example as a control device of an overall system. If there is a system as described above as an example, in which a common software platform serves as a control and abstraction layer for one or more of the software modules, all subsequent steps can be carried out in particular within such a common platform on the device that serves as a central controller. In this case, the common software platform preferably has various information about the existing software modules and their interaction, and also has at least some of the information Ability to prevent the execution of individual software modules, change parameters or allow the execution of software modules. This makes such a system particularly suitable for the certificate procedure presented here. In principle, however, the method described here can be carried out in all systems in which an administrative unit has the opportunity to monitor the execution of software, either directly or through communication with another unit.

Zertifikate, die für ein Softwaremodul verfügbar sind, können direkt in einer Verwaltungseinheit lokal auf der Vorrichtung verwaltet werden. Die Verwaltungseinheit kann als Softwarekomponente oder als Teilfunktionalität einer Software in der Vorrichtung vorliegen, auf der die auszuführenden Softwaremodule installiert sind bzw. installiert werden können. Die Verwaltungseinheit kann die Zertifikate in geeigneten Speicherbereichen abspeichern und anderweitig verwalten. Durch Überprüfung der Zertifikate kann die Verwaltungseinheit zum einen die grundsätzliche Gültigkeit der Zertifikate prüfen, also beispielsweise, ob das vorliegende Zertifikat tatsächlich von einer gültigen Stelle ausgestellt wurde, zum anderen aber auch auf weitere Informationen zurückgreifen, die in dem Zertifikat angegeben sind. Die weiteren Informationen können die Angabe eines Zertifikatstyps umfassen, z.B. anhand einer Kennung oder einer anderen Angabe, können aber auch ausführlichere Informationen beinhalten, wie zum Beispiel Angaben in Bezug auf Gültigkeitszeiträume, Kompatibilitäten und andere.Certificates available for a software module can be managed directly in a management unit locally on the device. The management unit can be present as a software component or as partial functionality of a software in the device on which the software modules to be executed are or can be installed. The management unit can store the certificates in suitable storage areas and otherwise manage them. By checking the certificates, the administrative unit can, on the one hand, check the basic validity of the certificates, for example whether the certificate in question was actually issued by a valid authority, but on the other hand can also access further information that is specified in the certificate. The further information may include the specification of a certificate type, e.g. based on an identifier or other information, but may also include more detailed information, such as information regarding validity periods, compatibilities and others.

Außerdem können entfernte weitere Verwaltungseinheiten genutzt werden, die verschiedene andere Verwaltungsmechanismen übernehmen oder ergänzen können, z.B. als cloudbasierte Lösung oder auf einem zentralen Server. Beispielsweise kann eine entfernte Verwaltungseinheit dazu eingerichtet sein, Zertifikate per Fernwartung zurückzunehmen, Gültigkeitsbereiche oder Gültigkeitszeiträume zu verändern.In addition, additional remote management units can be used that can take over or supplement various other management mechanisms, e.g. as a cloud-based solution or on a central server. For example, a remote administrative unit can be set up to revoke certificates remotely, change validity areas or validity periods.

Dabei kann ein Zertifikat einem einzelnen Softwaremodul zugeordnet sein; es ist aber auch möglich, dass ein Zertifikat für mehrere Softwaremodule gilt, z.B. eine vorgegebene Gruppe von Softwaremodulen oder für Softwaremodule mit bestimmten Eigenschaften. Dabei können Zertifikate auch auf Softwaremodule angewendet werden, die erst zu einem späteren Zeitpunkt auf der Vorrichtung installiert werden. Die Zertifikate können automatisiert über geeignete Verwaltungsmechanismen der Verwaltungseinheit verwaltet werden.A certificate can be assigned to an individual software module; However, it is also possible for a certificate to be valid for several software modules, e.g. a given group of software modules or for software modules with certain properties. Certificates can also be applied to software modules that will only be installed on the device at a later date. The certificates can be managed automatically using suitable management mechanisms of the administrative unit.

Ein Zertifikat kann beispielsweise bereits zusammen mit einem Softwaremodul ausgeliefert bzw. bereitgestellt werden, welches zur Installation auf einer Vorrichtung vorgesehen ist. In anderen Fällen kann auch ein Zertifikat erst später hinzugefügt werden und dabei durch eine geeignete Identifizierung, z.B. eine Kennung des Softwaremoduls, diesem zugeordnet werden.For example, a certificate can already be delivered or provided together with a software module that is intended for installation on a device. In other cases, a certificate can be added later and assigned to it using a suitable identification, e.g. an identifier of the software module.

Je nach Aufgabe kann ein Softwaremodul mit einem oder mehreren Zertifikaten verknüpft sein. Natürlich können daneben auch weitere Softwaremodule verwendet werden, die nicht mit Zertifikaten ausgestattet sind.Depending on the task, a software module can be linked to one or more certificates. Of course, other software modules that are not equipped with certificates can also be used.

1 zeigt beispielhaft einen möglichen Verfahrensablauf. Dabei kann zunächst in Schritt 110 eine Auslösebedingung für eine Überprüfung von Zertifikaten für ein Softwaremodul durch die Verwaltungseinheit erkannt werden. Dabei kann es sich beispielsweise um einen Aufruf des Softwaremoduls zur Ausführung handeln, entweder automatisch oder manuell über einen Benutzerbefehl, oder um die Neuinstallation bzw. Neuintegration eines Softwaremoduls. Dabei können Softwaremodule optional oder zwangsweise mit Zertifikaten überwacht werden; je nach Modul kann dann angegeben sein, ob ein gültiges Zertifikat zur Ausführung zwingend erforderlich ist. Es ist aber auch möglich, dass Zertifikate für alle vorhandenen Softwaremodule automatisch in bestimmten Zeitabständen überprüft werden, oder z.B. immer dann, wenn eine Verbindung der Steuereinheit mit anderen Komponenten oder mit einer entfernten Einheit aufgebaut wird. Damit kann auch sichergestellt werden, dass abgelaufene Zertifikate rechtzeitig erneuert werden und nicht erst dann auffallen, wenn das zugehörige Softwaremodul ausgeführt werden soll. 1 shows an example of a possible procedure. First, in step 110, a trigger condition for a check of certificates for a software module can be recognized by the management unit. This can be, for example, a call to the software module for execution, either automatically or manually via a user command, or the reinstallation or reintegration of a software module. Software modules can be optionally or compulsorily monitored with certificates; Depending on the module, it can then be specified whether a valid certificate is mandatory for execution. However, it is also possible for certificates for all existing software modules to be checked automatically at certain time intervals, or, for example, whenever a connection between the control unit and other components or with a remote unit is established. This can also ensure that expired certificates are renewed in a timely manner and are not only noticed when the associated software module is about to be executed.

In Schritt 120 können für eines oder mehrere (oder auch alle) der installierten Softwaremodule die vorliegenden Zertifikate erfasst und abgerufen werden. Dies kann beispielsweise auf einer geeigneten Kennung beruhen. In Schritt 130 kann dann zunächst geprüft werden, ob das Zertifikat an sich gültig ist, ob z.B. eine Laufzeit des Zertifikats bereits abgelaufen ist, ob eine optional vorhandene Signatur des Zertifikats gültig ist, oder ob der Aussteller des Zertifikats vertrauenswürdig ist und damit ein gültiges Zertifikat bereitstellen kann. Falls dies nicht der Fall ist, ist es optional möglich, dass alle diesem Zertifikat zugehörigen Softwaremodule, die ein Zertifikat zur Ausführung erforderlich machen, in Schritt 132 deaktiviert werden bzw. die Ausführung dieser Module verhindert wird.In step 120, the existing certificates can be recorded and retrieved for one or more (or all) of the installed software modules. This can be based, for example, on a suitable identifier. In step 130 it can then first be checked whether the certificate itself is valid, for example whether a term of the certificate has already expired, whether an optional signature of the certificate is valid, or whether the issuer of the certificate is trustworthy and therefore a valid certificate can provide. If this is not the case, it is optionally possible for all software modules associated with this certificate that require a certificate for execution to be deactivated in step 132 or for the execution of these modules to be prevented.

In Schritt 140 können Attribute ausgelesen werden, die in dem Zertifikat angegeben sind und sich auf Berechtigungen bzw. Bedingungen zur Ausführbarkeit mindestens eines zugeordneten Softwaremoduls beziehen. Eines oder mehrere dieser Attribute können dann in Schritt 150 geprüft werden. Die verschiedenen möglichen Attribute, die hier zur Anwendung kommen können, werden nachstehend noch detaillierter beschrieben. Abhängig vom Ergebnis der Prüfung wird dann die Ausführung eines zugeordneten Softwaremoduls entweder in Schritt 152 verhindert bzw. das Modul zumindest vorübergehend deaktiviert, oder in Schritt 154 kann unmittelbar die Ausführung des Softwaremoduls nach erfolgreicher Prüfung gestartet werden. Falls eine Ausführung des Softwaremoduls derzeit nicht angefordert ist, z.B. bei einer zyklischen Prüfung der Zertifikate, kann dieser Schritt natürlich auch ausgelassen werden.In step 140, attributes can be read that are specified in the certificate and relate to authorizations or conditions for the executability of at least one assigned software module. One or more of these attributes can then be checked in step 150. The different possible attributes that are available here Applications can be described in more detail below. Depending on the result of the test, the execution of an assigned software module is then either prevented in step 152 or the module is at least temporarily deactivated, or in step 154 the execution of the software module can be started immediately after a successful test. If execution of the software module is not currently requested, for example during a cyclic check of the certificates, this step can of course be omitted.

Dabei können insbesondere Zertifikate mit zeitlichem Bezug und Zertifikate mit inhaltlichem Bezug unterschieden werden; ebenso ist es aber auch möglich, dass mit einem Zertifikat beide Funktionen übernommen werden, dass ein Zertifikat also sowohl inhaltliche als auch zeitliche Elemente steuert.In particular, a distinction can be made between certificates relating to time and certificates relating to content; It is also possible for one certificate to take on both functions, i.e. one certificate controls both content and time elements.

Ein Zertifikat mit zeitlichem Bezug kann insbesondere den Ablauf von Berechtigungen für das Softwaremodul steuern. Beispielsweise kann festgelegt sein, dass nach Ablauf des Zertifikats ein Softwaremodul nicht mehr gestartet werden kann bzw. automatisch deaktiviert wird. Ein solches Zertifikat kann beispielsweise bereits bei der Auslieferung des Softwarepakets für das Softwaremodul enthalten sein und mit einem entsprechenden Ablaufdatum für das gesamte Paket versehen sein. Es ist auch möglich, dass kein festes Ablaufdatum vorliegt, sondern dass ein Ablaufdatum abhängig vom Zeitpunkt der Installation festgelegt wird und die Verwaltungseinheit dann sicherstellt, dass das Zertifikat zum festgelegten Zeitpunkt automatisch abläuft.A certificate with a time reference can in particular control the expiration of authorizations for the software module. For example, it can be specified that after the certificate expires, a software module can no longer be started or is automatically deactivated. Such a certificate can, for example, be included when the software package for the software module is delivered and can be provided with a corresponding expiry date for the entire package. It is also possible that there is no fixed expiration date, but rather that an expiration date is set depending on the time of installation and the management unit then ensures that the certificate automatically expires at the specified time.

Darüber hinaus ist es auch möglich, dass zeitliche Merkmale eines Zertifikats lokal oder durch eine Fernverwaltung verändert werden. Beispielsweise kann über die lokale Verwaltungseinheit oder über eine Fernverwaltungseinheit die Gültigkeitsdauer eines Zertifikats und damit die Lauffähigkeit des zugehörigen Softwaremoduls verlängert werden.In addition, it is also possible for temporal characteristics of a certificate to be changed locally or through remote management. For example, the validity period of a certificate and thus the executability of the associated software module can be extended via the local administration unit or via a remote administration unit.

Bei einem Zertifikat mit inhaltlichem Bezug kann die Verwaltungseinheit beispielsweise zwischen drei verschiedenen Typen unterscheiden, wobei jedes Zertifikat einem oder auch mehreren davon gleichzeitig zugeordnet sein kann. For a certificate related to content, the administrative unit can, for example, distinguish between three different types, whereby each certificate can be assigned to one or more of them at the same time.

Beispielsweise können über ein Zertifikat Sicherheitsmerkmale überwacht werden. Ein Zertifikat kann von der Verwaltungseinheit genutzt werden, um ein Sicherheits-Level des zugehörigen Softwaremoduls zu konfigurieren. Ebenso ist es auch möglich, dass bei veränderten Sicherheitseinstellungen auf der Vorrichtung ein Update oder Austausch eines bestimmten Softwaremoduls vorgenommen werden kann, wobei dies abhängig von dem Sicherheits-Level vorgenommen werden kann, das in dem zu dem Softwaremodul zugehörigen Zertifikat angegeben ist.For example, security features can be monitored using a certificate. A certificate can be used by the management unit to configure a security level of the associated software module. It is also possible that if the security settings on the device change, an update or replacement of a specific software module can be carried out, whereby this can be done depending on the security level that is specified in the certificate associated with the software module.

Ein Zertifikat kann auch genutzt werden, um die Kompatibilität mehrerer unterschiedlicher Softwaremodule zueinander einzustellen und zu überprüfen. Alternativ oder zusätzlich kann die Kompatibilität eines Softwaremoduls zu einer Schnittstelle, einem Erweiterungsmodul oder anderen Elementen festgelegt werden. Dabei ist es auch möglich, dass die Kompatibilität, die durch ein Zertifikat festgestellt wird, nur für eine bestimmte Version der jeweiligen Module oder z.B. nur für alle Softwaremodule bis zu einer bestimmten Version (abwärts- oder aufwärtskompatibel) gültig ist.A certificate can also be used to set and check the compatibility of several different software modules with one another. Alternatively or additionally, the compatibility of a software module with an interface, an expansion module or other elements can be specified. It is also possible that the compatibility, which is determined by a certificate, is only valid for a specific version of the respective modules or, for example, only for all software modules up to a specific version (downwards or upwards compatible).

Eine weitere Möglichkeit ist, ein Zertifikat als Betriebserlaubnis für ein bestimmtes Softwaremodul zu nutzen. Mit einem solchen Zertifikat können beispielsweise Infrastrukturen und/oder Zustände definiert werden, unter denen der Betrieb des jeweiligen Softwaremoduls möglich bzw. erlaubt ist. Außerdem kann damit auch eingestellt werden, unter welchen Voraussetzungen der Betrieb des Softwaremoduls nicht mehr gestattet ist.Another option is to use a certificate as an operating permit for a specific software module. Such a certificate can be used, for example, to define infrastructures and/or conditions under which the operation of the respective software module is possible or permitted. It can also be used to set the conditions under which operation of the software module is no longer permitted.

Ein Zertifikat kann damit beispielsweise als Schutz gegen Missbrauch wie Diebstahl verwendet werden. Dazu können Konfigurationen und/oder Nutzungsdaten mit Hilfe des Zertifikats hinterlegt werden, die dann automatisch von der Verwaltungseinheit geprüft werden können, um die Legitimation zum Betrieb des Softwaremoduls oder auch zum Betrieb der gesamten Vorrichtung zu überprüfen. Bei Abweichungen können definierte Aktionen von der Verwaltungseinheit ausgeführt werden, wie etwa eine Meldung an eine entfernte Verwaltungseinheit (z.B. einen Service-Provider der Zertifikatsverwaltung), oder andere ausgelöste Dienste, die eine solche erkannte Abweichung als Auslösebedingung erkennen.A certificate can therefore be used, for example, to protect against misuse such as theft. For this purpose, configurations and/or usage data can be stored using the certificate, which can then be automatically checked by the administrative unit in order to check the legitimacy to operate the software module or also to operate the entire device. In the event of deviations, defined actions can be carried out by the administrative unit, such as a report to a remote administrative unit (e.g. a certificate management service provider), or other triggered services that recognize such a detected deviation as a trigger condition.

Auf ähnliche Art und Weise lässt sich auch ein sicherheitsrelevantes Paket bzw. Softwaremodul aktualisieren, ersetzen oder entfernen, indem das Zertifikat von der Verwaltungseinheit oder einer Fernverwaltungseinheit entzogen und gegebenenfalls durch ein neues ersetzt wird. Dies kann auch der Fall sein, wenn zum Beispiel durch eine Neubewertung im System sich das Sicherheitslevel eines Softwarepakets geändert hat.In a similar manner, a security-relevant package or software module can also be updated, replaced or removed by revoking the certificate from the management unit or a remote management unit and, if necessary, replacing it with a new one. This can also be the case if, for example, the security level of a software package has changed due to a reassessment in the system.

Alternativ oder zusätzlich kann in einem solchen Zertifikat ein geographisches Nutzungsgebiet bzw. eine Sperrzone festgelegt sein. Dann kann unter Nutzung von Lokalisationsdaten in der Vorrichtung, z.B. GPS-Daten in einem Fahrzeug, automatisch bestimmt werden, ob das Softwaremodul ausgeführt werden darf oder nicht. Ebenso ist eine vollständige Deaktivierung oder auch eine Neuaktivierung eines Softwaremoduls abhängig vom Standort über ein solches Zertifikat möglich.Alternatively or additionally, a geographical area of use or a restricted zone can be specified in such a certificate. Then, using localization data in the device, for example GPS data in a vehicle, it can be automatically determined whether the software module may be executed or not. Likewise is one Complete deactivation or reactivation of a software module is possible using such a certificate, depending on the location.

Analog kann auch eine Betriebserlaubnis mit zeitlichem Bezug durch ein Zertifikat umgesetzt werden. Beispielsweise kann in einem Zertifikat eine Sperrzeit oder eine erlaubte Nutzungszeit für ein Softwaremodul angegeben sein. Damit kann die Verwaltungseinheit zusammen mit den Zertifikaten genutzt werden, um gezielt bestimmte Softwaremodule oder angeschlossene Hardwarekomponenten, die über das jeweilige Softwaremodul angesteuert werden, für gewünschte Zeiten zu sperren, d.h. eine Ausführung zu verhindern. Bei einem landwirtschaftlichen System wie einem Sprayer für Pflanzenschutzmittel könnten damit beispielsweise Jahreszeiten mit einem Sprühverbot zum Insektenschutz, welches allgemein festgelegt ist, über ein Zertifikat automatisch eingestellt werden. Ebenso können solche Zeiten dann auch durch Rückruf und Neuausstellung eines Zertifikats abgeändert werden.Similarly, an operating license with a temporal reference can also be implemented through a certificate. For example, a certificate can specify a blocking time or a permitted usage time for a software module. This means that the management unit can be used together with the certificates to specifically block certain software modules or connected hardware components that are controlled via the respective software module for desired times, i.e. to prevent execution. In an agricultural system such as a sprayer for pesticides, for example, seasons with a ban on spraying for insect protection, which is generally defined, could be set automatically via a certificate. Such times can also be changed by recalling and reissuing a certificate.

Weiter ist es möglich, ein Zertifikat mit einer personenbezogenen Berechtigung zu versehen, die etwa über persönliche Accounts eines Bedieners oder über geeignete physische Schlüssel bzw. Token kontrolliert werden kann. Damit kann beispielsweise über ein Zertifikat festgelegt werden, wer die Berechtigung zum Führen einer Arbeitsmaschine hat oder wer neue Arbeitsaufträge einrichten darf. It is also possible to provide a certificate with personal authorization, which can be controlled, for example, via an operator's personal account or via suitable physical keys or tokens. For example, a certificate can be used to determine who is authorized to operate a machine or who can set up new work orders.

Eine Betriebserlaubnis kann natürlich auch von frei festlegbaren Bedingungen abhängig gemacht werden, z.B. die Möglichkeit, Bezahlsysteme bzw. Mietmodelle für Soft- und Hardware umzusetzen. Bei erfolgter Bezahlung können dann die Softwaremodule durch ein geeignetes begrenztes oder unbegrenztes Zertifikat zur Nutzung freigegeben werden.An operating license can of course also be made dependent on freely definable conditions, e.g. the possibility of implementing payment systems or rental models for software and hardware. Once payment has been made, the software modules can then be released for use with a suitable limited or unlimited certificate.

Alle genannten Möglichkeiten können auch kombiniert werden, insbesondere auch bedingt festgelegt werden, so dass beispielsweise eine Berechtigungserlaubnis erst dann überprüft wird, wenn das zeitliche Ablaufdatum noch nicht überschritten ist, oder dass zuerst geprüft wird, ob ein bestimmter Nutzer ein Zugriffsrecht auf das gewünschte Softwaremodul hat und dann weitere Funktionen geprüft werden.All of the options mentioned can also be combined, in particular also determined conditionally, so that, for example, an authorization is only checked when the expiry date has not yet been exceeded, or that it is first checked whether a specific user has access rights to the desired software module and then further functions can be checked.

Es versteht sich, dass die vorstehenden Beispiele für Zertifikatsfunktionen mit zeitlichem Bezug oder mit Inhaltsbezug nicht abschließend sind und dass auch weitere Zertifikatsfunktionen genutzt werden können, die hier nicht beschrieben werden. Die Zertifikate können jeweils spezifisch für die jeweilige Funktion bereitgestellt werden, so dass für ein Softwaremodul beispielsweise ein Sicherheits-Zertifikat, ein Kompatibilitätszertifikat, ein zeitliches Zertifikat mit Ablaufdatum sowie ein Betriebserlaubnis-Zertifikat mit Einschränkungen separat vorliegen kann. Ebenso ist aber auch möglich, dass in einem Zertifikat mehrere der oben angeführten Funktionen in Kombination vereint sind. Bei der separaten Ausstellung ist es einfacher, einzelne Zertifikate abzuändern oder zurückzurufen und mit unterschiedlichen Bedingungen auszustellen; dagegen kann bei einem Zertifikat, welches mehrere Funktionen übernimmt, z.B. eine übergeordnete Funktion festgelegt werden.It is understood that the above examples of certificate functions with a time reference or with a content reference are not exhaustive and that other certificate functions that are not described here can also be used. The certificates can each be provided specifically for the respective function, so that for a software module, for example, a security certificate, a compatibility certificate, a temporal certificate with an expiry date and an operating license certificate with restrictions can be available separately. It is also possible for several of the functions listed above to be combined in one certificate. When issued separately, it is easier to modify or recall individual certificates and issue them with different conditions; On the other hand, for a certificate that takes on several functions, for example, a higher-level function can be specified.

Um zu verhindern, dass sich die ausführende Vorrichtung zu lange von einer entfernten Verwaltungseinheit trennt und damit von erforderlichen Updates oder Prüfungen ausgeschlossen bleibt, kann die Laufzeit der Zertifikate entsprechend zeitlich begrenzt werden und z.B. optional jedes Mal erneuert werden, wenn die entsprechende Verbindung (z.B. zur Cloud) wiederhergestellt wird.In order to prevent the executing device from disconnecting from a remote administrative unit for too long and thus being excluded from necessary updates or checks, the term of the certificates can be limited accordingly and, for example, optionally renewed every time the corresponding connection (e.g. to Cloud) is restored.

Als weitere Option kann bei der Zertifikatsverwaltung ein kryptographischer Schlüssel dazu verwendet werden, Manipulationen wie eine zeitliche Manipulation des Datums zu erkennen bzw. zu verhindern. Zusätzlich kann auch eine Plausibilisierung von Laufzeiten des Softwaremoduls und/oder der Vorrichtung in die Verschlüsselung einbezogen werden.As a further option, a cryptographic key can be used in certificate management to detect or prevent manipulations such as temporal manipulation of the date. In addition, a plausibility check of runtimes of the software module and/or the device can also be included in the encryption.

Die hier beschriebenen Zertifikate können auch zur Signatur der Softwaremodule genutzt werden. Dabei können wiederum verschiedene Signaturen unterschieden werden. Eine Signatur kann vom Entwickler eines Softwaremoduls erstellt werden. Weiter ist es auch möglich, beim Upload eines Softwaremoduls auf einen Server, auf dem es für Anwender zur Installation bereitgestellt werden kann, eine Signatur zu erzeugen. Analog kann beim Download auf eine Vorrichtung eine Signatur über das Zertifikat erstellt werden. Schließlich kann auch nach einem Installationsschritt bzw. nach einer Integration in das Gesamtsystem eine Signatur erstellt werden.The certificates described here can also be used to sign the software modules. Different signatures can be distinguished. A signature can be created by the developer of a software module. It is also possible to generate a signature when uploading a software module to a server on which it can be made available to users for installation. Similarly, a signature can be created via the certificate when downloading to a device. Finally, a signature can also be created after an installation step or after integration into the overall system.

Auch lokal können Signaturen verwendet werden, um z.B. Benutzerrechte zu unterscheiden (Administrator, Besitzer, verschiedene Berechtigungsstufen), oder um eine lokale Signatur nach einem Installations- oder Integrationsschritt in das System als Freigabekennzeichnung anzubringen.Signatures can also be used locally, for example to differentiate user rights (administrator, owner, different authorization levels), or to attach a local signature as a release identifier after an installation or integration step into the system.

Zusätzlich ist auch möglich, dass ein Zertifikat wie hier vorgeschlagen zusammen mit einem klassischen Signaturzertifikat verwendet wird. In diesem Fall kann beispielsweise ein erstes Zertifikat vorliegen, welches ein oder mehrere der hier vorgestellten Attribute verwendet, um verschiedene Funktionen der Softwaremodule und ihrer Ausführung zu steuern, und ein zweites Zertifikat, welches auf herkömmliche Weise signiert ist und öffentliche Schlüssel eines kryptographischen Schlüsselpaars zur Authentifizierung umfasst. Das erste Zertifikat kann dann auf geeignete Weise auf das zweite Zertifikat verweisen, z.B. durch eine Kennung oder Seriennummer, und/oder kann mit den Schlüsseln des zweiten Zertifikats signiert sein.In addition, it is also possible for a certificate as suggested here to be used together with a classic signature certificate. In this case, for example, there may be a first certificate that uses one or more of the attributes presented here to control various functions of the software modules and their execution, and a second certificate that is signed in a conventional manner and public key sel of a cryptographic key pair for authentication. The first certificate can then refer to the second certificate in a suitable manner, for example by an identifier or serial number, and/or can be signed with the keys of the second certificate.

Vorhandene Zertifikate können außerdem auch zur Dokumentation und Erfassung genutzt werden. Beispielsweise kann über die Zertifikatsverwaltungsmechanismen erfasst werden, wann, wo, und/oder wie lange eine bestimmte Version eines bestimmten Softwaremoduls genutzt wurde. Aus diesen Informationen können dann geeignete Dokumentationen über die Nutzungszeiten und -arten automatisiert erstellt werden.Existing certificates can also be used for documentation and recording. For example, the certificate management mechanisms can be used to record when, where and/or how long a specific version of a specific software module was used. Suitable documentation about times and types of use can then be created automatically from this information.

Auch der Rückruf eines Zertifikates kann Teil der Zertifikatsverwaltung sein. So kann beispielsweise ein Zertifikat automatisch zurückgerufen werden, d.h. als ungültig markiert werden, wenn ein Gültigkeitszeitraum abgelaufen ist, oder wenn ein Softwaremodul von einem Softwaremanagement des Systems eine sicherheitskritische Einstufung erhalten hat. Dadurch kann das betroffene Softwaremodul anschließend nicht mehr gestartet bzw. ausgeführt werden. Nach einem Entzug bzw. Rückruf eines Zertifikats kann beispielsweise auch eine automatische Aktualisierung des Softwaremoduls über eine Verbindung zu einem entfernten Server eingeleitet oder vom Benutzer angefordert werden. Nach einer erfolgreichen Aktualisierung kann dann ein neues Zertifikat erteilt werden. Anstelle einem vollständigen Entzug eines Zertifikats ist es auch möglich, zeitlich begrenzte funktionale Degradationen der jeweiligen Softwaremodule vorzunehmen.Revoking a certificate can also be part of certificate management. For example, a certificate can be automatically recalled, i.e. marked as invalid, when a validity period has expired or when a software module has received a safety-critical classification from the system's software management. This means that the affected software module can no longer be started or executed. After a certificate has been revoked or revoked, an automatic update of the software module can, for example, be initiated via a connection to a remote server or requested by the user. After a successful update, a new certificate can then be issued. Instead of completely revoking a certificate, it is also possible to carry out temporary functional degradation of the respective software modules.

Wenn ein solches Zertifikatsverfahren in einem System mit mehreren Komponenten im Verbund angewendet wird (z.B. vernetzte Steuergeräte-Architektur), ist es auch denkbar, dass die Zertifikate mehrerer Vorrichtungen oder mehrerer Vorrichtungskomponenten durch ein übergeordnetes Framework verwaltet werden. Darüber hinaus kann über ein solches Zertifikat eine wechselseitige übergreifende Zertifikatsprüfung auch über mehrere Steuergeräte hinweg durchgeführt werden. Die Prüfung kann auf übliche Weise mit Signaturen und asymmetrischen Schlüsseln erfolgen. Dabei kann die Gültigkeit aller Zertifikate in der Architektur einer Vorrichtung, z.B. einer Arbeitsmaschine mit verschiedenen Komponenten und Steuereinheiten, geprüft werden. Die übergeordnete Verwaltung kann das komplette Zertifikatsmanagement aller Steuergeräte inklusive Erstellung, Bereitstellung und Widerruf von Zertifikaten durch eine einzelne Verwaltungseinheit ermöglichen. Ebenso kann auf dieser Ebene die Synchronisierung der Zertifizierungsdaten erfolgen, z.B. mit einem Dienstanbieter über eine Cloudlösung. If such a certificate procedure is used in a system with several components in a network (e.g. networked control device architecture), it is also conceivable that the certificates of several devices or several device components are managed by a higher-level framework. In addition, such a certificate can be used to carry out a mutual, comprehensive certificate check across several control devices. The verification can be done in the usual way using signatures and asymmetric keys. The validity of all certificates in the architecture of a device, e.g. a work machine with various components and control units, can be checked. The higher-level administration can enable complete certificate management of all control devices, including the creation, provision and revocation of certificates by a single administration unit. The certification data can also be synchronized at this level, e.g. with a service provider via a cloud solution.

Dadurch können Verbindungen zum Provider reduziert werden und gezielte und geplante Synchronisationen vorgenommen werden, während alle weiteren Funktionalitäten lokal verwaltet werden.This allows connections to the provider to be reduced and targeted and planned synchronizations to be carried out, while all other functionalities are managed locally.

Claims (15)

Verfahren zur Verwaltung von ausführbaren Softwaremodulen in einer Vorrichtung, umfassend: Erfassen (120) eines digitalen Zertifikats, welches mindestens einem Softwaremodul in der Vorrichtung zugeordnet ist, durch eine Verwaltungseinheit in der Vorrichtung; Prüfen (150) von einem oder mehreren Attributen, die in dem Zertifikat gespeichert sind; und Durchführen (154) oder Verhindern (152) einer Ausführung des mindestens einen Softwaremoduls in Abhängigkeit von der Prüfung der ein oder mehreren Attribute.Method for managing executable software modules in a device, comprising: Acquiring (120) a digital certificate associated with at least one software module in the device by a management unit in the device; examining (150) one or more attributes stored in the certificate; and performing (154) or preventing (152) execution of the at least one software module depending on checking the one or more attributes. Verfahren nach Anspruch 1, weiter umfassend: Prüfen (130) des Zertifikats auf Gültigkeit; Verhindern (132) der Ausführung aller Softwaremodule, welche dem Zertifikat zugeordnet sind, falls das Zertifikat nicht gültig ist.Procedure according to Claim 1 , further comprising: checking (130) the certificate for validity; Preventing (132) the execution of all software modules associated with the certificate if the certificate is not valid. Verfahren nach Anspruch 1 oder 2, wobei das Prüfen (150) von Attributen umfasst: Erfassen eines Zertifikattyps, der in dem Zertifikat als ein Attribut angegeben ist; und Ausführen einer Aktion für das mindestens eine Softwaremodul in Abhängigkeit von dem erfassten Zertifikattyp.Procedure according to Claim 1 or 2 , wherein checking (150) attributes includes: detecting a certificate type specified in the certificate as an attribute; and performing an action for the at least one software module depending on the captured certificate type. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Attribute eines oder mehrere der folgenden zeitlichen Attribute umfassen: eine absolute Gültigkeitsdauer für das Zertifikat; eine Angabe eines Zeitfensters, in welchem die Ausführung des mindestens einen Softwaremoduls zugelassen oder nicht zugelassen ist; eine Gültigkeitsdauer des Zertifikats ab einem Installationsdatum eines zugeordneten Softwaremoduls.Method according to one of the preceding claims, wherein the attributes comprise one or more of the following temporal attributes: an absolute period of validity for the certificate; an indication of a time window in which the execution of the at least one software module is permitted or not permitted; a validity period of the certificate from an installation date of an assigned software module. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Attribute eine oder mehrere Angaben zur Identifikation eines Nutzers umfassen, und wobei das Prüfen der Attribute ein Vergleichen der Angaben zur Identifikation mit einem Benutzerkonto der Vorrichtung umfasst, welches auf ein zugeordnetes Softwaremodul zugreifen kann.Method according to one of the preceding claims, wherein the attributes comprise one or more information for identifying a user, and wherein checking the attributes includes comparing the identification information with a user account of the device which can access an associated software module. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Attribute eine Angabe eines örtlichen Bereichs umfassen, in welchem die Ausführung des mindestens einen Softwaremoduls zugelassen oder nicht zugelassen ist, und wobei das Prüfen umfasst: Erfassen eines aktuellen Orts der Vorrichtung; Prüfen, ob der aktuelle Ort in dem angegebenen örtlichen Bereich liegt, und falls dies der Fall ist, Ausführen oder Verhindern einer Ausführung des Softwaremoduls in Abhängigkeit von der Angabe des Attributs.Method according to one of the preceding claims, wherein the attributes include an indication of a local area in which the execution of the at least one software module is permitted or not permitted, and wherein the checking comprises: detecting a current location of the device; Check whether the current location is in the specified local area and, if so, execute or prevent execution of the software module depending on the specification of the attribute. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Attribute eine Angabe von unterstützten Versionen eines Softwaremoduls umfassen, und wobei das Prüfen der Attribute umfasst: Vergleichen einer aktuellen Versionsangabe eines installierten Softwaremoduls mit der Angabe von unterstützten Versionen des Softwaremoduls, und Verhindern einer Ausführung, falls die aktuelle Version des installierten Softwaremoduls nicht mit der Angabe der unterstützten Versionen übereinstimmt.Method according to one of the preceding claims, wherein the attributes comprise an indication of supported versions of a software module, and wherein checking the attributes comprises: Comparing a current version information of an installed software module with the information about supported versions of the software module, and Prevent execution if the current version of the installed software module does not match the supported versions. Verfahren nach Anspruch 7, wobei, falls die aktuelle Version des installierten Softwaremoduls nicht mit der Angabe der unterstützten Versionen übereinstimmt, das Verfahren weiter ein Einleiten einer Aktualisierung des Softwaremoduls und/oder Auffordern eines Nutzers zu einer Aktualisierung eines Softwaremoduls umfasst.Procedure according to Claim 7 , wherein, if the current version of the installed software module does not match the information about the supported versions, the method further comprises initiating an update of the software module and / or requesting a user to update a software module. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Zertifikat einen oder mehrere kryptographische Signaturschlüssel umfasst.Method according to one of the preceding claims, wherein the certificate comprises one or more cryptographic signature keys. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Prüfen (130) auf Gültigkeit umfasst: Prüfen eines Gültigkeitszeitraums auf Grundlage einer Zeitangabe in dem Zertifikat, und/oder Prüfen einer kryptographischen Signatur des Zertifikats.Method according to one of the preceding claims, wherein checking (130) for validity comprises: Checking a validity period based on a time specified in the certificate, and/or Checking a cryptographic signature of the certificate. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Prüfen (150) von Attributen des Zertifikats ausgelöst wird (110) durch mindestens eines aus: einem Aufruf eines zugeordneten Softwaremoduls zur Ausführung, einer Installation eines Softwaremoduls; einem Ablauf einer vorgegebenen Zeitspanne;Method according to one of the preceding claims, wherein the checking (150) of attributes of the certificate is triggered (110) by at least one of: a call to an associated software module for execution, an installation of a software module; an expiry of a predetermined period of time; Verfahren nach einem der vorhergehenden Ansprüche, weiter umfassend: Erhalten, von einer entfernten Verwaltungseinheit, einer Information über einen Rückruf eines Zertifikats, welches in der Vorrichtung vorliegt; und Markieren des zurückgerufenen Zertifikats als ungültig.Method according to one of the preceding claims, further comprising: Receiving, from a remote management unit, information about a revocation of a certificate present in the device; and Marking the revoked certificate as invalid. Recheneinheit, die dazu eingerichtet ist, alle Verfahrensschritte eines Verfahrens nach einem der vorstehenden Ansprüche durchzuführen.Computing unit which is set up to carry out all method steps of a method according to one of the preceding claims. Computerprogramm, das eine Recheneinheit dazu veranlasst, alle Verfahrensschritte eines Verfahrens nach einem der Ansprüche 1 bis 12 durchzuführen, wenn es auf der Recheneinheit ausgeführt wird.Computer program that causes a computing unit to carry out all process steps of a process according to one of the Claims 1 until 12 to be carried out when it is executed on the computing unit. Maschinenlesbares Speichermedium mit einem darauf gespeicherten Computerprogramm nach Anspruch 14.Machine-readable storage medium with a computer program stored on it Claim 14 .
DE102022207549.8A 2022-07-25 2022-07-25 Method for managing executable software modules through certificates Pending DE102022207549A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102022207549.8A DE102022207549A1 (en) 2022-07-25 2022-07-25 Method for managing executable software modules through certificates

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102022207549.8A DE102022207549A1 (en) 2022-07-25 2022-07-25 Method for managing executable software modules through certificates

Publications (1)

Publication Number Publication Date
DE102022207549A1 true DE102022207549A1 (en) 2024-01-25

Family

ID=89429594

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022207549.8A Pending DE102022207549A1 (en) 2022-07-25 2022-07-25 Method for managing executable software modules through certificates

Country Status (1)

Country Link
DE (1) DE102022207549A1 (en)

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
BURNS, B. [et al.]: Kubernetes Up & Running. O’Reilly Media, Inc., 2019. – ISBN 978-1-492-04653-0
Norm RFC 5280. 2008. Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile
OLMEDILLA, D. [et al.]: Negotiating trust on the grid. In: Dagstuhl Seminar Proceedings. Schloss Dagstuhl – Leibniz-Zentrum für Informatik, Vol. 5271, 2005.

Similar Documents

Publication Publication Date Title
DE112014005412B4 (en) Program update system and program update method
EP2705410B1 (en) Method and system for providing device-specific operator data for an automation device in an automation installation
WO2019034509A1 (en) Method for the secure replacement of a first manufacturer certificate already incorporated into a device
DE102013108020A1 (en) Authentication scheme for activating a special privilege mode in a secure electronic control unit
DE112012003795T5 (en) Vehicle network system and vehicle information processing method
EP2692157A2 (en) Updating a data storage medium application
WO2017008953A1 (en) Method and arrangement for securely interchanging configuration data for an apparatus
WO2012107329A1 (en) Communication between a vehicle and a central unit
EP3620917B1 (en) Management of licences for soft ip on a partially reconfigurable hardware system
WO2015155093A1 (en) Method and system for deterministic auto-configuration of a device
DE102017100749A1 (en) METHOD AND DEVICE FOR CYCLIC FILING REPLACEMENT OF THE DEACTIVATED VEHICLE
EP3009992B1 (en) Method and device for managing access rights
DE102022207549A1 (en) Method for managing executable software modules through certificates
DE112020001126T5 (en) VEHICLE CONTROL UNIT
EP3752911B1 (en) Method for installing a program code packet onto a device, device, and motor vehicle
EP4018300A1 (en) Configuration method for a railway signalling system and update system
DE102019125393A1 (en) Devices, methods and computer programs for a server, an administration system and a vehicle
DE102015209714A1 (en) Apparatus and method for adjusting usage of a device
WO2020007660A1 (en) Control unit and operating method for integrity self-monitoring suitable for a device which can be used in particular in an automation environment
DE102022128286A1 (en) SAFETY CONTROL FOR AN ELECTRONIC CONTROL UNIT
DE102022128289A1 (en) POWER TUNING FOR ELECTRONIC CONTROL UNIT
EP1643336A1 (en) Clear product identification
WO2021190854A1 (en) Distribution method for licenses to electronic parts
DE102021202015A1 (en) Method of operating a controller and controller
EP4267448A1 (en) Method for the configuration of control software in a rail vehicle

Legal Events

Date Code Title Description
R163 Identified publications notified