在Lotus Notes中有一项“为 Internet 口令提供更多的安全性”是改善Lotus Notes Domino的Internet 密码安全性的选项,当选项设置为 Yes 时,Internet会以一种动态的Has方式来进行加密,每次修改加密串都是不一样的。
1、配置方法:
这样就增加了密码破解的难度,其配置方法如下:
输入 Internet 口令并保存“个人”文档后,Domino 自动单向加密 Internet 口令域。要提高访问 Domino 4.6 或更高版本服务器的用户的口令安全性,可以使用更安全的口令格式。
可升级现有的“个人”文档的口令格式,或者自动对创建的所有“个人”文档使用更安全的口令格式。
现有的“个人”文档
1. 从 Domino Administrator 中,单击“个人和群组”,然后选择要升级到更安全的口令格式的“个人”文档。
2. 选择“操作”“升级到更安全的 Internet 口令格式”
3. 单击“是”。
新的“个人”文档
1. 从 Domino Administrator 中,单击“配置”,然后选择“所有服务器文档”。
2. 选择“操作”“编辑目录简要表”。
3. 在“使用更安全的 Internet 口令”域中选择“是”。
4. 保存并关闭文档。
注意 如果您选择将用户的 Internet 口令与其 Notes 口令同步,则需要更安全的口令格式。
一旦更改并且用户文档经保存,则手动不能再改回普通加密方式,因为Domio会在用户的文档中增加一个安全域: $SecurePassword ,此域的值为1,除非用代理将其移除。
2、Web用户修改密码时验证问题:
在用户输入旧密码时,我们可以从web页面上的 oldPassword 字段 取用户输入的旧密码,同用户文档中保存的原始旧密码进行比对,得到判断是否是用户本人在修改密码。
1)普通加密方式 可以使用
oldPasswd = Evaluate("@Password('" + curdoc.oldPassword(0)) + "')" )
if (oldPasswd(0) = namesdoc.Httppassword(0) ) then
//
End if
2)由于采用了Hash加密方式用户文档中的密码与当前生的密码不能再用相等否的方式进行判断,解决方法是:如下代码中的绿色背影处,现是检查用户输入的记忆中的旧密码,与用户文档中存储的Hash加密后的密码串是否具有依赖关系,有由密码一致,否则旧密码不符
If newPasswd = confimPasswd Then
'Msgbox namesdoc.HTTPPassword(0) +" == ?" + Cstr(s.VerifyPassword(oldPasswd,s.HashPassword(namesdoc.HTTPPassword(0))))
If Not s.VerifyPassword(oldpasswd,s.HashPassword(namesdoc.HTTPPassword(0))) Then
Print|
<script language=javascript>
alert("旧密码不正确!")
history.go(-1)
</script>|
Exit Sub
End If
macro$ = "@Hashpassword('"+ newPasswd +"')" '修改密码
result = Evaluate(macro$)
namesdoc.HTTPPassword = result(0)
Call namesdoc.Save(True,True)
'成功修改用户密码提示信息
Print|
<script language=javascript>
alert("用户密码修改成功!\n新更改的密码15分钟后生效!")
window.location='oa/mainoa.nsf?logout';
</script>|
Else
Print|
<script language=javascript>
alert("新密码与确认密码不一致,请重新输入!")
history.go(-1)
</script>|
Exit Sub
End If