从 UDS 服务 27 的种子计算密钥(安全访问)

问题描述 投票:0回答:3

除了取2的补码之外,还有其他计算安全访问服务密钥的方法吗?如果是这样请解释一下

diagnostics iot-for-automotive
3个回答
2
投票

SecurityAccess服务的密钥计算算法取决于特定的ECU规范。为了使未经许可的访问变得困难,通常使用需要共享密钥的算法(只有 ECU 和需要访问的应用程序知道)。

常用的算法是

  • 对种子进行按位异或运算
  • 种子上的按位移位和/或旋转
  • 种子的AES加密/解密(对称)
  • RSA 种子加密/解密(非对称)
  • 这些的组合

如果您问这个问题是为了了解特定 ECU 上的 SecurityAccess 是如何工作的,那么如果没有 ECU 规范或大量逆向工程,就无法知道。

如果您问这个问题是为了决定用于新 ECU 的好算法,那么强烈建议使用广泛采用的加密算法,而不是重新发明它,因为已建立的算法是由现场专家设计和审查的(即 AES -256).


0
投票

XTEA 算法的使用似乎有点“标准”:https://en.wikipedia.org/wiki/XTEA 我见过几个 ECU 使用它。

(UDS) 服务的实施是为了仅允许经批准的人员安全访问 ECU 的内部参数。 程序很简单:

  • 向 ECU 请求种子
  • 因此,如果您拥有主密钥,则可以使用 XTEA 和种子生成单独的 KEY。
  • 在允许的时间范围内(2秒?取决于实现?)发送回种子和密钥
  • ==>解锁

现在支持的 UDS 命令(有些是标准化的,有些是依赖于实现的)可以免费使用。


0
投票

您也可以拥有自己的算法!目标是拥有一些权限来执行关键任务,例如编程会话(擦除、写入内存)!

© www.soinside.com 2019 - 2024. All rights reserved.