复制卡应用程序特定安全属性的形式化验证
1. 复制卡应用的协议概述
复制卡应用涉及到多个组件,包括复制卡、终端、攻击者和用户。其主要的操作流程有加载资金(Load)和进行复印支付(Pay)。以下是加载资金时的部分代码示例:
ULoad(value)
tmp : AuthData := create
AuthData(Constants.LOAD,passphrase,challenge,value );
hashedauth : HashedData := hash(tmp);
Load(value,hashedauth)
self.value := value;
state := EXPRESAUTH;
issued := issued +
value;
ResAuthenticate(challenge)
Authenticate()
在这个过程中,用户通过 ULoad 消息向终端插入资金,终端更新 issued 字段,并通过 Load 消息将资金信息发送给复制卡。复制卡接收消息后更新自身状态和余额。
复印支付的流程如下代码所示:
challenge := generateNonce();
state := EXPRESPAY
Pay(value,challenge)
collected := collected +
value;
ResPay(authhashed)
self.val
超级会员免费看
订阅专栏 解锁全文
9153

被折叠的 条评论
为什么被折叠?



