In this session we will look in depth into what happens when we throw away the assumption that server hardware is trusted. We discuss advanced techniques for protecting software on untrusted clients and how to apply them to servers running on untrusted hardware. This includes anti-reverse engineering methods, secure key management and how to design a system for renewal.