// 请求设备完整性检测,并处理结果
let req : safetyDetect.SysIntegrityRequest = {
nonce : 'imEe1PCRcjGkBCAhOCh6ImADztOZ8ygxlWRs' // 从服务器生成的随机的nonce值
};
try {
hilog.info(0x0000, TAG, 'CheckSysIntegrity begin.');
const data: safetyDetect.SysIntegrityResponse = await safetyDetect.checkSysIntegrity(req);
hilog.info(0x0000, TAG, 'Succeeded in checkSysIntegrity: %{public}s', data.result);
} catch (err) {
let e: BusinessError = err as BusinessError;
hilog.error(0x0000, TAG, 'CheckSysIntegrity failed: %{public}d %{public}s', e.code, e.message);
}
请求的里面携带了nonce值imEe1PCRcjGkBCAhOCh6ImADztOZ8ygxlWRs,返回结果data.result里面也有nonce值,nonce值是防止重放攻击的,这个返回的data.result携带的nonce值不需要之前设置的nonce(imEe1PCRcjGkBCAhOCh6ImADztOZ8ygxlWRs)进行一致性判断么?
从服务器生成的随机的nonce值,在检测结果中会包含这个nonce值,可以通过校验这个nonce值来确定返回结果能够对应的请求,并且没有被重放攻击。
参考文档:系统完整性检测