Git Product home page Git Product logo

kdc's Introduction

Criptografia Simétrica - Centro de distribuição de chaves (KDC)

Conceito

  • O KDC (Key Distribution Center) é uma entidade terceira responsável por distribuir chaves;
  • Esquema de distribuição amplamente utilizado;
  • Cada usuário/processo compartilha uma chave única com o KDC;
  • Baseado no conceito de hierarquia de chaves.

Hierarquia de chaves

  • A comunicação entre duas entidades é realizada utilizando uma chave temporária, chamada de chave de sessão; Normalmente a duração/utilização dessa chave está relacionada a uma conexão, depois é descartada;
  • Cada chave de sessão é obtida no KDC através de uma conexão criptografada utilizando a chave mestre, que é compartilhada entre o KDC e o usuário/processo.
  • Ou seja, cada usuário/processo compartilha uma chave única com o KDC;
  • Como é realizado esse compartilhamento de chaves? Normalmente de maneira física.

Cenário de Distribuição de Chaves

  • Premissas:
    • Bob deseja conversar com Alice utilizando criptografia simétrica;
    • Bob não compartilha uma chave simétrica com Alice;
    • Bob compartilha uma chave simétrica com o KDC (k bob);
    • Alice compartilha uma chave simétrica com o KDC (k alice)

Passo a passo

  1. Bob requisita ao KDC uma chave de sessão (k sessão) para conversar com Alice, esta mensagem contém:
    • Identificador de Bob
    • Identificador de Alice
    • Nonce (Identificador único: normalmente um número aleatório ou timestamp, tem a finalidade de identificar a requisição)
  2. KDC responde com uma mensagem cifrada utilizando (k bob) , ou seja, apenas Bob consegue decifrar;
    A mensagem contém duas informações direcionadas para Bob e duas para Alice.
    Informações direcionadas para Bob:
    • Chave de sessão (k sessao), que será utilizada para comunicar com Alice;
    • Requisição inicial (Passo-1), com o Nonce incluso; Permite identificar e verificar a integridade da mensagem
  3. Informações direcionadas para Alice cifradas utilizando a (k alice):
    • Chave de sessão (k sessao), que será utilizada para comunicar com Alice;
    • Identificador de Bob (por exemplo, IP)
  4. Passo 4
    • Bob armazena (k sessão). para ser utilizada posteriormente e encaminha as informações que vieram do KDC para Alice ;
    • Como a mensagem está cifrada utilizando a (k alice), Alice sabe que a mensagem foi originada em KDC;
    • Dessa forma, Alice conhece o identificador de Bob e a chave de sessão.
    • Nesse momento, Bob e Alice possuem a (k sessão). e podem conversar utilizando criptografia simétrica;
  5. Alice gera um nonce e encaminha para Bob, cifrando na (k sessão).
  6. Passo 6
    • Bob responde Alice executando uma função sobre o nonce recebido, cifrando na (k sessão). * Essa função pode ser uma operação matemática, por exemplo: incrementar o nonce.
    • ##Observação: Esses dois últimos passos garantem a autenticação!**


kdc's People

Contributors

abnermatheus avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.