Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Advanced Crypto Service Provider – kryptografia jako usługa

Advanced Crypto Service Provider – kryptografia jako usługa

Zapewnienie bezpieczeństwa danych to konieczny standard w wielu środowiskach IT. W czasie gdy informacje coraz częściej są przetrzymywane w „chmurze” zapewnienie bezpieczeństwa stanowi coraz bardziej poważne wyzwanie.
IBM Advanced Crypto Service Provider (ACSP) jest rozwiązaniem, które pozwala udostępnić zasoby koprocesora kryptograficznego firmy IBM poza system, w którym został zainstalowany.
Takie rozwiązanie pozwala na korzystanie z silnej kryptografii sprzętowej jako usługi („cryptography as a service”) w środowiskach rozproszonych o niższym stopniu bezpieczeństwa.
ACSP to „network hardware security module (NetHSM)”, który pozwala na korzystanie zarówno z funkcji IBM Common Cryptographic Architecture (CCA) jak i standardu PKCS#11.

Więcej na https://ibm.box.com/v/acsp-vault-ibm-forum-2015

Nagranie z tej sesji znajduje się pod adresem https://vimeo.com/smartcoders/acsp-vault-ibm-forum-2015

27b9145d6164b06cb4b789d9928d451f?s=128

Smart Coders

March 16, 2015
Tweet

Transcript

  1. Advanced  Crypto  Service  Provider     –  Kryptografia  jako  usługa

    Warszawa,  16  marca  2015         Błażej  Pawlak   Crypto  Competence  Center,  Copenhagen  @  IBM  Dania
  2. IBM  4765  PCIe  Cryptographic  Coprocessor

  3. Problem Brak  bezpiecznego,  zdalnego  dostępu  do  sprzętowych  usług   kryptograficznych

     na  poziomie  API  oraz  web  service.
  4. Rozwiązanie • System  w  architekturze  klient  –  serwer,  gdzie  serwer

     w  imieniu  klienta   komunikuje  się  z  koprocesorem  kryptograficznym. ! ! ! ! ACSP  servers ACSP  client TLS
  5. Rozwiązanie • Usługa  REST  z  prostszym  API  –  „zCloud  ACSP

     REST  service” ! ! ! ! ! REST   client ACSP  REST  on  WAS  
 +
 ACSP  client ACSP  servers TLS TLS
  6. ! ! ! ! ! ! INSECURE ZONE PUBLIC ZONE

    BLUE SECURE ZONE RED HTTPS TLS connection – Client & server mutual authentication iOS device with Touch ID – Touch ID on iOS 8 TCP TLS connection – Client & server mutual authentication ACSP REST Service – z/OS, AIX, Linux, Windows – Websphere Liberty Core profile – ACSP client ACSP Servers with cryptographic hardware – z/OS, AIX, Linux, z/Linux – ACSP server – CEX2, 4764, CEX3, CEX4S, CEX5S, 4765
  7. Kluczowa  funkcjonalność • Zdalny  dostęp  do  koprocesora  kryptograficznego.   •

    Szyfrowanie  oraz  deszyfrowanie  z  użyciem  algorytmów  symetrycznych   (w  demo  to  AES).   • Generowanie  i  weryfikacja  za  pomocą  funkcji  skrótu  SHA   • Generowanie  oraz  weryfikacja  podpisu  cyfrowego  (PoC).
  8. Korzyści • Zdalny  dostęp  do  „mocnej”  kryptografii  sprzętowej  firmy  IBM.

      • Zwiększenie  wykorzystania  zasobów  koprocesora  kryptograficznego.
  9. iOS  ACSP  REST  Demo
 Szyfrowanie  wiadomości
 z  iPhone  6

  10. ! ! ! ! ! ! INSECURE ZONE PUBLIC ZONE

    BLUE SECURE ZONE RED HTTPS TLS connection – Client & server mutual authentication iOS device with Touch ID – Touch ID on iOS 8 TCP TLS connection – Client & server mutual authentication ACSP REST Service – z/OS, AIX, Linux, Windows – Websphere Liberty Core profile – ACSP client ACSP Servers with cryptographic hardware – z/OS, AIX, Linux, z/Linux – ACSP server – CEX2, 4764, CEX3, CEX4S, CEX5S, 4765 5 4 3 2 1
  11. Kluczowa  funkcjonalność • Zdalny  dostęp  do  koprocesora  kryptograficznego.   •

    Szyfrowanie  oraz  deszyfrowanie  z  użyciem  algorytmów  symetrycznych   (w  demo  to  AES).   • Generowanie  i  weryfikacja  za  pomocą  funkcji  skrótu  SHA   • Generowanie  oraz  weryfikacja  podpisu  cyfrowego  (PoC).
  12. Pytania?

  13. None
  14. 1. Client protocol [cca] instantiated 2. Connecting [ssl on 127.0.0.1:-1]

    to [192.168.77.200:8994] 3. ACSP01250I Created TLS/SSL connection to [192.168.77.200:8994] using cipher suite [SSL_RSA_WITH_AES_128_CBC_SHA] with protocols [[TLSv1.2]]
 4. Connected for transport [ssl] protocol [cca] from own socket [ssl on 127.0.0.1:54211] to [192.168.77.200:8994]
 5. ACSP01110I Connected to [ssl:cca] on host [192.168.77.200] using service [$$acp-serv] 6. Connection [1] to [192.168.77.200] with transport [ssl] and protocol [cca] has been created 7. The connection pool now holds [1] connections. Połączenie  REST  klient  –  serwer
  15. POST  /zCloud-­‐JaxRS/crypto/cipher  HTTP/1.1   Content-­‐Type:  application/json   Host:  rest.cccc.dk.bal.ibm.com:29443  

    Connection:  close   User-­‐Agent:  Curl/2.1.1  (Macintosh;  OS  X/10.10.2)  GCDHTTPRequest   Content-­‐Length:  274   {          "cipherRequest":  {                  "operation":  "ENCRYPT",                  "text":  {                          "textType":  "BASE64",                          "textValue":  "QUNTUC5BRVMxMjguS0VZ"                  },                  "key":  {                          "keyLabel":  "ACSP.AES256.KEY",                          "keyType":  "AES"                  }          }   } REST  klient  –  serwer.  Zapytanie  JSON
  16. 1.        Submitting  [34]  bytes  for  [CSNBRNGL]  to

     host  [192.168.77.200]  using  connection  [1]   2.        Submitting  [217]  bytes  for  [CSNBSAE]  to  host  [192.168.77.200]  using  connection  [1]   Szyfrowanie  REST  –  AES
  17. Połączenie  ACSP  klient  –  serwer 1.      extracting  user

     from  certificate  DN=CN=client1,OU=IWP  Operations,O=Internet  Widgits  Pty  Ltd,ST=Copenhagen,C=DK  using  SAN:  ACSP:CLIENT1   2.      extracting  user  from  certificate  DN=CN=client1,OU=IWP  Operations,O=Internet  Widgits  Pty  Ltd,ST=Copenhagen,C=DK  using  SAN:  ACSP:CLIENT1   3.      Incoming  connect  for  [cca]  on  port  [8994]  from  client  [192.168.77.200:54247]   4.      ACSP01196I  Client  [192.168.77.200  /  192.168.77.200]  connect  to  port  8994  using  ssl  for  protocol  cca   5.      Socket  receive/send  buffer  sizes  [87379/330075]  with  Nagle's  algorithm  used  [false]   6.      ACSP01190I  Awaiting  connect  -­‐  name[ssl-­‐cca]  transport[ssl]  protocol[cca]  port[8994]  -­‐  Count[1]  Sessions[1]   7.      Identified  handler  of  class  [com.ibm.acsp.cca.ProtocolCcaServer]  for  port  number  [8994]   8.      Protocol  handler  [cca  on  layer  tcp  on  127.0.0.1:8994]  waiting  for  peer  [cca  at  192.168.77.200:54247]  
  18. Szyfrowanie  ACSP  serwer  –  AES 1.      Received  JCCA

     call  for  verb  [CSNBRNGL]   2.      Adding  rule  [RANDOM]   3.      Flushing  [cca  on  layer  tcp  on  127.0.0.1:8994]  output  stream  to  [cca  at  192.168.77.200:54247]   4.      Number  of  connects  [1]  -­‐  requests  [1]]  -­‐  responses  [1]   5.      Protocol  handler  [cca  on  layer  tcp  on  127.0.0.1:8994]  waiting  for  peer  [cca  at  192.168.77.200:54247]   6.      Received  JCCA  call  for  verb  [CSNBSAE]   7.      Adding  rule  [AES]   8.      Adding  rule  [PKCS-­‐PAD]   9.      Adding  rule  [KEYIDENT]   10.    Adding  rule  [INITIAL]   11.    Flushing  [cca  on  layer  tcp  on  127.0.0.1:8994]  output  stream  to  [cca  at  192.168.77.200:54247]   12.    Number  of  connects  [1]  -­‐  requests  [2]]  -­‐  responses  [2]   13.    Protocol  handler  [cca  on  layer  tcp  on  127.0.0.1:8994]  waiting  for  peer  [cca  at  192.168.77.200:54247]   14.    ACSP01195I  Closed  scheme  [tcp:cca]  on  port  [8997]  with  name  [tcp-­‐cca]  
  19. None
  20. Pytania?