Apps Script, Segurança & Outras Desilusões!

Desde ano passado estou escrevendo scripts no apps script e estou sendo
um doido fanático por segurança. Aliás, eu já fazia um pouco antes, mas
foi mais ou menos nesse intervalo que a situação ficou séria.

Acontece que ano passado eu tentei largar meu passado negro ~~de
Chuunibyou~~ e procurar encontrar algo melhor para fazer. Decidi ir
assistir animes, já que eu já estava acumulando um monte baixado e que
eu não tinha assistido, além de alguns que meus amigos me recomendaram.

Por influência do passado, continuei programando e decidi automatizar os
animes. Claro que já há ferramentas para isso, como o MyAnimeList, só
que eu queria mais. Acabei fazendo uma planilha que me avisa de quando
saem novos episódios, guarda estatísticas do que assisto e tem mais
outras 108 funções.

Usei o Apps Script, que seria o equivalente aos macros do Excel porém
usando JavaScript ao invés de VB e funcionando nos lentos
computadores da Google a qualquer momento sempre na hora programada.
Assim como já ocorreu no passado considerei essa experiência como um
desafio, já o sistema é um pouco ultrapassado: ele lembra o Internet
Explorer 8.

Com tanto tempo mexendo nele pensei que eu conseguiria implementar um
modelo de segurança melhor com ele, logo um dia decidi implementar o
protocolo Secure Remote Password. Descobri uma coisa: não dá. A questão
do SRP é que é baseado em criptografia público-privada, que tem um
problema: é lenta. Ah, já disse que normalmente o Apps Script é lento?

Agora voltando aos animes e na minha planilha: semana passada
implementei uma outra forma que a planilha pode saber se saiu episódios
novos, usando o MEGA. Para quem não sabe o MEGA é um site que foi feito
para os donos não levarem a culpa de nada que os usuários postam, por
isso tudo é automaticamente criptografado de forma que não é fácil
culpar eles.

Agora a questão é segurança: se eu consegui implementar um sistema que
me avisa episódios novos monitorando pastas compartilhadas usando um
sistema lento como eu fiz isso? Para começar: nem de criptografia eu
precisava, só o nome do arquivo e o conteúdo deles que é criptografado.
Dados como o tamanho dos arquivos e quantos arquivos há em cada pasta
não passam pela criptografia.

Mesmo assim decidi colocar a criptografia em jogo (ainda mais por que
sem o nome do arquivo eu só saberia que um arquivo foi adicionado, mas
não qual): procurei uma biblioteca antiga que fosse compatível com o IE8
e apliquei-a no script. Está funcionando e é rápido, cheguei até a
pensar: vou fazer o mesmo com SRP. Problema: não consegui arrumar
nenhuma biblioteca que pudesse permitir isso de forma simples. A que eu
usei para o MEGA só suporta criptografia simétrica.

Agora uma questão: onde acha que eu vou usar SRP? Em nenhum lugar, no
máximo em uma demonstração ou em algum lugar com baixo risco. A menos
que você use isso em algo que seja possível de ser auditado e que o
usuário controle as atualizações não há segurança: há sempre o risco de
uma atualização automática revelar a senha.

Mas estou trabalhando em uma forma de resolver esse problema,
formalmente o projeto ficou sendo o https://wshp.tk/ embora eu não
atualize ele faz tempo. Por que? Tentei fazer a interface dele ser
material design, me perdi no meio desse processo e até agora não saiu
nada. Também devo ter pegado um pouco do sono da Kumin.

Acho que isso resume um pouco dos meus side projects, fico por aqui
(já que também tenho que trabalhar, resolver essas coisas)…

Nota: o Tumblr não deixa controlar o tamanho das imagens, devem estar
saindo todas grandes.