标签: encryption

存储大量用户加密数据的最佳方法是什么?

我将要开发一个主要存储用户加密数据的应用程序。每条数据都通过 AES 密钥加密,AES 密钥本身使用每个授权用户的公共 RSA 密钥加密。

鉴于非加密数据的数量可以忽略不计(可能只有用户登录、一些日期和外键),我想知道“标准 DBMS”如 PostgreSQL 或 MySQL 是否是一个不错的选择。

事实上,这些 DBMS 经过优化,可以处理不同类型的数据(文本、整数、日期等)、索引、流程演算、聚合等。

就我而言,我将存储的绝大多数数据都是大块的文本(或者可能是二进制数据)。大部分所需的演算将在客户端解密后进行处理。

因此,我将无法解析我的数据。所以即使我有一个庞大的数据库,它也不会被称为“大数据”。但是,我想知道 MongoDb、MemSQL 或其他任何东西是否不是更准确的选择。如果没有,最好的 DBMS 是什么以及将它用于我的目的的最佳方式是什么?

换句话说,我认为每个 DBMS 都必须做出牺牲,以便在最重要的功能上更高效。我也认为上面详述的案例不是那么随意。所以我假设有很多我不需要的功能(或者我不能使用,例如 FULLTEXT 搜索)。另一方面,我可能需要被“标准 DBMS”丢弃的特性。

encryption dbms

3
推荐指数
1
解决办法
2926
查看次数

Always Encrypted 2016 与加密列相比有哪些优势?

我正在阅读 SQL 加密方法,我对 TDE 有很好的了解,然后我阅读了加密列,然后阅读了始终加密。Always Encrypted的描述非常冗长和详细,但带有Encrypted Columns的文本的深度较浅,但在我看来,它似乎在做同样的事情。我想了解2之间的区别,新版本是否有任何优势?

sql-server encryption always-encrypted

3
推荐指数
1
解决办法
2621
查看次数

使用不同的服务帐户时向 SQL Server 颁发恢复证书

我正在尝试在 SQL 2017 中配置备份加密,但遇到了一些问题。

我在一台机器上创建主密钥和证书没有问题。我在另一台机器上安装证书并读取备份也没有问题,但是,如果另一台机器运行的服务帐户与创建证书的服务帐户不同,这将不起作用。

以下是我正在采取的步骤(我也尝试恢复主密钥,但也会引发错误):

/* Server 1 */
/* Create the master key */
USE master;  
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'SomeRandomSecureString';  
GO 


/* Create the certificate to be used for backups */
CREATE CERTIFICATE BackupCert  
   WITH SUBJECT = 'Backup Encryption Certificate';  
GO

/* Backup the master key */
BACKUP MASTER KEY TO FILE = '\\FileShare\DatabaseMasterKey_Master.key'   
    ENCRYPTION BY PASSWORD = 'SomeRandomPwd';

BACKUP CERTIFICATE BackupCert TO FILE = '\\FileShare\BackupCert.cer'
  WITH PRIVATE KEY (FILE = '\\FileShareBackupCert.pvk',   
     ENCRYPTION BY …
Run Code Online (Sandbox Code Playgroud)

sql-server backup encryption sql-server-2017

3
推荐指数
1
解决办法
1903
查看次数

对执行缓慢的加密存储过程进行故障排除

我有一个存储过程,它是供应商提供的系统的一部分。存储过程是加密的,所以我们看不到代码。

存储过程突然开始运行缓慢。

我想看看做的第一件事是看执行计划,试图找出是,然而,似乎问题出在哪里不是要显示该计划的方式(sp_Whoisactive就是NULL在query_plan场)

我也可能会尝试更新统计信息,但我无法查看存储过程使用的表。

查询的等待统计信息没有显示任何明显的信息

在没有未加密版本的情况下,是否真的可以对此查询进行任何类型的故障排除?

sql-server stored-procedures encryption troubleshooting sql-server-2014

3
推荐指数
1
解决办法
167
查看次数

什么是 SQL Server 中的“混淆密钥”?

撇开笑话不谈,什么是“混淆密钥”?我只是要离开文档

sys.sysclsobjs存在于每个数据库中。每个分类实体包含一行,这些实体共享相同的公共属性,包括以下内容:

...

混淆密钥。

这似乎涉及

  • Content/binn/sqllang.dll
  • Content/binn/sqlmin.dll

我想知道密钥的作用和被混淆的内容,以及是否可供用户使用。

sql-server encryption database-internals

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

PostgreSQL 中的密码学

我正在考虑将 PostgreSQL 用于一个项目,因为它是免费的,人们说它很好,但我需要在我的数据库中进行一些加密。我做了一些搜索,我在 PostgreSQL 中找到了这些选项:

  • 男朋友
  • MD5
  • xdes

我不知道什么是“最安全”,你们能帮我解决这个问题吗?在这种情况下,我更喜欢稍微慢一点的安全性,而不是速度和一点安全性。

在这种情况下,我猜加密比“只是”散列密码要好,并且在 db 上确实需要它。我需要对我的用户的登录信息进行加密。难点不是如何存储,而是如何通过加密来保护它。

postgresql security encryption

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

搜索解密列

我在 AWS RDS 上使用 Postgres。

我的应用程序正在使用 AWS KMS 加密对表中的选定列进行加密。

我尝试过,但找不到配置 KMS 密钥并使用decrypt()in select 查询的方法。

例如,我的应用程序正在myTable.secureColumn使用 KMS 进行加密。

现在,我正在尝试触发以下查询:

select * from myTable where decrypt(secureColumn, 'key', 'aes') = 'data';
Run Code Online (Sandbox Code Playgroud)

我没有找到如何在 pgCrypto 中配置 KMS 密钥并在上面的查询中使用。

有没有人试过这个?

提前致谢。

postgresql encryption aws amazon-rds hsm

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

SQL AES_256 加密和解密

我有一个奇怪的加密和解密问题。加密在 SQL 2008 R2 中运行良好,我们使用的是 TRIPLE_DES_3KEY。这在 SQL 2016 中已被弃用,因此我们正在测试 AES_256。我的原始字符串不断被切断,不确定它在做什么或如何解释。我确定我错过了一些东西,但不确定是什么。详情如下。谢谢!

我的对称密钥:

CREATE SYMMETRIC KEY SK03  
WITH  
    ALGORITHM = AES_256  
    ENCRYPTION BY PASSWORD = 'ThisIsMyAES_256EncryptionTest';  
Run Code Online (Sandbox Code Playgroud)

我的表:

CREATE TABLE [dbo].[_EncryptionTest](  
    [OriginalValue] [varchar](max) NULL,  
    [Encryptedvalue] [varbinary](8000) NULL  
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)

我的存储过程:

CREATE PROCEDURE [dbo].[_usp_EncryptionTest]  
    @InputString varchar(MAX),  
    @InputString2 varchar(MAX)  

AS  
BEGIN  
    SET NOCOUNT ON;  

    OPEN SYMMETRIC KEY SK03 DECRYPTION BY PASSWORD='ThisIsMyAES_256EncryptionTest'  

    INSERT INTO _EncryptionTest
        (OriginalValue, Encryptedvalue)
    VALUES (
        @InputString
        ,ENCRYPTBYKEY(Key_GUID('SK03'), CONVERT(VARBINARY,@InputString2))
        )

    CLOSE SYMMETRIC KEY SK03;

END  
Run Code Online (Sandbox Code Playgroud)

我的测试 SQL:

EXEC _usp_EncryptionTest 'Spring …
Run Code Online (Sandbox Code Playgroud)

security encryption sql-server-2016

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

在 SQL Server 中打开主密钥后如何停止解密数据?

我使用证书、带密码的主密钥使用 SQL Server 对称密钥加密技术实现了数据加密。

当我们从 PROD 服务器备份数据库并恢复到不同的服务器时,我们使用 OPEN MASTER KEY DECRYPTION BY PASSWORD = ''... 语句打开主密钥。

主密钥的密码由 SQL 管理员管理。

打开主密钥后,我们可以使用 DecryptByKey 函数解密列数据。但是,一旦我们做了一些分析,我们就想停止解密数据。一段时间后,没有开发人员应该能够解密数据。

如何停止解密数据或关闭主密钥,让开发人员无法看到明文数据?

sql-server encryption symmetric-key

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

关于透明数据加密的澄清

这是我们第一次在至关重要的生产数据库上应用 TDE,我有以下问题。

当 TDE 正在进行时:

  1. 我们仍然可以使用连接字符串访问正在该数据库上运行的应用程序吗?
  2. 如果 TDE 在加密数据库时失败,是否会破坏 .mdf 文件?我将如何恢复数据库?
  3. .ldf 和 .mdf 是否仍然可以访问,我们可以读取和写入这些文件吗?
  4. TDE进行过程中哪些数据库操作会受到影响?
  5. TDE 会对磁盘使用产生影响吗?
  6. TDE对数据库备份有影响吗?如果启用 TDE,.bak、.trn 文件是否都会自动加密?
  7. 在应用TDE的过程中,我们需要重点关注哪些方面?是否需要停电?
  8. 对 SQL Server 服务包或累积更新会有影响吗?

相关平台是具有可用性组的 SQL Server 2014 SP2 GDR。

sql-server encryption availability-groups transparent-data-encryption sql-server-2014

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