Contents Previous Next

Entendendo o $TransKEY

O mecanismo de TransKEY é usado para validar a origem do evento sendo cadastrado. No arquivo de parâmetros tem uma variável chamada TransKEY. Ela pode ser definida conforme abaixo :

    #
    # Parametros.MTMON parcial do servidor MTMON
    #
    $Origem='';
    $TransKEY='V9RZV.Xq';

Outro parâmetro relacionado é TabelaOrigem que pode ter o conteúdo abaixo para nosso exemplo :

    #Origem|TransKEY|Nome do cliente
    [cliente1]
        TransKey=tYvjM6QK
        Nome=Cliente monitorado 1
    [cliente2]
        TransKey=hxY6DKdF
        Nome=Cliente monitorado 2

A implementação mais simples define Origem em branco e a variável TransKEY igual no servidor do MTMON e no computador que gera o evento. TransKEY é uma seqüência de 8 caracteres e se for definida com menos caracteres, estes são repetidos até formar 8 caracteres.

Todo evento à ser cadastrado gera uma chave que usa uma informação que se tem com uma informação que se sabe.

A informação que se tem, disponível no cliente e servidor do MTMON é o TransKEY e NUNCA É TRANSMITIDA entre o cliente e o servidor. A informação que se sabe é a data que é enviada junto com o evento. O software executa uma operação XOR usando o TransKEY com a data definida. O resultado é usado como senha no comando crypt. A seqüência de caracteres gerada pelo comando crypt é única e estabelece com segurança a transação de criação do evento. Se o TransKEY não for igual ou a hora já foi usada em outra transação, o evento é rejeitado.

Numa implementação onde a origem do evento deve ser identificada, como por exemplo para tarifação, pode ser definida a variável Origem.

Neste caso, o programa que faz o cadastro do evento, relaciona a Origem com a tabela no arquivo TabelaOrigem definida no arquivo de parâmetros. Se existir uma entrada para aquela origem, TransKEY é definido com o conteúdo da tabela. Se não possui entrada na tabela, é usada a variável TransKEY do arquivo de parâmetros local, e a implementação mais simples é aplicada.

Por exemplo, o arquivo de parâmetros do cliente cliente1 poderia ter a seguinte definição :

    #
    # Parametros.MTMON parcial do cliente1
    #
    $Origem='cliente1';
    $TransKEY='tYvjM6QK';

Assim um evento à ser cadastrado pelo cliente1, usaria a Origem='cliente1' que tem o TransKEY='tYvjM6QK'. Ao receber a solicitação, o servidor consultará a tabela de origem e encontrará o TransKEY do cliente1 que será usado.

Importante : A função do TransKEY não é proteger o conteúdo da informação, mas garantir que a origem seja de fato do cliente esperado.

A recomendação é que o TransKEY no servidor do MTMON não seja definido, pois o arquivo de definição do cliente e do servidor são o mesmo. Definir o TransKEY gerará um overhead que não trará nenhum benefício de performance e/ou segurança.


Contents Previous Next