加密文件系统(EFS)是通过单个密钥存储进行的J2文件系统级加密。 这允许进行文件加密,以保护机密数据不受攻击者对计算机的物理访问。 用户身份验证和访问控制列表可以在操作系统运行时保护文件免受未经授权的访问; 但是,如果攻击者获得了对计算机的物理访问权,则很容易绕开控制列表。
一种解决方案是将加密文件存储在计算机的磁盘上。 在EFS中,密钥与每个用户相关联。 这些密钥存储在受密码保护的密钥存储区中,并在成功登录后存储,并且用户的密钥被加载到内核中并与进程凭证关联。 当进程需要打开受EFS保护的文件时,系统将测试凭据。 如果系统找到与文件保护匹配的密钥,则该过程能够解密文件密钥和文件内容。 密码信息保留在每个文件的扩展属性中。 EFS使用扩展属性版本2,并且每个文件在写入磁盘之前都已加密。 从磁盘读取文件到内存时,文件将被解密,因此保存在内存中的文件数据将采用清晰格式。 数据仅解密一次,这是一个主要优势。 当另一个用户需要访问文件时,即使文件数据已经存在于内存中且格式清晰,也要先验证其安全凭据,然后再授予对数据的访问权限。 如果用户无权访问该文件,则拒绝访问。 文件加密并不能消除传统访问权限的作用,但是可以增加粒度和灵活性。
为了能够在系统上创建和使用启用了EFS的文件系统,必须满足以下先决条件:
在C(CliC)加密库中安装CryptoLite。 启用RBAC。 使系统能够使用EFS文件系统。
AIX EFS与市场上的其他产品有何不同?
AIX®EFS加密在文件系统级别。 每个文件都有一个唯一的文件密钥保护,并且针对恶意根创建了保护。
常用命令
合理的
efsenable命令激活系统上的EFS功能。 它创建EFS管理密钥库,用户密钥库和安全组密钥库。 密钥库是包含EFS安全信息的密钥库。 EFS管理密钥库的访问密钥存储在用户密钥库和安全组密钥库中。 efsenable命令创建/ var / efs目录。 执行此命令时,将使用新的EFS属性更新/ etc / security / user和/ etc / security / group文件。
efskeymgr
efskeymgr命令专用于EFS所需的所有密钥管理操作。 用户密钥库的初始密码是用户登录密码。 组密钥库和管理员密钥库不受密码保护,但受访问密钥保护。 访问密钥存储在属于该组的所有用户密钥库中。
当您打开密钥库时(登录时或使用efskeymgr命令明确打开),该密钥库中包含的私钥将被推送到内核并与该进程相关联。 如果在密钥库中找到访问密钥,则还将打开相应的密钥库,并且密钥会自动推入其内核。
efsmgr
efsmgr命令专用于EFS内部的文件加密和解密管理。 只能在启用EFS的JFS2文件系统上创建加密文件。 使用此命令在文件系统或创建文件的目录上设置继承。 在目录上设置继承时,默认情况下会加密在此目录中创建的所有新文件。 用于加密文件的密码是继承的密码。 新目录也继承相同的密码。 如果在子目录上禁用了继承,则在此子目录中创建的新文件将不会被加密。
在目录或文件系统上设置或删除继承对现有文件没有影响。 必须明确使用efsmgr命令来加密或解密文件。
示例场景
让我们以一家拥有三个部门的公司为例,这三个部门分别是销售,市场和财务。 这三个部门共享同一台AIX机器来存储其机密内容。 如果未启用EFS,则在三个部门之间公开数据的可能性非常高。 请参阅下面的清单1 ,了解如何使这种容易受到威胁的机器成为存储数据的安全位置。
启用EFS
要在AIX上启用EFS,请键入以下内容:
清单1. AIX中的EFS启用
# efsenable -a
Enter password to protect your initial keystore:
Enter the same password again:
输入以下内容以查看为促进EFS而创建的目录:
# cd /var/efs
# ls
efs_admin efsenabled groups users
现在应启用所有EFS功能。
现在,您将为所有三个部门创建一个单独的文件系统。 EFS的创建类似于普通文件系统的创建。 唯一的区别是您必须启用EA2 efs = yes属性。
清单2说明了如何通过系统管理界面工具(SMIT)创建加密的文件系统:
清单2.通过SMIT创建EFS
Add an Enhanced Journaled File System
Type or select values in entry fields.
Press Enter AFTER making all desired changes.
[Entry Fields]
Volume group name rootvg
SIZE of file system
Unit Size Megabytes +
* Number of units [100] #
* MOUNT POINT [/sales]
Mount AUTOMATICALLY at system restart? no +
PERMISSIONS read/write +
Mount OPTIONS [] +
Block Size (bytes) 4096 +
Logical Volume for Log +
Inline Log size (MBytes) [] #
Extended Attribute Format +
ENABLE Quota Management? no +
Enable EFS? yes +
Allow internal snapshots? no +
您还可以通过命令行创建相同的文件系统,如清单3所示:
清单3.通过命令行创建EFS
#crfs -v jfs2 -g rootvg -m /sales -a size=100M -a efs=yes
#crfs -v jfs2 -g rootvg -m /marketing -a size=100M -a efs=yes
#crfs -v jfs2 -g rootvg -m /finance -a size=100M -a efs=yes
现在,您已经成功为这三个部门创建了三个单独的文件系统。
为用户和组创建密钥库
为了处理或维护这些单独的文件系统,您需要创建三个不同的用户并为其创建密钥库(请参见清单4 )。 (为该用户设置密码后,将为该用户创建密钥库)。
清单4.创建用户
#mkuser salesman
#passwd salesman
#mkuser marketingman
#passwd marketingman
#mkuser financeman
#passwd financeman
这将在/ var / efs / users目录中为这三个用户创建三个单独的密钥库(请参见清单5 )。
清单5.用户的密钥库位置
# pwd
/var/efs/users
# ls
.lock salesman marketingman financeman root
您还可以使用EFS为组创建密钥库(请参见清单6 )。
清单6.为组创建密钥库
#efskeymgr -C finance
# pwd
/var/efs/groups
# ls
.lock finance security
为组创建密钥库至少需要一个用户。
创建EFS目录并设置属性
本节说明如何在EFS文件系统中创建加密的文件和目录以及如何操纵它们的属性。 为了创建EFS目录,您需要安装EFS文件系统(请参见清单7 )。
清单7.创建EFS目录
# mount /finance
# cd /finance
#mkdir yearlyreport
# efsmgr -E yearlyreport
# efsmgr -L yearlyreport
EFS inheritance is set with algorithm: AES_128_CBC
现在将Annualreport目录设置为继承。 它指示文件或目录从其父目录继承加密属性和所有加密参数。
efsmgr有多种选项,可帮助您设置要在此目录上使用的密码类型,启用和禁用继承,以及从此目录的EFS访问列表中添加或删除用户和组。
加密单个文件
为了执行任何与EFS相关的活动,您需要加载密钥库。 如果您尝试在此加密目录中创建文件而无权访问对其进行保护的密钥库,则将导致以下情况:
# cd yearlyreport
# ls
# touch apr_report
touch: 0652-046 Cannot create apr_report.
当您没有加载用于执行EFS活动的密钥库时,就会发生这种情况(请参见清单8 )。
清单8.将EFS密钥库加载到shell
# efskeymgr -o ksh
financeman's EFS password:
# touch apr_report
现在,您已经加载了密钥库,添加到该文件的所有信息都在文件系统级别被加密(请参见清单9 )。
清单9. EFS中的加密文件
# ls -U apr_report
-rw-r--r--e 1 financeman system 0 Nov 28 06:14 apr_report
为该文件设置的“ e”表示该文件已加密,拥有密钥存储区的所有者只能访问和读取其内容(请参见清单10 )。
清单10.列出加密文件属性
# efsmgr -l apr_report
EFS File information:
Algorithm: AES_128_CBC
List of keys that can open the file:
Key #1:
Algorithm : RSA_1024
Who : uid 0
Key fingerprint : 4b6c5f5f:63cb8c6f:752b37c3:6bc818e1:7b4961f9
使用efsmgr命令可用的不同标志时,可以更改文件的密码和其他属性。 如果要创建一个不在任何加密目录下的文件,则需要使用以下选项来加密此类独立文件(请参见清单11 ):
清单11.加密单个文件
#cd /finance
#touch companylist
# ls -U
total 16
-rw-r--r--- 1 root system 8 Nov 28 06:21 companylist
drwxr-xr-x- 2 root system 256 Nov 28 05:52 lost+found
drwxr-xr-xe 2 root system 256 Nov 28 06:14 yearlyreport
# efsmgr -c AES_192_ECB -e companylist
# ls -U companylist
-rw-r--r--e 1 root system 8 Nov 28 06:24 companylist
方便其他用户访问您的文件
现在您已经看到,每个部门都创建了一个单独的文件系统,并具有一个密钥库来保护它们。 如果该场景要求财务人员要访问销售中的加密文件,那么您需要能够授予他或她这样做的权限(请参见清单12和清单13 )。
清单12.加密文件时的vi输出
#vi sales_report
~
~
~
~
~
~
~
~
"sales_report" Security authentication is denied.
清单13.将密钥库访问权传递给另一个用户
# efskeymgr -k user/salesman -s user/financeman
现在,此命令将“推销员”用户的访问密钥发送给“财务员”用户。
如果您尝试编辑salesman拥有的文件,则可以以其原始格式读取和访问内容,因为您现在拥有创建该文件的用户的密钥库(请参见清单14 )。
清单14.接受密钥库访问后的vi输出
#vi sales_report
Sales report for this financial year
~
~
~
~
~
~
~
~
"sales_report" [Read only] 1 line, 36 characters
授予和撤消对单个文件的访问权限
除了将完整的访问密钥发送给另一个用户之外,您还可以为EFS上的单个文件设置访问权限。
现在,假设您在/ marketing文件系统目录中有一个文件,并且希望将特定的/marketing/strategy.txt文件的访问权限授予“销售人员”用户和“财务”组。 为了完成此任务,您需要查看清单15和清单16 。
清单15.向用户授予访问权限
# efsmgr -l strategy.txt
EFS File information:
Algorithm: AES_128_CBC
List of keys that can open the file:
Key #1:
Algorithm : RSA_1024
Who : uid 0
Key fingerprint : 4b6c5f5f:63cb8c6f:752b37c3:6bc818e1:7b4961f9
# efsmgr -a strategy.txt -u salesman
# efsmgr -l strategy.txt
EFS File information:
Algorithm: AES_128_CBC
List of keys that can open the file:
Key #1:
Algorithm : RSA_1024
Who : uid 0
Key fingerprint : 4b6c5f5f:63cb8c6f:752b37c3:6bc818e1:7b4961f9
Key #2:
Algorithm : RSA_1024
Who : uid 204
Key fingerprint : f91b5a79:53bdd7f1:58987a33:f5701a38:99145b24
清单16.授予对组的访问权限
# efsmgr -a strategy.txt -g finance
# efsmgr -l strategy.txt
EFS File information:
Algorithm: AES_128_CBC
List of keys that can open the file:
Key #1:
Algorithm : RSA_1024
Who : uid 0
Key fingerprint : 4b6c5f5f:63cb8c6f:752b37c3:6bc818e1:7b4961f9
Key #2:
Algorithm : RSA_1024
Who : uid 204
Key fingerprint : f91b5a79:53bdd7f1:58987a33:f5701a38:99145b24
Key #3:
Algorithm : RSA_1024
Who : gid 201
Key fingerprint : 8cb65011:2a42e9f0:91f7b712:20e36bb7:5eb0db0a
如果您需要撤消提供给“ finance”组的访问,则可以将efsmgr命令与“ -r”标志一起使用,如下面的清单17所示。
清单17.撤消对组的访问
# efsmgr -r strategy.txt -g finance
# efsmgr -l strategy.txt
EFS File information:
Algorithm: AES_128_CBC
List of keys that can open the file:
Key #1:
Algorithm : RSA_1024
Who : uid 0
Key fingerprint : 4b6c5f5f:63cb8c6f:752b37c3:6bc818e1:7b4961f9
Key #2:
Algorithm : RSA_1024
Who : uid 204
Key fingerprint : f91b5a79:53bdd7f1:58987a33:f5701a38:99145b24
有关EFS命令的标志和选项的完整列表,请参阅“ 相关主题”部分。
结论
EFS是AIX 6.1附带的一项重要功能,它可以帮助您加密和保护数据。 本文为您提供了有关EFS的基本信息,这些信息有助于启用具有EFS的AIX 6.1计算机。 您学习了如何创建加密的文件和目录,以及如何通过命令更改密码和继承。 您还检查了一个用例场景,详细描述了EFS的配置和用法。
翻译自: https://www.ibm.com/developerworks/aix/library/au-efs/index.html
相关资源:高通QMI拨号工具