我们有一个服务器,它通过自定义登录程序安全地向客户端发送密钥。该密钥随后用于加密进一步的客户端请求。该密钥像 cookie 一样保存在客户端的磁盘上,并由可能在客户端决定注销并导致密钥过时之前多次启动和停止的程序使用(因此密钥保存在磁盘上,因为当没有程序运行时,登录和注销之间可能有很长的时间)。
将密钥仅保存在内存中而不是磁盘上似乎更安全(如果崩溃或重新启动丢失密钥并随后强制重新登录,这没关系)。
在 Windows 上,在程序的单独执行之间仅将密钥保留在内存中(忽略内存可能是虚拟的并分页到磁盘)的最佳方法是什么?
一种可能的解决方案是让一个普通的 Windows 服务在接受密钥的客户端上运行,将其保留在服务的内存中,并在请求时返回它(或使用执行相同操作的等效普通 DDE 服务器)。首选非.net 解决方案。
是否有一个通常运行的标准 Windows 服务已经提供了这种能力?
有更好的方法吗?