среда, 17 марта 2021 г.

О странной логике (smime)

Пристала ко мне девочка-менеджер с вопросом, суть которого следующая:
Один из клиентов начал слать ей зашифрованные письма

Зашифрованное вложение

Когда она попыталась пообщаться с противоположной стороной, ей прислали инструкцию о переходе на защищенный электронный документооборот и не поверите: она тоже была зашифрована!
Для того чтоб добыть эту инструкцию пришлось попотеть, но в итоге я нашел скрипт, который после исправления ошибок заработал и позволил прочитать о чем речь:

#!/bin/bash
# (c)  2017 - ingPicerno.it
#set -x
outdir="out"
filename="${1##*/}" #extract filename, without path
outfile=$outdir/${filename/.p7m/}
mkdir $outdir
openssl pkcs7 -inform DER -in $filename -print_certs -out "$outdir/signer.pem"
openssl smime -verify -in $filename -inform der -noverify -signer  "$outdir/signer.pem" -out "$outfile" 2>/dev/null
#xdg-open "$outfile"
#if you don't need extracted file uncoment the following line
#rm "$outdir/signer.pem"; rm "$outfile"; rmdir $outdir

Привожу ровно в том виде до которого я ее допилил, чтоб получить возможность извлечь вложение
Каталог до запуска скрипта:

# ls
p7m.sh  smime.p7m

Делаем скрипт исполняемым и запускаем:

# chmod +x p7m.sh
./p7m.sh smime.p7m

По итогам работы скрипта мы получаем в нашей папке запуска каталог out, в котором лежит открытый ключ и расшифрованный mime файл, в моем случае с именем 'smime'
Содержимое исходного каталога и созданного:

# ls
out  p7m.sh  smime.p7m
# ls out/
signer.pem  smime

Теперь нам требуется добыть из mime файла его содержимое, в моем случае вложение. Для этого требуется установить утилиту для работы с MIME (Multipurpose Internet Mail Extensions) содержимым:

sudo apt install mpack

Переходим в папку с mime архивом и распаковываем его:

# cd out
# munpack smime 
tempdesc.txt: File exists
image002.gif (image/gif)
=Xutf-8XBX0IbQvdGB0YLRg9GA0LrRhtGW0Y8gKNC3INC+0L/QuNGB0L7QvCDRgdGC0LLQvg==X=XXX=Xutf-8XBX0YDQtdC90L3RjyDQtNC+0LrRg9C80LXQvdGC0ZbQsiDRh9C10YDQtdC3IA==X=XXX=Xutf-8XBX0YTQvtGA0LzRgykuZG9jeA==X= (application/vnd.openxmlformats-officedocument.wordprocessingml.document)

В моем конкретном случае имя файла содержало символ слэша и файл извлекся в виде вложенного в каталог, а по дефолту он должен извлечся в каталог запуска (если вас интересуют все части письма, а не только вложение, добавьте ключ -t)
Перемещаю добытый файл в каталог out и присваиваю ему читабельное имя (сделал с помощью пкм, назвал document).
Теперь мой каталог out имеет следуещее содержимое:

# ls 
document signer.pem  smime

У нас на руках вложение, но мы не знаем его расширения, это можно сделать так:

# file document 
document: Microsoft Word 2007+

Видим, что имеем дело с файлом Microsoft Word 2007+, которому соответствует расширение .docx
Переименовываем наш document в document.docx, после чего открываем с помощью офисного приложения

Эпилог
Получив доступ к содержимому письма, я выяснил, что клиент сообщает своим поставщикам, о том, что он переходит исключительно на документооборот средствами тендерной площадки и сообщения отправляемые иными способами обрабатываться не будут.
Таким образом от меня реализация поддержки на нашей стороне не требуется и на этом все.
Но зачем его было слать на обычную почту в зашифрованном виде?

Комментариев нет:

Отправить комментарий