基于AES-256算法的Windows个人口令管理系统

2017-12-28 05:35侯旭日路秀华
关键词:廊坊口令字节

侯旭日 ,孙 越 ,路秀华 ,2

(1.廊坊师范学院,河北廊坊 065000;2.廊坊市数学生态模型重点实验室,河北廊坊 065000)

基于AES-256算法的Windows个人口令管理系统

侯旭日1,孙 越1,路秀华1,2

(1.廊坊师范学院,河北廊坊 065000;2.廊坊市数学生态模型重点实验室,河北廊坊 065000)

针对人们的生活需要越来越多的用户名及口令来注册并登陆各种各样的系统,以便享受全方位的网络服务

这一现实需求,设计了基于Windows系统的个人口令管理系统。通过SQL Server实现了软件的基本功能,通过AES-256算法和hash函数增强了数据库的安全性,结果显示性能良好,能够完成账户管理的基本需求。

个人口令管理;Windows系统;AES-256算法;hash函数

1 概述

随着互联网信息时代的快速发展,我们的生活需要接触各大银行系统、各类购物网站、多种邮箱系统和不同的即时交互软件。为了减少口令泄露的风险,增强个人账户的安全性,我们需要设置复杂多变的用户登录口令,并遵循一账户一口令的原则。在保证账户安全的同时,我们也不得不面对繁杂的口令管理问题。在此背景下,个人口令管理系统的开发,有着强烈的市场需求。

现有的个人口令管理系统有KeePass,LastPass和1Password,其中1Password是KeePass和LastPass的结合,它的iOS系统和Android系统版本在基本功能方面免费,但Mac和Windows系统版本是收费的,而且1Password的Windows系统和Android系统版本不支持中文。

本文借鉴已有软件系统,以AES-256加密算法为基础,设计免费的、更安全的、支持中文的、适用于Windows环境的个人口令管理系统。

2 系统关键技术

本系统的关键技术包括以下两个方面:

(1)关于系统基本功能的实现,涉及到SQL Server数据库[1]的设计和实施方法,包括在SQL Server上创建、管理数据库及其对象、查询与统计数据、管理数据表数据(合并数据表中的数据,将数据抽取到另一个表中,以及维护数据表数据)、数据库设计、创建与管理数据库、创建与管理表、实施数据完整性。

此外,创建与管理视图(了解视图的概念及对视图的各种操作)、创建与管理存储过程(存储过程的概念以及对存储过程的各种操作)、创建及管理触发器(触发器的各种操作)、创建与使用游标(游标的创建及综合应用)、处理事务与锁(事务与锁的使用)、以及对SQL Server数据库进行日常管理与维护,也是很重要的一个方面。

(2)关于数据库的安全性,采用AES-256算法[2]对数据进行加密操作。AES算法是美国国家标准与技术研究院在全世界公开征集的用来替代DES的新一代数据加密标准,具有强安全性、高性能、高效率等优势。AES算法的密钥长度有三个可选项:128,192和256位。和DES相比,AES的128位密钥比DES的56位密钥强1021倍。192和256位的AES算法,具有更强的安全性保障。我们选择了安全强度最高的AES-256算法,在这个算法加密的文档破译中,能够找到解密密钥的几率是1/2256,这几乎是可以忽略的。

AES算法加密过程包括以下四个核心操作:

①字节代替变换

这是一个关于字节的非线性变换,它将状态中的每一个字节非线性地变换为另一个字节。具体操作分两步完成:首先,将一个字节变换为有限域中的乘法逆元素,规定00变换为其自身;然后,对有限域上的乘法逆元素做特定的仿射变换。

②行移位变换

行移位变换对一个状态的每一行循环左移不同的位移量:第一行保持不变,第二行循环左移一个字节,第三行循环左移两个字节,第四行循环左移三个字节。

③列混合变换

列混合变换将一个状态的每一列视为有限域上的一个多项式,逐列进行混合。

④圈密钥加法变换

圈密钥加法变换将一个圈密钥按位异或到一个状态上。圈密钥的长度为十六个字节,按顺序取自扩展密钥。扩展密钥的长度为二百四十个字节,由原始密钥扩展而来。

2007年,刘珍桢对AES算法进行了优化设计[3],采用查表法优化处理了字节代替变换、列混合变换和密钥扩展算法。优化以后的AES算法整体结构如图1所示。

图1 优化的AES算法整体结构

目前AES-256算法没有明显的漏洞,唯一的问题就是如何安全地分发密钥。为了解决密钥分发问题,我们引入了hash函数[2]。Hash函数是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。消息摘要可以视为消息的指纹信息,和消息具有事实上的一一对应关系。由于王小云等人对MD4、MD5、SHA0和SHA1的一系列攻击[4-7],我们选择SHA3作为hash函数的实例化,计算用户名和系统登录口令的hash值,作为数据库加解密算法的密钥使用。由此加解密算法的密钥能够做到一用户一密钥,且密钥无需保存和分发。即便是攻击者绕过登录系统进入数据库,仍然会因为无法提供正确的用户名和登录口令,得不到数据库的解密密钥,也就无法获得数据库的敏感数据。

3 系统设计方案

本文借鉴王瑞娜基于Linux的智能家居系统设计[8],采用C#[9]进行系统开发,设计的个人口令管理系统能够管理用户在各个网络平台的用户名/登录口令信息,以减少用户的管理负担、增强用户账户信息的安全性。主要工作包括实现基本功能和保障安全性两个方面的内容。

主界面的菜单栏包括文件、视图和帮助。下方有刷新按钮,可以快捷刷新界面,提高用户体验。主界面的左侧包括所有项目按钮,管理用户添加的所有项目的信息。收藏夹按钮方便用户收集一些使用频率高的信息。我们也设置了添加和删除按钮,用户可以根据自己的需要进行添加和删除项目信息操作。

登录类型包括银行卡类型、办公类型和游戏类型。登录信息按钮记录了登录的账号、登录日期、登录时间和电脑号,由此用户能够查阅自己的登录信息,及时发现异常登陆情况,保障账户的安全性。

具体的设计步骤如下:

首先深入分析个人口令管理系统的功能需求,完成新系统的整体框架设计,明确要实现的功能。

其次是分阶段、分步骤完成系统的开发。首先实现系统的基本功能,然后强化系统的安全性,保证系统的可用性和可靠性。

4 系统功能实现

系统的主要功能模块如图2所示。

图2 系统功能

(1)实现基本功能

首先设置注册、登录入口,实现用户注册和登录功能。由于系统安全级别要求非常严格,我们设置了两级用户。软件初始化时,会指定一个高级别账号,用于系统管理。高级别用户可以创建低级别用户,在保证账户安全的同时,方便多成员的账号管理。此外,密码只有3次输入机会,如果第三次输入密码正确那么输入机会重置,如果第三次输入错误系统锁定用户登录。

系统的核心是维护数据库,包括以下几个主要方面:

①建立数据库,保存每个网络平台的名称、用户名/登录口令,以及用户名/登录口令的生成规则。

②连接数据库,打开公开连接,创建连接对象,允许应用程序及其他用户访问数据库。

③设置数据库操作权限,外来用户只可读取不可修改,提高了数据库的安全性。

5. 统计学处理:资料采用 SPSS 13.0 医学统计软件进行处理。计量资料以均数±标准差表示,组间比较采用独立样本t检验,组内治疗前后比较采用配对t检验。P<0.05表示差异有统计学意义。

(2)增强安全性

我们采取以下四个措施来提升系统的安全性。

①随机化的网络平台登录信息,引入随机化算法[10],在网络平台的信息生成规则下,随机生成网络平台的用户名/登录口令,减少用户名/登录口令的规律性。权限也成为需要关心的主要目标,数据库权限是我们设置的关键技术,防止非法用户进入数据库破坏数据。

②加密数据,采用AES-256算法对数据加密,增强密文的安全强度。加解密算法的密钥采用用户隐私信息的hash函数摘要信息,因此,加解密算法的密钥能够做到一用户一密钥,且密钥无需保存。

③设置登录日志,保存登录日志,设置异常登录提醒,方便用户查询登录日志,及时发现潜在的异常登录。高级别管理员可以随时查看系统登录情况,什么时间点、哪台电脑使用了该系统,谁使用了该系统一目了然。

④备份数据库,设置数据库的定期自动备份,规避不可测事件,主要预防突发情况,例如:自然灾害、火灾、停电等状况的发生。

5 系统的优化空间

①链接网络平台,设置网络平台链接,点击即可登录网络平台。

②快速修改网络平台登录信息,设置网络平台用户信息链接,点击即可修改网络平台登录信息。

③跨平台同步,实现数据库的便携性,满足用户随时随地的需求。随着操作系统不断增多,更新速度也非常快。由于用户安装的操作系统版本不统一,因此系统支持操作系统版本为xp及xp以上所有版本运行。

④可以采用Flash动态界面,美化系统界面。

6 总结

本文展示了个人口令管理系统的基本架构。系统在Windows环境下设计,基本功能借助SQL Server来完成,安全性能主要依赖于AES-256算法和安全的hash函数SHA3。系统的用户体验良好,实现了智能管理账户口令的目标。最后,给出了本系统可以继续完善的方向。

[1]尹志宇.数据库原理与应用教程:SQL Server 2008(第2版)[M].北京:清华大学出版社,2017.

[2]陈鲁生,沈世镒.现代密码学[M].北京:科学出版社,2002.

[3]刘珍桢.AES加、解密算法的FPGA优化设计[D].成都:电子科技大学,2007.

[4] Wang Xiaoyun,Lai Xuejia,Feng Dengguo,et al.Cryptanalysis of the Hash Functions MD4 and RIPEMD [C].Advances in cryptology—EUROCRYPT 2005,LNCS 3494,pp.1–18,Springer-Verlag,2005.

[5] Wang Xiaoyun,Yu Hongbo,How to Break MD5 and Other Hash Functions[C].Advances in cryptology—EUROCRYPT 2005,LNCS 3494,pp.19-35,Springer-Verlag,2005.

[6] Wang Xiaoyun,Yu Hongbo,Yin Yiqun Lisa.Efficient Collision Search Attacks on SHA-0 [C].Advances in cryptology—CRYPTO 2005,LNCS 3621,pp.1 – 16,Springer,Berlin,2005.

[7] Wang Xiaoyun,Yin Yiqun Lisa,Yu Hongbo.Finding Collisions in the Full SHA-1[C].Advances in cryptology—CRYPTO 2005,LNCS 3621,pp.17–36,Springer,Berlin,2005.

[8]王瑞娜.基于嵌入式Linux的智能家居系统的研究与设计[J].廊坊师范学院学报(自然科学版),2017,17(1):34-38.

[9]本杰明·帕金斯.C#入门经典(第 7版)[M].北京:清华大学出版社,2016.

[10]斯托林斯.网络安全基础:应用与标准(第 4版)[M].北京:清华大学出版社,2011.

Personal Password Management System on Windows Based on AES-256 Algorithm

HOU Xu-ri1,SUN Yue1,LU Xiu-hua1,2
(1.Langfang Teachers University,Langfang 065000,China;2.Laboratory of Mathematical Model for Ecology in Langfang,Langfang 065000,China)

In order to enjoy the full range of network services,people need more and more usernames and the corresponding passwords to register and login various systems.For personal password management convenience,this paper designs a personal password management system on Windows environment.The implementation process of the system is described from two aspects of the basic functions of software and the enhancement of security,the first part is based on SQL Server,and the second part is based on AES-256 algorithm and hash function.The results show that the performance is good and that the basic requirements for account management can be fulfilled.

personal password management;Windows system;AES-256 algorithm;hash function

TP317

A

1674-3229(2017)04-0021-03

2017-08-14

河北省大学生创新创业训练计划项目(201610100007)

侯旭日(1995-),男,廊坊师范学院数学与信息科学学院学生,研究方向:计算机应用技术。路秀华(1979-),女,廊坊师范学院数学与信息科学学院副教授,研究方向:信息安全与密码学。

猜你喜欢
廊坊口令字节
No.8 字节跳动将推出独立出口电商APP
廊坊专场(二)
高矮胖瘦
No.10 “字节跳动手机”要来了?
口 令
蒸蒸日上的廊坊百冠
简谈MC7字节码
好玩的“反口令”游戏
今夜我们与廊坊相爱
健身气功·五禽戏教学口令