Um mês de desenvolvimento: Desafios ao criar KuroNote
product Life Software

Um mês de desenvolvimento: Desafios ao criar KuroNote

Reflexão sobre o primeiro mês de desenvolvimento do KuroNote e KuroNotes. Uma introdução às dificuldades encontradas e aos desafios ao implementar os seus recursos de segurança.


Há exatamente um mês decidi desenvolver um aplicativo de notas simples e rápido, e expliquei as especificações básicas no meu artigo anterior. Embora a função de notas rápidas em si não tenha sido muito difícil, a implementação de um modelo de confidencialidade de zero confiança—onde ninguém além do proprietário, incluindo o criador do aplicativo, hackers ou até o servidor de armazenamento, pode ler as notas—provou ser muito mais difícil do que eu esperava.

Lidar com erros de usuários: Minha maior dor de cabeça#

O mais difícil não foi a função em si, mas a gestão dos erros humanos e problemas operacionais causados pelas suas características únicas. For exemplo, um erro como "o usuário desinstala acidentalmente o aplicativo e os dados são perdidos". Em aplicativos normais, você pode resolver isso armazenando os dados em um servidor, mas para tornar esta versão autónoma KuroNote gratuita e permanente viável, devemos fazer tudo no smartphone sem armazenar dados em um servidor.

No entanto, mesmo dentro do dispositivo, os dados estão criptografados, e se desinstalar o aplicativo, eles são apagados sem discussão. Embora este seja um comportamento normal para um smartphone, é um problema importante para um aplicativo que gere dados importantes como KuroNote. Realmente lutei para saber como manter os dados, mas como não é possível exibir uma tela de confirmação especial durante a desinstalação, não havia quase nenhuma maneira de evitar.

Solução: Salvar os dados em um armazenamento na nuvem pessoal.

Sim, aconteça o que acontecer, si o aplicativo for desinstalado, os dados desaparecem, por isso não há outra opção senão guardá-los em outro lugar. Para os usuários aos quais é difícil assinar o KuroNotes, a abordagem foi utilizar o armazenamento na nuvem que já possuem. No entanto, se a chave de criptografia for eliminada com o aplicativo, não podem ler as notas guardadas na nuvem. Mas se o smartphone guardar a chave de criptografia com o passkey, a recuperação pode ser possível registrando um e-mail. Além disso, se escolher guardar os dados na nuvem sem criptografia, eles podem ser recuperados durante a reinstalação, mas isso não cumpre o objetivo do KuroNote/KuroNotes onde nem mesmo o servidor pode ver o conteúdo. Fica também o risco de os dados da nuvem serem lidos em claro em caso de fuga. Decidi deixar esta escolha ao usuário.

Honestamente, não queria oferecer esta opção "sem criptografia". Embora vendamos uma proteção de dados segura, o fornecedor da nuvem pode ver tudo, e acho que poucas pessoas conseguem usar corretamente os sistemas complexos do Google. Usuários que por erro tornam públicas as suas configurações do Google parecem muito prováveis... No entanto, também quero reduzir a perda de dados. Quando compra um caderno em uma papelaria e o perde, não se queixa à papelaria, mas com os aplicativos, as pessoas queixam-se de que os dados desapareceram embora tenham desinstalado o aplicativo elas mesmas. Portanto, não temos outra opção senão reduzir a probabilidade de perda tanto quanto possível.

Em caso de perda ou avaria do smartphone#

O problema seguinte é a perda do smartphone ou a sua avaria que requer uma substituição. Obviamente, restaurar informações que apenas existem em um smartphone sem esse dispositivo é impossível. É o mesmo problema que para a desinstalação. Aí é onde se pode usar o armazenamento na nuvem mencionado anteriormente. Claro, assinar o KuroNotes, que registra os dados em um servidor, é mais simples e constitui a estrutura mais segura. A resiliência da recuperação aumenta consideravelmente. No entanto, muita gente não quer pagar nem 100 ienes pelo seu próprio caderno, por isso não têm outra opção senão guardar os dados no seu próprio armazenamento na nuvem. Para a perda e as trocas de modelo, estando os dados no smartphone, não pode transferi-los sem ligação a uma nuvem externa ou assinatura do KuroNotes. A versão gratuita KuroNote no smartphone tem inevitavelmente os seus limites.

O que acontece às pessoas sem assinatura na nuvem?#

Nesse caso, não podemos fazer nada. É o mesmo que perder um caderno físico que contém notas importantes; porque é importante, cuidar dele é a melhor medida de segurança. No entanto, acho que muitos usuários de smartphones já possuem assinaturas na nuvem pelas razões seguintes. Por enquanto, não tendo outra opção senão oferecer diversas ligações à nuvem, implementamos o suporte de muitos métodos de ligação.

Armazenamento na nuvem

Suporte KuroNote

Razão / Estado

Google Drive

Suportado

Para todos os que usam Gmail, está automaticamente disponível. O espaço gratuito é grande, e muitos usuários têm planos pagos a baixo preço.

Microsoft OneDrive

Suportado

Se usam frequentemente Excel ou Word, muitos usuários têm assinaturas do Office 365, e a capacidade de armazenamento básica é relativamente grande.

Dropbox

Suportado

Um pioneiro do armazenamento na nuvem. Conhecido pela sua velocidade e capacidade, muita gente usa para gerir os dados com segurança.

BOX Suportado Teve sucesso em um momento mas desacelerou recentemente. A relação custo/capacidade é pouco vantajosa.
WebDAV Suportado Um padrão antigo, mas é um dos armazenamentos web utilizados por muitos serviços. Alguns usam no seu próprio servidor.
SMB (Samba) Suportado Para ambiente local apenas. Conhecido como compartilhamento Windows. Utilizável apenas em casa ou no escritório, mas é melhor que nada. Muitas vulnerabilidades.
S3 Suportado Serviço de armazenamento fornecido pela Amazon AWS. Sendo a AWS o padrão de fato, existem muitos serviços compatíveis com S3.
MEGA Suportado Todos os dados são criptografados automaticamente. De certa forma, utiliza a mesma filosofia de zero leitura do KuroNote/s. Excelente relação custo/rendimento.

Apple iCloud

Não Suportado

Devido à compatibilidade exclusiva com a Apple, não existe nenhuma ferramenta de desenvolvimento para Windows ou Android. A implementação é impossível. Os usuários de Mac usam frequentemente Gmail, pelo que não é um problema.

Eu próprio uso muitos produtos Apple (cerca de 10 dispositivos), pelo que teria gostado de suportar o iCloud. No entanto, os preços do iPhone aumentam a cada ano, e as pessoas poderiam recorrer ao Android. Além disso, o iCloud não pode ser usado no Android ou Windows atualmente. Por outro lado, estando os smartphones e PC chamados a converterem-se em máquinas IA, o próprio hardware banalizar-se-á ainda mais.

Com respeito ao armazenamento na nuvem, se não estiver criptografado, o provedor da nuvem (Google, Microsoft, Apple, etc.) pode consultar e copiar livremente o conteúdo. Naturalmente, existe um risco de pirataria. Ou também **os funcionários desonestos**—as fugas de dados por funcionários têm sido frequentes ultimamente, e já não nos podemos sentir seguros sob o pretexto de se tratar de uma grande empresa.

Política do KuroNotes (Versão paga com servidor)#

Para os usuários que não têm o seu próprio armazenamento na nuvem, ou que querem separar as suas notas do seu armazenamento na nuvem regular, ao mesmo tempo que desfrutam de uma segurança total sem perder comodidade, oferecemos um serviço na nuvem dedicado por cerca de 100 ienes por mês. Pode ser configurado a partir da aplicação. Claro, se os dados estiverem criptografados, nós não podemos ver o conteúdo, mas o grande interesse do KuroNotes é poder usá-lo a partir de um navegador de PC. Escrever textos largos em um smartphone é impossível para um **quase sexagenário** como eu. Embora pratique a escrita tátil, sinto **que não melhorará**. Para os que querem usar um PC, podem escrever em uma tela grande ou em um teclado confortável no escritório ou em casa, e consultar no smartphone em movimento. Mas devido aos custos de servidor e largura de banda, não podemos oferecê-lo de graça. Portanto, minimizamos os custos a 100 ienes no Japão (1,00 $ nos EUA, 1,00 € na Europa). Planejo manter este preço fixo de por vida, já que oferecemos uma **função de planeamento de fim de vida**.

Honestamente, os outros armazenamentos na nuvem custam pelo menos 400 ienes hoje em dia, pelo que 100 ienes é um preço muito baixo para um serviço de servidor. Queremos que as pessoas o usem durante muito tempo e aproveitem o planeamento de fim de vida. Permita-me explicar-lhe o que é isto. É uma função para os familiares. Em caso de falecimento do usuário e cancelamento da assinatura telefónica, após certo tempo, é enviado um e-mail final às pessoas designadas, e a família pode recuperar as notas marcadas com um código de herança familiar. É um sistema para entregar as notas importantes à família.

Funcionalidades de fim de vida

Resumo

E-mail final

Quando o contrato termina e transcorreu um prazo, a aplicação envia um e-mail ao destinatário pré-registrado. Exemplo: "O código de herança familiar está na gaveta da minha secretária. Aceda a este URL para ver os dados. Os códigos de cofre e contas detalham-se ali".

Claro, se desativar a opção antes de cancelar o contrato, não se enviará nada.

Código de herança familiar

Os usuários podem marcar as notas que desejem deixar à sua família. A família pode recuperar estas notas com o e-mail final e o código de herança. Ao contrário do código de recuperação pessoal, a família só pode guardar as notas marcadas como arquivos de texto em claro.

Para mais detalhes, consulte a página de apresentação (LP) de KuroNote/KuroNotes.

Por que queria criar um aplicativo assim?#

Sobretudo devido aos meus temores sobre a perda de memória. Guardar senhas, etc. Além disso, o Google começou a enviar mensagens indicando que as minhas senhas se tinham filtrado. Quando cria senhas complexas, não pode retê-las, e dizem-lhe para não as reutilizar, o que é demasiado difícil. Embora os gestores integrados resolvam muitos problemas, todo o mundo tem **segredos pessoais e notas à parte das senhas**, e comecei o desenvolvimento pensando que seria fantástico oferecer um sistema que **desaparecesse definitivamente com a minha morte**. Quando nos aproximamos dos sessenta, devemos preparar-nos para o fim. Inclusive eu tenho às vezes recordações confusas dos meus próprios bens. É bom encontrar uma caderneta de poupança ao arrumar, mas se esquecer de transferir títulos de propriedade ou gerir os impostos sobre bens imóveis, acabará por esquecer.

As imagens podem ser **reduzidas automaticamente** e anexadas, por isso quando escrever resulta tedioso, simplesmente pode colar uma foto. A entrada de voz também pode ser adicionada. **Se tem um contrato de KuroNotes, o seu smartphone e PC sincronizam-se** para compartilhar notas, por isso pode verificar a informação no seu smartphone ou voltar a escrever no seu PC as notas **temporariamente introduzidas como fotos** enquanto se lembra. Em resumo, queria um aplicativo rápido para ajudar-me diariamente.

E o que pensei ao desenvolver esta aplicação

Naturalmente, a comodidade e a segurança estão em uma relação de compromisso. Quanto mais tenta aumentar a segurança, mais complicado resulta o uso. No entanto, no KuroNote/KuroNotes, creio que encontramos o melhor ponto de equilíbrio.

A preocupação é que se houver um erro em uma ferramenta deste tipo, corrigi-lo mais tarde poderia requerir um trabalho enorme, e **embora no início apenas quisesse fazer um caderno algo prático, converteu-se em uma aplicação que requer enormes esforços**. Anteriormente, ao trabalhar em entretenimento, experimentei **queixas de usuários irrazoáveis** e **clientes que se queixavam durante horas**. Para evitar isso, estou convencido de que obrigar os usuários a confirmar cuidadosamente dentro da aplicação, e não apenas nas condições de uso, é a solução correta.

Ainda assim, alegrar-me-ia que esta ferramenta fizesse a vida de todos mais prática. O lançamento aproxima-se!