我们已经迁移了一个数据库(备份到 .bacpac 并恢复到新租户),但该数据库使用始终加密的方式进行加密,并且密钥存储在原始租户的密钥库中。我可以通过在第一个租户尝试解密时对其进行身份验证来查看 SQL 管理工作室中的数据(它会自动弹出身份验证对话框),但我需要移动密钥以便我的 Web 应用程序也可以访问它。它是否可以从一个租户迁移到另一个租户,或者这将成为导出和重新导入数据的手动过程?
是否可以加密 nginx 日志文件?如果是这样,logrotate 会是节省时间的最佳时间吗?
这样做的背景是,当第三方服务通过 webhook apis 发送某些内容时,客户端担心将某些用户(登录 ID)保存在访问日志中可能发生的安全问题。
我找不到这个具体的答案,我想知道它是否不是防止用户信息泄露的流行(或正确)措施。我错过了什么吗?
例如,
me RDP Client
--连接到--> a Linux ServerA 1.1.1.1:3388
-- iptables_Port_Forwarding -->a Windows ServerB 2.2.2.2:3389
那么,me RDP Client
>-to->的部分是否the Jump ServerA 1.1.1.1:3388
也被 RDP(TLS)加密,或者不像“裸”?
最新的问题是锁定的 SATA 磁盘。它是三星 870 QVO SSD。它很久以前就被戴尔 BIOS 密码实用程序锁定了。但是因为设置了管理员密码,所以系统从来没有提示过磁盘密码。管理员密码现在已删除,但 SATA 密码仍然设置。密码未知。数据一去不复返了,我得到了备份,只是希望能够再次格式化和使用驱动器。
在寻求解决方案的过程中,我尝试了多个建议的修复方法。使用 bootstick,我尝试使用 SEDutil 进行解锁 - 但 SSD 未使用“新”Opal 算法锁定,因此 SEDutil 无法帮助恢复 PSID。后来我尝试使用UBCD,但是那里的密码工具无法检测到磁盘。
似乎还有其他几个人有这个问题。一些 RMA 完成了他们的驱动,其他人继续使用hdparm。sudo hdparm -I /dev/sda
终于认出了SSD,甚至还打印出了SSD的基本信息。下一步 - 解锁驱动器 - 失败。我尝试了随机用户密码和三星主密码,似乎是 32 t。两次我都有Illegal Request Error。我怀疑这是 hdparams 告诉我密码错误的方式。驱动器未冻结。
这是 hdparm 输出的副本。
戴尔在 BIOS 中包含一个数据擦除选项,它对锁定的驱动器没有任何作用。在密码字段中插入 32 t 并没有擦除驱动器,也没有使用以前的管理员密码。
希望你们中的某个人有一个想法。与此同时,我将继续调试并报告。
每台计算机主板/BIOS 上是否有唯一的硬件令牌或 UUID 可用于创建“强耦合”软件?
我正在为客户编写专有软件,但我买不起任何人来创建相同的副本,因为未经授权的复制和安装会导致整个设置出现故障,从而导致生命和财产损失。该设置适用于 LAN 上的多个硬件设备,每个设备都有自己的安全密钥,并创建类似于“区块链”的设置。
我想知道主板上是否有特殊的硬件设备/IC(如 BIOS),这对于世界上制造的所有计算机都是独一无二的?
我通读了几篇文章,并想出了以下替代方案:
- BIOS 具有唯一的序列号 - 问题:并非所有 BIOS 制造商都确保将序列号写入其芯片。我现在的电脑就是这样一个例子。主板制造商是
MSI
和 BIOS 生产的AMI
。当查询时,我得到Default string
结果。 - USB 令牌设备 - 问题:USB 设备是可拆卸的,它可以与软件一起轻松迁移到新系统。
- MAC 地址 - 问题:可以很容易地更改它。我不想让客户仅仅通过更换网卡而遇到麻烦。
- MFA(多因素身份验证) - 问题:LAN 将无法连接到 WWW,因此可能根本无法实现此功能。
有没有替代方案?我希望有一个强耦合系统,以便创建副本非常困难(如果不是不可能的话)。任何需要的维护只能由经过培训和授权的人员进行。
创建加密存储卷相对简单(例如:https ://www.digitalocean.com/community/tutorials/how-to-create-an-encrypted-file-system-on-a-digitalocean- block-storage-volume。)但是,由于文件系统在启动时被解密,并且服务器始终处于开启状态,所以数据不会以纯文本形式保存在我们的 VPS 上吗?
在永远在线的 VPS 上使用全盘加密有什么价值吗?
- 编辑 - -
我的目标是让主机在财务上无法访问我的数据和源代码。磁盘加密在这方面有用吗?
为了在 TrueNAS 12 中使用新的加密方法,我通过复制任务将所有数据从传统的加密 FreeNAS 池复制到新格式化的池中。
复制后,目标池上似乎几乎缺少一个 GiB:
复制后的源池:已使用 8.06 TiB,可用 733.91 GiB
复制后的目标池:已使用 7.24 TiB,可用 1.56 TiB
对于复制,我使用了这些设置(基本模式):
要找出缺少的内容 adiff
将花费很长时间。
我试过rsync -avun --delete $TARGET $SOURCE | grep "^deleting "
了,但没有输出。
我还能做些什么来在合理的时间内检查目标上丢失的文件?是否有一些与 ZFS 相关的东西可能会占用空间并且没有被复制任务复制?那会是什么?
我有一个公开 REST API 的应用程序,该 API 需要一些秘密才能启动,例如数据库密码、p12 密钥库密码或 HS512 密钥以用于发布令牌。这些值是从应用程序环境中提取的。我将把应用程序部署到 AWS EC2。我想出了 4 个选项来传递这些值:
- 由于环境变量通过 switch 到
java
命令传递 - 这将非常不方便 - 创建一个 bash 脚本,其中存储在纯文本中的硬编码密码执行
java
命令 - 这将使连接到 EC2 实例的任何人都可以使用它们。 - 与上面相同,但不是以纯文本形式存储秘密,而是使用对称密钥对其进行加密,并让脚本提示它并使用解密的值运行应用程序。
- AWS 秘密管理器——这对于一个简单的 Web 应用程序来说似乎有点过头了,而且还会带来成本。
这样做的正确方法是什么?选项3甚至有意义吗?
我有客户端连接到我的 WebSockets 游戏服务器以进行在线浏览器游戏。游戏服务器是在玩家开始游戏时创建和销毁的,因此每个服务器都可以有一个我无法控制的不同 IP 地址。
我需要 WebSockets 是安全的(WSS),所以我有一个带有 SSL 证书的 nginx 代理。客户端收到游戏服务器的 IP,但不是直接连接(不安全),而是通过我的 nginx 服务器将游戏服务器 IP 作为查询参数。
问题是:现在任何人都可以使用我的 nginx 服务器代理他们选择的任何 IP。我需要的是一种确保 nginx 仅代理到我的游戏服务器的方法。
我无法控制游戏服务器 IP,因为它是外部主机,但我拥有游戏服务器代码。我的 nginx 代理由我托管,但游戏服务器由提供商托管。
我的计划是在游戏服务器和 Nginx 上拥有一个共享密钥并用它加密所有流量,但我正在努力找出如何做到这一点。
这是我到目前为止所做的(基于这个要点):
我创建了自己的自签名 CA 证书:
openssl genrsa -des3 -out rootCA.key 4096
openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.crt
我为游戏服务器创建了一个证书:
openssl genrsa -out gameserver.key 2048
openssl req -new -key gameserver.key -out gameserver.csr
openssl x509 -req -in gameserver.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out gameserver.crt -days 500 -sha256
我对 nginx 服务器做了同样的事情(这需要吗?注意:不需要):
openssl genrsa -out nginx.key 2048
openssl req -new -key nginx.key -out nginx.csr
openssl x509 -req -in nginx.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out nginx.crt -days 500 -sha256
我的 nginx 配置是这样的:
http {
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen 443 ssl;
# these are for game client
ssl_certificate /etc/letsencrypt/live/mywebsite.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mywebsite.com/privkey.pem;
location / {
if ( $arg_host != "" ) {
proxy_pass https://$arg_host:$arg_port;
}
proxy_ssl_certificate nginx.crt;
proxy_ssl_certificate_key nginx.key;
proxy_ssl_trusted_certificate rootCA.crt;
proxy_ssl_verify on;
proxy_ssl_verify_depth 2;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Host $host;
proxy_read_timeout 86400;
}
}
}
我的游戏服务器是一个 WebSockets 服务器,使用gameserver.key
和gameserver.csr
.
但是,当我尝试它时,nginx 错误日志显示:
upstream SSL certificate verify error: (18:self signed certificate) while SSL handshaking to upstream
我不确定这是否可行,我哪里出错了?我发现唯一提到此错误的文章表明游戏服务器证书不受信任,但我不知道为什么。
我也不确定Common Name
在创建证书时我应该赋予什么价值(因为每个游戏服务器都在自己的 IP 上)以及这是否是一个问题。