Distributed systems today are very vulnerable to malicious attacks, either from insiders or outsiders. When an attacker controls a component of the system, he may steal some sensitive information, create some false information, or prevent legitimate users from using the system. An intrusion-tolerant distributed system is a system which is designed so that any intrusion into a part of the system will not endanger confidentiality, integrity and availability. This paper describes two such systems we are developing: an intrusion tolerance CA system and a survivable repository, which are highly resilient to both insider and outsider attacks that compromise one or more components.