① 数据库加密的实现技术
对数据进行加密,主要有三种方式:系统中加密、客户端(DBMS外层)加密、服务器端(DBMS内核层)加密。客户端加密的好处是不会加重数据库服务器的负载,并且可实现网上的传输加密,这种加密方式通常利用数据库外层工具实现。而服务器端的加密需要对数据库管理系统本身进行操作,属核心层加密,如果没有数据库开发商的配合,其实现难度相对较大。此外,对那些希望通过ASP获得服务的企业来说,只有在客户端实现加解密,才能保证其数据的安全可靠。
1.常用数据库加密技术
信息安全主要指三个方面。一是数据安全,二是系统安全,三是电子商务的安全。核心是数据库的安全,将数据库的数据加密就抓住了信息安全的核心问题。
对数据库中数据加密是为增强普通关系数据库管理系统的安全性,提供一个安全适用的数据库加密平台,对数据库存储的内容实施有效保护。它通过数据库存储加密等安全方法实现了数据库数据存储保密和完整性要求,使得数据库以密文方式存储并在密态方式下工作,确保了数据安全。
1.1数据库加密技术的功能和特性
经过近几年的研究,我国数据库加密技术已经比较成熟。
一般而言,一个行之有效的数据库加密技术主要有以下6个方面的功能和特性。
(1)身份认证:
用户除提供用户名、口令外,还必须按照系统安全要求提供其它相关安全凭证。如使用终端密钥。
(2) 通信加密与完整性保护:
有关数据库的访问在网络传输中都被加密,通信一次一密的意义在于防重放、防篡改。
(3) 数据库数据存储加密与完整性保护:
数据库系统采用数据项级存储加密,即数据库中不同的记录、每条记录的不同字段都采用不同的密钥加密,辅以校验措施来保证数据库数据存储的保密性和完整性,防止数据的非授权访问和修改。
(4)数据库加密设置:
系统中可以选择需要加密的数据库列,以便于用户选择那些敏感信息进行加密而不是全部数据都加密。只对用户的敏感数据加密可以提高数据库访问速度。这样有利于用户在效率与安全性之间进行自主选择。
(5)多级密钥管理模式:
主密钥和主密钥变量保存在安全区域,二级密钥受主密钥变量加密保护,数据加密的密钥存储或传输时利用二级密钥加密保护,使用时受主密钥保护。
(6) 安全备份:
系统提供数据库明文备份功能和密钥备份功能。
1.2对数据库加密系统基本要求
(1) 字段加密;
(2) 密钥动态管理;
(3) 合理处理数据;
(4) 不影响合法用户的操作;
(5) 防止非法拷贝;
1.3数据库数据加密的实现
使用数据库安全保密中间件对数据库进行加密是最简便直接的方法。主要是通过系统中加密、DBMS内核层(服务器端)加密和DBMS外层(客户端)加密。
在系统中加密,在系统中无法辨认数据库文件中的数据关系,将数据先在内存中进行加密,然后文件系统把每次加密后的内存数据写入到数据库文件中去,读入时再逆方面进行解密就,这种加密方法相对简单,只要妥善管理密钥就可以了。缺点对数据库的读写都比较麻烦,每次都要进行加解密的工作,对程序的编写和读写数据库的速度都会有影响。
在DBMS内核层实现加密需要对数据库管理系统本身进行操作。这种加密是指数据在物理存取之前完成加解密工作。这种加密方式的优点是加密功能强,并且加密功能几乎不会影响DBMS的功能,可以实现加密功能与数据库管理系统之间的无缝耦合。其缺点是加密运算在服务器端进行,加重了服务器的负载,而且DBMS和加密器之间的接口需要DBMS开发商的支持。
在DBMS外层实现加密的好处是不会加重数据库服务器的负载,并且可实现网上的传输,加密比较实际的做法是将数据库加密系统做成DBMS的一个外层工具,根据加密要求自动完成对数据库数据的加解密处理。
采用这种加密方式进行加密,加解密运算可在客户端进行,它的优点是不会加重数据库服务器的负载并且可以实现网上传输的加密,缺点是加密功能会受到一些限制,与数据库管理系统之间的耦合性稍差。
数据库加密系统分成两个功能独立的主要部件:一个是加密字典管理程序,另一个是数据库加解密引擎。数据库加密系统将用户对数据库信息具体的加密要求以及基础信息保存在加密字典中,通过调用数据加解密引擎实现对数据库表的加密、解密及数据转换等功能。数据库信息的加解密处理是在后台完成的,对数据库服务器是透明的。
按以上方式实现的数据库加密系统具有很多优点:首先,系统对数据库的最终用户是完全透明的,管理员可以根据需要进行明文和密文的转换工作;其次,加密系统完全独立于数据库应用系统,无须改动数据库应用系统就能实现数据加密功能;第三,加解密处理在客户端进行,不会影响数据库服务器的效率。
数据库加解密引擎是数据库加密系统的核心部件,它位于应用程序与数据库服务器之间,负责在后台完成数据库信息的加解密处理,对应用开发人员和操作人员来说是透明的。数据加解密引擎没有操作界面,在需要时由操作系统自动加载并驻留在内存中,通过内部接口与加密字典管理程序和用户应用程序通讯。数据库加解密引擎由三大模块组成:加解密处理模块、用户接口模块和数据库接口模块。
② 互联网上的加密原理
互联网上的加密方式主要分为对称加密和非对称加密二种,
采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。
需要对加密和解密使用相同密钥的加密算法。由于其速度快,对称性加密通常在消息发送方需要加密大量数据时使用。对称性加密也称为密钥加密。
所谓对称,就是采用这种加密方法的双方使用方式用同样的密钥进行加密和解密。密钥是控制加密及解密过程的指令。算法是一组规则,规定如何进行加密和解密。
加密的安全性不仅取决于加密算法本身,密钥管理的安全性更是重要。因为加密和解密都使用同一个密钥,如何把密钥安全地传递到解密者手上就成了必须要解决的问题。
常用的对称加密有:DES、IDEA、RC2、RC4、SKIPJACK、RC5、AES算法等
非对称加密算法需要二个秘钥,公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。
明白了互联网上的加密原理之后,下面来看看浏览器与服务器交互时,浏览器想将数据加密后再发送给服务器,那么该怎么做呢?服务器首先要向浏览器出示一份数字证书,浏览器看到数字证书后,就可以使用数字证书里面的公钥加密数据,所以要想做浏览器和服务器的加密数据传输,那么首先得针对服务器生成一份数字证书。然后再配置一下服务器,让服务器收到浏览器的请求之后,会向浏览器出示它的数字证书。
SUN公司提供了制作证书的工具keytool, 在JDK 1.4以后的版本中都包含了这一工具,它的位置为<java_HOME>\bin\keytool.exe
使用keytool生成一个名字为tomcat的证书,存放在.keystore这个密钥库中
③ 网络传输数据如何加密
MD5 和 RSA 是网络传输中最常用的两个算法;
1、MD5加密是不可逆的,通过MD5加密之后得到的加密字符串是不能再逆向解密的。
2、RSA加密是可逆的,通过RSA加密之后得到的加密字符串。可以利用加密的公钥进行解密,需要注意的是公钥最好不要在网络中传输。
④ 如何实现https加密传输
1、生成证书请求文件CSR
用户进行https证书申请的第一步就是要生成CSR证书请求文件,系统会产生2个密钥,一个是公钥就是这个CSR文件,另外一个是私钥,存放在服务器上。要生成CSR文件,站长可以参考WEB SERVER的文档,一般APACHE等,使用OPENSSL命令行来生成KEY+CSR2个文件,Tomcat,JBoss,Resin等使用KEYTOOL来生成JKS和CSR文件,IIS通过向导建立一个挂起的请求和一个CSR文件。
温馨提醒:如果是在沃通申请https证书,其数字证书商店(https://buy.wosign.com)已经支持CSR文件由系统自动生成,用户无需事先在Web服务器上生成CSR文件。请参考:SSL证书请求文件(CSR)生成指南网页链接
2、将CSR提交给CA机构认证
CA机构一般有2种认证方式:
(1)域名认证,一般通过对管理员邮箱认证的方式,这种方式认证速度快,但是签发的证书中没有企业的名称,只显示网站域名,也就是我们经常说的域名型https证书。
(2)企业文档认证,需要提供企业的营业执照。国外https证书申请CA认证一般一小时之内,紧急时5分钟。
同时认证以上2种方式的证书,叫EV https证书,EV https证书可以使浏览器地址栏变成绿色,所以认证也最严格。EV https证书多应用于金融、电商、证券等对信息安全保护要求较高的领域。
3、获取https证书并安装
在收到CA机构签发的https证书后,将https证书部署到服务器上,一般APACHE文件直接将KEY+CER复制到文件上,然后修改HTTPD.CONF文件;TOMCAT等需要将CA签发的证书CER文件导入JKS文件后,复制到服务器,然后修改SERVER.XML;IIS需要处理挂起的请求,将CER文件导入。
⑤ JAVA客户端与C#服务器端之间的数据传输加密用什么加密方式 要求每次加密结果密文都不同。
常用的加密算法有DES、AES、MD5等不管采用哪种加密方法,加密后的内容都会大大增加,这样就给网络传输带来影响如果不增加加密后的内容,可以采用位运算的加密方法
⑥ 哪种安全产品可以实现数据的加密传输
HPE-SecureData这款安全产品可以实现数据的加密传输。
什么是数据加密?数据加密是对数据进行编码的过程,以便任何试图未经授权访问的人都无法读取数据。与其他安全措施一起实施的加密可以大大降低安全威胁的风险。数据加密确保只有拥有正确加密密钥的人才能读取数据。加密就是保护客户端应用程序和服务器之间的通信。
数据被转换成另一种形式或代码,以便能够访问密钥或密码的人可以访问数据。加密数据也称为密文。数据加密如何工作?实施数据加密对于保护传输中的数据和静态数据至关重要。加密的第一步是将数字、字母或符号打乱成其他一些字符。
这意味着使用加密算法和密钥将人类可读的文本转换为难以理解的文本。加密使用加密密钥,它是一组数学值。没有密钥,计算机或人类都无法读取数据。只有正确的键才能授予阅读器将数据转回纯文本的权限。复杂的加密密钥转化为更安全的加密。
⑦ 密码发送到服务器前,怎么先加密
有一项功能是用户在浏览器中输入用户名密码,这些信息被传到服务器上的servlet中,servlet连接数据库,读出信息进行比较,来判断此用户是否是已注册用户。 问题:如果是用html的<form>来submit这两个信息的话,则必然是密码在http中,是明文传送了,很不安全,请问怎么样才能做到,先让密码加密,然后再传出去呢? zj2977: 以前我用js代码在本端进行加密,服务器端再用java代码。 tutor666: 在提交时用javascript对密码加密,不过这样在客户端就能知道加密函数,也不是很安全。 liuxy163: 可以在发送前把要发送的内容进行加密的,比如可以用MD5等算法。 asklxf: md5是摘要算法,不是加密算法。 要保密可以使用https,它可以加密整个socket连接。 applecjn: js不懂啊,看了各位的讨论。觉得https是比较好的解决办法了,我server端用的是Tomcat5,不知道能不能用https呢?我只知道https是加密的http连接,但具体就不知道是怎么回事了,还是要请asklxf大哥具体讲讲怎么使用https啊?谢谢先了。 YYSAM: js不要写在页面里面,因为可以通过看源代码查询查到;写成js引用,当然别忘了放监听防止非法访问。 其他,还可以用过滤器在过滤的过程中加密,然后再发送到服务器,再存储到数据库(记住,数据库里面不要存储加密前的用户名密码,是加密后的,这样打开数据库都不知道你的真正密码和用户名)。