ScriptedFTPSClient

Denne side indeholder en kortfattet beskrivelse af SKATs FTPS klient, der kan benyttes for at tilgå FTPS løsningen tilvejebragt af Systemmoderniseringen i SKAT.

Design

Klienten er i prioriteret rækkefølge designet til at kunne afvikles med SUN's java som standalone, fuldautomatisk uden brugerinteraktion og scriptbar anvendes som API, dvs. kaldes inde fra et andet java program udvides med anderledes funtionalitet

Ændres der i kildekoden eksempelvis fejlrettelser, udvidelse af funtionalitet vil SKAT gerne modtage disse, således at alle parter har gavn af SKATs opensource projekt.

Dokumentation

Klienten vil primært være dokumenteret i vores tilgængelige JavaDoc. Det anbefales at studere dette API, idet diverse antagelser i en vis grad er taget i forhold til selve FTPS serverens connectivity. Eksempelvis benytter serveren udelukkende passive mode, hvorfor active mode ikke er testet endnu.

Anvendelse af klienten

Test certifikater og et eksempel på afvikling af klienten er at finde i Test eksempel.

Klientens binære kode kan hentes ScriptedFTPSClient.jar. Biblioteket er compileret på linux med java-6-sun-1.6.0.16.

Dette udgør blot et test eksempel, hvorfor de benyttede certifikater er hentet fra http://www.certifikat.dk. Det er essentielt for løsningen at trust keystoren indeholder det officielle rod certifikat samt at pkcs12 certifikatet er brugerens rigitge certifikat.

Beskrivelse af folderstruktur mv. for SKATs løsning er at finde i guiden SecureFtpClientUserguideV2_0.pdf. Det er værd at tilføje at løsningen udelukkede er konfigureret til passive mode samt at der i testen benyttes følgende data porte på FTPS server siden: 35000 - 35010. Dette forventes at blive udvidet i produktion.

Afgrænsninger

FTP standarden beskriver en minimums implementation, som SKATs klient overholder. De ikke implementerede kommandoer kan evt. implementeres efter behov, men er ikke krævet af standarden. Yderligere bør det nævnes at implementationen er tro mod FTP standarden i valg af kommando navne og anvender standardens default værdier.

Andre begrænsninger er at klienten ikke har nogen FTP validerings eller fejlhåndteringslogik, hvorfor det er essentielt at enhver automatisk brug bør overvåges. Dette kan gøres ved at pipe stdout og stderr ved afvikling til logfil. Logfilen kan scannes for særlige fejlkoder serveren vil returnere. Standarden siger, at alle svar starter med en tal kode og at tekst beskrivelsen der ofte ledsager tal koden, derfor ikke må bruges i fejlhåndtering mv.

Andet

På grund af at der benyttes 3.part open source software til håndtering af certifikater, nærmere betegnet Bouncy Castle, vil eventuelle brugere af denne klient selv skulle hente Bouncy Castle. Denne security provider skal således gøres tilgængelig i klientens java installation.

Yderligere på grund af export tilladelser, skal følgende installeres „Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 5.0“. Disse kan hentes hos SUN.

Da der kan ske ændringer i ovenstående eksterne afhængigheder er det mest hensigtsmæssigt at SKAT ikke beskriver disse yderligere.