I will talk about type systems for authenticity and secrecy. These systems are sound, that is, well-typed protocols are robustly safe in the presence of Dolev--Yao intruders. Well-typedness can be checked quickly by an automatic type-checker, provided the protocol has been manually annotated with types. Type annotations tightly guide both the automatic type-checker and the human protocol specifier. In terms of automation, verification by type-checking is somewhere in between fully automatic verification methods and interactive theorem proving: it requires human help in the form of explicit type annotations but less help than interactive theorem proving. In contrast to many fully automatic methods, it terminates and does not impose a bound on the number of sessions.
This is an overview talk based on work that I have done with Alan Jeffrey and also previous work by Alan Jeffrey and Andy Gordon.