Apple Safari

safari514

”Safari is a web browser developed by Apple Inc. and included with the Mac OS X and iOS operating systems. First released as a public beta on January 7, 2003 on the company’s Mac OS X operating system, it became Apple’s default browser beginning with Mac OS X v10.3 ”Panther”. Safari is also the native browser for iOS. A version of Safari for the Microsoft Windows operating system, first released on June 11, 2007, supports Windows XP, Windows Vista, and Windows 7. The latest stable release of the browser is 5.1, which is available as a free download for both Mac OS X and Microsoft Windows. As of 2011, Safari is the fourth most widely used browser in the US, following Internet Explorer, Mozilla Firefox, and Google Chrome, respectively.”

Safari – Allmänt

Fungerar, men ignorerar fullständigt hur stora delar av Europa bygger PKI och lyckas därigenom presentera en webbläsare som utgör en förolämpning mot alla användare av kombinationen smarta kort och Safari.
Safari – Inloggning

Inloggningen fungerar i Safaris Windowsversion på samma sätt som Internet Explorer. Man får Windows egen inbyggda certifikatvalsdialog och därefter Net iDs PIN-dialog.
Safari har en dock en SSL-hantering som gör att den listar alla certifikat som klienten har i MyStore, inte bara de som svarar mot serversidans listning av CA:s som är betrodda. Osäker på om standarden verkligen kräver att man filtrerar bort de certifikat som inte är aktuella men även om det skulle vara så kan man ju ju visa lite omtanke om slutanvändarna istället för att plåga dem med svåra val. Nedan ses ett inloggningsförsök mot Skatteverket med ett kort som bara innehåller certifikat som Skatteverket definitivt INTE har inlagda i sina Apache-servrars trust store:

 

safari_error_01

För att göra det hela ännu värre anropar Safari MyStore utan att exkludera certifikat med Key Usage endast satt till non-repudiation. Det betyder att användaren får minst två certifikat att välja bland som ser likadana ut om man inte går in på detaljerna i certifikaten vilket är något som användare aldrig ska behöva göra. Råkar användaren välja non-repudiation certifikatet så är det PIN2 som efterfrågas, men vem kommer att uppmärksamma det? Slår man PIN2 så kommer man faktiskt in, om inte siten gör en extra kontroll i applikationsskiktet men det ska inte bhöva göras, rätt certifikat ska filtreras fram redan i SSL-förhandlingen.

Anledningen till att vi nyttjar två olika certifikat/nycklar/PIN-koder är för att tydligt och på alla nivåer skilja på:
a) ett inloggningsförfarande (jag ges tillträde till Mecedesaffärens speciella rum för extra dyra modeller)
b) ett undertecknande (jag undertecknar Mercedessäljarens dokument om att han får dra 2.4 miljoner från mitt konto)

Problemet som kan uppstå när man loggar in med non-repudiationcertifikatet är egentligen juridiskt men har adresserats av ingenjörer genom att ha certifikat med olika Key Usage:
a) Digital signatur, Nyckelchiffrering (a0)
b) Oavvislighet (40)

Tanken är alltså att användaren ska tydligt ska göras införstådd med att nu ska något undertecknas. Anta att en ond site skapar en förtäckt inloggningsprocedur som egentligen låter användaren skriva under ett bindande avtal om livslånga leveranser av dyra kalsonger med dålig passform. Eller något ännu värre…

En intressant detalj är dock att Safari inte får IE’s klassiska ”The page requires a client certificate” om man glömt stoppa i kortet innan man försöker logga på:

ssl_ie

Man får istället upp denna dialog:

safari_no_cert_yet

Klickar man OK eller Avbryt får en diskret uppmaning i statusraden att kolla under Fönster > Aktivitet:

safari_error_message

Tar man en titt där så uppenbaras lösningen på klar och redig svenska som vilken användare som helst omedelbart tar till sig. Apple har t.o.m. bemödat sig att rödmarkera för ökad tydlighet:

safari_enduser_abuse

Vi på SecMaker tycker det är en bättre lösning att INNAN SSL-förhandlingen påbörjas kolla upp sakernas tillstånd och varna på ett mer hövligt sätt om kortet inte sitter i:

safari_tip

Safari – Underskrift

Fungerar bra. Pluginen jobbar fint i Safari. Vissa av exemplen på denna webplats för att läsa kortnummer osv. fungerar dock inte men det beror mera på icke Safari-anpassad HTML- och/eller Javascriptkod än på själva webbläsaren.

Safari – Summering

a) Listar hela MyStore i strid med SSL-protokollet vilket är fullkomligt hårresande.

b) Listar non-repudiation certifikat för SSL

c) Automatisk nedstängning via Net iD NetControl kväver ”Safari-enablat” paket. De flesta paket installerade till dags dato stänger endast IE och FF