Verified Security Where are we and where should we go? Paul Vines - - PowerPoint PPT Presentation

verified security
SMART_READER_LITE
LIVE PREVIEW

Verified Security Where are we and where should we go? Paul Vines - - PowerPoint PPT Presentation

Verified Security Where are we and where should we go? Paul Vines Outline 1. Overview of Existing Security Verification Projects 2. Discussion 3. The State of Side-channels 4. Conclusion Current Works Cryptographic Primitives Protocols


slide-1
SLIDE 1

Verified Security

Where are we and where should we go? Paul Vines

slide-2
SLIDE 2

Outline

1. Overview of Existing Security Verification Projects 2. Discussion 3. The State of Side-channels 4. Conclusion

slide-3
SLIDE 3

Current Works

Cryptographic Primitives Protocols (TLS) Secure Apps

slide-4
SLIDE 4

Current Works: Crypto Primitives

Tools: FCF, EasyCrypt… RSA-OAEP (EasyCrypt) -- Crypto→ Assembly HMAC (FCF) -- Crypto→ Assembly SHA256 (FCF) -- Crypto* → Assembly HMAC, SHA, RSA (Dafny) -- Functional → Assembly

slide-5
SLIDE 5

Current Works: Protocols

SSH (CryptoVerif) -- Crypto → OCaml miTLS (F7) -- Crypto → .NET

slide-6
SLIDE 6

Current Works: Full App Security

Quark (Coq) Ironclad (Dafny)

slide-7
SLIDE 7

Discussion Where should we go?

slide-8
SLIDE 8

Security Verification in 2-Phases

Cryptographic Properties Functional Specification Implementation 1 2 FCF / EasyCrypt / etc. Verifiable C / Frama-C / etc.

slide-9
SLIDE 9

Crypto Primitives: Not Worth a Retrofit

  • Difficult to capture cryptographic properties
  • Low frequency of errors
  • If it is done, the Ironclad approach of going from FIPS spec to implementation

makes more sense

  • However, we should push cryptographers to use verification-friendly tools

(such as FCF/EasyCrypt) when creating new algorithms ○ Cheapens pushing verification out to these primitives in the future ○ Grants greater assurance to algorithmic correctness (Dual EC DRBG)

slide-10
SLIDE 10

TLS: When Will The Madness End?

  • Many vulnerabilities in the past (and present…)
  • 2013 miTLS
  • 2014 Finding flaws in miTLS
  • 2015 Finding flaws in implementations except miTLS and PolarSSL
  • So, we solved it?!
slide-11
SLIDE 11

TLS is/would be a Big Win

  • TLS is the security behind all network applications most users experience
  • History of attacks suggests full concept→implementation verification

○ Vulnerabilities in both implementation and specification that had led to attacks

  • Recent history also suggests we can’t know if we’ve succeeded
  • Is miTLS good enough?
  • Does PolarSSL show verification is not getting us that much?
  • When will we get a crypto → assembly verified protocol?
slide-12
SLIDE 12

Authentication

Authentication mechanisms are also a source of significant vulnerabilities. Certificate handling is a juicy target, but also complicated by the ridiculousness of the X509 spec

slide-13
SLIDE 13

The State of Side-channels

slide-14
SLIDE 14

Side-channels, Now

  • Timing Side-channels

○ Lucky 13 ○ Secure Coding Methodologies

  • Emissions Side-channels

○ PITA attack ○ Physical space dependent

slide-15
SLIDE 15

Verifying Absence of Side-channels

  • More important to verify than correctness for crypto primitives?
  • Timing Side-channels

○ Current works extending CompCert to verify constant-time formulation of programs ○ MAC-then-Encode-then-Encrypt with Cipher-Block-Chaining (MEE-CBC) ○ Making this easier would be nice

  • Emissions Side-channels -- No Solutions So Far
slide-16
SLIDE 16

Conclusions

slide-17
SLIDE 17

What should be done

  • Develop a featureful cryptographic framework based on Coq (FCF)
  • Get Cryptographers to use it
  • Verify high-level protocols (TLS) from cryptographic properties to small-TCB

implementations (assembly)

  • Incorporate more esoteric security needs (constant time execution) into

implementation verification

slide-18
SLIDE 18

?

slide-19
SLIDE 19

Retrofitting vs. Rebuilding

Retrofit by creating verified versions of existing protocols Or Rebuild by creating and verifying new protocols and include fallback options for compatibility Retrofitting is the way forward

  • Allows a verified version of security software to be adopted gradually and at

low-cost to the user. Retrofitting also avoids the risk of eliminating spec-level bug-features