ProfitBox – услуги DevOps

Обмен паролями через незащищенные каналы

Безопасный обмен сообщениями

Безопасный обмен сообщениями

Rate this post
Решил поделиться простым способом как обмениваться сообщениями через незащищенные каналы связи. При этом под незащищенными каналами я имею ввиду не каналы, которые без шифрования и без паролей, хотя и это тоже конечно. А Вообще любое место, в котором сохранение данных вами не контролируется и данные откуда могут попасть куда угодно. 
 
Так что этот способ например хорошо подойдет если нужно побыстрому переслать например пароль или еще какие-то данные для доступов или еще что-то. При этом для админов это работает быстро и удобно, поскольку у всех есть сгенерированные пары ssh ключей и они всегда под рукой. Итак

1. Публичный ssh rsa ключ получателя

Создаем файл с публичным ключом получателя сообщения. Этим ключом сообщение будет зашифровано. Расшифровать сообщение сможет только владелец соответствующего приватного ключа, поэтому необходимо быть на 100% уверенным, что для шифрования используется нужный публичный ключ.
 
$ echo 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDQ5GVyTlgZGvlxD2qch4UpzMWXMjGMvDjSAJIxt4k18VdNbh1VjBTJD0F5rQbdFoeTyaxFL/u1iU0C/GpC/4V35yTP5Wtlc32jNpYAKu7xPKnRlClSj3whNIK6DWIeysXqdMB8efQLuWnCQQ/NNN86x4IjqokH2qvW/YDzy8xaYUPxaqqiQJ02UfGV+iQL3hyvqm8C/vLNizigOYBXA1MtkRtkfuhkC1sO04y+5vRHYGY156NXVsR6i6IFEwhJpjdH2pDVSH8GNdQ2ncWPJESuyvSwlTkAudvD8t/XyjDJloR1Lb4Hm/DyW70YmJDLaJgT+JE91le4VRrmrdHDYzOP user' > ~/ssh_public_keys/user
 

2. Шифрование сообщения на стороне отправителя

$ echo 'Plain Text Message' | openssl rsautl -encrypt -oaep -pubin -inkey <(ssh-keygen -e -f ~/ssh_public_keys/user -m PKCS8) | base64 -w0

TuVPM+DFtsNlieOAmsM/mZQbCbzrEAatntcDhu7G2YXXMUoVONJDLLOQcADpkzHxaOiGFOJvoPr2KZarg6725F0wf7Y0b0fj5vgrMXU0ykEC0J6zmo4hUclxc55jMLdw5goG7oAWL0aq7GO6Eg1KtuGRCkMAZug5+pX4MHYfpnWHuBK8kcZ9TCN4F4hClDXfiab9dH9nEnddewja68eGBrfBB6EPCt0LbyF916EVODkZo7I4Zk/B4wqMZ2v3QAuel3ZmsxtZNW+hQXAn/bwpkUtezKHS2Z5om8yoTCRBmALD4imhPYRcBCI3UqgV2+91Ss6YYkSX/cfZe6xQmfg1Rg==
 
Полученное зашифрованное сообщение преобразовано в текстовую форму, пригодную для передачи через текстовые мессенджеры.
 

3. Расшифровка сообщения на стороне получателя

 
$ echo 'TuVPM+DFtsNlieOAmsM/mZQbCbzrEAatntcDhu7G2YXXMUoVONJDLLOQcADpkzHxaOiGFOJvoPr2KZarg6725F0wf7Y0b0fj5vgrMXU0ykEC0J6zmo4hUclxc55jMLdw5goG7oAWL0aq7GO6Eg1KtuGRCkMAZug5+pX4MHYfpnWHuBK8kcZ9TCN4F4hClDXfiab9dH9nEnddewja68eGBrfBB6EPCt0LbyF916EVODkZo7I4Zk/B4wqMZ2v3QAuel3ZmsxtZNW+hQXAn/bwpkUtezKHS2Z5om8yoTCRBmALD4imhPYRcBCI3UqgV2+91Ss6YYkSX/cfZe6xQmfg1Rg==' | base64 --decode | openssl rsautl -decrypt -oaep -inkey ~/.ssh/id_rsa
 
Вот в общем и все, посылаем получившуюся строчку получателю через почту или мессенджер и его сможет расшифровать только обладатель приватного ключа. В текущей ситуации, когда многие работают удаленно и в распределенных командах, бывает полезно переслать пароль побыстрому или еще какие-то данные, которые в открытом виде слать совсем не хочется.
 
Вы можете сказать, для подобных вещей есть GPG ключи и в общем все это и все уже давно придумано. Но не у всех они подключены и настроены, а вот что касается админов, то у них всегда под рукой есть rsa ключи для доступа по ssh.
 
Ну и не забывайте, что пароли писать на бумажках нельзя 🙂 
Exit mobile version