How Secure are Trusted Execution Environments?