Securing Multiparty Online Services via Certification of Symbolic Transactions

被引:6
作者
Chen, Eric Y. [1 ]
Chen, Shuo [2 ]
Qadeer, Shaz [2 ]
Wang, Rui [2 ]
机构
[1] Carnegie Mellon Univ, Moffett Field, CA 94035 USA
[2] Microsoft Res, Redmond, WA USA
来源
2015 IEEE SYMPOSIUM ON SECURITY AND PRIVACY SP 2015 | 2015年
关键词
multiparty protocol; symbolic transaction; CST; verification; online payment; single-sign-on;
D O I
10.1109/SP.2015.56
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
The prevalence of security flaws in multiparty online services (e.g., single-sign-on, third-party payment, etc.) calls for rigorous engineering supported by formal program verification. However, the adoption of program verification faces several hurdles in the real world: how to formally specify logic properties given that protocol specifications are often informal and vague; how to precisely model the attacker and the runtime platform; how to deal with the unbounded set of all potential transactions. We introduce Certification of Symbolic Transaction (CST), an approach to significantly lower these hurdles. CST tries to verify a protocol-independent safety property jointly defined over all parties, thus avoids the burden of individually specifying every party's property for every protocol; CST invokes static verification at runtime, i.e., it symbolically verifies every transaction on-the-fly, and thus (1) avoids the burden of modeling the attacker and the runtime platform, (2) reduces the proof obligation from considering all possible transactions to considering only the one at hand. We have applied CST on five commercially deployed applications, and show that, with only tens (or 100+) of lines of code changes per party, the original implementations are enhanced to achieve the objective of CST. Our security analysis shows that 12 out of 14 logic flaws reported in the literature will be prevented by CST. We also stress-tested CST by building a gambling system integrating four different services, for which there is no existing protocol to follow. Because transactions are symbolic and cacheable, CST has near-zero amortized runtime overhead. We make the source code of these implementations public, which are ready to be deployed for real-world uses.
引用
收藏
页码:833 / 849
页数:17
相关论文
共 28 条
[1]  
Aizatulin M, 2011, PROCEEDINGS OF THE 18TH ACM CONFERENCE ON COMPUTER & COMMUNICATIONS SECURITY (CCS 11), P331
[2]  
Akhawe D., 2010, P 23 IEEE COMP SEC F
[3]  
[Anonymous], 2013, NDSS
[4]  
[Anonymous], 2013, USENIX SECURITY
[5]  
Appel A. W., 1999, ACM CCS
[6]  
Barnett M, 2012, 7 WORKSH BYT SEM VER
[7]  
Bhargavan K., 2009, IEEE COMP SEC FDN S
[8]  
Bhargavan Karthikeyan, 2008, ACM S INF COMP COMM
[9]  
Blanchet Bruno, 2012, 1 C PRINC SEC TRUST, V7215
[10]  
Cloud Security Alliance, NOT 9 CLOUD COMP TOP