BISP - Beskrivning till förlitande part



Relevanta dokument
BISP - Beskrivning till förlitande part

Guide för kunder med Nordea e-legitimation

eid Support Version

Lathund för BankID säkerhetsprogram

Kända avvikelser, BankID säkerhetsprogram för Windows Version 1.17, uppdaterad och gäller BISP 7.0.

Extern åtkomst till Sociala system

Hja lp till Mina sidor

Kända avvikelser, BankID säkerhetsprogram för Windows Version 1.21, uppdaterad och gäller BISP Mac och BISP 7.1.

Kända avvikelser, BankID säkerhetsprogram för Windows Version 1.15, uppdaterad och gäller BISP Mac och BISP 6.3.

Mobilt Efos och ny metod för stark autentisering

Hämta SITHS-certifikat till Telia e-leg och logga in till Telia SITHS Admin med SITHS-certifikat

Visma Proceedo. Att logga in - Manual. Version 1.3 /

1. Hur öppnar jag Polisens blanketter / formulär, trycksaker och annat som är i PDF-format?

Introduktion Schenker-BTL AB, Stab IT Beskrivning över informationsintegreringmed Schenker, metodbeskrivning version 1.

Innehåll. Dokumentet gäller från och med version

Visma Proceedo. Att logga in - Manual. Version 1.4. Version 1.4 /

Mobilt Efos och ny metod för stark autentisering

Alfa e-recept: Ny anva ndare

Dok nr OSF/AV-15:003, ver E Inloggning till Treserva via extern dator

Visma Proceedo. Att logga in - Manual. Version Version /

Instruktion för åtkomst till Nyps via LstNet

Quick Start CABAS. Generella systemkrav CABAS / CAB Plan. Kommunikation. Säkerhet

Visma Proceedo Att logga in - Manual

EXTERN ÅTKOMST TILL SOCIALA SYSTEM FÖR UTFÖRARE INOM ÄLDREOMSORGEN OCH OMSORGEN OM FUNKTIONSHINDRADE

Användarhandledning. edwise Webbläsarinställningar

Felsökning av vanliga fel Kontrollera installera version Innehållsförteckning

Mobilt Efos och ny metod för stark autentisering

Installationsguide fo r CRM-certifikat

Anvisningar för inkoppling till Mikrodataåtkomst vid SCB

Inloggning till Treserva via extern dator

Installationsguide för FAR Komplett Offline 2.1.2

Beställning av certifikat för anslutning till BankID (RP certificate) Version

Lathund. Beställa tandvårdsintyg i Tandvårdsfönster

Dubbelklicka på det erhållna programpaketets ikon för att starta installeraren. Du visas därefter följande:

Utkast/Version (8) Användarhandledning - inrapportering maskin-till-maskin

Beställning av Förlitandepart-certifikat Version

Installationsanvisningar. till IST Analys

instruktion för att hämta certifikat med Windows Vista och Internet Explorer

Molnplattform. Version 1.0. Användarhandbok

Installation/uppgradering av Agfa IMPAX program för remittenter

Ny förskrivare. Registrera ny användare av Alfa e-recept. Klicka på [Ny förskrivare]

LICENSAKTIVERINGSGUIDE. Design Collaboration Suite

Datatal Flexi Presentity

Inloggning till Winst och installation av Java för användare med Mac

WebViewer Manual för administratör Nova Software AB

Tjänstebeskrivning Extern Åtkomst COSMIC LINK. Version 1.0

Information från Löne- och Pensionsservice

Anmälan till Swedbanks kontoregister via e-legitimation

Hämta nytt certifikat

Det här dokumentet går kortfattat igenom registrerings- och ansökningsprocessen.

Ny funktionalitet för Finansinspektionens offentliggörande av prospekt

Systemkrav. Åtkomst till Pascal

Lathund. Hantera boendeenheter i Tandvårdsfönster

Testa ditt SITHS-kort

Installationsinstruktion med rekommenderade inställningar Extern Uppkoppling med OTP och SITHS-kort mot Landstinget Västmanland

Instruktion: Trådlöst utbildningsnät orebro-utbildning

Startguide för Administratör Kom igång med Microsoft Office 365

Tekniskt meddelande nr 50 från BankID Pluginer riskerar att blockeras i kommande versioner av webbläsare gäller alla operativsystem.

Manual för fjärrinloggning

LATHUND INSTALLATIONSANVISNINGAR PROJEKTSTRUKTUR 1 SAMMANFATTNING FUNKTIONER I INSTALLATIONSPAKET TEKNISK PLATTFORM...

DGC IT Manual Citrix Desktop - Fjärrskrivbord

Direktkoppling till Girolink Internet. Filöverföring av betalningar och betalningsinformation via Girolink Internet. Version 1.0

Innehåll. 1 Dokumentbeskrivning 3. 2 Användarinformation 3. 3 Installations anvisning Starta upp enheten 5

Hantering av Säkerhetskod för Telia E-legitimation

Compose Connect. Hosted Exchange

Innehåll Net ID installation... 2 Instruktion för nedladdning av HCC... 7 Låsa upp kort med hjälp av PUK-koden Byt säkerhetskod...

Viktigt! Läs igenom hela anvisningen innan du påbörjar inloggningen för första gången.

ARX på Windows Vista, Windows 7 eller Windows 2008 server

Handbok för Google Cloud Print

Självbetjäning för arbetsgivare. Användarhandledning Kom igång med Arbetsgivartjänsten Behörighetsadministration

SaaS and Web Services 8.3.0

Snabbguide till Avstämningsfunktionen 2.0

Introduktion till integrering av Schenkers e-tjänster. Version 2.0

Kundverifiering av SPs digitala signaturer

Kortfattad instruktion för Crystal Reports. Kom i gång med Crystal Reports. Instruktion Crystal Reports 2014

Tentamen i Introduktion till programmering

ADOBE FLASH PLAYER 10.3 Lokal inställningshanterare

Köra programportalen med Windows 8

Stockholm Skolwebb. Information kring säkerhet och e-legitimation för Stockholm Skolwebb. skolwebb.stockholm.se

Handledning för Installation av etikettskrivare

Kända fel i BankID säkerhetsprogram

Installationsbeskrivning för CAB Service Platform med CABInstall

Översikt. Installation av EasyPHP 1. Ladda ner från Jag använder Release Installera EasyPHP.

Innehållsförteckning. Logga in med etjänstekort i Infektionsregistret 3. Installation av kortläsare till e-tjänstekort 3

Användarhandledning för RSV:s Elektroniska brevlåda

Användarhandledning Version 1.2

Instruktion: Trådlöst nätverk för privata enheter

Vårdfaktura lathund för Vårdgivare

3.2 1H[W*HQHUDWLRQ6HFXULW\ Användarmanual

Dokumentation POST-API version 1.0

Installationsanvisningar VisiWeb. Ansvarig: Visi Closetalk AB Version: 2.3 Datum: Mottagare: Visi Web kund

Kundportal. Kundportal - Användarhandledning

Handbok för användare. HCC Administration

Tips & Trix - Teknik Jeeves World Copyright 2011 Jeeves Information Systems AB

Instruktion för installation av etikettskrivare 2.31

Lärarhandledning. Felix börjar skolan

Manual Godman Redovisning

Collector sparkonto Inloggning

Allt du behöver veta Föräldrar i

Transkript:

Finansiell ID-Teknik BID AB BISP - Beskrivning till förlitande part Version: 2.2 Datum: 2012-10-30

Finansiell ID-Teknik BID AB Innehållsförteckning 1 Introduktion... 1 1.1 Revisionshistorik... 1 1.2 Översikt... 1 1.3 Vart kan jag vända mig med frågor?... 1 1.4 Plattformsstöd... 1 2 Kontroller innan inloggning görs med BISP... 1 2.1 Installationsverifiering... 1 2.1.1 Versionspluginen... 2 2.1.2 Exempel på installations- och versionskontroll... 3 2.1.3 Hänvisning till install.bankid.com... 5 2.2 Automatisk versionskontroll... 6 3 Legitimering och underskrift... 6 3.1 Teknisk översikt... 6 3.2 Aktivering... 7 3.2.1 Legitimering... 7 3.2.2 Underskrift... 7 3.3 Parametrar... 7 3.4 Funktioner... 9 3.4.1 SetParam... 10 3.4.2 GetParam... 10 3.4.3 PerformAction... 10 3.4.4 GetLastError... 10 3.4.5 Reset... 10 3.5 Returkoder... 10 3.6 Filtrering... 11 3.6.1 Filtrering för att endast visa BankID... 11 3.6.2 Filtrering för att vid underskrift endast visa BankID för den person som loggade in... 12 3.6.3 Kombinationer av filter... 12 3.6.4 BankID för test och utveckling... 12 3.7 Frånkoppling av BankID (Token Removal URL och Token Removal Timeout)... 12 3.8 Validering med BankID Control Server (BICS)... 13 3.9 Beskrivning av filunderskrift... 13 3.10 Exempel på legitimering, underskrift och filunderskrift... 13 3.10.1 Legitimering... 13 3.10.2 Underskrift... 16 3.10.3 Filunderskrift... 18 3.11 Vanliga misstag... 23 4 Appendix 1: Rekommenderade feltexter för returkoder från BISP... 23 5 Appendix 2: Rekommenderade feltexter för returkoder från BICS... 24 6 Appendix 3: Windows 8 och BankID på fil eller BankID på kort... 25 6.1 Varianter av Windows 8... 25 6.2 Windows 8 använder växelvis två vyer eller användargränssnitt för olika tillfällen:... 25

Finansiell ID-Teknik BID AB 6.3 Konsekvenser... 25 6.4 Anpassning av webbsidor 1: Meta-tag... 26 6.5 Anpassning av webbsida 2: Detektering med Javascript... 26

Finansiell ID-Teknik BID AB Sida 1 1 Introduktion 1.1 Revisionshistorik Version Datum Kommentar 1.3 2009-02-26 Version utgiven i samband med övergången från CBT till BankID säkerhetsprogram. 1.4 2010-02-12 Uppdaterat text och kodexempel. 1.6 2010-04-19 Omarbetad, ny exempelkod. 1.8 2010-12-22 Uppdaterad för version 4.17. Lagt till filunderskrift och ändringar i Token Removal samt rekommenderade feltexter för returkoder från BISP och BICS. 2.0 2010-05-09 Uppdaterad för version 4.18. 2.1 2012-05-24 Rättat ett skrivfel i exempelkod för filunderskrift. 2.2 2012-10-30 Anvisningar för Windows 8 tillagda i Appendix. 1.2 Översikt Den här informationen riktar sig till er som använder BankID på fil eller BankID på kort för inloggning och underskrift i era webbtjänster (vi kallar er nedan förlitande part). BankID i mobil beskrivs i ett separat dokument. Sedan 2009 används BankID säkerhetsprogram (BISP) vid utgivning av BankID och inloggning på webbplatser. Dokumentet innehåller kodexempel, felkoder, instruktioner och tips, t.ex. förslag på flöde för att hantera BankID-användare innan en inloggning eller underskrift påbörjas. 1.3 Vart kan jag vända mig med frågor? För tekniska frågor ska ni i första hand vända er till er leverantör av BankID Control Server (BICS). I övriga frågor hänvisas till den bank som ni har avtal med om användandet av BankID. 1.4 Plattformsstöd För aktuell lista över vilka operativsystem och webbläsare som officiellt stöds för BankID-användning, se http://support.bankid.com/syskrav Gamla versioner av operativsystem och webbläsare stöds inte, eftersom inte leverantörerna längre ger ut säkerhetsuppdateringar till dem. Det innebär att de inte uppfyller de krav som finns för säker användning. Tester har utförts med aktuella versioner av webbläsare och OS enligt listan. 2 Kontroller innan inloggning görs med BISP Innan en användare kan logga in på förlitande parts webbplats ska några kontroller genomföras för att garantera att den BISP som används inte är för gammal. Vad förlitande part behöver göra är: 1. Kontrollera att användaren har BISP installerad (se kapitel 2.1 Installationsverifiering) 2. Kontrollera att parametern best_before finns med i versionssträngen från Versionspluginen (se kapitel 2.1.1) 3. Kontrollera att värdet på parametern best_before, som är en datum- och tidsangivelse uttryckt i UNIX DateTime format, ligger i framtiden När de här kontrollerna är klara kan användaren gå vidare till inloggningen. 2.1 Installationsverifiering I normalfallet sköts kontrollen att BISP har rätt version automatiskt. Användaren får i god tid automatiskt reda på om en ny version av BISP finns, och får på BankIDs webbplats vägledning i hur en uppgradering ska göras. Trots detta måste man komplettera den automatiska versionskontrollen med ytterligare en kontroll vid inloggningen till en förlitande part. Den versionskontrollen görs med hjälp av den så kallade versionspluginen som beskrivs närmare i avsnitt 2.1.1.

Finansiell ID-Teknik BID AB Sida 2 Följande bild visar ett förslag på ett flöde över hur installationsverifieringen ska genomföras före inloggning till webbtjänster där BankID används. Start Är BISP installerad? Finns parametern best_before och är värdet på parametern OK? E Ja C Ja Nej A Nej Visa lämplig text och hänvisa till install.bankid.com/rp Visa lämplig text och D hänvisa till install.bankid.com om parametern saknas, annars install.bankid.com/vk re Anropa BISP för inloggning eller underskrift B A: Genom att anropa den versionsplugin som installeras tillsammans med BISP kan man avgöra om säkerhetsprogrammet finns installerat. Exempel på hur detta kan göras finns i avsnitt 2.1.2.1. B: Om användaren behöver installera BISP ska hon hänvisas till webbplatsen install.bankid.com. Förslag på text som kan visas för användaren i samband med hänvisningen och information om vilken URL som ska användas finns i avsnitt 2.1.3. C: Även om BISP är installerat kan det behöva uppgraderas eller versionskontrolleras. Med hjälp av den versionssträng som returneras från anropet till versionspluginen kan man avgöra om allt är OK eller om användaren ska hänvisas till install.bankid.com för uppgradering eller versionskontroll. Exempel på hur man får ut versionssträngen från versionspluginen och sedan kan använda denna för att säkerställa att rätt version finns installerad hos användaren finns i avsnitt 2.1.2.2 och 2.1.2.3. D: Förslag på text som kan visas för användaren om hon behöver hänvisas till install.bankid.com för uppgradering eller versionskontroll, samt information om vilken URL som ska användas, finns i avsnitt 2.1.3. E: Om de tidigare beskrivna kontrollerna visar att en godkänd version av BISP finns installerad kan säkerhetsprogrammet anropas för att logga in användaren. Exempel på hur detta kan göras finns i avsnitt 3.8. 2.1.1 Versionspluginen 2.1.1.1 Beskrivning Versionspluginen kan kontrollera vilken version av BISP som finns installerad på användarens dator. Dessutom får man information om eventuella kortläsare anslutna till datorn, vilket operativsystem som används samt om BISP har versionskontrollerats. Pluginen finns tillgänglig dels som en ActiveX-kontroll (Internet Explorer), dels som en NPAPI-plugin (Mozilla-baserade webbläsare som Firefox och Safari). 2.1.1.2 Aktivering För att aktivera pluginen i webbläsaren ska följande identifierare användas: CLSID: E5C324CC-4029-43CA-8D57-4A10480B9016 (Internet Explorer) ProgID: Nexus.VersionCtl (Internet Explorer) MIME-typ: application/x-personal-version (Mozilla-baserade webbläsare)

Finansiell ID-Teknik BID AB Sida 3 2.1.1.3 Funktioner Detta avsnitt beskriver de funktioner med vilka man kan anropa versionspluginen. 2.1.1.3.1 GetVersion GetVersion() returns String Denna funktion returnerar versionssträngen som en lång sträng där de ingående elementen är separerade med ett &. Nedan följer ett exempel på hur en versionssträng kan se ut: Personal_exe=4.10.4.3&persinst_exe=4.10.4.3&tokenapi_dll=4.10.4.2&personal_dll=4.10.4.2&np_prsnl_dll =4.10.4.3&lng_svse_dll=4.10.4.3&crdsiem_dll=4.10.4.3&crdsetec_dll=4.10.4.3&crdprism_dll=4.10.4.3&br_ svse_dll=1.5.0.5&br_enu_dll=1.5.0.5&branding_dll=1.5.0.5&csp_installed=true&personal=4.10.4.3 &SmartCard_Reader=Gemplus USB Smart Card Reader 0&platform=win32&os_version=win7&best_before= 1263310748& Följande element ingår i versionssträngen: Personal=<versionsnummer> : Version av BISP. <filnamn>_<filändelse>=<versionsnummer> : Version på varje installerad komponent. CSP_INSTALLED=TRUE, FALSE : Informerar om huruvida CSP:n är installerad eller inte. Endast Windows. SmartCard_Reader=<reader name> : Informerar om tillgängliga kortläsare, ett entry för varje kortläsare. Platform=win32, win64, macosx, linux : Användardatorns plattform. os_version : o Windows: win2000, win2003, winxp, winvista, win7, unknown o Mac OS X: os_version=<majorversion>.<minorversion>, dvs 10.4, 10.5 etc. eller unknown. o Linux: os_version=8.04 (version av Ubuntus distribution) eller unknown. distribution=ubuntu : Informerar om distribution av operativsystemet. Endast Linux. best_before=<värdet av bäst-före-datumet> : Tidpunkt i Unix Time-format då BISP senast måste göra en versionskontroll för att kontrollera att den installerade versionen av BISP fortfarande är giltig. docsign=1 : Om denna parameter finns med så innebär det att BISP har stöd för filsignaturer (se 3). uhi=<base64 kodat värde> : Ett värde unikt för användarens dator. 2.1.1.4 Returkoder Inga returkoder finns definierade för denna plugin. 2.1.2 Exempel på installations- och versionskontroll Detta avsnitt beskriver hur man ska anropa versionspluginen för att ta reda på om BISP är installerad och om rätt version är installerad. Normalt ska en förlitande part gå igenom alla tre stegen nedan. 2.1.2.1 Är BISP installerad? För att kontrollera om BISP är installerad ska man försöka skapa en instans av versionspluginen. Om det går bra, är BISP installerad. 2.1.2.2 Är rätt version av BISP installerad? När man vet att BISP är installerad måste man också kontrollera att en tillräckligt ny version av BISP är installerad samt ev. att den stödjer filsignering om det är en fil man vill få signerad. Detta görs med hjälp av versionssträngen som fås via versionspluginen. Om versionssträngen innehåller parametern best_before så kan man gå vidare. För detaljerad information om formatet på versionssträngen, se avsnitt 2.1.1.3.1. Förlitande parter som vill använda filsignering bör även kontrollera att versionen stödjer filsignering. Se avsnitt 3.9. 2.1.2.3 Är installationen versionskontrollerad? Parametern best_before i versionssträngen innehåller en tidsangivelse uttryckt i antal sekunder sedan klockan 00.00 den 1/1 1970 (UNIX DateTime format). Värdet uppdateras varje gång BISP genomfört en lyckad versionskontroll. I en godkänd version av BISP innehåller best_before en tidpunkt i framtiden. Om versionen inte är godkänd så innehåller parametern en gammal tidpunkt. Om användaren då inte uppgraderar sin programvara, kommer BISP inte gå att använda eftersom BankID Control Server (BICS) kontrollerar att transaktionen är skapad av en godkänd version av BISP.

Finansiell ID-Teknik BID AB Sida 4 2.1.2.4 Exempelkod för installations- och versionskontroll Här kommer ett exempel på kod för installations- och versionskontroll. Den är utformad för att fungera i både Internet Explorer och Mozilla-baserade webbläsare. <html> <head> <script language="javascript"> // Hantera olika browsers. function initplugin(typeplug) if( typeplug == "Plugin" ) var objhldr = document.createelement("object"); objhldr.setattribute("id", "pluginid"); objhldr.setattribute("name", "version"); objhldr.setattribute("type", "application/xpersonal-version"); objhldr.setattribute("width", "0"); objhldr.setattribute("height", "0"); document.body.appendchild(objhldr); else var objhldr = document.createelement("object"); objhldr.setattribute("id", "pluginid"); objhldr.setattribute("name", "version"); objhldr.setattribute("classid", "CLSID:E5C324CC-4029-43CA-8D57-4A10480B9016"); objhldr.setattribute("width", "0"); objhldr.setattribute("height", "0"); document.body.appendchild(objhldr); // Kontrollerar om BISP är installerad samt vilken typ av // plugin/activex som stöds function isinstalled () try var myobj = new ActiveXObject("Nexus.SignerV2Ctl"); if (myobj) return "ActiveX"; catch(e) if (navigator.plugins['nexus Personal']) return "Plugin"; else //BankID säkerhetsprogram är inte installerat //Kontrollera att klienten är uppdaterad function versionverified(verstr) var ct = new Date(); var currentusrtime = Math.round(ct.getTime()/1000); var index = verstr.search("best_before"); if (index < 0) // Syntax error in the version // string, return false.

Finansiell ID-Teknik BID AB Sida 5 var substr = verstr.substring(index+12); index = substr.search("&"); if (index < 0) // Syntax error in the version // string, return false. var bfdstr = substr.substring(0,index); // The bfdstr should now hold the value // we are looking for. // Compare it with current time. // If best_before is greater than // current time the control passes. return (bfdstr > currentusrtime); function startcheck() var typeplugin = isinstalled(); if (typeplugin!= false) // pluginerna bör laddas enl. funktionen initplugin() // p.g.a. kompabilitet med t.ex. Chrome. // Det bör också ske efter att hela DOM-trädet är laddat // därav anropet via body onload. initplugin(typeplugin); var retval; var Plugin = document.getelementbyid('pluginid'); // Hämta versionssträngen retval = Plugin.GetVersion(); // Kontrollera bestbeforedate if(versionverified(retval)) alert("klienten är installerad och Bäst föredatum är OK\n" + retval) else alert("klienten har fel version eller har inte versionskontrollerats. Gå till https://install.bankid.com/vk\n" + retval); else alert("bankid säkerhetsprogram är inte installerat. Gå till https://install.bankid.com/rp") </script> <BODY onload="startcheck()"> <a href=./login_exempel.html>vidare till Inloggningsexempel</a> </body> </html> 2.1.3 Hänvisning till install.bankid.com Den webbplats dit användaren hänvisas för att få hjälp att installera BISP är install.bankid.com.

Finansiell ID-Teknik BID AB Sida 6 a. När användaren behöver installera eller uppgradera BISP ska URL:en https://install.bankid.com/rp användas. b. När användaren behöver versionskontrollera BISP ska URL:en https://install.bankid.com/vk användas. Vi föreslår att installationsplatsen öppnas i ett nytt fönster. Följande texter bör visas för användaren om: Användaren inte har BISP installerat Innan du kan använda ditt BankID behöver du installera BankID säkerhetsprogram. Det gör du i det nya fönster som öppnas när du klickar på länken URL:en https://install.bankid.com/rp öppnas. Användaren har en för gammal version av BISP Din version av BankID säkerhetsprogram behöver uppgraderas innan du kan logga in. Det gör du i det nya fönster som öppnas när du klickar på länken URL:en https://install.bankid.com/rp öppnas. Användaren behöver versionskontrollera sin installation av BISP BankID säkerhetsprogram i din dator behöver versionskontrolleras. Det gör i det nya fönster som öppnas när du klickar på länken URL:en https://install.bankid.com/vk öppnas. 2.2 Automatisk versionskontroll Detta avsnitt beskriver i korthet den funktion för automatisk versionskontroll som finns i aktuell version av BISP. För att påminna om när en uppgradering behöver göras och för att ge användaren ett stöd i uppgraderingen finns en funktion i BISP som innebär att programmet med jämna mellanrum automatiskt kontrollerar om installerad version fortfarande är godkänd för användning.. Detta görs genom att en versionskontrollfråga ställs till versionskontrollservern (VKS) för BankID. Om användarens version är för gammal, kommer programmet att meddela användaren detta och be användaren att uppgradera. Observera att BISP aldrig själv genomför någon installation eller på något annat sätt, helt eller delvis, uppgraderar sig själv automatiskt. Om den installerade versionen är för gammal, och användaren följer programmets uppmaning om att uppgradera, så kommer användarens webbläsare att startas och öppnas mot en webbsida på webbplatsen http://install.bankid.com. Från denna webbplats kan användaren själv hämta ned och installera den senaste versionen. BISP använder standardfunktioner i operativsystemet för att upprätta förbindelsen mot versionskontrollservern. Detta innebär att inställningar som gjorts i t.ex. Internet Explorer (på Windows) avseende anslutning mot Internet via proxy kommer att användas. I vissa fall fungerar inte den automatiska versionskontrollen som avsett. Det kan t ex bero på att nätverksinställningarna hos vissa användare inte tillåter BISP att kommunicera med versionskontrollservern. I dessa fall kommer BISP med jämna mellanrum att hänvisa användaren till install.bankid.com för att göra en webb-baserad versionskontroll. 3 Legitimering och underskrift BISP innehåller funktionalitet för legitimering och underskrift via två pluginer som aktiveras i webbläsaren. Dessa två pluginer är väldigt lika i både funktionalitet och anrop och beskrivs därför i ett och samma avsnitt. Pluginerna finns dels som ActiveX-kontroller (endast Internet Explorer), dels som Mozilla-pluginer, och laddas i webbläsaren via en html-sida. När pluginen aktiveras i webbsidan visas en dialog där användaren får välja BankID och därefter ange lösenord för att skapa den signatur som används i transaktionen för legitimering eller underskrift. 3.1 Teknisk översikt Funktionerna för legitimering och underskrift är implementerade som två pluginer som laddas i webbläsaren. Pluginstödet i Internet Explorer utgörs av ActiveX medan stödet i Mozilla-baserade webbläsare utgörs av NPAPI pluginer. Vid en legitimering eller underskrift anropas respektive plugin med ett antal parametrar. Vissa parametrar styr funktionen av pluginen medan andra används för att bygga upp det data som ska signeras och skickas tillbaka till servern för validering.

Finansiell ID-Teknik BID AB Sida 7 Vid legitimering eller underskrift anropar pluginen BISPs huvudprogram som i sin tur visar legitimerings- /underskriftsdialogen för användaren. När användaren har valt BankID och angivit lösenord skapas den signatur som används vid legitimerings-/underskriftsstransaktionen. När signaturen är genererad i huvudprogrammet skickas den över till pluginen för att sedan kunna skickas över till servern för validering. Från och med BISP version 4.17 finns funktionaliteten filunderskrift av filtyperna text och pdf. Förutsättningarna är att förlitande part har en BICS som stödjer version 1.4 av signaturformatet för BankID och att användarens dator har programvara för att visa filtyperna. Filunderskrift aktiveras med hjälp av nya parametrar i anropet till pluginen för underskrift (se 3.3). Användaren kan normalt välja vilket BankID som ska användas. Via filtreringsfunktionen (se 3.6) kan förlitande part dock styra vilket/vilka BankID som ska vara valbara för användaren. Om användaren har sitt BankID på ett flyttbart media, d.v.s. smart kort eller USB-minne, finns en funktion som rapporterar till servern om detta BankID kopplas ur, se 3.7. Förlitande part har då möjlighet att logga ut användaren på serversidan. Observera att denna funktion endast finns tillgänglig i legitimeringspluginen. De signaturer som skapas följer BankIDs XML-baserade signaturformat. För mer information om detta format, kontakta er leverantör av BICS. 3.2 Aktivering Den sida som aktiverar pluginen måste vara skyddad med SSL för att funktionerna för legitimering och underskrift ska fungera. Det betyder att pluginen ska aktiveras i en sida med en URL som börjar med https://. Om SSL inte används kommer en felkod, 8015, att returneras. För att pluginen ska aktiveras på ett korrekt sätt måste också vissa parametrar vara satta. För mer information om vilka parametrar som är obligatoriska hänvisas till avsnitt 3.3. 3.2.1 Legitimering För att aktivera pluginen i webbläsaren ska följande identifierare användas: CLSID: DD137900-E4D7-4b86-92CC-2E968F846047 (Internet Explorer) ProgID: Nexus.AuthenticationCtl (Internet Explorer) MIME-typ: application/x-personal-authentication (Mozilla-baserade webbläsare) 3.2.2 Underskrift För att aktivera pluginen i webbläsaren ska följande identifierare användas: CLSID: FB25B6FD-2119-4CEF-A915-A056184C565E (Internet Explorer) ProgID: Nexus.SignerV2Ctl (Internet Explorer) MIME-typ: application/x-personal-signer2 (Mozilla-baserade webbläsare) 3.3 Parametrar Vid anropet av pluginen definierar förlitande part ett antal parametrar som styr funktionaliteten av pluginen samt bygger upp det data som ska signeras. De flesta parametrar är frivilliga men det finns ett antal obligatoriska parametrar som alltid måste sättas. Dessa obligatoriska parametrar beskrivs först i listan nedan. Parameter Beskrivning Av BankID föreskrivet värde TextToBeSigned Challenge Den text som användaren ser och ska skriva under. Teckenkodning ska vara UTF-8, innehållet ska base64-kodas och maxlängd på UTF-8 strängen är 100 kb. Kontrolltecknen TAB samt CR och LF kan användas för att indentera respektive radbryta den text som ska skriva under. Teckenkodning ska vara UTF-8, innehållet ska base64-kodas och maxlängd på UTF-8 strängen är 4 kb. Ska sättas i pluginen för underskrift. Ska sättas i legitimeringspluginen. Nonce TokenRemovedURL Teckenkodning ska vara UTF-8, innehållet ska base64-kodas och maxlängd på UTF-8 strängen är 4 kb. Anger URL till vilken BISP gör ett anrop i det fall användaren frånkopplar det BankID med Ska sättas i pluginen för underskrift. Endast legitimeringspluginen. Frivillig (obligatorisk om

Finansiell ID-Teknik BID AB Sida 8 TokenRemovedTimeout vilket han/hon legitimerat sig. Teckenkodning ska vara UTF-8, innehållet ska base64-kodas och maxlängd på UTF-8 strängen är 4 kb. Anger tiden, uttryckt i minuter, efter vilken funktionen för frånkopplat BankID inte längre ska vara aktiverad. Det innebär att om användaren kopplar ifrån sitt BankID efter <TokenRemovedTimeout> minuter, så kommer inget anrop tillbaka till TokenRemovedURL att göras. TokenRemovedTimeout är satt). Observera att denna parameter, tillsammans med TokenRemovedTimeout, ska sättas efter att användaren legitimerats. Endast legitimeringspluginen. Frivillig (obligatorisk om TokenRemovedURL är satt). Observera att denna parameter, tillsammans med TokenRemovedURL, ska sättas efter att användaren har legitimerats. Issuers En filterparameter som används för att reducera antalet valbara certifikat till dem som är utgivna av en viss certifikatutgivare. Filtersträngen byggs upp av ett eller flera certifikatattribut. Attributen ska vara separerade med "," eller ";", där "," tolkas som logiskt AND och ";" tolkas som logiskt OR. Följande X.500 attribut finns tillgängliga: "cn", "g", "s", "t", "ou", "o", "email", "i", "sn", "street", "l", "st", "c", "d", and "dc". Dessutom kan OID:s användas. Reguljära uttryck som använder sig av jokertecken såsom * och? kan också användas. * matchar godtyckligt antal tecken.? matchar exakt ett tecken. För att matcha en sträng som innehåller en asterisk, bakstreck eller frågetecken måste tecknet föregås av \. Så för att matcha en asterisk skriv \*. Tillåtna värden är 1-720. Frivillig. Subjects Policys Teckenkodning ska vara UTF-8, innehållet ska base64-kodas och maxlängd på UTF-8 strängen är 4 kb. En filterparameter som används för att reducera antalet valbara certifikat till dem som är utgivna till en viss person (filtreringen görs på Subjectfältet i certifikatet). Se Issuers för formatet på parametern. Teckenkodning ska vara UTF-8, innehållet ska base64-kodas och maxlängd på UTF-8 strängen är 4 kb. En filterparameter som används för att endast göra certifikat av en viss typ valbara. De typer man kan filtrera på är typiskt BankID på kort och BankID på fil. Se Issuers för formatet på parametern. Notera att logiskt OR, dvs,, ej är applicerbart för den här parametern. Teckenkodning ska vara UTF-8, innehållet ska base64-kodas och maxlängd på UTF-8 strängen är 4 kb. Frivillig. För att inga andra certifikat ska visas sätts denna parameter att filtrera ut enbart BankID på fil och BankID på kort, se avsnitt 3.6.1

Finansiell ID-Teknik BID AB Sida 9 Signature SupportedFileTypes Innehåller den signatur som skapades i anropet till funktionen PerformAction. Denna parameter kan endast användas i funktionen GetParam. Den returnerade signaturen är Base64-kodad. Innehåller information om vilka filtyper som BISP stödjer för filsignatur. Varje returnerad filtyp innehåller en flagga som indikerar om användaren har ett program installerat som kan användas för att förhandsgranska dokumentet innan det signeras. Denna parameter kan endast användas med funktionen GetParam. Endast pluginen för underskrift och när filunderskrift ska användas. exempel 1: 'txt=1&pdf=0&' Exemplet ovan motsvarar svaret från en version av BISP som stödjer både.txt och.pdf, men det finns inget program installerat för att visa filer av typen.pdf. exempel 2: 'txt=1&' Exemplet ovan motsvarar svaret från en version av BISP som endast stödjer.txt och har program installerat för att visa filer av denna typ. FileContent FileName OnlyAcceptMRU NonVisibleData Fildata Base64 kodat. Kan vara max. 10MB data. Om man överskrider detta kommer en felkod returneras. Filnamn inklusive filändelse. Skall vara UTF-8 och max. 255 tecken innan Base64 kodning. Om den här är satt visas endast senast använt BankID i signeringsdialogen. Information som kommer med i signaturen, men som användaren inte har möjlighet att se. Används för att i signaturen kunna lägga med information som avses hanteras maskinellt, men som inte kan anses ha någon juridisk funktion (eftersom användaren inte kunnat se denna information i samband med underskriften). Detta data ska vara Base64-kodat och får vara max 5Mb efter Base64-kodning. Endast pluginen för underskrift och när filunderskrift ska användas. Endast pluginen för underskrift och när filunderskrift ska användas.. Rekommendation är att endast använda tecken ur ASCIIteckenuppsättnignen. Endast pluginen för underskrift. Frivillig Frivillig parameter. Endast pluginen för underskrift accepterar denna parameter. 3.4 Funktioner Pluginen tillhandahåller ett antal scriptbara funktioner. Dessa används för att sätta och hämta parametrar, styra funktionaliteten för hanteringen av frånkoppling av BankID samt för att skapa själva signaturen. Följande funktioner finns tillgängliga: SetParam GetParam PerformAction GetLastError Reset

Finansiell ID-Teknik BID AB Sida 10 3.4.1 SetParam SetParam(String ParamType, String ParamValue) returns Integer ErrorCode Sätter värdet på en given parameter. Vid fel returneras en felkod som ger mer information om vilket fel som inträffat. 3.4.2 GetParam GetParam(String ParamType) returns String ParamValue Returnerar värdet på en parameter. Om en tom sträng returneras har ett fel inträffat. Felkoden hämtas med ett anrop till funktionen GetLastError. 3.4.3 PerformAction PerformAction(String Action) returns Integer ErrorCode Utför en aktivitet i pluginen. För att kunna anropa den här funktionen måste man ladda pluginen i en sida skyddad med SSL. Vid fel returneras en felkod som ger mer information om vilket fel som inträffat. Följande aktiviteter finns tillgängliga: Aktivitet Legitimering Authenticate UnregisterURL Underskrift Sign Beskrivning Genererar signaturen för legitimeringen. I detta anrop öppnas en legitimeringsdialog där användaren får välja BankID och sedan ange dess lösenord för att generera signaturen. Den tidigare inställningen för TokenRemovedURL samt TokenRemovedTimeout avaktiveras. Inget anrop görs då om användaren t.ex. tar ut sitt BankID på kort ur kortläsaren. Genererar signaturen för underskriften. I detta anrop öppnas en underskriftsdialog där användaren får välja BankID och sedan ange dess lösenord för att generera signaturen. 3.4.4 GetLastError GetLastError() returns Integer ErrorCode Om ett fel har inträffat ska denna funktion anropas för att få en felkod som beskriver felet. Det kan vara användbart t ex då man har anropat GetParam men får en tom sträng tillbaka. En beskrivning av de felkoder som kan returneras finns i avsnitt 3.5. 3.4.5 Reset Reset() returns Integer ErrorCode Då denna funktion anropas sätts alla parametrar i pluginen till dess standardvärden. Vid fel returneras en felkod som ger mer information om vilket fel som inträffat. 3.5 Returkoder Returkoderna nedan finns definierade. Se avsnitt 4 för rekommenderade feltexter att visa för användaren. Returkod 0 OK Beskrivning 8001 Ett odefinierat fel har inträffat. 8002 Användaren avbröt. 8003 Minnesfel, dvs programmet har inte lyckats allokera det minne det behöver för att kunna exekvera. 8004 Ogiltig parameter, dvs funktionen SetParam eller GetParam har anropats med ett ogiltigt parameternamn. 8005 Internt fel i BISP: programmet misslyckades med en intern avkodning av data.

Finansiell ID-Teknik BID AB Sida 11 8006 Internt fel i BISP: programmet misslyckades med en intern kodning av data. 8007 Konvertering av en parameter till/från Unicode misslyckades. 8008 Ogiltig aktivitet har angivits i funktionen PerformAction. 8009 Inget BankID finns tillgängligt. Använder man filtreringsfunktionen finns ingen e-legitimation tillgänglig som uppfyller filterinställningarna. 8010 Pluginen misslyckades med att bestämma sidans URL. 8011 Anropande server är inte betrodd att exekvera pluginen. För att få exekvera pluginen måste servern finnas med i listan över betrodda servrar som installeras med programmet. 8012 Värdet av den angivna parametern måste vara Boolean. 8013 Felaktig PIN-kod/lösenord. 8014 Värdet av den angivna parametern måste vara numeriskt. 8015 Pluginen kräver att sidan den laddas ifrån är skyddad med SSL, dvs att sidans URL börjar med https://. 8016 Alla obligatoriska parametrar är inte satta. Det måste de vara för att PerformAction ska kunna anropas. 8017 Parametern måste vara Base64-kodad. 8018 Ogiltigt parametervärde, dvs funktionen SetParam har anropats med ett felaktigt värde på en given parameter. 8019 Pluginen får inte anropas med en IP-adress. 8020 Funktionen inte tillåten 8021 BISP är upptagen med annat och kan just nu inte användas för legitimering eller underskrift. Avsluta den funktion som används i BISP och försök igen (endast Mac OS X). 8022 Webbläsarpluginen kan inte kommunicera med BISPs huvudprogram. Detta kan hända om Internet Explorer körs som administratör och BISP körs som vanlig användare (eller tvärtom) i Windows 7 eller Vista. 8102 PIN-koden är blockerad. Användaren har angett en felaktig PIN-kod för många gånger och PIN-koden är nu blockerad. PIN-koden kan låsas upp med hjälp av en PUK-kod. Endast legitimering 8501 URL för Token Removal är inte registrerad. Returneras på UnregisterURL om URL aldrig registrerats. 8502 Parametrarna TokenRemovedURL och TokenRemovedTimeout försöker sättas för lång tid efter senaste lyckade legitimeringen. Användaren måste legitimera sig igen innan det går att sätta parametrarna. Endast underskrift 8551 Filtypen som skickas med stöds inte för underskrift. 8552 Datorn har inget program för att visa filtypen som skickas med 3.6 Filtrering I funktionerna för legitimering och underskrift kan man styra vilka BankID som användaren ska kunna välja mellan. Detta görs med hjälp av de filtreringsparametrar som finns definierade för pluginen. 3.6.1 Filtrering för att endast visa BankID Genom att filtrera på följande sätt kommer endast BankID att presenteras för användaren, även om användaren också skulle ha andra typer av e-legitimationer. Filtret aktiveras genom att i värdet för parametern Policys inkludera både den policy som används för BankID på fil (1.2.752.78.1.1) och den som används för BankID på kort (1.2.752.78.1.2) separerade med ett semikolon (1.2.752.78.1.1;1.2.752.78.1.2). Notera att värdet ska base64-kodas. Exemplet nedan filtrerar bort alla e-legitimationer utom de som följer policy 1.2.752.78.1.1 eller 1.2.752.78.1.2 (policy för BankID på fil och BankID på kort):

Finansiell ID-Teknik BID AB Sida 12 plugin.setparam('policys', 'MS4yLjc1Mi43OC4xLjE7MS4yLjc1Mi43OC4xLjI='); 3.6.2 Filtrering för att vid underskrift endast visa BankID för den person som loggade in Genom att filtrera på Subject i certifikatet kan man styra BISP att filtrera bort BankID för andra personer än för den som nyss loggade in. I detta exempel används fältet som innehåller personnummer för denna filtrering, men man kan även använda exempelvis Common Name. Anta att en person med personnummer 188803099368 har loggat in. För att endast BankID för denna person ska presenteras i dialogen för underskrift sätts parametern Subjects till värdet 2.5.4.5=188803099368 (2.5.4.5 är objektidentifieraren för Serial Number dvs. användarens personnummer). Notera att innehåll ska base64-kodas. För att dessutom filtrera bort eventuella andra e-legitimationer (utgivna av t.ex. Nordea) för denna person så bör filtreringen ovan kombineras med filtret för BankID enligt avsnitt 3.6.1. Exempel: // Filtrerar bort alla e-legitimationer utom de som tillhör användaren med serienummer (personnummer) 188803099368 plugin.setparam('subjects', 'Mi41LjQuNT0xODg4MDMwOTkzNjg='); // Filtrerar bort alla e-legitimationer utom de som följer policy 1.2.752.78.1.1 eller 1.2.752.78.1.2 (policy för BankID på fil och BankID på kort) plugin.setparam('policys', 'MS4yLjc1Mi43OC4xLjE7MS4yLjc1Mi43OC4xLjI='); 3.6.3 Kombinationer av filter Om Issuers och Subjects används, så gäller logiskt OCH mellan de två filtreringarna Om Issuers och Policys används, så gäller logiskt ELLER mellan de två filtreringarna Om Subjects och Policys används, så gäller logiskt OCH mellan de två filtreringarna Om alla tre parametrarna används, så gäller först logiskt OCH mellan Issuers och Subjects, och därefter gäller logiskt ELLER mot filtreringen på Policys 3.6.4 BankID för test och utveckling Då man utvecklar och testar applikationer som använder BankID för legitimering och underskrift tillhandahålls speciella BankID avsedda för test. De har andra Policy-värden än skarpa BankID: BankID på fil för test har policy 1.2.3.4.5. BankID på kort för test har policy 1.2.3.4.10. 3.7 Frånkoppling av BankID (Token Removal URL och Token Removal Timeout) I BISP finns en funktion som kan meddela servern när användaren kopplar från sitt BankID som användes för legitimering. På så vis har servern möjlighet att logga ut användaren. Denna funktion kräver att parametrarna TokenRemovedURL och TokenRemovedTimeout är satta. Det meddelande som ska postas till servern kan anges som en del av en URL i parametern TokenRemovedURL. Den tid i minuter som man angivit i parametern TokenRemovedTimeout anger hur länge funktionen är aktiv. Om användaren frånkopplar sitt BankID efter TokenRemovedTimeout minuter postas inget meddelande till den URL som specificerats i TokenRemovedURL. Från och med BISP version 4.17 kan en webbplats anropa legitimeringspluginen inom 5 minuter efter en genomförd legitimering för att sätta parametrarna TokenRemovedURL och TokenRemovedTimeout. Av kompatibilitetsskäl finns möjligheten kvar att sätta TokenRemoved-parametrarna samtidigt som legitimering, men det föreskrivna sättet är alltså att sätta dessa parametrar efter genomförd och lyckad legitimering. Exemplet nedan beskriver hur man kan anropa legitimeringspluginen för att få BISP att göra ett GET-anrop till URL:en http://test.test.ad:8080/test/loginservlet?action=removedtoken&id=cc4e60aee3f252b69953df6f1cc24982 när användaren frånkopplar sitt BankID inom 15 minuter: plugin.setparam('tokenremovedurl','ahr0cdovl3rlc3qudgvzdc5hzdo4mdgwl3rlc3qvtg9naw5tzxj2bgv0p2fjdglv bj1yzw1vdmvkvg9rzw4mawq9q0m0rtywquvfm0yyntjcnjk5ntnerjzgmundmjq5odi='); plugin.setparam('tokenremovedtimeout','15');

Finansiell ID-Teknik BID AB Sida 13 Om man vill avaktivera funktionen innan TokenRemovedTimeout minuter har förflutit kan man anropa pluginen på följande sätt: plugin.performaction( UnregisterURL ); 3.8 Validering med BankID Control Server (BICS) Den resulterande transaktionen som BISP postar in till servern ska vidareförmedlas till BICS för validering. BICS returnerar bland annat status av valideringen samt personuppgifter för aktuell användare i de fall valideringen lyckades. 3.9 Beskrivning av filunderskrift Förutsättningar: Förlitande part har implementerat ett flöde för filunderskrift, inklusive en BICS som stödjer version 1.4 av signaturformatet för BankID. Kontakta er leverantör av BICS för mer information. Filsignering görs i följande steg 1. Kontrollera att BISP kan hantera filsignering Kontrollera om BISP har stöd för filsignering genom att leta efter parametern docsign i versionssträngen. Från och med ver. 4.17 finns parametern docsign=1 med i versionssträngen. Den visar att BISP kan hantera filsignering. 2. Kontrollera vilka filtyper som kan användas Om BISP, enligt kontrollen i avsnitt 1, kan signera filer behöver man kontrollera vilka filtyper som användarens dator kan hantera (vilka filtyper som är associerade med program). I den BISP version 4.17 kan två typer av filer undertecknas: pdf-filer och textfiler med filändelserna pdf respektive txt. Kontrollen görs med ett anrop till BISP: SignerV2.GetParam( SupportedFileTypes ) Svaret från BISP är en textsträng med formatet (extname=[1 0]&)+ som till exempel kan se ut så här: pdf=0&txt=1& om det finns ett program associerat med textfiler men användaren inte har något program associerat med pdf-filer. 3. Initiera filunderskrift Nu kan servern göra anropet till SignerV2 med bl.a. de två nya parametrarna för filsignering: FileName och FileContent (se 3.3). Notera: Den underskrivna filen skickas inte tillbaka till servern. Servern ska spara hela anropet till BISP och efter underskriften använda det vid verifiering i BICSen. I parametern TextToBeSigned ska finnas en sammanfattning eller beskrivning av innehållet i filen som användaren ska skriva under samt ett referensnummer och datum. 4. När användaren har skrivit under BISP returnerar en signatur. Om det är en filsignering som har gjorts så ingår ett nytt element under SignedInfo: ett Reference-element som refererar till den underskrivna filen. Elementet börjar alltid med file:/// till exempel: <Reference URI="file:///QXZ0YWxfNDU2NzgxMjM0NS5wZGY"> Servern ska då skicka signaturen till BICSen för validering, inklusive filen som signerades. 5. Kvitto till användaren Efter en godkänd filsignering bör användaren få ett kvitto på webbplatsen, med bl.a. referensnummer och datum. 3.10 Exempel på legitimering, underskrift och filunderskrift 3.10.1 Legitimering Nedanstående exempel visar hur man kontrollerar att BISP är installerad och hur inloggningsfunktionen i BISP aktiveras i Internet Explorer och Mozilla-baserade webbläsare. <html> <head> <script language="javascript">

Finansiell ID-Teknik BID AB Sida 14 // Hantera olika browsers. function initplugin(typeplug) if( typeplug == "Plugin" ) var objhldr = document.createelement("object"); objhldr.setattribute("id", "pluginid"); objhldr.setattribute("name", "auth"); objhldr.setattribute("type", "application/xpersonal-authentication"); objhldr.setattribute("width", "0"); objhldr.setattribute("height", "0"); document.body.appendchild(objhldr); else var objhldr = document.createelement("object"); objhldr.setattribute("id", "pluginid"); objhldr.setattribute("name", "auth"); objhldr.setattribute("classid", "CLSID:DD137900- E4D7-4b86-92CC-2E968F846047"); objhldr.setattribute("width", "0"); objhldr.setattribute("height", "0"); document.body.appendchild(objhldr); //Kontrollerar om BISP är installerad function isinstalled () try var myobj = new ActiveXObject("Nexus.AuthenticationCtl"); if (myobj) return "ActiveX"; catch(e) if (navigator.plugins['nexus Personal']) return "Plugin"; else // BankID säkerhetsprogram är // inte installerat function Checkerror(paramName, errormsg) if (errormsg) if ( errormsg == 8002 ) // Om användaren avbryter bör han få ett nytt // försök och inte hamna i normal felhantering. alert ("Du valde att avbryta."); return false else if (errormsg == 8015) // Sidan måste köras över SSL alert ("Pluginen kräver att sidan den laddas ifrån är skyddad med SSL, dvs att sidans URL börjar med https://."); else // Lägg din kod för felhantering här... Se stycke // 3.5 i dokumentet "BISP - Beskrivning till // förlitande part" alert("tekniskt fel: " + errormsg + " vid " + paramname);

Finansiell ID-Teknik BID AB Sida 15 return false else return true function startlogin() var typeplugin = isinstalled(); if (typeplugin!= false) // pluginerna bör laddas enl. funktionen initplugin() // p.g.a. kompabilitet med t.ex. Chrome. // Det bör också ske efter att hela DOM-trädet är laddat, // därav anropet via body onload. initplugin(typeplugin); var retval; var Plugin = document.getelementbyid('pluginid'); var signature = "Not Present"; // Sätt parametrarna till klienten och kolla om det gick bra. // SetParam returnerar felkoden direkt så ni behöver inte gå omvägen // via GetLastError t.ex.: // Checkerror("Challenge",Plugin.SetParam('Challenge','MTIzNDU2Nzg5MGFiYw==')); alert("obs!! Challenge ska genereras av er BICS och vara Base64 kodad! \n Se stycke 3.5 i dokumentet BISP - Beskrivning till förlitande part"); //OBS!! Ni får ej använda detta värde!! Plugin.SetParam('Challenge','MTIzNDU2Nzg5MGFiYw=='); Checkerror("Challenge",Plugin.GetLastError()); // Nedan filtrerar bort alla e-legitimationer utom de som följer policy // 1.2.752.78.1.1 eller 1.2.752.78.1.2 (policy för BankID på fil och // BankID på kort) // Plugin.SetParam('Policys', 'MS4yLjc1Mi43OC4xLjE7MS4yLjc1Mi43OC4xLjI='); // Checkerror("Policy filter", Plugin.GetLastError()); // Filter för test certifikat på kort och fil nedan Plugin.SetParam('Policys', 'MS4yLjMuNC41OzEuMi4zLjQuMTA='); Checkerror("Policy filter", Plugin.GetLastError()); // Starta legitimeringen retval = Plugin.PerformAction('Authenticate'); if (!retval) signature = Plugin.GetParam('Signature'); if (Checkerror("hämtning av signatur", Plugin.GetLastError())) // Lägg in din kod för att skicka transaktionen // till din BICS här. alert('signatur skapad OK\n'); else Checkerror("performAction", Plugin.GetLastError()); else alert("bankid säkerhetsprogram är inte installerat. Gå till https://install.bankid.com/rp") </script> <BODY onload="startlogin()"> <a href=./sign_exempel.html>vidare till Signeringsexempel</a>

Finansiell ID-Teknik BID AB Sida 16 </body> </html> 3.10.2 Underskrift Nedanstående exempel visar hur man kontrollerar att BISP är installerad och hur underskriftsfunktionen i BISP aktiveras för Internet Explorer och Mozilla-baserade webbläsare. <html> <head> <script language="javascript"> // Hantera olika browsers. function initplugin(typeplug) if( typeplug == "Plugin" ) var objhldr = document.createelement("object"); objhldr.setattribute("id", "pluginid"); objhldr.setattribute("name", "signer2"); objhldr.setattribute("type", "application/xpersonal-signer2"); objhldr.setattribute("width", "0"); objhldr.setattribute("height", "0"); document.body.appendchild(objhldr); else var objhldr = document.createelement("object"); objhldr.setattribute("id", "pluginid"); objhldr.setattribute("name", "signer2"); objhldr.setattribute("classid", "CLSID:FB25B6FD- 2119-4CEF-A915-A056184C565E"); objhldr.setattribute("width", "0"); objhldr.setattribute("height", "0"); document.body.appendchild(objhldr); // Kontrollerar om BISP är installerad genom att försöka så undviker man // beroende till webbläsarnamn o.s.v. function isinstalled () try var myobj = new ActiveXObject("Nexus.SignerV2Ctl"); if (myobj) return "ActiveX"; catch(e) if (navigator.plugins['nexus Personal']) return "Plugin"; else // BankID säkerhetsprogram är // inte installerat function Checkerror(paramName, errormsg) if (errormsg) if ( errormsg == 8002 ) // Om användaren avbryter bör han få ett nytt // försök och inte hamna i normal felhantering. alert ("Du valde att avbryta.");

Finansiell ID-Teknik BID AB Sida 17 return false else if (errormsg == 8015) // Sidan måste köras över SSL alert ("Pluginen kräver att sidan den laddas ifrån är skyddad med SSL, dvs att sidans URL börjar med https://."); else // Lägg din kod för felhantering här. Se avsnitt 3.5 // i dokumentet "BISP - Beskrivning till // förlitande part" alert("tekniskt fel: " + errormsg + " vid " + paramname); return false else return true function startsign() var typeplugin = isinstalled(); if (typeplugin!= false) // pluginerna bör laddas enl. funktionen initplugin() // p.g.a. kompabilitet med t.ex. Chrome. // Det bör också ske efter att hela DOM-trädet är laddat, // därav anropet via body onload. initplugin(typeplugin); var retval; var Plugin = document.getelementbyid('pluginid'); var signature = "Not Present"; // Sätt parametrarna till klienten och kolla om det gick bra. // SetParam returnerar felkoden direkt så ni behöver inte gå // omvägen via GetLastError t.ex.: // Checkerror("Nonce",Plugin.SetParam('Nonce','MTIzNDU2Nzg5MGFiYw==')); // true betyder att signeringscertifikatet som är kopplat till // det certifikat användaren loggat in med används. Plugin.SetParam('OnlyAcceptMRU','true'); Checkerror("MRU", Plugin.GetLastError()); alert("obs!! NONCE ska genereras av er BICS och vara Base64 kodad! \n Se stycke 3.5 i dokumentet BISP - Beskrivning till förlitande part"); //OBS!! Ni får ej använda detta värde!! Plugin.SetParam('Nonce','MTIzNDU2Nzg5MGFiYw=='); Checkerror("Nonce", Plugin.GetLastError()); // Texten som visas för användaren. "Vänligen överför 1000 // kronor till konto 123456-7" Plugin.SetParam('TextToBeSigned','VsOkbmxpZ2VuIMO2dmVyZsO2ciAxMDAwIGtyb25vci B0aWxsIGtvbnRvIDEyMzQ1Ni03'); Checkerror("TBS", Plugin.GetLastError()); // Text som signeras men inte visas för användaren t.ex. XML-data. // <xml><test>test</test></xml> ; Plugin.SetParam('NonVisibleData','PHhtbD48dGVzdD50ZXN0PC90ZXN0PjwveG1sPg==') Checkerror("NVD", Plugin.GetLastError());

Finansiell ID-Teknik BID AB Sida 18 // Starta signeringen retval = Plugin.PerformAction('Sign'); if (!retval) signature = Plugin.GetParam('Signature'); if (Checkerror("hämtning av signatur", Plugin.GetLastError())) // Lägg in din kod för att skicka // transaktionen till din BICS här. alert('signatur skapad OK\n'); else Checkerror("performAction", Plugin.GetLastError()); else alert("bankid säkerhetsprogram är inte installerat. Gå till https://install.bankid.com/rp") </script> <BODY onload="startsign()"> Signering </body> </html> 3.10.3 Filunderskrift Nedanstående exempel visar hur man kontrollerar att BISP klarar filunderskrift: <html> <head> <script language="javascript"> // Hantera olika browsers. function initplugin(typeplug) if( typeplug == "Plugin" ) var objhldr = document.createelement("object"); objhldr.setattribute("id", "pluginid"); objhldr.setattribute("name", "version"); objhldr.setattribute("type", "application/x-personal-version"); objhldr.setattribute("width", "0"); objhldr.setattribute("height", "0"); document.body.appendchild(objhldr); else var objhldr = document.createelement("object"); objhldr.setattribute("id", "pluginid"); objhldr.setattribute("name", "version"); objhldr.setattribute("classid","clsid:e5c324cc-4029-43ca-8d57-4a10480b9016"); objhldr.setattribute("width", "0"); objhldr.setattribute("height", "0"); document.body.appendchild(objhldr); // Kontrollerar om BISP är installerad samt vilken typ av // plugin/activex som stöds function isinstalled () try var myobj = new ActiveXObject("Nexus.SignerV2Ctl"); if (myobj) return "ActiveX"; catch(e) if (navigator.plugins['nexus Personal']) return "Plugin"; else //BankID säkerhetsprogram är inte installerat

Finansiell ID-Teknik BID AB Sida 19 //Kontrollera att klienten är uppdaterad function versionverified(verstr) var index = verstr.search("docsign=1"); if (index < 0) // Version doesn't support docsigning, return false. return true; function startcheck() var typeplugin = isinstalled(); if (typeplugin!= false) // pluginerna bör laddas enl. funktionen initplugin() // p.g.a. kompabilitet med t.ex. Chrome. // Det bör också ske efter att hela DOM-trädet är laddat // därav anropet via body onload. initplugin(typeplugin); var retval; var Plugin = document.getelementbyid('pluginid'); // Hämta versionssträngen retval = Plugin.GetVersion(); // Kontrollera funktionen för filsignering if(versionverified(retval)) alert("klienten är installerad och filsignering är OK\n" + retval); else alert("klienten har fel version. Gå till https://install.bankid.com/rp\n" + retval); else alert("bankid säkerhetsprogram är inte installerat. Gå till https://install.bankid.com/rp") </script> </head> <body onload="startcheck()"> <a href=./filecheck.aspx>vidare till filtypskontroll</a> </body> </html>

Finansiell ID-Teknik BID AB Sida 20 Nedanstående exempel visar hur man kontrollerar vilka filtyper BISP kan hantera för filunderskrift: <html> <head> <script language="javascript"> // Hantera olika browsers. function initplugin(typeplug) if( typeplug == "Plugin" ) var objhldr = document.createelement("object"); objhldr.setattribute("id", "pluginid"); objhldr.setattribute("name", "signer2"); objhldr.setattribute("type", "application/x-personal-signer2"); objhldr.setattribute("width", "0"); objhldr.setattribute("height", "0"); document.body.appendchild(objhldr); else var objhldr = document.createelement("object"); objhldr.setattribute("id", "pluginid"); objhldr.setattribute("name", "signer2"); objhldr.setattribute("classid", "CLSID:FB25B6FD-2119-4CEF-A915-A056184C565E"); objhldr.setattribute("width", "0"); objhldr.setattribute("height", "0"); document.body.appendchild(objhldr); // Kontrollerar om BISP är installerad genom att försöka så undviker man // beroende till webbläsarnamn o.s.v. function isinstalled () try var myobj = new ActiveXObject("Nexus.SignerV2Ctl"); if (myobj) return "ActiveX"; catch(e) if (navigator.plugins['nexus Personal']) return "Plugin"; else // BankID säkerhetsprogram är // inte installerat function Checkerror(paramName, errormsg) if (errormsg) if ( errormsg == 8002 ) // Om användaren avbryter bör han få ett nytt // försök och inte hamna i normal felhantering. alert ("Du valde att avbryta."); return false else if (errormsg == 8015) // Sidan måste köras över SSL alert ("Pluginen kräver att sidan den laddas ifrån är skyddad med SSL, dvs att sidans URL börjar med https://."); else // Lägg din kod för felhantering här. Se avsnitt 3.5 // i dokumentet "BISP - Beskrivning till // förlitande part" alert("tekniskt fel: " + errormsg + " vid " + paramname); return false else return true function startfilecheck() var typeplugin = isinstalled(); if (typeplugin!= false) // pluginerna bör laddas enl. funktionen initplugin()