bezpečnost zingly a detaily protokolu powerauth 2.0

78
Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

Upload: petr-dvorak

Post on 12-Apr-2017

462 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

Page 2: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

Petr Dvořák CEO at Lime

E-mail: [email protected]

Twitter: @joshis_tweets

Page 3: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0
Page 4: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

Bezpečnost

Page 5: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

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

Page 6: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

PowerAuth 2.0

Page 7: Bezpečnost Zingly a detaily protokolu 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í

Page 8: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

PowerAuth 2.0 - Procesy (pohledem single-bankingu)

Page 9: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

Aktivace

Page 10: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

Pohled ze strany uživatele

Page 11: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

PowerAuth ServerZingly API Server

Internetové bankovnictví

Aktéři aktivačního procesu

Page 12: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

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

Page 13: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

Fáze 1: Inicializace aktivace v Internetbankingu

Page 14: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0
Page 15: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

Fáze 2: Výměna public klíčů a derivace klíčů

Page 16: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

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

Page 17: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

ECDH(privA, pubB)

ECDH(privB, pubA)

Page 18: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

ECDH(privA, pubB)

=

MASTER-SECRET

=

ECDH(privB, pubA)

Page 19: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

PowerAuth ServerZingly API Server

Internetové bankovnictví

activation id

PowerAuth 2.0 Client

server public

device private

Page 20: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

PowerAuth ServerZingly API Server

Internetové bankovnictví

master secretactivation id

PowerAuth 2.0 Client

server public

device private

ECDH

Page 21: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

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)

Page 22: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

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

Page 23: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

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)

Page 24: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

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

Page 25: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

PowerAuth ServerZingly API Server

Internetové bankovnictví

master secret

possession

knowledge

transport

vault encryption

activation id

PowerAuth 2.0 Client

server public

device private

biometry

Page 26: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

PowerAuth ServerZingly API Server

Internetové bankovnictví

possession

knowledge

transport

vault encryption

activation id

PowerAuth 2.0 Client

server public

device private

biometry

Page 27: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

PowerAuth ServerZingly API Server

Internetové bankovnictví

transport

vault encryption

activation id

PowerAuth 2.0 Client

server public

C(device private)

possession

knowledge

biometry

Page 28: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

PowerAuth ServerZingly API Server

Internetové bankovnictví

transportactivation id

PowerAuth 2.0 Client

server public

C(device private)

possession

knowledge

biometry

Page 29: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

PowerAuth ServerZingly API Server

Internetové bankovnictví

PowerAuth 2.0 Server

activation id

device public

server private

Page 30: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

1234567890

Fáze 3: Potvrzení aktivace v Internetbankingu

Page 31: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

Podepisování dat

Page 32: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

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

Page 33: Bezpečnost Zingly a detaily protokolu PowerAuth 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"

Page 34: Bezpečnost Zingly a detaily protokolu PowerAuth 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"

Page 35: Bezpečnost Zingly a detaily protokolu PowerAuth 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"

Page 36: Bezpečnost Zingly a detaily protokolu PowerAuth 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"

Page 37: Bezpečnost Zingly a detaily protokolu PowerAuth 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"

Page 38: Bezpečnost Zingly a detaily protokolu PowerAuth 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"

Page 39: Bezpečnost Zingly a detaily protokolu PowerAuth 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

Page 40: Bezpečnost Zingly a detaily protokolu PowerAuth 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"

Page 41: Bezpečnost Zingly a detaily protokolu PowerAuth 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"

Page 42: Bezpečnost Zingly a detaily protokolu PowerAuth 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"

Page 43: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

Secure Vault

Page 44: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

“Vault encryption” vydán po autentizaci

Přenos chráněn transportním klíčem

Bezpečné lokální úložiště

Page 45: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

End-to-end šifrování

Page 46: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

Jednorázové transportní klíče

Derivace z “master transport” klíče

Šifrování na aplikační úrovni

Page 47: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

PowerAuth 2.0 a single-banking

Page 48: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

PowerAuth 2.0 a multi-banking

Page 49: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

Lze řešit různými způsoby

Ne kompromis v bezpečnosti či UX

Nové specifické problémy

Nechceme super-autoritu

Page 50: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

Příklad: Práce s PIN kódem na jednom zařízení

Page 51: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

PowerAuth Server

Zingly API Server

Banka A

Ban

kyUži

vate

Internetové bankovnictví

knowledge

activation id

PowerAuth 2.0 Client

Page 52: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

PowerAuth Server

Zingly API Server

Banka A

Ban

kyUži

vate

Internetové bankovnictví

activation id

PowerAuth 2.0 Client

PIN(x)

knowledge

Page 53: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

PowerAuth Server PowerAuth Server

Zingly API Server Zingly API Server

Banka A Banka B

Ban

kyUži

vate

Internetové bankovnictví

Internetové bankovnictví

activation id

PowerAuth 2.0 Client

PIN(x)

activation id

PowerAuth 2.0 Client

PIN(y)

knowledge knowledge

Page 54: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

PowerAuth Server PowerAuth Server

Zingly API Server Zingly API Server

Banka A Banka B

Ban

kyUži

vate

Internetové bankovnictví

Internetové bankovnictví

activation id

PowerAuth 2.0 Client

PIN(x)

activation id

PowerAuth 2.0 Client

PIN(y)

X = Y ?

knowledge knowledge

Page 55: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

PowerAuth Server PowerAuth Server

Zingly API Server Zingly API Server

Banka A Banka B

Ban

kyUži

vate

Internetové bankovnictví

Internetové bankovnictví

activation id

PowerAuth 2.0 Client

PIN(x)

activation id

PIN(?)

knowledge knowledge

Page 56: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

Problém 1: Aplikace nezná PIN

Page 57: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

PowerAuth Server

Zingly API Server

Banka A

Ban

kyUži

vate

Internetové bankovnictví

activation id

PowerAuth 2.0 Client

PIN(x)

knowledge

Page 58: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

PowerAuth Server PowerAuth Server

Zingly API Server Zingly API Server

Banka A Banka B

Ban

kyUži

vate

Internetové bankovnictví

Internetové bankovnictví

activation id

PowerAuth 2.0 Client

PIN(x)

knowledge

Page 59: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

PowerAuth Server PowerAuth Server

Zingly API Server Zingly API Server

Banka A Banka B

Ban

kyUži

vate

Internetové bankovnictví

Internetové bankovnictví

activation id

PowerAuth 2.0 Client

PIN(x)

activation id

knowledge knowledge

Page 60: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

Problém 2: Pro X bank, N * X pokusů

Page 61: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

PowerAuth Server PowerAuth Server

Zingly API Server Zingly API Server

Banka A Banka B

Ban

kyUži

vate

Internetové bankovnictví

Internetové bankovnictví

activation id

PowerAuth 2.0 Client

PIN(x)

activation id

PIN(x)

knowledge knowledge

Page 62: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

PowerAuth Server PowerAuth Server

Zingly API Server Zingly API Server

Banka A Banka B

Ban

kyUži

vate

Internetové bankovnictví

Internetové bankovnictví

activation id

PowerAuth 2.0 Client

PIN(x)

activation id

PIN(x)

knowledge knowledge

Page 63: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

S každou další bankou o trochu méně bezpečné

Page 64: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

Problém 3: Synchronizace

Page 65: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

PowerAuth Server PowerAuth Server

Zingly API Server Zingly API Server

Banka A Banka B

Ban

kyUži

vate

Internetové bankovnictví

Internetové bankovnictví

activation id

PowerAuth 2.0 Client

PIN(x)

activation id

PIN(x)

knowledge knowledge

Page 66: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

PowerAuth Server PowerAuth Server

Zingly API Server Zingly API Server

Banka A Banka B

Ban

kyUži

vate

Internetové bankovnictví

Internetové bankovnictví

activation id

PowerAuth 2.0 Client

PIN(x)

knowledge

activation id

PIN(x)

Nová platba

knowledge

Page 67: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

PowerAuth Server PowerAuth Server

Zingly API Server Zingly API Server

Banka A Banka B

Ban

kyUži

vate

Internetové bankovnictví

Internetové bankovnictví

knowledge

activation id

PowerAuth 2.0 Client

PIN(x)

knowledge

activation id

PIN(x)

Nová platba - neúspěšná autorizace

Page 68: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

PowerAuth Server PowerAuth Server

Zingly API Server Zingly API Server

Banka A Banka B

Ban

kyUži

vate

Internetové bankovnictví

Internetové bankovnictví

knowledge

activation id

PowerAuth 2.0 Client

PIN(x)

knowledge

activation id

PIN(x)

0 pokusů BLOCKED

5 pokusů ACTIVE

Page 69: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

Řešení: Centrální komunikační hub a secure vault

Page 70: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

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í

Page 71: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

PowerAuth Server PowerAuth Server

Zingly API Server Zingly API Server

Zingly Multi-Banking Hub Server

Banka A Banka B

Ban

kyUži

vate

PowerAuth Server

Zin

gly

Internetové bankovnictví

Internetové bankovnictví

Page 72: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

Uži

vate

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

PowerAuth Server

Zin

gly

Internetové bankovnictví

Internetové bankovnictví

Page 73: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

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

PowerAuth Server

Zin

gly

Internetové bankovnictví

Internetové bankovnictví

VAULT

knowledge

activation id

PIN(x)

activation id

PIN(x)

activation id

PIN(x)

knowledge knowledge

Page 74: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

Centrální komunikační hub

Page 75: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

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

Page 76: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

Děkuji

Petr Dvořák e-mail: [email protected] twitter: @zinglyapp

http://powerauth.com/

Page 77: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

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

Page 78: Bezpečnost Zingly a detaily protokolu PowerAuth 2.0

Otázky? :-)

Petr Dvořák e-mail: [email protected] twitter: @zinglyapp

http://powerauth.com/