www.ribomation.se Open in urlscan Pro
151.101.65.195  Public Scan

URL: https://www.ribomation.se/blog/2021/kryptering-hos-den-galna-kon
Submission: On October 07 via api from SE — Scanned from DE

Form analysis 0 forms found in the DOM

Text Content

Ribomation

 * Hem
 * Schema
 * Priser
 * Kontakt





VÅRA KURSER

Build Tools

Alla Kurser
CMake
Gradle
Maven
Cloud Computing

Alla Kurser
Amazon AWS
Firebase
C++ & C

Alla Kurser
C Basics
C++ 11/14/17
C++ Basics
C++ for C Progr.
C++ for Java Progr.
Catch2
Google Test
C++ Embedded
C++ Supplementary
Linux Sys. Progr.
C++ Threads
Dev Tools

Alla Kurser
BASH Scripts
GIT Basics
Jenkins
Scrum
JavaScript

Alla Kurser
JavaScript
Node.js
TypeScript
Java & Groovy

Alla Kurser
Clean Code
Design Patterns
Groovy
Java Basics
Java 8+
Java REST WS
JUnit Test
Spock Test
Spring Framework & Boot
Web App Dev.

Alla Kurser
Angular
CSS för programmerare
Vue.js


FAKTA

Hem

Schema

Priser

Kontakt


INFORMATION

Om Fjärrkurser

Vanliga Frågor

Blogg

Nyhetsbrev

Om Ribomation
 * +46 (0)730-866-040
 * info@ribomation.se
 * www.ribomation.se

© 2009 - 2021 Ribomation AB, Stockholm/Sweden. All rights reserved. Version
2.22.2 (6 October 2021)




KRYPTERING HOS DEN GALNA KON


6 OKTOBER 2021

Tags
java


HUR JAG BYGGDE EN KRYPTERINGSLÖSNING FÖR EN BANK I ZÜRICH, SAMTIDIGT SOM JAG
HAMNADE HOS DEN GALNA KON I STADEN

Jag fick ett meddelande från min chef.

> Jens, we need you in Zürich. You need to brush up your skill-set in
> cryptography and hash-generating functions. Then come up with a solution for
> how to authenticate our monitoring Java agents when they attempt to connect
> from the DMZ to the monitoring server placed within the trusted subnet.

Det här var för samma företag, jag berättat om i tidigare
nyhetsbrev/bloggartiklar. Saken var den att vår primära produkt hanterade
applikations-övervakning i real-tid av stora Java EE system. Kunderna fanns
primärt inom bank, finans, tele-operatörer och andra internationella företag med
mycket stora Java system. Mitt jobb var att bygga kundanpassade
monitorerings-lösningar (när standard inte fungerade), samt utföra
problem-analyser av krånglande system hos både befintliga och tilltänkta kunder.

Arkitekturen på vårt övervaknings-system bestod av tre skikt. Det första
utgjordes av monitorerings-agenter som installerades direkt på en JVM för
respektive applikations-server. Det andra av servern, som samlade in mätdata via
TCP skickat från anslutna agenter. Det tredje skiktet utgjordes av en Java Swing
klient som presenterade aktuellt och historiskt data hämtat hos servern.

Kruxet för denna kund var att dels måste mät-data skickas krypterat och dels
måste en anslutande agent kunna autentisera sig första gången den ansluter.
Inget av detta fanns i produkten då. Jag åkte över till kunden i Zürich för att
sammanställa kravbilden och teknisk information.

Efter första dagens möte med kunden skulle jag bege mig till hotellet. Till
saken, hör att jag vid denna tid överlät åt någon annan att boka resa och logi.
Jag satte mig på en buss som skulle ta mig till den plats hotellet låg på.
Bussen åkte och åkte, längre ut utanför staden och förbi den ena förorten efter
den andra. Paniken börja sakta krypa fram. Hur långt bort är det?

Det här var på den tiden det inte fanns 4G och smartphones, så jag kunde inte ta
reda på saken själv medan jag satt på bussen. Jag ringde då min fru, förklarade
situationen och bad henne hitta ett hotell, vilket som helst, huvudsaken att det
låg i centrala Zürich och därför på måttligt avstånd från kunden.

Väl framme vid hotellet hade min fru hittat och bokat ett hotellrum. Så jag
ursäktade mig i receptionen och bad dem beställa en taxi, vilken transporterade
mig sen till det nya hotellet.

Vilken överraskning! Hotellet hade som tema kossor och allt var inspirerat av
detta. Namnet var Crazy Cow. Egentligen var det restaurangen som hette det, men
hotellet gick på samma tema och det var kor och komotiv överallt. Hotellet var
förvisso enkelt men det kompenserades av dess charm.

Under middagen i hotellets restaurang började jag skissa på en lösning. Första
steget var en plugin för agent respektive server, som möjliggjorde installation
av en socket factory respektive server-socket factory. Eftersom Java API:et
erbjuder denna möjlighet, så borde det vara en smal sak att bygga om produkten
med detta stöd.

Nästa steg var autentiseringen, vilken krävde kryptering. På grund av
exportrestriktioner så fanns inte detta i Java JVM, utan man måste anskaffa
detta på annat håll och installera i JVM:en, som en så kallad extension.

Detta var direkt oacceptabelt av kunden, eftersom de signatur-märkte samtliga
filer i en JVM för att upptäcka externa förändringar.

Efter en del googlande hittade jag en open-source lösning, med ett för den tiden
lustigt namn, nämligen The Legion of the Bouncy Castle. Namnet till trots, så
var det och är fortfarande ett mycket kraftfullt och användbart bibliotek för
kryptering och signaturer. Jag har använt det flera gånger sedan dess.

Med detta som utgångspunkt, kunde sen jag presentera en lösning för kunden och
vårt huvudkontor i San Francisco.

Några veckor senare var vår produkt uppdaterade med stöd för socket-factory
plugins och jag kunde sen bygga klart min lösning, som en dylik plugin.

När jag senare återvände till kunden i Zürich för demonstration och installation
av lösningen, valde jag dock att boka in mig på ett mer reguljärt affärshotell.
Men, det charmiga Galna-ko hotellet i Zürich glömmer jag aldrig.


LÄNKAR

 * The Legion of the Bouncy Castle
 * Java Interface SocketImplFactory
 * Java Class SSLServerSocket
 * TLS
 * DMZ