用 Kerberos 为 J2ME 应用程序上锁,第 3 部分: 建立与电子银行的安全通信(下)
2010-03-30 00:00:00 来源:WEB开发网现在生成 cusec 字段,它表示客户机时间的微秒部分。这个字段的取值范围为 0 到 999999。这意味着可以在这个字段提供的最大值为 999999 微秒。不过,MIDP 不包含任何可以提供比一毫秒更精确的时间值的方法。因此,不能指定客户机的微秒部分。只是对这个字段传递一个零值。
在 Authenticator 结构中,还要生成两个字段 ―― subkey 和 seq-number 。在为票据请求而生成的 Authenticator 中不一定要包含这两个字段,但是后面在用同一个 getAuthenticationHeader() 方法生成上下文建立请求时需要它们。
现在,只需知道只要检查 sequenceNumber 参数是否为零。对于服务票据请求它为零,对于上下文建立请求它为非零。
如果 sequenceNumber 参数为非零,那么就生成 subkey 和 seq-number 字段,然后链接 authenticator-vno、 realm、cname、cksum、cusec、ctime、subkey 和 seq-number 字段以构成一个字节数组,将这个字节数组包装到一个 SEQUENCE 中,然后将 SEQUENCE 包装到 Authenticator 中(应用程序级别标签号 2)。
如果 sequenceNumber 参数为零,那么可以忽略 subkey 和 seq-number 字段,链接 authenticator-vno、crealm、cname、cksum、cusec 和 ctime 字段以构成串接的字节数组,将这个字节数组包装到一个 SEQUENCE 中,然后将这个 SEQUENCE 包装到 Authenticator 中(应用程序级别标签号 2)。
下面,需要取完整的 Authenticator 结构并将它传递 authorDigestAndEncrypt() 方法,这个方法返回纯文本 Authenticator 的完整 EncryptedData 表示。
下一个任务是串接认证头或者 KRB-AP-REQ 结构的五个字段( pvno、msg-type、ap-options、ticket、authenticator )为一个字节数组,将这个字节数组包装为一个 SEQUECNE ,最后将这个 SEQUENCE 包装到应用程序级别的标签号 14。
更多精彩
赞助商链接