..
Depuis son introduction, Java a réservé un rôle important dans les questions de sécurité. Bien que des résultats mitigés, les concepteurs ont cherché à fournir des systèmes de sécurité de la plateforme en œuvre directement en termes de langue, disponible pour les développeurs.
Dans un processus continu d'évolution et le raffinement de la JVM est devenue l'une des infrastructures les plus importantes pour les stand-alone, web, mobile et plus, dans cet article nous allons nous concentrer sur l'évolution du modèle de sécurité, communément appelé un bac à sable, en commentant le les erreurs de conception et de la situation actuelle.
Cet article s'adresse à tous, qu'ils soient programmeurs Java expérimentés qui jeûne tout les lecteurs de la rubrique. Certaines considérations seront plus compréhensibles pour ceux qui possèdent déjà une certaine expérience avec cette langue, cependant, la lecture de cet article est approprié pour n'importe quel lecteur.
Le modèle original, connu sous le bac à sable a été conçu pour confiner code potentiellement malveillant dans un environnement isolé et très restrictives. Java depuis sa naissance, a été fortement orientée vers le réseau et cette considération a conduit à concevoir un modèle d'exécution dans lequel le code a été téléchargé directement à partir de la télécommande, ce qui expose le client à des problèmes de sécurité importants.
Dans sa mise en œuvre d'abord, représenté schématiquement à la figure, le bac à sable que grossièrement distinguer entre code code local et à distance: le premier était pleinement accès à toutes les ressources «critiques» du système comme, par exemple, les systèmes de fichiers et de périphériques différents, du code à distance Au contraire, avaient un accès limité aux ressources, médiée par le même sandbox: applets, aujourd'hui largement disparu de la toile, j'ai été le meilleur exemple connu.

Ce modèle comprend un ensemble de mécanismes de sécurité à différents niveaux.
Tout d'abord, Java est de type sécurisé, c'est à dire il ya une relation explicite entre une variable et contrôlée et son type (entier, flottant, chaîne, etc ..).
Ceux qui ont programmé dans les langues avec basse / mi-niveau tels que C et C + + savoir combien de problèmes peuvent être évités ce contrôle: l'ensemble des conversions implicites entre les types, tels que pointeurs void entier ou booléen pour les pointeurs d'autres, qui sont caractéristiques de ces langues dans le même temps devenu la principale source d'erreurs de programmation, également engagés à la fois des débutants et des experts.
Afin de minimiser la possibilité que les développements réalisés bévues, les designers de Sun a présenté certains aspects jusque-là trouvé seulement dans une niche ou de niveau universitaire des langues telles que, par exemple, la gestion automatique de la mémoire (garbage collection) et les contrôles au moment de l'exécution mémoire (pointeurs, les éléments du tableau, etc ...).
Le deuxième niveau de protection est garantie par le compilateur et l'exécution, par la machine virtuelle. Cela garantit que le bytecode, l'assembleur de la machine virtuelle Java est exécuté avec le bon permissions d'exécution. En particulier, deux éléments clés, le SecurityManager et ClassLoader, définir un espace de nom local pour éviter les interférences entre les différentes instances de la VM et de gérer les contrôles d'accès aux ressources critiques.
Le modèle présenté est très flexible et dans la première mise à jour du JDK (version 1.1) a été introduit le concept de code de confiance pour permettre aux applications à distance, s'il est accompagné d'une signature électronique reconnue par le client, l'accès aux ressources système. La solution, décrite dans la figure suivante, est un peu plus d'un hack de l'architecture précédente et nécessitent donc une réécriture complète dans les prochaines versions.

| |
OpenOffice (ebook)
Le logiciel open-source pour la gestion du travail de bureau. À seulement 25 €. |
| |
Paint Shop Pro (Première)
Graphiques Web et la retouche photo avec Corel PSP connu. A partir de 49 €. |
| |
Visual Basic 6 (Cours)
Faire des applications de bureau avec VB6. A partir de 39 €. |