forked from sauanimal/eIDTest
-
Notifications
You must be signed in to change notification settings - Fork 0
/
431Autentiminejaallkirjastaminev.html
96 lines (82 loc) · 12.2 KB
/
431Autentiminejaallkirjastaminev.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
<html>
<head>
<title>4.3.1. Autentimine ja allkirjastamine veebilehitsejas</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="generator" content="HelpNDoc Personal Edition 4.7.1.684">
<meta name="keywords" content="">
<link type="text/css" rel="stylesheet" media="all" href="css/reset.css" />
<link type="text/css" rel="stylesheet" media="all" href="css/base.css" />
<link type="text/css" rel="stylesheet" media="all" href="css/hnd.css" />
<!--[if lte IE 8]>
<link type="text/css" rel="stylesheet" media="all" href="css/ielte8.css" />
<![endif]-->
<style type="text/css">
#topic_header
{
background-color: #EFEFEF;
}
</style>
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/hnd.js"></script>
<script type="text/javascript">
$(document).ready(function()
{
if (top.frames.length == 0)
{
var sTopicUrl = top.location.href.substring(top.location.href.lastIndexOf("/") + 1, top.location.href.length);
top.location.href = "eID.html?" + sTopicUrl;
}
else if (top && top.FrameTOC && top.FrameTOC.SelectTocItem)
{
top.FrameTOC.SelectTocItem("431Autentiminejaallkirjastaminev");
}
});
</script>
</head>
<body>
<div id="topic_header">
<div id="topic_header_content">
<h1 id="topic_header_text">4.3.1. Autentimine ja allkirjastamine veebilehitsejas</h1>
<div id="topic_breadcrumb">
<a href="4Tehnilineanaluus.html">4. Tehniline analüüs</a> ›› <a href="43Tehniliserealisatsiooniarhitek.html">4.3. Tehnilise realisatsiooni arhitektuur ja kirjeldus</a> ›› </div>
</div>
<div id="topic_header_nav">
<a href="43Tehniliserealisatsiooniarhitek.html"><img src="img/arrow_up.png" alt="Parent"/></a>
<a href="43Tehniliserealisatsiooniarhitek.html"><img src="img/arrow_left.png" alt="Previous"/></a>
<a href="4311UuepolvkonnaeIDkiipkaartTrub.html"><img src="img/arrow_right.png" alt="Next"/></a>
</div>
<div class="clear"></div>
</div>
<div id="topic_content">
<p></p>
<p class="rvps10"><span class="rvts20">Tulenevalt veebilehitsejate Chrome-i, Safari ning IEMobile-i pea täielikust dominantsusest vastavate platvormide peal, ei käsitle käesolev analüüs kolmandate osapoolte veebilehitsejate toetamist.</span></p>
<p class="rvps10"><span class="rvts20">Kuigi iOS ning Android platvormide sertifikaatide hoidlasse on võimalik installeerida täiendavaid sertifikaate failide näol (s.h. ka kliendi tuvastamiseks veebilehitsejas), siis puudub kõigil platvormidel võimalus riistvarapõhiste liideste jaoks</span><a class="rvts31" href="431Autentiminejaallkirjastaminev.html#ref_023">23</a><span class="rvts20">. Sellest tulenevalt ei ole võimalik kasutada süsteemset sertifikaatide hoidlat autentimiseks nagu seda tehakse töökoha-arvutitel. Sertifikaadihoidlat on võimalik kasutada ainult siis, kui kasutaja impordib võtmed ja sertifikaadid korraga (teadaolevalt ei ole võimalik kasutada programmeeritavalt nii, et võtmed asuvad mujal). Kahjuks ei võimalda ka ükski ülal mainitud veebilehitseja ühelgi moel kolmandate osapoolte poolt lisade (</span><span class="rvts21">extensions</span><span class="rvts20">, </span><span class="rvts21">plugin</span><span class="rvts20">) loomist, seega peale m-ID ei ole mobiilsetel platvormidel eksisteerivatele veebilehitsejatele (Chrome, Safari, IEMobile) võimalust eID toe lisamiseks. </span></p>
<p class="rvps10"><span class="rvts20">Kontseptuaalselt on alternatiivina võimalik Android seadmete puhul rääkida </span><span class="rvts21">Local Web Service</span><span class="rvts20"> (LWS) kasutamisest ja sellele vastava arhitektuuriga eID tarkvaralisest lahendusest (</span><a class="rvts32" href="431Autentiminejaallkirjastaminev.html#Joonis3">vt joonis 3, alternatiiv B</a><span class="rvts20">). iOS/WM platvormil LWS teenuse kasutamine läheb vastuollu platvormi </span><span class="rvts21">sandbox</span><span class="rvts20"> turvamehhanismist tulenevate taustal rakenduste käitlemise reeglitega:</span></p>
<ul style="text-indent: 0px; margin-left: 48px; list-style-position: outside;">
<li style="margin-left: 0px; text-indent: 0px" class="rvps43"><span class="rvts20">iOS puhul ei saa ükski rakenduse käia taustal üle 10 minuti (va VoIP lahendused) [</span><a class="rvts34" href="https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html">URL</a><span class="rvts20">];</span></li>
<li style="margin-left: 0px; text-indent: 0px" class="rvps43"><span class="rvts20">WM puhul ei saa ükski rakendus käia taustal pidevalt, ainult kuni 10 minutit korraga iga 30 minuti tagant [</span><a class="rvts34" href="https://msdn.microsoft.com/en-us/library/windows/apps/hh202942(v=vs.105).aspx">URL</a><span class="rvts20">].</span></li>
</ul>
<p class="rvps10"><a class="rvts34" href="http://www.futureid.eu/">FutureID</a><span class="rvts20"> raames on analüüsitud LWS turvariske (</span><span class="rvts21">man-in-the-middle attack</span><span class="rvts20">, </span><span class="rvts21">DNS spoofing</span><span class="rvts20">, </span><span class="rvts21">exchange of LWS</span><span class="rvts20">) ning leitud, et nende tõenosus ja/või mõju on madal. Samas leiame, et lahendussuuna valikul on vajadus täiendava ja põhjaliku turvaanalüüsi järele.</span></p>
<p class="rvps10"><span class="rvts20">Lisaks muutuks olemasolev eID autentimise loogika täielikult, kuna autentimine ei toimu LWS puhul enam HTTPS ühenduse sertifikaatide alusel, vaid JavaScript API kaudu. See tähendab, et analoogselt m-ID-le tuleb lisada täiendav autentimise mehhanism. Samuti ei ole LWS puhul võimalik iOS/WM platvormidel kutsuda nutiseadmes esile UI elemente (nt PIN küsimiseks vms).</span></p>
<p class="rvps19"><span class="rvts25">Ainukeseks (kõigil platvormidel toimivaks arhitektuurseks) lahenduseks võib lugeda oma eID veebilehitseja tarkvara arendamist ja tarnimist </span><span class="rvts20">(</span><a class="rvts32" href="431Autentiminejaallkirjastaminev.html#Joonis3">vt joonis 3, alternatiiv A</a><span class="rvts20">). </span></p>
<p class="rvps10"><span class="rvts20">Kuigi Androidis on tehniliselt võimalik kompileerida ning kasutada oma veebi joonistamise mootorit (Gecko, Webkit), siis iOSis ning WMs selline võimalus täielikult puudub ning on arenduslepingu järgi keelatud. Täiendavalt on sellise lahenduse regulaarne uuendamine ning toetamine veebilehitsejate kiirest arengust johtuvalt äärmiselt ebapraktiline.</span></p>
<p class="rvps10"><span class="rvts20">Töökoha-arvutitel kasutusel olev SSL-autentimine on nutiseadmetes teadaolevalt võimalik ainult eID veebilehitseja laadse lahendussuuna valikul. Antud tüüpi lahendussuuna on kasutusele võtnud ka teised seadmetootjad (</span><span class="rvts21">nt Feitian Mobile Secure Browser, Biometric Associates baiBrowser jt</span><span class="rvts20">). Kõigil kolmel platvormil on võimalik realiseerida “eID veebilehitseja” kasutades süsteemi poolt pakutavat WebView komponenti</span><a class="rvts31" href="431Autentiminejaallkirjastaminev.html#ref_024">24</a><span class="rvts20">, millel on võimalik lisada SSL kasutajatuvastus sertifikaatide pakkumine kasutades identifitseerimise meetodile vastavaid draivereid. Allkirjastamiseks on võimalik kasutada WebView liideseid töökohaarvutite veebilehitsejates kasutatava JavaScript </span><a class="rvts34" href="https://github.com/open-eid/js-token-signing/wiki">klienditeegi</a><span class="rvts20"> toe lisamiseks. Antud teek on mõeldud selleks, et veebilehele allkirjastamise toe lisamine oleks lihtne ning erinevate digitaalallkirjastamiseks mõeldud veebilehitsejate iseärasused oleksid veebiarendaja jaoks ühtse API taha ära „peidetud“.</span></p>
<p class="rvps10"><span class="rvts20">Antud lähenemise nõrkuseks on standardsete veebilehitsejate osade (nt navigeerimise kasutajaliides, ajalugu, lemmikud jne) puudumine. Vastav kasutajaliides (ning sinna juurde käivad pilve teenuste integratsioonid, nt otsing) tuleks realiseerida algusest või mõne </span><span class="rvts21">open source webview</span><span class="rvts20">-l põhineva veebilehitseja alusel. Plussiks aga seevastu on veebimootori pidev uuenemine operatsioonisüsteemi tasemel, s.h. kõik viimased jõudluse ning turvalisuse parandused.</span></p>
<p class="rvps10"><span class="rvts20">Android platvormil on alternatiiviks süsteemse veebilehitseja (Chrome) </span><span class="rvts21">forkimisega</span><span class="rvts20"> täiendavate funktsionaalsuste juurde arendamine. Antud alternatiiv on realistlik, kui eksisteerib perspektiiv, et täiendavad funktsionaalsused mingis ajaraamis tootja integreerib tagasi enda veebilehitsejasse (vastaselt juhtumil oma veebilehitseja pikaajaline arendamine/toetamine toob kaasa endaga arvestatavad kulutused). iOS ning Windows Mobile veebilehitsejad (Safari, IEMobile) on suletud lähtekoodiga, seega pole </span><span class="rvts21">forkimine</span><span class="rvts20"> võimalik. Täiendavalt on mõlemal platvormil keelatud 3ndate osapoolte veebi joonistamise mootorite kasutamine.</span></p>
<p class="rvps3"><img width="611" height="702" alt="" style="padding : 1px;" src="lib/Joonis3.png"></p>
<p class="rvps42"><span class="rvts33">Joonis </span><span class="rvts33">3</span><a name="Joonis3"></a>
<span class="rvts33">. Veebis autentimise ja allkirjastamise alternatiivlahendused</span></p>
<p class="rvps10"><span class="rvts20">W3C on publitseerinud </span><a class="rvts34" href="http://www.w3.org/TR/WebCryptoAPI/">Web Crypo API</a><span class="rvts20">, mille eesmärk on ühtlustada krüptograafia-funktsioonide kasutamine veebilehitsejas. Hetkel on tugi olemas väiksel osal veebilehitsejatest ning nutiseadmetes puudub täielikult (analoog Web NFC API-ga, kus eeldused standardi näol on olemas, kuid praktikas paljus tarkvara tootjad standardit ei toeta). Piiranguks on võimaluse puudumine veebilehitsejas autentimiseks/allkirjastamiseks ise genereeritud sertifikaatide kasutamiseks. Puudub tugi riistvaraliste </span><span class="rvts21">tokenite</span><span class="rvts20"> kasutamiseks.</span></p>
<p class="rvps10"><span class="rvts20">Eestis levitatud SSL-sertifikaatide (KLASS-3) kasutamisel autentimiseks, peavad olema levitatud seadmetesse juur-sertifikaadid. Analüüsis ei ole ette näha juur-sertifikaatide levitamiseks lisatoiminguid standardsete veebilehitsejatega (Chrome, Safari ja IEMobile). Lahendatud olemasolevate toimivate mehhanismidega.</span></p>
<hr style="height: 1px; color : #000000; background-color : #000000; border-width : 0px;">
<p class="rvps38"><a name="ref_023"></a>
<span class="rvts36">[23] KeyChain class, Android Developer Reference [</span><a class="rvts38" href="http://developer.android.com/reference/android/security/KeyChain.html">URL</a><span class="rvts36">], iOS: Pre install SSL certificate in keychain – programmatically. StackOverflow [</span><a class="rvts38" href="http://stackoverflow.com/questions/5323686/ios-pre-install-ssl-certificate-in-keychain-programmatically">URL</a><span class="rvts36">]. </span></p>
<p class="rvps12"><a name="ref_024"></a>
<span class="rvts27">[24] WebView komponent on kõigil platvormidel standardne komponent, mille eesmärk on võimaldada töödelda ja esitleda veebitehnoloogial põhinevat sisu (kas siis dünaamilist või staatilist). Android platvormil kannab see nimetus </span><span class="rvts39">WebView class</span><span class="rvts27">, iOS-s </span><span class="rvts39">UIWebView class</span><span class="rvts27"> ja WM-s </span><span class="rvts39">WebBrowser control</span><span class="rvts27"> (täiendav info platvormi komponentide kohta: </span><a class="rvts28" href="http://developer.android.com/reference/android/webkit/WebView.html">Android</a><span class="rvts27">, </span><a class="rvts28" href="https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIWebView_Class/">iOS</a><span class="rvts27"> ja </span><span class="rvts28">WM</span><span class="rvts27">).</span></p>
</div>
<div id="topic_footer">
<div id="topic_footer_content">
Elektroonilise identiteedi (eID) tarkvara laiendamine mobiilsetele platvormidele, v1.0. Sertifitseerimiskeskus AS, Finestmedia AS, Applaud OÜ (2014-2015)</div>
</div>
</body>
</html>