{"id":967,"date":"2013-04-14T10:06:56","date_gmt":"2013-04-14T08:06:56","guid":{"rendered":"http:\/\/blog.nebule.org\/?p=967"},"modified":"2016-03-29T19:03:18","modified_gmt":"2016-03-29T17:03:18","slug":"auto-verification-automatique-periodique","status":"publish","type":"post","link":"http:\/\/blog.nebule.org\/?p=967","title":{"rendered":"Auto-v\u00e9rification automatique p\u00e9riodique"},"content":{"rendered":"<p style=\"text-align: justify;\">Une des exp\u00e9riences en cours est la v\u00e9rification automatis\u00e9e et \u00e0 intervalle r\u00e9gulier de tous les objets et de tous les liens des objets.<\/p>\n<p style=\"text-align: justify;\">Les objets sont faciles \u00e0 v\u00e9rifier, on calcule leur empreinte et on v\u00e9rifie qu&rsquo;elle correspond \u00e0 leur nom. Si elle diff\u00e8re, on le supprime. Si l&rsquo;objet n&rsquo;a pas de liens, il est jug\u00e9 comme une pi\u00e8ce rapport\u00e9e, on le supprime aussi.<\/p>\n<p style=\"text-align: justify;\">Les liens sont assez faciles \u00e0 v\u00e9rifier aussi. Il faut proc\u00e9der objet par objet, prendre les liens un par un et v\u00e9rifier que la signature est valide pour l&rsquo;entit\u00e9 qui l&rsquo;a g\u00e9n\u00e9r\u00e9e. Si la signature diff\u00e8re, on supprime le lien. Si l&rsquo;entit\u00e9 est inconnue, la signature ne pourra \u00eatre v\u00e9rifi\u00e9e, le lien est donc supprim\u00e9 aussi.<\/p>\n<p style=\"text-align: justify;\">Ce petit bout de script reste assez simple et doit \u00eatre test\u00e9 soigneusement pour \u00e9viter des dommages collat\u00e9raux. Il m&rsquo;avait sembl\u00e9 l&rsquo;avoir test\u00e9 suffisamment&#8230; mais visiblement il y a eu des d\u00e9g\u00e2ts pour certaines entit\u00e9s.<\/p>\n<p style=\"text-align: justify;\">Voici notamment le r\u00e9sultat sur les sauvegardes de la machine zulu (\u00e0 comparer \u00e0 <a title=\"Chiffrement fonctionnel vers une entit\u00e9 tierce\" href=\"http:\/\/blog.nebule.org\/?p=960\" target=\"_blank\">ce graphe ci<\/a>) :<\/p>\n<p style=\"text-align: center;\"><a href=\"http:\/\/blog.nebule.org\/?attachment_id=968\" rel=\"attachment wp-att-968\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-large wp-image-968\" title=\"102\" src=\"\/wp-content\/uploads\/nebule\/2013\/04\/1022-1024x1024.jpg\" alt=\"\" width=\"800\" height=\"800\" srcset=\"\/wp-content\/uploads\/nebule\/2013\/04\/1022-1024x1024.jpg 1024w, \/wp-content\/uploads\/nebule\/2013\/04\/1022-600x600.jpg 600w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">On peut encore allez plus loin. Non dans les d\u00e9g\u00e2ts collat\u00e9raux mais dans une forme plus pouss\u00e9e d&rsquo;immunisation. L&rsquo;entit\u00e9 peut entretenir une liste d&rsquo;objets jug\u00e9s dangereux, et donc \u00e0 supprimer. Elle peut et surtout doit aussi se r\u00e9f\u00e9rencer \u00e0 une entit\u00e9 d\u00e9di\u00e9e au marquage d&rsquo;objets dangereux, c&rsquo;est le r\u00f4le justement de <a title=\"cerberus.nebule.org\" href=\"http:\/\/cerberus.nebule.org\/\" target=\"_blank\">cerberus<\/a>&#8230;<\/p>\n<p style=\"text-align: justify;\"><!--more--><\/p>\n<h2 style=\"text-align: justify;\">Annexe<\/h2>\n<p style=\"text-align: justify;\">Scripts ajout\u00e9s \u00e0 la librairie :<\/p>\n<pre>nebCheckAll()\n{ nebule_loop=$(( $nebule_loop + 1 ))\n  _logger \"-nebCheckAll REQ\"\n  nebCheckObjs\n  nebCheckLiens\n}\nnebCheckObjs()\n{ nebule_loop=$(( $nebule_loop + 1 ))\n  _logger \"-nebCheckObjs REQ\"\n # boucle sur chaque objet\n  ls -1 \"$nebule_baserep\/o\/\" | while read _co_O\n  do\n    if [ -f \"$nebule_baserep\/l\/$_co_O\" ]\n    then _o_vr $_co_O\n    else rm \"$nebule_baserep\/o\/$_co_O\"\n    fi\n  done\n}\nnebCheckLiens()\n{ nebule_loop=$(( $nebule_loop + 1 ))\n  _logger \"-nebCheckLiens REQ\"\n # Genere un ID pour l'objet temporaire\n  _cl_id=$(openssl rand -hex 3)\n # boucle sur chaque objet\n  ls -1 \"$nebule_baserep\/l\/\" | while read _cl_O\n  do\n    echo \"nebule\/liens\/$nebule_version\" &gt; \"$nebule_temprep\/_cl_$_cl_id\"\n    cat \"$nebule_baserep\/l\/$_cl_O\" | while read _cl_L\n    do\n      [ \"$(echo $_cl_L | cut -b 1-13)\" != \"nebule\/liens\/\" ] &amp;&amp; [ \"$(_l_vr $_cl_L)\" != \"\" ] &amp;&amp; echo \"$_cl_L\" &gt;&gt; \"$nebule_temprep\/_cl_$_cl_id\"\n    done\n    [ $(_crcalcfile \"$nebule_temprep\/_cl_$_cl_id\") != $(_crcalcfile \"$nebule_baserep\/l\/$_cl_O\") ] &amp;&amp; _logger \"-nebCheckLiens DIFF $_cl_O\" &amp;&amp; cat \"$nebule_temprep\/_cl_$_cl_id\" &gt; \"$nebule_baserep\/l\/$_cl_O\"\n  done\n  rm \"$nebule_temprep\/_cl_$_cl_id\"\n}<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Une des exp\u00e9riences en cours est la v\u00e9rification automatis\u00e9e et \u00e0 intervalle r\u00e9gulier de tous les objets et de tous les liens des objets. Les objets sont faciles \u00e0 v\u00e9rifier, on calcule leur empreinte et on v\u00e9rifie qu&rsquo;elle correspond \u00e0 leur nom. Si elle diff\u00e8re, on le supprime. Si l&rsquo;objet n&rsquo;a pas de liens, il &hellip; <a href=\"http:\/\/blog.nebule.org\/?p=967\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">Auto-v\u00e9rification automatique p\u00e9riodique<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[64,69,5,7,96],"tags":[],"_links":{"self":[{"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/posts\/967"}],"collection":[{"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=967"}],"version-history":[{"count":1,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/posts\/967\/revisions"}],"predecessor-version":[{"id":2276,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/posts\/967\/revisions\/2276"}],"wp:attachment":[{"href":"http:\/\/blog.nebule.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=967"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=967"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=967"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}