In this thesis, we investigate the problems of verifying and enforcing confidentiality on critical systems. As a confidentiality property, we consider the notion of opacity which is a very general notion modeling the absence of information flow towards inquisitive attackers. Then, we study the application to opacity properties of formal methods developed in the context of discrete event systems. In the first part, we present how some classical abstract interpretation techniques can be applied to the computation of monitors to detect confidentiality vulnerabilities. We also present how the diagnosis theory can be adapted to detect opacity violations at runtime. In the second part, we develop some new techniques to enforce the opacity propert...