在NB-IoT模块中,非接入层和接入层分别进行加密和完整性保护,处理过程相互独立,非接入层和接入层安全性的激活都通过安全模式命令SMC来完成,且发生在鉴权之后。网络端对终端的非接入层和接入层的激活顺序是先激活非接入层的安全性,可选的,再激活接入层的安全性。
非接入层安全激活过程
非接入层NAS安全激活过程由MME发起,该过程对接入层透明,其正常流程如下图。
MME选择NAS层使用的完整性保护算法和加密算法(例如,MME根据终端上报的安全能力以及自身支持的按照优先级排序的安全算法列表进行相应的算法选择),并利用选择的算法和KAsME计算出NAS层完整性保护密钥KNASint和加密密钥KNASenc;然后向终端发送NAS安全模式命令消息,MME对这条消息进行完整性保护。这条消息中包含MME选择的NAS完整性保护算法和加密算法,当前使用的KASME密钥标识以及之前收到的终端安全能力。MME还可以通过NB-IoT模块的这条消息向终端请求IMEi。
NB-IoT模块的终端收到NAS安全模式命令消息后,验证MME返回终端安全能力是否和自己保存的信息一致,如果一致,则根据MME提供的完整性保护算法计算出NAS层完整性保护密钥,并对这条消息进行完整性验证;如果完整性校验成功,再利用MME提供的加密算法计算出加密密钥后启动对NAS消息的完整性保护和加密,并向MME返回NAS安全模式命令完成消息。如果终端收到的NAS安全模式命令消息中包含IMEi请求,则终端在返回的NAS安全模式命令完成消息包含自己的IMEi信息。
MME收到NAS安全模式命令完成消息后对其进行解密和完整性保护验证,如果验证成功,则启动下行加密。
如果终端无法正确激活非接入层安全机制,则终端执行异常流程,终端向MME发送安全模式失败消息,该消息不进行完整性保护。NB-IoT模块的非接入层安全激活的异常过程的流程如下图。