Jam*_*ieH 9 encryption logging
我正在创建一个客户端应用程序,它需要创建用户活动的日志,但由于各种原因,此日志必须是人类可读的.
目前,对于我的开发,我正在创建一个纯文本日志,如下所示:
12/03/2009 08:34:21 - >用户'Bob'登录于12/03/2009 08:34:28 - >导航到配置页面12/03/2009 08:34:32 - >选项x改为ÿ
部署应用程序时,日志不能是纯文本,因此所有文本都必须加密.这看起来并不简单,因为我需要在添加每个条目时动态更新日志文件.我想到的方法是创建一个二进制文件,隔离加密每个日志条目,然后将它附加到二进制文件,每个条目之间有一些合适的分界.
有谁知道这个问题的任何常见方法,我相信必须有一个更好的解决方案!
Den*_* G. 10
不要单独加密单个日志条目,并按照其他海报的建议将其写入文件,因为攻击者可以轻松识别日志文件中的模式.请参阅块密码模式Wikipedia条目以了解有关此问题的更多信息.

相反,请确保日志条目的加密取决于以前的日志条目.虽然这有一些缺点(你不能解密单个日志条目,因为你总是需要解密整个文件),但它使加密更加强大.对于我们自己的日志记录库SmartInspect,我们使用AES加密和CBC模式来避免模式问题.随时给SmartInspect一个尝试,如果一个商业解决方案将是合适的.
这真的不是我的事,我很容易承认,但是您不能单独加密每个条目,然后将其附加到日志文件中吗?如果您不加密时间戳,您可以轻松找到您正在寻找的条目并在需要时解密这些条目。
我的观点主要是将单个加密条目附加到文件不一定需要是附加到二进制文件的二进制条目。使用(例如)gpg 加密将产生可以附加到 ascii 文件的 ascii 乱码。那能解决你的问题吗?
FWIW,有一次我需要一个加密的记录器,我使用对称密钥(出于性能原因)加密实际的日志条目.
然后,对称的"日志文件密钥"在公钥下加密并存储在日志文件的开头,并且单独的日志阅读器使用私钥来解密"日志文件密钥"并读取条目.
整个过程是使用log4j和XML日志文件格式实现的(为了使读者更容易解析),每次日志文件都滚动到一个新的"日志文件密钥"时生成.