Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
public:papers:primality_esorics20 [2020-07-02 15:37] – [Further research] xjancarpublic:papers:primality_esorics20 [2021-12-04 20:28] (current) – [Summarizing video] x408178
Line 11: Line 11:
  
 {{fa>bullhorn}}\_//Conference:// [[https://www.surrey.ac.uk/esorics-2020/|ESORICS 2020]] {{fa>bullhorn}}\_//Conference:// [[https://www.surrey.ac.uk/esorics-2020/|ESORICS 2020]]
 +
 +\_{{fa>id-badge}}\_\_//DOI:// [[https://doi.org/10.1007/978-3-030-59013-0_11 |10.1007/978-3-030-59013-0_11]]
 +
 </TEXT> </TEXT>
 </col> </col>
Line 17: Line 20:
 <TEXT align="right"> <TEXT align="right">
  
-<popover trigger="focus" title="Not yet available" content="Publication in progress."> +<button type="warning" icon="fa fa-file-pdf-o">[[https://crocs.fi.muni.cz/_media/publications/pdf/2020-esorics-foolingprimes.pdf|Pre-print PDF]]</button>
-<button type="warning" icon="fa fa-file-pdf-o">Pre-print PDF</button+
-</popover>+
 \_ \_
-<popover trigger="focus" title="Not yet available" content="Presentation will be added soon."> +<button icon="fa fa-file-image-o">[[https://crocs.fi.muni.cz/_media/publications/pdf/esorics2020_pseudoprimes_final.pdf |Presentation]]</button>
-<button icon="fa fa-file-image-o">Presentation</button+
-</popover>+
 \_ \_
 <button collapse="bibtex" icon="fa fa-file-code-o">BiBTeX</button> <button collapse="bibtex" icon="fa fa-file-code-o">BiBTeX</button>
Line 48: Line 47:
 ===== Further research ===== ===== Further research =====
  
-FIXME +Data, generation scripts and attack demonstrations: 
-<button type="primary" icon="fa fa-github">[[https://github.com/crocs-muni/fooling-primality-tests|github]]</button>+<button type="primary" icon="fa fa-github">[[https://github.com/crocs-muni/fooling-primality-tests|GitHub]]</button>  
 + 
 +===== Summarizing video ===== 
 + 
 +{{ youtube>Gv6ZSgGr3Qs?900x520 |Fooling primality tests on smartcards}} 
 + 
 +===== Selected conclusions ===== 
 +  * We analysed nine different smartcards from five major manufacturers and found that all but one failed to properly verify the primality of the provided ECDSA and ECDH domain parameters. Furthermore, general composites (not even pseudoprimes) were enough to fool the cards. 
 +  * Due to the unavailability of primality testing functionality in the public JavaCardAPI and the blackbox nature of the smartcards, it is hard to systematically test domain parameters for primality. We propose a methodology to do so. 
 +  * We demonstrated Pohlig-Hellman style attacks in two scenarios for ECDSA/ECDH (one of which is new) and two scenarios for DSA/DH. The attacks lead to full private key recovery, assuming the attacker has control over the domain parameters. 
 +  * Issues found were responsibly disclosed to the affected vendors, but the vulnerability is not easily mitigated for the already deployed smartcards. The code responsible for the domain parameter validation is often stored in a read only memory without the possibility for an update. In addition, the missing primality testing function in the API prevents the developer the check the parameters on-card. 
 +  * Besides allowing API primality testing, full domain parameter validation and supporting only named curves (though this limits future flexibility) should mitigate the vulnerability. On a lower level, using either Miller-Rabin with random bases or the Baillie-PSW primality test should detect all composites. 
 + 
 +===== Acknowledgements ===== 
 +J. Jancar was supported by the grant MUNI/C/1701/2018, V.Sedlacek by the Czech Science Foundation project GA2003426S and the Brno Ph.D. Talent Scholarship (funded by the Brno City Municipality). Some of the tools used and P.Svenda were supported by the CyberSec4Europe Competence Network. Computational resources were supplied by the project e-INFRA LM2018140.