Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/pedra/xhat

Security Chat
https://github.com/pedra/xhat

Last synced: 11 days ago
JSON representation

Security Chat

Awesome Lists containing this project

README

        

# Xhat
Security Chat

## Version 1 - em desenvolvimento - não funcional.

## Version 2 - funciona em parte

## Version 3 - funciona quase tudo

----------------------------------------------------

## COMO FUNCIONA A AUTENTICAÇÂO SEGURA (login)?

[browser]

Ao acessar, o servidor envia a página HTTP com uma chave pública {PKEY} incluída no javascript.

O usuário insere o login, a senha e uma chave de 40 caracteres {SKEY} que é gerada (ou digitada).

Esses dados são criptografados pela chave pública {PKEY} (enviada pelo servidor) e o código gerado é enviado ao servidor.

[servidor]

O código (criptografado) recebido é decriptado pela chave privada {RKEY} do servidor.

Os dados de login (login + senha) são checados no banco de dados da forma tradicional:

[no] = retorna login false!

[ok] = um registro no banco de dados armazena a chave síncrona {SKEY} enviada pelo browser.

Dados do usuário (nome, id, etc) são encriptados com a chave síncrona {SKEY} e enviado ao browser.

[browser]

O código recebido é decriptado pela chave síncrona {SKEY}:

[no] = login falhou! Recarrega a página.

[ok] = recupera os dados do usuário e estabelece o login.

Todas as comunicações, a partir de agora entre browser e servidor, serão (de)codificadas pela chave síncrona {SKEY}.

A cada três (3) minutos uma nova chave {SKEY} será gerada no browser e, automáticamente, trocada no servidor (via socket), garantindo ainda mais segurança.

## COMO INSTALAR PARA TESTAR

[ambiente]

PHP 5.4+

MySQL 5.5+

Apache 2.4+ [opcional]

Um canal livre para o socket (8080, default)

[instalar]

Verifique o arquivo "install.php" (linha 26) e configure o acesso correto ao seu MySQL.

Acesse: http://localhost/install.php para criar o banco de dados.

[rodar]

Em um terminal inicie o relay: php [path_to_Xhat]/.app/relay.php -s

Acesse: http://localhost/xhat [ou o endereço de acesso ao "xhat"]

A senha é sempre "1234567890" e uma lista de e-mails para o campo "login" pode ser vista na própria página.

Preencha os campos solicitados e click no botão "Enviar".

[obs: essa é uma versão incompleta de teste, apenas]