TME de CRYPTOlogie 1 / PCFS

Cette page rassemble des informations pratiques sur le TME.

Fonctionnement

  • Lisez entièrement la FAQ ci-dessous.

  • Téléchargez puis lancez le client en python.

  • (ou bien pointez un client telnet quelconque sur l'adresse m1.tme-crypto.fr et sur le port 1337)

  • Quand vous trouverez des flags, soumettez-les dans votre espace personnel.

  • Un flag est un truc qui ressemble à ça : foobar:759:1|9e9b7a976641a637de9b850c6bbaaf36c78360d352095107798f40d29b87a887

  • ATTENTION

    Cette application a été lancée l'an dernier, et elle est encore en travaux.

    Vous risquez donc de rencontrer des bugs et/ou des choses pas tout à fait finies. Merci de faire preuve de compréhension.

    Si l'application affiche un message d'erreur : nous sommes mis au courant et nous allons régler le problème. Vous n'avez rien à faire.

    Si vous voyez des cônes de chantier, alors cette allusion aux GIF animés des débuts du web signifie que l'application de TME n'est pas encore finie à cet endroit-là. N'hésitez pas à revenir plus tard.

    Si vous percevez une autre erreur (dans la documentation, la logique des choses, ...), alors n'hésitez surtout pas à contacter le principal développeur.

Foire aux Questions

Le "client" fourni ne marche pas

C'est un bug. Merci d'ouvrir une "issue" sur ce dépot github en indiquant précisément quel est le problème et de quel OS il s'agit. En attendant que le problème soit résolu, vous pouvez utiliser un client telnet classique.

J'utilise WSL et je fais face à d'affreux bugs graphiques qui rendent le client inutilisable

Pour l'instant nous ne savons pas comment régler ce problème. En attendant, vous pouvez utiliser une machine virtuelle avec un "vrai" Linux dedans, ou bien utiliser un autre ordinateurs aux moments où c'est le plus gênant (c'est assez rare il nous semble, mais vraiment gênant quand ça arrive). Mais la vraie solution à long terme, c'est d'installer un OS raisonnable sur votre ordinateur...

eduroam bloque l'accès au site de TME

Nous n'y pouvons rien. Nous avons ouvert un ticket à ce sujet auprès de la DSI en janvier 2024.

Je ne parviens pas à me connecter depuis la PPTI

Le réseau de la PPTI est sérieusement verrouillé et bloque par défaut les flux sortants vers le port 1337. Nous avons demandé à ce qu soient autorisé vers la bonne IP dans les salles où vous avez cours. Si ça ne marche pas, merci de nous signaler le problème. En attendant, le meilleur plan B consiste à utiliser votre propre ordinateur, en passant par eduroam ou bien par le partage de connection d'un smartphone.

Où sont les questions ?

Il n'y en a pas.

Je ne comprends pas comment ça marche

Essayez la commande "aide".

Mais que faut-il faire ?!?

Trouver des flags.

Je ne trouve pas de tâche à accomplir

Essayez la commande "conseil".

Pourquoi le serveur affiche parfois des chaines incompréhensibles comme register:foobar:1|09cb5141bbb5e2666b749a3b5f899f5e43f839b858bd274b4b6310ddfdc628c1 ?

C'est un flag. Saisissez-le sur votre espace personnel pour marquer des points.

Est-ce un "Capture The Flag" ?

Ca y ressemble bien.

J'ai fait une tâche qui est censée donner un un flag mais je ne l'ai pas eu / pas saisi dans mon espace personnel...

Ce n'est pas grave. Il est Inutile de réessayer, de recréer un nouveau compte et de tout refaire depuis le début. Ce serait juste une perte de temps. Il y a un système pour récupérer les flags perdus dans le TME. Vous ne l'avez peut-être pas encore atteint, tout simplement. En cas de doute, contactez un responsable.

À propos du TME

Pourquoi faire un seul TME bizarre pendant tout le semestre ?

Parce que le système traditionnel (énoncé / rendu) nous ennuie.

Est-ce un TME ou un jeu de rôle ?

C'est un TME. Il est noté. La note de TME compte a priori pour 33% de la note de l'UE.

Le TME est-il accessible à tous les publics ?

Oui. Toutefois il faut maitriser la programmation et des techniques cryptographiques. De plus, vous devez être prévenu que le TME contient des scènes de violence non graphique envers des personnages à figure humaine. Par conséquent il n'est pas recommandé aux moins de 12 ans.

Le TME est-il faisable ?

Oui. Un script python le fait tout seul, automatiquement. CQFD.

Y a-t-il une bande-son ?

Oui. Il faut utiliser le client fourni pour en bénéficier.

Les fichiers audio contiennent-ils des informations secrètes indispensables pour le TME ?

Non. Ils n'ont pas d'autre rôle que de fournir un fond sonore.

A-t-on le droit de tricher ?

Oui. Bon courage.

Y a-t-il des bonus / secrets à découvrir / mini-games / boss fights / etc. ?

Peut-être.

Peut-on perdre / mourir ?

Disons que ça n'est pas impossible, mais dans l'hypothèse où ça vous arriverait, ce serait sans conséquence.

Peut-on être obligé de tout recommencer ?

Non.

Y a-t-il des cheat codes ?

Pas pour vous.

Y a-t-il une deadline ?

Oui : la veille du premier examen réparti (master MSI), ou du 2ème examen réparti (autres formations).

Je connais quelqu'un qui ne suit pas l'UE mais qui voudrait faire le TME...

Cette personne peut se connecter et essayer de faire le TME, comme tout le monde.

Y a-t-il un système de sauvegarde ?

Il y a un système de sauvegarde entièrement automatique.

J'ai des idées d'amélioration...

Magnifique. Contactez un responsable.

À propos du travail à réaliser

Quelle quantité de travail est-elle nécessaire pour faire le TME ?

Le TME n'est pas facile et ça va prendre du temps. Si vous attendez la dernière semaine pour vous y mettre, vous n'aurez aucune chance.

J'y ai passé beaucoup de temps et je n'ai rien réussi à faire...

C'est un peu normal. Il faut que vous vous habituiez au système. Après vous progresserez plus vite.

Les tâches sont trop dures et je suis complètement coincé...

Vous pouvez utiliser la commande "conseil". Si ça ne vous aide pas, demandez de l'aide dans votre entourage. En cas d'échec, sollicitez un responsable.

Peut-on utiliser tous les langages de programmation et outils qu'on veut ?

Oui, cependant il vous est fortement conseillé d'utiliser Python (v3.6+). En effet, python gère les (grands entiers | chaines unicode | fonctions de hachage | etc.) de façon très simple. En plus, des codes python sont fournis.

Est-ce que l'interpréteur python normal suffit pour exécuter les codes fournis ?

A priori, oui. Par contre, il faut python v3.6+. Il est recommandé d'utiliser IPython ou bpython (pour le mode texte), ou encore jupyter pour avoir des "notebooks" dans votre navigateur. Tous ces outils offrent la TAB-completion, ce qui est très pratique.

A-t-on besoin d'un ordinateur puissant ?

Non, un laptop quelconque suffit. Si une tâche demande un gros calcul, vous pouvez de toute façon l'exécuter à distance sur une machine de la PPTI.

Sous quelle plateforme peut-on faire le TME ?

A priori, il suffit d'avoir Python et OpenSSL, qui sont disponible sur toutes les plate-formes. Si vous voulez utiliser un client telnet classique à la place de celui qui est fourni :

  • Sous windows, PUTTY contient un client telnet.
  • Sous linux, la plupart des distributions doivent contenir un paquet nommé "telnet" (c'est le cas sous Debian en tout cas).
  • Sous MacOs, on peut installer un client telnet via Homebrew (brew install telnet).

Peut-on travailler en petit groupe ?

Bien sûr ! Il vous est conseillé de discuter entre vous des problèmes que vous rencontrez et des solutions que vous trouvez.

Mais, comment faire pour travailler en petits groupes avec des comptes individuels ?

Pour des raisons pratiques, vous serez évalué individuellement, sur la base de votre progression dans le TME. Du coup, vous devrez tous, individuellement, effectuer tout le TME. Rien ne vous empêche de collaborer pour écrire du code qui résoud tel ou tel problème.

Comment fonctionne l'évaluation ?

Votre note sera calculée en fonction de la quantité totale de flags obtenus. Vous devez les saisir dans votre espace personnel.

Combien de flags y a-t-il en tout ?

Ca risque de dépendre d'éventuelles modifications du TME pendant le semestre, mais en gros : pour les étudiants du master MSI, il y en a environ 20. Pour les autres, il y en a environ 40. Votre note est : [#flags] / 20 pour les étudiants du master MSI et [#flags] / 40 pour les autres.

Doit-on rendre quelque chose ?

À la fin du semestre, vous devrez soumettre le code que vous avez utilisé pour faire le TME, quel que soit l'état dans lequel il se trouve (faites un .tar.gz de votre dossier de travail et envoyez ça)

À propos du serveur

Où est hébergée l'application ?

Sur une plate-forme du LIP6, dans le campus de Jussieu.

Avec quoi est-elle programmée ?

En python, avec twisted pour la partie "telnet" et django pour la patrie web et l'ORM.

Comment est-elle déployée ?

Elle est hebergée dans une machine virtuelle qui tourne sous Debian 12. Celle-ci est automatiquement configurée avec ansible.

Quelle est la taille du code ?

Ca fluctue, mais 40K lignes est une bonne estimation.

Combien de temps de développement ?

Difficile à dire, car il y a eu une succession de versions depuis 2014, avec du recyclage, de l'expérience accumulée, etc. Mais on peut dire globalement que ça a pris beaucoup de temps.

Le protocole utilisé n'est pas sécurisé. Est-ce bien raisonnable pour une UE de cryptologie ?

Les informations vraiment importantes, elles, seront chiffrées, ne vous inquiétez pas.

Le serveur stocke-t-il des données sur moi ?

Oui. Essentiellement tout ce que vous faites et tout ce que vous tapez dans le TME. Ceci à des fins d'évaluation et d'amélioration.
Et aussi bien sûr pour construire des profils utilisateurs qui seront vendus à des agences de publicité ciblée. Comprenez, il faut bien que nous puissions subventionner nos travaux de recherche...

A-t-on un droit d'accès et de rectification aux informations stockées par le serveur ?

Même pas en rêve.

le système signale une erreur interne

C'est un bug. En principe, les responsables sont prévenus automatiquement et devraient régler le problème.

La documentation est fausse et/ou incomplète

Ça n'est malheureusement pas impossible. Merci de le signaler.

J'ai trouvé un défaut / une incohérence, mais ce n'est pas vraiment un bug...

Contactez un responsable.

Y aura-t-il des mises à jour pendant le semestre ?

C'est quasiment certain.

A-t-on le droit de tenter un (D)DOS ?

Non. Tout abus sera puni.

Je crois que j'ai trouvé un autre moyen (plus subtil) de faire planter le TME

Vous pouvez essayer. Si ça marche, vous aurez un bonus.

Le client fourni a-t-il des fonctionnalités secrètes ?

Non. Qu'est-ce qui peut vous laisser penser ça ?

Cette FAQ dit-elle la vérité ?

Oui. Sauf à la question précédente bien sûr...

Cette FAQ est incomplète et/ou trompeuse...

Contactez un responsable.

Contact

Contacter Charles Bouillaguet pour toute question, bug, problème, etc.