admin 管理员组

文章数量: 1184232


2024年4月25日发(作者:transient英文解释)

维普资讯

爱 ¨

安全技术 

塞 嬲

——

 

路璐

, 划传平, 张

凌 

峰,墙芳蝎 

的研宓与 彳 

(中国地质大学研究生院,武汉43oo74) 

摘要:拳文详细分析了MySQL敷据库服务嚣不安仝固素以噩MySQL数据库文件特点,提出了两种基于 

PFIP的MysQL数据库加密/解密方法 

关键词:MySQL;PHP;加密;解密 

引 言 

当前,LINUX与Apache,PHP,MySQL联合,被 

广泛应用于架构电子商务系统中。PHP是服务器 

[clienq 

passworct=your pa ̄ 

如果你在“.my.cnf”里面存储口令,而又不能保 

证文件的存取模式是400或60O(组或其他用户不 

可读写),则容易造成口令泄漏的危险。 

端解释的脚本语言。MySQL是一个小巧的数据库 

服务器软件,但是其功能和执行效率却不逊色于 

⑧MYSQL_PWD环境变量中存储口令。ps的 

某些版本包括显示运行进程的环境的选项,如果你 

SQLServer等大型商业软件。PHP+MySQL组台的 

跨平台性意味着可以在Windows上开发.在UNIX 

/LINUX平台下运行,提高开发效率。同时LINUX 

设定MYSQLPWD,你的口令将对所有人是显而易 

见的。 

+Apache+PHP+MySQL组合是完全免费的,能大 

大降低网站成本。 

但是,这样一个网络开发平台,安全问题仍然 

不容忽视。尤其是数据库的安全性,是开发中尤为 

重要的环节。 

MySQL用户loot是唯一有存取MySQL数据 

库或创建或抛弃数据库权限的用户,但这与作为 

Unix root用户或其他Unix用户运行MySQL是没 

有关系的。如果你的Ⅱn11)【本身不安全,而你也没 

有在存取表中为MySQL root用户放上一个口令, 

那幺在这台机器上有一个帐号的任何用户能运行 

mysql-u rootdb

_

l HyS0L中不安垒因素 

(1)系统本身的设置问题 

name,并且做他喜欢做的任何事 

①一个在命令行上-pyour ̄oass或password= 

your pass的选项,这租方便但是不安全,因为你的 

情。 

(2)漏洞问题 

口令对系统状态程序(例如ps)变得可见,它可以被 

其他的用户调用来显示命令行。(一般M3 ̄SQL客户 

在他们曲韧始化顺序期间用零覆盖命令行参数,但 

是仍然有一个短暂间隔时间内参数值是可见的。) 

④MysQL一3.23 31之前的版本中都存在一个 

缓冲区溢出漏洞。以一个超长的字符串作为参数 

发送给SELECT语句,将可能导致mysqld发生缓 

冲区溢出。这样可以覆盖堆栈中的数据,攻击者利 

用该漏洞可以获得mysqld的运行权限或使 

mysqld数据库崩溃。 

②在一个配置文件中存储你的口令。例如,体 

可在你的主目录的“.my.cllf..文件中的[client]节列 

出你的口令: 

o MODERN COMPUTER 20021 

维普资讯

安全技术 

②MySQL-3.22.32之前的版本都存在着一个 

缺点一一对于那些要连接到数据库的人,即使没有 

密字节流,即密文 加密/解密都可用一个程序。若 

对文件进行处理一次,即可得到加密文件;若用相 

同的密钥作二次处理,就可得到解密的源文件。 

用户密码,也可以登陆,这样会打乱正常的密码认 

证机制。在这种情况下,数据库^侵者可利用数据 

库用户的权限,阅读并修改数据库的纪录 

如此看来,数据库文件的加密问题刻不容缓。 

加密:密文=(明文)0(密钥) 

解密:明文=(密文)0(密钥) 

数学表达式:设mi代表明文.ki代表密钥 ci 

代表密文(i=l,2,3.…) 

2 H-yS0 L数据库的加密/解密 

(1)Mv5QL数据库表示方法 

则:ci=mi0ki 

MySQL每一个数据库都对应数据目录下的一 

个同名子目录。建立数据库的过程就是在数据目 

录下建立一个同名子目录,并授予相应的权限。数 

据库表才是真正存储数据的地方。数据库中的每 

个表在该数据库目录中都是以三个文件形式存在: 

<? 

加密 

mi=ci0ki=mi0ki0ki一……一解密 

算法的程序描述:Sstrl为要读取的数据库文 

件,¥str2为要写人的文件(以下均同)。 

Sstrl=@fopen№. rb’; 

ordieCcannot openSfn /fn代表要读取的数据库文件名 

Sstr2=fupenff盯1. wb’;.4"fnI代表要写^的文件名 

Smylen=tilesiZe(¥mll 

描述文件,数据文件和索引文件。以MyISAM类型 

表为例,数据库目录下存在frm(描述文件1,.MYD 

(数据文件J..MYI(索引文件):由此可以看出,对数据 

库的操作,就是对数据库目录以及目录下所有文件 

的操作 

Smytemp=fread(¥strl,¥myknl;旗取文件 

mt srand(¥'seed);∥设置随机数种子,种子相同、产生 

的序列也一样,方便解密 

(2)用PHP实现数据库加密解密 

H 这种服务器端的脚本语言可以内嵌进 

Apache而成为在Apache上运行最陕的服务器端 

for f3i:】:81<=8 ylen:啦++) 

i 

Srandom=mt rand(); 

快速随机取数.此rand()速度至少快四倍 

脚本语言,而与这种脚本语言搭配最好的数据库产 

SMystr[】=¥Mytemp[i] Srandom; 异或操作 

fwrlte(¥str2.¥mystr[1]): 

品就是MySQL+PHP,PHP提供了大量的与 

MySQL接口的函数,使得他们的配合敬率更高 

由于MySQL数据库数据的描述文件、数据文 

件和索引文件彼此都相互独立存储.所以对于加密 

解密的工作来说,就相对容易了。如果对于一个很 

大的数据库,而且只要求作一般安全处理的话,可 

以采用加密任一种数据库类型文件的方法来提高 

?> 

说明:尽管fopen()对于二进制文件来说是安 

全的,但是当存取二进制文件时,必须使用fread() 

和fwrile().因为这样才不会破坏文件中的数据 如 

加密解密的效率。因为,对任一种数据库类型文件 

进行加密,都会破坏数据库的正常显示规律,达到 

加密的效果 如果在数据库的安全系数要求很高 

的情况下,可以对描述文件、数据文件和索引文件 

全部进行加密.甚至可以利用不同的算法分别进 

果使用fgets(),fputs(),即使使用了…b’标记打开文 

件,二进制文件在传输的过程中仍然有可能被破坏 

该程序密钥为一32768到32767之间的一个 

数。这种加密算法的加密强度并非特别高,但作为 

般安全处理来讲.还是足够的。将描述文件加密 

行。当然.所有进行这些工作的前提,应该是在数 

据库文件的权限只限在mysql root用户的读写权 

限范围内。 ’ 

后.系统就无法用USE命令打开数据库了。当然. 

可以在这个简单算法的基础上继续深化。比如将 

读出的字符流左移或右移13.位,偶次项与奇次项进 

①一个简单的加密解密算法 

原理描述:基于流密码加密/解密的小程序 

行相与操作,再进行异或操作等等。 

②利用PHP函数库进行加密解密 

使用PHP的mcrypt函数库,要先下载libra・ 

以二进制的形式读^要加密的文件字符流,即明 

文:再与相应的密钥值进行异或运算从而生成加 

MODERN C0M PUTER 0o21 

维普资讯

安全技术 

crypt—x.x tar. ,同时在编译PHP程序时,需要加 

∥采用cP,c密码检索率。SMyk ̄r为密钥.要注意保持 

入一with—merypt选项。 

机密性.SMystr为要加密的字符申,MCRYPI ENCRYPT代 

本函数库提供的编码方式有DES,TfipleDES, 

表加密 

Blowfish(默认值),3-WAY,SAFER—SK64.SAFER— 

fwrite(¥str2.Sen

code);黼出到文件Sfile2 

SKI28.TWOFISH.TEA,RC2以及使用CBC,OFB. 

CFB.ECB作为密码检索的GOST。 

●四种密码检索本的比较 

这个加密算法适合于相对比较小的文件,比如 

ECB(electronic codebook):适台随机的资料。 

说数据库描述文件,索引文件。如果是数据文件的 

CBC(cipher block chaining):适台文件的加密, 

话,建议不需要将文件全部读人,只需对部分数据 

安全性比ECB好。 

进行加密编码.即可达到效果。 

CFB(cipherfeedback):适合对字节资料流中 

解密过程只需要在制定文件¥Myfile中读取密 

的某段独立字节资料加密。 

钥,其余过程与加密过程相似,只是将mc ̄pt—cbe 

OFB(outputfedback):与CFP相容,尤其适 

(¥cipher,SMyk ̄,¥array【l】,MCRY 一ENCRY 改 

合再无法忍受错误波及的应用上。 

为mcrypt cbc(¥cipher, SMykey, Sarray[1】. 

CFB和OFB阿种模式使用前,必须要进行向 

MCRYP1I_DECRYPT)就可以了 

量初始化。向量初始化的值在加密/解密时必须是 

说明:利用PHP函数库进行加密解密有很大 

唯一的,同时要保持相同。 

的选择余地。我们可以针对不同的数据库类型文 

●数据库文件加密/解密程序描述 

件以及不同的安全系数要求,选择不同的密码检索 

比如,采用三重DES编码方式对数据库文件 

本和编码方式 

进行加密。 

结语 

<? 

目前,PHP只能对字符串做加密处理,还不能 

¥str1=@Ibpen伽, r 

对位(bit)的熵值做加密/解密的步骤 本文提到的 

Ilr die(“cannot open¥fn 

Sstr2=fopen曲1."wb3; 

利用PHP实现MysQL数据库加密的两种方法,比 

较高教,而且都可以破坏数据库表文件的正常显示 

¥cipher=-MCRYPTTripleDES 

规律 通过进人应用系统前解密、退出系统前加 

碌_用三重DES编码方式 

密,从而可以较为有效地保护数据库文件信息不被 

∥…一一一生成密钥过程 

非授权用户访问。 

SMykey=mt srand();∥快速生成随机数 

SMyc ̄ert=string(SMykey) 

参考文献 

nte(¥My脚e,¥Mycve n】 lIB鉴聪,潘军锋,罗剑波.PHP4编程与实例.北京:机械工 

现 

懈密钥保存在指定文件SMyfile中,供解密时候调用 

业出版社,2o0l 

代 

2]卢勇焕,郝海允,崔吉俊.黑窖与安全.北京:中国青年出 

计 

加密过程 版社,200l 

算 re 曲k问 ) ∥输出文件到标准设备 

3]薛军超等MysQL网络数据库.北京:』、民邮电出版社, 

机 。删y 6 )∥将文件读^到数组中 

200l 

(收稿日期:2o01—12-06) 

§MCRYPT

ENCRkTq3: 

第} 

 I

! MOD ERN COMPUTER 20㈣ 

、 

维普资讯

安全技术 

Research and Discussion of the Encryption 

Methods of MySQL Database based on PHP 

Lu Lu LIU Chuan—ping, ZHANG Feng, QIANG Fang—zhu 

(Graduate School of China University of Geoseienees Wuhan 430074 China) 

Abstract:Thefile gives a detailed aaalysisofinseeurlt2efactorsofMySQLDBServer andthe characteristic oftheMySQL 

database itles.It brings forward two enc ̄,ptiotrtleerypifon methods of MySQL database flies based 0n PHP 

Key words:MySQL;PHP;Eneryption;Decrypfion 

An Approach to the I ndustry User based on 

Petri Net 

OUYANG Chang,XU Bin,JIN Qiao—sheng,WANG Chuang—yi,JU Tan,WANG Bing—wen 

Abstract:Petri Net is an effective description language for model,and caⅡbe used to the analysis of a system perfumlance 

As a usefulmethodforprocessintegrationofindustry,thetechnique ofworkflowiswidely usedinmany cases. 

The artic1eintroduce aworkflow orientedtothe users ofindustrv,anddiscusses howto eon ̄,ertitto aPetriNet 

model,then produces amodelformal3agt ̄ment and resOll ̄ce.In orderto analyzethe performance ofthe system 

more convenient.the model wa8 reduced with Peti rNet. 

Key words:Peti rNet;Work F10w;Reduction 

现 

代 

计 

算 

机 

^ 

总 

第 

一 

= 

一 

一 

MODERN COM PUTER 2 

靳 

v 


本文标签: 数据库 文件 加密