<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>Hi,</p>
    <p>ich habe mir das uci-defaults nochmal angeschaut. Da lag ich
      gestern doch falsch. Es funktioniert wegen
      05-config-system-migration. Da wird /etc/config/fff sehr früh
      angelegt. Trotzdem sollte ein touch rein. <br>
    </p>
    <p>Viele Grüße<br>
      Robert<br>
    </p>
    <div class="moz-cite-prefix">Am 07.01.20 um 22:22 schrieb Robert
      Langhammer:<br>
    </div>
    <blockquote type="cite"
      cite="mid:76AE94C3-8E72-4C25-AB8D-AE5852B644FF@web.de">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      Hallo,<br>
      die fehlende Entropie ist kein Problem. Der Key wird aus urandom
      generiert. Bleibt also nicht hängen.<br>
      Gleiche keys wird es nicht geben. Bei fehlender Entropie werden
      nur schlechtere Zufallszahlen erzeugt. Das ist uns aber egal, da
      wir damit keine Kryptographie machen.<br>
      <br>
      Die noch nicht vorhandene /etc/config/fff ist wirklich unschön.
      Ein touch finde ich ok an der Stelle. <br>
      Dass bei den Tests der key in fff gelandet ist, liegt wohl daran,
      dass das uci-default wegen errorlevel ungleich 0 bem ersten Start
      nicht gelöscht wird. Und beim zweiten Versuch klappt es dann.
      Fastd ist das egal, es steht ja srcret=generate drin.<br>
      <br>
      Viele Grüße <br>
      Robert <br>
      <br>
      <br>
      <div class="gmail_quote">Am 7. Januar 2020 15:07:03 MEZ schrieb
        Adrian Schmutzler <a class="moz-txt-link-rfc2396E" href="mailto:mail@adrianschmutzler.de"><mail@adrianschmutzler.de></a>:
        <blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt
          0.8ex; border-left: 1px solid rgb(204, 204, 204);
          padding-left: 1ex;">
          <pre class="k9mail">Hallo Christian,

siehe unten.

<blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #729fcf; padding-left: 1ex;">-----Original Message-----
From: franken-dev [<a class="moz-txt-link-freetext" href="mailto:franken-dev-bounces@freifunk.net">mailto:franken-dev-bounces@freifunk.net</a>] On Behalf Of
Christian Dresel
Sent: Dienstag, 7. Januar 2020 12:03
To: <a class="moz-txt-link-abbreviated" href="mailto:franken-dev@freifunk.net">franken-dev@freifunk.net</a>
Subject: [PATCH v3] fastd: make secret key updatesafe

To use a whitelist easy, it is neccessary to make the fastd key updatesafe
This patch safe the key to uci fff and recover it, if a key is after the update
available<hr>Changes in v2:
- use variable in if
- remove trailing whitespace
- remove -q<hr>Changes in v3:
- use only one variable $secret<hr>Signed-off-by: Christian Dresel <a class="moz-txt-link-rfc2396E" href="mailto:fff@chrisi01.de"><fff@chrisi01.de></a><hr> .../fff/fff-fastd/files/etc/uci-defaults/55_fff-fastd         | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/packages/fff/fff-fastd/files/etc/uci-defaults/55_fff-fastd
b/src/packages/fff/fff-fastd/files/etc/uci-defaults/55_fff-fastd
index d53eb43..28384b9 100644
--- a/src/packages/fff/fff-fastd/files/etc/uci-defaults/55_fff-fastd
+++ b/src/packages/fff/fff-fastd/files/etc/uci-defaults/55_fff-fastd
@@ -15,9 +15,18 @@ uci batch <<EOF
   set fastd.fff.mtu='1426'
   set fastd.fff.on_up="/etc/fastd/fff/up.sh"
   set fastd.fff.secure_handshakes='0'
-  set fastd.fff.secret="generate"
 EOF

+if ! secret=$(uci -q get fff.fastd.secret); then
+       secret=$(/usr/bin/fastd --generate-key --machine-readable)
</blockquote>
uci-defaults wird sehr früh im Bootprozess ausgelöst, noch lange bevor irgendein Dienst startet. Mit dieser Zeile wird demnach der Key viel früher generiert als bisher (denn die Settings werden erst ausgewertet, wenn fastd startet; S=50 glaube ich). Das heißt, die Entropy an der Stelle wird quasi Null sein. Wenn ich mich richtig erinnere, ist uns die Entropy ja ziemlich egal, aber ich kann nicht wirklich abschätzen, ob man bei dieser Variante nicht irgendwann dieselben Keys für verschiedene Router generiert. Für den Aufruf an sich sollte die Tatsache, dass der Dienst noch nicht läuft ja wahrscheinlich egal sein.

<blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #729fcf; padding-left: 1ex;">+       uci set fff.fastd='fff'
+       uci set fff.fastd.secret="$secret"
+       uci commit fff
</blockquote>
Die /etc/config/fff wird erst in 98-configure-fff generiert (auf einem frischen System). Daher wird das auf einem frischen System zu einem Fehler führen. Die billige Lösung wäre hier ein "touch /etc/config/fff" zu ergänzen, wenn man es richtig machen will müsste ggf. den Start von 98-configure-fff nach vorne verlegen (was aber wieder diverse Nebeneffekte haben könnte.) Ich denke, erstmal reicht es, wenn du ersteres machst.

<blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #729fcf; padding-left: 1ex;">+fi
+uci set fastd.fff.secret="$secret"
+uci commit fastd
+
+
</blockquote>
Eine newline reicht mE.

Ansonsten sieht das gut aus. Das mit der Entropy sollte man nochmal diskutieren, testen wird man das schlecht können.

Grüße

Adrian

<blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #729fcf; padding-left: 1ex;"> [ ! -d /etc/fastd/fff ] &&  mkdir -p /etc/fastd/fff
 ln -s /tmp/fastd_fff_peers /etc/fastd/fff/peers
 echo "#!/bin/sh" > /etc/fastd/fff/up.sh
--
2.11.0
</blockquote></pre>
        </blockquote>
      </div>
      <br>
      -- <br>
      Diese Nachricht wurde von meinem Android-Gerät mit K-9 Mail
      gesendet.
    </blockquote>
  </body>
</html>