承接国内外服务器租用托管、定制开发、网站代运营、网站seo优化托管接单、网站代更新,新老站点皆可!!咨询QQ:3787320601

MSSQL密码安全性研究:寄存位置分析

管理员 2023-04-26 10:12:20 网站建设 33 ℃ 0 评论 2666字 收藏

MSSQL密码安全性研究:寄存位置分析

Microsoft SQL Server是一款经常使用的关系型数据库服务器,它内置管理员密码来保护账户与数据完全性,本文主要对MSSQL中密码寄存位置进行分析,来构造出更加安全的系统。

MSSQL中的密码寄存在Sysprocesses表或SS login表中,前者对应正在登录的用户,后者对应所有用户登录。查看Sysprocesses表字段spid可以汇总出正在登录的用户,spid是某个连接进程的进程号,它以登录帐户的权限履行某个线程。这就意味着只能查看连接进程的用户spid可以解密密码。Sysprocesses表char 36字段中还存储有加密后的密码,使用sysprocesses加密方式不安全,是可以解密的。除此以外,管理员还可以创建一些内部账号把用户的密码存储在服务器的master.mdf文件中,之内部账号登录以查看密码,但该方式不利于查看。

由于MS SQL Server可以延续存储密码,因此可以通过履行某些脚本来破解密码。这类方式可以快速访问登录信息,允许攻击者直接对服务器中的账户密码进行破解。

为了保护用户的安全,管理员应首先加密或哈希存储服务器上的密码,其次应确保登录信息寄存在服务器外部进行安全保护,如存储在安全的硬盘空间或加密磁盘中,以减少攻击者有效的攻击密码。

另外,MS SQL Server密码保存进程可以优化来增强安全性,如避免使用SQL Server特性和内置函数:

--将MS SQL Server数据库中所有用户密码加密
CREATE PROCEDURE dbo.EncryptAllPasswords
AS
BEGIN
DECLARE @pwd NVARCHAR(128)
DECLARE @user NVARCHAR(128)

SET NOCOUNT ON --启动
DECLARE cur-CURSOR WITH FAST_FORWARD --创建游标
FOR SELECT lucNAME, laxpwd FROM SyssysUsers --获得所有登录用户

OPEN cur --打开游标
FETCH NEXT FROM cur INTO @user, @pwd --获得所有登录用户密码
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE @encrypted NVARCHAR(128)
EXEC sp-encrypt @pwd, @encrypted OUTPUT --履行加密操作
UPDATE SyssysUsers --更新新的加密密码
SET laxpwd = @encrypted
WHERE lucName = @user
FETCH NEXT FROM cur INTO @user, @pwd --获得下一个用户及其密码
END
CLOSE cur --关闭游标
DEALLOCATE cur --释放游标
SET NOCOUNT OFF --结束
END

本文通过分析MSSQL中密码寄存位置,来构建更加安全的密码存储机制,这样就能够实现更好的数据完全性和安全性。

文章来源:丸子建站

文章标题:MSSQL密码安全性研究:寄存位置分析

https://www.wanzijz.com/view/20711.html

X

截屏,微信识别二维码

微信号:weimawl

(点击微信号复制,添加好友)

打开微信