A method of providing an execution environment in a mobile computing device, comprising: loading a plurality of trusted applications into a memory of an execution environment, the execution environment having memory, a processor, a file system and a network interface; designating communication associations between at least some of the trusted applications, each of the designated communication associations including a communication association between a pair of related trusted applications (150-1, 150-2; 150-1, 150-N) of said at least some of the trusted applications, and the designated communication associations including one or more communication associations between a first trusted application and one or more related trusted applications; storing the designated communication associations in an association table, the association table being accessible by a keystore application, the stored designated communication associations corresponding to a plurality of entries in the association table, each entry including a unique identifier for each of the pair of related trusted applications (150-1, 150-2) of the corresponding designed communication association; detecting, by the first trusted application, an attempt to communicate with a recipient application of the trusted applications; in response to the detection, the keystore examining the association table for an entry including the unique identifiers of the first trusted application and the recipient application; in response to determining that no entry exists in the association table including the unique identifiers of the first trusted application and the recipient application, declining to dispense, by the keystore application, a key for allowing the attempted communication; or in response to determining that an entry exists in the association table including the unique identifiers of the first trusted application and the recipient application, the keystore application: generating a key for allowing the attempted communication based on the unique identifier of the recipient application to which communication is attempted, and dispensing to the first trusted application and the recipient application the generated key; the first trusted application identifying a message for transmission to the recipient application; and the first trusted application transmitting, using the generated key, the identified message to the recipient application. loading a plurality of trusted applications into a memory of an execution environment, the execution environment having memory, a processor, a file system and a network interface; designating communication associations between at least some of the trusted applications, each of the designated communication associations including a communication association between a pair of related trusted applications (150-1, 150-2; 150-1, 150-N) of said at least some of the trusted applications, and the designated communication associations including one or more communication associations between a first trusted application and one or more related trusted applications; storing the designated communication associations in an association table, the association table being accessible by a keystore application, the stored designated communication associations corresponding to a plurality of entries in the association table, each entry including a unique identifier for each of the pair of related trusted applications (150-1, 150-2) of the corresponding designed communication association; detecting, by the first trusted application, an attempt to communicate with a recipient application of the trusted applications; in response to the detection, the keystore examining the association table for an entry including the unique identifiers of the first trusted application and the recipient application; in response to determining that no entry exists in the association table including the unique identifiers of the first trusted application and the recipient application, declining to dispense, by the keystore application, a key for allowing the attempted communication; or in response to determining that an entry exists in the association table including the unique identifiers of the first trusted application and the recipient application, the keystore application: generating a key for allowing the attempted communication based on the unique identifier of the recipient application to which communication is attempted, and dispensing to the first trusted application and the recipient application the generated key; generating a key for allowing the attempted communication based on the unique identifier of the recipient application to which communication is attempted, and dispensing to the first trusted application and the recipient application the generated key; the first trusted application identifying a message for transmission to the recipient application; and the first trusted application transmitting, using the generated key, the identified message to the recipient application.