NLog - 如何解密日志文件

4

我在网站上有日志记录,我想要将日志文件加密。为了加密日志文件,我只需要在配置文件中添加属性fileAttributes="Encrypted",如下所示:

    <target name="file" xsi:type="File"
        layout="${longdate} | ${pad:padding=-5:inner=${level:uppercase=true}} | ${message} ${onexception:inner=${newline}   ${exception:format=ToString}}"
        fileName="${basedir}/Log/log_info.log"
        fileAttributes="Encrypted"
        archiveFileName="${basedir}/Log/log_info_{#}.log"
        archiveAboveSize="1048576"
        archiveNumbering="Rolling"
        maxArchiveFiles="2"
        concurrentWrites="true"
        keepFileOpen="false" />

问题:我如何对文件进行解密以查看日志记录?


NLog文档页面上缺乏有关此问题的详细信息,我很想知道如何正确加密和解密日志文件。参考:github.com/nlog/NLog/wiki/File-target 如果可能的话,我将感激提供C#配置和编程示例。 - Mister Epic
2个回答

5
NLog不会加密文件本身,它只是请求操作系统来处理。在.NET中使用FileOptions.Encrypted枚举值公开。其注释很好地描述了它的作用:“表示文件已加密,只能使用加密时使用的同一用户帐户解密。”“相同的用户帐户”是最常见的问题,IIS通常使用自己的帐户运行,有关详细信息,请参阅此现有Q+A。操作系统实现在此MSDN页面中详细介绍。
在Web服务器上使用此选项应该需要稍作暂停。唯一能轻松读取日志文件的人是从外部攻击机器的攻击者。他毫不费力地读取文件,因为他正在使用IIS帐户,文件内容很容易以明文形式获得。那些需要日志文件来阻止这样的攻击者的人将会很难读取文件,因为他们将使用自己的帐户访问机器。
这不是理想的安全实践。

这正是我担心的,但我希望可能会有另一个答案。感谢您的意见。 - Mister Epic

3

fileAttributes="Encrypted" 表示该文件将具有 NTFS 属性 Encrypted。 https://github.com/nlog/NLog/wiki/File-target

要解密它 - 转到文件属性 -> 属性 -> 高级,取消选中“加密内容以保护数据”。

它仅适用于在加密文件的同一台计算机上。因此,在另一台计算机上无法解密该文件的副本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接