SQL Server 数据加密功能解析

news2024/11/27 3:48:29

数据加密是数据库被破解、物理介质被盗、备份被窃取的最后一道防线,数据加密,一方面解决数据被窃取安全问题,另一方面有关法律要求强制加密数据。SQL Server的数据加密相较于其他数据库,功能相对完善,加密方法较多。通常来讲,数据加密分为对称加密和非对称加密。对称加密:加密与解密使用同一密钥,密钥需要传输,安全性较弱,但性能较非对称要好。非对称加密:加密与解密使用不同密钥(公钥和私钥),较对称密钥安全性较好,但是算法较复杂,带来性能上的损失。因此,折中的方法是使用对称密钥加密数据,使用非对称密钥加密对称密钥。这样既保证高性能,又提高密钥的可靠性。

同样,SQL Server 就使用了折中的方法,所以SQL Server 加密功能包含2个部分:数据加密和密钥管理

一.数据加密

说道数据加密,我们不得不说下加密算法,SQL Server支持多种加密算法:

二.密钥管理

1.SQL Server加密层次结构

由图可以看出,加密是分层级的。每一个数据库实例都拥有一个服务主密钥(Service Master Key),这个密钥是实例的根密钥,在实例安装的时候自动生成,其本身由Windows提供的数据保护API进行保护(Data Pertection API),服务主密钥除了为其子节点提供加密服务之外,还用于加密一些实例级别的信息,比如实例的登录名密码或者链接服务器的信息。

在服务主密钥之下的是数据库主密钥(Database Master Key),这个密钥由服务主密钥进行加密。这是一个数据库级别的密钥,可以用于为创建数据库级别的证书或非对称密钥提供加密,每一个数据库只能有一个数据库主密钥。

EKM模块,这个比较特别,全称可扩展密钥管理模块,该功能增强sqlserver密钥管理的能力,允许将密钥存储到数据库之外,包括一些硬件,如智能卡、USB设备或硬件安全模块(HSM);并且允许使用第三方产品来管理密钥和进行加密;另外,有条件的可以使用更高性能的HSM模块来加解密,减少加解密上性能的损失。

2.SQL Server加密方式

对象定义加密

未保证触发器、存储过程、视图等定义信息,我们可以在定义sqlserver对象的时候添加WITH ENCRYPTION字段来加密对象。

列数据加密

通过函数加密表中的某一列数据。可以通过密码、对称密钥、非对称密钥、证书等4中方式加密。其中,还包括 带有验证器的加密函数,验证器用来解决密文替换问题,验证器一般选用不更改独一无二的id,这样就算密文替换,验证器不对,一样失败。

连接加密

通过证书的方式对ssl连接加密,一般用于镜像,主从机器之前的连接就是通过这种方式。

TDE(透明数据加密)

透明数据加密,顾名思义,是在用户不感知的情况下完成加解密操作。

它的加密是在页级别进行,是在写入磁盘前加密,读入内存时解密,针对数据和日志文件,做到实时I/O加密,并且备份文件也会一同加密。

密钥存在数据库引导记录中,收到证书或者非对称密钥的保护,也可以与EKM模块一同使用。官方说法,额外占用3%-5%的cpu资源。

TDE也有一些缺点:

压缩率小,由于它是先加密再压缩的,所以无法显著压缩备份。

备份同样是加密的,所有恢复的时候要小心,注意备份证书和密钥,才能在另个实例中还原数据库,性能有一定损耗。

备份加密 (2014)

支持备份的过程中进行加密,并且支持先压缩在加密,保持高压缩比,打破了使用透明数据加密后几乎没有压缩率的窘境。

因此,使用原生备份加密无论在将数据备份到异地数据中心,还是将数据备份到云端,都能够以非常低的成本对数据提供额外的安全保障。

全程加密(2016)

全程加密,数据永远是加密状态,你可以在加密数据上执行操作,无需先对它们解密,也就是说加密的敏感信息不会有机会变为明文。

全程加密针对列做处理,在创建列主密钥,列加密密钥后,可以在创建表的时候设置列加密。

加密模式分为两种:确定型加密与随机型加密。

确定型加密能够确保对某个值加密后的结果是始终相同的,这就允许使用者对该数据列进行等值比较、连接及分组操作。确定型加密的缺点在于有可能揣测出原文,而随机型加密能够保证某个给定值在任意两次加密后的结果总是不同的,从而杜绝了猜出原值的可能性。官方建议需要搜索和分组的列使用确定性加密,而注释和其他敏感不会进行搜索分组的信息使用随机性加密。

最后附上TDE开通示例:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/647173.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

技术背后的温度,夸克App升级智能、普惠、公益高考服务

夸克2023高考信息服务进行了全面升级,通过信息查询、填报工具及专家指导等多维度产品及内容,给考生打造个性化、全周期、全链路的智能信息服务,以提升考生和家长志愿决策的效率。 6月14日,夸克App升级智能选志愿、志愿表等高考信息…

【Java基础学习打卡06】编程语言

目录 引言一、计算机语言是什么?二、计算机语言分类三、计算机语言介绍1.C语言2.C语言3.Java语言4.Python语言 总结 引言 本文主要是理解计算机语言是什么,有哪些分类,分类下有哪些编程语言,以及了解主流的编程语言。 一、计算机…

【源码可分享】教你用Python制作自动答题脚本,实现自动答题,100%正确率!

文章目录 前言一、自动答题的原理二、自动答题的步骤三、Python实现自动答题的方法总结 前言 当今社会,人们的生活越来越依赖于计算机技术,而Python作为一种高级编程语言,已经成为了众多程序员的首选语言。Python具有简单易学、代码简洁、可…

【Java基础学习打卡08】Java语言跨平台原理

目录 引言一、Java程序运行机制二、Java虚拟机三、Java跨平台总结 引言 Java语言编程的一大优势便是跨平台,本文将介绍Java语言是如何实现跨平台的。 一、Java程序运行机制 计算机高级语言按照程序的执行方式可以分为编译型语言和解释型语言。 编译型语言&#x…

一、PyTorch基础

一、PyTorch基本操作 1,导包 import torch2,查看版本号 torch.__version__ """ 2.0.1cpu """3,初始化(全零)矩阵 x torch.empty(3,2) x """ tensor([[7.2868e-44, 8.1275e-44],[6.7262e-4…

教你用Fiddler捕获HTTPS请求

安装Fiddler 这里不特别说明了,网上搜索一大把,根据安装引导一步步安装即可。(这里采用的是fiddler v4.6) 配置Fiddler 1、打开fiddler配置Tools –>Telerik Fiddler Options。 如果你想学习Fiddler抓包工具,我这…

vue基础--重点

!1、vue的特性 !2、v-model 双向数据绑定指令 (data数据源变化,页面变化; 页面变化,data数据源也变化) 1、v-model 会感知到 框中数据变化 2、v-model 只有在表单元素中使用,才能…

CSS体验透视效果

CSS体验透视效果 使用css视距属性perspective结合动画效果实现透视效果。 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><me…

金融数字化转型将驶向何处?存储如何保驾护航?

文 | 螳螂观察 作者 | 李永华 “XX行业数字化进入深水区”&#xff0c;经常被谈及。 在金融行业&#xff0c;“深水区”说法却很少出现——这里的数字化始终在“深水区”。 作为数字经济的重要组成部分&#xff0c;金融行业一直走在数字化转型的前沿&#xff0c;总是有新的…

11-执行上下文和执行栈

一、执行上下文 &#x1f35f;&#x1f35f;&#x1f35f;是一种对js代码执行环境的抽象概念 只要有js代码运行&#xff0c;一定是运行在执行上下文中 执行上下文的类型分为三种&#xff1a; 全局执行上下文&#xff1a;只有一个&#xff0c;浏览器中的全局对象就是 window对…

汽车电子Autosar之DTC

目录 一、DTC基本介绍 1、DTC基本组成 2、DTC故障类型 3、DTC与event区别与联系 4、 DTC状态位 5. DTC信息存储 6. DTC信息及状态读取 本文将聚焦于大家都耳熟能详的DTC&#xff08;Diagnostic Trouble Code&#xff09;技术点来聊一聊。 一、DTC基本介绍 DTC顾名思义即…

List of MediaTek systems on chips

这里写目录标题 ARMv7Single coreDual-coreQuad-coreHexa-core and octa-core(六核和八核) ARMv8Quad-coreOcta coreHelio X Series (2014–2017)Helio A Series (2018–2020)Helio P Series (2015–2020)Helio G Series (2019–present)Dimensity Series (2020–present)Dimen…

SimpleCG绘图函数(8)--绘制多边形

在这里将展示多边形的绘制&#xff0c;多边形可以绘制从三角形到任意多边形。绘制函数如下所示: //多边形以一组POINT表示的点坐标数组ptPoints为顶点&#xff0c;nNum表示数组中的点数量//画无填充多边形 void polygon( const POINT *ptPoints, int nNum );//画无边框填充多边…

Android进阶 四大组件的工作过程(三):广播的注册,发送和接收过程

Android进阶 四大组件的工作过程&#xff08;三&#xff09;&#xff1a;广播的注册&#xff0c;发送和接收过程 导语 本篇文章是介绍四大组件工作过程的第三篇文章&#xff0c;在前两篇文章里我们已经介绍了Activity和Service的工作流程。而本篇文章&#xff0c;我们将介绍广…

第七十四天学习记录:高等数学:不定积分(宋浩板书)

给定一个函数f(x)&#xff0c;如果存在一个函数F(x)&#xff0c;满足F’(x)f(x)&#xff0c;则称F(x)是f(x)的一个原函数。我们通常用∫f(x)dx表示f(x)的不定积分&#xff0c;它表示的是所有原函数的集合&#xff0c;也就是说&#xff0c;∫f(x)dx就是f(x)的原函数集合。 不定…

Docker安装wordpress并配置数据库(超详细版)

Docker在线拉取安装wordpress并配置数据库 一、拉取wordpress镜像(默认最新)二、启动wordpress容器三、查看容器状态四、安装wordpress博客程序 如果您已经在 Docker 容器中分别安装了 WordPress 和 MySQL&#xff0c;并且想要让它们链接起来&#xff0c;可以按照以下步骤进行操…

什么是三极管的截止饱和放大

三极管可以工作在三个状态&#xff0c;分别是截止状态&#xff0c;饱和状态和放大状态。 当三级管BE之间的电压小于等于BE间的开启电压UON&#xff0c;并且CE间电压>BE间电压时 &#xff0c;三极管处于截止状态&#xff0c;一般硅管在0.7V左右&#xff0c;锗管在0.3V左右。…

数据库第三章(SQL)

目录 1.SQL语言 索引 1.SQL语言 sql语言是个非过程性语言 sql的特点 1.综合统一&#xff0c;把增删查改都统一了起来 2.高度非过程化&#xff0c;不关心过程 3.面向集合的操作方式 sql基本语法 drop是删除表 delete是删除表的某个元组 安全方面&#xff1a;grant授权 revo…

Java实训日志05

文章目录 八、项目开发实现步骤&#xff08;七&#xff09;创建数据访问接口实现类1、创建学校数据访问接口实现类&#xff08;1&#xff09;编写按标识符查询学校记录方法&#xff08;2&#xff09;编写更新学校记录方法 1_、测试学校数据访问接口实现类&#xff08;1&#xf…

在Nginx服务器如何安装SSL证书

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言提示&#xff1a;我用的是阿里云的产品&#xff0c;就以阿里云进行的&#xff1a; 一、下载SSL证书二、安装SSL证书 前言 提示&#xff1a;我用的是阿里云的产…