---
# System prepended metadata

title: Sunum Akışları

---




## Generic Security Controls 
Uctan uca guvenlik kontrolleri dahil olarak ornek
### For HttpGet

-

### For HttpPost/HttpPut/...
```plantuml
@startuml

participant Uygulama as client
participant "Güvenlik SDK" as ssdk
participant "Secure Server\nAPI Gateway" as ss
participant "Dijital Bankacılık\n Middleware" as amorphie
collections "Temel Sistemler" as backend

client -> ssdk: Hesap Açma İsteği
ssdk -> ss: Hesap Açma İsteği
ss -> amorphie: Token Sorgulama İsteği
amorphie -> ss: Token Sorgulama Yanıtı

ss -> amorphie: JWS İmza Kontrolü 
amorphie -> ss: JWS İmza Kontrolü Tamam

ss -> amorphie: İzin ve Yetki Kontrolü
amorphie -> ss: İzin ve Yetki Tamam

ss -> backend: Hesap Açma İsteği
backend -> ss: Hesap Açma Yanıtı
ss -> ssdk: Hesap Açma Yanıtı
ssdk -> client: Hesap Açma Yanıtı


@enduml
```

## Enrollment (First Login)
```plantuml
@startuml
participant Uygulama as client
participant "Güvenlik SDK" as ssdk
participant "Secure Server API Gateway" as ssag
participant "Dijital Bankacılık Platformu" as amorphie
participant "Hashicorp Vault" as hv


client -> ssdk : Guvenlik SDK başlat.
ssdk-> ssdk: Güvenlik sensörlerini başlat.
note right
  Güvenlik sensörleri sürekli olarak bu andan itibaren uygulamayı ve cihazı izleycektir.
  Riskli bir girişim bulduğu anda oturum sonlandırılacaktır.
end note
ssdk o<-[#0000FF]>o ssag: Başarılı 2FA Login Akışı
ssdk-> ssdk: İmzalama için asimetrik anahtarları oluştur. \n(Keystore-Android,Secure Enclave-iOS)
ssdk->ssag: İmzalama genel anahatarını gönder.

ssag-->ssag: Güvenlik kontrolleri
note right #aqua
  Tüm isteklerde güvenlik kontolleri tekrarlanır.
end note

ssag->amorphie: Genel Anahtarı gönder
amorphie->amorphie: Genel anahtarı kullanıcı özelinde kaydet.
amorphie->hv: Şifreleme için sertifika Oluştur
hv->hv: Kuruluma özel mTLS Sertifikasını oluştur.
hv->amorphie: mTLS Sertifikasını ve anahtarları ilet 
amorphie->amorphie: Genel anahtarı ve sertifikayı kurulum özelinde kaydet.
amorphie->ssag:  mTLS Sertifikasını ve özel anahtarı ilet
ssag->ssdk:  mTLS Sertifikasını ve özel anahtarı ilet
amorphie->amorphie : Özel anahtarı sil (unut).
ssdk->ssdk: mTLS Sertifikasını ve özel Anahtarı \n güvenli alana kaydet
ssdk->client: Kayıt başarılı
ssdk o<-[#green]>o ssag: MTLS Bağlantısını kur.
note right
  Bu andan sonra;
  - Tüm bağlantılar mTLS kurulu olacaktır.
  - Tüm istekler imzalı olacaktır.
end note
@enduml
```
## Login

```plantuml
@startuml

participant Uygulama as client
participant "Güvenlik SDK" as ssdk
participant "Secure Server\nAPI Gateway" as ss
participant "Dijital Bankacılık\n Middleware" as amorphie
collections "Temel Sistemler" as backend

group Kullanıcı Giriş Adımları Başarılı
end

client->amorphie: Giriş onay istek
amorphie->amorphie: Nonce değeri oluştur
amorphie->amorphie: Kullanıcı Public Key db oku
amorphie->amorphie: Nonce değerini \nKullanıcı Public Key ile şifrele - \nKullanıcıdan gelen

amorphie->ssdk: Şifrelenmiş bilgileri gönder
ssdk->ssdk: Secure Element üzerinden şifrelenmiş nonce çöz

ssdk->ssdk: Secure Element üzerinden private key ile nonce imzala
ssdk->amorphie: İmzalı bilgileri gönder
amorphie->amorphie: Kullanıcı Public Key ile imzayı onayla

amorphie->ssdk: Giriş başarılı

ssdk->client: Giriş başarılı

client<->backend: Güvenli bağlantı sağlandı

@enduml
```
## Transaction Signing in Detail


```plantuml
@startuml

participant Uygulama as client
participant "Güvenlik SDK" as ssdk
participant "Secure Server\nAPI Gateway" as ss
participant "Dijital Bankacılık\n Middleware" as amorphie
collections "Temel Sistemler" as backend

group Finansal Sonuç Doğuran İşlemler
end

client->amorphie: Finansal işlem onay istek
amorphie->amorphie: Nonce değeri oluştur
amorphie->amorphie: Kullanıcı Public Key db oku
amorphie->amorphie: Nonce değerini \nKullanıcı Public Key ile şifrele - \nKullanıcıdan gelen

amorphie->ssdk: Şifrelenmiş bilgileri gönder
ssdk->ssdk: Secure Element üzerinden şifrelenmiş nonce çöz

ssdk->ssdk: Secure Element üzerinden private key ile nonce imzala
ssdk->amorphie: İmzalı bilgileri gönder
amorphie->amorphie: Kullanıcı Public Key ile imzayı onayla

amorphie->ssdk: Onay başarılı


amorphie->backend: Onay başarılı
backend->backend: İşlemi gerçekleştir

backend->ssdk: İşlem başarılı
ssdk->client: İşlem başarılı

@enduml
```

### Full Flow

### 3FA Subflow

## Document Signing in Detail
```plantuml
@startuml

participant Uygulama as client
participant "Güvenlik SDK" as ssdk
participant "Secure Server\nAPI Gateway" as ss
participant "Dijital Bankacılık\n Middleware" as amorphie

amorphie->amorphie: Dokuman hash oluşturulur
amorphie->amorphie: Dokuman bilgileri db kaydedibilir

amorphie->client: Dokuman bilgisi response

client-> ssdk: Kullanıcı Dokumanı onaylar

ssdk->ssdk : Dokumanın Hash alınır ve \n kullanıcı device private key ile imzalanır
ssdk->ssdk : Dokuman Pades ile imzalanır

ssdk->amorphie: Dokuman onay kontrolu

amorphie->amorphie: Dokuman hash kontrol
amorphie->amorphie: Dokuman imza kontrol
amorphie->amorphie: Dokuman Pades kontrol

@enduml
```
## API Gateway Log ve Telemetri Akisi

