传统的身份识别系统,采用固定的用户名-密码方式。用户通过客户端输入用户名-密码,将信息提交到服务器段进行身份识别。一旦用户机器被恶性代码或木马所控制,用户的隐私信息将得不到保护。
目前对于安全级别较高的系统(例如:银行,交易网站等),通常会给用户提供USB Key(Token)。例如:RSA的安全方案。但是这种方案的成本和对于应急性消费是有局限性的,用户不可能随身携带各种USB Key,而且各种机构颁发的Key也是种类繁多,用户难以管理。
是否能够找到便捷、安全的身份管理方案?
目前手机的应用非常普及。Wireless Intelligence预测到2007年年底,全球手机用户数量将达到30亿。全球手机用户在2006年9月达到了25亿。手机已成为每个人生活的必需品。如果能够让手机作为USB Key,利用手机提供的计算能力,作为身份识别的工具,将为用户提供极大的方便。
假设:一个手机只有一个Seed(Token)
过程1说明:
1, 手机发送请求信息(IMEI,手机号码)到认证服务器。可以同过GPRS网络或者SMS短信等。
2, 认证服务器下发响应信息(Seed,Time,手机号码)到手机。可以同过GPRS或者SMS短信等。
3, 手机存储接收到的Seed,Time,手机号码。
过程2说明:
假设:
1, 用户以前在该网站注册过,并且使用过密码保护功能。
2, 已经通过过程1获得了密码保护。
操作过程:
1, 用户可以通过电脑访问某网站。
2, 用户在该网站登陆页面输入用户名称(UserName)
3, 用户通过手机生成一次一密的动态登陆密码。并将其填写到登陆页面的密码区,并提交用户对该网站的登录请求。
4, 网站将用户提供的用户名称,密码信息以及网站标示信息发送给认证服务器。
5, 认证服务器,根据网站提供的信息(用户名称、网站标示信息)找到相关的Seed,IMEI,手机号码,经过运算生成密码。将生成密码与网站传递的密码信息进行比较。如果比较结果一致,则认证成功,向网站发送认证成功标志。如果比较结果不一致,则认证失败,向网站发送认证失败标志。
6, 网站根据认证服务器的反馈结果,做响应的处理。
过程2说明:
假设:
1, 用户以前在该网站注册过,但是还没有使用密码保护功能。
2, 已经通过过程1获得了密码保护。
操作过程:
1, 用户可以通过电脑访问某网站。
2, 用户在该网站登陆页面输入用户名称(UserName)
3, 用户通过手机生成一次一密的登陆密码。并将其填写到登陆页面的密码区,并提交用户对该网站的登录请求。
4, 用户输入用户的密码保护手机号码。
5, 网站将用户提供的用户名称,密码信息,手机号码以及网站标示信息发送给认证服务器。
6, 认证服务器,根据网站提供的信息(用户名称、网站标示信息,手机号码)找到相关的Seed,IMEI,手机号码,经过运算生成密码。将生成密码与网站传递的密码信息进行比较。如果比较结果一致,则认证成功,向网站发送认证成功标志。如果比较结果不一致,则认证失败,向网站发送认证失败标志。
7, 网站根据认证服务器的反馈结果,做响应的处理。
该系统整合用户,服务提供商,运营商、手机制造商、社会的价值链条,建立完整的应用服务生态系统。
1, 用户。使用一次一密的动态密码保护措施,防止目前固定密码方式由于木马等工具造成用户密码被盗用损失。
2, 认证服务提供商。通过安全便捷的认证服务,作为服务工作,向用户收取服务费用。
3, 运营商。通过用户的使用获得通讯费用(GPRS流量费、SMS收入)。监控水货手机的使用情况。以及定制机在各区域及渠道中由于价格差异产生的窜货,监控营销效果。
4, 手机制造商。产品在各区域及渠道中由于价格差异产生的窜货,监控营销效果。
5, 服务提供商。为用户提供安全消费的环境,体现企业责任,降低客户投诉。
6, 社会利益。通过技术手段建立信用体系,降低交易成本。
Q1,如果用户手机丢了怎么办?会有安全隐患码?
A1,不会有安全隐患。因为用户名称信息需要用户记忆,手机中并不存储用户名称信息。
Q2, 如果用户更换了SIM卡或用户手机号码,还可以使用认证服务吗?
A2,无法使用。只能通过修改认证服务器后台系统进行。
Q3,如果用户手机密码生成程序损坏,如何处理?
A3,需要重新部署移动客户端程序,用户可以继续使用原有服务。
Q4,什么行业的应用可能需要这样的认证系统?
A4,有比较严格安全性要求的系统。例如:Mail服务网站,游戏网站,电子交易网站,以及有比较严格审计要求的企业客户。
Q5,如果企业使用这样的认证系统,需要做哪些工作?
A5,
方案一,企业自建认证系统。需要提供:认证服务器的软硬件资源;移动客户端软硬件资源;需要对修改原系统的用户认证过程。
方案二,企业租用公共认证系统。需要提供:移动客户端软硬件资源;需要对修改原系统的用户认证过程。
Q6:这种解决方案未来可以做什么?
A6:SSO(single sign on).与Yahoo的OpenID类似,但是它能解决Yahoo-OpenID的许多安全问题。Yahoo OpenID is one username and one password for all of the sites that you go to. MCA-SSO is one username and one dynamic password.
MCA -SSO is a new way to identify yourself all over the Web. With your own personal MCA- ID you can login to any MCA-ID-enabled site and identify yourself as you.
CA/NTP
1, 负责接受手机端的信息(IMEI,Mobile Number),产生加密Seed,将基准时间发送给手机段。目前通讯部分使用Socket技术实现,如果必要也可以考虑SMS方式通讯。
2, 负责接受来自SP的用户身份验证请求。根据用户的请求,验证是否为有效用户。目前通讯部分使用Web Service技术实现。
Moblie
1, 负责采集用户的信息,发送给CA/NTP服务器。接受CA/NTP的响应数据(Seed,BaseTime),并在手机端存储。目前通过Socke进行通讯,通过Sql Site数据库进行存储。
2, 负责产生动态密码,供用户登录时使用。根据Seed,Base Time,IMEI,Mobile Number产生密码。
没有获得Seed的用户,单击get password,系统提示用户输入手机号码。
已经获得Seed的用户,单击get password,系统给出登录密码。
SP APP
1, 负责将用户的信息发送给CA/NTP服务器,根据CA/NTP的认证结果确认用户是否有权访问改站点。目前演示以MS PetShop4.0为例,通过Web Service与CA/NTP进行通讯。
更改Sign in实现过程。
protected void Login_Authenticate(object sender, AuthenticateEventArgs e)
{
CheckBox ckPasswordProtect= Login.FindControl("PasswordProtect") as CheckBox;
Literal ltFailureText = Login.FindControl("FailureTip") as Literal;
TextBox txMobileNum=Login.FindControl("MobileNum") as TextBox;
TextBox txUserName=Login.FindControl("UserName") as TextBox;
TextBox txPassword=Login.FindControl("Password") as TextBox;
localhost.Service localService = new localhost.Service();
//Validate the user..
if (ckPasswordProtect.Checked == true)
{
if (txMobileNum.Visible == true)
{
// callWebServiceFirstLogin;
string responsed = localService.FirstCheckIn("1",txUserName.Text.ToString(), txMobileNum.Text.ToString(),txPassword.Text.ToString());
if(responsed=="OK")
e.Authenticated = true;
}
else
{
if (FirstUses())
{
txMobileNum.Visible = true;
ltFailureText.Visible = true;
ltFailureText.Text = "It's your first time to use Moblile Password Protect on this site,Please type your Mobile Number!";
}
else
{
//callWebServiceCheckIn;
if (localService.CheckIn("1",txUserName.Text.ToString(), txPassword.Text.ToString()) == "true")
e.Authenticated = true;
}
}
}
}
第一次使用手机密码保护,系统提示用户输入手机号码