开发者Skip to main content

  1. 文件
  2. 收费

虚拟密钥开发者指南

虚拟密钥是一种公钥/私钥对,用于在与车辆交互时进行授权。 公钥必须由可信用户添加到车辆中,而私钥则需要安全地保存在应用程序的服务器上。 在执行命令或接受车队遥测配置之前,车辆会验证有效载荷是否由其系统中存在的公钥对应的私钥签名。

设计说明

虚拟密钥为用户提供了重要的保护层。添加密钥到车辆中需要可信用户的参与,从而防止即使是特斯拉的后台也无法访问这些功能。 这确保了只有授权方才能通过车队遥测执行命令或访问设备数据。 如果用户想随时撤销访问权限,可以通过车辆的“锁屏”界面移除虚拟密钥。

设置步骤

创建密钥对

要创建私钥,请运行以下命令:

openssl ecparam -name prime256v1 -genkey -noout -out private-key.pem

接着,生成关联的公钥:

openssl ec -in private-key.pem -pubout -out public-key.pem

注意:车辆仅支持 prime256v1 类型的密钥。

托管公钥

公钥需要保持可通过以下路径访问:

https://developer-domain.com/.well-known/appspecific/com.tesla.3p.public-key.pem

注意:private-key.pem 必须保密,切勿托管到任何域上。

在公钥可以公开访问后,调用 合作伙伴账户注册 接口,将此密钥注册到特斯拉系统中。

添加到车辆

特斯拉可以为通过 B2B 计划 购买的车辆添加虚拟密钥。注意:需要保证车辆已配对的钥匙数量小于20个,用户可在fleet_status接口查询已经配的钥匙数量 在 B2B 计划之外购买的车辆不允许特斯拉远程添加钥匙。对于这些情况,虚拟钥匙必须由具有车辆访问权限的用户添加。

要通过 Tesla 移动应用程序请求虚拟密钥配对:

  1. 确保用户已 授权应用程序 并授予 vehicle_device_datavehicle_cmdsvehicle_location 范围。
  2. 将用户引导至密钥配对深层链接:
https://tesla.com/_ak/*developer-domain.com*

拥有多辆车的用户可以在打开密钥配对链接之前选择车辆,或者可以添加可选的 vin 参数:

https://tesla.com/_ak/*developer-domain.com*?vin=VIN123

删除密钥

用户可以通过车辆的“锁屏”界面删除密钥以移除访问权限。 此外,也可以通过撤销第三方应用程序的访问权限来远程撤销密钥。

术语解释

  • 虚拟密钥: 虚拟密钥是开发者应用程序用来与车辆安全通信的公钥/私钥对。
  • 公钥: 一种加密密钥,用于车辆验证有效载荷是否来自可信来源。
  • 私钥: 一种加密密钥,用于车辆命令代理对发送给车辆的有效载荷进行签名。私钥必须保密,以防止未经授权的车辆访问。
  • 签名命令: 签名命令是通过应用程序私钥签名的命令(例如解锁车门)。 最简单的签名命令方法是通过车辆命令代理完成。