Upload
petr-dvorak
View
462
Download
1
Embed Size (px)
Citation preview
Bezpečnost Zingly a detaily protokolu PowerAuth 2.0
Bezpečnost
Sdílejte přátelům a známým
Otázky lze klást v Q&A boxu
Odkaz na Slideshare v popisu videa
Záznam bude dostupný on-line
PowerAuth 2.0
Bezpečné úložiště / trezor
End-to-end šifrování komunikace
Open-source, komerční podpora
Více-faktorové podepisování
Autentizace mobilního bankovnictví
PowerAuth 2.0 - Procesy (pohledem single-bankingu)
Aktivace
Pohled ze strany uživatele
PowerAuth ServerZingly API Server
Internetové bankovnictví
Aktéři aktivačního procesu
PowerAuth ServerZingly API Server
Internetové bankovnictví
PowerAuth 2.0 Client
PowerAuth 2.0 Server
Master Front-End Application
Intermediate Server Application
Aktéři aktivačního procesu
Fáze 1: Inicializace aktivace v Internetbankingu
Fáze 2: Výměna public klíčů a derivace klíčů
PowerAuth ServerZingly API Server
Internetové bankovnictví
activation id
PowerAuth 2.0 Client
server public
device private
PowerAuth 2.0 Server
activation id
device public
server private
ECDH(privA, pubB)
ECDH(privB, pubA)
ECDH(privA, pubB)
=
MASTER-SECRET
=
ECDH(privB, pubA)
PowerAuth ServerZingly API Server
Internetové bankovnictví
activation id
PowerAuth 2.0 Client
server public
device private
PowerAuth ServerZingly API Server
Internetové bankovnictví
master secretactivation id
PowerAuth 2.0 Client
server public
device private
ECDH
PowerAuth ServerZingly API Server
Internetové bankovnictví
master secret
possession
knowledge
transport
vault encryption
activation id
PowerAuth 2.0 Client
server public
device private
biometry
KDF(AES)
PowerAuth ServerZingly API Server
Internetové bankovnictví
master secret
possession
knowledge
transport
vault encryption
activation id
PowerAuth 2.0 Client
server public
device private
biometry
Keychain
PowerAuth ServerZingly API Server
Internetové bankovnictví
master secret
possession
knowledge
transport
vault encryption
activation id
PowerAuth 2.0 Client
server public
device private
biometry
PBKDF2(PIN)
PowerAuth ServerZingly API Server
Internetové bankovnictví
master secret
possession
knowledge
transport
vault encryption
activation id
PowerAuth 2.0 Client
server public
device private
biometry Touch ID
PowerAuth ServerZingly API Server
Internetové bankovnictví
master secret
possession
knowledge
transport
vault encryption
activation id
PowerAuth 2.0 Client
server public
device private
biometry
PowerAuth ServerZingly API Server
Internetové bankovnictví
possession
knowledge
transport
vault encryption
activation id
PowerAuth 2.0 Client
server public
device private
biometry
PowerAuth ServerZingly API Server
Internetové bankovnictví
transport
vault encryption
activation id
PowerAuth 2.0 Client
server public
C(device private)
possession
knowledge
biometry
PowerAuth ServerZingly API Server
Internetové bankovnictví
transportactivation id
PowerAuth 2.0 Client
server public
C(device private)
possession
knowledge
biometry
PowerAuth ServerZingly API Server
Internetové bankovnictví
PowerAuth 2.0 Server
activation id
device public
server private
1234567890
Fáze 3: Potvrzení aktivace v Internetbankingu
Podepisování dat
HMAC-SHA256, logický čas, nonce
Částečné ověřování faktorů
Číselná signatura vhodná k přepisu
Svázané s daty požadavku
Multi-faktorové signatury
X-PowerAuth-Authorization: PowerAuth pa_activation_id="7a24c6e9-48e9-43c2-ab4a-aed6270e924d", pa_application_key="Z19gyYaW5kb521fYWN0aXZ==", pa_nonce="kYjzVBB8Y0ZFabxSWbWovY==", pa_signature_type="possession_knowledge_biometry" pa_signature="12345678-12345678-12345678", pa_version="2.0"
X-PowerAuth-Authorization: PowerAuth pa_activation_id="7a24c6e9-48e9-43c2-ab4a-aed6270e924d", pa_application_key="Z19gyYaW5kb521fYWN0aXZ==", pa_nonce="kYjzVBB8Y0ZFabxSWbWovY==", pa_signature_type="possession_knowledge_biometry" pa_signature="12345678-12345678-12345678", pa_version="2.0"
X-PowerAuth-Authorization: PowerAuth pa_activation_id="7a24c6e9-48e9-43c2-ab4a-aed6270e924d", pa_application_key="Z19gyYaW5kb521fYWN0aXZ==", pa_nonce="kYjzVBB8Y0ZFabxSWbWovY==", pa_signature_type="possession_knowledge_biometry" pa_signature="12345678-12345678-12345678", pa_version="2.0"
X-PowerAuth-Authorization: PowerAuth pa_activation_id="7a24c6e9-48e9-43c2-ab4a-aed6270e924d", pa_application_key="Z19gyYaW5kb521fYWN0aXZ==", pa_nonce="kYjzVBB8Y0ZFabxSWbWovY==", pa_signature_type="possession_knowledge_biometry" pa_signature="12345678-12345678-12345678", pa_version="2.0"
X-PowerAuth-Authorization: PowerAuth pa_activation_id="7a24c6e9-48e9-43c2-ab4a-aed6270e924d", pa_application_key="Z19gyYaW5kb521fYWN0aXZ==", pa_nonce="kYjzVBB8Y0ZFabxSWbWovY==", pa_signature_type="possession_knowledge_biometry" pa_signature="12345678-12345678-12345678", pa_version="2.0"
X-PowerAuth-Authorization: PowerAuth pa_activation_id="7a24c6e9-48e9-43c2-ab4a-aed6270e924d", pa_application_key="Z19gyYaW5kb521fYWN0aXZ==", pa_nonce="kYjzVBB8Y0ZFabxSWbWovY==", pa_signature_type="possession_knowledge_biometry" pa_signature="12345678-12345678-12345678", pa_version="2.0"
X-PowerAuth-Authorization: PowerAuth pa_activation_id="7a24c6e9-48e9-43c2-ab4a-aed6270e924d", pa_application_key="Z19gyYaW5kb521fYWN0aXZ==", pa_nonce="kYjzVBB8Y0ZFabxSWbWovY==", pa_signature_type="possession_knowledge_biometry" pa_signature="12345678-12345678-12345678", pa_version="2.0"
• 1FA: possession , knowledge , biometry • 2FA: possession_knowledge , possession_biometry • 3FA: possession_knowledge_biometry
Typy PowerAuth 2.0 signatur
X-PowerAuth-Authorization: PowerAuth pa_activation_id="7a24c6e9-48e9-43c2-ab4a-aed6270e924d", pa_application_key="Z19gyYaW5kb521fYWN0aXZ==", pa_nonce="kYjzVBB8Y0ZFabxSWbWovY==", pa_signature_type="possession_knowledge_biometry" pa_signature="12345678-12345678-12345678", pa_version="2.0"
X-PowerAuth-Authorization: PowerAuth pa_activation_id="7a24c6e9-48e9-43c2-ab4a-aed6270e924d", pa_application_key="Z19gyYaW5kb521fYWN0aXZ==", pa_nonce="kYjzVBB8Y0ZFabxSWbWovY==", pa_signature_type="possession_knowledge_biometry" pa_signature="12345678-12345678-12345678", pa_version="2.0"
X-PowerAuth-Authorization: PowerAuth pa_activation_id="7a24c6e9-48e9-43c2-ab4a-aed6270e924d", pa_application_key="Z19gyYaW5kb521fYWN0aXZ==", pa_nonce="kYjzVBB8Y0ZFabxSWbWovY==", pa_signature_type="possession_knowledge_biometry" pa_signature="12345678-12345678-12345678", pa_version="2.0"
Secure Vault
“Vault encryption” vydán po autentizaci
Přenos chráněn transportním klíčem
Bezpečné lokální úložiště
End-to-end šifrování
Jednorázové transportní klíče
Derivace z “master transport” klíče
Šifrování na aplikační úrovni
PowerAuth 2.0 a single-banking
PowerAuth 2.0 a multi-banking
Lze řešit různými způsoby
Ne kompromis v bezpečnosti či UX
Nové specifické problémy
Nechceme super-autoritu
Příklad: Práce s PIN kódem na jednom zařízení
PowerAuth Server
Zingly API Server
Banka A
Ban
kyUži
vate
lé
Internetové bankovnictví
knowledge
activation id
PowerAuth 2.0 Client
PowerAuth Server
Zingly API Server
Banka A
Ban
kyUži
vate
lé
Internetové bankovnictví
activation id
PowerAuth 2.0 Client
PIN(x)
knowledge
PowerAuth Server PowerAuth Server
Zingly API Server Zingly API Server
Banka A Banka B
Ban
kyUži
vate
lé
Internetové bankovnictví
Internetové bankovnictví
activation id
PowerAuth 2.0 Client
PIN(x)
activation id
PowerAuth 2.0 Client
PIN(y)
knowledge knowledge
PowerAuth Server PowerAuth Server
Zingly API Server Zingly API Server
Banka A Banka B
Ban
kyUži
vate
lé
Internetové bankovnictví
Internetové bankovnictví
activation id
PowerAuth 2.0 Client
PIN(x)
activation id
PowerAuth 2.0 Client
PIN(y)
X = Y ?
knowledge knowledge
PowerAuth Server PowerAuth Server
Zingly API Server Zingly API Server
Banka A Banka B
Ban
kyUži
vate
lé
Internetové bankovnictví
Internetové bankovnictví
activation id
PowerAuth 2.0 Client
PIN(x)
activation id
PIN(?)
knowledge knowledge
Problém 1: Aplikace nezná PIN
PowerAuth Server
Zingly API Server
Banka A
Ban
kyUži
vate
lé
Internetové bankovnictví
activation id
PowerAuth 2.0 Client
PIN(x)
knowledge
PowerAuth Server PowerAuth Server
Zingly API Server Zingly API Server
Banka A Banka B
Ban
kyUži
vate
lé
Internetové bankovnictví
Internetové bankovnictví
activation id
PowerAuth 2.0 Client
PIN(x)
knowledge
PowerAuth Server PowerAuth Server
Zingly API Server Zingly API Server
Banka A Banka B
Ban
kyUži
vate
lé
Internetové bankovnictví
Internetové bankovnictví
activation id
PowerAuth 2.0 Client
PIN(x)
activation id
knowledge knowledge
Problém 2: Pro X bank, N * X pokusů
PowerAuth Server PowerAuth Server
Zingly API Server Zingly API Server
Banka A Banka B
Ban
kyUži
vate
lé
Internetové bankovnictví
Internetové bankovnictví
activation id
PowerAuth 2.0 Client
PIN(x)
activation id
PIN(x)
knowledge knowledge
PowerAuth Server PowerAuth Server
Zingly API Server Zingly API Server
Banka A Banka B
Ban
kyUži
vate
lé
Internetové bankovnictví
Internetové bankovnictví
activation id
PowerAuth 2.0 Client
PIN(x)
activation id
PIN(x)
knowledge knowledge
S každou další bankou o trochu méně bezpečné
Problém 3: Synchronizace
PowerAuth Server PowerAuth Server
Zingly API Server Zingly API Server
Banka A Banka B
Ban
kyUži
vate
lé
Internetové bankovnictví
Internetové bankovnictví
activation id
PowerAuth 2.0 Client
PIN(x)
activation id
PIN(x)
knowledge knowledge
PowerAuth Server PowerAuth Server
Zingly API Server Zingly API Server
Banka A Banka B
Ban
kyUži
vate
lé
Internetové bankovnictví
Internetové bankovnictví
activation id
PowerAuth 2.0 Client
PIN(x)
knowledge
activation id
PIN(x)
Nová platba
knowledge
PowerAuth Server PowerAuth Server
Zingly API Server Zingly API Server
Banka A Banka B
Ban
kyUži
vate
lé
Internetové bankovnictví
Internetové bankovnictví
knowledge
activation id
PowerAuth 2.0 Client
PIN(x)
knowledge
activation id
PIN(x)
Nová platba - neúspěšná autorizace
PowerAuth Server PowerAuth Server
Zingly API Server Zingly API Server
Banka A Banka B
Ban
kyUži
vate
lé
Internetové bankovnictví
Internetové bankovnictví
knowledge
activation id
PowerAuth 2.0 Client
PIN(x)
knowledge
activation id
PIN(x)
0 pokusů BLOCKED
5 pokusů ACTIVE
Řešení: Centrální komunikační hub a secure vault
PowerAuth Server PowerAuth Server
Zingly API Server Zingly API Server
Zingly Multi-Banking Hub Server
Banka A Banka B
Ban
kyUži
vate
léZ
ing
ly
Internetové bankovnictví
Internetové bankovnictví
PowerAuth Server PowerAuth Server
Zingly API Server Zingly API Server
Zingly Multi-Banking Hub Server
Banka A Banka B
Ban
kyUži
vate
lé
PowerAuth Server
Zin
gly
Internetové bankovnictví
Internetové bankovnictví
Uži
vate
lé
knowledge
activation id
PowerAuth 2.0 Client
PIN(x)
knowledge
activation id
PIN(x)
PowerAuth Server PowerAuth Server
Zingly API Server Zingly API Server
Zingly Multi-Banking Hub Server
Banka A Banka B
Ban
kyUži
vate
lé
PowerAuth Server
Zin
gly
Internetové bankovnictví
Internetové bankovnictví
Uži
vate
léPowerAuth 2.0 Client
PowerAuth Server PowerAuth Server
Zingly API Server Zingly API Server
Zingly Multi-Banking Hub Server
Banka A Banka B
Ban
kyUži
vate
lé
PowerAuth Server
Zin
gly
Internetové bankovnictví
Internetové bankovnictví
VAULT
knowledge
activation id
PIN(x)
activation id
PIN(x)
activation id
PIN(x)
knowledge knowledge
Centrální komunikační hub
Nevidí data (end-to-end šifrování)*
Nemusí být jen jeden “uber-hub”
Neukládá žádná data
Zvyšuje bezpečnost
* … trochu “nepohodlné” z pohledu API a náročné na CPU výkon, proto zatím neděláme
24. 3.,16:00 - 17:00 Co musí banka udělat pro zapojení do Zingly
31.3., 15:00 - 16:00 Dopad multi-bankingu a otevřených bankovních API do obchodního fungování bank