Je te recommande tellement fort d'utiliser git. C'est clairement le top.
Tu te fais des fichiers markdown et tu mets ça sur un GitHub ou autre équivalent, et tu as :
- Des recettes versionnées ou tu peux voir les changements (pratique pour faire des tests et garder une trace).
- Un système modifiable en cli ou via une interface depuis le site.
- Une consultation depuis n'importe où et n'importe quel équipement connecté à internet.
- Un système sauvegardé et répliqué pour ne jamais perdre une recette.
Clairement je te déconseille scaleway, leurs prix ont beaucoup augmenté, j'ai du des soucis avec eux sur un VPS leur service client a été lamentable (et après avoir cherché un peu je suis loin d'être le premier à avoir eu le problème).
Spécifiquement le souci venait de leur changement de techno sur le boot, au passage de ce changement de techno qui rendait soit disant les anciens abonnements vps (moins chers) incompatibles, ils en ont profité pour imposer le passage aux nouveaux VPS (bien plus chers).
Raison technique d'après eux, l'ancien système ne pouvait pas être gardé avec la nouvelle technologie. Ok, ça peuyse comprendre. Sauf que un de leur client a fini par faire un post sur leur forum expliquant en détails comment prendre les anciens abonnements et les reconfigurer soit même pour les faire marcher avec la nouvelle technologie de boot…
Bref, pour moi scaleway c'était bien, aujourd'hui j'y toucherai pas avec un bâton…
Tl;DR : la loi permet à la police de casser ta porte et de fouiller ta maison après décision de justice. Elle ne t'oblige pas à donner les clés ou à ouvrir la porte toi même. De la même façon que la loi permet à la police d'exploiter des failles de sécurité ou de tenter de craquer tes clés de chiffrement, mais qu'elle ne devrait pas t'obliger à donner toi même tes clés.
PS : Et le fait qu'un sondage donnerait un résultat où les gens seraient plutôt d'accord avec un abus n'est pas une preuve que cet abus soit positif. D'après une étude de l'ifop de 2016, 36% des français sont favorables à la torture dans des cas "exceptionnels" et on monte à 54% si tu rajoutes un élément de type "bombe qui va bientôt exploser". Et ça c'est pour un truc aussi clairement et unanimement condamné en tant normal que la torture…
Mais justement le cas que tu décris est totalement différent !
Dans un cas il s'agit du fait que la police ai le droit de pénétrer où elle le souhaite pour saisir des éléments de preuve (et tu remarqueras d'ailleurs que ça ne se fait pas n'importe comment, mandat aux usa, commission rogatoire en France). Dans l'autre il s'agit de forcer un accusé à fournir une information qui n'est présente que dans son esprit et qui mènera potentiellement les policiers à des éléments de preuve.
L'équivalent de laisser la police entrer dans ta maison, c'est le fait que la police puisse saisir ton téléphone.
L'équivalent d'être obligé de donner le code du téléphone ça serait l'équivalent d'être obligé d'accompagner les policiers lors de la fouille et de leur pointer systématiquement tous les endroits à démonter pour trouver des preuves.
Et tu remarqueras d'ailleurs que si la loi permet aux policiers de forcer l'entrer dans ton domicile une fois les démarches légales effectuées (et donc avec le contrôle d'un juge), la loi protége les accusés en ne les obligeant pas, par exemple, à révéler aux enquêteurs l'existence d'un domicile secondaire dont les enquêteurs n'auraient pas connaissance (c'est justement le droit à garder le silence et à ne pas s'auto-incriminer). La loi prévoit également que la personne refuse la perquisition et la personne n'est pas forcée d'accepter et de coopérer. Elle n'as bien-sûr pas le droit de s'en prendre physiquement aux autorités pour l'empêcher (en raison d'autres lois), mais rien n'oblige la personne à faciliter l'action des enquêteurs et à les assister. Pourquoi ? Justement en raison du droit de ne pas s'auto-incriminer…
Juste en fait c'est booléen comme problème logique. A - les accusés ont le droit de garder le silence et de ne pas s'auto-incriminer. B - révéler le code oblige l'accusé à parler et à potentiellement s'incriminer.
A et B ne peuvent pas cohabiter, c'est un non sens logique.
Soyons clairs, je comprends bien que l'envie première du citoyen honnête et son instinct ce soit que la police ai les moyens d'obtenir les éléments de preuve nécessaire et qu'on ne facilite pas la vie des criminels. Mais si ces règles de droit et de procédure existent littéralement dans tous les pays démocratiques, c'est pas sans raisons. Ça protège justement contre les accusations à tord et les abus judiciaires, ainsi que contre les dérives par exemple sur l'atteinte aux sources journalistiques et ça participe d'un équilibre auquel la justice est tenue. C'est exactement la même logique que le fait que les perquisitions ne sont pas autorisées n'importe comment chez un avocat, un médecin ou un journaliste.
Décidément la question posée par l'auteur m'a beaucoup fait réfléchir, et plus j'y pense, plus je trouve que la bonne solution est vraiment la goutte d'époxy dans le connecteur, et que c'est probablement pile poil à la fois le moyen technique adapté à la demande initiale de l'auteur, mais aussi celle qui est, à mon avis, la plus en accord avec ses propres objectifs tel que je les ais compris à la suite des échanges.
L'énorme avantage que je vois à la technique de la goutte d'époxy, c'est que c'est simple, ça ne demande pas de contraintes particulières hors recharge par induction, et ça protège les honnêtes citoyens d'un état voyou, sans protéger les voyous d'un état honnête.
Je m'explique. Imaginons les deux situations suivantes, qui me semblent êtres celles visées par l'auteur au vu de ses messages actuels et de son histoire passée : un contrôle aux frontières ; et une garde à vue honnête mais injustifiée (oui ça arrive de faire des erreurs honnête), ou au contraire abusive ou à but politique (et oui ça existe, et oui l'expérience personnelle relatée par le passé par l'auteur en semble un très bon exemple, sérieusement je compati, ça ne m'est jamais arrivé mais je pense que ça doit être très choquant, perturbant et rageant)
Dans les deux cas l'individu "cible" peux utiliser son téléphone classique, donc réagir au besoin de bouger etc. avec une logistique minimum et sans que cela ne l'impact dans la vie quotidienne, au delà du besoins de charger par induction. Et lors de "l'événement de contrôle" (ça fait très technocratique et propre c'est sur qu'ils appellent ça comme ça), la cible pourra se conformer à la demande de déverrouiller le téléphone (en le faisant elle même), limitant ainsi les risques de dérapage et d'escalade. Et rendre malgré tout impossible l'exfiltration classique des données via les process automatisés habituels, ce qui devrait bloquer les agents sur place qui ne sont que de simples exécutants de procédures simplifiées faisant intervenir des outils complexes mais reposant sur un scénario standardisé.
En mettant en place un système qui redémarre en mode bfu en moins de temps (2-3 heures par exemple, et soyons honnêtes, nous sommes de toutes façons presque tous, hélas, incapables de ne pas déverrouiller notre téléphone pendant 2-3 heures), la cible pourra donc se conformer à toutes les demandes et quand même être certaine, vu des délais nécessaires pour trouver un technicien capable de comprendre la situation particulière et de trouver une solution, que ses données seront protégées contre une exploitation en profondeur et automatisé, y compris une copie totale pour exploitation ultérieure.
Protégeant de possible données sensibilisation, tout en laissant tous loisirs aux agents des douanes de visionner ses photos de vacances (il faut les comprendre, ces pauvres besogneux fonctionnaires, qui vivent ainsi par procuration le plaisir des vacances si longtemps attendues. Ahhh, qu'il doit être triste de contrôler chaque jour les foules bigarrées de ces badots embermudés - ça veut dire qu'ils portent des bermudas - prenant l'avion dans le terminal gris et monotone d'un Roissy pluvieux, sans jamais pouvoir soit même goûter aux joies de s'envoler vers ces îles lointaines, dont le soleil brûlant des cartes postales estampillées du cachet postal - faisant foi - est la promesse, sans cesse renouvelée, de farniente et de fruits exotiques et sauvages aux parfums suaves de fleurs fraîches , naissantes au sein d'un monde qui, encore neuf et riant, au matin de sa vie, semble tellement plus simple. Ouais, je suis poète ouais.)
Cela permet donc les procédures hélas "classiques" de douanes, tout en protégeant contre l'abus de ces procédures, et contre la pression psychologique de courte durée, mais aussi les attaques par ruse ou encore les abus durant une période de garde à vue illégitime.
Et ça ne laisse qu'une solution, les attaques destructives qui laisseront des traces permettant de prouver l'abus et le non respect de la procédure d'enquête, ce qui devrait empêcher toute poursuite contre d'éventuelles cibles obtenus illégalement (par exemple des lanceurs d'alertes et autres sources journalistiques).
Échec donc à la récolte massive et automatisé aux frontières ou aux possibles abus policier (technique au moins) lors de garde à vue/contrôles divers.
Mais dans le même temps ça ne protège pas de vrais criminels pour lesquels une procédure plus longue et légitime permettra un déverrouillage complet et un démontage en règle pour récupérer directement les composants pour une analyse poussée. Puisque autant il est absurde qu'une personne soit légalement obligée de donner son mot de passe, autant il est bien normal que l'état ai le droit de faire ce qu'il veut pour tenter de comprendre le contenu d'éléments d'enquête sur lequel il aurait légitimement et légalement mis la main, et que dans le cadre d'une procédure justifiée et correct il est donc bien normal que l'état puisse essayer de se doter de moyens de déchiffrement.
Au final avec la simple goute d'époxy anti retro-ingienerie on a donc un moyen fiable et simple de protéger un individu sensible mais honnête contre un abus d'un état sécuritaire et parfois abusif, sans pour autant protéger totalement un vrai individu criminel d'une procédure judiciaire propre et respectueuse des droits de la défense. Ce qui, je pense, est le vrai but de l'auteur et un objectif avec lequel les moules que nous sommes tous ne peuvent qu'êtres d'accord ?
Alors la amen à 100% de ce que tu dis, mais j'apporterai quand même une nuance, c'est que j'aurai tendance à dire que non ce cadre légal sur l'obligation de révéler les clés n'est absolument pas compréhensible.
Le précédent qui a justifier ça si je ne dis pas de bêtises c'est une affaire de traffic de drogue dans lequel le prévenu avait refusé de donner le code du téléphone. Sa défense a défendu ce qui avait toujours était la logique judiciaire (et qui reste la logique tout court d'ailleurs), à savoir qu'il n'y était pas obligé, puisqu'il existe dans tout état de droit et notamment en France un droit au silence basé sur le droit de ne pas s'auto-incriminer (ou pour faire classe "nemo tenetur se ipsum accusare").
Hors, l'accusation a défendu l'idée totalement absurde suivante (mais que le juge a accepter, et qui a ensuite été validé par le conseil constitutionnel, et je tiens à signaler mon mépris pour ce juge qui devait dormir pendant ses cours de droit et a visiblement autant de capacité pour juger que moi pour être chanteur lyrique) : ce n'est pas d'avoir utiliser un code sur le téléphone qui est reproché à l'accusé, mais d'avoir vendu de la drogue et d'avoir utiliser le téléphone sécurisé pour le faire. Donc donner le code n'est pas s'auto-incriminer, puisque ce n'est pas le code qui est auto-incriminant, mais les données à l'intérieur du téléphone qui sont incriminentes.
Là normalement toute personne avec un cerveau doit se rendre compte de l'absurdité du raisonnement qui devient encore plus claire si on l'a transpose à un autre élément.
Mettons que au lieu d'avoir un téléphone avec un code l'accusé ai eu un calepin avec le nom et les quantités de tous ses fournisseurs cachés à un endroit secret. La transposition de la même logique nous amène au fait que l'accusation est obligé d'indiquer l'emplacement du calepin secret aux forces de l'ordre et n'a pas le droit de refuser de le révéler et de garder le silence (ce qui donc évidemment casse son droit au silence et à ne pas s'auto-incriminer). Bah oui, après tout ce n'est pas d'avoir cacher le calepin qui lui est reproché, c'est d'avoir vendu de la drogue. Donc dire où est le calepin n'est pas incriminent, tout le monde a le droit de cacher un calepin où il veut non ? C'est pas ce qui lui est reproché. Donc il est obligé d'amener les enquêteurs sur les lieux. Que le contenu du calepin l'incrimine n'a rien à voir dans l'affaire.
Vous trouvez ça absurde ? Bah visiblement pas le juge, ni les membres du conseil constitutionnel. Probablement parce que le dit conseil est composé d'illettrés numériques finis qui ne reconnaîtraient pas un supercalculateurs d'une bouilloire à éclairage RGB. Et que donc à partir du moment où ça devient un truc numérique les règles les plus élémentaires du droit ne s'appliquent magiquement plus.
Probablement aussi parceque le conseil constitutionnel rend chaque année des jugements de plus en plus débiles comme s'ils s'efforçaient de montrer que la cours suprême de nos voisins transatlantiques n'a pas le monopole de la bêtise.
Bref, tout ça pour dire que évidemment ça bafoue le droit au silence et que la seule chose qui est compréhensible dans cette situation c'est qu'il serait grand temps de remplacer les dinausores supposés défendre le droit et la constitution par des gens capable d'utiliser une calculatrice et de résoudre un simple problème de logique sans avoir besoin de se lasser les tempes…
PS : Pour ceux qui se posent vraiment la question, dans le cas précis de l'auteur de ce journal étant donné ses anciens posts, j'aurais un peu tendance à croire qu'on est moins sur une intention discutable que sur un petit excès de zèle (et je parle d'excès de zèle uniquement parceque je pense que dans son cas le niveau d'attaque envisagé est un peu trop fort pour la cible réelle) dû à une expérience passée avec les Schtroumpfs à gyrophares. Me trompes-je bizaw ?
Je pense ne pas être le seul a effectivement me demander l'intérêt d'un tel niveau de sécurité, ou plus exactement le type d'attaquant imaginé.
Honnêtement dans toutes les théories sur le pourquoi d'un tel niveau de sécurité une seule chose me semble cohérente avec l'utilisation d'un téléphone avec OS maison, deux applications seulement, des attaquants étatique, l'utilisation d'equipements grand public, etc., c'est la création de dark phones type EncroChat…
Parceque si c'est pour n'avoir que deux applications, en dehors d'une plateforme de discussion chiffrée et d'une plateforme d'audio chiffrée, je vois mal l'intérêt d'avoir un smartphone.
J'en vois qui font les gros yeux à ceux qui sont un peu curieux des raisons d'une telle recherche, mais soyons honnêtes, au delà de la curiosité un peu voyeuriste de type "mais attends t'a prévu de faire quoi pour avoir besoin de ça", se poser la question est quand même un peu légitime. Je veux dire on parle pas d'une personne qui demande comment garder ses données privées face à un attaquant criminel/économique/idéologique même très motivé, ni même une attaque étatique globale.
Là on est clairement sur une personne qui demande comment créer une flotte d'appareils résistants à une attaque ciblée, individualisée et physique par un acteur de niveau étatique prêt à mettre des moyens humains et techniques relativement extrêmes, mais pas à recourir à la violence. Et probablement un acteur prêt à perfectionner sa technique sur plusieurs essais pour apprendre des contre-mesures employées par le fabricant du smartphone et mettre en place des attaques capables de circonvenir ces contre-mesures. Et on parle pas non plus d'une personne qui parle d'un exercice théorique, mais bien d'une personne qui nous dit qu'il a déjà un travail concret en cours sur le projet et qui est prêt à casser du matos (donc basiquement brûler des billets) pour faire des tests.
Au minimum la curiosité pousse à demander "mais t'as prévu de faire quoi pour rentrer dans ce cadre". Et la question de savoir ce que la personne va faire des informations qu'on lui donne et de notre responsabilité dans l'utilisation finale est pas est illégitime.
Si un mec dans la rue me demande le chemin de la mosquée/synagogue la plus proche, je lui file le chemin. Si un mec habillé avec un t-shirt marqué 88, un bidon d'essence à la main et un tatouage d'aigle sur le bras me demande le chemin de la mosquée/synagogue la plus proche, je pense que je vais lui répondre que je suis pas du coin…
Alors la façon dont on souhaite répondre à nos suspicions est le choix de chacun et je ne suis pas pour uncm climat de paranoïa ambiante. Mais il faudrait voir à rester courtois avec ceux qui placent le curseur à un endroit différent et je pas nier contre toute forme d'évidence le caractère "étrange" de la question.
Et puis au delà de la curiosité, il faut aussi dire que pour définir le moment où la sécurité sera suffisante il faut connaître le niveau de sophistication possible de l'attaquant. Parceque clairement si on parle d'un attaquant avancé qui a une et une seule occasion de tester et qui a une limite de temps très définie, c'est une chose. Mais si on parle d'un attaquant qui peut préparer son attaque pendant des mois, faire des tests et des analyses de composants sur plusieurs téléphones récupérés au préalables jusqu'à mener l'attaque sur la cible finale, on est pas sur le même niveau de contre-mesures.
Tout ceci étant dit, je pense que le plus simple dans le cadre d'une production en série serait effectivement de commencer par boucher le port USB avec une résine très résistante aux solvants comme la ep41s-5 qui est une résine notamment utilisée pour protéger les puces électroniques contre la rétro ingénierie. Rien n'empêche de casser le port avant de le remplir ce qui compliquera encore la tâche.
Je ne sais pas exactement comment cette résine résiste à la chaleur et au froid mais j'aurais tendance à imaginer que ça doit être assez résistant vu le domaine d'application.
Pour prévenir les attaques qui contournent le port par un branchement direct, il faudrait étudier les emplacements physiques sur le téléphone pour connaître les chemins d'attaque possible.
Je vois quatre vecteurs.
1 - Démontage normal en s'assurant de garder la batterie brancher, jusqu'à accéder au pc et aux points de soudure du port. Il suffit ensuite de souder des câbles directement sur les ports et le tour est joué. Pour répondre à cette attaque il faut choisir un téléphone ou le démontage nécessite obligatoirement de retirer la batterie. Si possibilité de démonter le téléphone sans trop de difficulté ajouter une forme de coupe circuit sur l'ouverture, qui coupe le courant, ce qui videra la mémoire. Au minimum ça ralentira l'exploitation.
2 - Démontage barbare par la face avant. Jusqu'à accéder au pc et rebelote. Là aussi même méthode que par la face arrière. Mais je pense que ça sera plus dur de trouver un téléphone modifiable facilement pour ajouter un coupe circuit lors du démontage de la face avant.
3 - Perçage direct a travers le téléphone jusqu'à l'emplacement d'une piste cuivre qui mène au contrôleur USB, pour éviter tout démontage. C'est pas forcément évident mais j'imagine qu'avec un patron et du matériel adapté il est possible de percer juste jusqu'à toucher la piste de cuivre. J'ai pas de solution parfaite mais je miserais sur le fait de choisir un téléphone avec une gravure pcb très fine et un contrôleur USB avec soudure a billes et très proche du port pour minimiser la surface de travail.
J'imagine qu'on pourrait imaginer d'ajouter sur la face avant et arrière un coupe circuit fait de deux conducteurs séparés par une couche d'isolant (par exemple des feuilles d'aluminium ou mieux un maillage en acier, séparés par une couche de kapton). Au perçage les deux conducteurs sont mis en contact et coupent la batterie.
Une autre solution qui me semble simple et intéressante est de trouver un téléphone dans lequel on puisse déplacer physiquement le pcb. On démonte, on decale aléatoirement le pcb de quelques millimètres et on le refixe. Ça oblige à utiliser un patron déplaçable et à trouver un moyen de prédire la position finale (par exemple via un scanner rayons x).
4 - Perçage de façon à viser directement les soudures du ports usb-c. Probablement encore plus compliqué à prévenir sans un démontage en profondeur.
Globalement si tu peux démonter le téléphone et accédez au pcb je pense que ça vaut vraiment le coup d'arracher purement et simplement le port usb-c (pas besoin de dessouder, une pince suffit largement) puis de combler à la résine époxy. Si tu le fais toujours sur le même type de téléphone, j'irais aussi identifier le contrôleur USB, imprimer en 3d un patron pour pouvoir répéter l'opération facilement, et foutre un coup de perceuse au moins sur la piste de data au plus prêt du composant.
Sans démontage avancé possible je miserais tout sur l'epoxy ep41s-5 dans le port. Ça laisse les autres vecteurs d'attaque mais ça limite les possibilités au mieux de ce qui est possible sans démontage.
Autre point, je m'assurerai aussi qu'aucun système de déverrouillage biométrique ne soit fonctionnel. C'est encore et toujours le moyen le plus simple d'ouvrir le téléphone d'une cible, même sans qu'elle le sache.
Pour placer un peu le point de vu duquel je parle. Je suis dev essentiellement web a l'origine et j'ai commencé avec PHP. Depuis j'ai fait un peu de tout, java, JS, python, kotlin, react, et probablement d'autres dont je ne me souviens plus, dans le lot je n'ai fait que très peu de C, car ce n'est vraiment pas le langage du web. Mais si je pouvais changer une chose dans mon parcours ca serait probablement ça.
Le contexte étant posé, je pense que le C est un bon langage pour commencer. Pas le plus facile très très très loin de là, mais sans le moindre doute un bon choix.
L'avantage si tu commences par le C c'est que tu comprendras le fond de ce qui a créé tous les languages modernes (je met de côté les langages fonctionnels qui sont complètement différents).
Si tu fais du C tu apprendras ensuite sans la moindre difficulté à faire du PHP, du python, du JS, du rust, du go. Peut importe le langage, tu devras ré apprendre l'environnement de ces languages (des syntaxes différentes, des librairies populaires, des outils spécifiques), mais sur le fond ton expérience en C sera transférable partout. C'est assez vrai pour tous les languages d'ailleurs, parceque être dev ce n'est pas juste un langage mais aussi apprendre à penser d'une façon particulière. Mais dans le cas du C on parle d'un langage suffisamment bas niveau et tellement influent dans l'histoire de la programmation que les leçons seront vraiment utilisables partout tout le temps.
Toutes les leçons que tu apprendras en C resterons avec toi pour toute ta vie de dev. Parfois utilisées directement, parfois indirectement, mais elles te permettront toujours d'avoir une idée de comment les choses fonctionnent derrière la magie des langages modernes. L'inverse n'est pas vrai…
Est-ce que le rust est mieux que le c pour éviter de faire des bêtises ? Oui. Mais justement un des intérêts de faire du c c'est de comprendre pourquoi ce sont des bêtises, les mécanismes fondamentaux et quand faire attention. Si rust a un mot clé "unsafe", c'est bien parceque parfois on a besoin de traverser en dehors des clous. Apprendre à coder en C c'est comme apprendre à un enfant pourquoi on traverse au bonhomme vert plutôt que de simplement lui dire "c'est interdit de traverser au rouge". Le jour où le feu sera en panne, il pourra toujours traverser par lui même…
Pour ce qui est des débouchés professionnels, je n'imagine pas un avenir autre que très très lointain dans lequel C ne sera plus employé et recherché. Si il y a encore des demandes aujourd'hui pour Cobol, alors je peux te garantir qu'ils y aura encore des demandes pour du C dans 30 ans. De toutes façons d'ici là tu auras appris plein d'autres langages.
Pour savoir si tu dois partir sur du C ou du C++ sans la moindre hésitation du C. Le langage est plus simple, plus clair, plus agréable, mieux construit. Oui il n'y a pas d'objets, mais pas grave, tu pourras bien apprendre l'objet dans ton prochain langage. De toutes façons c'est clairement pas en C++ que j'aimerais apprendre l'objet…
Enfin sur la question de la formation, si tu n'es pas pris à la gorge du genre "j'ai besoin d'être formé dans les 6 mois chrono sinon j'ai plus d'endroit où habiter", je commencerai par attaquer le C en autonomie. Que tu choisisses de faire ensuite une formation plus classique ou non, l'expérience accumulée sera un atout énorme. J'ai été éléve et j'ai été prof et je peux te garantir avec une certitude absolue que pour toute formation, rentrer avec 6 mois d'avance c'est sortir avec 3 ans d'avance. C'est la même différence que commencer ta vie en naissant avec un patrimoine de 10 millions et des parents hauts fonctionnaires vs naître avec un patrimoine de 10€ et trois kit Kat fondus avec des parents ouvriers à la chaîne. Tu peux réussir dans les deux cas, mais dans le premier faudra vraiment essayer très fort pour rater…
Tu trouveras de nombreux contenus en ligne, openclassroom a toujours été un assez bon site, mais il existe une foule d'autres options, surtout si l'anglais ne te fais pas peur.
En matière de C le livre qui fait autorité est le K&R, ce sont les créateurs du langage C et ce livre est considéré comme la bible pour comprendre le fonctionnement de C.
J'aurais aussi fort tendance à recommander le livre "l'art du beau code", avec une mention spéciale pour la notion de early return.
Enfin il existe une solution à ne pas négliger si tu habites dans une grande vill et que tu as 125€ de budget, les universités publiques sont accessibles aux auditeurs libres.
Si je devais apprendre le C aujourd'hui je ferai comme ça :
- Commencer par un tuto en ligne style open classroom, en faisant un petit projet en parallèle pour appliquer les leçons apprises (faire des trucs au fur et à mesure qu'on apprend c'est essentiel, capital, nécessaire, obligatoire, irremplaçable, ornithorynque.
- Puis le K&R, pour comprendre en profondeur et voir l'avis de deux mecs qui sont quand même des monstres légendaires de la programmation et de l'informatique en général. Avec un deuxième projet en parallèle.
- Je finirait en m'inscrivant en auditeur libre pour les cours sur la sécurité en C dans une université. Vraiment spécifiquement la question de la sécurité et des bonnes pratiques en C.
Honnêtement en suivant ça tu devrais déjà sortir avec des bases plus solides que 95% des diplômés sortis d'école…
Après il ne restera plus qu'à faire un autre langage pour apprendre l'objet. Je dirais bien PHP + symfony le langage a un modèle objet assez classique à la différence de JS ou Python. Et ça te donnera les outils pour faire du web.
# GitHub (ou alternative libre)
Posté par Ajani . En réponse au message Logiciel de recettes. Évalué à 3.
Je te recommande tellement fort d'utiliser git. C'est clairement le top.
Tu te fais des fichiers markdown et tu mets ça sur un GitHub ou autre équivalent, et tu as :
- Des recettes versionnées ou tu peux voir les changements (pratique pour faire des tests et garder une trace).
- Un système modifiable en cli ou via une interface depuis le site.
- Une consultation depuis n'importe où et n'importe quel équipement connecté à internet.
- Un système sauvegardé et répliqué pour ne jamais perdre une recette.
# Pas scaleway...
Posté par Ajani . En réponse au message Cherche hébergeur pour VPS, avec quelques besoins spécifiques. Évalué à 2.
Clairement je te déconseille scaleway, leurs prix ont beaucoup augmenté, j'ai du des soucis avec eux sur un VPS leur service client a été lamentable (et après avoir cherché un peu je suis loin d'être le premier à avoir eu le problème).
Spécifiquement le souci venait de leur changement de techno sur le boot, au passage de ce changement de techno qui rendait soit disant les anciens abonnements vps (moins chers) incompatibles, ils en ont profité pour imposer le passage aux nouveaux VPS (bien plus chers).
Raison technique d'après eux, l'ancien système ne pouvait pas être gardé avec la nouvelle technologie. Ok, ça peuyse comprendre. Sauf que un de leur client a fini par faire un post sur leur forum expliquant en détails comment prendre les anciens abonnements et les reconfigurer soit même pour les faire marcher avec la nouvelle technologie de boot…
Bref, pour moi scaleway c'était bien, aujourd'hui j'y toucherai pas avec un bâton…
[^] # Re: on se dit la vérité, c'est pour un darkphone ?
Posté par Ajani . En réponse au journal Sécurisation du port USB-C sur smartphone pour moules barbares. Évalué à 1.
Tl;DR : la loi permet à la police de casser ta porte et de fouiller ta maison après décision de justice. Elle ne t'oblige pas à donner les clés ou à ouvrir la porte toi même. De la même façon que la loi permet à la police d'exploiter des failles de sécurité ou de tenter de craquer tes clés de chiffrement, mais qu'elle ne devrait pas t'obliger à donner toi même tes clés.
PS : Et le fait qu'un sondage donnerait un résultat où les gens seraient plutôt d'accord avec un abus n'est pas une preuve que cet abus soit positif. D'après une étude de l'ifop de 2016, 36% des français sont favorables à la torture dans des cas "exceptionnels" et on monte à 54% si tu rajoutes un élément de type "bombe qui va bientôt exploser". Et ça c'est pour un truc aussi clairement et unanimement condamné en tant normal que la torture…
[^] # Re: on se dit la vérité, c'est pour un darkphone ?
Posté par Ajani . En réponse au journal Sécurisation du port USB-C sur smartphone pour moules barbares. Évalué à 1.
Mais justement le cas que tu décris est totalement différent !
Dans un cas il s'agit du fait que la police ai le droit de pénétrer où elle le souhaite pour saisir des éléments de preuve (et tu remarqueras d'ailleurs que ça ne se fait pas n'importe comment, mandat aux usa, commission rogatoire en France). Dans l'autre il s'agit de forcer un accusé à fournir une information qui n'est présente que dans son esprit et qui mènera potentiellement les policiers à des éléments de preuve.
L'équivalent de laisser la police entrer dans ta maison, c'est le fait que la police puisse saisir ton téléphone.
L'équivalent d'être obligé de donner le code du téléphone ça serait l'équivalent d'être obligé d'accompagner les policiers lors de la fouille et de leur pointer systématiquement tous les endroits à démonter pour trouver des preuves.
Et tu remarqueras d'ailleurs que si la loi permet aux policiers de forcer l'entrer dans ton domicile une fois les démarches légales effectuées (et donc avec le contrôle d'un juge), la loi protége les accusés en ne les obligeant pas, par exemple, à révéler aux enquêteurs l'existence d'un domicile secondaire dont les enquêteurs n'auraient pas connaissance (c'est justement le droit à garder le silence et à ne pas s'auto-incriminer). La loi prévoit également que la personne refuse la perquisition et la personne n'est pas forcée d'accepter et de coopérer. Elle n'as bien-sûr pas le droit de s'en prendre physiquement aux autorités pour l'empêcher (en raison d'autres lois), mais rien n'oblige la personne à faciliter l'action des enquêteurs et à les assister. Pourquoi ? Justement en raison du droit de ne pas s'auto-incriminer…
Juste en fait c'est booléen comme problème logique. A - les accusés ont le droit de garder le silence et de ne pas s'auto-incriminer. B - révéler le code oblige l'accusé à parler et à potentiellement s'incriminer.
A et B ne peuvent pas cohabiter, c'est un non sens logique.
Soyons clairs, je comprends bien que l'envie première du citoyen honnête et son instinct ce soit que la police ai les moyens d'obtenir les éléments de preuve nécessaire et qu'on ne facilite pas la vie des criminels. Mais si ces règles de droit et de procédure existent littéralement dans tous les pays démocratiques, c'est pas sans raisons. Ça protège justement contre les accusations à tord et les abus judiciaires, ainsi que contre les dérives par exemple sur l'atteinte aux sources journalistiques et ça participe d'un équilibre auquel la justice est tenue. C'est exactement la même logique que le fait que les perquisitions ne sont pas autorisées n'importe comment chez un avocat, un médecin ou un journaliste.
# TLDR ; L'epoxy anti retro-ingienerie c'est nickel et c'est pas pour les voyous
Posté par Ajani . En réponse au journal Sécurisation du port USB-C sur smartphone pour moules barbares. Évalué à 3.
Décidément la question posée par l'auteur m'a beaucoup fait réfléchir, et plus j'y pense, plus je trouve que la bonne solution est vraiment la goutte d'époxy dans le connecteur, et que c'est probablement pile poil à la fois le moyen technique adapté à la demande initiale de l'auteur, mais aussi celle qui est, à mon avis, la plus en accord avec ses propres objectifs tel que je les ais compris à la suite des échanges.
L'énorme avantage que je vois à la technique de la goutte d'époxy, c'est que c'est simple, ça ne demande pas de contraintes particulières hors recharge par induction, et ça protège les honnêtes citoyens d'un état voyou, sans protéger les voyous d'un état honnête.
Je m'explique. Imaginons les deux situations suivantes, qui me semblent êtres celles visées par l'auteur au vu de ses messages actuels et de son histoire passée : un contrôle aux frontières ; et une garde à vue honnête mais injustifiée (oui ça arrive de faire des erreurs honnête), ou au contraire abusive ou à but politique (et oui ça existe, et oui l'expérience personnelle relatée par le passé par l'auteur en semble un très bon exemple, sérieusement je compati, ça ne m'est jamais arrivé mais je pense que ça doit être très choquant, perturbant et rageant)
Dans les deux cas l'individu "cible" peux utiliser son téléphone classique, donc réagir au besoin de bouger etc. avec une logistique minimum et sans que cela ne l'impact dans la vie quotidienne, au delà du besoins de charger par induction. Et lors de "l'événement de contrôle" (ça fait très technocratique et propre c'est sur qu'ils appellent ça comme ça), la cible pourra se conformer à la demande de déverrouiller le téléphone (en le faisant elle même), limitant ainsi les risques de dérapage et d'escalade. Et rendre malgré tout impossible l'exfiltration classique des données via les process automatisés habituels, ce qui devrait bloquer les agents sur place qui ne sont que de simples exécutants de procédures simplifiées faisant intervenir des outils complexes mais reposant sur un scénario standardisé.
En mettant en place un système qui redémarre en mode bfu en moins de temps (2-3 heures par exemple, et soyons honnêtes, nous sommes de toutes façons presque tous, hélas, incapables de ne pas déverrouiller notre téléphone pendant 2-3 heures), la cible pourra donc se conformer à toutes les demandes et quand même être certaine, vu des délais nécessaires pour trouver un technicien capable de comprendre la situation particulière et de trouver une solution, que ses données seront protégées contre une exploitation en profondeur et automatisé, y compris une copie totale pour exploitation ultérieure.
Protégeant de possible données sensibilisation, tout en laissant tous loisirs aux agents des douanes de visionner ses photos de vacances (il faut les comprendre, ces pauvres besogneux fonctionnaires, qui vivent ainsi par procuration le plaisir des vacances si longtemps attendues. Ahhh, qu'il doit être triste de contrôler chaque jour les foules bigarrées de ces badots embermudés - ça veut dire qu'ils portent des bermudas - prenant l'avion dans le terminal gris et monotone d'un Roissy pluvieux, sans jamais pouvoir soit même goûter aux joies de s'envoler vers ces îles lointaines, dont le soleil brûlant des cartes postales estampillées du cachet postal - faisant foi - est la promesse, sans cesse renouvelée, de farniente et de fruits exotiques et sauvages aux parfums suaves de fleurs fraîches , naissantes au sein d'un monde qui, encore neuf et riant, au matin de sa vie, semble tellement plus simple. Ouais, je suis poète ouais.)
Cela permet donc les procédures hélas "classiques" de douanes, tout en protégeant contre l'abus de ces procédures, et contre la pression psychologique de courte durée, mais aussi les attaques par ruse ou encore les abus durant une période de garde à vue illégitime.
Et ça ne laisse qu'une solution, les attaques destructives qui laisseront des traces permettant de prouver l'abus et le non respect de la procédure d'enquête, ce qui devrait empêcher toute poursuite contre d'éventuelles cibles obtenus illégalement (par exemple des lanceurs d'alertes et autres sources journalistiques).
Échec donc à la récolte massive et automatisé aux frontières ou aux possibles abus policier (technique au moins) lors de garde à vue/contrôles divers.
Mais dans le même temps ça ne protège pas de vrais criminels pour lesquels une procédure plus longue et légitime permettra un déverrouillage complet et un démontage en règle pour récupérer directement les composants pour une analyse poussée. Puisque autant il est absurde qu'une personne soit légalement obligée de donner son mot de passe, autant il est bien normal que l'état ai le droit de faire ce qu'il veut pour tenter de comprendre le contenu d'éléments d'enquête sur lequel il aurait légitimement et légalement mis la main, et que dans le cadre d'une procédure justifiée et correct il est donc bien normal que l'état puisse essayer de se doter de moyens de déchiffrement.
Au final avec la simple goute d'époxy anti retro-ingienerie on a donc un moyen fiable et simple de protéger un individu sensible mais honnête contre un abus d'un état sécuritaire et parfois abusif, sans pour autant protéger totalement un vrai individu criminel d'une procédure judiciaire propre et respectueuse des droits de la défense. Ce qui, je pense, est le vrai but de l'auteur et un objectif avec lequel les moules que nous sommes tous ne peuvent qu'êtres d'accord ?
[^] # Re: on se dit la vérité, c'est pour un darkphone ?
Posté par Ajani . En réponse au journal Sécurisation du port USB-C sur smartphone pour moules barbares. Évalué à 1.
Alors la amen à 100% de ce que tu dis, mais j'apporterai quand même une nuance, c'est que j'aurai tendance à dire que non ce cadre légal sur l'obligation de révéler les clés n'est absolument pas compréhensible.
Le précédent qui a justifier ça si je ne dis pas de bêtises c'est une affaire de traffic de drogue dans lequel le prévenu avait refusé de donner le code du téléphone. Sa défense a défendu ce qui avait toujours était la logique judiciaire (et qui reste la logique tout court d'ailleurs), à savoir qu'il n'y était pas obligé, puisqu'il existe dans tout état de droit et notamment en France un droit au silence basé sur le droit de ne pas s'auto-incriminer (ou pour faire classe "nemo tenetur se ipsum accusare").
Hors, l'accusation a défendu l'idée totalement absurde suivante (mais que le juge a accepter, et qui a ensuite été validé par le conseil constitutionnel, et je tiens à signaler mon mépris pour ce juge qui devait dormir pendant ses cours de droit et a visiblement autant de capacité pour juger que moi pour être chanteur lyrique) : ce n'est pas d'avoir utiliser un code sur le téléphone qui est reproché à l'accusé, mais d'avoir vendu de la drogue et d'avoir utiliser le téléphone sécurisé pour le faire. Donc donner le code n'est pas s'auto-incriminer, puisque ce n'est pas le code qui est auto-incriminant, mais les données à l'intérieur du téléphone qui sont incriminentes.
Là normalement toute personne avec un cerveau doit se rendre compte de l'absurdité du raisonnement qui devient encore plus claire si on l'a transpose à un autre élément.
Mettons que au lieu d'avoir un téléphone avec un code l'accusé ai eu un calepin avec le nom et les quantités de tous ses fournisseurs cachés à un endroit secret. La transposition de la même logique nous amène au fait que l'accusation est obligé d'indiquer l'emplacement du calepin secret aux forces de l'ordre et n'a pas le droit de refuser de le révéler et de garder le silence (ce qui donc évidemment casse son droit au silence et à ne pas s'auto-incriminer). Bah oui, après tout ce n'est pas d'avoir cacher le calepin qui lui est reproché, c'est d'avoir vendu de la drogue. Donc dire où est le calepin n'est pas incriminent, tout le monde a le droit de cacher un calepin où il veut non ? C'est pas ce qui lui est reproché. Donc il est obligé d'amener les enquêteurs sur les lieux. Que le contenu du calepin l'incrimine n'a rien à voir dans l'affaire.
Vous trouvez ça absurde ? Bah visiblement pas le juge, ni les membres du conseil constitutionnel. Probablement parce que le dit conseil est composé d'illettrés numériques finis qui ne reconnaîtraient pas un supercalculateurs d'une bouilloire à éclairage RGB. Et que donc à partir du moment où ça devient un truc numérique les règles les plus élémentaires du droit ne s'appliquent magiquement plus.
Probablement aussi parceque le conseil constitutionnel rend chaque année des jugements de plus en plus débiles comme s'ils s'efforçaient de montrer que la cours suprême de nos voisins transatlantiques n'a pas le monopole de la bêtise.
Bref, tout ça pour dire que évidemment ça bafoue le droit au silence et que la seule chose qui est compréhensible dans cette situation c'est qu'il serait grand temps de remplacer les dinausores supposés défendre le droit et la constitution par des gens capable d'utiliser une calculatrice et de résoudre un simple problème de logique sans avoir besoin de se lasser les tempes…
[^] # Re: on se dit la vérité, c'est pour un darkphone ?
Posté par Ajani . En réponse au journal Sécurisation du port USB-C sur smartphone pour moules barbares. Évalué à 1.
PS : Pour ceux qui se posent vraiment la question, dans le cas précis de l'auteur de ce journal étant donné ses anciens posts, j'aurais un peu tendance à croire qu'on est moins sur une intention discutable que sur un petit excès de zèle (et je parle d'excès de zèle uniquement parceque je pense que dans son cas le niveau d'attaque envisagé est un peu trop fort pour la cible réelle) dû à une expérience passée avec les Schtroumpfs à gyrophares. Me trompes-je bizaw ?
# on se dit la vérité, c'est pour un darkphone ?
Posté par Ajani . En réponse au journal Sécurisation du port USB-C sur smartphone pour moules barbares. Évalué à 6.
Je pense ne pas être le seul a effectivement me demander l'intérêt d'un tel niveau de sécurité, ou plus exactement le type d'attaquant imaginé.
Honnêtement dans toutes les théories sur le pourquoi d'un tel niveau de sécurité une seule chose me semble cohérente avec l'utilisation d'un téléphone avec OS maison, deux applications seulement, des attaquants étatique, l'utilisation d'equipements grand public, etc., c'est la création de dark phones type EncroChat…
Parceque si c'est pour n'avoir que deux applications, en dehors d'une plateforme de discussion chiffrée et d'une plateforme d'audio chiffrée, je vois mal l'intérêt d'avoir un smartphone.
J'en vois qui font les gros yeux à ceux qui sont un peu curieux des raisons d'une telle recherche, mais soyons honnêtes, au delà de la curiosité un peu voyeuriste de type "mais attends t'a prévu de faire quoi pour avoir besoin de ça", se poser la question est quand même un peu légitime. Je veux dire on parle pas d'une personne qui demande comment garder ses données privées face à un attaquant criminel/économique/idéologique même très motivé, ni même une attaque étatique globale.
Là on est clairement sur une personne qui demande comment créer une flotte d'appareils résistants à une attaque ciblée, individualisée et physique par un acteur de niveau étatique prêt à mettre des moyens humains et techniques relativement extrêmes, mais pas à recourir à la violence. Et probablement un acteur prêt à perfectionner sa technique sur plusieurs essais pour apprendre des contre-mesures employées par le fabricant du smartphone et mettre en place des attaques capables de circonvenir ces contre-mesures. Et on parle pas non plus d'une personne qui parle d'un exercice théorique, mais bien d'une personne qui nous dit qu'il a déjà un travail concret en cours sur le projet et qui est prêt à casser du matos (donc basiquement brûler des billets) pour faire des tests.
Au minimum la curiosité pousse à demander "mais t'as prévu de faire quoi pour rentrer dans ce cadre". Et la question de savoir ce que la personne va faire des informations qu'on lui donne et de notre responsabilité dans l'utilisation finale est pas est illégitime.
Si un mec dans la rue me demande le chemin de la mosquée/synagogue la plus proche, je lui file le chemin. Si un mec habillé avec un t-shirt marqué 88, un bidon d'essence à la main et un tatouage d'aigle sur le bras me demande le chemin de la mosquée/synagogue la plus proche, je pense que je vais lui répondre que je suis pas du coin…
Alors la façon dont on souhaite répondre à nos suspicions est le choix de chacun et je ne suis pas pour uncm climat de paranoïa ambiante. Mais il faudrait voir à rester courtois avec ceux qui placent le curseur à un endroit différent et je pas nier contre toute forme d'évidence le caractère "étrange" de la question.
Et puis au delà de la curiosité, il faut aussi dire que pour définir le moment où la sécurité sera suffisante il faut connaître le niveau de sophistication possible de l'attaquant. Parceque clairement si on parle d'un attaquant avancé qui a une et une seule occasion de tester et qui a une limite de temps très définie, c'est une chose. Mais si on parle d'un attaquant qui peut préparer son attaque pendant des mois, faire des tests et des analyses de composants sur plusieurs téléphones récupérés au préalables jusqu'à mener l'attaque sur la cible finale, on est pas sur le même niveau de contre-mesures.
Tout ceci étant dit, je pense que le plus simple dans le cadre d'une production en série serait effectivement de commencer par boucher le port USB avec une résine très résistante aux solvants comme la ep41s-5 qui est une résine notamment utilisée pour protéger les puces électroniques contre la rétro ingénierie. Rien n'empêche de casser le port avant de le remplir ce qui compliquera encore la tâche.
Je ne sais pas exactement comment cette résine résiste à la chaleur et au froid mais j'aurais tendance à imaginer que ça doit être assez résistant vu le domaine d'application.
Pour prévenir les attaques qui contournent le port par un branchement direct, il faudrait étudier les emplacements physiques sur le téléphone pour connaître les chemins d'attaque possible.
Je vois quatre vecteurs.
1 - Démontage normal en s'assurant de garder la batterie brancher, jusqu'à accéder au pc et aux points de soudure du port. Il suffit ensuite de souder des câbles directement sur les ports et le tour est joué. Pour répondre à cette attaque il faut choisir un téléphone ou le démontage nécessite obligatoirement de retirer la batterie. Si possibilité de démonter le téléphone sans trop de difficulté ajouter une forme de coupe circuit sur l'ouverture, qui coupe le courant, ce qui videra la mémoire. Au minimum ça ralentira l'exploitation.
2 - Démontage barbare par la face avant. Jusqu'à accéder au pc et rebelote. Là aussi même méthode que par la face arrière. Mais je pense que ça sera plus dur de trouver un téléphone modifiable facilement pour ajouter un coupe circuit lors du démontage de la face avant.
3 - Perçage direct a travers le téléphone jusqu'à l'emplacement d'une piste cuivre qui mène au contrôleur USB, pour éviter tout démontage. C'est pas forcément évident mais j'imagine qu'avec un patron et du matériel adapté il est possible de percer juste jusqu'à toucher la piste de cuivre. J'ai pas de solution parfaite mais je miserais sur le fait de choisir un téléphone avec une gravure pcb très fine et un contrôleur USB avec soudure a billes et très proche du port pour minimiser la surface de travail.
J'imagine qu'on pourrait imaginer d'ajouter sur la face avant et arrière un coupe circuit fait de deux conducteurs séparés par une couche d'isolant (par exemple des feuilles d'aluminium ou mieux un maillage en acier, séparés par une couche de kapton). Au perçage les deux conducteurs sont mis en contact et coupent la batterie.
Une autre solution qui me semble simple et intéressante est de trouver un téléphone dans lequel on puisse déplacer physiquement le pcb. On démonte, on decale aléatoirement le pcb de quelques millimètres et on le refixe. Ça oblige à utiliser un patron déplaçable et à trouver un moyen de prédire la position finale (par exemple via un scanner rayons x).
4 - Perçage de façon à viser directement les soudures du ports usb-c. Probablement encore plus compliqué à prévenir sans un démontage en profondeur.
Globalement si tu peux démonter le téléphone et accédez au pcb je pense que ça vaut vraiment le coup d'arracher purement et simplement le port usb-c (pas besoin de dessouder, une pince suffit largement) puis de combler à la résine époxy. Si tu le fais toujours sur le même type de téléphone, j'irais aussi identifier le contrôleur USB, imprimer en 3d un patron pour pouvoir répéter l'opération facilement, et foutre un coup de perceuse au moins sur la piste de data au plus prêt du composant.
Sans démontage avancé possible je miserais tout sur l'epoxy ep41s-5 dans le port. Ça laisse les autres vecteurs d'attaque mais ça limite les possibilités au mieux de ce qui est possible sans démontage.
Autre point, je m'assurerai aussi qu'aucun système de déverrouillage biométrique ne soit fonctionnel. C'est encore et toujours le moyen le plus simple d'ouvrir le téléphone d'une cible, même sans qu'elle le sache.
# Purelymail ?
Posté par Ajani . En réponse au journal les emails soit-disant gratuits. Évalué à 1.
C'est pas gratuit, mais t'as regardé du côté de purelymail ? Ça me semble correspondre pas mal a tes besoins.
# Le c restera toujours le c
Posté par Ajani . En réponse au message technos cloud, rust.. Quid d'apprendre le C aujourd'hui?. Évalué à 10.
Baissez la tête, pavé en approche
Pour placer un peu le point de vu duquel je parle. Je suis dev essentiellement web a l'origine et j'ai commencé avec PHP. Depuis j'ai fait un peu de tout, java, JS, python, kotlin, react, et probablement d'autres dont je ne me souviens plus, dans le lot je n'ai fait que très peu de C, car ce n'est vraiment pas le langage du web. Mais si je pouvais changer une chose dans mon parcours ca serait probablement ça.
Le contexte étant posé, je pense que le C est un bon langage pour commencer. Pas le plus facile très très très loin de là, mais sans le moindre doute un bon choix.
L'avantage si tu commences par le C c'est que tu comprendras le fond de ce qui a créé tous les languages modernes (je met de côté les langages fonctionnels qui sont complètement différents).
Si tu fais du C tu apprendras ensuite sans la moindre difficulté à faire du PHP, du python, du JS, du rust, du go. Peut importe le langage, tu devras ré apprendre l'environnement de ces languages (des syntaxes différentes, des librairies populaires, des outils spécifiques), mais sur le fond ton expérience en C sera transférable partout. C'est assez vrai pour tous les languages d'ailleurs, parceque être dev ce n'est pas juste un langage mais aussi apprendre à penser d'une façon particulière. Mais dans le cas du C on parle d'un langage suffisamment bas niveau et tellement influent dans l'histoire de la programmation que les leçons seront vraiment utilisables partout tout le temps.
Toutes les leçons que tu apprendras en C resterons avec toi pour toute ta vie de dev. Parfois utilisées directement, parfois indirectement, mais elles te permettront toujours d'avoir une idée de comment les choses fonctionnent derrière la magie des langages modernes. L'inverse n'est pas vrai…
Est-ce que le rust est mieux que le c pour éviter de faire des bêtises ? Oui. Mais justement un des intérêts de faire du c c'est de comprendre pourquoi ce sont des bêtises, les mécanismes fondamentaux et quand faire attention. Si rust a un mot clé "unsafe", c'est bien parceque parfois on a besoin de traverser en dehors des clous. Apprendre à coder en C c'est comme apprendre à un enfant pourquoi on traverse au bonhomme vert plutôt que de simplement lui dire "c'est interdit de traverser au rouge". Le jour où le feu sera en panne, il pourra toujours traverser par lui même…
Pour ce qui est des débouchés professionnels, je n'imagine pas un avenir autre que très très lointain dans lequel C ne sera plus employé et recherché. Si il y a encore des demandes aujourd'hui pour Cobol, alors je peux te garantir qu'ils y aura encore des demandes pour du C dans 30 ans. De toutes façons d'ici là tu auras appris plein d'autres langages.
Pour savoir si tu dois partir sur du C ou du C++ sans la moindre hésitation du C. Le langage est plus simple, plus clair, plus agréable, mieux construit. Oui il n'y a pas d'objets, mais pas grave, tu pourras bien apprendre l'objet dans ton prochain langage. De toutes façons c'est clairement pas en C++ que j'aimerais apprendre l'objet…
Enfin sur la question de la formation, si tu n'es pas pris à la gorge du genre "j'ai besoin d'être formé dans les 6 mois chrono sinon j'ai plus d'endroit où habiter", je commencerai par attaquer le C en autonomie. Que tu choisisses de faire ensuite une formation plus classique ou non, l'expérience accumulée sera un atout énorme. J'ai été éléve et j'ai été prof et je peux te garantir avec une certitude absolue que pour toute formation, rentrer avec 6 mois d'avance c'est sortir avec 3 ans d'avance. C'est la même différence que commencer ta vie en naissant avec un patrimoine de 10 millions et des parents hauts fonctionnaires vs naître avec un patrimoine de 10€ et trois kit Kat fondus avec des parents ouvriers à la chaîne. Tu peux réussir dans les deux cas, mais dans le premier faudra vraiment essayer très fort pour rater…
Tu trouveras de nombreux contenus en ligne, openclassroom a toujours été un assez bon site, mais il existe une foule d'autres options, surtout si l'anglais ne te fais pas peur.
En matière de C le livre qui fait autorité est le K&R, ce sont les créateurs du langage C et ce livre est considéré comme la bible pour comprendre le fonctionnement de C.
J'aurais aussi fort tendance à recommander le livre "l'art du beau code", avec une mention spéciale pour la notion de early return.
Enfin il existe une solution à ne pas négliger si tu habites dans une grande vill et que tu as 125€ de budget, les universités publiques sont accessibles aux auditeurs libres.
Si je devais apprendre le C aujourd'hui je ferai comme ça :
- Commencer par un tuto en ligne style open classroom, en faisant un petit projet en parallèle pour appliquer les leçons apprises (faire des trucs au fur et à mesure qu'on apprend c'est essentiel, capital, nécessaire, obligatoire, irremplaçable, ornithorynque.
- Puis le K&R, pour comprendre en profondeur et voir l'avis de deux mecs qui sont quand même des monstres légendaires de la programmation et de l'informatique en général. Avec un deuxième projet en parallèle.
- Je finirait en m'inscrivant en auditeur libre pour les cours sur la sécurité en C dans une université. Vraiment spécifiquement la question de la sécurité et des bonnes pratiques en C.
Honnêtement en suivant ça tu devrais déjà sortir avec des bases plus solides que 95% des diplômés sortis d'école…
Après il ne restera plus qu'à faire un autre langage pour apprendre l'objet. Je dirais bien PHP + symfony le langage a un modèle objet assez classique à la différence de JS ou Python. Et ça te donnera les outils pour faire du web.
My 2 cents.