标签: encryption

禁用 TLS 1.0 和 SSL 3.0 后,SQL 服务器服务不会启动

出于安全原因,我们在windows上禁用了TLS 1.0和旧协议,在以下注册表路径下只启用了TLS 1.1和TLS 1.2:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols 之后,SQL服务赢了'不以以下错误开头:

2015-02-13 17:35:10.12 spid13s     The server could not load the certificate it needs to initiate an SSL connection. It returned the following error: 0x80090331. Check certificates to make sure they are valid.
2015-02-13 17:35:10.12 spid13s     Error: 26014, Severity: 16, State: 1.
2015-02-13 17:35:10.12 spid13s     Unable to load user-specified certificate [Cert Hash(sha1) "9B49E2FB65EE880F7C8818A90187F572566C9213"]. The server will not accept a connection. You should verify that the certificate is correctly installed. See "Configuring Certificate for Use by SSL" in …
Run Code Online (Sandbox Code Playgroud)

sql-server sql-server-2008-r2 encryption ssl

22
推荐指数
3
解决办法
11万
查看次数

查询以列出数据库的加密证书

使用什么证书来加密实例上的每个数据库。

我可以使用以下方法获取数据,但如何编写查询

USE master
GO

-- this provides the list of certificates
SELECT * FROM sys.certificates


-- this provides the list of databases (encryption_state = 3) is encrypted
SELECT * FROM sys.dm_database_encryption_keys
 WHERE encryption_state = 3;
Run Code Online (Sandbox Code Playgroud)

我注意到 sys.certifcates.thumbprint 和 sys.dm_database_encryption_keys.encryptor_thumbprint 列包含相同的数据。

security sql-server encryption transparent-data-encryption

19
推荐指数
2
解决办法
6万
查看次数

如何在 PostgreSQL 中使用 aes-encryption?

我使用以下语句尝试了 aes-encryption:

SELECT encrypt('test', 'key', 'aes');
Run Code Online (Sandbox Code Playgroud)

这有效,但我无法解密该值。我将它插入到数据类型bytea的字段中,但我不确定这是否正确。

SELECT decrypt(pw, 'key', 'aes') FROM table WHERE ID = 1;
Run Code Online (Sandbox Code Playgroud)

给我错误

错误:函数解密(bytea,未知,未知)不存在第
1 行:选择解密(密码,'key','aes')FROM tabelle WHERE ID = 7; ^
提示:没有函数匹配给定的名称和参数类型。您可能需要添加显式类型转换。

这是否真的意味着 encrypt() 是一个现有的函数,但不是decrypt()?我还能如何检索 aes 加密的值?

postgresql encryption functions postgresql-9.1

16
推荐指数
1
解决办法
4万
查看次数

我什么时候需要备份服务主密钥?

我正在阅读一些关于透明数据加密的文档和白皮书。一些文档也提到备份服务主密钥(为了澄清,我不是在谈论数据库主密钥)。我只是不完全理解为什么这是必要的,因为我能够在不使用任何服务主密钥的情况下将具有 TDE 加密的数据库从服务器 A(备份)备份/恢复到服务器 B(恢复)。

什么场景下需要恢复Service Master Key?

sql-server encryption transparent-data-encryption

15
推荐指数
1
解决办法
2911
查看次数

使用函数 DECRYPTBYPASSPHRASE 时,如何知道 SQL Server 使用什么哈希算法来解密加密数据?

我的问题与以下两个实例的实验有关:

SQL Server 2017 Express 实例 (Microsoft SQL Server 2017 (RTM-CU16))
SQL Server 2014 Express 实例 (Microsoft SQL Server 2014 (SP2-CU18))

我使用函数ENCRYPTBYPASSPHRASE来加密文本并将结果用作 DECRYPTBYPASSPHRASE 的@ciphertext。我的测试结果如下:

结果表

根据这个微软修复

[...] SQL Server 2017 使用 SHA2 散列算法来散列密码。SQL Server 2016 和更早版本的 SQL Server 使用不再被视为安全的 SHA1 算法。

但是,如果函数 DECRYPTBYPASSPHRASE 上没有与此相关的参数,它如何知道用于加密数据的算法是什么?它是加密数据的一部分吗?

根据我的测试结果,我猜 SQL Server 总是使用实例上可用的较新版本的算法来加密数据,但会尝试所有算法来解密数据,直到找到适合的算法或在找不到相应算法时返回 NULL . 这只是一个猜测,因为我找不到任何方法来检查 SQL Server 用于解密加密数据的散列算法。

sql-server encryption

13
推荐指数
1
解决办法
1745
查看次数

如何检查与 Sql Server 的连接是否加密?

在 SQL Server 中,我可以在协议设置中“强制加密”。如果我将该设置保留为“否”,则任何客户端仍可能需要加密。

我能以某种方式查看到数据库的哪些连接正在使用加密吗?

sql-server encryption connections

12
推荐指数
2
解决办法
3万
查看次数

有没有一种快速的方法来查找 SQL Server 2008 R2 中所有加密/具有加密数据的列?

有没有一种快速的方法来查找 SQL Server 2008 R2 中所有加密/具有加密数据的列?

我需要使开发服务器中所有加密列中的数据无效(根据我们的业务规则)。我知道大多数专栏,因为我们经常使用它们,但我想要彻底,而且我希望能够证明我已经找到了它们。

我搜索了网络,查看了INFORMATION_SCHEMA并检查了我认为有用的 DMV 以及sys.columnssys.objects - 但到目前为止还没有运气。

sql-server sql-server-2008-r2 encryption dmv information-schema

11
推荐指数
2
解决办法
7210
查看次数

SQL Server 中的“强制加密”与“强制协议加密”

我试图了解不同的设置如何影响我的服务器 - 客户端通信的行为。在服务器上,我安装了一个自签名 CA,并带有已发布的交换证书,该证书也已配置为供我的 SQL 服务使用。

起初,当客户端上尚未安装根 CA 时,我希望看到此连接失败。但无论我做什么,它似乎都有效。

为了更好地理解原因,我试图列出所有选项以及它们应该产生的效果。但我不确定我是否理解正确......

任何人都可以帮我更正并填写这里缺少的部分吗?


在SQL Server 上启用“强制加密”设置时:

  • 实际上,这与Encrypt=True;TrustServerCertificate=True;我的连接字符串中的设置相同。客户端对是否应该使用加密以及是否应该信任服务器没有发言权。
  • 此选项可用于加密单个服务实例。
  • 支持没有 CA 的自签名交换证书。

在SQL Server 上启用“强制协议加密”设置时:

  • 与服务器上所有服务的所有客户端连接都经过加密。
  • 需要由客户端和服务器上都可用的受信任 CA 颁发的交换证书。

在客户端上使用“强制协议加密”设置时:

  • 此单个客户端将强制使用 SSL,并需要由该机器上可用的受信任 CA 颁发的交换证书。没有它,此连接将失败。

在服务器和客户端上启用“强制协议加密”设置时:

  • 不建议这样做。但为什么?会发生什么,什么会失败?

在服务器上同时启用“强制加密”和“强制协议加密”时:

  • 这会产生什么?启用强制协议加密时,强制加密设置为什么重要吗?

sql-server encryption ssl

11
推荐指数
1
解决办法
2万
查看次数

TDE 准备:用于还原的密钥/证书备份

我在开发环境中工作以更好地理解TDE加密。我让它与另一台服务器上的备份和恢复一起工作。有几个问题,我知道我需要使用相应的私钥备份证书。

USE master; 
GO 
BACKUP CERTIFICATE Test
TO FILE = 'C:\Test.cer'
WITH PRIVATE KEY
(FILE = 'C:\Test.pvk',
ENCRYPTION BY PASSWORD = 'Example12#')
Run Code Online (Sandbox Code Playgroud)

如果发生故障,这些需要在新服务器上移动/恢复。在需要恢复到另一台服务器的情况下,我还需要从源服务器备份什么吗?

还有关于私钥存储的任何建议吗?我目前的想法是将证书、私钥和密码备份到单独备份和异地复制的 KeePass 数据库中。

这留下了一个问题,即将 KeePass 私钥备份到哪里?

sql-server encryption transparent-data-encryption

10
推荐指数
1
解决办法
1353
查看次数

MySQL SSL 错误:无法获取私钥

尝试启用加密时出错:

[ERROR] SSL error: Unable to get private key from '/etc/mysql/ssl/nginx.key'
[Warning] Failed to set up SSL because of the following SSL library error: Unable to get private key
Run Code Online (Sandbox Code Playgroud)

/etc/mysql/conf.d/encrypt.cnf:

[mysqld]
ssl-ca=/etc/mysql/ssl/nginx.ca
ssl-cert=/etc/mysql/ssl/nginx.crt
ssl-key=/etc/mysql/ssl/nginx.key
Run Code Online (Sandbox Code Playgroud)

密钥是这样生成的:

openssl req -newkey rsa:4096 -nodes -keyout nginx.key -subj "/C=US/ST=California/L=Sacramento/O=MyOrg/OU=MyDev/CN=MyApp"
Run Code Online (Sandbox Code Playgroud)

openssl 检查得很好。

我尝试更改权限、所有者、文件名、移动到不同的目录、禁用 SELinux(它已经被禁用)、查看 AppArmor 日志(它不会阻止它)、将“BEGIN/END PRIVATE KEY”更改为“BEGIN” /END RSA 私钥'。

它出什么问题了?

mysql ubuntu encryption ssl

10
推荐指数
1
解决办法
8137
查看次数