2021-10-19 - Encriptações acabadas no Knowledge Tester (software de formação e estudo em C/C++)... - Gonçalo Ferreira
Formação Linux Programação Projectos Softwares
October 19, 2021 October 19, 2021 gnmf	0 Comments	C++, Ensino, Formação, Knowledge Tester, Linux, Linux Helper, Programação
Está quase terminado (pelo menos a fase um), clicar na imagem acima para ver melhor.
A encriptação está toda completa, uso encriptação com algoritmos Rijndael 256 (AES 256), e hashing SHA2, que já explicarei abaixo, e também já tenho aperfeiçoada a funcionalidade de respostas multi-linha, que falarei abaixo também, entre outras coisas, como configurações, etc.
Com o próprio software, como podem ver no canto superior direito, podemos encriptar um exame ou laboratório para dar aos alunos, com força de AES256.
Ele dá-nos uma hash parcial SHA2 para começar o exame (hash criptográfica partilhada com os alunos, que sem ela não podem fazer o exame ou ser as suas perguntas), e nós temos a nossa password original.
Isto evita que tenhamos de dar a nossa password aos formandos (útil para podermos usar "exame1", "exame2" como passwords sem eles poderem prever a próxima, por exemplo), enquanto temos a nossa privada que será a única que permitirá desencriptar o ficheiro de exame, bem como os relatórios que gera (para evitar que os relatórios possam ser manipulados pelos alunos).
Ao mesmo tempo, nesse ficheiro encriptado, são guardadas informações que permitem a que o relatório do exame após ser feito, só possa ser aberto com a password original e não a dos alunos, ou seja, a dos alunos só permite executar o exame, e o relatório que ele gera, só pode ser aberto com a password original do examinador.
Mesmo assim, a password original nunca é guardada no ficheiro de exame dado aos alunos, pelo que na infinitesimal probabilidade de alguém crackar um ficheiro AES256, nunca teriam a password original lá na mesma, mas o exame sabe como guardar relatórios com a password original. Giro não é? Quem já programou com criptografia saberá como o fazer funcionar.
Assim a protecção é total, encriptação a 256 bits, password original é a única que desencripta exames e relatórios gerados pelos mesmos, e os alunos só têm a hash para os executar, e a original nunca vai parar às mãos dos formandos (não é contida no ficheiro de exame que gera os relatórios encriptados com ela).
No meio do ecrã à direita, podem ver uma tentativa de desencriptar o relatório gerado pelo exame, com a password dada aos alunos (a hash cortada, que apesar de ter menos caracteres para ser simplificada, continua super forte), que falha obviamente, e a tentativa com sucesso com a password original "testes".
Todas as hashes são obviamente protegidas contra ataques por rainbow tables, etc (quem sabe um dia aconteçam).
A única parte confusa é que o .txt gera um .kt e o .kt um .txt etc, ou seja, ficamos com ficheiros .txt.kt.txt.kt.txt.kt se os encriptarmos e desencriptarmos muitas vezes, mas no problem!
No canto superior direito podem ver um menu de arranque do exame, com a sua configuração, que já é guardada no exame também, ainda não acabada mas que poderá permitir o "forçar" de certos parâmetros no seu arranque, como por exemplo "só permitir que o exame arranque em modo de exame).
À esquerda podemos ver um exame laboratório com 11 linhas de resposta, a rondar uns 9% de valor cada uma, e podem ver que ele já detecta quando saltamos linhas, para que se o formando souber as primeiras linhas e algumas no meio e umas no fim, ter alguma nota já dada.
Claro que o formador terá de analisar sempre o report mais tarde.
Depois o aluno pode ver também quais acertou, e quais não sabia.
Ah, foi bloqueado o "CTRL+C" em modo de exame, porque já me aconteceu alguém dizer "Eu carreguei no CTRL+C para responder à pergunta", ou seja, uma das opções de escolha múltipla era o atalho "CTRL+C" e pode acontecer a pessoa ser compelida a pressionar CTRL+C haha, acontece. Mas aqui não, foi cortado, nesse modo só dá para sair com um duplo ":q!" (em homenagem ao velhinho VIM).
Também já permite o praticar um range de perguntas, para por exemplo pegar-se num ficheiro com 50 perguntas, e assimilar todas em blocos de 10, primeiro da 1 à 10, depois da 11 à 20, etc, para fácil memorização.
Já deixa também passar perguntas sem resposta para o fim da lista de perguntas, quando em modo de exame, para dar tempo aos alunos para no fim do exame tentar as mais difíceis (as que deixaram assim para o fim), e melhorar assim as suas notas, mas apenas se não as responderam (pressionaram só enter para seguir em frente).
Múltiplas possibilidades por cada linha de resposta, mas esta tenho de pensar se vale a pena pois vai confundir quem cria o exame;
O forçar certas configurações no arranque;
Protecções ligadas à máquina (para o exame só correr uma vez num computador).
De resto, acho que está quase pronto, e quando estiver, só volto a mexer nele para o ano, e a ver se volto aos videojogos e intranet pelo meio, além do tutorial de Linux.
Mais notícias cedo.
Partilhado no LinkedIn em 2021-10-19:
«Está quase terminado o "Knowdledge Tester" (pelo menos a fase um).
Não cabe tudo aqui, mas tem AES256 de encriptação total, o exame vai encriptado com o Rijndael 256 e gera relatórios com a password original, apesar de não ter guardada nele essa password (quem programou criptografia saberá como fazer), e ser aberto apenas com a hash dos estudantes, hash que não permite desencriptar o exame nem o report.
Desta forma a password original nunca sai das mãos do formador, e só ele desencripta o exame e os relatórios do exame (para não serem alterados), e as hashes dos alunos são SHA2 encurtadas mas seguras.
As respostas multi-linha já estão melhoradas para se encontrarem respostas certas no meio do exigido (caso o aluno só saiba algumas no começo e no meio ou fim), mas exige revisão final, claro.
Há já configuração guardada no ficheiro, que permitirá forçar parâmetros (como forçar que um ficheiro só possa arrancar no "modo de exame", por exemplo).
Entre várias outras coisas, algumas podem-se ver na imagem, mas conseguirão ampliá-la e ler mais sobre isto no meu site no link abaixo.
Após umas alterações finais, darei por concluída a versão de 2021, que já permitirá estudar (auto-estudo ou não), treinar para certificações, ser usado em sala de formação, ser usado para exames de forma segura quer presencialmente quer remota, etc.
E depois talvez volte este ano à intranet, aos jogos, e ao tutorial de Linux.
Mais texto e ver melhor a imagem, em: https://lnkd.in/eeMhTs74.»
In: https://www.linkedin.com/feed/update/urn:li:activity:6856338105100763138/.
← 2021-10-13 – Knowledge Tester já com encriptação Rijndael 256, e outras novidades…
2021-11-10 – Knowledge Tester – Exames com password incluída, argumentos forçados, versões mínimas, protecções físicas, etc… →