在当今数字化时代,移动设备的数据安全问题日益受到重视。Android开发者和应用程序开发者都在努力确保用户数据的安全。本文将介绍一种基于eCryptfs的新方法来实现敏感数据的安全保护。
目前,有多种方法可以保护用户数据的安全。图1展示了这些解决方案的不同层次。
图1:现有解决方案的三个层次
自Android3.0版本以来,Android操作系统就支持全盘加密(FDE)。这是一种内核级别的解决方案。FDE通过使用加密密钥对Android设备上的所有用户数据进行编码。一旦设备被加密,所有用户创建的数据在写入磁盘之前都会自动加密,所有读取操作在返回给调用进程之前都会自动解密。普通开发者无需了解这些细节;如果用户在手机上启用了FDE,他们就可以在解锁设备之前对所有数据进行复制保护。
在这个级别上,需要root权限。Hook是一种重要的方法,可以确保需要保护的应用程序能够轻松地传输/保存数据。
大多数当前的安全解决方案都在应用级别。有许多现有的库供开发者使用,如OpenSSL、secureSqlite等。开发者可以使用这些现有的库来确保适当的加密和安全。
eCryptfs是一个符合POSIX标准的企业级加密堆叠文件系统,用于Linux。它在每个文件的头部存储加密元数据,使得加密文件可以在主机之间复制。文件将使用Linux内核密钥环中的适当密钥进行加密。除了加密文件本身之外,无需跟踪任何额外的信息。
eCryptfs被广泛使用,作为Ubuntu加密主目录的基础,在Google的ChromeOS中原生使用,并透明地嵌入到多个网络附加存储(NAS)设备中。
使用eCryptfs时,加密和解密是自动进行的。图2展示了提议解决方案的架构。
图2:提议解决方案(基于eCryptfs)的架构
如所见,有了Linux内核中的eCryptfs,可以添加一个服务来响应所有操作。该服务接收使用它的应用程序的命令,并将请求发送给VOLD(Android中的卷守护进程),以实现实际的操作。
对VOLD的请求包括:
如图3所示,可以将这个解决方案分类并插入到一个新的层次中。
图3:提议解决方案的相应层次
图4展示了实现eCryptfs解决方案的变更。
图4:提议解决方案(基于eCryptfs)的变更
图4中显示的红色块展示了实现eCryptfs解决方案的变更。