虹科干货 | 突破加密壁垒!虹科Baby-LIN让加密ECU测试轻松落地
在汽车电子开发中
许多ECU采用「种子-密钥」加密机制
进行通信保护
这类加密方案虽提升了安全性
却让测试环节陷入两难
️传统测试工具因无法兼容加密协议
️导致企业被迫依赖特定高价设备
测试成本居高不下!
???? ???? ????
虹科Baby-LIN系列设备创新推出
️Security Access Gateway
️安全访问网关解决方案
无缝兼容主流加密协议
无需更换现有开发框架
即可实现️高效、低成本的ECU测试!
01 .案例背景本篇文章以虹科Baby-LIN-MB系列设备为例,虹科Baby-LIN-MB设备通常用于基于LIN或CAN的ECU(电子控制单元)的EOL(下线)测试操作。
虹科Baby-LIN-3-MB
由于架构基于Linux主机模块,没办法直接集成Windows DLL。而在基于「种子-密钥」形式的安全访问方式里,使用具备标准化API(Vector API)的Security-DLL,已经成了行业内的通用做法。在虹科Baby-LIN-MB系列设备直接连接PLC(可编程逻辑控制器)的应用场景中,一般都有一台Windows PC可供使用。
鉴于此,虹科推出了一种全新的解决方案,让虹科Baby-LIN-MB系列设备能在这台Windows PC上调用Security-DLL 。
02 .方案原理该解决方案基于在工作站的PC上运行的Windows应用程序(Security Access Gateway,安全访问网关)。特定应用Security-DLL将安装在同一台Windows PC上。通过在SDF文件中添加一些特定的协议服务、宏和虚拟信号,可实现以下功能:
⚙️ 向ECU请求种子
⚙️ 将种子发送到安全访问网关
⚙️ 安全访问网关请求安全DLL通过传入种子生成密钥
⚙️ DLL从种子生成密钥,既可以在本地生成,也可以选择通过互联网连接访问外部安全服务器来生成
⚙️ 安全访问网关应用程序从安全DLL接收返回的密钥
⚙️ 并将密钥传输回虹科Baby-LIN-MB设备,设备再将密钥传递给运行SDF的子CPU
安全访问网关应用程序支持符合Vector API标准的DLL。Security-DLL API有两种变体,均受支持。
️使用哪种变体将在配置文本文件server.cfg中定义,该文件与安全访问网关可执行文件位于同一文件夹中。服务器配置文件server.cfg在网关应用程序首次执行时自动创建。
03 .SDF关键配置系统表(System table @@SYSTAB_SECURITY_DLL_ACCESS):此系统表将定义安全DLL调用的一些字符串参数以及信号索引,️用于告知固件种子和密钥信号的位置,以及在何处写入DLL返回的实际密钥长度。系统表至少应有一行;在使用多种配置的情况下,可以使用多行,例如,用于在使用不同IpVariant或IPOptions字符串的配置之间进行切换。
️01 IPAddress:Portnum
此列保存可以访问安全DLL网关应用程序(服务器)的IP地址和端口号。安全访问网关应用程序绑定的端口号在server.cfg文件中定义,该文件与网关应用程序位于同一文件夹中。
️02 IpVariant
此列保存将通过安全DLL网关应用程序传递给安全DLL的IpVariant字符串。如果此字符串为空,网关将使用server.cfg文件中定义的字符串。IpVariant字符串的最大允许长度为1023。若未通过API设置,则使用ipvariant=DefaultVariant。
️03 IpOptions
此列保存将通过安全DLL网关应用程序传递给安全DLL的IpOptions字符串。如果此字符串为空,网关将使用server.cfg文件中定义的字符串。IpOptions字符串的最大允许长度为1023。若未通过API设置,则使用ipoptions=DefaultOptions。
️04 SigIdx-BufferStart
此列保存用于存储种子的虚拟信号数组中第一个虚拟信号的索引。此缓冲区中适用的字节数将作为参数在BuildIn调用中传递。
️05 SigIdx-KeyBufferStart
此列保存用于接收安全网关应用程序返回的密钥的虚拟信号数组中第一个虚拟信号的索引。在执行Buildin宏调用且安全DLL调用成功操作时,将写入这些信号。
️06 KeyBufferMaxLen
此列定义可接受的最大密钥长度,用于放入密钥的虚拟信号数组中。这应与分配的虚拟信号key1…KeyN的数量相对应。如果DLL返回的密钥长度超过分配的Keyx信号数量,这将避免覆盖最后一个Keyx信号之后的其他虚拟信号。
️07 igIdx-RealKeyLength
此列保存虚拟信号RealKeyLength的信号索引。在成功执行BuildIn宏后,此信号将保存从DLL接收的密钥长度。
04 .方案示例使用示例SDF和虚拟DLL进行测试:
⚙️ 在安全访问网关软件包中,您会找到一个示例SDF和一个虚拟安全DLL。
⚙️ 只需将网关应用程序文件复制到运行网关应用程序的Windows PC上的自定义目录中。将可执行文件添加到PC的自动启动文件夹中是个不错的选择。
⚙️ 首次试用时,手动启动 SecurityAccessGateway.exe。
⚙️ 系统可能会提示您允许防火墙访问,请选择允许。
⚙️ server.cfg和dummySecurityLibray.dll已准备好用于测试。
⚙️ 对于实际应用,应将安全DLL放入该目录,并在server.cfg文件中调整为正确的DLL名称。
⚙️ 其他所有操作将在SDF中处理。请评估PC的IP地址,以便在SDF或表写入命令中相应地设置IP地址。
⚙️ 因此,在加载SDF后,调整提供的测试脚本,将正确的IP地址字符串写入表中。
⚙️ 将SDF上传到/MB-II-Testcase子文件夹中,并使用Baby-LIN-Tool在同一文件夹中运行测试脚本。
结语面对加密ECU测试的高成本困局,虹科Baby-LIN-MB设备以️零改造兼容、一键解密通信为核心突破,直击行业痛点,助力企业节省测试投入。无论是本地密钥生成还是云端安全协作,虹科Baby-LIN-MB设备均能无缝适配,让加密协议不再是技术壁垒!
️作者简介 PROFILE
️陈皓
虹科智能互联技术主管,深耕CAN/LIN总线技术领域,提供专业的二次开发服务。