Národní úřad pro kybernetickou a informační bezpečnost vydal varování před kybernetickými hrozbami cílenými zejména na české...
Podepisování odchozí pošty v Office 365 pomocí DKIM
Jedním ze základních problémů elektronické pošty a její bezpečnosti je fakt, že kdokoliv může při odesílání e-mailu použít libovolnou adresu, která mu nepatří. DKIM je technologií podobnou SPF (Sender Policy Framework), oproti které má ale jednu zásadní výhodu, jelikož při přeposílání pošty selže ověření SPF, protože poštu přeposílá server, který (nejspíš) není uveden jako poštovní server pro danou doménu. Taková pošta pak může být označena jako spam nebo úplně zahozena.
DKIM (DomainKeys Identified Mail), tedy e-mail podepsaný doménovým klíčem, je nástroj umožňující elektronicky podepsat hlavičky odchozích e-mailů. Díky tomu může příjemce ověřit, že e-mail pochází opravdu od zdroje, který je uveden jako odesílatel. Ověření DKIM podpisu je možné pomocí veřejného klíče uvedeného v doméně odesílatele, proto zde není problém při přeposílání pošty. SPF totiž pracuje na základě konkrétních IP adres poštovních serverů, které mohou odesílat poštu z dané domény. DKIM naproti tomu používá elektronický podpis, který je sice také generován na serveru odesílatele, ale není pevně svázán s IP adresou toho serveru. Přeposlání pošty tedy do podpisu nijak nezasáhne a pošta je stále legitimní. V poště se projevuje jen přidáním hlavičky DKIM-Signature, která obsahuje podpis generovaný SMTP serverem odesílatele.
Přidání CNAME záznamů do DNS
Nejprve je nutné pro každou doménu přidat dva CNAME záznamy do DNS.
1 2 3 4 5 6 7 | Host name: selector1._domainkey Points to address or value: selector1-<domainGUID>._domainkey.<inititalDomain> TTL: 3600 Host name: selector2._domainkey Points to address or value: selector2-<domainGUID>._domainkey.<inititalDomain> TTL: 3600 |
<domainGUID> je jméno, které je zobrazené v MX záznamu před mail.protection.outlook.com. Například můj MX záznam ukazuje na lukasberan-cz.mail.eo.outlook.com , takže <domainGuid> je lukasberan-cz .
<initialDomain> je jméno, kterým jste se přihlásili do Office 365. V mém případě to je lukasberan.onmicrosoft.com .
Moje DNS záznamy tedy budou vypadat následovně:
1 2 3 4 5 6 7 | Host name: selector1._domainkey Points to address or value: selector1-lukasberan-cz._domainkey.lukasberan.onmicrosoft.com TTL: 3600 Host name: selector2._domainkey Points to address or value: selector2-lukasberan-cz._domainkey.lukasberan.onmicrosoft.com TTL: 3600 |
Výše uvedený příklad ale neobsahuje konkrétní jméno domény. To lze přidat za selector1._domainkey , tedy selector1._domainkey.lukasberan.cz .
Pokud máte více domén v jednom tenantu, potřebujete takto vytvořit dva záznamy pro každou doménu, která má poštu podepisovat pomocí DKIM. Protože v mém tenantu je ještě doména evasovova.cz, nastavím podepisování i pro tuto doménu. Finální verze, kterou budu přidávat do DNS, tedy vypadá následovně:
1 2 3 4 5 | selector1._domainkey.lukasberan.cz IN CNAME selector1-lukasberan-cz._domainkey.lukasberan.onmicrosoft.com selector2._domainkey.lukasberan.cz IN CNAME selector2-lukasberan-cz._domainkey.lukasberan.onmicrosoft.com selector1._domainkey.evasovova.cz IN CNAME selector1-evasovova-cz._domainkey.lukasberan.onmicrosoft.com selector2._domainkey.evasovova.cz IN CNAME selector2-evasovova-cz._domainkey.lukasberan.onmicrosoft.com |
Povolení podepisování odchozí pošty
Po přidání záznamů do DNS je potřeba podepisování odchozí pošty povolit přes PowerShell (povolení přes administraci není v době psaní článku dostupné).
Nejdříve je nutné povolit spouštění skriptů. Z administrátorského PowerShellu zadejte:
1 | Set-ExecutionPolicy RemoteSigned |
Nyní se můžeme přihlásit do Office 365. Nejprve si uložíme přihlašovací údaje:
1 | $UserCredential = Get-Credential |
Do přihlašovacího okna zadáme přihlašovací údaje správce Office 365 tenantu.
Nyní si otevřeme novou session na Office 365 PowerShell:
1 | $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection |
Jako poslední si vytvořenou session importujeme:
1 | Import-PSSession $Session |
Nyní již můžeme nastavit podepisování pomocí:
1 | New-DkimSigningConfig –DomainName lukasberan.cz –Enabled $true |
Výsledek by měl být:
1 2 3 | Domain Enabled ------ ------- lukasberan.cz True |
Stejným způsobem přidáme podepisování i pro další domény v tenantu.
Výsledek můžeme ověřit v administraci. Běžte do Správce – Exchange a poté do Ochrana – dkim, kde uvidíte všechny domény a stav DKIM u nich.
V hlavičce odeslaných zpráv je poté vidět informace o DKIM testu a samotný podpis.
1 | dkim=pass header.i=@lukasberan.cz |
1 2 3 4 | DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lukasberan.cz; s=selector1; h=From:To:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=PU2XIErWsXvhvt1W96ntPWZ2VImjVZ3vBY2T/A+wA3A=; b=gEuEgQld+d7vo3uzCln+yy6YTOfc6hTweG8FEWWxJzv110wpS/XWDIKYiqVTsIWGqqkamGmFyz400h85m3CVqcu1zadadH7rKZGMNpbgKDGOJKTp6s8MEsmp/xsFd56U/C8e0Eevolnxmut34ib9/1SkhKkkWXpnnTuzJuJAkag= |