Чи можу я надіслати зашифрований електронний лист за допомогою пошти та самопідписаних сертифікатів?


1

Я хочу мати можливість надсилати підписані та зашифровані електронні листи між Mac за допомогою Mail та іншим Mac за допомогою Thunderbird, використовуючи сертифікати, що підписуються на обох кінцях. Раніше я міг це робити, але з роками все ускладнювалося на обох кінцях. Щоб закінчити роботу Thunderbird, мені тепер потрібно створити авторизований авторизований сертифікат, а потім використовувати його для створення сертифіката електронної пошти. Але я не можу отримати шифрування для роботи на пошті. (Я думаю, що Apple зламала його в Mountain Lion.) У моєму брелоку на поштовому кінці у мене є CA від кінця Thunderbird, який позначений як довірений, та сертифікат електронної пошти, створений тим самим CA, на якому написано "Цей сертифікат діє ". Але коли я створюю електронну пошту, що переходить на інший Mac, кнопка шифрування затемнюється.

Я десь читав, що секрет полягає в тому, щоб під час створення сертифікату додати розширення "ключ шифрування", і я це зробив, але це все ще не працює.

Відповіді:


1

Чи є причина, що ви намагаєтеся саме цей підхід?

Якщо ваше справжнє питання - як надсилати підписаний та зашифрований електронний лист, я використовую GPG (через GPGTools). Є плагін, який працює з Thunderbird, але я використовую пошту Apple.


1

Я можу відповісти лише на частину цього питання на Mac Mail, оскільки я не хочу перевіряти частину Thunderbird.

Я просто пишу цю частину для людей, які не знайомі з асиметричним шифруванням:

У цій формі шифрування потрібні два ключі, приватний та відкритий. Сертифікат у цьому сенсі - це не що інше, як відкритий ключ, але він містить трохи більше інформації, ніж просто ключ, він говорить про те, хто ви є, ваша організація тощо. Якщо це, вам доведеться почати спочатку, а людина, яка його вкрала, може розшифрувати все, тому зберігайте його збереженням та захищеним паролем. Зазвичай сертифікати підписують так звані органи сертифікації, і вони найчастіше беруть гроші за свою послугу. Ось чому деякі люди створюють власні сертифікати з сертифікатами власного підпису та власні підписи, що дешевше.

Спосіб шифрування електронної пошти полягає в тому, що ви надсилаєте комусь свій відкритий ключ (сертифікат), підписуючи його електронною поштою. Ви можете підписати будь-яку електронну пошту, оскільки не дасте шкоди, віддавши свій відкритий ключ. Потім ця інша особа має ваш відкритий ключ і зашифровує вам електронний лист за допомогою цього ключа. З цього моменту ніхто, окрім АНБ з можливим квантовим комп'ютером, не може розшифрувати це повідомлення за розумну кількість часу за відповідної довжини ключа. Або деякі люди проникають у фактичні бібліотеки шифрування, як помилка HEARTBLEED (серцебиття), яка, можливо, була навмисною, і хто знає, скільки ще цих задніх куточків є. Сертифікати зазвичай мають обмежений термін експлуатації, і їх потрібно поновлювати час від часу.

Тож речі потрібно забрати: вам потрібен державний та приватний ключ, а ви видаєте лише публічний.

Ось що я зробив:

  1. Створили кореневий CA та підписуючий ЦС (вам це не потрібно, але це те, що я зробив), і я використав для цього цей дуже хороший підручник: багаторівневі СА в http://pages.cs.wisc.edu/~ zmiller / ca-howto /

  2. Тоді я змінив свій openssl.conf таким чином, що Mac Mail дозволяє мені також використовувати сертифіковані для шифрування електронної пошти.

    Важливим бітом є наявність keyUsage та extKeyUsage

    [ v3_req ]
    
    # Extensions to add to a certificate request
    
    basicConstraints = CA:FALSE
    keyUsage = nonRepudiation, digitalSignature, keyEncipherment,       dataEncipherment
    extKeyUsage = emailProtection, Apple .Mac email signing, Apple .mac email encryption
    

    Для тих, хто любить специфікації, прочитайте це https://www.ietf.org/rfc/rfc2459 , але конкретних частин MacOS у ньому ви не знайдете.

  3. Створено приватний ключ та сертифікат:

    openssl req -newkey rsa:4096 -keyout <e-mail>.key -config openssl.cnf -out <e-mail>.req -days 3650
    
    openssl ca -config openssl.cnf -out <e-mail>.crt -infiles <e-mail>.req
    

    Ви можете стверджувати, що десять років - це занадто довгий термін служби сертифіката, але я хотів мати щось, що працює зараз і через 10 років, а то й менше, такий спосіб шифрування не буде працювати ні в якому разі. Я не хотів весь час поновлювати серти, оскільки створював їх для всієї своєї родини.

    Якщо в цьому процесі щось не вдається, ви можете відкликати сертифікат:

    openssl ca -config openssl.cnf -revoke <e-mail>.crt
    

    Слід також створити кроли, але я цього також не робив.

  4. Перетворені ключі у формат p12

    openssl pkcs12 -export -in <e-mail>.crt -inkey <e-mail>.key -out <e-mail>.p12
    
  5. Імпортовано p12 до KeyChain в ОС X 10.9.4 (13E28)

  6. Позначив це як довірене

  7. Пов’язаний сертифікат з поштовим обліковим записом у налаштуваннях пошти MacOS у розділі Інформація про обліковий запис у полі Сертифікат TLS. Надішліть пошту на іншу електронну адресу, яка також має сертифікат і ключ, і підписала повідомлення своїм відкритим ключем, добре, що MacOS Mail зробив це для мене.

  8. Отримав пошту і відправив назад свій перший зашифрований лист.

Що сталося зі мною, коли я спробував процедуру зі своєю дружиною, було те, що символ блокування у моїй відповіді на першу підписану пошту був заграє сірим кольором, і я здивувався. Це означало, що я не можу зашифрувати пошту. Причиною було те, що я отримав підписаний лист, який надіслала мені моя дружина, але я не позначив тут підпис як довірений у брелоку MacOS, оскільки всі підписи, які отримує, також закінчуються там. Після позначення довіри та перезавантаження пошти все працювало нормально.

Можливо, хтось або навіть людина, яка запитує, може додати відповідь до цієї відповіді.


Я думаю, що фактично не вистачає цього питання: extKeyUsage = emailProtection, Apple .Mac підписання електронної пошти, шифрування електронної пошти Apple .mac і, можливо, довіряти отриманому підпису. Я просто хотів бути настільки явним, щоб зняти частину злякання, яке, зрозуміло, створює цей процес. Підтримка шифрування все ще погана в цей день, і я думаю, що люди повинні почати використовувати шифрування і перестати скаржитися на людей, що шпигують за ними, але я розумію, що перешкода для шифрування все ще занадто велика, насправді ніхто не може їх звинуватити.
user637338

Ці розширення вам не потрібні. Вони, здається, ні на що не впливають. Яблучна пошта Apple постійно скаржилася на те, що не в змозі використовувати створені мною сертифікати для шифрування. Я думаю, що критичні біти, які мені не вистачало, - це даніEncipherment в keyUsage та наявність emailAddress = <foo> у рядку теми. Раніше переміщував їх до altSubjectName.
Арран Кадбар-Белл

Цікаво, що я дізнався, що вам потрібні шифрування ключа, а не шифрування даних через те, що S / MIME використовує симетричний ключ для шифрування даних, а потім шифрує цей симетричний ключ, використовуючи асиметричний ключ із сертифіката. Знайшли це пояснення тут .
not2savvy
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.