A Security Domain is a special kind of applet used to store another applet's cryptographic keyset(s). Each Java Card applet must be associated to a Security Domain (either its own or the default one). This association is performed at installation time and cannot be broken. If you want your applet to use its own Security Domain, you have to implement the latter yourself, i.e. implement the ProviderSecurityDomain interface defined in the visa.openplatform package.