大家现在都知道数据在传输的过程中很容易会被别人得到,如果我们的数据是明文传输的,那么你就非常不幸了,数据就会被别人一览无遗,那怎么做到数据在传输的时候是密文呢?
下面俺来介绍一下进行数据在传输中的加密
都知道在传输过程中的加密方式有对称加密、非对称加密、证书加密,如过在大量的数据传输时用证书或非对称加密时非常耗资源的,用对称加密又不是很安全那怎么办呢?
在加密的时候有加密的体系进行保护的,加密体系是:1、windows级别
2、SQL服务器级别(服务器主密钥)
3、SQL数据库级别(数据库主密钥)
比如:windows级别保护SQL服务器级别而SQL服务器级别保护数据库级别,数据库级别会保护对称加密、非对称加密、证书加密,我们还可以让证书保护非对称加密再保护对称加密。这样是不是很安全啊!!!
服务器主密钥是不能手动删除或创建的,默认情况下服务器主密钥直接保护数据库主密钥,不用设置。如果服务器主密钥被破坏了我们怎么办呢?我们可以对服务器主密钥进行加密,破坏了可以直接还原。
我们来抓包看一下,插入一条记录,利用抓包器看能不能把我们的信息抓到。
是可以抓到的,因为是明文传输的。
我们在服务器上安装一下证书,然后设置一下在如图:
然后如图设置,右击属性
把否改为是,选上我们申请的证书就OK了
利用证书加密后,在传输数据的时候就不再是明文了,这样就不会怕数据丢失了,就算得到了他没有我们的证书一样不能打开我们的数据。
在上面说了服务器主密钥是不能手动删除或创建的,但是我们是可以备份和还原的,下面来看关于服务器主密钥的一下特点介绍。
我们先来看看服务器主密钥的备份与还原,与以前备份大致差不多。
备份
backup service master key to file='c:\bak\smk.key' encryption by password='Ccjsj1200'(备份到C盘并在还原时需要的口令)
restore service master key from file='c:\bak\smk.key' decryption by password='Ccjsj1200'(用口令进行还原)在还原的时候因为我们的服务器主密钥没有损坏所以提示:(新旧主密钥完全相同。不需要重新加密数据)。如图:
下面我们看数据库主密钥,它是需要我们手动创建的默认是受服务器主密钥保护,如果采用默认在数据库主密钥下创建对称与非对称密钥是不用手动开启的,如果把默认的保护给删除创建对称与非对称密钥时数据库主密钥是需要我们手动开启的(在创建数据库主密钥的时候才用的是128位的3DES密钥)。
create master key encryption by password='Ccjsj1200'(创建数据库主密钥)
显示当前数据库密钥的信息:
select * from sys.databases
select * from sys.symmetric_keys
备份数据库主密钥
backup master key to file='c:\bak\msk.key' encryption by password='Ccjsj1200'(备份并设置还原口令)
我们来删除数据库主密钥并查看是否还存在如图:
还原数据库主密钥并查看信息
restore master key from file='c:\bak\msk.key' decryption by password='Ccjsj1200' encryption by password='Ccjsj1200相当于创建这个数据库主密钥时的口令)'
还原是没有问题的,前面也已经说了它默认是受到服务器主密钥保护的,那怎么还删除服务器主密钥对它的保护呢?
例:1、在删除服务器主密钥对数据库主密钥保护之前我们来创建一个非对称密钥看是否需要我们再启动数据库主密钥?
2、删除后再创建一个非对称密钥看有什么反应?
是不是跟我们前面说的一样呢?好我们还没有删除,创建一个非对称密钥实验一下。Go
create asymmetric key asy1(名称) with algorithm=RSA_2048(加密方式),不删除我们可以直接创建非对称密钥,看一下删除是什么样子呢?
alter master key drop encryption by service master key(删除服务器主密钥对数据库主密钥的保护)
还原服务器主密钥对数据库主密钥的保护的命令是:
alter master key add encryption by service master key
删除以后报错了,需要我们创建一个主密钥或打开主密钥,
open master key decryption by password='Ccjsj1200'(打开数据库主密钥)
再来创建一下试试
create asymmetric key asy2 with algorithm=RSA_2048是可以的,与我们之前说的一样,在这里说的怎样删除服务器主密钥对数据库主密钥的保护,还有怎么启动数据库主密钥与创建非对称密钥。那怎么删除数据库主密钥呢?这个简单跟以前一样就是
drop master key这样就OK了。
再来看看证书的的有关信息
正常创建证书
create certificate cer1 with subject='test(描述)',start_date='06-15-2009',expiry_date='06-15-2010'
创建证书并用口令对其保护:create certificate cer2 encryption by password='Ccjsj1200' with subject='test',start_date='06-15-2009',expiry_date='06-15-2010'
我们创建的两个证书已经存在了。
查看证书信息
select * from sys.certificates
修改私钥的口令,
alter certificate cer2 with private key (decryption by password='Ccjsj1200'(旧口令),encryption by password='Ccjsj1200'(新口令))
备份证书,我们备份时备份它的私钥与证书
backup certificate cer2 to file='c:\bak\mycer.cer' with private key (file='c:\bak\mypri',decryption by password='Ccjsj1200',encryption by password='Ccjsj1200')
我们先来查看一下,然后删除第二个证书,然后再查看一下,第二个证书就没有了
接下来开始还原证书
create certificate cer2 from file='c:\bak\mycer.cer' with private key (file='c:\bak\mypri',decryption by password='Ccjsj1200'(还原时的口令),encryption by password='Ccjsj1200'(新建的口令))
还原成功后我们再来查看一下证书
好了证书还原成功了。等着一切都做好以后我们就不会再害怕数据被别人在传输的时候丢失了。
在传输的时候没有了后顾之忧,那在数据存储的时候怎么办呢?下一篇博文我们会介绍。请大家光顾哦。O(∩_∩)O~

本文转自 liuyonglei 51CTO博客,原文链接:http://blog.51cto.com/liuyonglei/167650,如需转载请自行联系原作者

隔墙有耳之数据在传输中的安全相关推荐

  1. android 压缩json数据处理,android接口中json数据的传输中使用gzip压缩

    当前android访问接口传输数据多使用json格式(简单易解析跨平台),为了节省带宽和传输时间服务器往往会在传输前进行gzip压缩,下面是几个需要注意的地方. 1. 针对php服务器,在访问接口的时 ...

  2. 计算机内部信号表现形式,信号是数据在传输过程中的什么的表现形式

    信号是数据在传输过程中的电信号的表现形式.如电信号可以通过幅度.频率.相位的变化来表示不同的消息.这种电信号有模拟信号和数字信号两类.信号是运载消息的工具,是消息的载体. 从广义上讲,它包含光信号.声 ...

  3. 图解数据在网络中的传输过程

    数据在网络中的传输过程 在计算机网络当中,数据是怎么样保证准确的从客户端发送到服务器端的,这是本文探究的重点. 下图是本文中使用的网络拓扑图,数据从客户端发送给服务器端. 客户端各层对数据的封装 ja ...

  4. 数据丢包怎么修复_一种网络传输中实时音频数据丢包恢复的方法与流程

    本发明涉及通信技术领域,具体涉及一种网络传输中实时音频数据丢包恢复的方法. 背景技术: 随着通信技术的发展,音频传输系统对实时性和准确性的要求越来越高.在网络的音频传输过程中,影响音频音质的主要因素是 ...

  5. 从零学习 InfiniBand-network架构(七) ——IB协议中数据如何传输

    从零学习 InfiniBand-network架构(七) -- IB协议中数据如何传输

  6. 网络传输中的数据长度

    探究网络传输中不同层级的数据大小和数据格式 网络中不同层次的数据统称为PDU (协议数据单元 - protocol data unit) 每一层中可能有一种或多种协议,挑选最常见的协议进行说明 数据链 ...

  7. uRLLC中PDCP数据复制传输及增强研究

    [摘  要]uRLLC作为5G三大典型应用场景之一,对时延和可靠性有着极高的要求,其中,对PDCP层数据进行数据复制传输及增强可以保证低时延的同时提高数据传输可靠性.在分析5G空口协议架构和PDCP功 ...

  8. 读书笔记(随笔2)数据在网络中的传输

    2 数据在网络中的传输 所有的数据对于网络来说都是业务,不同的业务数据对传输的要求不一样, 就需要有不同的 信令协议 来满足它,不同的信令协议对数据的封装和标识提出 了不同的要求,从而又产生了各种 封 ...

  9. 数据在网络中的传输(一)

    最近面试被问到了一些<<计算机网络>>方面的问题,由于之前的工作中很少涉及到,7.8年了前学的了,都基本还给老师了,回答得不太满意.所以这几天又从头学习了一遍<<计 ...

最新文章

  1. Hudson神奇的环境变量
  2. 终于搞明白gluPerspective和gluLookAt的关系了
  3. 操作系统(二十)进程互斥的硬件实现方法
  4. 多线程----join插队
  5. linux arm mmu基础【转】
  6. python安装you—get_使用Python下载工具you-get下载媒体文件
  7. Ubuntus安装vmware tools工具
  8. IPTV 质量评价方法已经不适用于 OTT TV 质量评价
  9. Axure使用 element UI 元件库
  10. transformer中的位置嵌入
  11. R^2(可决系数)为负分析
  12. 用python写一个魂斗罗
  13. codeforces round 717 div2 D
  14. [网络安全转载篇] Web安全学习及异或解密示例
  15. Linux使用双向链表实现图片、音乐、视频的切换和删除功能
  16. html表格导入wps,怎么快速将网页数据导入WPS表格中?
  17. ISP Pipline
  18. 根据前序遍历和中序遍历获取后序遍历
  19. I/O输入输出——I/O设备(块设备与字符设备)
  20. linux echo服务,在Linux中禁用echo服务

热门文章

  1. 【分享】常用接口测试工具
  2. springboot呼伦贝尔旅游网站的设计与实现 毕业设计-附源码091833
  3. Python自动化测试面试题及答案(持续更新中)
  4. java toprimitive_JavaScript 强制类型转换
  5. 计算机无法关闭开机密码,电脑怎么关闭开机密码 电脑开机取消登录密码的两种方法...
  6. 【数据库】服务器复制文件或文件夹时出错 未指定的错误
  7. ESP8266 NONOSDK 编译问题
  8. 用python实现pageRank算法
  9. 【深度解析→博文总结】李宏毅机器学习2023作业02Classification(Framewise Phoneme Prediction)
  10. 对话库克:商业具有周期性