MIDP has a security model based on permissions for operations that could expose vulnerabilities, like network or data access. There are predefined permissions for things like network access, messaging, and media recording. Applications are installed into protection domains based on whether they are signed, and permissions within domains have modes like blanket access or requiring user approval each time. Developers can define required and optional permissions in the JAD file to control installation and access for the application.