06.11.2014 Views

A User Centric Security Model for Tamper-Resistant Devices

A User Centric Security Model for Tamper-Resistant Devices

A User Centric Security Model for Tamper-Resistant Devices

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

C.7 Application Binding Protocol - Local<br />

139 return new ScTPM( ) ;<br />

140 }<br />

141 public void ScTPMUpdate( ServerApp obServerApp , ClientApp<br />

142 obClientApp ) {<br />

143 myServerAppRef = obServerApp ;<br />

144 myClientAppRef = obClientApp ;<br />

145 myServerAppRef . digestUpdate ( scTPMDigestBuffer ) ;<br />

146 myClientAppRef . digestUpdate ( scTPMDigestBuffer ) ;<br />

147 }<br />

148 public void clientTPMKeyAgreement (AESKey TPMClient ) {<br />

149 TpmClientApp = TPMClient ;<br />

150 }<br />

151 public void serverTPMKeyAgreement (AESKey TPMServer ) {<br />

152 TpmServerApp = TPMServer ;<br />

153 }<br />

154 public void v a l i d a t e A p p l i c a t i o n s ( byte [ ] p_Message ) {<br />

155 pMessage = p_Message ;<br />

156 g e n e r a t e D e c r y t i o n ( ( short ) 30 , ( short ) 32 , TpmClientApp ) ;<br />

157 U t i l . arrayCopyNonAtomic ( pMessage , ( short ) ( pMessage [ 0 ] +<br />

158 C l i e n t I d e n t i t y . l e n g t h +<br />

159 S e r v e r I d e n t i t y . l e n g t h ) ,<br />

160 ClientRandomNumber , ( short ) 0 , ( short )<br />

161 ClientRandomNumber . l e n g t h ) ;<br />

162 g e n e r a t e D e c r y t i o n ( ( short ) 68 , ( short ) 32 , TpmServerApp ) ;<br />

163 U t i l . arrayCopyNonAtomic ( pMessage , ( short ) ( pMessage [ 0 ] +<br />

164 C l i e n t I d e n t i t y . l e n g t h +<br />

165 S e r v e r I d e n t i t y . l e n g t h ) ,<br />

166 ServerRandomNumber , ( short ) 0 , ( short )<br />

167 ServerRandomNumber . l e n g t h ) ;<br />

168 tpmDigestGen . doFinal ( AppDataFile , ( short ) 0 , ( short )<br />

169 AppDataFile . length , scTPMDigestBuffer ,<br />

170 ( short ) 0) ;<br />

171 tpmDigestGen . doFinal ( AppDataFile , ( short ) 0 , ( short )<br />

172 AppDataFile . length , scTPMDigestBuffer ,<br />

173 ( short ) 0) ;<br />

174 AESKey sessionKey ;<br />

175 byte [ ] tempDebugSessionKey = JCSystem . makeTransientByteArray (<br />

176 ( short ) 16 , JCSystem .MEMORY_TYPE_TRANSIENT_DESELECT) ;<br />

177 sessionKey = (AESKey) KeyBuilder . buildKey ( KeyBuilder .TYPE_AES,<br />

178 KeyBuilder .LENGTH_AES_128, f a l s e ) ;<br />

179 RandomData tpmKeyGenPRNG = RandomData . g e t I n s t a n c e<br />

180 (RandomData .ALG_PSEUDO_RANDOM) ;<br />

181 tpmKeyGenPRNG . generateData ( tempDebugSessionKey , ( short ) 0 , ( short )<br />

182 tempDebugSessionKey . l e n g t h ) ;<br />

183 sessionKey . setKey ( tempDebugSessionKey , ( short ) 0) ;<br />

184 pMessage [ 0 ] = ( byte ) U t i l . arrayCopyNonAtomic ( scTPMDigestBuffer ,<br />

185 ( short ) 0 , pMessage , ( short ) 4 , ( short )<br />

186 scTPMDigestBuffer . l e n g t h ) ;<br />

187 pMessage [ 0 ] += ( byte ) sessionKey . getKey ( pMessage , ( short )<br />

188 ( pMessage [ 0 ] ) ) ;<br />

189 ClientRandomNumber [ 1 5 ] = (byte ) ( ClientRandomNumber [ 1 5 ] | (byte )<br />

376

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!