在 GAE 应用程序中更改 Cloud SQL block_encryption_mode
Changing Cloud SQL block_encryption_mode in a GAE app
我是 运行 标准环境中的 GAE 应用程序(因此,几乎无法控制)。它的后端 (MySQL) 使用 Cloud SQL。如何将数据库上的默认 block_encryption_mode
永久更改为 aes256?默认设置为 aes-128-ecb,这不能满足我们的需求。
我已经查看了 Cloud SQL 下的可用/可配置标志。 block_encryption_mode
不在列表中。我很惊讶,因为众所周知 128-ecb 很弱。有没有其他方法可以在 Django 应用程序中更改它?
由于 Cloud SQL 不支持 block_encryption_mode
,因此需要为每个会话设置此设置(不幸的是,这将是对服务器的额外查询性能受到影响,但别无他法)。为此,请将其设置为 Django settings.py
:
中数据库连接的 init_command
选项
DATABASES = {
'default': {
"ENGINE": 'django.db.backends.mysql',
"NAME": DB_NAME,
"USER": DB_USER,
"PASSWORD": ...,
"PORT": ...,
"OPTIONS": {
"init_command": "SET block_encryption_mode = 'aes-256-cbc'",
},
}
}
这与问题没有直接关系,但是将块加密模式更改为 AES256 需要使用初始化向量 (IV),每个加密内容都是唯一的(否则类似的加密文本可以作为提示一个黑客)。
我是 运行 标准环境中的 GAE 应用程序(因此,几乎无法控制)。它的后端 (MySQL) 使用 Cloud SQL。如何将数据库上的默认 block_encryption_mode
永久更改为 aes256?默认设置为 aes-128-ecb,这不能满足我们的需求。
我已经查看了 Cloud SQL 下的可用/可配置标志。 block_encryption_mode
不在列表中。我很惊讶,因为众所周知 128-ecb 很弱。有没有其他方法可以在 Django 应用程序中更改它?
由于 Cloud SQL 不支持 block_encryption_mode
,因此需要为每个会话设置此设置(不幸的是,这将是对服务器的额外查询性能受到影响,但别无他法)。为此,请将其设置为 Django settings.py
:
init_command
选项
DATABASES = {
'default': {
"ENGINE": 'django.db.backends.mysql',
"NAME": DB_NAME,
"USER": DB_USER,
"PASSWORD": ...,
"PORT": ...,
"OPTIONS": {
"init_command": "SET block_encryption_mode = 'aes-256-cbc'",
},
}
}
这与问题没有直接关系,但是将块加密模式更改为 AES256 需要使用初始化向量 (IV),每个加密内容都是唯一的(否则类似的加密文本可以作为提示一个黑客)。