{"id":380015,"date":"2016-01-31T05:30:17","date_gmt":"2016-01-31T04:30:17","guid":{"rendered":"http:\/\/blog.embedded-system-design.de\/?p=380015"},"modified":"2016-01-31T05:30:17","modified_gmt":"2016-01-31T04:30:17","slug":"gpg-auf-mehreren-mobilen-geraeten","status":"publish","type":"post","link":"https:\/\/blog.embedded-system-design.de\/index.php\/2016\/01\/31\/gpg-auf-mehreren-mobilen-geraeten\/","title":{"rendered":"GPG auf mehreren mobilen Ger\u00e4ten"},"content":{"rendered":"<p>Bisher war ich recht z\u00f6gerlich, GPG-Schl\u00fcssel auf mobilen Ger\u00e4ten auszurollen. Zu gro\u00df waren mein Bedenken, mit dem Ger\u00e4t auch meine digitale Identit\u00e4t zu verlieren. Hier eine technische L\u00f6sung, mit dem sich der Schl\u00fcsselverlust prinzipiell handhaben l\u00e4sst &#8211; ohne eine neue Identit\u00e4t erschaffen zu m\u00fcssen.<\/p>\n<p>Hauptschl\u00fcssel sind Nachweis unserer Online-Identit\u00e4t und damit sehr kostbar. Wenn ein Fremder Zugriff auf den privaten Hauptschl\u00fcssel erlangt, kann er sich f\u00fcr den urspr\u00fcnglichen Besitzer ausgeben: Er kann Nachrichten in seinem Namen versenden, Schl\u00fcssel beglaubigen oder andere Dinge anstellen, die sonst nur der Eigent\u00fcmer k\u00f6nnte. Daher muss der private Hauptschl\u00fcssel generell sehr-sehr sicher aufbewahrt werden. Geht er verloren, ist man einfach gezwungen, seine Reputation im <em>Web-of-Trust<\/em> ganz von vorn aufzubauen. Langj\u00e4hrig gepflegte Schl\u00fcssel-Beglaubigungen werden auf einmal hinf\u00e4llig. Wir m\u00fcssten alle unsere Kommunikationspartner benachrichtigen und Ihnen unseren neuen \u00f6ffentlichen Schl\u00fcssel aush\u00e4ndigen. F\u00fcr mich nichts, um sie auf jedem leicht verschwindenden Ger\u00e4t durch die Gegend zu tragen.<\/p>\n<p>Jedoch wird es verdammt l\u00e4stig, alle Schl\u00fcssel stets extrem sicher aufzubewahren: Ich m\u00fcsste mir erst einen geeigneten portablen Datentr\u00e4ger suchen und damit runter in meinen geheimen Keller gehen, meine W\u00e4chter davon \u00fcberzeugen, dass Ich auch wirklich Ich bin, durch ein Labyrinth finden, dessen Weg nur ich kenne, und meine bissigen Wachhunden f\u00fcttern. Erst dann w\u00e4re der Weg frei zum Safe mit dem netzwerklosen Laptop. Mit diesem w\u00fcrde ich die Nachricht auf dem Datentr\u00e4ger unterschreiben. Und zur\u00fcck an meinem Internet-Rechner abschicken.<\/p>\n<p>Geht das nicht einfacher? Ja. &#8212; Unterschl\u00fcssel machen das Leben leichter: Mit einem automatisch erzeugten Unterschl\u00fcssel f\u00fcr den vertraulichen Nachrichtenaustausch und einem weiteren f\u00fcr Unterschriften. Anstatt &#8211; wie bisher &#8211; den Hauptschl\u00fcssel zu verwenden, nutzt jeder Eurer Kommunikationspartner fortan die Unterschl\u00fcssel, um Nachrichten f\u00fcr Euch zu verschl\u00fcsseln oder eure Unterschrift zu \u00fcberpr\u00fcfen. Entsprechend entschl\u00fcsselst und signiert Ihr mit eurem privaten Unterschl\u00fcsseln.<\/p>\n<p>Den Hauptschl\u00fcssel werdet Ihr nur in Au\u00dfnahmef\u00e4llen verwenden. Und zwar dann, wenn Ihr etwas an euren eigenen oder einem fremden Schl\u00fcssel \u00e4ndern m\u00f6chtet. Genauer gesagt, ben\u00f6tigt Ihr euren privaten Hauptschl\u00fcssel:<\/p>\n<ul>\n<li>um einen fremden Schl\u00fcssel zu beglaubigen oder eine get\u00e4tigte Beglaubigung zur\u00fcckzurufen,<\/li>\n<li><span id=\"line-71\" class=\"anchor\"><\/span>um eine neue Benutzerkennung (UID) hinzuzuf\u00fcgen oder eine UID als prim\u00e4r zu markieren,<span id=\"line-72\" class=\"anchor\"><\/span><\/li>\n<li>um einen neuen Unterschl\u00fcssel zu erstellen,<\/li>\n<li><span id=\"line-73\" class=\"anchor\"><\/span>um eine Benutzerkennung (UID) oder Unterschl\u00fcssel zur\u00fcckzurufen,<\/li>\n<li><span id=\"line-74\" class=\"anchor\"><\/span>um die Eigenschaften einer UID zu ver\u00e4ndern,<span id=\"line-75\" class=\"anchor\"><\/span><\/li>\n<li>um das Verfallsdatum deines Hauptschl\u00fcssels oder eines Unterschl\u00fcssels zu ver\u00e4ndern, oder<span id=\"line-76\" class=\"anchor\"><\/span><\/li>\n<li>um den kompletten Schl\u00fcssel zur\u00fcckzurufen oder ein R\u00fcckrufzertifikat zu erstellen,<span id=\"line-77\" class=\"anchor\"><\/span><span id=\"line-78\" class=\"anchor\"><\/span><\/li>\n<\/ul>\n<p class=\"line874\">weil bei jeder dieser Operationen eine Beglaubigung durch den Hauptschl\u00fcssel erforderlich ist.<span id=\"line-79\" class=\"anchor\"><\/span><span id=\"line-80\" class=\"anchor\"><\/span><\/p>\n<p class=\"line874\">Das Erzeugen und Zur\u00fcckziehen von Unterschl\u00fcsseln hat keinen Einfluss auf die Reputation des Hauptschl\u00fcssels. Wenn eure Unterschl\u00fcssel geklaut werden, w\u00e4hrend dein Hauptschl\u00fcssel noch sicher ist, kannst Du die kompromittierten Unterschl\u00fcssel zur\u00fcckziehen und gegen neue austauschen ohne Dir selbst eine neue Reputation aufbauen zu m\u00fcssen und ohne die Reputation anderer zu schm\u00e4lern, die mit deinem Hauptschl\u00fcssel signiert wurden. Die \u00f6ffentlichen Unterschl\u00fcssel werden \u00fcber Schl\u00fcssel-Server bekannt gemacht.<\/p>\n<h2 class=\"line874\">Wie geht&#8217;s?<\/h2>\n<h3 class=\"line874\">Anlegen eines Hauptschl\u00fcssels<\/h3>\n<p>Fall Ihr noch keinen eigenen GPG-Schl\u00fcssel habt, m\u00fcsst Ihr Euch einen anlegen. Wer bereits ein Schl\u00fcsselpaar sein eigen nennt und das Verschl\u00fcsseln von Mails mit <a href=\"https:\/\/www.gnupg.org\/\" target=\"_blank\">GPG<\/a> gewohnt ist, kann diesen Punkt \u00fcberspringen.<\/p>\n<blockquote>\n<pre>$ gpg --gen-key<\/pre>\n<\/blockquote>\n<div data-canvas-width=\"182.04481919999998\">RSA versus DSA &#8212; Bei der Wahl der Schl\u00fcssell\u00e4ngen, kann Euch <a href=\"https:\/\/www.bsi.bund.de\/DE\/Publikationen\/TechnischeRichtlinien\/tr02102\/index_htm.html\" target=\"_blank\">BSI TR-02102 Kryptographische Verfahren: Empfehlungen und Schl\u00fcssell\u00e4ngen<\/a> helfen. F\u00fcr einen Einsatzzeitraum nach 2016 ist es sinnvoll, RSA-Schl\u00fcssel von mindestens 3000 Bits L\u00e4nge zu verwenden. Meine Empfehlung daher RSA mit 3072 bzw. 4096 Bit zu verwenden. Die Kennung Eures neu erzeugten Hauptschl\u00fcssels merken, z.B. <em>D328558F<\/em>. Sie wird noch ben\u00f6tigt &#8211; \u00fcberall dort, wo im Folgenden <em>MASTERKEYID<\/em> steht.<\/div>\n<div data-canvas-width=\"182.04481919999998\"><\/div>\n<h3>Neuer Unterschl\u00fcssel<\/h3>\n<p>Der standardm\u00e4\u00dfig erzeugte GPG-Schl\u00fcssel enth\u00e4lt bereits einen Unterschl\u00fcssel zum Verschl\u00fcsseln. Da auf den mobilen Ger\u00e4ten der Hauptschl\u00fcssel nicht gespeichert sein wird, ist es notwendig, einen zus\u00e4tzlichen Unterschl\u00fcssel zum Unterzeichnen anzulegen. Mit GPG geht das \u00fcber den Befehl <em>addkey<\/em>.<\/p>\n<blockquote>\n<pre>$ gpg --edit-key MASTERKEYID <strong>addkey<\/strong><\/pre>\n<\/blockquote>\n<p>Separater Signaturschl\u00fcssel:<\/p>\n<blockquote>\n<pre>Bitte w\u00e4hlen Sie, welche Art von Schl\u00fcssel Sie m\u00f6chten:\n\u00a0\u00a0 (3) DSA (nur unterschreiben\/beglaubigen)\n\u00a0\u00a0 (4) RSA (nur signieren\/beglaubigen)\n\u00a0\u00a0 (5) Elgamal (nur verschl\u00fcsseln)\n\u00a0\u00a0 (6) RSA (nur verschl\u00fcsseln)\nIhre Auswahl? 4<\/pre>\n<\/blockquote>\n<p>Auch nach Verlust eines Schl\u00fcssels werden neuen Unterschl\u00fcssel erzeugt, die dann zuk\u00fcnftig alternativ zu den zur\u00fcckgezogenen Unterschl\u00fcsseln verwendet werden sollen.<\/p>\n<h3>Unterschl\u00fcssel pro Ger\u00e4t versus ein Unterschl\u00fcssel f\u00fcr alle Ger\u00e4te<\/h3>\n<p><span id=\"result_box\" class=\"\" lang=\"de\"><span class=\"hps\">Man k\u00f6nnte<\/span> jetzt <span class=\"hps\">versucht sein,<\/span> <span class=\"hps\">einen<\/span> eigenen <span class=\"hps\">Unterschl\u00fcssel<\/span> f\u00fcr jedes<span class=\"hps\"> Ger\u00e4t zu verwenden. Denn bei Verlust<\/span> eines Ger\u00e4tes m\u00fcsste dann nur noch der <span class=\"hps\">potenziell<\/span> <span class=\"hps\">gef\u00e4hrdet<\/span> Unters<span class=\"hps\">chl\u00fcssel<\/span> des<span class=\"hps\"> Ger\u00e4tes<\/span> <span class=\"hps\">ausgetauscht werden.<\/span> Bei Einsatz des selben Unterschl\u00fcssels <span class=\"hps\">auf allen Ger\u00e4ten m\u00fcssten bei Kompromittierung eines Ger\u00e4tes <\/span>die Schl\u00fcssel auf allen Ger\u00e4ten <span class=\"hps\">ausgetauscht werden.<\/span> &#8212; <span class=\"hps\">Doch das<\/span> <span class=\"hps\">funktioniert nur f\u00fcr<\/span> <span class=\"hps\">Signatur-Unterschl\u00fcssel<\/span>. <span class=\"hps\">Wenn GPG mehrere <\/span><span class=\"hps\">Verschl\u00fcsselungsschl\u00fcssel<\/span> vorfindet, verschl\u00fcsselt es leider <span class=\"hps\">nur<\/span> mit <span class=\"hps\">dem letzten<\/span> <span class=\"hps\">und nicht<\/span> mit<span class=\"hps\"> allen bekannten<\/span> <span class=\"hps\">nicht-widerrufenen<\/span> <span class=\"hps\">Verschl\u00fcsselungsschl\u00fcssel<\/span><span class=\"hps\">.<\/span><\/span><\/p>\n<h3 dir=\"ltr\">Backup!<\/h3>\n<p dir=\"ltr\">Hier angelangt, am besten ein Backup der privaten Schl\u00fcssel anlegen. Dieses enth\u00e4lt den Hauptschl\u00fcssel. Sicher aufbewahren! Damit k\u00f6nnt ihr sp\u00e4ter kompromittierte Schl\u00fcssel zur\u00fcckrufen und neue Schl\u00fcssel beglaubigen.<\/p>\n<blockquote>\n<pre>$ gpg -a --output secret-backup.asc --export-secret-<strong>keys<\/strong> MASTERKEYID<\/pre>\n<\/blockquote>\n<div dir=\"ltr\"><\/div>\n<h3>Export ohne Hauptschl\u00fcssel<\/h3>\n<p>Die erzeugten privaten Unterschl\u00fcssel lassen sich f\u00fcr den Einsatz auf mobilen Ger\u00e4ten ohne den Hauptschl\u00fcssel exportieren. Ich empfehle Euch, diese exportierten Unterschl\u00fcssel mit einer anderen Passphrase zu sichern als Euren sicher aufbewahrten Hauptschl\u00fcssel.<\/p>\n<blockquote>\n<pre>$ gpg edit-key <tt class=\"backtick\">MASTERKEYID <\/tt><strong>passwd<\/strong><\/pre>\n<\/blockquote>\n<p>Auf diesem Wege bleibt Euer privater Hauptschl\u00fcssel gesch\u00fctzt, wenn Euer t\u00e4glich genutztes Passwort von jemanden kompromittiert wird, der Zugriff auf Euer Backup hat: Das Schl\u00fcsselmaterial im Backup bleibt durch die alte Passphrase gesch\u00fctzt.<\/p>\n<p>Mit ge\u00e4nderter neuer Passphrase lassen sich die Unterschl\u00fcssel ohne Hauptschl\u00fcssel exportieren:<\/p>\n<blockquote>\n<pre>$ gpg -a --output secret-subkeys.asc --export-secret-<strong>subkeys<\/strong> <tt class=\"backtick\">MASTERKEYID<\/tt><\/pre>\n<\/blockquote>\n<p>Alternativ k\u00f6nnt Ihr die Unterschl\u00fcssel-ID gefolgt von einem Ausrufezeichen angeben, um festzulegen, welche Unterschl\u00fcssel exportiert werden sollen:<\/p>\n<blockquote>\n<pre><tt class=\"backtick\">gpg\u00a0--output\u00a0secret-subkeys\u00a0--export-secret-<strong>subkeys<\/strong>\u00a0SUBKEYID!\u00a0[SUBKEYID! ...]<\/tt><\/pre>\n<\/blockquote>\n<p>Die erzeugte Datei k\u00f6nnt Ihr auf Euren mobilen Ger\u00e4ten importieren, um z.B. Eure Mails auch unterwegs entschl\u00fcsseln und zu unterschreiben. Da der Hauptschl\u00fcssel nicht mehr enthalten ist, kann mit dem Schl\u00fcsselmaterial auf dem mobilen Ger\u00e4t kein Schl\u00fcssel beglaubigt oder zur\u00fcckgerufen werden. Das k\u00f6nnt nur Ihr mit dem sicher aufbewahrten Hauptschl\u00fcssel &#8211; nicht mit dem Mobilger\u00e4t.<\/p>\n<p>Wenn Ihr auch den Hauptschl\u00fcssel auf dem PC entfernen wollt, l\u00f6scht den kompletten privaten Schl\u00fcssel<\/p>\n<blockquote>\n<pre><tt class=\"backtick\">$ gpg\u00a0--delete-secret-keys MASTERKEYID<\/tt><\/pre>\n<\/blockquote>\n<p>und importiert die oben exportierten Unterschl\u00fcssel:<\/p>\n<blockquote>\n<pre><tt class=\"backtick\">gpg\u00a0--import\u00a0secret-subkeys.asc<\/tt><\/pre>\n<\/blockquote>\n<p>Hinweis: <em>gpg -K<\/em> zeigt <em>sec#<\/em> statt nur <em>sec<\/em> f\u00fcr private Schl\u00fcssel an, die nicht wirklich da sind. Wenn ihr z.B. die oben ohne Hauptschl\u00fcssel exportierten Unterschl\u00fcssel auf einem Ger\u00e4t importiert, m\u00fcsste <em>sec#<\/em> erscheinen.<\/p>\n<h2>Im Ernstfall &#8212; Wiederrufen von Unterschl\u00fcsseln<\/h2>\n<p>Wenn das Ungl\u00fcck seinen Lauf nimmt und Ihr gezwungen seid, Schl\u00fcssel zur\u00fcckzurufen, macht Ihr das Folgende: Zum Wiederrufen von Unterschl\u00fcsseln ben\u00f6tigt Ihr den Hauptschl\u00fcssel &#8211; ggf. aus Eurem Backup.<\/p>\n<blockquote>\n<pre>$ gpg --edit-key MASTERKEYID<\/pre>\n<pre>gpg (GnuPG) 2.0.22; Copyright (C) 2013 Free Software Foundation, Inc.\nThis is free software: you are free to change and redistribute it.\nThere is NO WARRANTY, to the extent permitted by law.<\/pre>\n<pre>Geheimer Schl\u00fcssel ist vorhanden.<\/pre>\n<pre>pub  4096R\/D328558F erzeugt: 2016-01-03 verf\u00e4llt: 2016-01-10 Aufruf: SC \n                    Vertrauen: uneingeschr\u00e4nkt G\u00fcltigkeit: uneingeschr\u00e4nkt\nsub  4096R\/484B7199 erzeugt: 2016-01-03 verf\u00e4llt: 2016-01-10 Aufruf: E \nsub  2048R\/C5A0BF20 erzeugt: 2016-01-03 verf\u00e4llt: 2016-01-06 Aufruf: S \n[ uneing.] (1). Rolf Thomasius (Test-Key) &lt;...&gt;<\/pre>\n<\/blockquote>\n<p>W\u00e4hlt den zur\u00fcckzuziehenden Unterschl\u00fcssel (sub) mit den Befehl <em>key<\/em>. Der Befehl <em>key<\/em> toggelt die Auswahl. Dieser erwartet eine Nummer als Parameter. Die Nummer steht f\u00fcr den Unterschl\u00fcsseleintrag. Die Nummer 1 steht f\u00fcr den ersten, Nummer 2 f\u00fcr den zweiten usw. Ausgew\u00e4hlte Unterschl\u00fcsseleintr\u00e4ge sind mit einen * versehen. Es k\u00f6nnen mehrere Eintr\u00e4ge durch aufeinanderfolgende Aufrufe gew\u00e4hlt oder abgew\u00e4hlt werden. Im Beispiel markieren wir den Signaturschl\u00fcssel C5A0BF20 und den f\u00fcr die Verschl\u00fcsselung 484B7199, um sie anschlie\u00dfend zur\u00fcckzuziehen.<\/p>\n<blockquote>\n<pre>gpg&gt; key 1\n[...]\ngpg&gt; key 2<\/pre>\n<pre>pub  4096R\/D328558F erzeugt: 2016-01-03 verf\u00e4llt: 2016-01-10 Aufruf: SC \n                    Vertrauen: uneingeschr\u00e4nkt G\u00fcltigkeit: uneingeschr\u00e4nkt\nsub* 4096R\/484B7199 erzeugt: 2016-01-03 verf\u00e4llt: 2016-01-10 Aufruf: E \nsub* 2048R\/C5A0BF20 erzeugt: 2016-01-03 verf\u00e4llt: 2016-01-06 Aufruf: S \n[ uneing.] (1). Rolf Thomasius (Test-Key) &lt;...&gt;<\/pre>\n<\/blockquote>\n<p>Der ausgew\u00e4hlte Unterschl\u00fcssel wird mit dem Befehl <em>revkey<\/em> zur\u00fcckgezogen.<\/p>\n<blockquote>\n<pre>gpg&gt; revkey<\/pre>\n<\/blockquote>\n<h2>Verteilen \u00fcber Schl\u00fcsselserver<\/h2>\n<p>\u00dcber \u00f6ffentliche Schl\u00fcsselserver lassen sich die \u00f6ffentlichen Unterschl\u00fcssel inklusive des \u00f6ffentlichen Teil Eures Hauptschl\u00fcssels verbreiten. Beim Ver\u00f6ffentlichen werden ggf. auch die Schl\u00fcsselr\u00fcckrufe abgeglichen. Kommunikationspartner kommen so schnell und bequem an Euer aktuelles Schl\u00fcsselmaterial.<\/p>\n<blockquote>\n<pre><tt class=\"USERINPUT\">$ gpg --keyserver <i>pool.<a href=\"http:\/\/sks-keyservers.net\">sks-keyservers.net<\/a><\/i> --send-key <\/tt>MASTERKEYID<\/pre>\n<\/blockquote>\n<p>Die Schl\u00fcsselserver synchronisieren sich weltweit in kurzen Zeitabst\u00e4nden. Es gen\u00fcgt daher, Schl\u00fcssel \u00fcber einen Server zu publizieren. Der oben angegebene Servername f\u00fchrt zu einer zuf\u00e4lligen Wahl eines am weltweiten Netzwerk teilnehmenden Servers.<\/p>\n<h2>Mail-Verschl\u00fcsselung auf einem Androiden<\/h2>\n<p>Zur Mailverschl\u00fcsselung auf dem Androiden empfehle ich <a href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.fsck.k9\" target=\"_blank\">K9-Mail<\/a> in Verbindung mit <a href=\"https:\/\/play.google.com\/store\/apps\/details?id=org.sufficientlysecure.keychain\" target=\"_blank\">OpenKeychain<\/a>.<\/p>\n<p>Verschl\u00fcsselt Ihr Eure Mails? Hinterlasst einen Kommentar!<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bisher war ich recht z\u00f6gerlich, GPG-Schl\u00fcssel auf mobilen Ger\u00e4ten auszurollen. Zu gro\u00df waren mein Bedenken, mit dem Ger\u00e4t auch meine digitale Identit\u00e4t zu verlieren. Hier eine technische L\u00f6sung, mit dem sich der Schl\u00fcsselverlust prinzipiell handhaben l\u00e4sst &#8211; ohne eine neue Identit\u00e4t erschaffen zu m\u00fcssen. Hauptschl\u00fcssel sind Nachweis unserer Online-Identit\u00e4t und damit sehr kostbar. Wenn ein &hellip; <\/p>\n<p><a class=\"more-link btn\" href=\"https:\/\/blog.embedded-system-design.de\/index.php\/2016\/01\/31\/gpg-auf-mehreren-mobilen-geraeten\/\">Weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":394385,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1,3,13],"tags":[32],"_links":{"self":[{"href":"https:\/\/blog.embedded-system-design.de\/index.php\/wp-json\/wp\/v2\/posts\/380015"}],"collection":[{"href":"https:\/\/blog.embedded-system-design.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.embedded-system-design.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.embedded-system-design.de\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.embedded-system-design.de\/index.php\/wp-json\/wp\/v2\/comments?post=380015"}],"version-history":[{"count":0,"href":"https:\/\/blog.embedded-system-design.de\/index.php\/wp-json\/wp\/v2\/posts\/380015\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.embedded-system-design.de\/index.php\/wp-json\/"}],"wp:attachment":[{"href":"https:\/\/blog.embedded-system-design.de\/index.php\/wp-json\/wp\/v2\/media?parent=380015"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.embedded-system-design.de\/index.php\/wp-json\/wp\/v2\/categories?post=380015"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.embedded-system-design.de\/index.php\/wp-json\/wp\/v2\/tags?post=380015"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}