Bitcoin Forum
November 16, 2024, 04:07:26 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Projekt T-1000  (Read 235 times)
trantute2 (OP)
Hero Member
*****
Offline Offline

Activity: 784
Merit: 544



View Profile
March 04, 2018, 10:27:35 AM
Last edit: March 14, 2018, 09:56:07 AM by trantute2
Merited by qwk (5), tyz (1)
 #1

Hallo Leute,

da ich mich vor Scham nicht in den Kursverlauf-Thread traue so musste ich mir anderweitig die Zeit vertreiben.  Wink

Anbei das Resultat:

https://github.com/curiosity81/T-1000

T-1000 steht für Trezer0-1000 TINTE-1000. Das ist nichts anderes als eine Art Hardware-Wallet. Der Fokus liegt hierbei auf der sicheren Signierung von Nachrichten und NICHT auf Werttransaktionen.

Der Name kommt von der verwendeten Hardware: Einem Raspberry Pi zero, mit 1GHz und 512 MB RAM. Die Kosten für so ein Ding betragen laut Internet so um die 5$, deswegen kann man auch davon ausgehen, dass die Materialkosten insgesamt nicht mehr als 1000 Cent sind. Natürlich bekommt man die Hardware für diesen Preis nicht auf amazon. Seis drum.

Ich bin mir im Klaren, dass es sowas wie Hardware-Wallets schon gibt. Aber vor Linux gab es auch schon Windows. Der Torvalds hat trotzdem sein Ding durchgezogen. Natürlich schiesst das Projekt in gewisser Weise mit Kanonen auf Spatzen, was die verwendete Software angeht. Man kann also sicherlich noch die Performance verbessern.

Wenn ihr also Spass an sowas habt, dann seid ihr herzlich dazu eingeladen das Projekt als Startpunkt für eure eigenen zu nehmen. Die Anleitung sollte für alle Pi-Versionen funktionieren.

Desweiteren bin ich auf eure Verbesserungsvorschläge gespannt.
BitCharlie
Sr. Member
****
Offline Offline

Activity: 424
Merit: 343


View Profile
March 05, 2018, 11:16:04 AM
 #2

Trezer? Das scheint ja sehr an Trezor angelehnt zu sein. Zufällig haben die auch ein Model T.  Roll Eyes

So ein sehr ähnlicher Name nimmt eurem Projekt die Seriosität da es nach Nachahmer aussieht.
Besser noch einmal das naming überdenken. 
trantute2 (OP)
Hero Member
*****
Offline Offline

Activity: 784
Merit: 544



View Profile
March 06, 2018, 07:57:38 AM
 #3

Trezer? Das scheint ja sehr an Trezor angelehnt zu sein. Zufällig haben die auch ein Model T.  Roll Eyes

So ein sehr ähnlicher Name nimmt eurem Projekt die Seriosität da es nach Nachahmer aussieht.
Besser noch einmal das naming überdenken.  

Kann ich machen. Wobei der Name Trezer0-1000 eher ironisch gemeint war mit Anlehnung an "Terminator 2: Judgement Day"

Grin

Wie wärs schlicht mit Z-1000 für Zer0-1000.

Oder Zinahw für Zinahw Is Not An Hardware Wallet.

Weitere Vorschläge?
trantute2 (OP)
Hero Member
*****
Offline Offline

Activity: 784
Merit: 544



View Profile
March 06, 2018, 08:20:14 AM
Last edit: March 06, 2018, 10:31:36 AM by trantute2
 #4

Da man es nur zum signieren benutzen soll:

TINTE

TINTE Is Not (A) Trezor Emulator
TINTE Is Nearly Technical Easy
TINTE Is Not The Establishment

 Cheesy Cheesy Cheesy

Etwas ernster:

TINTE Inks Nicely Text Emission
TINTE Initials Neatly Text Emission.
mole0815
Moderator
Legendary
*
Offline Offline

Activity: 2548
Merit: 2709


Join the world-leading crypto sportsbook NOW!


View Profile
March 12, 2018, 04:29:42 PM
 #5

Z-1000 oder sogar Tinte ist wirklich besser als Trezer Grin
Klingt nach einem spannenden Projekt und Nachfrage sollte es ja auch geben... also falls es nicht zu technisch ist und für die breite Masse anwendbar ist  Smiley

.
.Duelbits.
█▀▀▀▀▀











█▄▄▄▄▄
TRY OUR
  NEW  UNIQUE
GAMES!
.
..DICE...
███████████████████████████████
███▀▀                     ▀▀███
███    ▄▄▄▄         ▄▄▄▄    ███
███   ██████       ██████   ███
███   ▀████▀       ▀████▀   ███
███                         ███
███                         ███
███                         ███
███   ▄████▄       ▄████▄   ███
███   ██████       ██████   ███
███    ▀▀▀▀         ▀▀▀▀    ███
███▄▄                     ▄▄███
███████████████████████████████
.
.MINES.
███████████████████████████████
████████████████████████▄▀▄████
██████████████▀▄▄▄▀█████▄▀▄████
████████████▀ █████▄▀████ █████
██████████      █████▄▀▀▄██████
███████▀          ▀████████████
█████▀              ▀██████████
█████                ██████████
████▌                ▐█████████
█████                ██████████
██████▄            ▄███████████
████████▄▄      ▄▄█████████████
███████████████████████████████
.
.PLINKO.
███████████████████████████████
█████████▀▀▀       ▀▀▀█████████
██████▀  ▄▄███ ███      ▀██████
█████  ▄▀▀                █████
████  ▀                    ████
███                         ███
███                         ███
███                         ███
████                       ████
█████                     █████
██████▄                 ▄██████
█████████▄▄▄       ▄▄▄█████████
███████████████████████████████
10,000x
MULTIPLIER
NEARLY UP TO
.50%. REWARDS
▀▀▀▀▀█











▄▄▄▄▄█
trantute2 (OP)
Hero Member
*****
Offline Offline

Activity: 784
Merit: 544



View Profile
March 13, 2018, 07:36:25 AM
 #6

Z-1000 oder sogar Tinte ist wirklich besser als Trezer Grin
Klingt nach einem spannenden Projekt und Nachfrage sollte es ja auch geben... also falls es nicht zu technisch ist und für die breite Masse anwendbar ist  Smiley

Danke.

Am WE eingebaut ist ein Test der Systemordner um Veränderungen der SD-Karte zu entdecken (hier bietet sich Raspbian Lite an). Mich würde interessieren ob es da noch Löcher gibt, d.h. ob es möglich ist, das Verhalten eines Linux-System über die variablen Ordner (/var, /tmp, /dev, /proc, /sys, /run) zu manipulieren wenn das System ausgeschaltet ist.

Auch bin ich noch nicht zufrieden mit der Firewall. Aktuell sind alle eingehenden Verbindungen geschlossen. Bis auf die bitcoin core ports kann aber nach draussen telefoniert werden. Das würde ich gerne unterbinden. Schliesse ich alle Ports und öffne nur den Port für ssh, dann kann sich das Gerät nicht mehr am Desktoprechner anmelden. Meine Vermutung ist: da läuft noch ein Dienst, welcher beim Desktoprechner Bescheid gibt, dass da was unter raspberrypi.local erreichbar ist. Und dieser Dienst muss erreichbar bleiben. Vielleicht weiss jemand hier, welcher Dienst das ist, oder wie dieser herauszufinden ist (ein nmap-Scan hat nicht viel gebracht, habe das aber noch nicht ernsthaft analysiert).

Aktuell überlege ich, ob ich mich nicht noch an einer Electrum-Variante versuchen soll, so könnte sich sogar eine vollständige Wallet zusammenbauen lassen. Dann müssten aber wiederum weitere Ports offen bleiben.

Desweiteren habe ich noch ein Projekt gefunden, wo jemand die Trezor-Software auf einen Raspberry pi zero portiert hat: https://www.pitrezor.com/2018/02/pitrezor-homemade-trezor-bitcoin-wallet.html. Sowas ist also auch direkt möglich.

Bertrannus
Member
**
Offline Offline

Activity: 86
Merit: 19


View Profile
March 13, 2018, 07:29:52 PM
 #7

Am WE eingebaut ist ein Test der Systemordner um Veränderungen der SD-Karte zu entdecken (hier bietet sich Raspbian Lite an). Mich würde interessieren ob es da noch Löcher gibt, d.h. ob es möglich ist, das Verhalten eines Linux-System über die variablen Ordner (/var, /tmp, /dev, /proc, /sys, /run) zu manipulieren wenn das System ausgeschaltet ist.

  • /tmp sollte / kann leer sein, wenn ausgeschaltet
  • /proc ist ja nicht wirklich ein Dateisystem, sondern ein Kommunikationskanal zum Kernel proc(5). Bitte beschäftige dich mal mit virtuellen Dateisystemen von Linux.
  • /var sind z.B. log dateien, da könnte ein Angreifer vielleicht ansetzen, wenn aus dem Verzeichnis Daten gelsen werden


Meine Vermutung ist: da läuft noch ein Dienst, welcher beim Desktoprechner Bescheid gibt, dass da was unter raspberrypi.local erreichbar ist. Und dieser Dienst muss erreichbar bleiben. Vielleicht weiss jemand hier, welcher Dienst das ist, oder wie dieser herauszufinden ist (ein nmap-Scan hat nicht viel gebracht, habe das aber noch nicht ernsthaft analysiert).

Sollte der avahi-daemon sein. Steht auch hier. Alternative hirzu wäre es, irgendeinen localer DNS server zu basteln. Der Pi sollte aber immer über eine IP erreichbar sein.
Bertrannus
Member
**
Offline Offline

Activity: 86
Merit: 19


View Profile
March 13, 2018, 08:09:17 PM
Merited by qwk (2), trantute2 (1)
 #8

Noch paar Notizen mehr:
  • Ein fdisk -l oder lsblk sollte gegenüber gparted genügen
  • Eine Alternative zu dd ist z.B. Etcher, da dd falsch verwendet fatal ist
  • Wieso compilierst du bitcoin core mit gui? cli reicht doch?
  • AppArmor könntest du noch zusätzlich verwenden
  • Wieso startest du bitcoind für jedes Kommando neu? Reicht es nicht, es beim booten zu starten?
  • Wenn du wirklich nur Nachrichten signieren möchtest, könnte man doch ein Tool verwenden, welches nur den Signierungsalgo durchläuft? Dann spart man sich die Verwendung von Bitcoin Core.

PS: nette rekursive akronyme!
trantute2 (OP)
Hero Member
*****
Offline Offline

Activity: 784
Merit: 544



View Profile
March 14, 2018, 07:28:50 AM
 #9

Sollte der avahi-daemon sein. Steht auch hier. Alternative hirzu wäre es, irgendeinen localer DNS server zu basteln. Der Pi sollte aber immer über eine IP erreichbar sein.

Danke, ein wertvoller Hinweis. Werde ich mir genauer angucken.
trantute2 (OP)
Hero Member
*****
Offline Offline

Activity: 784
Merit: 544



View Profile
March 14, 2018, 07:45:16 AM
Last edit: March 14, 2018, 07:55:31 AM by trantute2
 #10

Noch paar Notizen mehr:
  • Ein fdisk -l oder lsblk sollte gegenüber gparted genügen
  • Eine Alternative zu dd ist z.B. Etcher, da dd falsch verwendet fatal ist
  • Wieso compilierst du bitcoin core mit gui? cli reicht doch?
  • AppArmor könntest du noch zusätzlich verwenden
  • Wieso startest du bitcoind für jedes Kommando neu? Reicht es nicht, es beim booten zu starten?
  • Wenn du wirklich nur Nachrichten signieren möchtest, könnte man doch ein Tool verwenden, welches nur den Signierungsalgo durchläuft? Dann spart man sich die Verwendung von Bitcoin Core.

PS: nette rekursive akronyme!

  • Zu fdisk: Geht natürlich. Ich nutze standardmäßig gparted. Ist wohl ein Geschmacks- bzw. Gewohnheitsding.
  • Zu dd: Wiederum eine Frage des Geschmacks. Ich bevorzuge dd.
  • Zur GUI: Bequemlichkeit. Und falls man doch mal was mit der GUI machen möchte. Funktioniert übrigens überraschend gut. Wohlgemerkt gilt diese Ausage nur für keine Verbindung zum P2P-Netzwerk.
  • Zu AppArmor: Kenne ich noch nicht. Werde mich damit beschäftigen.
  • Zu bitcoind: Ich möchte nicht, dass die bitcoin core binaries unverschlüsselt auf der sd-Karte rumliegen deswegen liegen sie im verschlüsselten /home/t1000-Ordner. Ich gehe davon aus, dass /home/t1000 nach dem Start noch nicht entschlüsselt ist. Und ich gehe davon aus, dass ecryptfs die Entschlüsselung erst durchührt, wenn der erste ssh-Zugriff auf den Account t1000 ausgeführt wird. Muss wohl auch so sein, da das Nutzerpasswort von t1000 für die Entschlüsselung von /home/t1000 notwendig ist. Natürlich könnte man bitcoind nach dem ersten ssh-Zugriff einmal starten. In der aktuellen Form ist es zwar langsamer, aber imho sauberer.
  • Zum Algo: Genauso ist es. Das Projekt ist auch nur ein Proof of Concept und ausserdem gibt es keine Binaries für den entsprechenden ARM-Prozessor. Steht alles in der Conclusion

Danke für die Anregungen, werde darüber nachdenken.
trantute2 (OP)
Hero Member
*****
Offline Offline

Activity: 784
Merit: 544



View Profile
March 15, 2018, 07:04:10 AM
 #11

Sollte der avahi-daemon sein. Steht auch hier. Alternative hirzu wäre es, irgendeinen localer DNS server zu basteln. Der Pi sollte aber immer über eine IP erreichbar sein.

Es scheint der avahi-daemon zu sein:

https://wiki.ubuntuusers.de/Avahi/

Das Kommando:

Code:
sudo netstat -tulpen | grep avahi

Zeigt mir auf dem Gerät die entsprechenden Informationen.

Der erste Port ist wohl definiert:

5353

Weisst Du, oder jemand anderes, wie man den zweiten Port, welcher zwischen 32768 und 61000 liegt, festlegen kann?
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!