1. A communication device comprising: an executing means for executing software; a permission data storing means for storing permission data indicating permissible behavior for an application, which is a group of functions provided by execution of the software; a checking means for checking, by accessing an external device before the software is executed, whether the permission data are valid; and an execution control means for permitting said executing means to execute the software when, on the basis of a result of the check carried out by said checking means, the permission data are determined to be valid, and for not permitting said executing means to execute the software when, on the basis of the result of the check executed by said checking means, the permission data are determined to be invalid.