Como esconder um código de mim mesmo até um tempo especificado?

4

Essencialmente, o que eu preciso é alguma maneira de gerar e armazenar uma string aleatória (20 caracteres por um período de tempo), de tal forma que não há como recuperar a string até o final desse período. Estou executando o Ubuntu 12.10 padrão.

Coisas que tornam isso difícil:

  • Eu tenho acesso root.
  • O computador pode desligar e iniciar durante o período.
  • Não há como recuperar a string antes que o período termine.
  • Não terei acesso à Internet durante o período.

A razão pela qual eu preciso fazer isso é que eu tenho um vício em pornografia na internet. Na maioria das vezes eu posso controlá-lo, mas tenho ânsias tarde da noite. Isso é ainda mais difícil porque uso um computador para o meu trabalho e trabalho em casa. Então, ultimamente, comecei a remover o / sbin / dhclient, que desativa a conectividade com a Internet (até que eu possa obter um liveCD e copiar o arquivo de volta, mas isso leva um tempo). O que eu quero fazer, em vez disso, é gerar uma senha para o dhclient (criptografando o dhclient ou apenas criando um arquivo zip com essa senha) e, então, só receberei a senha na manhã seguinte. Basicamente, estou tentando encontrar um dispositivo de compromisso , um pouco como um alcoólatra derramando sua bebida na pia.

Alguns possíveis caminhos de ataque:

  • Execute um programa que gere a cadeia e armazene-a na memória, aguarde por n segundos e depois imprima a cadeia. Isso não funcionará porque o processo seria morto se o computador fosse reiniciado e eu poderia procurar na memória do programa a string.
  • Deixe o programa alterar a senha raiz para a sequência gerada aleatoriamente, removendo o acesso root de mim; deixe armazenar a string em um arquivo que somente o root tem acesso r / w, e deixe o root executar repetidamente um programa que verifica se o período acabou, e se assim for, me dê a string (e assim o acesso root). Parece que funcionaria, mas posso contorná-lo alterando o tempo no BIOS.
  • Uma ideia que acabei de ter: escrever um programa que remova o acesso raiz e armazene a senha em um arquivo que requer raiz para ler. Então deixe o root usar o cron para rodar um programa a cada minuto que verificar a existência de um arquivo chamado "delayed_root_request". Toda vez que é executado, se delayed_root_request existir, ele incrementa um número armazenado em um arquivo "root_timer" que somente o root pode ler / gravar. (Se isso não existir, ele cria e faz com que ele contenha "0".) Quando o número em root_timer alcança algo como 60 * 8 = 480, ele me dá acesso de leitura ao arquivo que armazena a senha root e assim Acesso. Assim, posso executar um script que remova o acesso raiz, armazene a senha gerada aleatoriamente em um arquivo somente de acesso root e interrompa o dhclient. Quando eu quero o acesso à internet de volta, eu crio o arquivo "delayed_root_request" e tenho que esperar 8 horas pela senha. Se a qualquer momento durante essas 8 horas eu decidir que o acesso root só me faria procrastinar, eu simplesmente apago o arquivo e tenho que começar a contagem. Se o computador reiniciar, a contagem é interrompida. Eu teria que dar uma senha ao GRUB (por exemplo, link ). Eu ainda posso entrar com mídia óptica, ou apenas tirar o disco rígido, mas eu posso tornar isso inconveniente, excluindo todas as cópias do arquivo ISO que eu tenho, e posso dar todos os meus liveCDs (e não será capaz de fazer mais sem acesso à internet).

Pode haver uma maneira muito fácil de fazer isso que estou perdendo - por favor, conte-me qualquer idéia que você tenha.

Qualquer ajuda com isso será realmente apreciada!

    
por Stephen 12.07.2013 / 23:52

5 respostas

2

No lado técnico, talvez um serviço como o link funcionasse?

    
por 16.07.2013 / 03:35
1

Veja a solução de alta tecnologia que você procurava:: -)

  1. Gere a string aleatória.
  2. Defina a senha raiz para a string aleatória.
  3. Calcule um hash da string. (Pode ser bom o suficiente usar a "criptografia de senha" do sistema operacional, mas as etapas a seguir podem ser mais fáceis se você usar uma ferramenta de hash autônoma, por exemplo, md5sum ). Armazene o hash no disco.
  4. "Esquece" a string (ou seja, a senha de root).
  5. Crack a senha, passando por todas as seqüências possíveis (ver passo 1), hashing, e ver se ele corresponde ao hash salvo. Para capacidade de reinicialização, verifique periodicamente até que ponto da lista você está.

Naturalmente, você deve ajustá-lo para que o procedimento aleatório na etapa 1 seja escolher um espaço de senha que leve o tempo especificado (por exemplo, oito horas) para digitalizar.

A maior falha que me ocorreu até agora é que, se a sua etapa 1 selecionar aleatoriamente uma cadeia perto do início do espaço (por exemplo, " aaaaaq "), a etapa 5 poderá ser concluída rapidamente. Uma solução para isso é ter o passo 5 mantendo seus resultados em um arquivo legível apenas pelo root, e depois escanear todo o espaço da senha, mesmo depois de quebrar a senha. Uma abordagem mais complexa é:

  1. Gere n strings aleatórias, str 1 , str 2 ,… , str n .
  2. Defina a senha do root para sua concatenação: str 1 str 2 … str n .
  3. Calcule um hash de cada string. Armazene os hashes no disco.
  4. "Esqueça" as strings.
  5. Crack a senha, fazendo uma pesquisa hash em cada uma das seqüências, em seqüência.

Se você ajustar isso para que cada string demore 8hrs / n para quebrar, você ainda terá um tempo máximo de oito horas. E ainda é possível que ele decifre a senha em um tempo muito mais curto, mas agora a distribuição de probabilidade é uma curva de sino, portanto, tempos curtos se tornam menos prováveis. (Infelizmente, o mesmo acontece com os longos períodos; é provável que demore entre 2 e 6 horas. Talvez você deva descobrir a quantidade máxima de tempo que pode ficar bloqueado e incluir isso na equação.)

Obviamente, você pode derrotar isso inicializando seu computador a partir de um disco diferente: outra partição, uma unidade externa ou um disco óptico. voce tem um roteador? Você pode adaptar as informações acima para dizer ao roteador para bloquear o acesso e, em seguida, alterar a senha no roteador?

    
por 16.07.2013 / 02:36
1

Bem, estou um pouco atrasado para a festa! Mas eu configurei um sistema para conseguir essa filtragem pornográfica. Eu uso 'qustodio' para bloqueio em dispositivos móveis e desktop (até 5 PCs / dispositivos!). É um software de filtragem abrangente que é fácil de usar, configurar e executar com impacto mínimo, especialmente em celulares. Mas você pode usar qualquer software que você gosta. Funamo funciona melhor IMO para celulares, mas não oferece filtragem de desktop, então eu tendem a usar o software simultaneamente, Qustodio para desktop e funamo para o meu celular.

Eu configuro isso com um e-mail da GMX ([email protected]), já que ele não requer um e-mail de recuperação, então é completamente impossível de ser encontrado se eu estiver me sentindo fraco! e use uma senha aleatória gerada que não me lembro (deve ter 16 caracteres ou menos, pois o GMX tem esse limite). Esta senha é usada para a conta de e-mail GMX e meu software de filtragem.

O problema que eu tinha era esconder essa senha de mim (eu tinha armazenado em um usb) sem ter que envolver outras pessoas. Então estou usando o método sugerido por 'Kent', onde usando link , eu posso obter as senhas e e-mails enviados para me uma vez por semana em um horário. Dessa forma eu posso fazer alterações ou reiniciar o software, se necessário, em uma hora específica do dia em que eu estou no controle, e o resto da semana está fora do meu controle e estou livre de pornografia!

Embora possa custar US $ 60 (aprox. US $ 40) para assinaturas, vale a pena!

Embora não seja perfeito (mas quase infalível), é incentivo suficiente para conter meu vício em pornografia e sentir que tenho minha vida de volta. Como cristão, eu uso isso como outra ferramenta para ajudar com meu autocontrole, mas minha principal motivação é o impacto de meus vícios no meu relacionamento com Jesus e com as pessoas ao meu redor. Embora eu concorde que ter um parceiro de responsabilidade é mais benéfico. Aqueles como eu, com poucas habilidades sociais ou relacionamentos sólidos (lol), ainda podem ter um controle sobre nossos vícios em nosso próprio tempo sem depender de outras pessoas (eles são irritantes), por isso é inestimável, mas são maneiras mais efetivas palpite.

    
por 04.07.2016 / 13:14
0

Este é um problema conceitual interessante, mas para o seu problema específico, eu acho que você está tentando resolvê-lo a montante do que você precisa (bem, em termos de tecnologia; sobre o seu problema real talvez você deva tentar resolvê-lo mesmo mais a montante ...). Existem aplicativos que você pode usar para bloquear o acesso a determinados sites na internet, como LeechBlock para Firefox, StayFocusd para Chrome ou Cold Turkey para Windows. Claro, eles não serão 100% seguros, mas nenhum outro método dependerá exclusivamente de você, e esses programas têm a vantagem de permitir que você use a internet para um trabalho produtivo (você pode ter uma lista branca).

    
por 13.07.2013 / 00:48
0

Do que você escreveu, parece provável que qualquer mecanismo que você possa influenciar imediatamente será um problema. Que tal mudar para um provedor que bloqueia a pornografia para você? Presumivelmente, isso significaria que você precisaria chamá-los para mudá-los / desbloqueá-los (se eles fizerem um bom trabalho e puderem bloquear as soluções alternativas), o que criaria um atraso de tempo considerável, com esperança de derrotar seus impulsos.

    
por 13.07.2013 / 05:49