CodeMeter Embedded嵌入式加密
CodeMeter Embedded
CodeMeter Embedded 是一种静态库,通过专用 API 为嵌入式操作系统(如嵌入式 Linux、VxWorks、QNX 和 Android)提供 CodeMeter 的授权与加密功能。
CodeMeter Embedded 包含 CodeMeter Runtime API 的子集,涵盖授权与保护的核心功能,具体包括:访问授权、检索授权选项、创建授权请求、导入授权更新,以及执行对称和非对称密码学运算。
典型应用场景
-
从自定义应用程序中直接调用 CodeMeter 功能。
-
通过 AxEngine 或 ExEngine 调用(两者均为 CodeMeter Protection Suite 的功能模块)。
支持的授权容器 CodeMeter Embedded 支持以下类型的授权容器:CmDongle(硬件锁)和 CmActLicense(软授权)。
CodeMeter Embedded 的组件
该技术的模块化特性体现在其架构设计中:
组件详情
-
CodeMeter Embedded Core API 作为 CodeMeter Runtime 核心 API 的子集,提供实现授权管理与安全保护的基础核心功能。
-
CodeMeter Embedded Core 涵盖该组件的各项底层核心特性,具体包括:
-
授权缓存 (License Cache): 在内存中临时存储可用授权信息,以显著提升访问速度。该机制严格限制,不缓存任何密码学密钥或加密数据(包括隐藏数据)。
-
多应用并发访问 (Multi-Application Access): 支持多个应用程序同时访问单一 CodeMeter 容器。
-
-
CmDongle (硬件加密锁) 支持接入 CmDongle 以实现密钥与授权文件的安全存储。与硬件锁之间的所有底层通信均经过严格加密,支持以下通信协议:
-
HID: 基于 USB 协议栈的 HID(人机接口设备)驱动与 CmStick 和 CmASIC 进行通信。要求宿主操作系统配置相应的 HID 驱动。
-
文件 I/O: 通过对 CmDongle 文件系统执行读写操作与 CmStick 和 CmCard 进行通信。要求宿主操作系统具备直接(无缓存)读写权限。
-
SPI: 通过底层的芯片间通信接口与 CmASIC 进行交互。要求宿主操作系统配置相应的 SPI 驱动。
-
-
CmActLicense (软授权) 支持结合嵌入式设备的特定硬件属性(硬件指纹)进行授权绑定。系统提供专用适配器 (CmActAdapter) 用于生成硬件指纹及存储授权文件,所有授权文件均受数字签名与加密保护。系统提供以下参考实现:
-
TPM: 基于可信平台模块 (TPM) 芯片生成硬件指纹的标准参考实现。
-
Host ID: 支持开发者自定义硬件指纹生成逻辑的适配器。
-
-
CmLAN 支持接入网络授权服务器。该服务器作为 CodeMeter Runtime 的标准组件运行,且系统与其建立的所有网络通信均受高级别加密保护。
-
Runtime Bridge 允许在 PC 环境中并行部署 CodeMeter Runtime 与 CodeMeter Embedded。CodeMeter Embedded 能够自动侦测当前活跃的 CodeMeter Runtime 进程,并借此与已接入的 CmContainer 建立安全的加密通信链路。
CodeMeter 版本功能对比
| 功能特性 | CodeMeter Embedded | CodeMeter Runtime |
|---|---|---|
| 作为服务/守护进程运行的授权服务器 | - | 支持 |
| CodeMeter WebAdmin | - | 支持 |
| CodeMeter 控制中心 | - | 支持 |
| CodeMeter Core API – 动态库 | - | 支持 |
| CodeMeter Core API – 静态库 | SDK | SDK |
| WUPI 与 HIP | - | SDK |
| 附加运维工具 (cmu, CmDust) | - | 支持 |
| CmDongle (硬件锁) | 支持 | 支持 |
| CmActLicense (软授权) | 支持 | 支持 |
| CmCloudContainer (云容器) | 通过 CmLAN 支持 | 支持 |
| CmReady | 支持 | 支持 |
| 局域网客户端 (LAN Client) | 支持 | 支持 |
| 局域网服务端 (LAN Server) | - | 支持 |
| 演示、试用及订阅授权 | 支持 | 支持 |
| 按需/计次授权 (Pay-Per-Use) | 支持 | 支持 |
| 基于功能的授权 (Feature-based) | 支持 | 支持 |
| 基于版本的授权 (Version-based) | 支持 | 支持 |
| 授权转移主节点 (License Transfer Master) | - | 支持 |
| 授权转移终端节点 (License Transfer Endpoint) | 支持 | 支持 |
| 基于离线文件的授权更新 | 支持 | 支持 |
| 终端服务器识别 | - | 支持 |
| 远程桌面识别 | - | 支持 |
| 安全密钥存储 | 支持 | 支持 |
平台与操作系统
CodeMeter Embedded 静态库的体积视目标平台而定,通常介于 400 KB 至 600 KB 之间。针对 RTOS(实时操作系统)等特定环境或高度定制化的应用场景,系统可直接提供底层源代码 (Source Code) 以供集成。
CodeMeter Embedded 目前全面支持以下平台环境:
| SDK 授权名称 | 操作系统版本要求 | 支持的硬件架构 |
|---|---|---|
| License CodeMeter Embedded SDK Linux ARM | Linux Kernel ≥ 2.4.10 (搭配 glibc ≥ 2.4) | ARMv6, ARMv7, ARMv8 小端模式 (ARMEL) |
| License CodeMeter Embedded SDK Linux x86 | Linux Kernel ≥ 2.4.10 (搭配 glibc ≥ 2.4) | x86 与 x86-64 |
| License CodeMeter Embedded SDK Linux MIPS | Linux Kernel ≥ 2.4.10 (搭配 glibc ≥ 2.4) | MIPS 32 Bit LE (小端模式) |
| License CodeMeter Embedded SDK Linux x64 musl | Linux Kernel ≥ 2.4.10 (搭配 glibc ≥ 2.4) | x86-64 |
| License CodeMeter Embedded SDK Linux RISC V | Linux Kernel ≥ 2.4.10 (搭配 glibc ≥ 2.4) | RISC V |
| License CodeMeter Embedded SDK QNX ARM | Up to CmE 3.12: QNX 6.5, 7.0 From CmE 3.20: QNX 7.0 | ARMv7 |
| License CodeMeter Embedded SDK QNX x86 | Up to CmE 3.12: QNX 6.5, 7.0 From CmE 3.20: QNX 7.0 | x86 |
| License CodeMeter Embedded SDK VxWorks ARM | Up to CmE 3.12: VxWorks 6.9, 7 From CmE 3.20: VxWorks 7 | ARMv7 |
| License CodeMeter Embedded SDK VxWorks PowerPC | Up to CmE 3.12: VxWorks 6.9, 7 From CmE 3.20: VxWorks 7 | PowerPC 大端模式 (ARMEB) |
| License CodeMeter Embedded SDK VxWorks x86 | Up to CmE 3.12: VxWorks 6.9, 7 From CmE 3.20: VxWorks 7 | x86 与 x86-64 |
| License CodeMeter Embedded SDK Windows x86 | Windows ≥ 10 | x86 与 x86-64 |
| License CodeMeter Embedded SDK Windows ARM | Windows ≥ 10 | ARMv8 |
| License CodeMeter Embedded SDK macOS | macOS ≥ Ventura 13 | Apple Silicon 与 x86-64 |
| License CodeMeter Embedded SDK Android ARM | Android Version 5 - 11 | ARMv7 与 ARMv8 |
| License CodeMeter Embedded SDK Source Code | 任意 (Any) | |
| License CodeMeter Embedded SDK Source Code for Microcontrollers | 裸机环境 |