Presentation laddar. Vänta.

Presentation laddar. Vänta.

Syftet Att ge den senaste informationen om Bankgiro Link-projektet

Liknande presentationer


En presentation över ämnet: "Syftet Att ge den senaste informationen om Bankgiro Link-projektet"— Presentationens avskrift:

1 Välkommen till Bankgiro Link BGC-forum för utvecklare på programföretagen

2 Syftet Att ge den senaste informationen om Bankgiro Link-projektet
Informera om och diskutera kring aktuella tekniska frågor Bankgiro Link

3 Presentation Mikael Rendahl – BGC Partners
Mathias Engan – Produktchef Kommunikationstjänster Per Skärström – Projektledare Christian Lindkvist – Konstruktionsansvarig webb Ricky Lundstål – Konstruktionsansvarig API Hans Sterby – Designansvarig Bankgiro Link Michael Strömberg – Javaintegration Bankgiro Link

4 Projektstatus Per Skärström
Bankgiro Link Projektstatus Per Skärström Bankgiro Link

5 Projektet Totalt 19 500 timmar. Vi har 27 st medarbetare i projektet.
Denna fas av projektet har pågått från december -04 och avslutas 15/9. Vi har en pilot av Bankgiro Link i drift sen sommaren -04. Bankgiro Link

6 Status Konstruktion avslutades 25/4. Integrationstest avslutades 20/5
Systemtest planeras avslutas 17/6. Acceptanstest planeras avslutas 9/9. Bankgiro Link driftsätts den 15/9. Redan idag finns möjligheten att testa en beta-version av Bankgiro Link:s API. Bankgiro Link

7 Marknadsorientering Mathias Engan
Bankgiro Link Marknadsorientering Mathias Engan Bankgiro Link

8 Bankgiro Link – nytt kommunikationssätt
Kommunikation över Internet med säkerhetslösning baserad på PKI Fler möjligheter för bankkunden Bättre kontroll för bankkunden Flexiblare säkerhetslösning Nästa utvecklingssteg bortom BgCom. Bankgiro Link

9 Inledning Huvudmålet med utvecklingen av Bankgiro Link är att ta fram en ersättare till Telebankgiro Telebankgiro måste vara avvecklat senast Planerad produktionssättning tillsammans med R1 (hösten 2005) Bankgiro Link

10 Bankgiro Link: Funktionalitet
Filkommunikation LB, KI, AG LM, OC, GP, AG m fl Grundläggande funktioner Inloggning Lista filer att hämta Hämta fil Skicka fil Lista inskickade filer Godkänna fil Utloggning Behörighetskontroller Individnivå Fullmaktskontroller För de banker som vill Tredjepartsklienter Integration med affärssystem Fristående Bankgiro Link

11 Tre bra saker med Bankgiro Link
Säkerhetslösning baserad på certifikat, behörigheter och (för vissa banker) elektroniska fullmaktskontroller Bättre för kunden Mer information om och därigenom bättre kontroll över kundens produkter (filbaserade) Lättare att bygga väl integrerade lösningar i kundens affärssystem Bankgiro Link

12 Möjlighet för programvaruföretag
Kunderna vill ha smidig och enkel kommunikation med BGC för att leverera betalningsuppdrag hämta redovisning kontrollera betalningsöverföringen överföra annan affärsinformation Krav på ny funktionalitet i affärssystem Möjlighet för programvaruföretag att förenkla och förbättra Bankgiro Link

13 Arbetsflöde webbklient/Internetbank
4. Logga in 2. Skapa betalfil 1. Fakturor i leverantörsreskontra 5. Skicka in betalfil 3. Spara betalfil 8. Automatisk avstämning kundreskontra 7. Ladda redovisning 6. Hämta redovisning Affärssystem Browser Bankgiro Link Lagring Bankgiro Link

14 Klientprogramvara Automatisera överföringen av filer till och från BGC
Integrera med affärssystemet Inbetalningar rakt in i reskontra Utbetalningar direkt från reskontra Förenkla, förbättra kundens vardag Fler och bättre funktioner för handläggare Viewer, utskriftsfunktioner, arkivfunktionalitet, etc Hantera ”pappersbetalningar” (bildfiler) Bankgiro Link

15 Integrerad kommunikation
2. Logga in 1. Fakturor i leverantörsreskontra 3. Skicka in betalfil 5. Automatisk avstämning kundreskontra 4. Hämta redovisning Affärssystem Browser Bankgiro Link Lagring Bankgiro Link

16 Ett tillfälle! Utveckling och försäljning av programvara tillhör inte BGCs kärnaffär. Telebankgiro avvecklas Cirka (ca aktiva) kunder påverkas Skapar behov av ersättningsfunktionalitet Ny eller uppgraderad mjukvara behövs BGC skapar och öppnar ett gränssnitt mot Bankgiro Link Underlätta utvecklingen av effektiva betalningsverktyg Bankgiro Link

17 Teknisk orientering Ricky Lundstål, Hans Sterby, Christian Lindkvist
Bankgiro Link Teknisk orientering Ricky Lundstål, Hans Sterby, Christian Lindkvist Bankgiro Link

18 BGC:s teknikval Plattform: Windows 2003 Server
Webbserver: Microsoft IIS 6 Utvecklingsmiljö: Microsoft.NET Språk: C# & ASP.NET Dataintegration: XML & Web Services Öppen standard Interoperabilitet över plattformar Klientutvecklares val av teknik är fritt Bankgiro Link

19 Säkerhet - standarder SSL WS-Security http://www.oasis-open.org/specs/
Skydd mot avlyssning WS-Security Meddelandeintegritet Meddelandekonfidentialitet Autentisering på meddelandenivå Approved OASIS Standard (April 2004) Bankgiro Link

20 Säkerhet - standarder WS-Trust WS-Secure Conversation
Bygger på WS-Security förmedla tillit och delade nycklar mellan olika parter ett ramverk för ”security tokens” ”Published Specification” (maj 2004) WS-Secure Conversation Baseras på WS-Security och WS-Trust säker kommunikation för meddelanden Hantera s.k. ”security contexts” derivera meddelandenycklar från etablerade ”security contexts” Bankgiro Link

21 Säkerhet i Bankgiro Link
Anrop via SSL Challenge/Response enligt standard (WS-Trust). Applikationsspecifik kryptering Certifikat och signeringsklienter (CSP) BankID (hårda & mjuka) Nexus 4.2 (hösten 2005) Telia/Posten e-ID NetID Nordea e-ID SmartTrust/Nexus Bankgiro Link

22 Säkerhet i Bankgiro Link – Inloggning
Bygger på WS-Trust och WS-SecureConversation Challenge/Response enligt standard (WS-Trust). Klienter behöver inget BGC-specifikt certifikat Bankgiro Link

23 Säkerhet i Bankgiro Link – Inloggning
Signerings-klient Signera slumptalet Klient BankGiro Link - CustomSecurity ContextTokenHandler Begär ett Challenge (slumptal) Slumptalet returneras Skicka signerat slumptal Token (SCT) samt hemlig nyckel returneras Inloggad Bankgiro Link

24 Säkerhet i Bankgiro Link – Inloggning
Signerings-klient Signera slumptalet Klient BankGiro Link - CustomSecurity ContextTokenHandler Begär ett Challenge (slumptal) Slumptalet returneras Skicka signerat slumptal Token (SCT) samt hemlig nyckel returneras Inloggad Bankgiro Link

25 Demo – Bankgiro Link Webb
Inloggning Signeringsklienterna som stöds NetiD – ActiveX-komponent SmartTrust – ActiveX-komponent Certifikaten Posten eID (PKCS7) Nordea eID (PKCS7) Praktiskt hur det går till i webbapplikationen. Visa upp förstasidan på webben. Bankgiro Link stödjer för närvarande tre olika typer av signeringsklienter, BIDT som är BankID´s applet, NetID som är en active X komponent som signerar hårda kort och Smarttrust som också är en active x-komponent men som stödjer både hårda kort (Posten) och mjuka certifikat (exempelvis Nordea). När man så klickar på en av länkarna till respektive signeringsklient så sker ett anrop mot API:et som ber om data att signera, tillbaka ges då ett slumptal i HEX-format. <Demo med BankID – vänta tills appleten visas> Signeringsklienten har fått data att signera och användaren väljer sitt certifikat, i detta fallet Nina Greger, sedan skriver hon in sitt lösenord och signeringsklienten signerar slumptalet och postar tillbaka till webbapplikationen. Webbapplikationen anropar då API:et och skickar med både slumptalet och det signerade slumptalet så att man på andra sidan ska kunna verifiera signaturen. Om allting går som det ska så returneras en sk. SecurityContextToken. Den SCT:n används sedan för att signera alla påföljande meddelanden till API:et. Vad som sedan sker är att applikationen gör ett sådant anrop i och med att den hämtar användarens behörighetsstruktur, som innehåller information om vad (uppdelat på de olika roller som finns i systemet) användaren kan göra – skicka, hämta och attestera filer och under detta finns de produkter som användaren är behörig till och ytterligare under detta vilka enskilda kundnummer och bankgironummer som hör till respektive produktbehörighet. Vad som sker vid inloggningen är dessutom att användaren hamnar inne i applikationen på den definierade startsidan som styrs av vilken behörighet användaren har, i många fall är detta listan över alla inskickade filer. För att kunna visa upp den sidan anropas API:ets metod för att hämta alla inskickade filer också. Inloggningen sker alltså av 4 steg Hämta slumptal att signera. Signera slumptalet. Skicka tillbaka slumptalet och få tillbaka en SecurityContextToken. Eventuellt hämta användarens behörighetsstruktur (görs i Bankgiro Links webbapplikation). Webbapplikationen gör ytterligare anrop beroende på att man ska visa upp en sida som kräver information om inskickade filer också. DEMO SLUT Bankgiro Link

26 Så här loggar du in Hämta slumptal CustomSecurity ContextTokenHandler
Klient CustomSecurity ContextTokenHandler RequestSecurityToken RequestSecurityTokenResponse Hämta slumptal <wsa:To>…</wsa:Action> CustomSecurityContextTokenHandler.ashx Challenge <wst:SignChallenge><wst:Challenge>0CIVnrRepvNSvlkgUgrF8BWBXFk4Icjoob1HPtnoEj4=</wst:Challenge></wst:SignChallenge> Bankgiro Link

27 fortsättning … CustomSecurity ContextTokenHandler Klient
RequestSecurityTokenResponse RequestSecurityTokenResponse <wst:BinaryExchange> , Attributen ”ValueType” och ”EncodingType” <wssc:SecurityContextToken wsu:Id="SecurityToken-9b51475a-d2c d3-8677bb543d18" xmlns:wssc="http://schemas.xmlsoap.org/ws/2004/04/sc"><wssc:Identifier>uuid:f707ed89-a2fd-4b6a-8eee-2fef7bf29ca3</wssc:Identifier> <wst:BinarySecret wst:Type="http://schemas.xmlsoap.org/ws/2004/04/security/trust/ SymmetricKey">/LZb2VamALfV0cBgltdUMQ==</wst:BinarySecret> Bankgiro Link

28 Paus Bankgiro Link

29 Grundläggande för anropen
Returnerar alltid status med: StatusId: ”0” || ”-1” Meddelandekod: 0-999 Meddelande: ”Ok” || Felmeddelande Datumtidsstämpel Bankgiro Link

30 Status-objektet Bankgiro Link

31 Felmeddelanden Appendix A Xml-dokument Bankgiro Link

32 Krav för varje anrop Användaren är inloggad Krypterat Signerat
Inaktivitet tillåts i 20 minuter Maximal tid 60 minuter Krypterat Signerat Argumentet ProgramID (tilldelas av BGC) Argumentet SequenceNumber UUID/GUID (ISO/IEC 11578:1996) Bankgiro Link

33 Kryptering och signering av anrop
Den delade nyckeln bör ej användas i meddelanden Istället genereras ”sessionsnycklar” (Derived Keys) DerivedKeyToken genereras utifrån SecurityContextToken & den symmetriska nyckel som erhölls vid inloggningen Anropet krypteras och signeras med två DerivedKeyTokens Bankgiro Link

34 Kryptering och signering av anrop
<wsa:Action> anger den metod som anropas. <wsa:To> anger url’en till webbtjänsten som anropas. <wssc:SecurityContextToken><wssc:Identifier> <wssc:DerivedKeyToken> En är för signaturen och den andra för krypteringen av datat. <xenc:CipherValue> innehåller det krypterade datat. Bankgiro Link

35 Anrop Hämta behörighet – GetUserRights
Skicka in fil med betalningsuppdrag – SendFile Attestera Fil – AttestFile Makulera fil som ännu inte attesterats – DeleteFile Hämta lista över inskickade filer – GetUploadedFileList Hämta lista över redovisningsfiler – GetResultFileList Ladda ner fil – GetFile Logga ut – LogOut Bankgiro Link

36 Anrop Hämta behörighet – GetUserRights
Skicka in fil med betalningsuppdrag – SendFile Attestera Fil – AttestFile Makulera fil som ännu inte attesterats – DeleteFile Hämta lista över inskickade filer – GetUploadedFileList Hämta lista över redovisningsfiler – GetResultFileList Ladda ner fil – GetFile Logga ut – LogOut Bankgiro Link

37 GetUserRights Hämtar användarens behörighetsstruktur
Medger kontroll av behörigheten på klienterna Inga argument utöver SequenceNumber & ProgramID Tre roller: Uploader Downloader Signer Bankgiro Link

38 Behörighetsstrukturen
Roll Produkt Kundnummer Bankgironummer Signer KI 123453 123454 LB 123455 Bankgiro Link

39 Behörigheter för anrop
Användaren måste alltid inneha minst en roll Krav på behörighet: GetUserRights, LogOut – valfri roll SendFile – Uploader AttestFile – Signer DeleteFile – Uploader/Signer GetUploadedFileList – Uploader/Signer GetResultFileList – Downloader GetFile (inskickade & oattesterade) – Uploader/Signer GetFile (redovisningsfiler) – Downloader Bankgiro Link

40 GetUserRights Bankgiro Link

41 Anrop Hämta behörighet – GetUserRights
Skicka in fil med betalningsuppdrag – SendFile Attestera Fil – AttestFile Makulera fil som ännu inte attesterats – DeleteFile Hämta lista över inskickade filer – GetUploadedFileList Hämta lista över redovisningsfiler – GetResultFileList Ladda ner fil – GetFile Logga ut – LogOut Bankgiro Link

42 SendFile Skickar in betalningsuppdrag till BGC
Filen ska signeras av användaren Viktiga argument fileSignature – Signatur över kondensat (SHA1) av hela filen samt summering av filens betalningsuppdrag (base64) fileData – filinnehållet (base64) attestFlag – möjliggör en direkt attestering product – anger den produkt som filen innehåller customerNumber – kundnummer under vilket filen skickas in Returnerar filidentifikation Bankgiro Link

43 Anrop Hämta behörighet – GetUserRights
Skicka in fil med betalningsuppdrag – SendFile Attestera Fil – AttestFile Makulera fil som ännu inte attesterats – DeleteFile Hämta lista över inskickade filer – GetUploadedFileList Hämta lista över redovisningsfiler – GetResultFileList Ladda ner fil – GetFile Logga ut – LogOut Bankgiro Link

44 GetUploadedFileList Hämtar lista över inskickade filer (oattesterade, bearbetade, stoppade, …) Styrs av användarens behörighet Inga argument utöver SequenceNumber & ProgramID Bankgiro Link

45 Demo – Bankgiro Link Webb
Skicka fil Hämta fillistan inskickade filer. Hela listan returneras i anropet från WS:en. Attestera fil. Vid attest hämtar vi först filen och sedan gör vi motsvarande signering som vid skicka fil. Makulera / ta bort fil. Skicka in filens ID till WS:en som tar bort filen. Hämta fil. Skicka in filens ID och hämta filens innehåll. Visa applikationen, se till att vara inloggad i den redan. När användaren ska skicka en fil till BGC med hjälp av Bankgiro Links webbapplikation gör han/hon på följande sätt. Välj skicka fil i menyn (förutsatt att användaren har rätt att skicka en fil). På sidan med första steget i skicka fil väljer så användaren den produkt/tjänst som filen innehåller poster för, de som listas är de som användaren enligt mottagen behörighetsstruktur har behörighet att skicka filer på. När man valt en produkt populeras listan med kundnummer för val av vilket kundnummer som användarens poster ska skickas för, även denna lista beror på behörighetsstrukturen, under rollen ”skicka fil” finns ett antal kundnummer som användaren är behörig att skicka filer på och dessa listas alltså här. Efter val av produkt och kundnummer väljer användaren en fil med innehåll som stämmer med ovan angivna uppgifter och den behörighet som användaren har. Om det skulle vara så att användaren antingen valt en produkt som inte överensstämmer med produkten som anges i filen, eller att användaren inte är behörig till något av bankgironumren i filen så kommer vi att berätta det efter att användaren valt att skicka eller skicka och attestera filen. <Välj alla tre och klicka på skicka fil> Nästa steg i processen är att användaren ska signera filen som skickats upp, i signeringsrutan kan man se ett filsammandrag och andra sammanställande uppgifter om filen. Man kan välja att skriva ut detta filsammandrag genom att klicka på utskriftsikonen uppe till höger. När så användaren känner att det är rätt det han ser så skriver han in lösenordet och webbapplikationen anropar API:ets metod för uppskick av fil. Om nu det är något ytterligare som inte stämmer med användarens fil vad gäller behörighet och innehåll så ska detta returneras för användaren i en popup. Går däremot allting bra och filen accepterats så skickas man vidare till sidan med listorna på inskickade filer. <Skriv in lösenord och klicka på OK> Eftersom vi inte valde att attestera filen på samma gång så kommer filen upp i listan över ”oattesterade filer” och man kan få sammanfattande information om filen om man väljer att expandera raden. <Klicka på raden för inskickad fil> Expanderar man raden kan man även se att det går att hämta filen genom en länk till den, detta är i bakgrunden ett anrop till API:et som tar emot ett filID och returnerar filen som en byte-array. På de filer som användaren har rätt att attestera visas även en ”Attestera”-knapp upp och för oattesterade filer kan man även välja att ta bort filen genom knappen ”Ta bort” – även borttagningsmetoden mot API:et är relativt simpel, den tar också emot ett filID och utför sedan borttag ifall inte behörighet för detta saknas. <Klicka på ”Attestera”-knappen för inskickad fil> Om man väljer att attestera filen, kommer man tillbaka till steg två i skicka fil-scenariot och användaren får se ett filsammandrag precis på samma sätt. Användaren signerar filen med sitt lösenord och ett anrop med filen och signaturen görs mot API:et. När man så kommer tillbaka så har filen hamnat i listan över ”filer under bearbetning”. DEMO SLUT Bankgiro Link

46 Java-interoperabilitet Michael Strömberg
Bankgiro Link Java-interoperabilitet Michael Strömberg Bankgiro Link

47 Bankgiro Link – krav SSL-kryptering WS-Security WS-Trust
WS-SecureConversation Certifikat BankID Telia Elektroniskt ID-kort SIS-godkänt Bankgiro Link

48 Web service-lösningar
Har slumpmässigt valt tre av de mest använda web service Java API:er. Sun JWSDP webMethods Glue Apache Axis wsdl2java används för att översätta wsdl-specen till java stubbar. Bankgiro Link

49 SSL-kryptering Använd Java Secure Sockets Extension 1.4 (JSSE)
Inbyggt i webMethods Glue Java SSL är väldigt känslig mot latens i nätet SSL skyddar bara mellan två ändpunkter och erbjuder inte samma meddelandeskydd som ws-security erbjuder. Bankgiro Link

50 ws-security stöd Standardiserar hur säkerhetsinformation hanteras i SOAP-meddelanden. Sun JWSDP Använd XWS-Security API webMethods Glue Inbyggt Apache AXIS Använd WSS4J API Bankgiro Link

51 ws-trust & ws-secureconversation stöd
Beskrivning ws-trust adresserar problematiken kring olika säkerhetsformat, tillit, och säkerhetsdomäner ws-secureconversation beskriver hur två aktörer kan authentisera en följd av meddelanden Inga Java implementationer verkar stödja ws-trust eller ws-secureconversation I dagsläget är det standard praxis att hacka ihop de funktioner som saknas från ws-trust och ws-secureconversation Bankgiro Link

52 .NET Interop JNI (COM Interop) Corba
Bygg en .NET COM-komponent som exponerar web service-metoderna (.NET) Java Container Control (Java) Bygg native funktioner (C) Corba Bygg en .NET Corba applikation som exponerar web service-metoderna (.NET) Använd Corba i ert J2EE-system Bankgiro Link

53 Web services och Java-klienter
Referenser Microsofts ”Web Services Interoperability Guidance” Microsoft .NET and Java/J2EE Interoperability Bankgiro Link

54 Tack! Frågor? Bankgiro Link


Ladda ner ppt "Syftet Att ge den senaste informationen om Bankgiro Link-projektet"

Liknande presentationer


Google-annonser