Autenticação DES no Lado do Cliente

Para usar a autenticação do DES, o cliente define pela primeira vez sua alça de autenticação da seguinte forma:

cl->cl_auth =
    authdes_create(servername, 60, &server_addr, NULL);
O primeiro argumento (servername) para a rotina authdes_create é o nome da rede, ou nome líquido, do proprietário do processo do servidor. Geralmente, os processos do servidor são processos raiz. O nome líquido pode ser derivado usando a chamada a seguir:

char servername[MAXNETNAMELEN];

host2netname(servername, rhostname, NULL);

Os comandosrhostnameparâmetro é o nome do host da máquina na qual o processo do servidor está em execução. Os comandoshost2netnamerotina de suprimentos aservernameque conterá este nome líquido para o processo raiz. Se o processo do servidor for executado por um usuário regular, a rotina user2netname pode ser chamada em vez disso.

O exemplo a seguir ilustra um processo do servidor com o mesmo ID de usuário que o cliente:

char servername[MAXNETNAMELEN];

user2netname(servername, getuid(), NULL);

As rotinas user2netname e host2netname identificam o domínio de nomenclatura no local do servidor. Os comandosNULLparâmetro neste exemplo significa que o nome de domínio local deve ser usado.

O segundo argumento (60) para a rotina authdes_create identifica o tempo de vida da credencial, que é 60 seconds. Isso significa que a credencial tem 60 seconds até expirar. O subsistema de Chamada de Procedimento Remoto (RPC) do servidor não concede nem uma segunda solicitação dentro do tempo de vida de 60-second ou solicitações feitas após a expiração da credencial.

O terceiro argumento (&server_addr) para a rotina authdes_create é o endereço do host com o qual se sincroniza. A autenticação DES requer que o servidor e o cliente concorde na hora. O tempo é determinado pelo servidor quando ele recebe o endereço. Se os horários do servidor e do cliente já estiverem sincronizados, o argumento pode ser configurado como nulo.

O argumento final (NULL) para a rotina authdes_create é o endereço de uma chave de criptografia DES que é usada para criptografar estampas de tempo e dados. Como esse argumento é nulo, uma chave aleatória é escolhida. O programador pode obter a chave de criptografia a partir do campo ah_key da alça de autenticação.