VseYoung

1. 认证和加密
    认证(Authorization)的作用在于表明自己是谁,即向别人证明自己是谁。而相关的概念是MD5,用于认证安全。注意MD5仅仅是个hash函数而已,并不是用于加密。因为hash函数处理后的数据没法进行反向恢复,这样子的话别人没法盗取你认证身份的口令。
    加密(Encryption)的作用在于对想传输的数据进行处理,在网络中即使被窃取也难以破解。加密的信息可以被破解,这需要一把钥匙——“密钥”。通过密钥,我们可以对数据进行加密和解密。最有名的专用密钥加密系统就是数据加密标准(DES), 这个标准现在由美国国家安全局和国家标准与技术局来管理。另一个系统是国际数据加密算法(IDEA), 它比DES的加密性好, 而且需要的计算机功能也不怎么强。
2. SIP认证方式
    SIP的认证是继承了HTTP的认证方式。根据RFC2617,HTTP的认证方案主要有Basic Authentication Scheme和Digest Access Authentication Scheme两种。而Basic方法使用的口令原文验证的方式,易被盗取,所以SIP已经摒弃这种方式。

    Digest认证方案可以对口令进行MD5包装。一般来说,获取口令有两种方式:1.字典攻击,即使用轮询进行口令猜测的方法,如果口令简单比较危险;另一个方法是攻击服务器来获得口令,如果服务器把密码存储起来那样的话就可能被盗取。所以方法是服务器端不再存储密码原文,而是使用MD5包装起来,这样的话当经过MD5包装的认证信息过来后,比较存储的MD5数据则可知道用户的身份了。

3.Response值算法

1) HASH1=MD5(username:realm:password) 

2) HASH2=MD5(method:uri) 

3)Response=MD5(HA1:nonce:HA2)

举个例子:

username=\'3502\'

realm=\'OfficeTen\'

password=\'Admin111\'

method=\'REGISTER\'

uri=\'sip:192.168.28.152\'

response=\'ae850ee2184aa88e3b79200f08284095\'

 

参考文章:http://blog.sina.com.cn/s/blog_4b839a1b01000bqq.html

                http://blog.csdn.net/mrshelly/article/details/7535102

                http://blog.sina.com.cn/s/blog_737adf5301013f1i.html

 

附:md5加密python实现

import hashlib
#md5加密32位
def md5(str):
m = hashlib.md5()
m.update(str)
return m.hexdigest()

hash1=md5("20007:element:20007")
print "%s"%hash1
hash2=md5("REGISTER:sip:192.168.10.222")
print "%s"%hash2
response=md5(hash1+":449caead:"+hash2)
print response

分类:

技术点:

相关文章: