Question:
Une infrastructure de serveur est-elle fondamentalement possible que la personne la plus intelligente ne peut pas violer?
J.Todd
2015-08-25 08:45:06 UTC
view on stackexchange narkive permalink

TL;DR:

Peut-être ai-je exagéré avec le détail de ma question, mais je voulais être sûr que la question était claire car le sujet semble très large. Mais voilà. Le mot «le plus intelligent» signifie fondamentalement, pas littéralement.

Une infrastructure de serveur est-elle fondamentalement possible que la personne la plus intelligente ne peut pas enfreindre?

Contexte:

J'ai lu des articles sur les serveurs de banques massives (ou sites de triche) compromis, et dans un article basé sur une interview avec une société de sécurité Internet intéressée par l'affaire, un spécialiste a affirmé qu'il y avait des organisations criminelles hautement qualifiées, en particulier en Chine et en Russie, qui disposent de vastes ressources, d'outils et de certains des «meilleurs» hackers au monde, et ce spécialiste a affirmé qu'il n'y avait «pas de système sur terre» (connecté au Web, bien sûr) qu'ils ne pouvaient compromettre avec les ressources dont ils disposaient.

La sécurité de l'information (serveur Web) est comme les échecs:

Je ne suis pas vraiment un joueur d'échecs, et je ne suis pas vraiment un Info Sec. expert, mais je suis un programmeur qui écrit des logiciels serveur, et cela m'intéresse. Sans tenir compte de tous les facteurs d'échecs qui pourraient annuler mon scénario, comme peut-être que la personne qui bouge en premier a un avantage ou quelque chose du genre, imaginez la sécurité de l'information comme une partie d'échecs entre deux des meilleurs joueurs d'échecs du monde.

Classique: Si vous et moi devions jouer à une partie d'échecs, celle qui possède la plus grande compétence, connaissance et intelligence concernant le jeu d'échecs gagnera.

Scénario programmé 1: Ou peut-être, si nous jouons au jeu numériquement, celui d'entre nous qui écrit le logiciel de jeu d'échecs le plus intelligent gagnera.

Scénario programmé 2: Ou, et voici la clé, il est peut-être possible pour nous tous les deux d'être si bons à la fois aux échecs et à la programmation que nous écrivons tous les deux si bien des programmes informatiques pour jouer aux échecs qu'aucun de nos programmes ne peut gagner et que le jeu se termine dans une impasse.

Considérons une infrastructure de serveur, par exemple un serveur bancaire, ou un serveur d'application qui doit communiquer avec les clients sur le Web, mais qui ne doit pas permettre aux criminels de s'introduire dans ses magasins de données.

  • La sécurité de cette infrastructure de serveur pourrait être soit comme Scénario programmé 1 , c'est-à-dire quoi qu'il arrive, celui qui a les meilleurs logiciels et les meilleures connaissances en sécurité de l'information, les personnes qui inventent les stratégies de sécurité, par exemple, auront toujours une chance de percer la défense d'une infrastructure de serveur, quelle que soit sa sécurité. Aucune défense parfaite n'est fondamentalement possible.

  • Ou cela pourrait être comme le Scénario programmé 2 , où il est fondamentalement possible de développer une infrastructure de serveur qui utilise une stratégie de sécurité qui (fondamentalement) ne peut pas être surmontée par un programme plus intelligent. Une défense parfaite est fondamentalement possible.

La question

Alors, laquelle est-ce?

Vous recherchez un équilibre bien défini dans un jeu avec une grande incertitude. Il n'y a pas d'équilibre statique ici, juste une course aux armements. Une course aux armements sans règles - tout est permis, comme l'a dit @schroeder, des barres de chocolat et des tuyaux en caoutchouc. Oh, et les femmes (ou les hommes). Le jeu est vieux, ça s'appelle la guerre.
@DeerHunter C'est acceptable. Mais sans étudier ce sujet de manière très approfondie, sans une connaissance approfondie des fondamentaux de la sécurité des serveurs, je ne pourrais pas personnellement déterminer s'il existe ou non des principes fondamentaux en jeu qui pourraient rendre possible une impasse via une stratégie de sécurité perfectionnée.
"Une infrastructure de serveur est-elle fondamentalement possible que l'homme le plus intelligent ne peut pas briser?" Oui. Malheureusement, cela signifie que quelqu'un d'autre, qui n'est pas aussi intelligent, qui ne connaît pas aussi bien la façon dont les choses sont censées fonctionner, va simplement le briser en étant stupide et en essayant des choses qu'aucune personne instruite n'envisagerait de faire parce que ce n'est pas ainsi que cela fonctionne.
@JonathanTodd Permettez-moi de vous épargner alors beaucoup d'efforts: la réponse est "non". Tant qu'il y aura des humains qui devraient pouvoir accéder aux données, il y aura une faille à exploiter pour les humains qui * ne devraient pas *.
Oui. Il existe un moyen d'empêcher la violation d'un serveur. Tout ce que vous avez à faire est de le sceller dans une boîte scellée en permanence. Ensuite, placez la boîte dans un coffre-fort et jetez-le dans la fosse des Mariannes. Et puis peut-être remplir ladite tranchée avec du béton.
Aux échecs - si vous jouez 1000 parties, et gagnez 999 et perdez 1, vous êtes probablement considéré comme un champion. En sécurité - si vous jouez à 1000 «jeux», et gagnez 999 et en perdez 1, vous êtes foutu.
@Shadur L'implication de cela étant que vous POUVEZ avoir un système parfaitement sécurisé tant qu'il n'y a pas d'utilisateurs. :)
"Oh, mais tu dois voyager à travers ces bois encore et encore et tu dois avoir de la chance d'éviter le loup à chaque fois, mais le loup n'a besoin que d'assez de chance pour te trouver une fois."
La sécurité est l'art de créer des couches de contrôle qui minimisent les pertes si / quand un aspect de la sécurité est violé. Dans le cas de la sécurité informatique, créer des couches et diviser les systèmes pour minimiser les pertes est une chose délicate à faire au mieux. Mais la superposition de la sécurité est le meilleur moyen de prévenir une violation et de minimiser la perte de données si et quand une violation se produit.
Ce n'est pas comme les échecs car la situation n'est pas symétrique. C'est un jeu asymétrique où une partie a un gros désavantage sur l'autre et ne peut gagner que si l'autre partie fait des erreurs extrêmement stupides.
L'exactitude prouvée est fondamentalement possible en informatique. Faites en sorte que le protocole ou le système à implémenter soit suffisamment simple, et cela peut en fait être pratique. Mais il y a le hic: les exigences commerciales se prêtent rarement aux compromis en termes de temps de développement, de coût et de complexité des fonctionnalités nécessaires pour une implémentation prouvable. (Implémentez `eval`, et vous avez le problème d'arrêt; tous les paris sont ouverts!)
@JamesRyan et le faire peut être une possibilité réaliste à l'avenir. Quelqu'un qui se soucie suffisamment de la sécurité d'un serveur, par exemple le gouvernement américain, sera probablement en mesure d'utiliser l'intelligence artificielle (qui, contrairement aux humains, pourrait être enfermée dans une pièce sans accès aux «tablettes de chocolat») pour développer un micro-noyau éprouvé, prouvé mini langage pour ce noyau, et serveur simple éprouvé avec ce langage, avec un seul commandant (un seul humain dans le système) qui seul aurait la capacité de placer une faute dans la défense du système.
Je ne me souviens pas qui l'a dit ou de la citation exacte, mais quelque chose dans ce sens: "Les gens qui prétendent que quelque chose est totalement infaillible ont tendance à sous-estimer l'ingéniosité des imbéciles totaux."
Treize réponses:
schroeder
2015-08-25 09:09:30 UTC
view on stackexchange narkive permalink

"Aucune défense parfaite n'est fondamentalement possible."

Aux échecs, vous avez 64 cases, 2 personnes qui jouent et un ensemble de règles immuables et connues.

Dans les infrastructures de serveur, il existe un nombre incalculable d'actifs et de façons d'aborder ces actifs, un nombre inconnu de joueurs et des règles qui changent constamment, les joueurs cherchant délibérément à contourner, enfreindre ou contourner les règles.

Considérez 2 éléments qui prouveront mon point: zéro jour et barres de chocolat .

Premièrement, zéro jour change les règles pendant que le jeu est joué. Si un camp bénéficie de cet élément, l'autre n'en est pas conscient et est peut-être toujours incapable de contrer ces attaques, même si elles sont finalement connues. Chaque jour zéro est une nouvelle règle qui est appliquée de manière inégale au jeu. Même si une «stratégie de sécurité perfectionnée» peut être conçue et parfaitement appliquée, zéro jour peut signifier que la stratégie repose sur des faiblesses inconnues qui pourraient ne jamais être connues du côté défenseur.

Deuxièmement, les barres de chocolat peuvent faire l'affaire. plus pour briser la sécurité d'une infrastructure que tout autre élément. Ce que je veux dire, c'est que les gens peuvent être soudoyés ou incités à «changer de camp» et à accorder un avantage au côté opposé, parfois pour quelque chose d'aussi petit qu'une tablette de chocolat (les études le montrent). Le phishing, les pots-de-vin, les fuites de données, etc. font tous partie du côté humain du jeu que la technologie ne peut pas entièrement expliquer. Tant qu'il y aura un humain avec du pouvoir dans l'infrastructure, il y aura toujours cette faiblesse dans le système.

Que faire?

Dans l'histoire, nous voyons plusieurs situations où une tentative massive de défense a été vaincue par quelque chose de petit et d'imprévu (par exemple, les portes de la Grande Muraille de Chine s'ouvraient à une concubine qui était un agent double pour les Mongols). L'objectif, en tant que défenseurs, n'est pas de monter la défense parfaite, mais plutôt de concevoir une infrastructure résiliente et transparente où les attaques peuvent être vues rapidement et y répondre complètement. Pas de murs plus hauts, mais une milice plus alerte. Pas des fondations inébranlables mais une architecture remplaçable.

Je serais intéressé de savoir ce qui se passe si vous retirez les barres de chocolat. Je pense qu'il est fondamentalement possible de concevoir toute une architecture de serveur par soi-même, de verrouiller le serveur dans une boîte et d'avaler la clé. Ensuite, nous n'avons que zéro jour en jeu.
Oui, j'ai amélioré la section zéro jour. N'oubliez pas que même avec le plan serrure / boîte / hirondelle, il y a un certain nombre * d'autres * éléments humains dans une stratégie qui pourraient causer des problèmes. L'alimentation, la connexion réseau, la maintenance, les correctifs, etc. entrent tous en jeu à un moment donné de la stratégie. Je n’ai pas encore entendu parler ni d’élaboration d’un plan qui puisse rendre compte de tous les éléments humains en jeu.
J'ai travaillé avec un jeune diplômé en sécurité réseau qui était très intéressé par les attaques possibles sur nos systèmes. Alors que je parlais des différentes attaques que nous avions déjà subies, il les a toutes rejetées comme des attaques «à caractère social», et donc, finalement inintéressantes. Alors que nous nous tenions au milieu du centre de données avec plusieurs racks, des unités A / C, des blocs d'alimentation, des câbles et des lumières clignotantes, je me suis tourné vers lui et je me suis exclamé: "C'est TOUT social! Les systèmes existent pour les gens!" Je sais que cela semblait banal, mais cela m'a expliqué pourquoi il ne devrait pas y avoir de délimitation du technique et du social.
Tout de même, si cela ne vous dérange pas, envisagez un scénario où je génère personnellement de l'énergie, fais la maintenance et applique les correctifs moi-même. C'est une circonstance testable de manière réaliste après tout, je pourrais m'asseoir dans une pièce vide, faire fonctionner un générateur avec mon serveur verrouillé dans la boîte et appliquer mes propres mises à jour. Les barres de chocolat peuvent être éliminées dans une opération assez petite (juste moi) si l'on se soucie d'essayer assez fort.
Même ainsi, en supprimant l'élément humain de la défense, le stratège ne travaille pas avec une connaissance complète ou même un contrôle complet de ses propres systèmes. L'infrastructure est construite sur une matrice interconnectée du travail des autres et des systèmes dépendants. Une panne dans l'un de ces éléments (comme un jour zéro) bat même la défense la plus parfaite. Alors, qu'en est-il de tout construire à partir de zéro? OS, firmware, protocoles, cryptage, etc., etc.?
Oh, vous voulez dire ses propres couches d'abstraction de calcul. Tels que le noyau et le système d'exploitation. Oui, supposons que la partie serveur se soucie tellement de la sécurité (une banque dépense un quart de milliard de dollars américains cette année) qu'elle développe tout son noyau et son système d'exploitation à partir de zéro. En fait, supposons que le propriétaire de l'entreprise, celui qui s'intéresse à la sécurité, programme le noyau, le système d'exploitation et le serveur à partir de zéro, et le conçoit sans faille sans aucune aide. Nous sommes fondamentaux ici, et une telle chose est honnêtement possible, si l'on y consacre des années.
@JonathanTodd Il n'est pas possible dans une vie humaine pour un système d'exploitation avec une quantité significative de fonctionnalités (selon les normes d'aujourd'hui.) Si des milliers d'experts combinés à un certain nombre d'années-hommes de tests qui dépassent largement toute durée de vie humaine ne peuvent pas concevoir et mettre en œuvre un OS impeccable, la probabilité que vous ou moi puissions le faire est assez faible.
@reirab Je ne veux pas étendre ce fil de commentaires, mais nous parlons d'un système d'exploitation qui * seulement * doit exécuter un logiciel serveur. En gros 1% des fonctionnalités du type d'OS dont vous parlez. Le noyau est de loin celui qui travaille le plus ici, mais les meilleurs programmeurs sont capables de développer un noyau seul avec un temps considérable. Après tout, nous avons des noyaux à utiliser comme référence, nous avons juste besoin d'en refaire un pour éliminer les failles qui peuvent potentiellement être utilisées abusivement pour compromettre le système. Encore une fois, ma question porte sur les fondamentaux, pas sur la faisabilité ...
Et aux échecs, votre adversaire doit attendre son tour jusqu'à ce que vous fassiez un coup, mais ici votre adversaire peut faire un million de coups avant même que vous ne soyez alerté que quelque chose ne va pas avec votre serveur :)
@jonathantodd En fait, votre commentaire original rend les 0 jours * pires * parce que maintenant vous n'avez aucun moyen d'accéder à l'ordinateur pour les réparer après leur découverte.
En poussant plus loin l'analogie avec les échecs, nous pouvons affirmer que l'on peut renverser la prémisse fondamentale de la victoire du joueur le plus fort en laissant le joueur le plus faible apporter une arme et tirer sur le grand maître avant le début de la partie.
NB: la Grande Muraille de Chine n'a pas été conçue pour empêcher les envahisseurs d'entrer, mais pour retarder suffisamment les voleurs chargés d'objets de valeur afin qu'ils puissent être capturés avant leur sortie. Je ne sais pas s'il existe une analogie en matière de sécurité de l'information.
Il s'avère que cette réponse était techniquement fausse, puisque ma question porte sur la capacité fondamentale, pas sur la faisabilité.
pjc50
2015-08-26 20:35:11 UTC
view on stackexchange narkive permalink

La sécurité peut être prouvée, mais vous devez comprendre ce qui est prouvé

https://sel4.systems/FAQ/proof.pml

Notre déclaration de preuve en langage naturel de haut niveau est la suivante:

Le code binaire du micro-noyau seL4 implémente correctement le comportement décrit dans sa spécification abstraite et rien de plus. De plus, la spécification et le binaire seL4 satisfont aux propriétés de sécurité classiques appelées intégrité et confidentialité.

L'intégrité signifie que les données ne peuvent pas être modifiées sans autorisation, et la confidentialité signifie que les données ne peuvent pas être lues sans autorisation.

Notre preuve va même plus loin et montre que les données ne peuvent pas être déduites sans autorisation - jusqu'à un certain degré. On sait que les soi-disant canaux côté information (également appelés canaux cachés) existent. La preuve ne couvre que les canaux d'inférence d'information qui sont présents dans le modèle formel: la preuve de confidentialité couvre tous les canaux de stockage dans le noyau, mais exclut les canaux de synchronisation qui doivent être traités empiriquement.

Donc , pourquoi tout le monde n'utilise-t-il pas simplement sel4? (Actuellement, l'endroit où vous êtes le plus susceptible de le rencontrer est sur le processeur TrustZone de certains appareils Apple).

La réponse est que la preuve ne couvre que le noyau, et non aucun des logiciels de l'espace utilisateur qui vous voudrez peut-être courir. Il n'existe pas de serveur Web sécurisé éprouvé, par exemple, et encore moins d'implémentations de langage pour les applications que vous voudrez peut-être y exécuter. Et vous devrez également prouver la sécurité de votre application Web. Le développement de ces éléments nécessitera un investissement très important, qu'aucune grande entreprise n'est intéressée à faire.

Les systèmes de haute sécurité sont généralement attaqués au point de gestion des clés et des connexions

La sécurité du système n'a pas d'importance si votre administrateur laisse son mot de passe sur pastebin par erreur. L'autre jour, nous avons vu un employé de la TSA publier une photo des clés principales (physiques) de la TSA pour les serrures à bagages sur Twitter, elles sont donc toutes compromises. Mots de passe faibles, mots de passe devinables, mots de passe stockés de manière non sécurisée, mauvais jetons de sécurité matériels, empreintes digitales copiées: tous ces éléments sont des vecteurs d'attaque possibles.

Oh wow, voyez, cette réponse répond honnêtement à ma question plus précisément que toute autre. D'autres parlent tous de faisabilité, mais ma question était littéralement * est-il fondamentalement possible de sécuriser un serveur Web afin que, quel que soit le niveau d'intelligence, mon adversaire ne puisse pas compromettre mon système? * - Et d'après cela, nous pourrions supposer un serveur et langage ont été développés pour cela. Bien qu'il soit plus difficile de retirer les «tablettes de chocolat», cela pourrait être fait en demandant à un seul homme de contrôler l'entretien seul avec l'aide de l'IA.
Par exemple, le président américain de 2115 (dans 100 ans en supposant que l'IA a été perfectionnée à ce moment-là) peut demander à un logiciel d'IA de génie de construire un micro-noyau, un langage et donc un serveur Web éprouvés, et de verrouiller l'ordinateur et le serveur d'IA dans une pièce, afin qu'il puisse accéder à distance aux codes ou à quelque chose d'insensément secret sans que le secret ne soit transporté, en supposant qu'il pourrait en avoir besoin à tout moment. Exemple extrême vraiment tiré par les cheveux, mais je ne fais que démontrer un modèle dans lequel un serveur Web éprouvé pourrait être à la fois applicable et possible sans aucune faiblesse humaine dans le mélange.
Excellente réponse. C'est le seul qui * effectivement * répond à la question comme prévu.
Merci - j'avais vu la question pendant quelques jours et personne n'avait mentionné que certaines formes de comportement logiciel sont prouvables. Les gens s'emportent avec l'interprétation de Turing. Mais "AI" est vraiment un mot magique, et il est peu probable qu'il apporte des preuves de son comportement. Et peut-être que le président règle le code sur le même code que ses bagages: http://arstechnica.com/tech-policy/2013/12/launch-code-for-us-nukes-was-00000000-for-20-years/
@pjc50 J'ai lu cet article, oui, les Généraux ont contourné les protocoles de sécurité, comme tout le monde semble le faire, c'est pourquoi je suggère l'utilisation d'IA pour la possibilité future de gérer un système qui a des besoins de sécurité qui sont d'une importance énorme, tels que ces lancements de missiles codes. L'IA peut sembler être une baguette magique, mais la technologie est vraiment plus un "quand" pas "si" et les IA n'auraient pas besoin d'être vérifiées, car elles peuvent être sécurisées en éliminant tout accès extérieur (y compris Internet) autre que via un visite personnelle du seul administrateur système responsable.
Parmi mes raisons de scepticisme, il y a l'idée qu'une IA de génie sera totalement heureuse emprisonnée dans une boîte isolée pour toujours avec seulement un système de lancement nucléaire pour entreprise ...
Savez-vous si je peux avoir un système d'exploitation de bureau avec sel4? Juste pour les coups de pied et les rires!
@PyRulez, il semble que vous puissiez le démarrer sur un ordinateur de bureau, bien que l'écriture de tous les utilitaires de l'espace utilisateur que vous souhaiteriez soit listée sur la page "futurs projets".
@pjc50 qui est une évaluation très agréable. Je prévois que c'est un problème pour les entreprises qui veulent profiter de l'intelligence artificielle. Je pense qu'un vraiment sensible sera même couvert par une sorte de loi «droits de l'homme» via une version universelle allant au-delà des humains ... Pourtant, une solution que j'ai envisagée est de faire évoluer une IA en laboratoire qui fait son bonheur d'aider une personne ou un groupe spécifique. Le libre arbitre est une question de perspective après tout. Jouer à Dieu a quelques avantages que je soupçonne.
@JonathanTodd: "Fondamentalement possible" tant que vous ignorez le fait que les systèmes réels tels qu'ils sont utilisés dans le monde réel auront toujours une composante humaine; et aussi, la configuration du serveur et le logiciel seront toujours en constante évolution. Je doute que quiconque utilise des serveurs pour des applications du monde réel puisse se permettre d'avoir toutes les mises à jour toujours mathématiquement prouvées comme incassables. Ainsi, mis à part une expérience de pensée qui ignore le monde réel et / ou qui repose sur le mot «IA», évite tout problème, la réponse est «non».
Il y a aussi une assez grande liste d'hypothèses requises pour cette preuve, comme que le matériel est également correct, et que tout l'assemblage qu'il contient est correct, et que le chargeur de démarrage est correct, et inclut une hypothèse qui inclut même l'instruction "Nous sachez que ce n'est pas le cas. " il ne prétend donc même pas vraiment que la preuve de confidentialité est réellement complète, mais qu'elle vaut pour certains chemins. Associé à un manque de contrôle de la chaîne d'approvisionnement et ce n'est probablement pas vraiment possible (voir http://www.darpa.mil/program/vetting-commodity-it-software-and-firmware)
L'intelligence artificielle d'@TeemuLeisti n'est plus une idée de conte de fées issue d'un livre de science-fiction. Nous avons déjà des progrès dans ce domaine, et ce n'est plus une question de «si» mais de «quand». Et * quand * l'IA deviendra une technologie perfectionnée, nous aurons une nouvelle capacité à maintenir un système éprouvé sans erreur humaine - combinée à l'idée que la réponse choisie m'a enseignée, notre capacité à prouver un système sécurisé, cela supprime l'erreur humaine, la plus grande sécurité faille, et rend un serveur Web parfaitement sécurisé * possible *. Pas bon marché, pas facile, difficilement réalisable mais fondamentalement possible. Et c'était ma question.
@JohanthanTodd Assertions sans aucune preuve. Votre question devient, essentiellement, "est-il possible de construire une Intelligence Artificielle capable de dévier toutes les attaques contre l'intégrité d'un serveur?" La réponse à cela est complètement dans l'air.
N'implique-t-il pas empiriquement directement moins que la perfection absolue?
@TeemuLeisti non, c'est idiot. Je ne suppose pas une IA qui a des super pouvoirs, seulement la capacité de gérer la maintenance (mise à jour de modules de code éprouvés) afin que les humains qui peuvent être extorqués ne fassent pas partie du système. Si le système est prouvé, pourquoi les attaques devraient-elles être détournées?
@ColorQuestor OK, peut-être que j'ai mal compris. Cependant, je reste avec le sentiment tenace que cette manière de réaliser une infrastructure de serveur "anti-brèche" est plus une expérience de pensée que quelque chose qui pourrait s'appliquer dans la vraie vie, qui est toujours compliquée et désordonnée. Quoi qu'il en soit, je me retire de la discussion.
@TeemuLeisti Bien que ce ne soit pas pratique pour la plupart, ce n'est absolument pas une simple expérience de pensée.Par exemple, les systèmes militaires utilisent souvent le micro-noyau INTEGRITY-127B vérifié semi-formellement et IIS de Microsoft a une implémentation HTTP officiellement vérifiée (HTTP.sys).Les systèmes évalués par EAL7 sont un autre exemple (INTEGRITY est EAL6).
En fin de compte, toute vérification formelle d'un système complexe tel qu'un serveur est le développement d'un arbre d'attaque formel et concurrentiel, et la vérification de la quantité de code désormais considérablement réduite qui est à risque.
Cort Ammon
2015-08-25 10:45:53 UTC
view on stackexchange narkive permalink

Personne n'a trouvé de raison particulière de croire avoir trouvé un tel système.

Vous parlez d'échecs, qui est un jeu sympa sur une grille 8x8. Considérez qu'un serveur moderne est légèrement plus compliqué que cela. Jouons plutôt dans un tableau 65536x65536, pour le rendre plus réaliste. De plus, aux échecs, plus vous jouez, moins il y a de positions possibles. Au lieu de cela, un système plus réaliste est comme Go. Plus vous jouez, plus la position peut devenir entrelacée. Je noterai que le jeu de Go rend notre travail sur les ordinateurs d'échecs parait chétif.

Conway, vers 1970 environ, a essayé de briser le jeu de Go. Il a constaté que souvent le tableau semblait se diviser en sous-jeux, dont chacun se jouait dans son espace pour correspondre au vainqueur final. Il a trouvé que la manière dont ils travaillaient ensemble était très compliquée. En conséquence, il a trouvé des nombres surréalistes, un schéma de nombres qui est littéralement plus vaste que les nombres réels que nous utilisons en physique. Pas de blague, il est en fait plus facile de prédire la météo à l'échelle mondiale que de gagner à Go en divisant pour conquérir. Pourrait-il y avoir un cas «gagnant» ici? Peut-être. Bonne chance pour le trouver. Le seul moyen de savoir avec certitude est de prendre en compte l'ensemble du tableau 65536x65536, en une seule fois.

Kevin Mitnick dans l'un de ses livres a commenté:

Le seul ordinateur réellement sécurisé est celui qui est déconnecté d'Internet, éteint, débranché, stocké dans un bunker en béton, sous garde armée. Et même dans ce cas, je le vérifierais de temps en temps. "

Tsk. La garde armée et les contrôles périodiques sont tous deux des voies d'attaque potentielles.
Steffen Ullrich
2015-08-25 10:26:31 UTC
view on stackexchange narkive permalink

La comparaison avec les échecs est intéressante car elle montre ce que la protection d'un système n'est pas. Par rapport aux échecs, le jeu entre les bons et les méchants en sécurité informatique n'a pas de règles fixes, vous ne savez pas qui sont vos adversaires et vous pouvez être attaqué en dehors de l'échiquier. Et si l'adversaire perd une figurine, il peut simplement en obtenir une nouvelle alors que vous ne le faites pas.

  • Vous avez des ressources limitées (temps, argent, connaissances) pour protéger vos systèmes. Les attaquants ont également des ressources limitées, mais si vous êtes une cible intéressante, il y aura suffisamment de pirates intéressés qui au total pourraient avoir plus de ressources que vous.
  • Avec ces ressources limitées, vous devez tout sécuriser. Cela signifie fermer tous les moyens / exploits possibles (et probablement inconnus de vous) qu'un attaquant pourrait utiliser pour entrer. L'attaquant ne doit trouver qu'un seul moyen et l'utiliser.
  • En dehors de cela, vous avez un conflit entre l'utilisabilité et la sécurité. Jetez un coup d'œil au contrôle d'accès avec les mots de passe, aux moyens de réinitialiser les mots de passe oubliés, etc. Ils ne sont par conception pas sécurisés à 100% car ils constituent un compromis entre sécurité et convivialité. Vous pouvez déplacer tous vos utilisateurs vers des méthodes plus sécurisées telles que l'autorisation à deux facteurs, les certificats clients, les cartes à puce, etc., mais celles-ci pourraient alors être trop gênantes pour les utilisateurs et vous perdriez des clients. Et ils ne sont pas non plus sécurisés à 100%, mais plus sûrs que les mots de passe.
  • Vous avez également un conflit entre la sécurité et les performances. Plus vous analysez toutes les données entrantes pour détecter les attaques, plus elles seront lentes. Bien que vous puissiez lancer plus de matériel sur le problème, il ne sera pas mis à l'échelle de manière linéaire, vous devez donc trouver un équilibre entre la vitesse et la profondeur de l'analyse.
  • Et vous devez gérer des logiciels qui ne sont pas sécurisés. Il peut s'agir d'une source fermée, vous ne pouvez donc pas la chercher et la réparer, mais même avec l'open source, vous n'avez ni le temps ni l'expérience pour découvrir des bogues ou des portes dérobées accidentellement ou délibérément cachés. Même si vous aviez tout l'argent et les meilleurs experts que vous pourriez obtenir pour l'argent, vous disposez d'un temps limité pour faire l'évaluation et l'analyse ne s'échelonne pas linéairement avec le nombre d'experts (c'est-à-dire que cela n'aide pas à obtenir 1000 experts si vous doivent analyser 1000 lignes de code, car ces 1000 lignes ne sont pas indépendantes les unes des autres).
  • Et enfin il y a les personnes qui protègent votre infrastructure et y ont également accès. Ce sont des humains donc ils peuvent être attaqués avec de l'ingénierie sociale, corrompus, chantage ...

En résumé: alors qu'en théorie vous pourriez avoir des ressources illimitées (temps, argent, connaissances, matériel rapide illimité ) pour protéger un système et n'avoir que des clients qui sont également de tels experts et préfèrent les méthodes d'accès sécurisées aux méthodes d'accès pratiques - en réalité, ce n'est pas le cas. Il y aura toujours un moyen d'entrer, vous devriez donc y être préparé. Ne croyez pas que vous atteindrez un jour une infrastructure 100% sécurisée, mais créez plutôt une infrastructure qui est non seulement robuste contre les attaques de l'extérieur, mais où vous pouvez détecter un compromis et en récupérer le plus rapidement possible. Le mal peut être fait mais il devrait être limité.

PyRulez
2015-08-26 00:41:18 UTC
view on stackexchange narkive permalink

Un tel système existe probablement, mais nous ne le trouverons probablement pas

Nous avons de nombreux algorithmes à utiliser dans la sécurité. Certains d'entre eux ont probablement raison. Plus précisément, certains d'entre eux sont probablement exponentiellement difficiles à casser. En effet, nous en connaissons certains qui sont carrément impossibles à casser (une seule fois.) Le problème est la mise en œuvre

La sécurité ne concerne pas qui est le plus intelligent. La sécurité concerne la prudence du défenseur par rapport à la prudence l'intelligence et la créativité de l'attaquant. Un défenseur n'a pas besoin d'être brillant s'il peut suivre un algorithme avec une extrême prudence. Défense parfaite contre. une attaque parfaite aboutit à un vainqueur défensif dans les zones de sécurité.

Le problème est que les serveurs sont souvent des machines complexes. Vous avez l'OS et les mirades de programmes, et différents protocoles et langages de programmation et AHH. Il est presque impossible d'avoir une sécurité parfaite dans un tel environnement.

D'un autre côté, si un système est assez simple, un humain peut probablement le rendre parfait. Par exemple, j'ai un message, $ M $, encodé comme un nombre de 1 à 6. Je vais maintenant lancer un dé, qui sera la clé $ K $, et ajouterai $ M $ et $ K $ modulaire $ 6 $ , pour obtenir le texte chiffré $ C $.

Le texte chiffré est $ 5 $. Quel était le message?

Cet exemple était si simple que je pourrais plausiblement envisager toutes les possibilités. D'un autre côté, un serveur est assez complexe.

Quels conseils pouvons-nous en tirer. Restez simple, stupide. (Le principe K.I.S.S.) Même s'il est probablement hors de notre capacité humaine de créer un serveur parfait, plus le serveur et nos algorithmes sont simples, mieux c'est. Documentez votre code, rendez-le compréhensible, simplifiez-le. Chaque ligne de code a une raison. Utilisez un système d'exploitation simple (Remarque: ne confondez pas simplicité et facilité d'utilisation. Pensez à Arch Linux, pas à iOS.) Ne gardez que le strict minimum de programmes. Choisissez un langage de programmation avec une petite définition, et sans règles étranges et autres (je vous regarde, javascript.) Bien que cela ne le rendra pas parfait, cela contribuera grandement à vous rendre plus sûr.

Votre réponse est la deuxième plus proche d'être la bonne réponse à ma question, parmi les nombreuses réponses ici qui ne répondent pas toutes à la question de la * possibilité fondamentale * (qui, selon la nouvelle réponse acceptée, existe). Tout le monde a immédiatement pensé "Trop de variables, pas faisable, pas quelque chose comme les échecs" mais fondamentalement, personne n'a envisagé de simplifier le système pour obtenir une sécurité parfaite, ce qui est apparemment appelé "prouver" le système, et cela a été fait avec des micro-noyaux I savoir maintenant grâce à la nouvelle réponse sélectionnée.
Un OTP peut être impossible à craquer dans le monde réel, mais en théorie, je pourrais tomber sur le pad utilisé par accident. Mon seul point est que ce qui est applicable et vrai dans le monde réel ne vaut pas pour ce genre de question théorique.
@ChrisMurray J'ai déjà déplacé les dés.
@JonathanTodd Simplifier ne s'appelle pas «prouver» le système. La simplification est une condition préalable presque nécessaire pour prouver un système. Un système simplifié en lui-même est cependant automatiquement prouvé. Prouver peut être assez difficile.
@PyRulez, Je ne voulais pas dire littéralement tomber dessus. Je voulais dire, et si je le devinais, la première fois. Quelles que soient les chances, c'est possible. C'est une chance non nulle, et donc pas une "sécurité parfaite".
@ChrisMurray L'OTP ne dit pas que vous ne pouvez pas le deviner. Cela signifie que vous ne saurez pas si c'est vrai. En effet, vous pouvez deviner les six nombres si vous le souhaitez, mais qu'est-ce que cela vous procure? (Je vous assure qu'il n'y a pas de hachage de la valeur des dés.)
@PyRulez, En supposant que les six (en quelque sorte) déchiffrent en phrases lisibles, il me dit le message plus 5 messages non pertinents. Peut-être que cela suffit pour agir, peut-être pas. La seule chose que je peux prouver, c'est que je suis en possession du bon message décrypté. Sûrement dans un système "parfait", je ne devrais pas du tout avoir le message déchiffré?
@ChrisMurray Le message était un jet de dés aléatoire.
@PyRulez Vous m'avez mal compris. Je n'avais pas l'intention de déduire que prouver qu'un système le simplifiait, seulement qu'en simplifiant un système aux seuls aspects exacts de la fonctionnalité nécessaire, sécuriser le service des données, par exemple, on peut potentiellement, avec beaucoup de difficulté et de génie, développer un serveur éprouvé en toute sécurité. Fondamentalement, cela est possible, selon les informations fournies dans la réponse acceptée. Réalisable? Peut-être pas. Maintenable? Peut-être pas maintenant, car tant que nous n'aurons pas perfectionné le développement de l'IA, nous aurons besoin de mainteneurs humains du système. Mais fondamentalement possible.
Dennis Jaheruddin
2015-08-25 13:24:25 UTC
view on stackexchange narkive permalink

Supposons que la sécurité est comme les échecs

Contrairement à la plupart des gens ici, je connais en fait un peu les échecs et juste assez sur la sécurité pour en faire une réponse utile.

Si vous considérez aux échecs, vous constaterez que:

Le nombre de possibilités est si grand qu'aucune stratégie pratique ne les couvre toutes explicitement

Par conséquent, comme nous le voyons aussi dans la pratique , le participant le plus fort est le plus susceptible de gagner. Mais même ainsi, il y a toujours une chance qu'une personne / joueur d'ordinateur fort perdra contre un (beaucoup) plus faible.

Donc pour conclure:

À moins que vous ne connaissiez le bon mouvement dans toutes les situations possibles, aucune défense parfaite n'est possible

Ches avec 10 ^ 80 pièces ... :)
@HagenvonEitzen Comme vous le remarquerez peut-être, mon raisonnement ne fait que se renforcer à mesure que la complexité de la situation augmente!
Les échecs sont un jeu d'information complet et fini. Nous savons qu'un équilibre existe, même si nous ne savons pas comment le calculer.
@DeerHunter C'est correct, donc si nous considérons la sécurité de l'information comme une information infinie et non complète, ma conclusion devient fondamentalement «c'est impossible» au lieu de «c'est pratiquement impossible».
Les échecs sont presque toujours une analogie complètement inutile. C'est un jeu d'information parfait. Aucun vrai jeu n'a tous les acteurs avec une information parfaite!
@Aron Je comprends les limites de l'analogie en général, mais je ne vois pas que cela pose un problème pour cette réponse spécifique. Ce n'est pas spécifiquement mentionné, mais même si l'attaquant n'a pas une information parfaite (peut être simulée par lui faisant des mouvements complètement aléatoires) il n'y a toujours pas de défense parfaite.
Aux échecs, chaque joueur effectue un mouvement, et l'adversaire sait instantanément quel coup il a fait et il est capable de le contrer. Lorsque l'adversaire est capable de faire un coup gagnant, le jeu se termine. Dans InfoSec, le pirate peut effectuer de nombreux mouvements avant que le défenseur ne le sache. De plus, le défenseur pourrait ne jamais savoir qu'il joue ou même qu'il a perdu ni comment il a perdu.
@Aron Si je comprends bien, vous voulez dire que les défenseurs de la sécurité de l'information ont des inconvénients supplémentaires. Ma principale conclusion est qu'il n'y a pas de défense parfaite si la sécurité de l'information est comme les échecs. Par conséquent, des problèmes supplémentaires pour le défenseur ne feraient que renforcer ma conclusion.
Je trouve risible que les gens considèrent le nombre de possibilités aux échecs même vaguement sensé. Tout ce que vous devez savoir sur l'espace d'états des échecs: le nombre de positions possibles serait de l'ordre de 10 ^ 43, la complexité de l'arbre de jeu est estimée à 10 ^ 123, si l'univers connu était à 100% d'hydrogène, ce serait être d'environ 10 ^ 80 atomes. Aller est encore plus complexe. Je dirais qu'InfoSec est plus facile à résoudre;)
emory
2015-08-26 00:11:37 UTC
view on stackexchange narkive permalink

Une défense parfaite est fondamentalement possible.

Je suis en fait médiocre aux échecs, mais il est trivial pour moi de bloquer les plus grands joueurs du monde et je peux même faire l'impasse les ordinateurs les plus rapides et les meilleurs pour jouer aux échecs.

Je suis juste assis sur mes mains et j'attends que le temps s'écoule et le grand maître d'échecs ne peut pas réclamer une victoire sur moi.

le serveur impénétrable ne répond jamais aux demandes des clients et ne peut être vaincu même par le pirate informatique le plus intelligent.

Malgré sa sécurité parfaite, il est totalement inutile.

Notez que la question indique spécifiquement que le serveur doit communiquer avec les clients sur le Web. Une situation où vous ne permettez à personne de bouger peut ne pas être très pertinente ici. - Sidenote: une situation où personne ne bouge n'est pas une impasse, juste une partie en cours.
@DennisJaherudd Je me suis trompé sur les règles de délai d'expiration - https://en.wikipedia.org/wiki/Draw_(chess)#Draws_in_timed_games. Je pensais que tu devais échouer pour gagner (ou être mat pour perdre). Mais il s'avère que si vous manquez de temps et qu'il y a au moins une série de coups légaux qui entraîneraient votre échec et mat, alors vous perdez et votre adversaire gagne.
Steve Sether
2015-08-26 02:32:05 UTC
view on stackexchange narkive permalink

La sécurité de l'information est fondamentalement différente des échecs. Les échecs sont un mauvais modèle à appliquer à la sécurité de l'information, bien que les différences entre les deux puissent être éclairantes.

Les échecs sont un jeu d'information parfaite. Les deux parties savent exactement où se trouvent toutes les pièces à tout moment. Dans le domaine de la sécurité de l'information, une grande partie des informations est cachée, et une partie peut gagner un avantage en ayant plus d'informations que l'autre. "Smartest" n'a rien à voir avec cela.

Les échecs sont un jeu où toutes les règles sont connues et définies. Dans le domaine de la sécurité de l'information, l'existence de règles est au mieux discutable. Les "Règles" sont mieux considérées comme un environnement et donc comme une cible mobile.

Les échecs sont un jeu à somme nulle. En matière de sécurité de l'information, tout le monde peut perdre, tout le monde peut gagner, personne ne peut gagner, et gagner et perdre ne peuvent rien dire.

Les échecs sont un jeu à deux joueurs. La sécurité de l'information a plusieurs acteurs avec des motivations différentes (voir «pas un jeu à somme nulle»).

Les échecs ont une victoire et une perte clairement définies. Les victoires sont complètes et les pertes sont complètes. La sécurité de l'information est beaucoup plus floue et pas du tout noire et blanche. Le système peut être partiellement compromis et les pertes sont atténuées.

Il aborde l'analogie, mais ne semble pas répondre à la question réelle.
@DennisJaheruddin Certaines questions ne sont pas de bonnes questions et y répondre implique d'aborder la question elle-même au lieu d'y répondre directement. Par exemple, George W Bush. Grand président ou le plus grand président. C'est tout ce que j'ai, choisissez-en un.
LawrenceC
2015-08-27 19:36:41 UTC
view on stackexchange narkive permalink

Oui. Une infrastructure de serveur nulle est fondamentalement impossible à violer.

Aucun serveur = rien à violer = fondamentalement impossible à violer.

Il est fondamentalement possible de violer tout autre élément.

Impossible de trouver le lien maintenant, mais un expert célèbre a déclaré qu'une sécurité parfaite peut être obtenue avec un ordinateur en: "ne l'allumant pas, ne l'utilisant pas, ne stockant rien dessus". Je suppose que ça résume ça, hein?
Thom Smith
2015-08-26 02:15:37 UTC
view on stackexchange narkive permalink

De toute évidence, il n'y a pas de solution technique parfaite pour éviter les erreurs humaines ou empêcher un attaquant de corrompre votre administrateur système. Mais si nous regardons le côté technique purement déterministe de ceci, alors la réponse est (trivialement) oui.

Vous pouvez regarder un système connecté au réseau comme une fonction. Vous avez une fonction que vous souhaitez calculer, où les entrées sont un état du système et les bits entrant sur le fil et les sorties sont un nouvel état du système et des bits envoyés sur le fil. Si la fonction est calculable, alors il y a une implémentation système qui fera exactement cela.

Le problème est que décider si un système donné calcule parfaitement une fonction est impossible en général, et impossible à déterminer avec certitude dans pratique lorsque le comportement du système est complexe. Ainsi, une personne dont le système est vraiment impénétrable (encore une fois, de cette perspective technique limitée) ne pourrait jamais en être sûre. À l'inverse, quelqu'un qui est totalement certain de la sécurité d'un système très complexe presque certain tient cette croyance de manière irrationnelle.

Michael K.
2015-08-27 16:34:07 UTC
view on stackexchange narkive permalink

La vraie question derrière tout cela est plutôt: combien de ressources êtes-vous prêt à dépenser pour briser la défense? Et quel est même le niveau minimum de sécurité qu'il peut être considéré comme parfaitement sécurisé? Pas d'accès quoi que ce soit? Accéder à des données aléatoires? Ou seulement accéder aux données qui peuvent être utilisées à des fins lucratives est considéré comme une violation?

Pour utiliser votre exemple d'échecs: dans le futur, nous allons construire un ordinateur qui contient tout positions de toutes les parties d'échecs possibles. Opposé contre lui-même entraînera probablement 100% de nuls / impasses. Avec un ensemble "limité" de mouvements possibles, c'est une hypothèse valable d'une défense parfaite.

La réalité a trop d'options pour contourner les règles et les situations possibles. Peut-être que vous ne voulez pas voler les données, peut-être que vous voulez simplement que toutes les sauvegardes cessent d'exister. Vous bombardez donc l'installation du serveur - et vous êtes satisfait des débris non fonctionnels.

Dans la vraie vie, des solutions telles que les systèmes de détection d'intrusion, le stockage à froid (systèmes de stockage qui ne sont pas en ligne sur le Web), les processus de gestion des mots de passe & des comptes agressifs, la conception d'applications défensive et l'analyse du comportement d'utilisation peuvent augmenter les coûts pour pirater ces systèmes à un tel niveau, seules les poches très profondes pourraient même penser à l'attaquer.

Et vous auriez besoin de capacités de type «James Bond» et de compétences tactiques bien entraînées pour réussir. Pour une très grande partie de la communauté des hackers, cela serait considéré comme une défense "quasi" parfaite.

Les sites les plus piratés dans l'actualité ne savent même pas qui se trouve sur leurs "pelouses numériques". De nombreux hackers passent des semaines ou des mois dans leurs systèmes sans être détectés. Ils n'ont tout simplement pas pensé à dépenser des millions de dollars en défense minimale, car ce n'est pas requis par la loi et les poursuites sont potentiellement moins chères que de commencer le jeu d'échecs «hacking defense».

Quelqu'un a mentionné dans une réponse, le fait que des systèmes éprouvés existent. Des micro-noyaux peuvent être développés qui ont une défense parfaite. Avec plus d'efforts, un langage éprouvé pourrait être développé pour ce micro noyau, et donc un serveur éprouvé avec la tâche de dire, permettant au président, mais à personne d'autre, d'accéder à distance aux codes de lancement nucléaire à tout moment sans les transporter. De plus, une opération aussi coûteuse à l'avenir pourrait supprimer l'élément d'erreur humaine en utilisant l'intelligence artificielle sans accès extérieur pour développer et maintenir le système.
@Michael K. en fait ... Même avec de très gros ordinateurs (de la taille d'une galaxie!) Et une mémoire vraiment dense (que diriez-vous d'un bit par atome? D'accord, DIX bits!), Vous ne pouviez toujours pas énumérer toutes les parties d'échecs possibles. Voir https://en.wikipedia.org/wiki/Shannon_number.
Francis from ResponseBase
2015-08-28 04:36:13 UTC
view on stackexchange narkive permalink

Il est beaucoup plus facile de concevoir un système pour empêcher les personnes les plus intelligentes d'entrer que d'en concevoir un pour empêcher les personnes sans nom, sans vergogne, créatives et persistantes.

Les personnes intelligentes procèdent de manière identifiable, suivant des pistes d'efforts et d'exploration prévisibles, et s'appuient sur un ensemble d'hypothèses similaires misérablement prévisibles. Un génie semble toujours supposer que lors de l'utilisation de la fonction d'addition, 2 et 2 sont toujours 4, et jamais 22, ou 2 & 2.

La plus grande menace pour un système empirique et rationnel - chez l'homme termes - se révèle être un adversaire qui possède moins qu'un niveau de génie IQ, a tendance à être un franc-tireur ou à danser au rythme de son propre tambour plutôt que de suivre les normes sociales du troupeau, et rarement est identifié comme étant le plus intelligent un dans les groupes sociaux. Bien ajustée, à l'aise dans sa peau et dans qui elle est et acceptant son statut de chef de meute dans aucun domaine, cette personne n'est influencée ni ne s'engage dans la frivole compétition personnelle qui pourrait les encercler. Autonome, autonome, inspiré et conduit par la réalité intérieure intérieure, cet individu associe une certaine étincelle de spontanéité et de créativité authentique et non rationnelle à une persistance inébranlable et une volonté ou une volonté intérieure, tempérée et disciplinée.

Ils n'ont pas besoin de votre validation sociale, donc toute une série d'exploits d'ingénierie sociale s'avèrent inutiles. Ils passent souvent inaperçus dans la foule, car ils ne se soucient ni ne rivalisent pour l'attention de qui que ce soit, à l'exception de ceux qu'ils identifient eux-mêmes comme intéressants ou dignes de leurs efforts et de leur attention.

J'ai personnellement été témoin de quelques moments précieux en la vie d'une personne comme je décris défie, enfreint et invalide les spécifications de conception et de mise en œuvre des plus intelligents des génies.

Encore une fois, je préfère concevoir un système contre les personnes les plus intelligentes que contre ne serait-ce qu'une seule personne comme celle que j'ai décrite.

Ce type de personne est ce que j'appelle un "Néo".
KeithS
2015-08-28 23:49:31 UTC
view on stackexchange narkive permalink

S'il existe une entrée légitime, il y a une entrée illégitime.

Le seul serveur qui est fondamentalement impossible à pirater est un serveur fondamentalement impossible d'accès. Dans le domaine de la sécurité du réseau, c'est ce qu'on appelle "l'air-gapping"; un serveur ou un sous-réseau est physiquement déconnecté de tout autre réseau, y compris du monde extérieur. Combinée à la sécurité physique des composants de ce réseau à vide, qui empêche une personne non autorisée de pouvoir atteindre et toucher physiquement tout matériel informatique connecté au réseau, les ordinateurs de ce réseau sont inattaquables par un pirate informatique.

... En quelque sorte. Encore une fois, s'il y a une entrée légitime, il y a une entrée illégitime. La sécurité physique est finalement une entreprise humaine et donc finalement faillible. L'ingénierie sociale peut être utilisée pour contourner les protocoles de sécurité face à face, soit en incitant un «gardien» à laisser entrer une personne non autorisée, soit en incitant une personne autorisée à faire quelque chose qu'elle ne devrait pas faire au nom d'une personne non autorisée. Mieux les humains impliqués sont formés pour suivre les protocoles de sécurité physique, moins cela est probable, mais il y a toujours une chance non nulle de contourner la sécurité physique jusqu'à et y compris la force brute (quelque chose comme le raid Zero Dark Thirty, bien que ce ne soit pas le moins du monde subtil, pourrait théoriquement être perpétré contre n'importe quel siège social de la planète; il s'agit simplement d'avoir les bonnes personnes avec le bon équipement pour faire le travail.



Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 3.0 sous laquelle il est distribué.
Loading...