Skip to content

Clarifying the ECU keys #139

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
jhdalek55 opened this issue Oct 20, 2022 · 10 comments
Open

Clarifying the ECU keys #139

jhdalek55 opened this issue Oct 20, 2022 · 10 comments
Milestone

Comments

@jhdalek55
Copy link
Collaborator

In addressing a few of the issues raised by closed Standard Issue #174 and newly opened Standard issue #241, it became clear that we need to do a better job in the Deployment Best Practices section in explaining the different types of keys. The existing text, found at https://github.com/uptane/deployment-considerations/blob/master/key_management.md#repository-keys is perhaps not as comprehensive or clear as it should be.

@jhdalek55
Copy link
Collaborator Author

At the 11/22 meeting, we labeled this issue as a priority to address as it is still causing confusion.

@jhdalek55
Copy link
Collaborator Author

jhdalek55 commented Dec 2, 2022

Seeking a volunteer to edit/revise this text, or failing that some input as to what this section should be saying. I'll write it if I know what to say.

@jhdalek55
Copy link
Collaborator Author

Again asking for a volunteer to write this PR, or at the very least to highlight the main points that should be part of it.

@trishankatdatadog
Copy link
Member

Sorry, I'm not aware of what the precise issues raised were, but happy to review any proposed text!

@jhdalek55
Copy link
Collaborator Author

Particularly look at the subsection in deployment on Key management .

@hexsecs
Copy link
Member

hexsecs commented Mar 14, 2023

Here is the current text. We should be more specific about what ECU keys we are talking about.

ECU keys

If ECU keys are compromised, then the OEM SHOULD manually update vehicles to replace these keys. This is the safest course of action because, after a key compromise, an OEM cannot be sure whether it is remotely replacing keys controlled by attackers or the intended ECUs.

An OEM MAY use the Director repository and its inventory database to infer whether ECU keys have been compromised. This database is used to record vehicle version manifests that list what images an ECU has installed over time. Therefore, an OEM MAY check for any abnormal patterns of installation that could have been caused by an ECU key compromise. Note, however, that this method is not perfect, because if attackers control ECU keys, then they can also use these keys to send fraudulent ECU version reports.

@hexsecs
Copy link
Member

hexsecs commented Mar 14, 2023

The uptane standard states:
https://uptane.github.io/papers/uptane-standard.2.0.0.html#build-time-prerequisite-requirements-for-ecus

"An ECU signing key. This is a private key, unique to the ECU, used to sign ECU version reports and decrypt images. An ECU key can be either a symmetric key or an asymmetric key. If it is an asymmetric key, there SHOULD be separate keys for encryption and signing. For the purposes of this Standard, the set of private keys that an ECU uses is referred to as the ECU key (singular), even if it is actually multiple keys used for different purposes."

In my opinion, this is the source of our confusion in both.

  1. Why use "ECU key" singular if there could be more than one key?
  2. Why did we truncate the name to "ECU key", there are many keys in an ECU?

I propose we change the name to "ECU identity key(s)"

@jhdalek55
Copy link
Collaborator Author

jhdalek55 commented Mar 28, 2023

See PR #250 on the Standard issue (uptane/uptane-standard#250) for a partial solution for this issue.

jhdalek55 added a commit that referenced this issue Apr 5, 2023
Per @plapczyn suggestion, I've used the term ECU Identity key rather than the less specific "ECU Key." This matches the re-naming suggested in PR #250 on the Standards Repo. When both of these PRs are approved, we can close Deployment Issue #139 .
@jhdalek55
Copy link
Collaborator Author

This can be closed once PR #148 on Deployment and PR #250 on the Standards are reviewed and merged.

@jhdalek55 jhdalek55 added this to the 2.1.0 milestone Apr 6, 2023
@jhdalek55
Copy link
Collaborator Author

In the 4/25 Uptane meeting, it was decided we need to do a more thorough revision on how we discuss keys in both the Standard and the Deployment pages . As such we are targeting resolution of this issue for 2.2.0

@jhdalek55 jhdalek55 modified the milestones: 2.1.0, 2.2.0 Apr 25, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants