DE102012205010A1 - Programmierverfahren, Batterie mit einer Anordnung zur Ausführung des Programmierverfahrens sowie ein Kraftfahrzeug mit einer solchen Batterie - Google Patents

Programmierverfahren, Batterie mit einer Anordnung zur Ausführung des Programmierverfahrens sowie ein Kraftfahrzeug mit einer solchen Batterie Download PDF

Info

Publication number
DE102012205010A1
DE102012205010A1 DE102012205010A DE102012205010A DE102012205010A1 DE 102012205010 A1 DE102012205010 A1 DE 102012205010A1 DE 102012205010 A DE102012205010 A DE 102012205010A DE 102012205010 A DE102012205010 A DE 102012205010A DE 102012205010 A1 DE102012205010 A1 DE 102012205010A1
Authority
DE
Germany
Prior art keywords
data processing
programming
authentication information
processing devices
data
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
DE102012205010A
Other languages
English (en)
Inventor
Andre Boehm
Christoph Brochhaus
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
Samsung SDI Co Ltd
Original Assignee
Robert Bosch GmbH
Samsung SDI Co Ltd
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, Samsung SDI Co Ltd filed Critical Robert Bosch GmbH
Priority to DE102012205010A priority Critical patent/DE102012205010A1/de
Priority to US14/388,801 priority patent/US20150058626A1/en
Priority to PCT/EP2013/051570 priority patent/WO2013143717A1/de
Priority to CN201380016434.4A priority patent/CN104205121B/zh
Publication of DE102012205010A1 publication Critical patent/DE102012205010A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless
    • H04L2209/805Lightweight hardware, e.g. radio-frequency identification [RFID] or sensor

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Secondary Cells (AREA)
  • Electric Propulsion And Braking For Vehicles (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

Die vorliegende Erfindung betrifft ein Programmierverfahren, eine mit einer Anordnung zur Ausführung des Programmierverfahrens kombinierte Batterie sowie ein Kraftfahrzeug mit einer solchen Batterie, welche insbesondere einsetzbar sind für eine parallele abgesicherte Programmierung von Steuergeräten. Hierfür wird ein Programmierverfahren vorgeschlagen, wobei von einer ersten Datenverarbeitungseinrichtung mindestens zwei zweite Datenverarbeitungseinrichtungen programmiert werden. Bei dem Programmierverfahren wird von den mindestens zwei zweiten Datenverarbeitungseinrichtungen jeweils eine erste Authentifizierungsinformation an die erste Datenverarbeitungseinrichtung gesendet, aus den ersten Authentifizierungsinformationen wird jeweils eine zweite Authentifizierungsinformation erzeugt und an die mindestens zwei zweiten Datenverarbeitungseinrichtungen übertragen. Nach Verifizierung der zweiten Authentifizierungsinformationen durch jeweils die mindestens zwei zweiten Datenverarbeitungseinrichtungen erfolgt eine Programmierung der mindestens zwei zweiten Datenverarbeitungseinrichtungen. Dabei ist vorgesehen, dass die mindestens zwei zweiten Authentifizierungsinformationen von der ersten Datenverarbeitungseinrichtung gemeinsam durch einmaliges Senden an die mindestens zwei zweiten Datenverarbeitungseinrichtungen übertragen werden.

Description

  • Die vorliegende Erfindung betrifft ein Programmierverfahren, eine mit einer Anordnung zur Ausführung des Programmierverfahrens kombinierte Batterie sowie ein Kraftfahrzeug mit einer solchen Batterie, welche insbesondere einsetzbar sind für eine parallele abgesicherte Programmierung von Steuergeräten.
  • Stand der Technik
  • Beim Flashprogrammieren von Steuergeräten wird zur Absicherung oft ein sogenanntes Anforderungs-Antwort-Verfahren (Challenge-Response-Verfahren) eingesetzt, um zu verhindern, dass Unbefugte schreibenden Zugriff auf den Flash eines Steuergerätes erhalten, um dort evtl. eigenen Code einzuschleusen:
    • – Eine Datenverarbeitungseinrichtung, z. B. ein sogenannter Tester, fordert von einem zu programmierenden Steuergerät einen sogenannten Keim (seed) x, z. B. eine n Bytes Zufallszahl;
    • – Das zu programmierende Steuergerät sendet den Keim x an den Tester,
    • – der Tester berechnet aus dem Keim x einen sogenannten Schlüssel (key) mittels einer Funktion f(x),
    • – das zu programmierende Steuergerät berechnet aus dem Keim ebenfalls den zugehörigen Schlüssel mittels f(x), wobei die Funktion f(x) auf dem Tester und auf dem zu programmierenden Steuergerät identisch ist,
    • – der Tester sendet den Schlüssel an das zu programmierende Steuergerät,
    • – wenn der an das zu programmierende Steuergerät gesendete Schlüssel mit dem auf dem zu programmierenden Steuergerät berechneten Schlüssel übereinstimmt, ist der Tester autorisiert, das Steuergerät umzuprogrammieren.
  • Das zu programmierende Steuergerät schaltet den Schreibzugriff auf seinen Flashspeicher frei.
  • In Batteriepacks, beispielsweise für Elektroautos, wird gewöhnlich ein zentrales Steuergerät 102 eingesetzt, welches eine bestimmte Anzahl n an untergeordneten Steuergeräten 104-1, 104-2, ..., 104-n koordiniert. Die untergeordneten Steuergeräte 104-1, 104-2, ..., 104-n erfassen nah bei den Batteriezellen 106-1, 106-2, ..., 106-n Messdaten wie Zellspannung und/oder -temperatur usw. Das zentrale Steuergerät 102 und die untergeordneten Steuergeräte 104-1, 104-2, ..., 104-n sind durch einen Kommunikationsbus 108 verbunden, beispielsweise einen CAN-Bus.
  • Bei Flashprogrammierung mehrerer Steuergeräte muss für jedes Steuergerät das oben genannte Verfahren durchgeführt werden (vgl. 2). Das sichere parallele Programmieren 202 mehrerer gleichartiger untergeordneter Steuergeräte (Zielgeräte) 104-1, 104-2, ..., 104-n mit dem gleichen Programmcode ist nicht möglich, ohne vorheriges Aushandeln 204-1, 204-2, ..., 204-n von Keim/Schlüssel mit jedem Zielgerät 104-1, 104-2, ..., 104-n.
  • Wenn in einem Steuergeräteverbund viele gleichartige Steuergeräte vorhanden sind, die mit der gleichen Software laufen, wie das beispielsweise bei Batteriemanagementsystemen mit einem Hauptsteuergerät und vielen untergeordneten Sensorsteuergeräten der Fall ist, so ist aus dem Stand der Technik kein Verfahren bekannt, das ein paralleles Programmieren und gleichzeitiges Absichern des Flashvorgangs vor unbefugtem Zugriff umsetzt.
  • Aus der europäischen Patentschrift EP 1 055 983 B1 ist bereits ein Steuergerät mit mindestens zwei Steuereinheiten bekannt, wobei Daten für eine Programmierung der mindestens zwei Steuereinheiten gleichzeitig an die mindestens zwei Steuereinheiten übertragen werden. Allerdings wird bei dem Verfahren gemäß EP 1 055 983 B1 die Programmierung nicht abgesichert.
  • Ein Verfahren zur Programmierung eines Mikrocontrollers ist aus der Veröffentlichung DE 199 50 159 A1 bekannt. Auch diese Lösung schlägt ein nicht abgesichertes Programmieren eines Speicherbereichs des Mikrocontrollers vor, bei dem die zur Programmierung vorgesehenen Nutzdaten von einem Zwischenspeicher gleichzeitig in die zu programmierenden Speicherbereiche des Mikrocontrollers übertragen werden.
  • Offenbarung der Erfindung
  • Ein besonderer Vorteil der Erfindung besteht darin, dass die serielle Programmierung einer Vielzahl von Zielsteuergeräten durch eine parallele, abgesicherte Programmierung ersetzt wird, was zu einer erheblichen Beschleunigung des Programmiervorgangs um etwa den Faktor „Anzahl der zu programmierenden Steuergeräte“ führt. Dies wird dadurch erreicht, indem erfindungsgemäß von einer ersten Datenverarbeitungseinrichtung mindestens zwei zweite Datenverarbeitungseinrichtungen programmiert werden und wobei von den mindestens zwei zweiten Datenverarbeitungseinrichtungen jeweils eine erste Authentifizierungsinformation an die erste Datenverarbeitungseinrichtung gesendet wird. Bei der ersten Datenverarbeitungseinrichtung kann es sich beispielsweise um ein zentrales Steuergerät, insbesondere um ein Hauptsteuergerät eines Batteriemanagementsystems eines Kraftfahrzeugs, handeln. Bei den mindestens zwei zweiten Datenverarbeitungseinrichtungen kann es sich beispielsweise um Steuergeräte handeln, die der ersten Datenverarbeitungseinrichtung untergeordnet sind. In einer bevorzugten Ausführungsform ist vorgesehen, dass es sich bei den mindestens zwei zweiten Datenverarbeitungseinrichtungen um Sensorsteuergeräte eines Batteriemanagementsystems handelt. Durch derartige Sensorsteuergeräte können beispielsweise Messdaten von Batteriezellen erfasst werden.
  • Bei den von den mindestens zwei zweiten Datenverarbeitungseinrichtungen gesendeten ersten Authentifizierungsinformationen handelt es sich vorzugsweise um einen öffentlichen Schlüssel eines asymmetrischen Verschlüsselungsverfahrens, beispielsweise um einen Keim, der in einem Anforderungs-Antwort-Verfahren genutzt wird.
  • Aus den ersten Authentifizierungsinformationen wird vorzugsweise durch die erste Datenverarbeitungseinrichtung jeweils eine zweite Authentifizierungsinformation generiert und an die mindestens zwei zweiten Datenverarbeitungseinrichtungen übertragen. Durch jede der mindestens zwei zweiten Datenverarbeitungseinrichtungen wird Folgendes ausgeführt:
    Verifizierung der zweiten Authentifizierungsinformation, die aus der von der jeweiligen zweiten Datenverarbeitungseinrichtung gesendeten ersten Authentifizierungsinformation erzeugt wurde, und Programmierung der jeweiligen zweiten Datenverarbeitungseinrichtungen in Abhängigkeit des Ergebnisses der Verifizierung.
  • Erfindungsgemäß ist weiter vorgesehen, dass die mindestens zwei zweiten Authentifizierungsinformationen von der ersten Datenverarbeitungseinrichtung gemeinsam durch einmaliges Senden an die mindestens zwei zweiten Datenverarbeitungseinrichtungen übertragen werden. Vorzugsweise werden die mindestens zwei zweiten Authentifizierungsinformationen von der ersten Datenverarbeitungseinrichtung gleichzeitig in einem Datenstrom an die mindestens zwei zweiten Datenverarbeitungseinrichtungen übertragen. In einer bevorzugten Ausführungsform ist vorgesehen, dass die Übertragung nach einem Broadcastverfahren erfolgt.
  • In einer anderen bevorzugten Ausführungsform ist vorgesehen, dass von der ersten Datenverarbeitungseinrichtung eine gemeinsame Anfrage an die mindestens zwei zweiten Datenverarbeitungseinrichtungen erfolgt, vorzugsweise gleichzeitig in einem Broadcastverfahren, um die ersten Authentifizierungsinformationen anzufordern. Alternativ kann diese Anfrage auch seriell an jede einzelne der mindestens zwei zweiten Datenverarbeitungseinrichtungen in einem individualisierten Datenstrom erfolgen.
  • Eine weitere bevorzugte Ausführungsform sieht vor, dass durch das einmalige Senden zusammen mit den mindestens zwei zweiten Authentifizierungsinformationen Daten für die Programmierung der mindestens zwei zweiten Datenverarbeitungseinrichtungen übertragen werden.
  • Noch eine andere bevorzugte Ausführungsform sieht vor, dass die mindestens zwei ersten Authentifizierungsinformationen durch die erste Datenverarbeitungseinrichtung einmal von den mindestens zwei zweiten Datenverarbeitungseinrichtungen angefordert werden. Die von den mindestens zwei zweiten Datenverarbeitungseinrichtungen empfangenen ersten Authentifizierungsinformationen werden vorzugsweise in einem Speicherbereich dauerhaft gespeichert, auf den die erste Datenverarbeitungseinrichtung Zugriff hat. Das hat den Vorteil, dass die ersten Authentifizierungsinformationen nicht jedes Mal, wenn die mindestens zwei zweiten Datenverarbeitungseinrichtungen programmiert werden sollen, erneut abgefragt werden müssen. Vielmehr werden die dauerhaft gespeicherten ersten Authentifizierungsinformationen von der ersten Datenverarbeitungseinrichtung genutzt, um die mindestens zwei zweiten Authentifizierungsinformationen zu erzeugen, wenn die mindestens zwei zweiten Datenverarbeitungseinrichtungen erneut programmiert werden sollen. Auf diese Weise kann eine Vielzahl von (Neu-)Programmierungen der mindestens zwei zweiten Datenverarbeitungseinrichtungen vorgenommen werden, ohne vorher die ersten Authentifizierungsinformationen explizit von den mindestens zwei zweiten Datenverarbeitungseinrichtungen anzufordern.
  • Eine weitere bevorzugte Ausführungsform sieht vor, dass zumindest ein Teil, vorzugsweise alle, der mindestens zwei zweiten Authentifizierungsinformationen erzeugt werden, indem eine Kennung der Daten für die Programmierung verschlüsselt wird. Bei der Kennung kann es sich um eine Checksumme über die Daten für die Programmierung handeln. Vorzugsweise werden die ersten Authentifizierungsinformationen als (öffentlicher) Schlüssel genutzt. Als vorteilhaft erweist es sich, wenn die Kennung mit allen mindestens zwei zweiten Authentifizierungsinformationen verschlüsselt wird. In einer bevorzugten Ausführungsform ist vorgesehen, dass zumindest ein Teil der mindestens zwei zweiten Datenverarbeitungseinrichtungen unterschiedliche erste Authentifizierungsinformationen besitzt und an die erste Datenverarbeitungseinrichtung sendet. Die erzeugten mindestens zwei zweiten Authentifizierungsinformationen werden an die mindestens zwei zweiten Datenverarbeitungseinrichtungen übertragen. Nach Empfang der mindestens zwei zweiten Authentifizierungsinformationen entschlüsseln die mindestens zwei zweiten Datenverarbeitungseinrichtungen die empfangenen zweiten Authentifizierungsinformationen mit einem (privaten) Schlüssel. Wenn eine der empfangenen zweiten Authentifizierungsinformationen, insbesondere die Kennung der Daten für die Programmierung, verifiziert werden kann, heißt das, dass die Programmierung der jeweiligen zweiten Datenverarbeitungseinrichtung zulässig ist, und die Programmierung wird ausgeführt.
  • Als vorteilhaft erweist es sich, wenn es sich bei den mindestens zwei zweiten Datenverarbeitungseinrichtungen um gleichartige oder identische Datenverarbeitungseinrichtungen und/oder bei den Daten für die Programmierung für jede der mindestens zwei zweiten Datenverarbeitungseinrichtungen um die gleichen Daten handelt.
  • Ein weiterer Aspekt der Erfindung betrifft eine Batterie, die mit einer Anordnung kombiniert ist, wobei die Anordnung eine erste Datenverarbeitungseinrichtung und mindestens zwei zweite Datenverarbeitungseinrichtungen umfasst und wobei die Anordnung derart eingerichtet ist, dass ein Programmierverfahren ausführbar ist, wobei von der ersten Datenverarbeitungseinrichtung die mindestens zwei zweiten Datenverarbeitungseinrichtungen programmiert werden und wobei von den mindestens zwei zweiten Datenverarbeitungseinrichtungen jeweils eine erste Authentifizierungsinformation an die erste Datenverarbeitungseinrichtung gesendet wird, aus den ersten Authentifizierungsinformationen jeweils eine zweite Authentifizierungsinformation erzeugt und an die mindestens zwei zweiten Datenverarbeitungseinrichtungen übertragen wird, und nach Verifizierung der zweiten Authentifizierungsinformationen durch jeweils die mindestens zwei zweiten Datenverarbeitungseinrichtungen eine Programmierung der mindestens zwei zweiten Datenverarbeitungseinrichtungen erfolgt. Erfindungsgemäß ist dabei vorgesehen, dass die mindestens zwei zweiten Authentifizierungsinformationen von der ersten Datenverarbeitungseinrichtung gemeinsam durch einmaliges Senden an die mindestens zwei zweiten Datenverarbeitungseinrichtungen übertragen werden. Vorzugsweise handelt es sich bei der Batterie um eine Lithium-Ionen-Batterie oder die Batterie umfasst elektrochemische Zellen, die als Lithium-Ionen-Batteriezellen ausgebildet sind. Bei der Anordnung kann es sich beispielsweise um ein Batteriemanagementsystem handeln, oder die Anordnung kann in ein Batteriemanagementsystem integriert sein.
  • Ein anderer Aspekt der Erfindung betrifft ein Kraftfahrzeug mit einem elektrischen Antriebsmotor zum Antreiben des Kraftfahrzeugs und einer mit dem elektrischen Antriebsmotor verbundenen oder verbindbaren Batterie gemäß dem im voranstehenden Absatz beschriebenen Erfindungsaspekt. Die Batterie ist jedoch nicht auf einen solchen Einsatzzweck eingeschränkt, sondern kann auch in anderen elektrischen Systemen eingesetzt werden.
  • Ein wichtiger Aspekt der Erfindung besteht darin, dass nur ein einziger Datenstrom im Broadcastverfahren vom Steuergerät oder Tester an untergeordnete, vorzugsweise gleichartige Steuergeräte, wie beispielsweise in Elektroautos eingesetzte Sensorsteuergeräte, geschickt wird. Alle Zielsteuergeräte werden parallel programmiert, wobei das erfindungsgemäße Verfahren sicherstellt, dass kein Unbefugter eigenen Programmcode in die Steuergeräte einschleusen kann, z. B. zum Tuning von Komponenten, indem eine verschlüsselte Checksumme übertragen wird. Nach Verifizieren der Checksumme im Zielsteuergerät markiert dieses die Software als „authentifiziert“ und führt die neue Software aus. Bei Übermittlung einer falschen Checksumme, z. B. durch einen unbefugten Dritten, wird die Software im Zielsteuergerät nicht ausgeführt. Ein unbefugter Dritter, der versucht, eigene Software in das Zielsteuergerät zu programmieren, kann somit ohne Kenntnis des Verschlüsselungsverfahrens keine gültige verschlüsselte Checksumme generieren, die von dem Zielsteuergerät akzeptiert wird. Die Software des Unbefugten wird somit nicht als „gültig“ markiert und nicht ausgeführt.
  • Die Erfindung stellt somit folgende Vorteile bereit:
    • – Durch die parallele Flashprogrammierung von vergleichbaren Steuergeräten, wie beispielsweise Sensorsteuergeräten, wird ein Geschwindigkeitsgewinn beim Flashprogrammieren erzielt.
    • – Da die Flashprogrammierdaten nur einmal an alle Steuergeräte gleichzeitig gesendet werden, wird im Vergleich zu einem seriellen Flashprogrammieren ein schnelleres Flashen ermöglicht, und darüber hinaus wird das zu übertragende Datenvolumen beim Flashprogrammieren verringert.
    • – Durch die Verwendung verschlüsselter Checksummen wird der Flashvorgang abgesichert und ein Einschleusen von eigenem Programmcode durch Unbefugte verhindert.
    • – Es werden bewährte und verbreitete Verschlüsselungsalgorithmen aus dem Bereich der asymmetrischen Verschlüsselung (public key encryption) verwendet.
    • – Es kann die Stärke der Verschlüsselung gewählt werden, was insbesondere vorteilhaft ist bei der Anpassung des für die Verschlüsselung erforderlichen Rechenaufwands an die vorhandenen Ressourcen.
  • Vorteilhafte Weiterbildungen der Erfindung sind in den Unteransprüchen angegeben und in der Beschreibung beschrieben.
  • Zeichnungen
  • Ausführungsbeispiele der Erfindung werden anhand der Zeichnungen und der nachfolgenden Beschreibung näher erläutert. Es zeigen:
  • 1 eine schematische Veranschaulichung eines Batteriemanagementsystems,
  • 2 eine Veranschaulichung eines sequentiellen Flashprogrammierens mit vorhergehendem individuellen Anforderungs-Antwort-Verfahren nach dem Stand der Technik, und
  • 3 eine schematische Veranschaulichung einer beispielhaften Flashprogrammierung per Broadcastkommunikation.
  • Ausführungsformen der Erfindung
  • In einer beispielhaften Ausführungsform der Erfindung wird analog zum Keim-Schlüssel-Verfahren (seed & key-Verfahren)
    • – ein Keim – hier der öffentliche Schlüssel – übertragen und
    • – ein Schlüssel berechnet und übertragen, der in der beispielhaften Ausführungsform zumindest die mit dem Keim verschlüsselte Checksumme der zum Programmieren genutzten Daten umfasst.
  • Dabei ist die Erfindung nicht auf dieses spezielle Ausführungsbeispiel eingeschränkt. Vielmehr sind auch andere Authentifizierungsverfahren in der Erfindung nutzbar, beispielsweise insbesondere jede asymmetrische Verschlüsselung. Darüber hinaus wird die Erfindung zwar am Beispiel eines Batteriemanagementsystems mit einem zentralen Steuergerät und einer Vielzahl von Sensorsteuergeräten beschrieben. Die Erfindung umfasst jedoch jede parallele abgesicherte Programmierung von Datenverarbeitungseinrichtungen, solange das Programmierverfahren nur alle Merkmale jeweils der unabhängigen Ansprüche realisiert.
  • Zunächst soll das Verfahren zum Programmieren von Steuergeräten prinzipiell am Beispiel des Programmierens eines Zielsteuergeräts durch ein Steuergerät bzw. einen Tester beschrieben werden.
  • Das zu programmierende Zielsteuergerät verwendet einen festen privaten und einen festen öffentlichen Schlüssel. Der öffentliche Schlüssel wird von dem programmierenden Steuergerät/Tester angefragt und dann von dem zu programmierenden Zielsteuergerät an das programmierende Steuergerät/Tester übermittelt. Das programmierende Steuergerät berechnet eine Checksumme über die zu flashende Software und verschlüsselt diese Checksumme mit dem öffentlichen Schlüssel des Zielsteuergeräts. Hierfür können alle bekannten Verschlüsselungsverfahren aus dem Umfeld der public key encryption verwendet werden. Anschließend wird die zu flashende Software zusammen mit der verschlüsselten Checksumme an das Zielsteuergerät übermittelt. Mit Hilfe des privaten Schlüssels entschlüsselt das Zielsteuergerät die Checksumme und vergleicht die Checksumme mit der selbst berechneten Checksumme über die empfangenen Softwaredaten. Stimmen beide Checksummen überein, wird die Software auf dem Zielsteuergerät als „gültig“ markiert und ausgeführt. Andernfalls wird die Ausführung verhindert.
  • In einer beispielhaften Ausführungsform der Erfindung werden mehrere Zielsteuergeräte 104-1, 104-2, ..., 104-n (beispielsweise eine Anzahl von n Zielsteuergeräten 104-1, 104-2, ..., 104-n), beispielsweise mehrere gleichartige Sensorsteuergeräte, von einem zentralen Steuergerät 102, beispielsweise einem Batteriesteuergerät, oder von einem Tester 110 aus koordiniert, insbesondere programmiert werden. Von den Sensorsteuergeräten können beispielsweise Messdaten wie Temperatur, Spannung oder dergleichen von Batteriezellen 106-1, 106-2, ..., 106-n erfasst werden.
  • Jedes der zu programmierenden Zielsteuergeräte 104-1, 104-2, ..., 104-n hat einen festen privaten und öffentlichen Schlüssel. Die öffentlichen Schlüssel werden von dem programmierenden zentralen Steuergerät 102/Tester 110 angefragt und dann von den zu programmierenden Zielsteuergeräten 104-1, 104-2, ..., 104-n an das zentrale Steuergerät 102 bzw. den Tester 110 übermittelt. Das programmierende zentrale Steuergerät 102 berechnet eine Checksumme über die zu flashende Software 302 und verschlüsselt diese Checksumme jeweils mit den öffentlichen Schlüsseln der Zielsteuergeräte 104-1, 104-2, ..., 104-n. Daraus ergeben sich n verschlüsselte Checksummen 304-1, 304-2, ..., 304-n. Das programmierende zentrale Steuergerät 102 bzw. der Tester 110 überträgt die Programmierdaten 306, das heißt die zu flashende Software 302 zusammen mit den n verschlüsselten Checksummen 304-1, 304-2, ..., 304-n, an alle n zu programmierende Zielsteuergeräte 104-1, 104-2, ..., 104-n gleichzeitig in einem Datenstrom (vgl. 3). Jedes Zielsteuergerät 104-1, 104-2, ..., 104-n entschlüsselt die für es bestimmte Checksumme mit dem privaten Schlüssel und vergleicht diese Checksumme mit der selbst berechneten Checksumme über die Software 302. (Die verschlüsselten Checksummen, die für das betreffende Zielsteuergerät nicht relevant sind, sind in 3 durch eine Schraffur gekennzeichnet.) Stimmen beide Checksummen überein, wird die Software auf dem Zielsteuergerät als „gültig“ markiert und ausgeführt. Andernfalls wird die Ausführung verhindert. Vorzugsweise wird nach dem Flashprogrammiervorgang einzeln geprüft, ob das Flashprogrammieren in allen Zielsteuergeräten 104-1, 104-2, ..., 104-n erfolgreich war.
  • In einer weiteren beispielhaften Ausführungsform ist ein beschleunigtes Verfahren zur Flashprogrammierung vorgesehen. Wird für die Programmierung immer dasselbe zentrale Steuergerät 102 genutzt, wie es beispielsweise bei Batteriemanagementsystemen mit einem Hauptsteuergerät und vielen Sensorsteuergeräten der Fall ist, wird das zentrale Steuergerät 102 beim ersten Hochfahren angelernt. Es fragt von allen untergeordneten Zielsteuergeräten 104-1, 104-2, ..., 104-n deren öffentlichen Schlüssel ab und speichert diese dauerhaft im eigenen Flash. Dadurch entfällt der Austausch der öffentlichen Schlüssel vor jedem Flashvorgang. Falls ein untergeordnetes Zielsteuergerät 104-i (i = 1, 2, ..., n) ausgetauscht wird, was bei Batteriesystemen selten vorkommt, und einen anderen öffentlichen Schlüssel besitzt, so wird das Entschlüsseln der Checksumme mit dem dazugehörigen privaten Schlüssel fehlschlagen. Das untergeordnete Zielsteuergerät 104-i (i = 1, 2, ..., n) meldet diesen Fehlschlag an das zentrale programmierende Steuergerät 102, welches dann den öffentlichen Schlüssel erneut anfordert („anlernt“).
  • Um die Zielsteuergeräte 104-1, 104-2, ..., 104-n zu programmieren, überträgt das zentrale Steuergerät 102 bzw. der Tester 110 die zu flashende Software 302 zusammen mit den n verschlüsselten Checksummen 304-1, 304-2, ..., 304-n an alle n zu programmierenden Zielsteuergeräte 104-1, 104-2, ..., 104-n gleichzeitig in einem Datenstrom (vgl. 3). Jedes Zielsteuergerät 104-1, 104-2, ..., 104-n entschlüsselt die für es bestimmte Checksumme mit dem privaten Schlüssel und vergleicht diese Checksumme mit der selbst berechneten Checksumme über die Software 302. Stimmen beide Checksummen überein, wird die Software auf dem Zielsteuergerät als „gültig“ markiert und ausgeführt. Andernfalls wird die Ausführung verhindert.
  • Bezüglich der herkömmlichen Verfahren zeichnet sich die Erfindung insbesondere dadurch aus, dass die Kommunikation von dem zentralen Steuergerät 102 an die untergeordneten Zielsteuergeräte 104-1, 104-2, ..., 104-n im Broadcastverfahren erfolgt. Es ist somit individueller Datenstrom für jedes einzelne Zielsteuergerät 104-1, 104-2, ..., 104-n nötig. Das programmierende Steuergerät 102 übersendet alle verschlüsselten Checksummen 304-1, 304-2, ..., 304-n und die zu flashende Software 302 per Broadcast an alle Zielsteuergeräte 104-1, 104-2, ..., 104-n, welche nur die für sie bestimmte Checksumme entschlüsseln. Das Senden per Broadcast vereinfacht die Kommunikation erheblich, da nicht mit jedem Zielsteuergerät 104-1, 104-2, ..., 104-n individuell verhandelt werden muss.
  • Die Erfindung stellt somit ein Verfahren bereit, bei dem mit einem einzigen Datenstrom vom Hauptsteuergerät zu allen untergeordneten Steuergeräten die Daten für die Programmierung (Flashdaten) übertragen werden und gleichzeitig sichergestellt wird, dass kein Unbefugter Zugriff auf den Flashspeicher eines Steuergeräts erhält., um dort eventuell modifizierten Softwarecode einzuschleusen.
  • Durch das parallele Programmieren wird der Flashvorgang der untergeordneten Steuergeräte im Wesentlichen um den Faktor „Anzahl der zu flashenden Steuergeräte“ im Vergleich zu einem sequentiellen Flashen der Steuergeräte beschleunigt.
  • Das erfindungsgemäße Verfahren basiert auf der Methode der asymmetrischen Verschlüsselung mit öffentlichen Schlüsseln (public key encryption), bei der ein Teilnehmer eine Botschaft mit einem öffentlichen (bekannten) Schlüssel verschlüsselt, die von einem Empfänger nur mit dessen geheimem (privatem) Schlüssel entschlüsselt werden kann.
  • Die Erfindung beschränkt sich in ihrer Ausführungsform nicht auf die vorstehend angegebenen bevorzugten Ausführungsbeispiele. Vielmehr ist eine Anzahl von Varianten denkbar, die von dem erfindungsgemäßen Verfahren, der erfindungsgemäßen Batterie und dem erfindungsgemäßen Kraftfahrzeug auch bei grundsätzlich anders gearteten Ausführungen Gebrauch macht.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • EP 1055983 B1 [0007, 0007]
    • DE 19950159 A1 [0008]

Claims (10)

  1. Programmierverfahren, wobei von einer ersten Datenverarbeitungseinrichtung mindestens zwei zweite Datenverarbeitungseinrichtungen programmiert werden und wobei von den mindestens zwei zweiten Datenverarbeitungseinrichtungen jeweils eine erste Authentifizierungsinformation an die erste Datenverarbeitungseinrichtung gesendet wird, aus den ersten Authentifizierungsinformationen jeweils eine zweite Authentifizierungsinformation erzeugt und an die mindestens zwei zweiten Datenverarbeitungseinrichtungen übertragen wird, und nach Verifizierung der zweiten Authentifizierungsinformationen durch jeweils die mindestens zwei zweiten Datenverarbeitungseinrichtungen eine Programmierung der mindestens zwei zweiten Datenverarbeitungseinrichtungen erfolgt, dadurch gekennzeichnet, dass die mindestens zwei zweiten Authentifizierungsinformationen von der ersten Datenverarbeitungseinrichtung gemeinsam durch einmaliges Senden an die mindestens zwei zweiten Datenverarbeitungseinrichtungen übertragen werden.
  2. Programmierverfahren nach Anspruch 1, wobei durch das einmalige Senden zusammen mit den mindestens zwei zweiten Authentifizierungsinformationen Daten für die Programmierung der mindestens zwei zweiten Datenverarbeitungseinrichtungen übertragen werden.
  3. Programmierverfahren nach Anspruch 1 oder 2, wobei die an die erste Datenverarbeitungseinrichtung übertragenen ersten Authentifizierungsinformationen für eine Vielzahl späterer Programmierungen der mindestens zwei zweiten Datenverarbeitungseinrichtungen genutzt werden.
  4. Programmierverfahren nach einem der voranstehenden Ansprüche, wobei zumindest ein Teil der zweiten Authentifizierungsinformationen durch Verschlüsselung einer Kennung der Daten für die Programmierung erzeugt wird.
  5. Programmierverfahren nach Anspruch 4, wobei sich die ersten Authentifizierungsinformationen für zumindest einen Teil der mindestens zwei zweiten Datenverarbeitungseinrichtungen unterscheiden und die Daten für die Programmierung mit den unterschiedlichen ersten Authentifizierungsinformationen verschlüsselt werden.
  6. Programmierverfahren nach einem der voranstehenden Ansprüche, wobei zumindest ein Teil der mindestens zwei zweiten Datenverarbeitungseinrichtungen die Daten für die Programmierung, die mit der eigenen ersten Authentifizierungsinformation verschlüsselten Kennung der Daten für die Programmierung und die mit den ersten Authentifizierungsinformationen anderer der mindestens zwei zweiten Datenverarbeitungseinrichtungen verschlüsselten Kennung der Daten für die Programmierung empfängt und nach Verifizierung der mit der eigenen ersten Authentifizierungsinformation verschlüsselten Kennung eine Programmierung der entsprechenden zweiten Datenverarbeitungseinrichtungen erfolgt.
  7. Programmierverfahren nach einem der voranstehenden Ansprüche, wobei es sich bei den mindestens zwei zweiten Datenverarbeitungseinrichtungen um gleichartige Datenverarbeitungseinrichtungen handelt.
  8. Programmierverfahren nach einem der voranstehenden Ansprüche, wobei es sich bei der ersten Datenverarbeitungseinrichtung um ein Steuergerät eines Batteriesystems und/oder bei den mindestens zwei zweiten Datenverarbeitungseinrichtungen um Steuergeräte für Sensoren zur Erfassung von Messdaten von Batteriezellen handelt.
  9. Batterie, die mit einer Anordnung kombiniert ist, wobei die Anordnung eine erste Datenverarbeitungseinrichtung und mindestens zwei zweite Datenverarbeitungseinrichtungen umfasst und wobei die Anordnung derart eingerichtet ist, dass ein Programmierverfahren gemäß einem der Ansprüche 1 bis 8 ausführbar ist.
  10. Kraftfahrzeug mit einem elektrischen Antriebsmotor zum Antreiben des Kraftfahrzeugs und einer mit dem elektrischen Antriebsmotor verbundenen oder verbindbaren Batterie gemäß Anspruch 9.
DE102012205010A 2012-03-28 2012-03-28 Programmierverfahren, Batterie mit einer Anordnung zur Ausführung des Programmierverfahrens sowie ein Kraftfahrzeug mit einer solchen Batterie Pending DE102012205010A1 (de)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE102012205010A DE102012205010A1 (de) 2012-03-28 2012-03-28 Programmierverfahren, Batterie mit einer Anordnung zur Ausführung des Programmierverfahrens sowie ein Kraftfahrzeug mit einer solchen Batterie
US14/388,801 US20150058626A1 (en) 2012-03-28 2013-01-28 Programming Method, Battery with an Arrangement for Carrying out the Programming Method and a Motor Vehicle Comprising said Type of Battery
PCT/EP2013/051570 WO2013143717A1 (de) 2012-03-28 2013-01-28 Programmierverfahren, batterie mit einer anordnung zur ausführung des programmierverfahrens sowie ein kraftfahrzeug mit einer solchen batterie
CN201380016434.4A CN104205121B (zh) 2012-03-28 2013-01-28 编程方法、相关联的蓄电池以及具有这种蓄电池的机动车

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102012205010A DE102012205010A1 (de) 2012-03-28 2012-03-28 Programmierverfahren, Batterie mit einer Anordnung zur Ausführung des Programmierverfahrens sowie ein Kraftfahrzeug mit einer solchen Batterie

Publications (1)

Publication Number Publication Date
DE102012205010A1 true DE102012205010A1 (de) 2013-10-02

Family

ID=47678733

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102012205010A Pending DE102012205010A1 (de) 2012-03-28 2012-03-28 Programmierverfahren, Batterie mit einer Anordnung zur Ausführung des Programmierverfahrens sowie ein Kraftfahrzeug mit einer solchen Batterie

Country Status (4)

Country Link
US (1) US20150058626A1 (de)
CN (1) CN104205121B (de)
DE (1) DE102012205010A1 (de)
WO (1) WO2013143717A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102015220489A1 (de) * 2015-10-21 2017-04-27 Ford Global Technologies, Llc Verfahren zur Autorisierung einer Softwareaktualisierung in einem Kraftfahrzeug

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105930236A (zh) * 2016-07-15 2016-09-07 深圳市沃特玛电池有限公司 一种基于BMS Bootloader升级的应用程序版本回退方法
EP3331121B1 (de) * 2016-12-05 2020-09-02 Samsung SDI Co., Ltd. Steuerungseinheit für ein batteriesystem

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19950159A1 (de) 1999-10-19 2001-04-26 Bosch Gmbh Robert Verfahren zur Programmierung des Speicherbereichs eines Microcontrollers
EP1055983B1 (de) 1999-05-25 2005-08-03 Robert Bosch Gmbh Steuergerät mit mindestens zwei Steuereinheiten, davon eine mit externer Schnittstelle

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4427980A (en) * 1981-10-13 1984-01-24 Motorola, Inc. Encoder for transmitted message activation code
US5894516A (en) * 1996-07-10 1999-04-13 Ncr Corporation Broadcast software distribution
US7498766B2 (en) * 2006-05-30 2009-03-03 Symbol Technologies, Inc. System and method for authenticating a battery
CN101425901A (zh) * 2008-04-16 2009-05-06 奉蓓 一种在处理终端中用于对用户身份验证的控制方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1055983B1 (de) 1999-05-25 2005-08-03 Robert Bosch Gmbh Steuergerät mit mindestens zwei Steuereinheiten, davon eine mit externer Schnittstelle
DE19950159A1 (de) 1999-10-19 2001-04-26 Bosch Gmbh Robert Verfahren zur Programmierung des Speicherbereichs eines Microcontrollers

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102015220489A1 (de) * 2015-10-21 2017-04-27 Ford Global Technologies, Llc Verfahren zur Autorisierung einer Softwareaktualisierung in einem Kraftfahrzeug
DE102015220489B4 (de) 2015-10-21 2024-05-29 Ford Global Technologies, Llc Verfahren zur Autorisierung einer Softwareaktualisierung in einem Kraftfahrzeug

Also Published As

Publication number Publication date
CN104205121B (zh) 2018-05-29
WO2013143717A1 (de) 2013-10-03
CN104205121A (zh) 2014-12-10
US20150058626A1 (en) 2015-02-26

Similar Documents

Publication Publication Date Title
EP3157281B1 (de) Verfahren zur geschützten kommunikation eines fahrzeugs
EP3287925B1 (de) Computervorrichtung zum übertragen eines zertifikats auf ein gerät in einer anlage
EP1959606B1 (de) Sicherheitseinheit
EP2689553B1 (de) Kraftwagen-steuergerät mit kryptographischer einrichtung
EP3649768B1 (de) Verfahren zum sicheren ersetzen eines bereits in ein gerät eingebrachten ersten herstellerzertifikats
DE102017125826A1 (de) Nachrichtenauthentifizierung über controller area network
DE102015211451A1 (de) Verfahren zu einem Manipulationsschutz von über ein Bussystem zwischen Systemkomponenten zu übertragenden Nutzdatenpaketen
EP2567501B1 (de) Verfahren zum kryptographischen schutz einer applikation
DE102018101479A1 (de) Steuerungsschnittstelle für ein autonomes fahrzeug
EP3157192B1 (de) Verfahren und system für eine asymmetrische schlüsselherleitung
EP3422628B1 (de) Verfahren, sicherheitseinrichtung und sicherheitssystem
DE202017103778U1 (de) Kommunikationssicherungseinrichtung und -system für eine OBD-II-Schnittstelle eines Elektrokraftfahrzeuges
DE102013218212A1 (de) Verfahren zum abgesicherten Übermitteln von Daten
DE10213658B4 (de) Verfahren zur Datenübertragung zwischen Komponenten der Bordelektronik mobiler Systeme und solche Komponenten
DE102018102608A1 (de) Verfahren zur Benutzerverwaltung eines Feldgeräts
DE102012220132A1 (de) Verfahren, Vorrichtung und System zum Aktualisieren eines Steuergerätes
DE102012205010A1 (de) Programmierverfahren, Batterie mit einer Anordnung zur Ausführung des Programmierverfahrens sowie ein Kraftfahrzeug mit einer solchen Batterie
WO2021214325A1 (de) Kopierschutzverfahren und kopiergeschütztes elektronisches system
DE102021202075A1 (de) Verfahren zur Validierung von Nachrichten
EP2850860B1 (de) Sicherung eines energiemengenzählers gegen unbefugten zugriff
DE102011002713A1 (de) Verfahren und Vorrichtung zum Bereitstellen von kyptographischen Credentials für Steuergeräte eines Fahrzeugs
DE102014019496A1 (de) Verfahren zur Steuerung eines Authentifizierungsschlüsselaustausches in Fahrzeugnetzwerken und ein Kraftfahrzeug
DE102016215520A1 (de) Verfahren und Anordnung zur gesicherten elektronischen Datenkommunikation
DE102013202322A1 (de) Verfahren zur verschlüsselten Datenübertragung zwischen zwei Komponenten eines Steuergeräts
DE102023111612B3 (de) Verfahren und Vorrichtung zur Auslieferung einer Ware

Legal Events

Date Code Title Description
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0021220000

Ipc: G06F0021100000

R082 Change of representative

Representative=s name: GULDE HENGELHAUPT ZIEBIG & SCHNEIDER, DE

Representative=s name: GULDE & PARTNER PATENT- UND RECHTSANWALTSKANZL, DE

R012 Request for examination validly filed
R016 Response to examination communication