Inhoudsopgave:

HackerBox 0027: Cypherpunk - Ajarnpa
HackerBox 0027: Cypherpunk - Ajarnpa

Video: HackerBox 0027: Cypherpunk - Ajarnpa

Video: HackerBox 0027: Cypherpunk - Ajarnpa
Video: Hackerboxes 0027: Cypherpunk 2024, November
Anonim
HackerBox 0027: Cypherpunk
HackerBox 0027: Cypherpunk

Cypherpunk - Deze maand onderzoeken HackerBox-hackers privacy en cryptografie. Deze Instructable bevat informatie voor het werken met HackerBox #0027, die u hier kunt ophalen zolang de voorraad strekt. Als u ook maandelijks zo'n HackerBox in uw mailbox wilt ontvangen, schrijf u dan in op HackerBoxes.com en doe mee aan de revolutie!

Onderwerpen en leerdoelen voor HackerBox 0027:

  • Begrijp de belangrijke sociale implicaties van privacy
  • Beveilig camera's op persoonlijke elektronische apparaten
  • Verken de geschiedenis en wiskunde van cryptografie
  • Contextualiseer veelgebruikte cryptografische software
  • Configureer een STM32 ARM processor "Black Pill" board
  • Programmeer de STM32 Black Pill met behulp van de Arduino IDE
  • Integreer een toetsenbord en TFT-scherm met de Black Pill
  • Repliceer functionaliteit van de WWII Enigma Machine
  • Meervoudige verificatie begrijpen
  • Ga de soldeeruitdaging aan om een U2F Zero USB-token te bouwen

HackerBoxes is de maandelijkse abonnementsservice voor doe-het-zelf-elektronica en computertechnologie. Wij zijn hobbyisten, makers en experimenteerders. Wij zijn de dromers van dromen. HACK DE PLANEET!

Stap 1: HackerBox 0027: Inhoud van de doos

HackerBox 0027: Inhoud van de doos
HackerBox 0027: Inhoud van de doos
  • HackerBoxes #0027 Verzamelbare referentiekaart
  • Zwarte pil STM32F103C8T6-module
  • STLink V2 USB-programmeur
  • Full-color 2,4 inch TFT-scherm - 240 x 320 pixels
  • 4x4 Matrix-toetsenbord
  • 830 punt soldeerloze breadboard
  • 140-delige draadjumperset
  • Twee U2F Zero Soldering Challenge Kits
  • Grote groene prototype-printplaat van 9x15 cm
  • Exclusieve vinyl GawkStop Spy Blockers
  • Exclusieve aluminium magnetische draaibare webcamcover
  • Exclusieve EFF-patch
  • Privacy Badger-sticker
  • Tor-sticker

Enkele andere dingen die nuttig zullen zijn:

  • Soldeerbout, soldeer en standaard soldeergereedschappen
  • Vergrootglas en klein pincet voor SMT-soldeeruitdaging
  • Computer voor het uitvoeren van softwaretools

Het belangrijkste is dat je een gevoel van avontuur, doe-het-zelf-geest en nieuwsgierigheid van hackers nodig hebt. Hardcore doe-het-zelf-elektronica is geen triviale bezigheid, en we verwateren het niet voor je. Het doel is vooruitgang, niet perfectie. Als je volhardt en geniet van het avontuur, kan er veel voldoening worden gehaald uit het leren van nieuwe technologie en hopelijk het werkend krijgen van een aantal projecten. We raden aan om elke stap langzaam te doen, op de details te letten en wees niet bang om hulp te vragen.

Merk op dat er een schat aan informatie is voor huidige en toekomstige leden in de HackerBox FAQ.

Stap 2: Cypherpunks

Cypherpunks
Cypherpunks

A Cypherpunk [wikipedia] is een activist die pleit voor wijdverbreid gebruik van sterke cryptografie en privacyverhogende technologieën als een weg naar sociale en politieke verandering. Oorspronkelijk communiceerden ze via de elektronische mailinglijst van Cypherpunks, maar informele groepen streefden naar privacy en veiligheid door proactief gebruik van cryptografie. Cypherpunks zijn sinds het einde van de jaren tachtig bezig met een actieve beweging.

Eind 1992 richtten Eric Hughes, Timothy C. May en John Gilmore een kleine groep op die maandelijks bijeenkwam bij Gilmore's bedrijf Cygnus Solutions in de San Francisco Bay Area, en die tijdens een van de eerste bijeenkomsten met humor cypherpunks werd genoemd door Jude Milhon - afgeleid van codering en cyberpunk. In november 2006 werd het woord "cypherpunk" toegevoegd aan de Oxford English Dictionary.

De basisideeën zijn te vinden in A Cypherpunk's Manifesto (Eric Hughes, 1993): "Privacy is noodzakelijk voor een open samenleving in het elektronische tijdperk. … We kunnen niet verwachten dat regeringen, bedrijven of andere grote, gezichtsloze organisaties ons privacy geven … We moeten onze eigen privacy verdedigen als we die verwachten. … Cypherpunks schrijven code. We weten dat iemand software moet schrijven om privacy te verdedigen, en … we gaan het schrijven." Sommige opmerkelijke cypherpunks zijn of waren senior personeel bij grote technologiebedrijven, universiteiten en andere zijn bekende onderzoeksorganisaties.

Stap 3: Electronic Frontier Foundation (EFF)

Electronic Frontier Foundation (EFF)
Electronic Frontier Foundation (EFF)

De EFF [wikipedia] is een internationale non-profitorganisatie voor digitale rechten, gevestigd in San Francisco, Californië. De stichting werd in juli 1990 opgericht door John Gilmore, John Perry Barlow en Mitch Kapor om de burgerlijke vrijheden op internet te promoten.

De EFF verstrekt fondsen voor juridische verdediging in de rechtbank, presenteert amicus curiae-memoranda, verdedigt individuen en nieuwe technologieën tegen wat het beschouwt als onrechtmatige juridische bedreigingen, werkt om overheidsmisdrijven aan het licht te brengen, geeft advies aan de overheid en rechtbanken, organiseert politieke actie en massale mailings, ondersteunt een aantal nieuwe technologieën die volgens haar persoonlijke vrijheden en online burgerlijke vrijheden beschermen, een database en websites met gerelateerd nieuws en informatie bijhoudt, mogelijke wetgeving die naar haar mening inbreuk zou maken op persoonlijke vrijheden en redelijk gebruik, controleert en aanvecht, en vraagt om een lijst van wat het beschouwt onrechtmatige octrooien met de bedoeling om octrooien te verslaan die het als ongegrond beschouwt. EFF biedt ook tips, tools, how-to's, tutorials en software voor veiligere online communicatie.

HackerBoxes is er trots op een belangrijke donor te zijn van de Electronic Frontier Foundation. We raden iedereen ten zeerste aan om hier te klikken en uw steun te betuigen aan deze uiterst belangrijke non-profitorganisatie die digitale privacy en vrije meningsuiting beschermt. EFF's juridische werk, activisme en softwareontwikkelingsinspanningen van algemeen belang zijn bedoeld om onze fundamentele rechten in de digitale wereld te behouden. EFF is een Amerikaanse 501(c)(3) non-profitorganisatie en uw donaties kunnen fiscaal aftrekbaar zijn.

Stap 4: Opmerkelijke EFF-projecten

Opmerkelijke EFF-projecten
Opmerkelijke EFF-projecten

Privacy Badger is een browser-add-on die ervoor zorgt dat adverteerders en andere externe trackers niet in het geheim kunnen bijhouden waar u naartoe gaat en welke pagina's u op internet bekijkt. Als een adverteerder u zonder uw toestemming op meerdere websites lijkt te volgen, blokkeert Privacy Badger automatisch dat die adverteerder nog meer inhoud in uw browser laadt. Voor de adverteerder is het alsof je plotseling verdwenen bent.

Netwerkneutraliteit is het idee dat internetserviceproviders (ISP's) alle gegevens die via hun netwerken reizen eerlijk moeten behandelen, zonder ongepaste discriminatie ten gunste van bepaalde apps, sites of services. Het is een principe dat moet worden nageleefd om de toekomst van ons open internet te beschermen.

Security Education Companion is een nieuwe bron voor mensen die hun gemeenschappen willen helpen meer te weten te komen over digitale veiligheid. De behoefte aan robuuste persoonlijke digitale beveiliging groeit elke dag. Van basisgroepen tot maatschappelijke organisaties tot individuele EFF-leden, mensen uit onze hele gemeenschap uiten de behoefte aan toegankelijk veiligheidseducatief materiaal om te delen met hun vrienden, buren en collega's.

Met de Onion Router (Tor) kunnen gebruikers anoniem op internet surfen, chatten en instant messages verzenden. Tor is gratis software en een open netwerk dat helpt bij de verdediging tegen verkeersanalyse, een vorm van netwerksurveillance die de persoonlijke vrijheid en privacy, vertrouwelijke zakelijke activiteiten en relaties en de staatsveiligheid bedreigt.

Stap 5: Beveilig uw camera's

Beveilig uw camera's
Beveilig uw camera's

Volgens WIRED Magazine "kunnen spionagetools, of ze nu zijn ontworpen door inlichtingendiensten, cybercriminelen of internetcriminelen, je camera inschakelen zonder het indicatielampje te laten branden." [BEDRADE]

Terwijl hij als directeur van de FBI diende, hield James Comey een toespraak over codering en privacy. Hij merkte op dat hij een stukje tape over de webcamlens van zijn laptop plakte. [NPR]

Mark Zuckerberg kwam in het nieuws toen het publiek merkte dat hij dezelfde praktijk volgt. [TIJD]

HackerBox #0027 bevat een collectie op maat gemaakte vinyl GAWK STOP spy blockers en een aluminium magnetische draaibare webcamcover.

Stap 6: cryptografie

cryptografie
cryptografie

Cryptografie [wikipedia] is de praktijk en studie van technieken voor veilige communicatie in aanwezigheid van derden die tegenstanders worden genoemd. Cryptografie vóór de moderne tijd was in feite synoniem met encryptie, het omzetten van informatie van een leesbare staat naar schijnbare onzin. De afzender van een versleuteld bericht deelde de decoderingstechniek die nodig was om de originele informatie te herstellen alleen met de beoogde ontvangers, waardoor ongewenste personen niet hetzelfde konden doen. De cryptografieliteratuur gebruikt vaak de naam Alice ("A") voor de afzender, Bob ("B") voor de beoogde ontvanger en Eva ("luisteraar") voor de tegenstander. Sinds de ontwikkeling van rotorcoderingsmachines in de Eerste Wereldoorlog en de komst van computers in de Tweede Wereldoorlog, zijn de methoden die worden gebruikt om cryptologie uit te voeren steeds complexer en de toepassing ervan op grotere schaal toegepast. Moderne cryptografie is sterk gebaseerd op wiskundige theorie. Cryptografische algoritmen zijn ontworpen rond aannames van rekenhardheid, waardoor dergelijke algoritmen moeilijk te doorbreken zijn door een tegenstander.

Er zijn veel online bronnen om meer te leren over cryptografie. Hier zijn een paar uitgangspunten:

De reis naar cryptografie bij Khan Academy is een uitstekende reeks video's, artikelen en activiteiten.

Stanford University heeft een gratis online cursus cryptografie.

Bruce Schneier heeft een link geplaatst naar een online exemplaar van zijn klassieke boek Applied Cryptography. De tekst geeft een uitgebreid overzicht van moderne cryptografie. Het beschrijft tientallen cryptografische algoritmen en geeft praktisch advies over hoe ze te implementeren.

Stap 7: Gemeenschappelijke cryptografische software

Gemeenschappelijke cryptografische software
Gemeenschappelijke cryptografische software

Vanuit praktisch oogpunt zijn er een paar specifieke toepassingen van cryptografie waarvan we op de hoogte moeten zijn:

Pretty Good Privacy (PGP) is een coderingsprogramma dat cryptografische privacy en authenticatie biedt voor opgeslagen gegevens. PGP wordt gebruikt voor het ondertekenen, coderen en decoderen van tekst, e-mails, bestanden, mappen en zelfs hele schijfpartities.

Transport Layer Security (TLS) is een cryptografisch protocol dat zorgt voor communicatiebeveiliging via een computernetwerk. TLS wordt gebruikt in toepassingen zoals surfen op het web, e-mail, internetfaxen, instant messaging en voice over IP (VoIP). Websites kunnen TLS gebruiken om alle communicatie tussen hun servers en webbrowsers te beveiligen. TLS is gebaseerd op eerdere SSL-specificaties (Secure Sockets Layer).

Internet Protocol Security (IPsec) is een netwerkprotocolsuite die de gegevenspakketten die via een netwerk worden verzonden, verifieert en versleutelt. IPsec bevat protocollen voor het tot stand brengen van wederzijdse authenticatie tussen agenten aan het begin van de sessie en voor het onderhandelen over cryptografische sleutels die tijdens de sessie moeten worden gebruikt.

Een Virtual Private Network (VPN) breidt een privénetwerk uit over een openbaar netwerk en stelt gebruikers in staat om gegevens te verzenden en ontvangen via gedeelde of openbare netwerken alsof hun computerapparatuur rechtstreeks op het privénetwerk is aangesloten. De systemen aan elk uiteinde van de VPN-tunnel coderen de gegevens die de tunnel binnenkomen en decoderen deze aan het andere uiteinde.

Een Blockchain is een continu groeiende lijst van records, blokken genaamd, die met behulp van cryptografie zijn gekoppeld en beveiligd. De eerste blockchain werd in 2009 geïmplementeerd als een kerncomponent van bitcoin, waar het dient als het grootboek voor alle transacties. De uitvinding van de blockchain voor bitcoin maakte het de eerste digitale valuta die het probleem van dubbele uitgaven oploste zonder de noodzaak van een vertrouwde autoriteit of centrale server.

Stap 8: STM32 zwarte pil

STM32 zwarte pil
STM32 zwarte pil
STM32 zwarte pil
STM32 zwarte pil

De Black Pill is het nieuwste STM32 Pillenbord. Het is een verbeterde variant op de gewone blauwe pil en de minder gebruikelijke rode pil.

De Black Pill is voorzien van de STM32F103C8T6 32bit ARM M3 microcontroller (datasheet), een vier-pins ST-Link-header, een MicroUSB-poort en een gebruikers-LED op PB12. De juiste pull-up-weerstand op PA12 wordt geleverd voor een correcte werking van de USB-poort. Deze pull-up vereiste meestal een bordaanpassing op andere Pill Boards.

Hoewel hij qua uiterlijk lijkt op de typische Arduino Nano, is de Black Pill veel krachtiger. De 32bit STM32F103C8T6 ARM-microcontroller kan draaien op 72 MHz. Het kan vermenigvuldiging in één cyclus en hardwaredeling uitvoeren. Het heeft 64 Kbytes Flash-geheugen en 20 Kbytes SRAM.

Stap 9: De zwarte pil flashen met Arduino IDE en STLink

De zwarte pil flashen met Arduino IDE en STLink
De zwarte pil flashen met Arduino IDE en STLink

Als u geen recente Arduino IDE hebt geïnstalleerd, kunt u deze hier downloaden.

Download vervolgens Roger Clark's Arduino_STM32-repository. Dit omvat de hardwarebestanden om STM32-kaarten op Arduino IDE 1.8.x te ondersteunen. Als je dit handmatig download, zorg er dan voor dat Arduino_STM32-master.zip wordt uitgepakt in de Arduino IDE "hardware" map. Merk op dat er een ondersteuningsforum is voor dit pakket.

Bevestig de STLink jumperdraden zoals hier getoond.

Voer de Arduino IDE uit en selecteer deze opties onder Tools:

Bord: Generieke STM32F103C-serie Variant: STM32F103C8 (20k RAM. 64k Flash) CPU-snelheid (MHz): "72MHz (normaal)"Uploadmethode: "STLink"

Open de bestandsvoorbeelden > basics > blinkVerander alle drie de instanties van "LED_BUILTIN" in PB12Druk op de "upload"-pijl (de LED op de STLink zal flikkeren tijdens het uploaden)

Deze geüploade schets laat de gebruikers-LED op de Black Pill elke seconde aan en uit knipperen. Wijzig vervolgens de waarde in de twee delay(1000)-instructies van 1000 in 100 en upload opnieuw. De LED zou nu tien keer sneller moeten knipperen. Dit is onze standaard "Hello World"-oefening om ervoor te zorgen dat we een eenvoudig programma kunnen samenstellen en op het doelbord kunnen laden.

Stap 10: Pil Duckie

Pil Duckie
Pil Duckie

Pill Duck is een scriptbaar USB HID-apparaat dat een STM32 gebruikt. Natuurlijk waarom niet?

Stap 11: TFT-scherm

TFT-scherm
TFT-scherm

Thin-film-transistor liquid-crystal display (TFT LCD) is een variant van een liquid-crystal display (LCD) dat dunne-film-transistortechnologie gebruikt voor verbeterde beeldkwaliteiten zoals adresseerbaarheid en contrast. Een TFT LCD is een actieve matrix LCD, in tegenstelling tot passieve matrix LCD's of eenvoudige, direct-aangedreven LCD's met een paar segmenten.

Dit Full Color TFT-scherm meet 2,4 inch en heeft een resolutie van 240x320.

De controller is een ILI9341 (datasheet), die kan worden aangesloten op de STM32 via een Serial Peripheral Interface (SPI)-bus volgens het hier getoonde bedradingsschema.

Om het display te testen, laadt u de schets van:

voorbeelden > Adafruit_ILI9341_STM > stm32_graphicstest

Wijzig de drie besturingspins als volgt:

#define TFT_CS PA1#define TFT_DC PA3#define TFT_RST PA2

Merk op dat het grafische testvoorbeeld zeer snel wordt uitgevoerd vanwege de verbeterde prestaties van de STM32 ten opzichte van de traditionele Arduino AVR-microcontroller.

Stap 12: Toetsenbordmatrixinvoer

Toetsenbordmatrixinvoer
Toetsenbordmatrixinvoer

Sluit het 4x4 Matrix-toetsenbord aan zoals afgebeeld en laad de bijgevoegde schets TFT_Keypad. In dit voorbeeld wordt het toetsenbord gelezen en wordt de toets op het scherm weergegeven. Merk op dat dit eenvoudige voorbeeld voor het lezen van het toetsenbord blokkeert omdat het de functie delay() gebruikt. Dit kan worden verbeterd door over te schakelen naar een polling- of interruptgestuurd model.

Door het toetsenbord en het TFT-scherm samen met de zwarte pil op het soldeerloze breadboard of het groene protoboard te monteren, ontstaat een mooi "computerplatform" met invoer en weergave.

Stap 13: Enigma Machine Code-uitdaging

Image
Image
Twee-factorenauthenticatie - U2F Zero-beveiligingssleutel
Twee-factorenauthenticatie - U2F Zero-beveiligingssleutel

Enigma-machines waren elektromechanische rotorcoderingsmachines die in het begin tot het midden van de 20e eeuw werden ontwikkeld en gebruikt. Ze werden geadopteerd door militaire en overheidsdiensten van verschillende landen, met name nazi-Duitsland. De Duitse strijdkrachten geloofden dat hun Enigma-gecodeerde communicatie ondoordringbaar was voor de geallieerden. Maar duizenden codekrakers - gevestigd in houten hutten in het Britse Bletchley Park - hadden andere ideeën.

De codeeruitdaging van deze maand is om van het 'computerplatform' je eigen Enigma-machine te maken.

We hebben al voorbeelden geïmplementeerd voor toetsenbordingangen en display-uitgangen.

Hier zijn enkele voorbeelden voor de instellingen en berekeningen tussen de ingangen en uitgangen:

ENIGMuino

Open Enigma

Arduino Enigma-simulator

Instructable van ST-Geotronics

Stap 14: Twee-factorenauthenticatie - U2F Zero Security Key

Twee-factor-authenticatie (ook bekend als 2FA) is een methode om de geclaimde identiteit van een gebruiker te bevestigen door een combinatie van twee verschillende factoren te gebruiken: 1) iets dat ze weten, 2) iets dat ze hebben, of 3) iets dat ze zijn. Een goed voorbeeld van tweefactorauthenticatie is het opnemen van geld bij een geldautomaat, waarbij alleen de juiste combinatie van een bankkaart (iets dat de gebruiker bezit) en een pincode (iets dat de gebruiker weet) de transactie kan uitvoeren.

Universal 2nd Factor (U2F) is een open authenticatiestandaard die tweefactorauthenticatie versterkt en vereenvoudigt met behulp van gespecialiseerde USB- of NFC-apparaten op basis van vergelijkbare beveiligingstechnologie die wordt aangetroffen in smartcards. U2F-beveiligingssleutels worden ondersteund door Google Chrome sinds versie 38 en Opera sinds versie 40. U2F-beveiligingssleutels kunnen worden gebruikt als een extra methode voor tweestapsverificatie op online services die het U2F-protocol ondersteunen, waaronder Google, Dropbox, GitHub, GitLab, Bitbucket, Nextcloud, Facebook en anderen.

De U2F Zero is een open source U2F-token voor tweefactorauthenticatie. Het beschikt over de Microchip ATECC508A cryptografische co-processor, die ondersteunt:

  • Veilige op hardware gebaseerde sleutelopslag
  • High-Speed Public Key (PKI) algoritmen
  • ECDSA: FIPS186-3 Elliptic Curve Digital Signature Algoritme
  • ECDH: FIPS SP800-56A Elliptische curve Diffie-Hellman-algoritme
  • NIST standaard P256 ondersteuning voor elliptische curve
  • SHA-256 hash-algoritme met HMAC-optie
  • Opslag voor maximaal 16 sleutels - 256-bit sleutellengte
  • Uniek 72-bits serienummer
  • FIPS Random Number Generator (RNG)

Stap 15: Soldeeruitdagingskit

Soldeeruitdagingskit
Soldeeruitdagingskit
Soldeeruitdagingskit
Soldeeruitdagingskit
Soldeeruitdagingskit
Soldeeruitdagingskit

Als je zin hebt in een serieuze soldeeruitdaging, kun je je eigen U2F Zero Key bouwen.

U2F Zero Soldeeruitdagingskit:

  • U2F Zero Token-printplaat
  • 8051 Kernmicrocontroller (E0) EFM8UB11F16G
  • Beveiligd element (A1) ATECC508A
  • Status-LED (RGB1) 0603 Gemeenschappelijke anode
  • Zener ESD-beschermingsdiode (Z1) SOT553
  • 100 Ohm Weerstand (R1) 0603
  • 4.7 uF bypass condensator (C4) 0603
  • 0,1 uF bypass-condensator (C3) 0403
  • Tijdelijke tactiele knop (SW1)
  • Sleutelhanger met splitring

Merk op dat er twee componenten van het formaat 0603 zijn. Ze lijken veel op elkaar, maar zorgvuldig onderzoek zal uitwijzen dat R1 zwart is en C4 bruin. Merk ook op dat E0, A1 en RGB1 de vereiste oriëntaties hebben zoals aangegeven op de printplaatzeefdruk.

De U2F Zero Wiki toont de details voor het programmeren van de Microcontroller.

UITDAGING OPMERKING: Elke HackerBox #0027 bevat twee Soldering Challenge-kits, precies omdat het solderen erg moeilijk is en er ongelukken gebeuren. Raak niet gefrustreerd. Gebruik een hoge vergroting, een pincet, een goed strijkijzer, soldeervloeimiddel en beweeg heel langzaam en voorzichtig. Als je deze kit niet met succes kunt solderen, ben je zeker niet de enige. Zelfs als het nooit werkt, is het een goede soldeeroefening op verschillende SMT-pakketten.

Misschien wil je deze aflevering van de Ben Heck Show op Surface Mount Soldering bekijken.

Stap 16: HACK DE PLANEET

HACK DE PLANEET
HACK DE PLANEET

Als je van deze Instrucable hebt genoten en elke maand een doos met elektronica en computertechnologieprojecten als deze rechtstreeks in je mailbox wilt hebben, sluit je dan aan bij de HackerBox-revolutie door HIER INSCHRIJVEN.

Reik uit en deel uw succes in de opmerkingen hieronder of op de HackerBoxes Facebook-pagina. Laat het ons zeker weten als je vragen hebt of ergens hulp bij nodig hebt. Bedankt dat je deel uitmaakt van HackerBoxes. Laat uw suggesties en feedback maar komen. HackerBoxen zijn JOUW dozen. Laten we er iets geweldigs van maken!

Aanbevolen: