系统管理指南:安全性服务

Procedure如何计算文件的 MAC

消息验证代码或 MAC 会计算文件的摘要并使用密钥进一步保护该摘要。MAC 不会修改原始文件。

  1. 列出可用机制。


    % mac -l
    
    Algorithm       Keysize:  Min   Max
    
    -----------------------------------
    
    des_mac                    64    64
    
    sha1_hmac                   8   512
    
    md5_hmac                    8   512
  2. 生成相应长度的对称密钥。

    您有两种选择。可以提供将根据其生成密钥的 passphrase(口令短语)。或者,可以提供密钥。

    • 如果提供口令短语,则必须存储或记住该口令短语。如果您在线存储口令短语,则只有您才可以读取该口令短语文件。

    • 如果提供密钥,则它必须是对应于机制的正确大小。有关过程,请参见如何生成对称密钥

  3. 创建文件的 MAC。

    mac 命令提供密钥并使用对称密钥算法。


    % mac -v -a algorithm [ -k keyfile ] input-file
    
    -v

    显示以下格式的输出:


    algorithm (input-file) = mac
    
    -a algorithm

    用于计算 MAC 的算法。键入与 mac -l 命令的输出中显示的算法相同的算法。

    -k keyfile

    包含算法所指定长度的密钥的文件。

    input-file

    MAC 的输入文件。


示例 14–7 使用 DES_MAC 和口令短语计算 MAC

在以下示例中,将使用 DES_MAC 机制和派生于口令短语的密钥对电子邮件附件进行验证。MAC 列表将保存到文件中。如果口令短语存储在某个文件中,则除了该用户之外,其他任何人都不能读取该文件。


% mac -v -a des_mac email.attach

Enter key: <键入口令短语>

des_mac (email.attach) = dd27870a

% echo "des_mac (email.attach) = dd27870a" >> ~/desmac.daily.05.07


示例 14–8 使用 MD5_HMAC 和密钥文件计算 MAC

在以下示例中,将使用 MD5_HMAC 机制和密钥对电子邮件附件进行验证。MAC 列表将保存到文件中。


% mac -v -a md5_hmac -k $HOME/keyf/05.07.mack64 email.attach

md5_hmac (email.attach) = 02df6eb6c123ff25d78877eb1d55710c

% echo "md5_hmac (email.attach) = 02df6eb6c123ff25d78877eb1d55710c" \

>> ~/mac.daily.05.07


示例 14–9 使用 SHA1_HMAC 和密钥文件计算 MAC

在以下示例中,将使用 SHA1_HMAC 机制和密钥对目录清单进行验证。结果保存于文件中。


% mac -v -a sha1_hmac \

-k $HOME/keyf/05.07.mack64 docs/* > $HOME/mac.docs.legal.05.07

% more ~/mac.docs.legal.05.07

sha1_hmac (docs/legal1) = 9b31536d3b3c0c6b25d653418db8e765e17fe07a

sha1_hmac (docs/legal2) = 865af61a3002f8a457462a428cdb1a88c1b51ff5

sha1_hmac (docs/legal3) = 076c944cb2528536c9aebd3b9fbe367e07b61dc7

sha1_hmac (docs/legal4) = 7aede27602ef6e4454748cbd3821e0152e45beb4