Hace poco pregunté aquí acerca de cómo puedo implementar Procedimiento de cifrado GSM en el código fuente de YateBTS , ya que no encontré ninguna forma de cifrar los datos entre BTS y MS por YateBTS en la red 2G. (dime si estoy equivocado y muéstrame cómo puedo hacerlo)
Encontré una forma de enviar un mensaje de Solicitud de autenticación de BTS a MS a través de la conexión MM. Los mensajes se construyen en formato XML, por ejemplo:
<MM>
<Message type="AuthenticationRequest">
<CKSN>0</CKSN>
<rand>00112233445566778899AABBCCDDEEFF</rand>
</Message>
</MM>
y en respuesta, MS devuelve la respuesta (RES) y puedo ver esto en el archivo de registro YateBTS.
<MM>
<SkipIndicator>0</SkipIndicator>
<NSD>0</NSD>
<Message type="AuthenticationResponse">
<res enc="hex">01234567</res>
</Message>
</MM>
El siguiente paso es enviar el mensaje comando de modo de cifrado desde BTS a MS. Pero el problema es que no tengo idea de cómo debería construirse este mensaje.
¿Es algo como el siguiente XML?
<MM>
<Message type="StartCiphering">
<CKSN>0</CKSN>
<rand>00112233445566778899AABBCCDDEEFF</rand>
</Message>
</MM>
Cuando envío este mensaje, MS no responde, pero MS debe devolver un valor Kc en respuesta.