Encrypt Manager

注意:要显示特定设备上存在的功能,请从下面的 SmartDocs 栏中选择一个或多个过滤器。

StageNow - 2.10

概述

Encrypt Manager (EncryptMgr) 允许应用程序管理密钥存储数据库、激活或停用全存储卡加密,以及创建或删除加密文件系统 (EFSes)。要配置加密,必须回答某些问题:

  • 将加密哪些数据?
  • 数据的加密版本实际上存放在哪里?
  • 应用程序如何访问数据的未加密版本?
  • 将使用哪些密钥来加密和解密数据?

Zebra Android 设备支持使用两种操作模式对设备文件系统中存储的数据加密:

  • 全存储卡加密模式允许使用单个存储卡,通常是一个可实际拆卸的存储卡(例如 Micro SD 卡),将格式化为一个加密的文件系统。从安全角度来看,此模式尤其有用,因为它可以防止存储卡从设备中实际取出后能够从外部访问存储卡上存储的所有数据。在该模式下,整个卡已加密,用于执行加密的密钥未存储在卡上。由于数据已加密并且以透明的方式解密,在设备上运行的应用程序可访问存储卡上的所有数据,就好像它未加密一样。应用程序可以使用存储卡未加密时所使用的相同路径来访问加密的存储卡。

打开“全存储卡加密模式”时,不同种类的设备会以不同的方式响应,如:

  • 如果设备(例如 MC40)没有可移动的存储卡,将会采用对可移动存储卡加密的相同方法来加密内置的主要外部存储卷。
  • 如果设备不支持可移动存储卡且插槽为空,MXMS 会返回一个错误,指明没有找到卡,并且内置的主要外部存储也不会被加密。

注意:如果在插槽中可移动存储卡并且打开“全存储卡加密模式”,可移动存储卡将被加密。从设备中取出后,存储卡会保持加密状态,并且仅在原来加密它的设备中可装载,而且前提是该设备中存在它的密钥。

注意:将存储卡从未加密更改为加密,或者是从加密更改为未加密,都需要重新格式化卡,这会擦除卡上的所有数据。如果有数据必须保留,则必须在激活或停用加密之前将其复制到另一个位置,在重新格式化卡之后再复制回来。

  • 文件夹加密模式允许创建任意数量的加密文件系统 (EFS)。每个 EFS 的数据位于一个文件中,该文件必须存储在某些非加密的文件系统中。此文件称为备份存储文件 (BSF)。BSF 可能位于内部存储(例如 /data)或主要存储卡上。BSF 基于 EFS 的名称命名。EFS 装载到一个虚拟路径,称之为它的装载点。EFS 的装载点可能指定 BSF 所在的相同非加密文件系统上的某个路径,也可能指定不同文件系统上的路径。由于数据已加密并且以透明的方式解密,在设备上运行的应用程序可访问 EFS 上的所有数据,就好像它未加密一样。应用程序必须使用在创建 EFS 时建立的装载点路径来访问 EFS。

注意:虽然 EFS 的 BSF 能够存储在可移动的存储卡上,但是它不能存储 在使用全存储卡加密模式加密的存储卡上。如果试图创建其 BSF 位于使用全存储卡加密模式加密的存储卡上的 EFS,则会在结果 XML 中返回错误。

Zebra Android 设备具有命名加密密钥的密钥存储库。每个命名密钥具有关联的密钥值,可用于加密整个存储卡和/或加密任意数量的 EFS。当激活全存储卡加密或创建一个 EFS 时,必须指定一个命名密钥,并且该密钥必须存在于密钥存储数据库中。如果某个已命名密钥已从密钥存储数据库中删除,那么使用该命名密钥加密的全存储卡加密和/或 EFS 将变得不可访问。添加该已命名密钥(具有相同密钥值)后将恢复可访问性。

主要功能

  • 添加和删除命名密钥
  • 创建和删除加密文件系统
  • 将存储卡格式化为加密或未加密

安装密钥

用于选择是否添加命名密钥到设备上的密钥存储数据库。将命名密钥添加到设备上的密钥存储数据库后,将使得该密钥在激活全存储卡加密或创建 EFS 时可用。

注意

  • 使用一个给定的装载点,一次只能装载一个加密文件系统 (EFS)。
  • 尝试使用某个已装载的 EFS 已经在使用的装载点创建一个 EFS 时,将导致创建一个不会被装载的新 EFS。
  • 添加到密钥存储数据库的命名密钥可能影响以前使用该密钥加密的存储卡或 EFS。
  • 删除密钥后变得不可访问的存储在添加了名称和值相同的密钥后会再次变得可访问,并且可以重新装载。

参数名称:InstallKeyAction

选项 名称 说明需要
0 无操作 此值(或 XML 中缺少此参数)将导致不会更改密钥存储数据库。

OSX:1.0+

MX:4.3+

1 安装密钥 添加命名密钥及其关联的密钥值到密钥存储数据库。

OSX:1.0+

MX:4.3+

安装密钥名称

用于指定将要添加到密钥存储数据库的命名密钥的名称。

注意:如果尝试添加已经在密钥存储数据库中的命名密钥,将会在结果 XML 中返回错误。

参数值输入规则

  • 最小长度为 1 个字符的字符串

在以下条件下显示:安装密钥操作为“安装密钥”

参数名称:InstallKeyName

需要:

  • OSX:1.0+
  • MX:4.3+

安装密钥值

用于指定要与添加到密钥存储数据库的命名密钥关联的密钥值。指定空值(零长度)(或 XML 中缺少此参数)将导致自动生成一个随机密钥值并在该设备上使用。阅读下面有关生成随机密钥的重要说明

重要说明:机器生成的随机密钥通常被认为是最安全的。此类密钥因为其长度而几乎不可能被猜测到,而且也不会无意中被透露,因为用户从来都不知道它的内容。但是,如果随机密钥丢失,那么使用该密钥加密的数据也会丢失。在企业重置或其他擦除事件中,如果擦除了加密密钥的唯一副本,那么在设备上可能无法再恢复保留数据。“安装密钥值”参数接受使用任何所需的机制生成的 256 位 AES 加密值。一旦生成,就应该小心地管理和保留密钥值。

Zebra 建议加密密钥的保留应该与设备数据的保留相匹配

参数值输入规则

  • 内容为空(零长度)或刚好 64 个 HEX 字符("0-9" 和/或 "A-F" 字符)的 HEX 字符串,将用作 AES 加密密钥值来编码 256 位二进制值

在以下条件下显示:安装密钥操作为“安装密钥”

参数名称:InstallKeyValue

需要:

  • OSX:1.0+
  • MX:4.3+

吊销密钥

用于选择是否从密钥存储数据库中删除某个命名密钥。

注意:如果尝试删除目前不在密钥存储数据库中的命名密钥,将会在结果 XML 中返回错误。

将命名密钥从密钥存储数据库删除后,将阻止以后在激活全存储卡加密或创建 EFS 时使用该密钥。

注意:从密钥存储数据库中成功删除命名密钥后,使用该密钥加密并且已装载的任何存储卡或加密文件系统将被卸载,并且变得不可访问。

参数名称:RevokeKeyAction

选项 名称 说明需要
0 无操作 此值(或 XML 中缺少此参数)将导致不会更改密钥存储数据库。

OSX:1.0+

MX:4.3+

1 吊销密钥 从密钥存储数据库中删除加密密钥。

OSX:1.0+

MX:4.3+

吊销密钥名称

用于指定将要从密钥存储数据库中删除的命名密钥的名称。

参数值输入规则

  • 最小长度为 1 个字符的字符串
  • 名称必须用逗号分隔

在以下条件下显示:吊钥密钥操作为“吊销密钥”

参数名称:RevokeKeyName

需要:

  • OSX:1.0+
  • MX:4.3+

创建 EFS

用于选择是否在设备上创建加密文件系统。

注意:创建加密文件系统 (EFS) 的过程需要一些时间,因为它必须创建备份存储文件 (BSF) 并在指定的装载点上装载 EFS。因此,在成功装载之前,应用程序将无法通过它的装载点访问 EFS。而且,如果它正在使用的密钥名称已从密钥存储数据库中删除,之后可能会卸载 EFS。因此,使用 EFS 的应用程序应该包括错误处理逻辑,可以处理 EFS 未装载并且不能访问的情况。

尝试创建加密文件系统时可能因为各种原因而失败,其中包括:

  • 在指定存储位置已存在具有指定 EFS 名称的 BSF。只能为每个存储位置创建一个给定名称的 EFS。
  • 为 BSF 指定的存储位置不可访问(例如未安装)或不可写入。
  • 为 BSF 指定的存储位置可用空间不足以创建指定大小的 BSF 。
  • 为 BSF 指定的存储位置是已激活全存储卡加密的存储卡。
  • 为 EFS 指定的命名密钥不在密钥存储数据库中。
  • 为 EFS 指定的大小无效。

参数名称:CreateEFSAction

选项 名称 说明需要
0 无操作 此值(或 XML 中缺少此参数)将导致不创建加密文件系统。

OSX:1.0+

MX:4.3+

1 创建 EFS 此值将导致创建加密文件系统。

OSX:1.0+

MX:4.3+

EFS 名称

用于指定要创建的加密文件系统的名称。

参数值输入规则

  • 最小长度为 1 个字符的字符串

在以下条件下显示:“创建 EFS”操作为“创建 EFS”

参数名称:EFSName

需要:

  • OSX:1.0+
  • MX:4.3+

EFS 密钥名称

用于指定在创建加密文件系统时使用的命名密钥。

参数值输入规则

  • 最小长度为 1 个字符的字符串

在以下条件下显示:“创建 EFS”操作为“创建 EFS”

参数名称:EFSKeyName

需要:

  • OSX:1.0+
  • MX:4.3+

EFS 位置

用于指定为要创建的加密文件系统存储备份存储文件的存储位置。

在以下条件下显示:“创建 EFS”操作为“创建 EFS”

参数名称:EFSLocation

选项 名称 说明需要
0 无操作 此值表示在设备的内部存储(也就是 /data)中创建 EFS 的 BSF。

OSX:1.0+

MX:4.3+

1 安装密钥 此值表示在设备的主要存储卡上创建 EFS 的 BSF。

OSX:1.0+

MX:4.3+

EFS 装载路径

用于指定要对创建的加密文件系统使用的装载路径。

参数值输入规则

  • 最小长度为 1 个字符的字符串

在以下条件下显示:“创建 EFS”操作为“创建 EFS”

参数名称:MountPath

需要:

  • OSX:1.0+
  • MX:4.3+

EFS 大小

用于指定要创建的加密文件系统的备份存储文件的大小 (MB)。

参数值输入规则

  • 最小长度为 1 个字符的字符串
  • 此值必须至少为 1 MB,不能超过 4096 MB 。

在以下条件下显示:“创建 EFS”操作为“创建 EFS”

参数名称:VolumeSize

需要:

  • OSX:1.3+
  • MX:4.3+

删除 EFS

用于选择是否删除加密文件系统。

参数名称:DeleteEFSAction

选项 名称 说明需要
0 无操作 此值(或 XML 中缺少此参数)将导致不会更改加密文件系统。

OSX:1.0+

MX:4.3+

1 删除 EFS 删除加密文件系统。

OSX:1.0+

MX:4.3+

删除 EFS 位置(内部/SD 卡)

用于指定要删除的加密文件系统 (EFS) 的备份存储文件 (BSF) 的存储位置。

在以下条件下显示:“创建 EFS”操作为“删除 EFS”

参数名称:DeleteEFSLocation

选项 名称 说明需要
0 无操作 表示要删除的 EFS 的 BSF 在设备的内部存储(也就是 /data)中。

OSX:1.0+

MX:4.3+

1 安装密钥 此值表示要删除的 EFS 的 BSF 在设备的主要存储卡上。

OSX:1.0+

MX:4.3+

SD 卡操作

用于激活或停用全存储卡加密。尝试激活或停用全存储卡加密可能会因各种原因而失败,其中包括:

  • 存储卡可移动,目前不在设备中
  • 存储卡目前未装载或不可访问
  • 指定的命名密钥不在密钥存储数据库中。

注意:在激活或停用全存储卡加密后,存储卡必须相应地重新格式化为加密或未加密。重新格式化会导致卡上的所有数据丢失。如果有数据必须保留,则必须在激活或停用加密之前将其复制到另一个位置,在重新格式化卡之后再复制回来。

参数名称:SdCardOperation

选项 名称 说明需要
0 无操作 此值(或 XML 中缺少此参数)将导致不会更改全存储卡加密激活状态。

OSX:1.3+

MX:4.3+

1 加密 SD 卡 激活全存储卡加密,重新格式化和加密存储卡。

OSX:1.3+

MX:4.3+

2 格式化 SD 卡 停用全存储卡加密,重新格式化存储卡并从中删除加密。

OSX:1.3+

MX:4.3+

SD 卡加密密钥

用于指定将用来执行全存储卡加密的命名密钥。

注意:如果命名密钥不在密钥存储数据库中,将会在结果 XML 中返回错误。

参数值输入规则

  • 最小长度为 1 个字符的字符串

在以下条件下显示:SD 卡操作是“加密 SD 卡”

参数名称:SdCardKeyName

需要:

  • OSX:1.3+
  • MX:4.3+

示例

加密 SD 卡

<wap-provisioningdoc><characteristic type="EncryptMgr" version="4.3" ><parm name="SdCardOperation" value="1"/><parm name="SdCardKeyName" value=" EncryptKey"/></characteristic></wap-provisioningdoc>

查询

获取 SD 卡加密状态

输入

<wap-provisioningdoc><characteristic type="EncryptMgr"><parm-query name="SdCardOperation" /></characteristic></wap-provisioningdoc>

输出

<wap-provisioningdoc><characteristic type="EncryptMgr" version="4.3"><parm name="SdCardOperation" value="1" /></characteristic></wap-provisioningdoc>

获取 EFS(加密文件系统)列表

输入

<wap-provisioningdoc><characteristic type="EncryptMgr" version="4.3"><characteristic-query type="CreateEFS"/></characteristic></wap-provisioningdoc>

输出

<wap-provisioningdoc><characteristic type="EncryptMgr" version="4.3"><characteristic type="CreateEFS"/><parm name="CreateEFSAction" value="1" /><characteristic type="CreateEFSDetails"><parm name="EFSName" value=" EFSName1" /><parm name="EFSKeyName" value=" EFSKeyName1" /><parm name="EFSLocation" value=" StorageType1" /><parm name="MountPath" value=" MountPath1" /><parm name="VolumeSize" value=" VolumeSize1" /></characteristic></characteristic></characteristic><characteristic type="EncryptMgr" version="4.3"><characteristic type="CreateEFS"/><parm name="CreateEFSAction" value="1" /><characteristic type="CreateEFSDetails"><parm name="EFSName" value=" EFSName2" /><parm name="EFSKeyName" value=" EFSKeyName2" /><parm name="EFSLocation" value=" StorageType2" /><parm name="MountPath" value=" MountPath2" /><parm name="VolumeSize" value=" VolumeSize2" /></characteristic></characteristic></characteristic></wap-provisioningdoc>

获取密钥列表

输入

<wap-provisioningdoc><characteristic type="EncryptMgr" version="4.3"><characteristic-query type="InstallKey"/></characteristic></wap-provisioningdoc>

输出

<wap-provisioningdoc><characteristic type="EncryptMgr" version="4.3"><characteristic type="InstallKey"/><parm name="InstallKeyAction" value="1" /><characteristic type=" InstallKeyDetails "><parm name="InstallKeyName" value=" KeyName1" /></characteristic></characteristic></characteristic><characteristic type="EncryptMgr" version="4.3"><characteristic type="InstallKey"/><parm name="InstallKeyAction" value="1" /><characteristic type=" InstallKeyDetails "><parm name="InstallKeyName" value=" KeyName2" /></characteristic></characteristic></characteristic></wap-provisioningdoc>