Overshadow: a virtualization-based approach to retrofitting protection in commodity operating systems