Site, Stats et Launcher : Histoire et Projets

Pour vos projets ne concernant pas un serveur Hellominecraft précis ou vos projets vidéos.
ORelio
Ancien Administrateur
Messages : 12582
Inscription : 28 oct. 2011, 22:06
Pseudo Minecraft : ORelio
Contact :

Re: Site, Stats et Launcher : Histoire et Projets

Messagepar ORelio » 30 janv. 2016, 18:56

Durcissement HTTPS et mise à jour du site

Je viens de travailler à nouveau sur le site, d'ailleurs il a été hors service pendant une bonne heure, je vous prie de m'en excuser, voici les explications.
Déjà, il y a le souci ci-dessus en HTTPS sur certain navigateurs qui posait problème, puis, Killer_of_Space m'indique qu'il y a des soucis au niveau du HTTPS du site.

En effet, j'avais configuré le HTTPS, il y avait le certificat, c'est super, mais je n'avais pas encore pris le temps de configurer finement les algorithmes de chiffrement.
Hors la machine virtuelle du site ayant été installée en 2012, la configuration par défaut du serveur web Apache proposait notamment des algorithmes vieux et troués (DES, RC4...) et de vieux protocoles (SSLv3).

Donc forcément, ce n'était pas très glorieux.

Image
- https://tls.imirhil.fr/https/hellominecraft.fr

Celui-ci ce concentre sur la ciphersuite (liste des algorithmes de chiffrement proposés par le site) et les protocoles (méthode d'établissement du lien chiffré avec le site).
Rien de particulier à commenter si ce n'est que des valeurs par défaut de 2012 c'est carrément la loose (en plus de rimer, ok je sors).
Donc bon, il suffit de changer la configuration en utilisant par exemple l'outil SSL Config Generator qui donne une meilleure config.

Image
- https://www.ssllabs.com/ssltest/analyze ... necraft.fr

Celui-ci était déjà plus clément, n'indiquant qu'une note de C sur la configuration par défaut d'Apache de 2012 (bon, ça méritait F aussi, mais passons ^^).
Les messages sont en revanche bien plus intéressants, passons les donc en revue un par un (pour ceux que ça intéresse... bon... allez au moins il y a Killer qui lira... se motive)

This server is vulnerable to the POODLE attack. If possible, disable SSL 3 to mitigate. Grade capped to C.

Celle-ci est plutôt simple, le protocole SSLv3 est trouvé (ordre d'apparition : SSLv1, SSLv2, SSLv3, TLS 1.0, TLS 1.1, TLS 1.2) et il suffit de bloquer tous les SSL car ils son troués.
POODLE est une attaque qui consiste à s'intercaler entre le client et le serveur, forcer un vieux SSLv3, et attaquer pour déchiffrer.
Pour l'avoir étudié, je peux quand même vous dire qu'il faut sacrément y aller pour déchiffrer quoi que ce soit, on a environ 1 chance sur 255 par requête de deviner un caractère... !
Enfin bon, quoi qu'il en soit, SSLv3 est désactivé via la propositon de SSL Config Generator, donc problème déjà résolu.

This server accepts RC4 cipher, but only with older protocol versions. Grade capped to B.

L'algorithme de chiffrement RC4 peut être déchiffré par une attaque de force brute, c'est-à-dire si on capture les données chiffrées, qu'on a du temps, et un supercalculateur.
Quoi qu'il en soit, là aussi, RC4 désactivé via la propositon de SSL Config Generator, donc problème déjà résolu.

This server supports TLS_FALLBACK_SCSV to prevent protocol downgrade attacks.

C'est une extension normée ici - non je n'ai pas lu tout le papier - qui permet d'éviter qu'un attaquant force un algorithme de chiffrement trop vieux.
Cela ne protège que TLS, pas SSLv3, et, bonne nouvelle, même en 2012, c'était déjà géré par défaut (le seul bon point de l'analyse, cool non ? :p)

This server's certificate chain is incomplete. Grade capped to B.

Celui-ci est très intéressant car il m'a permis de remarquer une erreur d'installation du certificat, ou plutôt, une omission.
En effet, détaillons comment est signé le certificat de HelloMinecraft :

Code : Tout sélectionner

DST Root CA X3 Autorité Racine | Approuve \|/ Let's Encrypt Authority X1 Autorité de certification | Vérifie \|/ HelloMinecraft.fr Certificat HTTPS du site
En HTTPS, les sites internet créent une clé publique - clé privée. La clé privée set à déchiffrer, la clé publique à chiffrer.
Cela permet au visiteur du site de générer une clé temporaire de communication - je vous épargne la négociation - et de la chiffrer pour que seul le serveur la connaisse.
Cependant, pour savoir que le certificat - comportant la clé publique - du serveur est valide et pas celui d'un imposteur, il faut le vérifier.

Le client possède donc des certificats racines, et le certificat du site est signé par la clé privée de l'autorité de certification.
Sauf que Let's Encrypt est relativement récent, tout le monde n'a donc pas nécessairement le certificat Let's Encrypt sur son poste.
Lorsque cela arrive, le site n'est pas vérifié, et cela donne l'erreur HTTPS qu'on peut voir ci-dessous, à gauche : Il ne connait pas Let's Encrypt, il ne peut pas vérifier.

Le présent message est intéressant car il précise que la chaîne de certification est incomplète, mais surtout, que je peux y faire quelque chose.
Après recherche il est en effet possible de stocker les certificats intermédiaires - ici juste celui de Let's Encrypt - et de les fournir au visiteur en plus du certificat du site.
Le certificat de l'autorité racine 'DST Root CA X3' étant quant à lui largement diffusé, le fait de fournir celui de Let's Encrypt résout le problème.

Ainsi le navigateur peut vérifier HelloMinecraft.fr juste avec le certificat de l'autorité racine car on lui fournit la preuve que l'autorité racine approuve indirectement le site :

Image -> Image

On passe de "Let's Encrypt approuve HelloMinecraft mais je ne connais pas Let's Encrypt" à "DST Root CA X3, que je connais, approuve Let's Encrypt qui approuve HelloMinecraft".

Après tous ces réglages, on passe à une note quasi parfaite :

Image

Passons donc à l'ultime message, que j'ai volontairement gardé pour la fin :

The server does not support Forward Secrecy with the reference browsers. Grade reduced to A-.

Comme dit précédemment, si on chiffre avec la clé publique et déchiffre avec la clé privée, en cas de compromission de la clé privée, on peut tout déchiffrer.
Cela veut dire qu'on peut faire une capture réseau à un instant T, puis hacker le serveur à un instant T+1 - on va supposer qu'on peut car on est la NSA - alors à T+2 on peut déchiffrer tout ce qu'on avait capturé.
Du coup, pour éviter cela, il faut en fait éviter d'utiliser l'échange de clé RSA, qui conciste à utiliser des couples clé publique / clé privée, et générer des clés temporaires par un autre moyen.

Pour cela il existe les algorithmes Diffie-Hellman (DHE) et une version utilisant les courbes elliptiques, dite Elliptic Curve cryptography (ECDHE).
Cela permet de générer des clés en parlant avec le correspondant, tout en empêchant à un tiers de deviner la clé, et sans utiliser de clé permanente sur le serveur ou le client.
Ainsi en cas de compromission du serveur on ne peut pas déchiffer des communications chiffrées que l'on aurait au préalable capturées. Elles restent protégées.

Le souci, c'est qu'avec un serveur Apache de 2012 eh bien, on ne peut pas faire cela, c'est trop vieux, et on ne peut pas l'activer.
Du coup, j'ai mis à jour la machine virtuelle hébergeant le site pour qu'elle dispose d'un système à jour et d'une version d'Apache à jour.
Cela m'a pris une heure environ, car il y avait en fait des différences à répercuter dans les fichiers de configuration, et divers pépins comme d'hab' en fait.

En plus de cela, j'avais sur le site à certains endroit, des balises PHP <? au lieu de <?php qui traînaient, et cette version plus récente de PHP ne les gère plus par défaut, j'ai dû corriger :mrgreen:

Conclusion

Après tous ces ajustements et cette mise à jour faite non sans mal, le site dispose donc d'une configuration HTTPS solide :

Image
- https://tls.imirhil.fr/https/hellominecraft.fr

Image
- https://www.ssllabs.com/ssltest/analyze ... necraft.fr

PS: Java 6 et Internet Explorer sous Windows XP ne pourront pas accéder au site en HTTPS avec de tels réglages. Je pense qu'on s'en fiche, ce serait troué de toute manière alors autant qu'ils utilisent HTTP ^^
Image
Image
__ORelio, Tonton des Eclairs - Développeur sur HM - Admin à temps partiel - Night Club - L'Hymne des modérateurs
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse Image

Killer_of_Space
Messages : 5377
Inscription : 22 sept. 2011, 17:46
Localisation : Derrière toi...

Re: Site, Stats et Launcher : Histoire et Projets

Messagepar Killer_of_Space » 30 janv. 2016, 19:39

Ah y est, j'ai tout lu !
Wahou, la prochaine fois je te signalerai pas l'erreur, tu perdra pas tout ton après-midi :mrgreen:

Pour augmenter la note de Imirhil, il suffirait de désactiver les protocoles TLSv1_1 et TLSv1, et de ne laisser uniquement le TLSv1_2, non ?
(si oui : )
Le problème se pose alors sur la compatibilité avec les machines clients qui ne supportent pas forcément le TLSv1_2 ?

ORelio
Ancien Administrateur
Messages : 12582
Inscription : 28 oct. 2011, 22:06
Pseudo Minecraft : ORelio
Contact :

Re: Site, Stats et Launcher : Histoire et Projets

Messagepar ORelio » 30 janv. 2016, 19:40

Merci d'avoir lu, ça fait plaisir de ne pas l’avoir écrit pour rien :lol:
Exactement, tu as tout compris :mrgreen: (non fallait me le dire de toute manière j'avais oublié de le faire et c'était mal)
Et oui, si j'enlevais TLS 1.0 et TLS 1.1, la non-compatibilité ne serait pas cantonnée qu'à Internet Explorer sous XP et Java 6 mais c'est pas critique, donc on a A quand même ;)
Image
Image
__ORelio, Tonton des Eclairs - Développeur sur HM - Admin à temps partiel - Night Club - L'Hymne des modérateurs
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse Image

Killer_of_Space
Messages : 5377
Inscription : 22 sept. 2011, 17:46
Localisation : Derrière toi...

Re: Site, Stats et Launcher : Histoire et Projets

Messagepar Killer_of_Space » 30 janv. 2016, 20:03

Bon eh bien tant mieux alors !

Autant ne pas perdre le peu de personnes qui nous supportent encore pour de la sécu :P
Cela dit je note que pour annoncer des problèmes d'indisponibilité mon pseudo apparaît !

Edrixal
Messages : 5436
Inscription : 24 août 2011, 22:41

Re: Site, Stats et Launcher : Histoire et Projets

Messagepar Edrixal » 30 janv. 2016, 20:53

En prime la navigation est beaucoup beaucoup beaucoup plus fluide ! C'est du tout bon :) félicitations pour le boulot !
Admin de la faction Solarys.

Si nous vous avons tout pris, dite vous que vous aurez eu le privilège de participer à la construction d'un projet qui vous dépasse ...

Vous avez besoin de po ? Il m'arrive de racheter des ressources en masse
! Aller voir ici pour plus d'information.

Romain42
Messages : 4187
Inscription : 19 juin 2011, 16:31
Pseudo Minecraft : Romain42
Localisation : Bouches-du-Rhône
Contact :

Re: Site, Stats et Launcher : Histoire et Projets

Messagepar Romain42 » 30 janv. 2016, 22:10

Si j'adore lire tes "comptes-rendu" ORelio, c'est parce que, en plus d'être totalements transparents et de tout expliquer, ils m'apprennent des choses à chaque fois !
Donc merci une fois de plus pour ces explications détaillées, ça m'a permis d'apprendre des trucs au niveau des certificats HTTPS :D

(Je connaissais déjà imirhil, c'est le site d'un certain Aeris que j'ai dans ma liste d'abonnements twitter... un grand gourou de la sécurité informatique :ugeek: )
Image
Image
Allez donc voir mon profil SensCritique !

ORelio
Ancien Administrateur
Messages : 12582
Inscription : 28 oct. 2011, 22:06
Pseudo Minecraft : ORelio
Contact :

Re: Site, Stats et Launcher : Histoire et Projets

Messagepar ORelio » 30 janv. 2016, 23:14

En prime la navigation est beaucoup beaucoup beaucoup plus fluide ! C'est du tout bon :) félicitations pour le boulot !
Eh bien, merci, ce doit être un effet secondaire des mises à jour je ne l'ai pas fait exprès mais c'est pas plus mal ma foi ^^
Si j'adore lire tes "comptes-rendu" ORelio, c'est parce que, en plus d'être totalements transparents et de tout expliquer, ils m'apprennent des choses à chaque fois !
Je me sentirais coupable d'écrire "j'ai fait des choses" sans détailler pourquoi, comment, et en quoi c'est utile pour HM, surtout quand ça interrompt le site pendant une heure.
En plus ça m'a pris une autre heure pour rédiger le post, je n'avais pas prévu d'entrer autant dans les détails en le commençant ... ben, si vous avez apprécié c'est l'essentiel :lol:
D'ailleurs pour certaines notions en particulier TLS_FALLBACK_SCSV et Forward Secrecy j'ai dû me documenter juste pour écrire le post parce qu'en pratique je n'avais pas eu besoin de savoir ce que c'était x)
(Je connaissais déjà imirhil, c'est le site d'un certain Aeris que j'ai dans ma liste d'abonnements twitter... un grand gourou de la sécurité informatique :ugeek: )
Je ne connaissais pas, pour être honnête j'ai juste suivi les deux liens de Killer_of_Space, vu que j'avais négligé de configurer correctement le HTTPS, du coup je l'ai fait ^^
Image
Image
__ORelio, Tonton des Eclairs - Développeur sur HM - Admin à temps partiel - Night Club - L'Hymne des modérateurs
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse Image

ORelio
Ancien Administrateur
Messages : 12582
Inscription : 28 oct. 2011, 22:06
Pseudo Minecraft : ORelio
Contact :

Re: Site, Stats et Launcher : Histoire et Projets

Messagepar ORelio » 31 janv. 2016, 16:34

Mise à jour : Vu que maintenant tout semble bien marcher j'ai mis le HTTPS activé par défaut sur tout le site et le forum.
En cas d'accès par un lien en HTTP il y a une redirection automatique vers la version sécurisée de la même page.

Une exception notable cependant, l'interface des votes demeure non sécurisée :

Image

J'ai mis une redirection inverse pour forcer le HTTP non sécurisé, car sinon le navigateur bloque l'interface des votes, celle-ci étant non sécurisée.
Cela sera résolu, peut être, un jour, si le propriétaire du site des votes se décide à ajouter le HTTPS sur son site.
Du coup je vous conseille de passer par une page sécurisée pour vous logguer avant de voter.

Voilà donc le site d'HM permet dorénavant une meilleure confidentialité des données transitant dessus ;)
Image
Image
__ORelio, Tonton des Eclairs - Développeur sur HM - Admin à temps partiel - Night Club - L'Hymne des modérateurs
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse Image

ORelio
Ancien Administrateur
Messages : 12582
Inscription : 28 oct. 2011, 22:06
Pseudo Minecraft : ORelio
Contact :

Re: Site, Stats et Launcher : Histoire et Projets

Messagepar ORelio » 01 févr. 2016, 19:09

Mise à jour : Pour continuer sur cette lancée sur la sécurité du site, j'ai mis à niveau le mécanisme de stockage des mots de passe.

Les mots de passe générés ingame sont désormais plus complexes, je vous invite à les changer après génération, comme pour le forum lorsque vous oubliez votre mot de passe.
A l'époque où j'avais fait le site, c'était un bête sha1(), pas terrible, cela peut compromettre le mot de passe en cas de piratage de la base de donnée et d'attaque par force brute.
Le stockage en base de données repose maintenant sur les recommandations de la documentation PHP, l'ancien étant automatiquement converti lorsque vous vous connectez.

Il y a eu des changements à quelques endroits dans le code du site, je les ai testés et vérifiés, mais comme d'habitude, prévenez-moi s'il y a un souci ^^
Image
Image
__ORelio, Tonton des Eclairs - Développeur sur HM - Admin à temps partiel - Night Club - L'Hymne des modérateurs
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse Image

ORelio
Ancien Administrateur
Messages : 12582
Inscription : 28 oct. 2011, 22:06
Pseudo Minecraft : ORelio
Contact :

Re: Site, Stats et Launcher : Histoire et Projets

Messagepar ORelio » 03 févr. 2016, 19:26

Mise à jour : Nouveau sujet, cette fois-ci la migration du power, j'ai mis à jour le plugin HM pour préparer la migration.

Celle-ci est bien plus simple que pour les PO car le power ne pouvant qu'augmenter, il est facile de le migrer au fur et à mesure vers la nouvelle base de données :

Ainsi :
- Il y a un nouveau champ pour stocker le power dans la base de données sur site, qui pour rappel, est indexée par UUID et gère donc les changements de pseudo
- Une API permet au plugin HM de lire / mettre à jour le power des joueurs sur le site afin de synchroniser les power entre les serveurs et gérer l'achat de power
- A la connexion, le power est lu depuis l'ancienne base indexée au pseudo et depuis la nouvelle via l'API, la plus grande valeur des deux étant retenue
- Si la valeur sur le site est inférieure à celle de l'ancienne base, le plugin met automatiquement à jour le power sur le site pour importer le power de l'ancienne base
- Les gains de power sur le site vont sur la nouvelle base de données uniquement
- Les achats de power vont sur la nouvelle base de données uniquement

De cette manière-ci, la migration est transparente pour vous. Je peux tranquillement importer depuis l'ancienne base tous les power des personnes qui ne se connectent pas et ne sont pas migrés automatiquement.
Une fois tous les power transférés depuis l'ancienne base de données, je pourrai supprimer le code qui lit depuis l'ancienne base de données, et le transfert sera terminé, sans avoir à faire de maintenance ;)
Image
Image
__ORelio, Tonton des Eclairs - Développeur sur HM - Admin à temps partiel - Night Club - L'Hymne des modérateurs
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse Image


Revenir à « Archives Projets »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 2 invités