From 41427d1e81661d11641cf00219dd33f2d5a928b4 Mon Sep 17 00:00:00 2001
From: stitch1
Some browser add-ons and routers offer functionality for domain filtering in order to enhance privacy or restrict internet use. To prevent circumvention this kind of functionality often blocks connecting to IP addresses directly, making your internet connection fail for this subtest.', + detail_conn_ipv6_connection_exp: 'We check if your device through its current internet connection is able to connect directly (i.e. without DNS translation) with our web server using our corresponding IPv6 address.
Some browser add-ons and routers offer functionality for domain filtering in order to enhance privacy or restrict internet use. To prevent circumvention this kind of functionality often blocks connecting to IP addresses directly, making your internet connection fail for this subtest.', detail_conn_ipv6_connection_label: 'IPv6 connectivity (direct)', detail_conn_ipv6_connection_tech_table: 'Anonymized IPv6 address|Reverse name|Internet provider', detail_conn_ipv6_connection_verdict_bad: 'You are not able to reach computers directly on their IPv6 address.', detail_conn_ipv6_connection_verdict_good: 'You are able to reach computers directly on their IPv6 address.', - detail_conn_ipv6_dns_conn_exp: 'We check if your device through its current internet connection is able to connect to our webserver via IPv6. For this test we provide a domain name and we expect your resolver to resolve the domain name to the appropriate IPv6 address.', + detail_conn_ipv6_dns_conn_exp: 'We check if your device through its current internet connection is able to connect to our web server via IPv6. For this test we provide a domain name and we expect your resolver to resolve the domain name to the appropriate IPv6 address.', detail_conn_ipv6_dns_conn_label: 'IPv6 connectivity (via DNS)', detail_conn_ipv6_dns_conn_verdict_bad: 'You are not able to reach computers via DNS on their IPv6 address.', detail_conn_ipv6_dns_conn_verdict_good: 'You are able to reach computers via DNS on their IPv6 address.', - detail_conn_ipv6_ipv4_conn_exp: 'We check if your device through its current internet connection is able to connect to our webserver via IPv4. For this test we provide a domain name and we expect your resolver to resolve the domain name to the appropriate IPv4 address.
Requirement level: Optional', + detail_conn_ipv6_ipv4_conn_exp: 'We check if your device through its current internet connection is able to connect to our web server via IPv4. For this test we provide a domain name and we expect your resolver to resolve the domain name to the appropriate IPv4 address.
Requirement level: Optional', detail_conn_ipv6_ipv4_conn_label: 'IPv4 connection (via DNS)', detail_conn_ipv6_ipv4_conn_tech_table: 'Anonymized IPv4 address|Reverse name|Internet provider', detail_conn_ipv6_ipv4_conn_verdict_bad: 'You are not able to reach computers via DNS on their IPv4 address.', @@ -68,7 +68,7 @@ const internet_nl_messages = { detail_conn_ipv6_resolver_conn_label: 'IPv6 connectivity of DNS resolver', detail_conn_ipv6_resolver_conn_verdict_bad: 'Your DNS resolver is not able to reach name servers over IPv6.', detail_conn_ipv6_resolver_conn_verdict_good: 'Your DNS resolver is able to reach name servers over IPv6.', - detail_mail_auth_dkim_exp: 'We check if your domain supports DKIM records. A receiving mail server canuse the public key in your DKIM record to validate the signature in an email with a user from your domain as sender and determine its authenticity.
NOERROR
to our query for_domainkey.example.nl
. When _domainkey.example.nl
is an \'empty non-terminal\' some name servers that are not conformant with the standardRFC 2308 incorrectly answer NXDOMAIN
instead of NOERROR
. This makes itimpossible for us to detect support for DKIM records.From:
) and this must be identical to the DKIM domain (d=
) and the SPF domain (envelope sender, i.e. return-path that shows up in MAIL FROM
).For a "good practice on domains without mail" see the explanation of the "DMARC policy" subtest.', + detail_mail_auth_dkim_exp: '
We check if your domain supports DKIM records. A receiving mail server canuse the public key in your DKIM record to validate the signature in an email with a user from your domain as sender and determine its authenticity.
NOERROR
to our query for_domainkey.example.nl
. When _domainkey.example.nl
is an \'empty non-terminal\' some name servers that are not conformant with the standardRFC 2308 incorrectly answer NXDOMAIN
instead of NOERROR
. This makes itimpossible for us to detect support for DKIM records.From:
) and this must be identical to the DKIM domain (d=
) and the SPF domain (envelope sender, i.e. return-path that shows up in MAIL FROM
).Additional notes:
simple
setting tolerates almost no modifications, and relaxed
tolerates common modifications. If no setting is specified it defaults to simple
for both header and body. In particular, header modifications are a common cause of a DKIM signature unintentionally becoming invalid, thus hindering deliverability. Using relaxed
for the header while keeping simple
for the body (c=relaxed/simple
), can mitigate these kind of issues.We check if the syntax of your DMARC record is correct and if it contains a sufficiently strict policy (p=quarantine
or p=reject
) in order to prevent abuse of your domain by phishers and spammers. Even without a strict policy, DMARC can be useful to get more insight in legitimate and illegitimate outbound mail flows through DMARC reports. However to be effective against abuse of your domain, a liberal policy (p=none
) is insufficient.
We also check whether the mail addresses under rua=
and ruf=
are valid. In case they contain an external mail address we check whether the external domain is authorised to receive DMARC reports. Make sure that the DMARC authorisation record on the external domain contains at least "v=DMARC1;"
.
The test permits the use of the experimental np
tag (RFC 9091).
Good practice for domains without mail:
p=reject
) and SPF policy (-all
) for your domain that you do not use for sending mail in order to prevent abuse (\'spoofing\'). Note that DKIM is not necessary in this case.Below you will find two basic example DNS configurations for domain names that are not used to send and receive mail.
A. Single domain without A or AAAA record
example.nl. TXT "v=spf1 -all"*.example.nl. TXT "v=spf1 -all"_dmarc.example.nl. TXT "v=DMARC1; p=reject;"
B. Single no-mail domain with A or AAAA record
example.nl. AAAA 2a00:d78:0:712:94:198:159:35example.nl. A 94.198.159.35example.nl. MX 0 .example.nl. TXT "v=spf1 -all"*.example.nl. TXT "v=spf1 -all"www.example.nl. CNAME example.nl_dmarc.example.nl. TXT "v=DMARC1; p=reject;"
',
+ detail_mail_auth_dmarc_policy_exp: 'We check if the syntax of your DMARC record is correct and if it contains a sufficiently strict policy (p=quarantine
or p=reject
) in order to prevent abuse of your domain by phishers and spammers. Even without a strict policy, DMARC can be useful to get more insight in legitimate and illegitimate outbound mail flows through DMARC reports. However to be effective against abuse of your domain, a liberal policy (p=none
) is insufficient.
We also check whether the mail addresses under rua=
and ruf=
are valid. In case they contain an external mail address we check whether the external domain is authorised to receive DMARC reports. Make sure that the DMARC authorisation record on the external domain contains at least "v=DMARC1;"
.
The test permits the use of the experimental np
tag (RFC 9091).
Good practice for domains without mail:
p=reject
) and SPF policy (-all
) for your domain that you do not use for sending mail in order to prevent abuse (\'spoofing\'). Note that DKIM is not necessary in this case.Below you will find two basic example DNS configurations for domain names that are not used to send and receive mail.
A. Single domain without A or AAAA record
example.nl. TXT "v=spf1 -all"*.example.nl. TXT "v=spf1 -all"_dmarc.example.nl. TXT "v=DMARC1; p=reject;"
B. Single no-mail domain with A or AAAA record
example.nl. AAAA 2a00:d78:0:712:94:198:159:35example.nl. A 94.198.159.35example.nl. MX 0 .example.nl. TXT "v=spf1 -all"*.example.nl. TXT "v=spf1 -all"www.example.nl. CNAME example.nl_dmarc.example.nl. TXT "v=DMARC1; p=reject;"
',
detail_mail_auth_dmarc_policy_label: 'DMARC policy',
detail_mail_auth_dmarc_policy_verdict_bad: 'Your DMARC policy is not syntactically correct.',
detail_mail_auth_dmarc_policy_verdict_external: 'The domain of the external mail address following rua=
and/or ruf=
has no (valid) authorisation record for receiving DMARC reports for the tested domain. ',
@@ -98,20 +98,20 @@ const internet_nl_messages = {
detail_mail_auth_spf_policy_verdict_include: 'Your SPF policy is not sufficiently strict. The \'include\' mechanism in your SPF record points to an insufficiently strict SPF policy or a non-existing SPF record.',
detail_mail_auth_spf_policy_verdict_max_lookups: 'Your SPF policy is not effective as it requires more than the allowed 10 DNS lookups. Each of the following SPF terms counts as a DNS lookup: redirect
, include
, a
, mx
, ptr
and exist
. The SPF terms all
, ip4
, ip6
and exp
do not count as DNS lookups.',
detail_mail_auth_spf_policy_verdict_redirect: 'Your SPF policy is not sufficiently strict. The \'redirect\' modifier in your SPF record points to an insufficiently strict SPF policy or a non-existing SPF record.',
- detail_mail_dnssec_exists_exp: 'We check if your domain, more specifically its SOA record, is DNSSEC signed. With a DNSSEC signature senders who validate domain signatures can verify the authenticity of the DNS reply that contains your mail server domains (MX). This prevents an attacker from manipulating the DNS answer in order to redirect mails sent to you to the attacker\'s mailserver domain.If a domain redirects to another domain via CNAME
, then we also check if the CNAME domain is signed (which is conformant with the DNSSEC standard). If the CNAME domain is not signed, the result of this subtest will be negative.
Note: the validity of the signature is not part of this subtest, but part of the next subtest.', + detail_mail_dnssec_exists_exp: 'We check if your domain, more specifically its SOA record, is DNSSEC signed. With a DNSSEC signature senders who validate domain signatures can verify the authenticity of the DNS reply that contains your mail server domains (MX). This prevents an attacker from manipulating the DNS answer in order to redirect mails sent to you to the attacker\'s mail server domain.
If a domain redirects to another domain via CNAME
, then we also check if the CNAME domain is signed (which is conformant with the DNSSEC standard). If the CNAME domain is not signed, the result of this subtest will be negative.
Note: the validity of the signature is not part of this subtest, but part of the next subtest.',
detail_mail_dnssec_exists_label: 'DNSSEC existence',
detail_mail_dnssec_exists_tech_table: 'Email address domain|Registrar',
detail_mail_dnssec_exists_verdict_bad: 'Your email address domain is insecure, because it is not DNSSEC signed.',
detail_mail_dnssec_exists_verdict_good: 'Your email address domain is DNSSEC signed.',
detail_mail_dnssec_exists_verdict_resolver_error: 'Unfortunately an error occurred in Internet.nl\'s resolver. Please contact us.',
detail_mail_dnssec_exists_verdict_servfail: 'The name servers of your email address domain are broken. They returned an error (SERVFAIL
) to our queries for a DNSSEC signature. Please contact your name server operator (often your hosting provider and/or registrar) to fix this soon.',
- detail_mail_dnssec_mx_exists_exp: 'We check if the domains of your mail servers (MX), more specifically their SOA records, are DNSSEC signed. With a DNSSEC signature senders who validate domain signatures can verify the authenticity of the DNS reply containing the IP addresses and DANE records of your mailserver(s). This prevents an attacker from manipulating the DNS answer in order to redirect mails sent to you to an IP address controlled by the attacker or to eavesdrop on the secured mail server connection.
If a domain redirects to another domain via CNAME
, then we also check if the CNAME domain is signed (which is conformant with the DNSSEC standard). If the CNAME domain is not signed, the result of this subtest will be negative.
Note that the email test does not fall back to A/AAAA records for mail servers in case of absence of an MX record.
The validity of the signature is not part of this subtest, but part of the next subtest.', + detail_mail_dnssec_mx_exists_exp: 'We check if the domains of your mail servers (MX), more specifically their SOA records, are DNSSEC signed. With a DNSSEC signature senders who validate domain signatures can verify the authenticity of the DNS reply containing the IP addresses and DANE records of your mail server(s). This prevents an attacker from manipulating the DNS answer in order to redirect mails sent to you to an IP address controlled by the attacker or to eavesdrop on the secured mail server connection.
If a domain redirects to another domain via CNAME
, then we also check if the CNAME domain is signed (which is conformant with the DNSSEC standard). If the CNAME domain is not signed, the result of this subtest will be negative.
Note that the email test does not fall back to A/AAAA records for mail servers in case of absence of an MX record.
The validity of the signature is not part of this subtest, but part of the next subtest.',
detail_mail_dnssec_mx_exists_label: 'DNSSEC existence',
detail_mail_dnssec_mx_exists_tech_table: 'Domain of mail server (MX)|DNSSEC existent',
detail_mail_dnssec_mx_exists_verdict_bad: 'At least one of your mail server domains is insecure, because it is not DNSSEC signed.',
detail_mail_dnssec_mx_exists_verdict_good: 'All your mail server domains are DNSSEC signed.',
detail_mail_dnssec_mx_exists_verdict_invalid_null_mx: 'Your domain advertises a "Null MX" record indicating that it does not accept email. However, either your domain does not have A/AAAA records, making the "Null MX" record unnecessary. Or on your domain a receiving mail server is set by another MX record, making the "Null MX" conflicting.',
- detail_mail_dnssec_mx_exists_verdict_no_mailservers: 'No receiving mail servers (MX) are set on your domain that does not have A/AAAA records. This is fine if you do not want to receive email.',
+ detail_mail_dnssec_mx_exists_verdict_no_mailservers: 'The SPF record on your domain indicates that your domain may be used for sending mail. However, your domain does not have a receiving mail server (MX), which could hinder deliverability of your sent mails because not having an MX may be seen by receivers as an indicator for spam. Therefore if you really want to send mail from this domain, configure an MX. However, if you do not want to send mail from this domain, configure an SPF record with the -all
term only and besides a "Null MX" record if your domain has A/AAAA records. Because of your configuration, the subtests in the STARTTLS and DANE category and the mail server specific subtests in the IPv6 and DNSSEC categories are not applicable.',
detail_mail_dnssec_mx_exists_verdict_no_null_mx: 'No receiving mail servers (MX) are set on your domain that has A/AAAA records. We recommend you to explicitly indicate that your domain does not accept email by configuring a "Null MX" record. Do not use a "Null MX" record and set an MX if you do want to send email from this domain name, as receiving servers may reject email that has an invalid return address.',
detail_mail_dnssec_mx_exists_verdict_null_mx: 'Your domain name that has A/AAAA records clearly indicates with a "Null MX" record that it does not accept e-mail. This is fine if you do not want to receive email. Do not use a "Null MX" record and set an MX if you do want to send email from this domain name, as receiving servers may reject email that has an invalid return address.',
detail_mail_dnssec_mx_exists_verdict_null_mx_with_other_mx: 'Your domain advertises a "Null MX" record indicating that it does not accept email. However, on your domain a receiving mail server is set by another MX record, making the "Null MX" conflicting.',
@@ -136,41 +136,41 @@ const internet_nl_messages = {
detail_mail_ipv6_mx_aaaa_verdict_bad: 'At least one receiving mail server on your domain does not have an IPv6 address.',
detail_mail_ipv6_mx_aaaa_verdict_good: 'All receiving mail servers on your domain have an IPv6 address.',
detail_mail_ipv6_mx_aaaa_verdict_invalid_null_mx: 'Your domain advertises a "Null MX" record indicating that it does not accept email. However, either your domain does not have A/AAAA records, making the "Null MX" record unnecessary. Or on your domain a receiving mail server is set by another MX record, making the "Null MX" conflicting.',
- detail_mail_ipv6_mx_aaaa_verdict_no_null_mx: 'No receiving mail servers (MX) are set on your domain that has A/AAAA records. We recommend you to explicitly indicate that your domain does not accept email by configuring a "Null MX" record. Do not use a "Null MX" record and set an MX if you do want to send email from this domain name, as receiving servers may reject email that has an invalid return address.',
+ detail_mail_ipv6_mx_aaaa_verdict_no_null_mx: 'No receiving mail servers (MX) are set on your domain that has A/AAAA records and has an SPF record with only the term -all. We recommend you to set a "Null MX" record to explicitly indicate that your domain does not accept email. Because of your configuration, the subtests in the STARTTLS and DANE category and the mail server specific subtests in the IPv6 and DNSSEC categories are not applicable.',
detail_mail_ipv6_mx_aaaa_verdict_null_mx: 'Your domain name that has A/AAAA records clearly indicates with a "Null MX" record that it does not accept e-mail. This is fine if you do not want to receive email. Do not use a "Null MX" record and set an MX if you do want to send email from this domain name, as receiving servers may reject email that has an invalid return address.',
detail_mail_ipv6_mx_aaaa_verdict_null_mx_with_other_mx: 'Your domain advertises a "Null MX" record indicating that it does not accept email. However, on your domain a receiving mail server is set by another MX record, making the "Null MX" conflicting.',
detail_mail_ipv6_mx_aaaa_verdict_null_mx_without_a_aaaa: 'Your domain advertises a "Null MX" record indicating that it does not accept email. However, your domain does not have A/AAAA records, making the "Null MX" record unnecessary.',
- detail_mail_ipv6_mx_aaaa_verdict_other: 'No receiving mail servers (MX) are set on your domain that does not have A/AAAA records. This is fine if you do not want to receive email.',
+ detail_mail_ipv6_mx_aaaa_verdict_other: 'The SPF record on your domain indicates that your domain may be used for sending mail. However, your domain does not have a receiving mail server (MX), which could hinder deliverability of your sent mails because not having an MX may be seen by receivers as an indicator for spam. Therefore if you really want to send mail from this domain, configure an MX. However, if you do not want to send mail from this domain, configure an SPF record with the -all
term only and besides a "Null MX" record if your domain has A/AAAA records. Because of your configuration, the subtests in the STARTTLS and DANE category and the mail server specific subtests in the IPv6 and DNSSEC categories are not applicable.',
detail_mail_ipv6_mx_reach_exp: 'We check if we can connect to your mail servers (MX) over IPv6 on port 25. We test all IPv6 addresses that we receive from the name servers of your mail server domain(s). A partial score will be given if not all IPv6 addresses are reachable. If an IPv6 address is (syntactically) invalid, we consider it unreachable.',
detail_mail_ipv6_mx_reach_label: 'IPv6 reachability of mail server(s)',
detail_mail_ipv6_mx_reach_tech_table: 'Mail server (MX)|Unreachable IPv6 address',
detail_mail_ipv6_mx_reach_verdict_bad: 'At least one of your receiving mail servers with an IPv6 address is not reachable over IPv6.',
detail_mail_ipv6_mx_reach_verdict_good: 'All your receiving mail servers with an IPv6 address are reachable over IPv6.',
- detail_mail_rpki_exists_exp: 'We check if an RPKI Route Origin Authorization (ROA) has been published for all IP addresses of your mail server(s) (MX).
Your hoster (or its network provider) announces through the Border Gateway Protocol (BGP) for which of its IP address blocks it accepts incoming Internet traffic. Other network providers use these route announcements to determine via which route to send traffic for your server\'s IP addresses.
However, a route announcement can be faked. In fact, another network provider may be able to connect the IP address block of your IP address to its network and thus potentially receive Internet traffic that is actually intended for your network provider. The cause may be accidental or malicious. In either case, this can result in your server becoming unreachable or in Internet traffic to your server being intercepted.
Resource Public Key Infrastructure (RPKI) significantly improves protection against this. With RPKI, the rightful holder of a block of IP addresses can publish a digitally signed statement with route authorization (Route Origin Authorisation; ROA for short). Another network provider that wants to send Internet traffic to a particular IP address, can use the corresponding statement to filter out Invalid
routes. In this way, the network provider prevents Internet traffic from its network from being sent to unauthorized provider networks.
Requirement level: Recommended', + detail_mail_rpki_exists_exp: 'We check if an RPKI Route Origin Authorization (ROA) has been published for all IP addresses of your mail server(s) (MX).
Your hoster (or its network provider) announces through the Border Gateway Protocol (BGP) for which of its IP address blocks it accepts incoming Internet traffic. Other network providers use these route announcements to determine via which route to send traffic for your server\'s IP addresses.
However, a route announcement can be faked. In fact, another network provider may be able to connect the IP address block of your IP address to its network and thus potentially receive Internet traffic that is actually intended for your network provider. The cause may be accidental or malicious. In either case, this can result in your server becoming unreachable or in Internet traffic to your server being intercepted.
Resource Public Key Infrastructure (RPKI) significantly improves protection against this. With RPKI, the rightful holder of a block of IP addresses can publish a digitally signed statement with route authorization (Route Origin Authorisation; ROA for short). Another network provider that wants to send Internet traffic to a particular IP address, can use the corresponding statement to filter out Invalid
routes. In this way, the network provider prevents Internet traffic from its network from being sent to unauthorized provider networks.',
detail_mail_rpki_exists_label: 'Route Origin Authorisation existence',
detail_mail_rpki_exists_tech_table: 'Mail server|IP address|RPKI Route Origin Authorization',
detail_mail_rpki_exists_verdict_bad: 'For at least one of the IP addresses of your receiving mail server(s) no RPKI Route Origin Authorisation (ROA) is published.',
detail_mail_rpki_exists_verdict_good: 'For all IP addresses of your receiving mail server(s) an RPKI Route Origin Authorisation (ROA) is published.',
detail_mail_rpki_exists_verdict_no_addresses: 'Your domain does not contain any receiving mail servers. Therefore, this subtest could not be performed.',
- detail_mail_rpki_mx_ns_exists_exp: 'We check if an RPKI Route Origin Authorization (ROA) has been published for all IP addresses of the name servers of your mail server(s) (MX).
Your hoster (or its network provider) announces through the Border Gateway Protocol (BGP) for which of its IP address blocks it accepts incoming Internet traffic. Other network providers use these route announcements to determine via which route to send traffic for your server\'s IP addresses.
However, a route announcement can be faked. In fact, another network provider may be able to connect the IP address block of your IP address to its network and thus potentially receive Internet traffic that is actually intended for your network provider. The cause may be accidental or malicious. In either case, this can result in your server becoming unreachable or in Internet traffic to your server being intercepted.
Resource Public Key Infrastructure (RPKI) significantly improves protection against this. With RPKI, the rightful holder of a block of IP addresses can publish a digitally signed statement with route authorization (Route Origin Authorisation; ROA for short). Another network provider that wants to send Internet traffic to a particular IP address, can use the corresponding statement to filter out Invalid
routes. In this way, the network provider prevents Internet traffic from its network from being sent to unauthorized provider networks.
Requirement level: Recommended', + detail_mail_rpki_mx_ns_exists_exp: 'We check if an RPKI Route Origin Authorization (ROA) has been published for all IP addresses of the name servers of your mail server(s) (MX).
Your hoster (or its network provider) announces through the Border Gateway Protocol (BGP) for which of its IP address blocks it accepts incoming Internet traffic. Other network providers use these route announcements to determine via which route to send traffic for your server\'s IP addresses.
However, a route announcement can be faked. In fact, another network provider may be able to connect the IP address block of your IP address to its network and thus potentially receive Internet traffic that is actually intended for your network provider. The cause may be accidental or malicious. In either case, this can result in your server becoming unreachable or in Internet traffic to your server being intercepted.
Resource Public Key Infrastructure (RPKI) significantly improves protection against this. With RPKI, the rightful holder of a block of IP addresses can publish a digitally signed statement with route authorization (Route Origin Authorisation; ROA for short). Another network provider that wants to send Internet traffic to a particular IP address, can use the corresponding statement to filter out Invalid
routes. In this way, the network provider prevents Internet traffic from its network from being sent to unauthorized provider networks.',
detail_mail_rpki_mx_ns_exists_label: 'Route Origin Authorisation existence',
detail_mail_rpki_mx_ns_exists_tech_table: 'Name server of MX|IP address|RPKI Route Origin Authorization',
detail_mail_rpki_mx_ns_exists_verdict_bad: 'For at least one of the IP addresses of the name servers of your mail server(s) no RPKI Route Origin Authorisation (ROA) is published.',
detail_mail_rpki_mx_ns_exists_verdict_good: 'For all IP addresses of the name servers of your mail server(s) an RPKI Route Origin Authorisation (ROA) is published.',
detail_mail_rpki_mx_ns_exists_verdict_no_addresses: 'Your domain does not contain any mail servers. Therefore, this subtest could not be performed.',
- detail_mail_rpki_mx_ns_valid_exp: 'We check if the validation status for all IP addresses of the name servers of your mail servers (MX) is Valid
. If there are multiple overlapping route announcements for the IP address, we test that they are all Valid
.
Your hoster (or its network provider) announces via the Border Gateway Protocol (BGP) for which of its IP address blocks it accepts incoming Internet traffic. It does this by associating (parts of) its IP address blocks (Route Prefix) with the unique number of its provider network (Route Origin ASN), and then distributing this routing information. Other network providers use these route announcements to determine via which route to send traffic for the IP addresses.
Additionally, for each route announcement, your hoster (or its network provider) should publish a digitally signed statement with route authorisation (Route Origin Authorisation; abbreviated: ROA) statement using Resource Public Key Infrastructure (RPKI).
Another network provider that is asked to send Internet traffic to your server\'s IP address can cryptographically verify the associated statement. The verified content (Validated ROA Payload; abbreviated: VRP) includes which provider networks (VRP ASN) are authorised to receive Internet traffic for each recorded IP address block (VRP Prefix).
The network provider can then use this content to filter BGP routes. For example, he can reject any Invalid
routes, to prevent Internet traffic from its network is sent to unauthorised provider networks.
Checking route announcements against route authorisations (RPKI Origin Validation; abbreviated: ROV) has the following three possible outcomes.
Valid
: The route announcement of the considered IP address is matched by at least one published route authorisation. A route authorisation is also matched for more specific route announcements (i.e., for a part of the IP address block contained in the route authorisation), unless they are more specific than the limit specified in the route authorisation (via the maxLength
attribute).
Invalid
: The route announcement of the considered IP address is covered by a route authorisation, but it does not match. There are two possible causes:
the IP address block (Route Prefix) is announced from a provider network (Route Origin ASN) that is not authorised in the route authorisation (result in the table below: "invalid (as)");
the IP address block (Route Prefix) that is announced is smaller than is allowed in the route authorisation, i.e. exceeding maxLength
value (result in table below: "invalid (length)").
NotFound
: No statement with route-authorisation has been found that covers the route announcement of the considered IP address. This makes the routing of Internet traffic to your server less secure. Please contact your hoster about this. He can ask his network provider that owns your server\'s IP addresses to publish route authorisations.
What to do if the test result shows the status Invalid?
The status Invalid
indicates an unintentional or malicious route configuration error, that can be caused by your hoster or its network provider (internal error) or by a third party (external error). In either case, it can lead to the unreachability of your server or the interception of Internet traffic to your server. Contact your hoster as soon as possible. In the case of an internal error, your hoster should ask his network provider that owns your server\'s IP addresses to fix the route configuration error.
Requirement level: Recommended',
+ detail_mail_rpki_mx_ns_valid_exp: 'We check if the validation status for all IP addresses of the name servers of your mail servers (MX) is Valid
. If there are multiple overlapping route announcements for the IP address, we test that they are all Valid
.
Your hoster (or its network provider) announces via the Border Gateway Protocol (BGP) for which of its IP address blocks it accepts incoming Internet traffic. It does this by associating (parts of) its IP address blocks (Route Prefix) with the unique number of its provider network (Route Origin ASN), and then distributing this routing information. Other network providers use these route announcements to determine via which route to send traffic for the IP addresses.
Additionally, for each route announcement, your hoster (or its network provider) should publish a digitally signed statement with route authorisation (Route Origin Authorisation; abbreviated: ROA) statement using Resource Public Key Infrastructure (RPKI).
Another network provider that is asked to send Internet traffic to your server\'s IP address can cryptographically verify the associated statement. The verified content (Validated ROA Payload; abbreviated: VRP) includes which provider networks (VRP ASN) are authorised to receive Internet traffic for each recorded IP address block (VRP Prefix).
The network provider can then use this content to filter BGP routes. For example, he can reject any Invalid
routes, to prevent Internet traffic from its network is sent to unauthorised provider networks.
Checking route announcements against route authorisations (RPKI Origin Validation; abbreviated: ROV) has the following three possible outcomes.
1․ Valid
: The route announcement of the considered IP address is matched by at least one published route authorisation. A route authorisation is also matched for more specific route announcements (i.e., for a part of the IP address block contained in the route authorisation), unless they are more specific than the limit specified in the route authorisation (via the maxLength
attribute).
2․ Invalid
: The route announcement of the considered IP address is covered by a route authorisation, but it does not match. There are two possible causes:
maxLength
value (result in table below: "invalid (length)").3․ NotFound
: No statement with route-authorisation has been found that covers the route announcement of the considered IP address. This makes the routing of Internet traffic to your server less secure. Please contact your hoster about this. He can ask his network provider that owns your server\'s IP addresses to publish route authorisations.
What to do if the test result shows the status Invalid?
The status Invalid
indicates an unintentional or malicious route configuration error, that can be caused by your hoster or its network provider (internal error) or by a third party (external error). In either case, it increases the risk for unreachability of your server or for interception of Internet traffic to your server. Contact your hoster as soon as possible. In the case of an internal error, your hoster should ask its network provider that owns your server\'s IP addresses to fix the route configuration error. ',
detail_mail_rpki_mx_ns_valid_label: 'Route announcement validity',
detail_mail_rpki_mx_ns_valid_tech_table: 'Name server of MX|BGP Route Prefix|BGP Route Origin ASN|RPKI Origin Validation state',
detail_mail_rpki_mx_ns_valid_verdict_bad: 'At least one IP address of the name servers of your receiving mail servers has a NotFound
validation state. There is no RPKI Route Origin Authorization (ROA) published for the route announcement of each of the affected IP addresses.',
detail_mail_rpki_mx_ns_valid_verdict_good: 'All IP addresses of the name servers of your receiving mail servers have a Valid
validation state. The route announcement of these IP addresses is matched by the published RPKI Route Origin Authorisation (ROA).',
- detail_mail_rpki_mx_ns_valid_verdict_invalid: 'At least one IP address of the name servers of your receiving mail servers has an Invalid
validation state. The route announcement of the affected IP adresses is not matched by the published RPKI Route Origin Authorisation (ROA). This indicates an unintentional or malicious route configuration error, that can be caused by your mail hoster (internal error) or by a third party (external error). In either case, it can lead to the unreachability of your server or the interception of Internet traffic to your server. Contact your mail hoster as soon as possible. In the case of an internal error, your mail hoster should ask its network provider that owns your server\'s IP addresses to fix the route configuration error.',
+ detail_mail_rpki_mx_ns_valid_verdict_invalid: 'At least one IP address of the name servers of your receiving mail servers has an Invalid
validation state. The route announcement of the affected IP addresses is not matched by the published RPKI Route Origin Authorisation (ROA). This indicates an unintentional or malicious route configuration error, that can be caused by your mail hoster (internal error) or by a third party (external error). In either case, it increases the risk for unreachability of your server or for interception of Internet traffic to your server. Contact your mail hoster as soon as possible. In the case of an internal error, your mail hoster should ask its network provider that owns your server\'s IP addresses to fix the route configuration error.',
detail_mail_rpki_mx_ns_valid_verdict_not_routed: 'This subtest did not run, because no route announcement was available for any of the IP addresses.',
- detail_mail_rpki_valid_exp: 'We check if the validation status for all IP addresses of your mail servers (MX) is Valid
. If there are multiple overlapping route announcements for the IP address, we test that they are all Valid
.
Your hoster (or its network provider) announces via the Border Gateway Protocol (BGP) for which of its IP address blocks it accepts incoming Internet traffic. It does this by associating (parts of) its IP address blocks (Route Prefix) with the unique number of its provider network (Route Origin ASN), and then distributing this routing information. Other network providers use these route announcements to determine via which route to send traffic for the IP addresses.
Additionally, for each route announcement, your hoster (or its network provider) should publish a digitally signed statement with route authorisation (Route Origin Authorisation; abbreviated: ROA) statement using Resource Public Key Infrastructure (RPKI).
Another network provider that is asked to send Internet traffic to your server\'s IP address can cryptographically verify the associated statement. The verified content (Validated ROA Payload; abbreviated: VRP) includes which provider networks (VRP ASN) are authorised to receive Internet traffic for each recorded IP address block (VRP Prefix).
The network provider can then use this content to filter BGP routes. For example, he can reject any Invalid
routes, to prevent Internet traffic from its network is sent to unauthorised provider networks.
Checking route announcements against route authorisations (RPKI Origin Validation; abbreviated: ROV) has the following three possible outcomes.
Valid
: The route announcement of the considered IP address is matched by at least one published route authorisation. A route authorisation is also matched for more specific route announcements (i.e., for a part of the IP address block contained in the route authorisation), unless they are more specific than the limit specified in the route authorisation (via the maxLength
attribute).
Invalid
: The route announcement of the considered IP address is covered by a route authorisation, but it does not match. There are two possible causes:
the IP address block (Route Prefix) is announced from a provider network (Route Origin ASN) that is not authorised in the route authorisation (result in the table below: "invalid (as)");
the IP address block (Route Prefix) that is announced is smaller than is allowed in the route authorisation, i.e. exceeding maxLength
value (result in table below: "invalid (length)").
NotFound
: No statement with route-authorisation has been found that covers the route announcement of the considered IP address. This makes the routing of Internet traffic to your server less secure. Please contact your hoster about this. He can ask his network provider that owns your server\'s IP addresses to publish route authorisations.
What to do if the test result shows the status Invalid?
The status Invalid
indicates an unintentional or malicious route configuration error, that can be caused by your hoster or its network provider (internal error) or by a third party (external error). In either case, it can lead to the unreachability of your server or the interception of Internet traffic to your server. Contact your hoster as soon as possible. In the case of an internal error, your hoster should ask his network provider that owns your server\'s IP addresses to fix the route configuration error.
Requirement level: Recommended',
+ detail_mail_rpki_valid_exp: 'We check if the validation status for all IP addresses of your mail servers (MX) is Valid
. If there are multiple overlapping route announcements for the IP address, we test that they are all Valid
.
Your hoster (or its network provider) announces via the Border Gateway Protocol (BGP) for which of its IP address blocks it accepts incoming Internet traffic. It does this by associating (parts of) its IP address blocks (Route Prefix) with the unique number of its provider network (Route Origin ASN), and then distributing this routing information. Other network providers use these route announcements to determine via which route to send traffic for the IP addresses.
Additionally, for each route announcement, your hoster (or its network provider) should publish a digitally signed statement with route authorisation (Route Origin Authorisation; abbreviated: ROA) statement using Resource Public Key Infrastructure (RPKI).
Another network provider that is asked to send Internet traffic to your server\'s IP address can cryptographically verify the associated statement. The verified content (Validated ROA Payload; abbreviated: VRP) includes which provider networks (VRP ASN) are authorised to receive Internet traffic for each recorded IP address block (VRP Prefix).
The network provider can then use this content to filter BGP routes. For example, he can reject any Invalid
routes, to prevent Internet traffic from its network is sent to unauthorised provider networks.
Checking route announcements against route authorisations (RPKI Origin Validation; abbreviated: ROV) has the following three possible outcomes.
1․ Valid
: The route announcement of the considered IP address is matched by at least one published route authorisation. A route authorisation is also matched for more specific route announcements (i.e., for a part of the IP address block contained in the route authorisation), unless they are more specific than the limit specified in the route authorisation (via the maxLength
attribute).
2․ Invalid
: The route announcement of the considered IP address is covered by a route authorisation, but it does not match. There are two possible causes:
maxLength
value (result in table below: "invalid (length)").3․ NotFound
: No statement with route-authorisation has been found that covers the route announcement of the considered IP address. This makes the routing of Internet traffic to your server less secure. Please contact your hoster about this. He can ask his network provider that owns your server\'s IP addresses to publish route authorisations.
What to do if the test result shows the status Invalid?
The status Invalid
indicates an unintentional or malicious route configuration error, that can be caused by your hoster or its network provider (internal error) or by a third party (external error). In either case, it increases the risk for unreachability of your server or for interception of Internet traffic to your server. Contact your hoster as soon as possible. In the case of an internal error, your hoster should ask its network provider that owns your server\'s IP addresses to fix the route configuration error.',
detail_mail_rpki_valid_label: 'Route announcement validity',
detail_mail_rpki_valid_tech_table: 'Mail server|BGP Route Prefix|BGP Route Origin ASN|RPKI Origin Validation state',
detail_mail_rpki_valid_verdict_bad: 'At least one IP address of your receiving mail servers has a NotFound
validation state. There is no RPKI Route Origin Authorization (ROA) published for the route announcement of each of the affected IP addresses.',
detail_mail_rpki_valid_verdict_good: 'All IP addresses of your receiving mail servers have a Valid
validation state. The route announcement of these IP addresses is matched by the published RPKI Route Origin Authorisation (ROA).',
- detail_mail_rpki_valid_verdict_invalid: 'At least one IP address of your receiving mail servers has an Invalid
validation state. The route announcement of the affected IP adresses is not matched by the published RPKI Route Origin Authorisation (ROA). This indicates an unintentional or malicious route configuration error, that can be caused by your mail hoster (internal error) or by a third party (external error). In either case, it can lead to the unreachability of your server or the interception of Internet traffic to your server. Contact your mail hoster as soon as possible. In the case of an internal error, your mail hoster should ask its network provider that owns your server\'s IP addresses to fix the route configuration error.',
+ detail_mail_rpki_valid_verdict_invalid: 'At least one IP address of your receiving mail servers has an Invalid
validation state. The route announcement of the affected IP addresses is not matched by the published RPKI Route Origin Authorisation (ROA). This indicates an unintentional or malicious route configuration error, that can be caused by your mail hoster (internal error) or by a third party (external error). In either case, it increases the risk for unreachability of your server or for interception of Internet traffic to your server. Contact your mail hoster as soon as possible. In the case of an internal error, your mail hoster should ask its network provider that owns your server\'s IP addresses to fix the route configuration error.',
detail_mail_rpki_valid_verdict_not_routed: 'This subtest did not run, because no route announcement was available for any of the IP addresses.',
detail_mail_tls_cert_hostmatch_exp: 'We check if the domain name of each of your receiving mail servers (MX) matches the domain name on the presented certificates.
Sending mail servers usually ignore the domain in the certificate. Without DNSSEC the lookup of the mail server domain is vulnerable to manipulation. Thus matching the domain on the certificate against the mail server domain does not add any authenticity value. Quite a few receiving mail servers are therefore using self-signed certificates, often issued by an internal (private) certificate authority.
For authenticity a mail server should use DNSSEC and DANE. A certificate with a domain that matches the domain of the mail server is only required when DANE \'trust anchor assertion\' (DANE-TA, 2) is used.
See \'IT Security Guidelines for Transport Layer Security (TLS) v2.1\' from NCSC-NL, guideline B3-1 (in English).
Requirement level: Optional / Required (only when DANE-TA is used)', detail_mail_tls_cert_hostmatch_label: 'Domain name on certificate', @@ -196,7 +196,7 @@ const internet_nl_messages = { detail_mail_tls_cipher_order_exp: 'We check if your receiving mail servers (MX) enforce their own cipher preference (\'I\'), and offer ciphers in accordance with the prescribed ordering (\'II\').
When your mail servers support \'Good\' ciphers only, this test is not applicable as the ordering has no significant security advantage.
I. Server enforced cipher preference: The receiving mail servers enforce their own cipher preference while negotiating with sending mail servers, and do not accept any preference of the the sending mail servers;
II. Prescribed ordering: Ciphers are offered by the receiving mail servers in accordance with the prescribed order where \'Good\' is preferred over \'Sufficient\' over \'Phase out\' ciphers.
In the above table with technical details only the first found out of prescribed order algorithm selections are listed.
See \'IT Security Guidelines for Transport Layer Security (TLS) v2.1\' from NCSC-NL, guideline B2-5.', detail_mail_tls_cipher_order_label: 'Cipher order', detail_mail_tls_cipher_order_tech_table: 'Mail server (MX)|First found affected cipher pair|Violated rule # (\'II-B\')', - detail_mail_tls_cipher_order_verdict_bad: 'At least one of your mailservers does not enforce its own cipher preference (\'I\').', + detail_mail_tls_cipher_order_verdict_bad: 'At least one of your mail servers does not enforce its own cipher preference (\'I\').', detail_mail_tls_cipher_order_verdict_good: 'All your mail servers enforce their own cipher preference (\'I\'), and offer ciphers in accordance with the prescribed ordering (\'II\').', detail_mail_tls_cipher_order_verdict_na: 'This subtest is not applicable as your mail server supports \'Good\' ciphers only.', detail_mail_tls_cipher_order_verdict_seclevel_bad: 'At least one of your mail servers does not prefer \'Good\' over \'Sufficient\' over \'Phase out\' ciphers (\'II\').', @@ -218,7 +218,7 @@ const internet_nl_messages = { detail_mail_tls_dane_exists_verdict_bad: 'At least one of your mail server domains does not provide a TLSA record for DANE.', detail_mail_tls_dane_exists_verdict_bogus: 'At least one of your mail server domains does not provide DNSSEC proof that DANE TLSA records do not exist. This could lead to non-deliverability of mail sent to you by DANE validating mail senders. You should ask your name server operator to fix this issue.', detail_mail_tls_dane_exists_verdict_good: 'All your mail server domains provide a TLSA record for DANE.', - detail_mail_tls_dane_rollover_exp: 'We check if there is an active scheme with at least two DANE TLSA records to reliably handle certificate rollovers on your receiving mail servers (MX).
Such a scheme will be proven useful when there is a need to update your mail server certificate(s). It can prevent that DANE becomes invalid during the transition period which could endanger mail deliverability at your domain. A rollover scheme could but does not need to be \'active\' all the time.
We recommend you to apply one of the following two schemes with double DANE TLSA records:
The test also accepts other combinations of DANE TLSA records i.e. "3 x x" + "3 x x" or "3 x x" + "2 x x". However other types than the above will generally be more error prone and less interoperable.
Requirement level: Optional', + detail_mail_tls_dane_rollover_exp: 'We check if there is an active scheme with at least two DANE TLSA records to reliably handle certificate rollovers on your receiving mail servers (MX).
Such a scheme will be proven useful when there is a need to update your mail server certificate(s). It can prevent that DANE becomes invalid during the transition period which could endanger mail deliverability at your domain. A rollover scheme could but does not need to be \'active\' all the time.
We recommend you to apply one of the following two schemes with double DANE TLSA records:
The test also accepts other combinations of DANE TLSA records i.e. "3 x x" + "3 x x" or "3 x x" + "2 x x". However other types than the above will generally be more error prone and less interoperable.
Note that if a mail server simultaneously offers two certificates (one based on RSA and one based on ECDSA), a separate DANE TLSA rollover scheme is recommended for each certificate. The subtest does not check for this scenario. If only one DANE TLSA record is configured for each certificate, this subtest gives a false-positive result.
Requirement level: Optional', detail_mail_tls_dane_rollover_label: 'DANE rollover scheme', detail_mail_tls_dane_rollover_tech_table: 'Mail server (MX)|DANE rollover scheme', detail_mail_tls_dane_rollover_verdict_bad: 'At least one of your mail server domains does not have an active DANE scheme for a reliable rollover of certificate keys.', @@ -226,9 +226,9 @@ const internet_nl_messages = { detail_mail_tls_dane_valid_exp: 'We check if the DANE fingerprints presented by your mail server domains are valid for your mail server certificates.
DANE allows you to publish information about your mail server certificates in a special DNS record, called TLSA record. Sending mail servers can check the authenticity of your certificates not only through the certificate authority but also through the TLSA records. A sending mail server can also use the TLSA record as a signal to only connect via STARTTLS (and not unencrypted). When the DANE fingerprint of a receiving mail server is checked by the sending mail server, an active attacker who is able to manipulate the mail traffic cannot strip STARTTLS encryption. ', detail_mail_tls_dane_valid_label: 'DANE validity', detail_mail_tls_dane_valid_tech_table: 'Mail server (MX)|DANE TLSA record valid', - detail_mail_tls_dane_valid_verdict_bad: 'At least one of your mailservers does not have any valid DANE fingerprints. Either someone manipulated the response of your mail server, or your mail server has a serious DANE configuration error. The latter makes your domain unreachable for any sending mail server that checks DANE fingerprints. You should contact your mail provider as soon as possible.', - detail_mail_tls_dane_valid_verdict_good: 'Each of your mailservers has at least one valid DANE fingerprint. This allows sending mail servers that support DANE verification to set up an authenticated encrypted transport connection with your receiving mail servers.', - detail_mail_tls_fs_params_exp: 'We check if the public parameters used in Diffie-Hellman key exchange by your receiving mail servers (MX) are secure.
ECDHE: The security of elliptic curve Diffie-Hellman (ECDHE) ephemeral key exchange depends on the used elliptic curve. We check if the bit-length of the used elliptic curves is a least 224 bits. Currently we are not able to check the elliptic curve name.
DHE: The security of Diffie-Hellman Ephemeral (DHE) key exchange depends on the lengths of the public and secret keys used within the chosen finite field group. We test if your DHE public key material uses one of the predefined finite field groups that are specified in RFC 7919. Self-generated groups are \'Insufficient\'.
The larger key sizes required for the use of DHE come with a performance penalty. Carefully evaluate and use ECDHE instead of DHE if you can.
RSA as an alternative: Besides ECDHE and DHE, RSA can be used for key exchange. However, it is at risk of becoming insufficiently secure (current status \'phase out\'). The RSA public parameters are tested in the subtest \'Public key of certificate\'. Note that RSA is considered as \'good\' for certificate verification.
See \'IT Security Guidelines for Transport Layer Security (TLS) v2.1\' from NCSC-NL, guideline B5-1 and table 9 for ECDHE, and guideline B6-1 and table 10 for DHE (in English).
Elliptic curve for ECDHE
secp384r1
, secp256r1
, x448
, and x25519
secp224r1
Finite field group for DHE
Sufficient:
64852d6890ff9e62eecd1ee89c72af9af244dfef5b853bcedea3dfd7aade22b3
c410cc9c4fd85d2c109f7ebe5930ca5304a52927c0ebcb1a11c5cf6b2386bbab
Phase out:
9ba6429597aeed2d8617a7705b56e96d044f64b07971659382e426675105654b
Insufficient: Other groups
Note: the above names are based on the IANA naming conventions. Sometimes alternative names are used to refer to the same curves, like prime256v1
(ANSI) and NIST P-256
for secp256r1
.',
+ detail_mail_tls_dane_valid_verdict_bad: 'At least one of your mail servers does not have any valid DANE fingerprints. Either someone manipulated the response of your mail server, or your mail server has a serious DANE configuration error. The latter makes your domain unreachable for any sending mail server that checks DANE fingerprints. You should contact your mail provider as soon as possible.',
+ detail_mail_tls_dane_valid_verdict_good: 'Each of your mail servers has at least one valid DANE fingerprint. This allows sending mail servers that support DANE verification to set up an authenticated encrypted transport connection with your receiving mail servers.',
+ detail_mail_tls_fs_params_exp: 'We check if the public parameters used in Diffie-Hellman key exchange by your receiving mail servers (MX) are secure.
ECDHE: The security of elliptic curve Diffie-Hellman (ECDHE) ephemeral key exchange depends on the used elliptic curve. We check if the bit-length of the used elliptic curves is a least 224 bits. Currently we are not able to check the elliptic curve name.
DHE: The security of Diffie-Hellman Ephemeral (DHE) key exchange depends on the lengths of the public and secret keys used within the chosen finite field group. We test if your DHE public key material uses one of the predefined finite field groups that are specified in RFC 7919. Self-generated groups are \'Insufficient\'.
The larger key sizes required for the use of DHE come with a performance penalty. Carefully evaluate and use ECDHE instead of DHE if you can.
RSA as an alternative: Besides ECDHE and DHE, RSA can be used for key exchange. However, it is at risk of becoming insufficiently secure (current status \'phase out\'). The RSA public parameters are tested in the subtest \'Public key of certificate\'. Note that RSA is considered as \'good\' for certificate verification.
See \'IT Security Guidelines for Transport Layer Security (TLS) v2.1\' from NCSC-NL, guideline B5-1 and table 9 for ECDHE, and guideline B6-1 and table 10 for DHE (in English).
Elliptic curve for ECDHE
secp384r1
, secp256r1
, x448
, and x25519
secp224r1
Finite field group for DHE
Sufficient:
64852d6890ff9e62eecd1ee89c72af9af244dfef5b853bcedea3dfd7aade22b3
c410cc9c4fd85d2c109f7ebe5930ca5304a52927c0ebcb1a11c5cf6b2386bbab
Phase out:
Insufficient: Other groups
Note: the above names are based on the IANA naming conventions. Sometimes alternative names are used to refer to the same curves, like prime256v1
(ANSI) and NIST P-256
for secp256r1
.',
detail_mail_tls_fs_params_label: 'Key exchange parameters',
detail_mail_tls_fs_params_tech_table: 'Mail server (MX)|Affected parameters|Security level',
detail_mail_tls_fs_params_verdict_bad: 'At least one of your mail servers supports insufficiently secure parameters for Diffie-Hellman key exchange.',
@@ -239,7 +239,7 @@ const internet_nl_messages = {
detail_mail_tls_kex_hash_func_label: 'Hash function for key exchange',
detail_mail_tls_kex_hash_func_tech_table: 'Mail server (MX)|SHA2 support for signatures',
detail_mail_tls_kex_hash_func_verdict_good: 'All your mail servers support secure hash functions for key exchange.',
- detail_mail_tls_kex_hash_func_verdict_other: 'We were unable to determine the hash function used by at least one of your mail servers. This could be because the cipher combination used has no signature for certificate verification (e.g it uses RSA key exchange or is anonymous i.e. anon
).',
+ detail_mail_tls_kex_hash_func_verdict_other: 'We were unable to determine the hash function used by at least one of your mail servers. This could be because the cipher combination used has no signature for certificate verification (e.g. it uses RSA key exchange or is anonymous i.e. anon
).',
detail_mail_tls_kex_hash_func_verdict_phase_out: 'At least one of your mail servers does not support a secure hash function for key exchange. You should phase out this setting deliberately, because it is at risk of becoming insufficiently secure in the future.',
detail_mail_tls_ocsp_stapling_exp: 'OUTDATED TEXT; TEST NOT USED
We check if your receiving mail server supports the TLS Certificate Status extension aka OCSP stapling. With OCSP stapling your mail server can provide OCSP responses itself which removes the need for the TLS client to verify the validity of the mail server certificate directly with the certificate supplier, and thus avoids exposing potentially privacy sensitive data about the client to the certificate supplier. It also does not require connectivity between client and certificate supplier and is faster. See \'IT Security Guidelines for Transport Layer Security (TLS)\', guideline B9-1 (in English).
When connecting to your mail server we use the TLS Certificate Status extension to request OCSP data be included in the server response. If your mail server includes OCSP data in the response we then verify that the OCSP data is signed by a known certificate authority.',
detail_mail_tls_ocsp_stapling_label: 'OUTDATED TEXT; TEST NOT USED
OCSP stapling',
@@ -263,12 +263,12 @@ const internet_nl_messages = {
detail_mail_tls_starttls_exists_verdict_bad: 'At least one of your mail servers does not offer STARTTLS.',
detail_mail_tls_starttls_exists_verdict_good: 'All your mail servers offer STARTTLS.',
detail_mail_tls_starttls_exists_verdict_invalid_null_mx: 'Your domain advertises a "Null MX" record indicating that it does not accept email. However, either your domain does not have A/AAAA records, making the "Null MX" record unnecessary. Or on your domain a receiving mail server is set by another MX record, making the "Null MX" conflicting.',
- detail_mail_tls_starttls_exists_verdict_no_null_mx: 'No receiving mail servers (MX) are set on your domain that has A/AAAA records. We recommend you to explicitly indicate that your domain does not accept email by configuring a "Null MX" record. Do not use a "Null MX" record and set an MX if you do want to send email from this domain name, as receiving servers may reject email that has an invalid return address.',
+ detail_mail_tls_starttls_exists_verdict_no_null_mx: 'No receiving mail servers (MX) are set on your domain that has A/AAAA records and has an SPF record with only the term -all. We recommend you to set a "Null MX" record to explicitly indicate that your domain does not accept email. Because of your configuration, the subtests in the STARTTLS and DANE category and the mail server specific subtests in the IPv6 and DNSSEC categories are not applicable.',
detail_mail_tls_starttls_exists_verdict_null_mx: 'Your domain name that has A/AAAA records clearly indicates with a "Null MX" record that it does not accept e-mail. This is fine if you do not want to receive email. Do not use a "Null MX" record and set an MX if you do want to send email from this domain name, as receiving servers may reject email that has an invalid return address.',
detail_mail_tls_starttls_exists_verdict_null_mx_with_other_mx: 'Your domain advertises a "Null MX" record indicating that it does not accept email. However, on your domain a receiving mail server is set by another MX record, making the "Null MX" conflicting.',
detail_mail_tls_starttls_exists_verdict_null_mx_without_a_aaaa: 'Your domain advertises a "Null MX" record indicating that it does not accept email. However, your domain does not have A/AAAA records, making the "Null MX" record unnecessary.',
detail_mail_tls_starttls_exists_verdict_other: 'At least one of your mail servers is unreachable.',
- detail_mail_tls_starttls_exists_verdict_other_2: 'No receiving mail servers (MX) are set on your domain that does not have A/AAAA records. This is fine if you do not want to receive email. ',
+ detail_mail_tls_starttls_exists_verdict_other_2: 'The SPF record on your domain indicates that your domain may be used for sending mail. However, your domain does not have a receiving mail server (MX), which could hinder deliverability of your sent mails because not having an MX may be seen by receivers as an indicator for spam. Therefore if you really want to send mail from this domain, configure an MX. However, if you do not want to send mail from this domain, configure an SPF record with the -all
term only and besides a "Null MX" record if your domain has A/AAAA records. Because of your configuration, the subtests in the STARTTLS and DANE category and the mail server specific subtests in the IPv6 and DNSSEC categories are not applicable.',
detail_mail_tls_version_exp: '
We check if your mail servers (MX) support secure TLS versions only.
A mail server may support more than one TLS version.
Note that quite some mail servers only support older TLS versions. If the sending and receiving mail server both do not support the same TLS version, they will usually fall back to unencrypted mail transport. Because of that it could be advisable to keep supporting TLS versions with a \'phase out\' status for a while. Make an informed decision based on log data on when to disable these \'phase out\' TLS versions.
See \'IT Security Guidelines for Transport Layer Security (TLS) v2.1\' from NCSC-NL, guideline B1-1 and table 1 (in English).
Version
[Note: this content label is currently not used. See #1046.]', detail_tech_data_http_securitytxt_invalid_charset: 'Error: Charset parameter in Content-Type header must be \'utf-8\' if present.', detail_tech_data_http_securitytxt_invalid_expiry: 'Error: Date and time in \'Expires\' field must be formatted according to ISO 8601 (line {line_no}).', - detail_tech_data_http_securitytxt_invalid_lang: 'Error: Value in \'Preferred-Languages\' field must match one or more language tags as defined in RFC 5646, separated by commas (line {line_no}).', + detail_tech_data_http_securitytxt_invalid_lang: 'Error: Value in \'Preferred-Languages\' field must match one or more language tags as defined in RFC 5646, separated by commas (line {line_no}).', detail_tech_data_http_securitytxt_invalid_line: 'Error: Line must contain a field name and value, unless the line is blank or contains a comment (line {line_no}).', detail_tech_data_http_securitytxt_invalid_media: 'Error: Media type in Content-Type header must be \'text/plain\'.', + detail_tech_data_http_securitytxt_invalid_uri_scheme: 'Error: The security.txt file access must use the HTTPS scheme.
[Note: this content label is currently not used. See #1046.]',
detail_tech_data_http_securitytxt_location: 'Error: security.txt was located on the top-level path (legacy place), but must be placed under the \'/.well-known/\' path.',
detail_tech_data_http_securitytxt_long_expiry: 'Recommendation: Date and time in \'Expires\' field should be less than a year into the future (line {line_no}).',
detail_tech_data_http_securitytxt_multi_expire: 'Error: \'Expires\' field must not appear more than once.',
@@ -342,7 +345,7 @@ const internet_nl_messages = {
detail_tech_data_http_securitytxt_retrieved_from: 'security.txt retrieved from {hostname}.',
detail_tech_data_http_securitytxt_signed_format_issue: 'Error: Signed security.txt must start with the header \'-----BEGIN PGP SIGNED MESSAGE-----\'.',
detail_tech_data_http_securitytxt_unknown_field: 'Notification: security.txt contains an unknown field. Either this is a custom field which may not be widely supported, or there is a typo in a standardised field name (line {line_no}).',
- detail_tech_data_http_securitytxt_utf8: 'Error: Content must be utf-8 encoded.',
+ detail_tech_data_http_securitytxt_utf8: 'Error: Content must encoded using UTF-8 in Net-Unicode form.',
detail_tech_data_insecure: 'insecure',
detail_tech_data_insufficient: 'insufficient',
detail_tech_data_no: 'no',
@@ -356,29 +359,29 @@ const internet_nl_messages = {
detail_tech_data_yes: 'yes',
detail_verdict_could_not_test: 'Test error. Please try again later.',
detail_verdict_not_tested: 'This subtest did not run, because either a parent test that this subtest depends on gave a negative result, or not enough information was available to run this subtest.',
- detail_web_appsecpriv_http_csp_exp: 'We check if your web server provides an HTTP header for Content-Security-Policy
(CSP). Furthermore we check for several secure CSP settings, although we do not exhaustively test the effectiveness of your CSP configuration.
CSP guards a website against content injection attacks including cross-site scripting (XSS). By using CSP to configure an \'allowlist\' with sources of approved content, you prevent browsers from loading malicious content of attackers.
We test for the rules below that are based on good practices for a secure CSP configuration.
default-src
directive should be defined and its value should be be either \'none\'
, or \'self\'
and/or one or more URLs of the domain itself (including its subdomain or superdomain). This is to have a restrictive default fallback policy for source types that are used in your website for which no specific policy is defined. Next to the mentioned values \'report-sample\'
could be there in case you want code samples to be sent together with the \'violation reports\'.base-uri
directive should be defined and its value should be either \'none\'
, or \'self\'
and/or one or more URLs of the domain itself (including its subdomain or superdomain). This restricts the baseURI
in order to block the injection of a manipulated <base>
element. This limits the ability of attackers to manipulate the locations of sources (e.g. scripts) that are loaded from relative URLs.frame-src
directive should be used (either by definition or by relying on the fallback to sequentially child-src
and default-src
) and its value should be either \'none\'
, or \'self\'
and/or one or more specific URLs. This prevents content from unauthorized locations to be framed or embedded in your website (with HTML elements such as <frame>
and <iframe>
).frame-ancestors
directive should be defined and its value should be either \'none\'
, or \'self\'
and/or one or more specific URLs. This prevents unauthorized websites from framing or embedding your website (with HTML elements <frame>
, <iframe>
, <object>
, <embed>
, or <applet>
).form-action
directive should be defined and its value should be either \'none\'
, or \'self\'
and/or one or more specific URLs. This restricts the URLs which can be used as the target of form submissions.unsafe-eval
, unsafe-inline
and unsafe-hashes
should not be used, because these enable XSS attacks. data:
scheme should not be used in the default-src
, script-src
and object-src
directives, because this enables XSS attacks.http://
scheme or a domain without a scheme should not be used, because this enables sources to be downloaded over an insecure connection. Use the https://
scheme instead.*
) for the full host part of a URL should not be used in any directive, because this allows for any external source. Furthermore do not use just https:
as this is equivalent to https://*
. Always specify the main domain as well (e.g. https://scripts.example.nl
or https://*.example.nl
). 127.0.0.1
should not be used in any directive, because it enables content injection attacks in a compromised system.Additional recommendations:
Only use domains in CSP directives as specific as possible, which is tested automatically to some extent in this subtest for CSP.
*.nl
) or SLD (*.gov.uk
), although we currently do not test for this. default-src
(for example example2.gov.nl
for example1.gov.nl
), although we currently do not test for this either.Ideally do not use inline scripts or styles. For cases where you cannot avoid using inline scripts or styles, do not use unsafe-inline
(as mentioned above) but preferably use CSP hashes or otherwise CSP nonces.
<meta>
element to serve your CSP policy. The latter is less secure and does not support all CSP directives (e.g. the required frame-ancestors
). Therfore we do not check for CSP that is offered via the HTML <meta>
element.Content-Security-Policy-Report-Only
to experiment with your CSP configuration by monitoring its effect without enforcing it.none
. Besides, note that if other sources are listed in a source list next to none
, then the attribute none
is ignored. Also see \'Web application guidelines from NCSC-NL\', guideline U/PW.03 (in Dutch).
Requirement level: Recommended',
+ detail_web_appsecpriv_http_csp_exp: 'We check if your web server provides an HTTP header for Content-Security-Policy
(CSP). Furthermore we check for several secure CSP settings, although we do not exhaustively test the effectiveness of your CSP configuration.
CSP guards a website against content injection attacks including cross-site scripting (XSS). By using CSP to configure an \'allowlist\' with sources of approved content, you prevent browsers from loading malicious content of attackers.
We test for the rules below that are based on good practices for a secure CSP configuration.
default-src
directive should be defined and its value should be be either \'none\'
, or \'self\'
and/or one or more URLs of the domain itself (including its subdomain or superdomain). This is to have a restrictive default fallback policy for source types that are used in your website for which no specific policy is defined. Next to the mentioned values \'report-sample\'
could be there in case you want code samples to be sent together with the \'violation reports\'.base-uri
directive should be defined and its value should be either \'none\'
, or \'self\'
and/or one or more URLs of the domain itself (including its subdomain or superdomain). This restricts the baseURI
in order to block the injection of a manipulated <base>
element. This limits the ability of attackers to manipulate the locations of sources (e.g. scripts) that are loaded from relative URLs.frame-src
directive should be used (either by definition or by relying on the fallback to sequentially child-src
and default-src
) and its value should be either \'none\'
, or \'self\'
and/or one or more specific URLs. This prevents content from unauthorized locations to be framed or embedded in your website (with HTML elements such as <frame>
and <iframe>
).frame-ancestors
directive should be defined and its value should be either \'none\'
, or \'self\'
and/or one or more specific URLs. This prevents unauthorized websites from framing or embedding your website (with HTML elements <frame>
, <iframe>
, <object>
, <embed>
, or <applet>
).form-action
directive should be defined and its value should be either \'none\'
, or \'self\'
and/or one or more specific URLs. This restricts the URLs which can be used as the target of form submissions.unsafe-eval
, unsafe-inline
and unsafe-hashes
should not be used, because these enable XSS attacks. data:
scheme should not be used in the default-src
, script-src
and object-src
directives, because this enables XSS attacks.http://
scheme or a domain without a scheme should not be used, because this enables sources to be downloaded over an insecure connection. Use the https://
scheme instead.*
) for the full host part of a URL should not be used in any directive, because this allows for any external source. Furthermore do not use just https:
as this is equivalent to https://*
. Always specify the main domain as well (e.g. https://scripts.example.nl
or https://*.example.nl
). 127.0.0.1
should not be used in any directive, because it enables content injection attacks in a compromised system.Additional recommendations:
Only use domains in CSP directives as specific as possible, which is tested automatically to some extent in this subtest for CSP.
*.nl
) or SLD (*.gov.uk
), although we currently do not test for this. default-src
(for example example2.gov.nl
for example1.gov.nl
), although we currently do not test for this either.Ideally do not use inline scripts or styles. For cases where you cannot avoid using inline scripts or styles, do not use unsafe-inline
(as mentioned above) but preferably use CSP hashes or otherwise CSP nonces.
<meta>
element to serve your CSP policy. The latter is less secure and does not support all CSP directives (e.g. the required frame-ancestors
). Therefore we do not check for CSP that is offered via the HTML <meta>
element.Content-Security-Policy-Report-Only
to experiment with your CSP configuration by monitoring its effect without enforcing it.none
. Besides, note that if other sources are listed in a source list next to none
, then the attribute none
is ignored.Note on IPv6/IPv4: for performance reasons all tests in the category \'Security options\' only run for the first available IPv6 and IPv4 address.
Also see \'Web application guidelines from NCSC-NL\', guideline U/PW.03 (in Dutch).
Requirement level: Recommended',
detail_web_appsecpriv_http_csp_label: 'Content-Security-Policy',
detail_web_appsecpriv_http_csp_tech_table: 'Web server IP address|Findings',
detail_web_appsecpriv_http_csp_verdict_bad: 'Your web server does not offer Content-Security-Policy (CSP), or does offer CSP with certain insecure settings. ',
detail_web_appsecpriv_http_csp_verdict_good: 'Your web server offers Content-Security-Policy (CSP) and does not use certain insecure CSP settings.',
- detail_web_appsecpriv_http_referrer_policy_exp: 'We check if your web server provides an HTTP header for Referrer-Policy
with a sufficiently secure and privacy-protecting policy value. With this policy your webserver instructs browsers if, what and when referrer data should be sent to the website the user is navigating to from your website. This referrer data is sent in the Referer
header by the browser to the website the user is navigating to. This navigation does not necessarily have to be cross-domain.
The data in the Referer
header is usually used for analytics and logging. However there can be privacy and security risks. The data could be used e.g. for user tracking and the data could leak to third parties who eavesdrop the connection. The HTTP header for Referrer-Policy
allows you to mitigate these risks by controlling and even minimizing the sending of referrer data.
We suggest to make an informed decision, with privacy and security risks in mind, on using one of the policy values from the first two categories below.
1. Good
no-referrer
same-origin
With these policy values no sensitive referrer data is sent to third parties.
2. Warning
strict-origin
strict-origin-when-cross-origin
(browser\'s default value; see also under additional note 2)With these policy values basic referrer data, which may be sensitive, is sent to third parties only via secure connections (HTTPS). Therefore these values should only to be used where necessary and permitted by law.
3. Bad
no-referrer-when-downgrade
origin-when-cross-origin
origin
unsafe-url
With these policy values any or basic referrer data, which may be sensitive, is sent to third parties possibly via insecure connections (HTTP). Therefore these values must not be used.
Additional notes:
strict-origin-when-cross-origin
is the default policy value when no Referrer-Policy
is published as prescribed in the current "Editor\'s Draft" of the Referrer-Policy
standard and this default is used by all latest major browsers. Note that some users may still have a different default value configured in their browser.Referrer-Policy
header as a mechanism for serving your referrer policy. We do not recommend to use the HTML <meta>
element or the HTML referrerpolicy
content attribute to publish your referrer policy, especially because the sections that describe these methods in the standard are marked as "not normative". Therefore we do not check for a referrer policy that is offered via the latter two methods.Referrer-Policy
headers, and a Referrer-Policy
header may contain multiple values. Unknown values will be ignored by the browser and only the last known value will be used. This makes it possible to use future standardised policy values that are not supported by all browsers yet. However, currently all latest major browsers support the above mentioned policy values under "Good" and "Warning". Requirement level: Recommended',
+ detail_web_appsecpriv_http_referrer_policy_exp: 'We check if your web server provides an HTTP header for Referrer-Policy
with a sufficiently secure and privacy-protecting policy value. With this policy your web server instructs browsers if, what and when referrer data should be sent to the website the user is navigating to from your website. This referrer data is sent in the Referer
header by the browser to the website the user is navigating to. This navigation does not necessarily have to be cross-domain.
The data in the Referer
header is usually used for analytics and logging. However there can be privacy and security risks. The data could be used e.g. for user tracking and the data could leak to third parties who eavesdrop the connection. The HTTP header for Referrer-Policy
allows you to mitigate these risks by controlling and even minimizing the sending of referrer data.
We suggest to make an informed decision, with privacy and security risks in mind, on using one of the policy values from the first two categories below.
1. Good
no-referrer
same-origin
With these policy values no sensitive referrer data is sent to third parties.
2. Warning
strict-origin
strict-origin-when-cross-origin
(browser\'s default value; see also under additional note 2)With these policy values basic referrer data, which may be sensitive, is sent to third parties only via secure connections (HTTPS). Therefore these values should only to be used where necessary and permitted by law.
3. Bad
no-referrer-when-downgrade
origin-when-cross-origin
origin
unsafe-url
With these policy values any or basic referrer data, which may be sensitive, is sent to third parties possibly via insecure connections (HTTP). Therefore these values must not be used.
Additional notes:
strict-origin-when-cross-origin
is the default policy value when no Referrer-Policy
is published as prescribed in the current "Editor\'s Draft" of the Referrer-Policy
standard and this default is used by all latest major browsers. Note that some users may still have a different default value configured in their browser.Referrer-Policy
header as a mechanism for serving your referrer policy. We do not recommend to use the HTML <meta>
element or the HTML referrerpolicy
content attribute to publish your referrer policy, especially because the sections that describe these methods in the standard are marked as "not normative". Therefore we do not check for a referrer policy that is offered via the latter two methods.Referrer-Policy
headers, and a Referrer-Policy
header may contain multiple values. Unknown values will be ignored by the browser and only the last known value will be used. This makes it possible to use future standardised policy values that are not supported by all browsers yet. However, currently all latest major browsers support the above mentioned policy values under "Good" and "Warning".Note on IPv6/IPv4: for performance reasons all tests in the category \'Security options\' only run for the first available IPv6 and IPv4 address.
Requirement level: Recommended',
detail_web_appsecpriv_http_referrer_policy_label: 'Referrer-Policy',
detail_web_appsecpriv_http_referrer_policy_tech_table: 'Web server IP address|Findings',
detail_web_appsecpriv_http_referrer_policy_verdict_bad: 'Your web server offers a Referrer-Policy with a policy value that is not sufficiently secure and privacy-protecting.',
detail_web_appsecpriv_http_referrer_policy_verdict_good: 'Your web server offers a Referrer-Policy with a policy value that is sufficiently secure and privacy-protecting.',
detail_web_appsecpriv_http_referrer_policy_verdict_recommendations: 'Your web server either does not offer a Referrer-Policy and thus relies on the default browser policy, or your web server offers a Referrer-Policy with a policy value that should be used with caution because of its potential impact on security and privacy.',
- detail_web_appsecpriv_http_securitytxt_exp: 'We check if your web server provides a security.txt
file in the right location, whether it could be retrieved, and whether its content is syntactically valid.
security.txt
is a text file with contact information that you place on your web server. Security researchers can use this information to directly contact the right department or person within your organization about vulnerabilities that they found in your website or IT systems. This can speed up the fixing of found vulnerabilities, reducing the opportunity for malicious parties to exploit.
The syntax of the file is intended to be machine- and human-readable. The contact information can be an email address, a phone number, and/or a web page (e.g. a web form). Note that published contact information is public and can also be abused, for example, to send spam to a published e-mail address.
Besides contact infomation, the security.txt
file must also contain an expiry date. To avoid staleness it is recommended that the date be less than a year into the future. It is optional to also include other relevant information for security researchers, like a link to your policy on dealing with security vulnerabilities reports (usually called a Coordinated Vulnerability Disclosure policy).
It is recommended to PGP sign the security.txt
file while including the web URI on which the file is located in a Canonical
field. We check if the security.txt
file is signed. However, we do not validate the signature because, unfortunately, there is no standardised place to retrieve a public PGP key (which is required for signature validation).
If one or more Canonical
fields are present, the web URI of the security.txt
file must be listed in a Canonical
field. When redirecting to a security.txt
file at least the last URI of the redirect chain must be listed.
The file must be published under the /.well-known/
path. Note that placing it under the top-level path has been deprecated. Every web (sub) domain should have its own security.txt
file. An example file can be found on https://example.nl/.well-known/security.txt
.
Redirecting to a security.txt
on another domain name is allowed. Especially in the case of a large domain name portfolio, it is advisable from a maintenance perspective to redirect the domain names to a central security.txt
.
Note that security.txt
files are normally just a few kilobytes in size. We therefore read and evaluate at maximum the first 100 kB of a found security.txt
file.
Requirement level: Recommended',
+ detail_web_appsecpriv_http_securitytxt_exp: 'We check if your web server provides a security.txt
file in the right location, whether it could be retrieved, and whether its content is syntactically valid.
security.txt
is a text file with contact information that you place on your web server. Security researchers can use this information to directly contact the right department or person within your organization about vulnerabilities that they found in your website or IT systems. This can speed up the fixing of found vulnerabilities, reducing the opportunity for malicious parties to exploit.
The syntax of the file is intended to be machine- and human-readable. The contact information can be an email address, a phone number, and/or a web page (e.g. a web form). Note that published contact information is public and can also be abused, for example, to send spam to a published e-mail address.
Besides contact information, the security.txt
file must also contain an expiry date. To avoid staleness it is recommended that the date be less than a year into the future. It is optional to also include other relevant information for security researchers, like a link to your policy on dealing with security vulnerabilities reports (usually called a Coordinated Vulnerability Disclosure policy).
It is recommended to PGP sign the security.txt
file while including the web URI on which the file is located in a Canonical
field. We check if the security.txt
file is signed. However, we do not validate the signature because, unfortunately, there is no standardised place to retrieve a public PGP key (which is required for signature validation).
If one or more Canonical
fields are present, the web URI of the security.txt
file must be listed in a Canonical
field. When redirecting to a security.txt
file at least the last URI of the redirect chain must be listed.
The file must be published under the /.well-known/
path. Note that placing it under the top-level path has been deprecated. Every web (sub) domain should have its own security.txt
file. An example file can be found on https://example.nl/.well-known/security.txt
.
Redirecting to a security.txt
on another domain name is allowed. Especially in the case of a large domain name portfolio, it is advisable from a maintenance perspective to redirect the domain names to a central security.txt
.
Note that security.txt
files are normally just a few kilobytes in size. We therefore read and evaluate at maximum the first 100 kB of a found security.txt
file.
Note on IPv6/IPv4: for performance reasons all tests in the category \'Security options\' only run for the first available IPv6 and IPv4 address.
Requirement level: Recommended',
detail_web_appsecpriv_http_securitytxt_label: 'security.txt',
detail_web_appsecpriv_http_securitytxt_tech_table: 'Web server IP address|Findings',
detail_web_appsecpriv_http_securitytxt_verdict_bad: 'Your web server does not offer a security.txt file in the right location, it could not be retrieved, or its content is not syntactically valid.',
detail_web_appsecpriv_http_securitytxt_verdict_good: 'Your web server offers a security.txt file in the right location and its content is syntactically valid.',
detail_web_appsecpriv_http_securitytxt_verdict_recommendations: 'Your web server offers a security.txt file in the right location and its content is syntactically valid. However, there are one or more recommendations for improvement.',
- detail_web_appsecpriv_http_x_content_type_exp: 'We check if your web server provides an HTTP header for X-Content-Type-Options
. With this HTTP header you let web browsers know that they must not do \'MIME type sniffing\' and always follow the Content-Type
as declared by your web server. The only valid value for this HTTP header is nosniff
. When enabled, a browser will block requests for style
and script
when they do not have a corresponding Content-Type
(i.e. text/css
or a \'JavaScript MIME type\' like application/javascript
).
\'MIME type sniffing\' is a technique where the browser scans the content of a file to detect the format of a file regardless of the declared Content-Type
by the web server. This technique is vulnerable to the so-called \'MIME confusion attack\' in which the attacker manipulates the content of a file in a way that it is treated by the browser as a different Content-Type
, like an executable.
Requirement level: Recommended ',
+ detail_web_appsecpriv_http_x_content_type_exp: 'We check if your web server provides an HTTP header for X-Content-Type-Options
. With this HTTP header you let web browsers know that they must not do \'MIME type sniffing\' and always follow the Content-Type
as declared by your web server. The only valid value for this HTTP header is nosniff
. When enabled, a browser will block requests for style
and script
when they do not have a corresponding Content-Type
(i.e. text/css
or a \'JavaScript MIME type\' like application/javascript
).
\'MIME type sniffing\' is a technique where the browser scans the content of a file to detect the format of a file regardless of the declared Content-Type
by the web server. This technique is vulnerable to the so-called \'MIME confusion attack\' in which the attacker manipulates the content of a file in a way that it is treated by the browser as a different Content-Type
, like an executable.
Note on IPv6/IPv4: for performance reasons all tests in the category \'Security options\' only run for the first available IPv6 and IPv4 address.
Requirement level: Recommended ',
detail_web_appsecpriv_http_x_content_type_label: 'X-Content-Type-Options',
detail_web_appsecpriv_http_x_content_type_tech_table: 'Web server IP address|X-Content-Type-Options value',
detail_web_appsecpriv_http_x_content_type_verdict_bad: 'Your web server does not offer X-Content-Type-Options.',
detail_web_appsecpriv_http_x_content_type_verdict_good: 'Your web server offers X-Content-Type-Options.',
- detail_web_appsecpriv_http_x_frame_exp: 'We check if your web server provides an HTTP header for X-Frame-Options
that has a sufficiently secure policy. With this HTTP header you let web browsers know whether you want to allow your website to be framed or not. Prevention of framing defends visitors against attacks like clickjacking. We consider the following values to be sufficiently secure:
DENY
(framing not allowed); orSAMEORIGIN
(only framing by your own website allowed).Although the value ALLOW-FROM
(only allow specific websites to frame your website) is part of the X-Frame-Options
specification (RFC 7034), it is not supported by most modern web browsers. Therefore we do not consider this value as sufficiently secure.
Note that Content-Security-Policy
(CSP) offers similar protection through frame-ancestors
and besides much more for visitors with modern web browsers. However X-Frame-Options
could still protect visitors of older web browsers that do not support CSP. Furthermore X-Frame-Options
could offer valuable protection for all visitors when CSP is not (properly) configured for the website concerned.
Also see \'Web application guidelines from NCSC-NL\', guideline U/PW.03 (in Dutch).
Requirement level: Optional ',
+ detail_web_appsecpriv_http_x_frame_exp: 'We check if your web server provides an HTTP header for X-Frame-Options
that has a sufficiently secure policy. With this HTTP header you let web browsers know whether you want to allow your website to be framed or not. Prevention of framing defends visitors against attacks like clickjacking. We consider the following values to be sufficiently secure:
DENY
(framing not allowed); orSAMEORIGIN
(only framing by your own website allowed).Although the value ALLOW-FROM
(only allow specific websites to frame your website) is part of the X-Frame-Options
specification (RFC 7034), it is not supported by most modern web browsers. Therefore we do not consider this value as sufficiently secure.
Note that Content-Security-Policy
(CSP) offers similar protection through frame-ancestors
and besides much more for visitors with modern web browsers. However X-Frame-Options
could still protect visitors of older web browsers that do not support CSP. Furthermore X-Frame-Options
could offer valuable protection for all visitors when CSP is not (properly) configured for the website concerned.
Also see \'Web application guidelines from NCSC-NL\', guideline U/PW.03 (in Dutch).
Note on IPv6/IPv4: for performance reasons all tests in the category \'Security options\' only run for the first available IPv6 and IPv4 address.
Requirement level: Optional ', detail_web_appsecpriv_http_x_frame_label: 'X-Frame-Options', detail_web_appsecpriv_http_x_frame_tech_table: 'Web server IP address|X-Frame-Options value', detail_web_appsecpriv_http_x_frame_verdict_bad: 'Your web server does not offer securely configured X-Frame-Options.', @@ -406,29 +409,29 @@ const internet_nl_messages = { detail_web_ipv6_web_aaaa_tech_table: 'Web server|IPv6 address|IPv4 address', detail_web_ipv6_web_aaaa_verdict_bad: 'None of your web servers has an IPv6 address.', detail_web_ipv6_web_aaaa_verdict_good: 'At least one of your web servers has an IPv6 address.', - detail_web_ipv6_web_ipv46_exp: 'We compare the response and content received from your web server over IPv6 with that received over IPv4.
We check:
Note that in case there are multiple IPv6 and IPv4 addresses, we pick one IPv6 address and one IPv4 address to perform the subtest. If only an IPv6 address and no IPv4 address is available, the subtest is not applicable because no comparison can be made.', + detail_web_ipv6_web_ipv46_exp: '
We compare the available ports and offered headers and content of your web server via IPv6 with those via IPv4.
We check if:
Additional notes:
Your hoster (or its network provider) announces through the Border Gateway Protocol (BGP) for which of its IP address blocks it accepts incoming Internet traffic. Other network providers use these route announcements to determine via which route to send traffic for your server\'s IP addresses.
However, a route announcement can be faked. In fact, another network provider may be able to connect the IP address block of your IP address to its network and thus potentially receive Internet traffic that is actually intended for your network provider. The cause may be accidental or malicious. In either case, this can result in your server becoming unreachable or in Internet traffic to your server being intercepted.
Resource Public Key Infrastructure (RPKI) significantly improves protection against this. With RPKI, the rightful holder of a block of IP addresses can publish a digitally signed statement with route authorization (Route Origin Authorisation; ROA for short). Another network provider that wants to send Internet traffic to a particular IP address, can use the corresponding statement to filter out Invalid
routes. In this way, the network provider prevents Internet traffic from its network from being sent to unauthorized provider networks.
Requirement level: Recommended', + detail_web_rpki_exists_exp: 'We check if an RPKI Route Origin Authorization (ROA) has been published for all IP addresses of your web server.
Your hoster (or its network provider) announces through the Border Gateway Protocol (BGP) for which of its IP address blocks it accepts incoming Internet traffic. Other network providers use these route announcements to determine via which route to send traffic for your server\'s IP addresses.
However, a route announcement can be faked. In fact, another network provider may be able to connect the IP address block of your IP address to its network and thus potentially receive Internet traffic that is actually intended for your network provider. The cause may be accidental or malicious. In either case, this can result in your server becoming unreachable or in Internet traffic to your server being intercepted.
Resource Public Key Infrastructure (RPKI) significantly improves protection against this. With RPKI, the rightful holder of a block of IP addresses can publish a digitally signed statement with route authorization (Route Origin Authorisation; ROA for short). Another network provider that wants to send Internet traffic to a particular IP address, can use the corresponding statement to filter out Invalid
routes. In this way, the network provider prevents Internet traffic from its network from being sent to unauthorized provider networks.',
detail_web_rpki_exists_label: 'Route Origin Authorisation existence',
- detail_web_rpki_exists_tech_table: 'Webserver|IP address|RPKI Route Origin Authorization',
+ detail_web_rpki_exists_tech_table: 'Web server|IP address|RPKI Route Origin Authorization',
detail_web_rpki_exists_verdict_bad: 'For at least one of the IP addresses of your web server no RPKI Route Origin Authorisation (ROA) is published.',
detail_web_rpki_exists_verdict_good: 'For all IP addresses of your web server an RPKI Route Origin Authorisation (ROA) is published.',
detail_web_rpki_exists_verdict_no_addresses: 'Your domain does not contain any web server IP addresses. Therefore, this subtest could not be performed.',
- detail_web_rpki_valid_exp: 'We check if the validation status for all IP addresses of your web server is Valid
. If there are multiple overlapping route announcements for the IP address, we test that they are all Valid
.
Your hoster (or its network provider) announces via the Border Gateway Protocol (BGP) for which of its IP address blocks it accepts incoming Internet traffic. It does this by associating (parts of) its IP address blocks (Route Prefix) with the unique number of its provider network (Route Origin ASN), and then distributing this routing information. Other network providers use these route announcements to determine via which route to send traffic for the IP addresses.
Additionally, for each route announcement, your hoster (or its network provider) should publish a digitally signed statement with route authorisation (Route Origin Authorisation; abbreviated: ROA) statement using Resource Public Key Infrastructure (RPKI).
Another network provider that is asked to send Internet traffic to your server\'s IP address can cryptographically verify the associated statement. The verified content (Validated ROA Payload; abbreviated: VRP) includes which provider networks (VRP ASN) are authorised to receive Internet traffic for each recorded IP address block (VRP Prefix).
The network provider can then use this content to filter BGP routes. For example, he can reject any Invalid
routes, to prevent Internet traffic from its network is sent to unauthorised provider networks.
Checking route announcements against route authorisations (RPKI Origin Validation; abbreviated: ROV) has the following three possible outcomes.
Valid
: The route announcement of the considered IP address is matched by at least one published route authorisation. A route authorisation is also matched for more specific route announcements (i.e., for a part of the IP address block contained in the route authorisation), unless they are more specific than the limit specified in the route authorisation (via the maxLength
attribute).
Invalid
: The route announcement of the considered IP address is covered by a route authorisation, but it does not match. There are two possible causes:
the IP address block (Route Prefix) is announced from a provider network (Route Origin ASN) that is not authorised in the route authorisation (result in the table below: "invalid (as)");
the IP address block (Route Prefix) that is announced is smaller than is allowed in the route authorisation, i.e. exceeding maxLength
value (result in table below: "invalid (length)").
NotFound
: No statement with route-authorisation has been found that covers the route announcement of the considered IP address. This makes the routing of Internet traffic to your server less secure. Please contact your hoster about this. He can ask his network provider that owns your server\'s IP addresses to publish route authorisations.
What to do if the test result shows the status Invalid?
The status Invalid
indicates an unintentional or malicious route configuration error, that can be caused by your hoster or its network provider (internal error) or by a third party (external error). In either case, it can lead to the unreachability of your server or the interception of Internet traffic to your server. Contact your hoster as soon as possible. In the case of an internal error, your hoster should ask his network provider that owns your server\'s IP addresses to fix the route configuration error.
Requirement level: Recommended',
+ detail_web_rpki_valid_exp: 'We check if the validation status for all IP addresses of your web server is Valid
. If there are multiple overlapping route announcements for the IP address, we test that they are all Valid
.
Your hoster (or its network provider) announces via the Border Gateway Protocol (BGP) for which of its IP address blocks it accepts incoming Internet traffic. It does this by associating (parts of) its IP address blocks (Route Prefix) with the unique number of its provider network (Route Origin ASN), and then distributing this routing information. Other network providers use these route announcements to determine via which route to send traffic for the IP addresses.
Additionally, for each route announcement, your hoster (or its network provider) should publish a digitally signed statement with route authorisation (Route Origin Authorisation; abbreviated: ROA) statement using Resource Public Key Infrastructure (RPKI).
Another network provider that is asked to send Internet traffic to your server\'s IP address can cryptographically verify the associated statement. The verified content (Validated ROA Payload; abbreviated: VRP) includes which provider networks (VRP ASN) are authorised to receive Internet traffic for each recorded IP address block (VRP Prefix).
The network provider can then use this content to filter BGP routes. For example, he can reject any Invalid
routes, to prevent Internet traffic from its network is sent to unauthorised provider networks.
Checking route announcements against route authorisations (RPKI Origin Validation; abbreviated: ROV) has the following three possible outcomes.
1․ Valid
: The route announcement of the considered IP address is matched by at least one published route authorisation. A route authorisation is also matched for more specific route announcements (i.e., for a part of the IP address block contained in the route authorisation), unless they are more specific than the limit specified in the route authorisation (via the maxLength
attribute).
2․ Invalid
: The route announcement of the considered IP address is covered by a route authorisation, but it does not match. There are two possible causes:
maxLength
value (result in table below: "invalid (length)").3․ NotFound
: No statement with route-authorisation has been found that covers the route announcement of the considered IP address. This makes the routing of Internet traffic to your server less secure. Please contact your hoster about this. He can ask his network provider that owns your server\'s IP addresses to publish route authorisations.
What to do if the test result shows the status Invalid?
The status Invalid
indicates an unintentional or malicious route configuration error, that can be caused by your hoster or its network provider (internal error) or by a third party (external error). In either case, it increases the risk for unreachability of your server or for interception of Internet traffic to your server. Contact your hoster as soon as possible. In the case of an internal error, your hoster should ask its network provider that owns your server\'s IP addresses to fix the route configuration error. ',
detail_web_rpki_valid_label: 'Route announcement validity',
detail_web_rpki_valid_tech_table: 'Web server|BGP Route Prefix|BGP Route Origin ASN|RPKI Origin Validation state',
detail_web_rpki_valid_verdict_bad: 'At least one IP address of your web server has a NotFound
validation state. There is no RPKI Route Origin Authorization (ROA) published for the route announcement of each of the affected IP addresses.',
detail_web_rpki_valid_verdict_good: 'All IP addresses of your web server have a Valid
validation state. The route announcement of these IP addresses is matched by the published RPKI Route Origin Authorisation (ROA).',
- detail_web_rpki_valid_verdict_invalid: 'At least one IP address of your web server has an Invalid
validation state. The route announcement of the affected IP adresses is not matched by the published RPKI Route Origin Authorisation (ROA). This indicates an unintentional or malicious route configuration error, that can be caused by your web hoster (internal error) or by a third party (external error). In either case, it can lead to the unreachability of your server or the interception of Internet traffic to your server. Contact your web hoster as soon as possible. In the case of an internal error, your web hoster should ask its network provider that owns your server\'s IP addresses to fix the route configuration error.',
+ detail_web_rpki_valid_verdict_invalid: 'At least one IP address of your web server has an Invalid
validation state. The route announcement of the affected IP addresses is not matched by the published RPKI Route Origin Authorisation (ROA). This indicates an unintentional or malicious route configuration error, that can be caused by your web hoster (internal error) or by a third party (external error). In either case, it increases the risk for unreachability of your server or for interception of Internet traffic to your server. Contact your web hoster as soon as possible. In the case of an internal error, your web hoster should ask its network provider that owns your server\'s IP addresses to fix the route configuration error.',
detail_web_rpki_valid_verdict_not_routed: 'This subtest did not run, because no route announcement was available for any of the IP addresses.',
detail_web_tls_cert_hostmatch_exp: 'We check if the domain name of your website matches the domain name on the certificate.
It could be useful to include more than one domain (e.g. the domain with and without www) as Subject Alternative Name on the certificate.
See \'IT Security Guidelines for Transport Layer Security (TLS) v2.1\' from NCSC-NL, guideline B3-1 (in English).', detail_web_tls_cert_hostmatch_label: 'Domain name on certificate', @@ -486,19 +489,19 @@ const internet_nl_messages = { detail_web_tls_dane_valid_tech_table: 'Web server IP address|DANE TLSA record valid', detail_web_tls_dane_valid_verdict_bad: 'The DANE fingerprint on your domain is not valid for your web certificate. Either someone manipulated the response from your name server, or your domain has a serious DANE configuration error. The latter makes your website unreachable for any user who check DANE fingerprints. You should contact your name server operator and/or your hosting provider as soon as possible.', detail_web_tls_dane_valid_verdict_good: 'The DANE fingerprint on your domain is valid for your web certificate.', - detail_web_tls_fs_params_exp: 'We check if the public parameters used in Diffie-Hellman key exchange by your web server are secure.
ECDHE: The security of elliptic curve Diffie-Hellman (ECDHE) ephemeral key exchange depends on the used elliptic curve. We check if the bit-length of the used elliptic curves is a least 224 bits. Currently we are not able to check the elliptic curve name.
DHE: The security of Diffie-Hellman Ephemeral (DHE) key exchange depends on the lengths of the public and secret keys used within the chosen finite field group. We test if your DHE public key material uses one of the predefined finite field groups that are specified in RFC 7919. Self-generated groups are \'Insufficient\'.
The larger key sizes required for the use of DHE come with a performance penalty. Carefully evaluate and use ECDHE instead of DHE if you can.
RSA as an alternative: Besides ECDHE and DHE, RSA can be used for key exchange. However, it is at risk of becoming insufficiently secure (current status \'phase out\'). The RSA public parameters are tested in the subtest \'Public key of certificate\'. Note that RSA is considered as \'good\' for certificate verification.
See \'IT Security Guidelines for Transport Layer Security (TLS) v2.1\' from NCSC-NL, guideline B5-1 and table 9 for ECDHE, and guideline B6-1 and table 10 for DHE (in English).
Elliptic curve for ECDHE
secp384r1
, secp256r1
, x448
, and x25519
secp224r1
Finite field group for DHE
Sufficient:
64852d6890ff9e62eecd1ee89c72af9af244dfef5b853bcedea3dfd7aade22b3
c410cc9c4fd85d2c109f7ebe5930ca5304a52927c0ebcb1a11c5cf6b2386bbab
Phase out:
9ba6429597aeed2d8617a7705b56e96d044f64b07971659382e426675105654b
Insufficient: Other groups
Note: the above names are based on the IANA naming conventions. Sometimes alternative names are used to refer to the same curves, like prime256v1
(ANSI) and NIST P-256
for secp256r1
.',
+ detail_web_tls_fs_params_exp: 'We check if the public parameters used in Diffie-Hellman key exchange by your web server are secure.
ECDHE: The security of elliptic curve Diffie-Hellman (ECDHE) ephemeral key exchange depends on the used elliptic curve. We check if the bit-length of the used elliptic curves is a least 224 bits. Currently we are not able to check the elliptic curve name.
DHE: The security of Diffie-Hellman Ephemeral (DHE) key exchange depends on the lengths of the public and secret keys used within the chosen finite field group. We test if your DHE public key material uses one of the predefined finite field groups that are specified in RFC 7919. Self-generated groups are \'Insufficient\'.
The larger key sizes required for the use of DHE come with a performance penalty. Carefully evaluate and use ECDHE instead of DHE if you can.
RSA as an alternative: Besides ECDHE and DHE, RSA can be used for key exchange. However, it is at risk of becoming insufficiently secure (current status \'phase out\'). The RSA public parameters are tested in the subtest \'Public key of certificate\'. Note that RSA is considered as \'good\' for certificate verification.
See \'IT Security Guidelines for Transport Layer Security (TLS) v2.1\' from NCSC-NL, guideline B5-1 and table 9 for ECDHE, and guideline B6-1 and table 10 for DHE (in English).
Elliptic curve for ECDHE
secp384r1
, secp256r1
, x448
, and x25519
secp224r1
Finite field group for DHE
Sufficient:
64852d6890ff9e62eecd1ee89c72af9af244dfef5b853bcedea3dfd7aade22b3
c410cc9c4fd85d2c109f7ebe5930ca5304a52927c0ebcb1a11c5cf6b2386bbab
Phase out:
Insufficient: Other groups
Note: the above names are based on the IANA naming conventions. Sometimes alternative names are used to refer to the same curves, like prime256v1
(ANSI) and NIST P-256
for secp256r1
.',
detail_web_tls_fs_params_label: 'Key exchange parameters',
detail_web_tls_fs_params_tech_table: 'Web server IP address|Affected parameters|Status',
detail_web_tls_fs_params_verdict_bad: 'Your web server supports insufficiently secure parameters for Diffie-Hellman key exchange.',
detail_web_tls_fs_params_verdict_good: 'Your web server supports secure parameters for Diffie-Hellman key exchange.',
- detail_web_tls_fs_params_verdict_na: 'This subtest is not applicable as your webserver does not support Diffie-Hellman key exchange. Note that RSA is an alternative for key exchange, but has the phase out status.',
+ detail_web_tls_fs_params_verdict_na: 'This subtest is not applicable as your web server does not support Diffie-Hellman key exchange. Note that RSA is an alternative for key exchange, but has the phase out status.',
detail_web_tls_fs_params_verdict_phase_out: 'Your web server supports parameters for Diffie-Hellman key exchange that have a phase out status, because they are known to be fragile and are at risk of of becoming insufficiently secure.',
- detail_web_tls_http_compression_exp: '
We test if your web server supports HTTP compression.
HTTP compression makes the secure connection with your webserver vulnerable for the BREACH attack. However HTTP compression is commonly used to make more efficient use of available bandwidth. Consider the trade-offs involved with HTTP compression. If you choose to use HTTP compression, verify if it is possible to mitigate related attacks at the application level. An example of such a measure is limiting the extent to which an attacker can influence the response of a server.
This subtest checks if the web server on root directory level supports HTTP compression. However it does not check additional website sources like images and scripts.
See \'IT Security Guidelines for Transport Layer Security (TLS) v2.1\' from NCSC-NL, guideline B7-1 and table 11.
Requirement level: Optional
Compression option
We test if your web server supports HTTP compression.
HTTP compression makes the secure connection with your web server vulnerable for the BREACH attack. However HTTP compression is commonly used to make more efficient use of available bandwidth. Consider the trade-offs involved with HTTP compression. If you choose to use HTTP compression, verify if it is possible to mitigate related attacks at the application level. An example of such a measure is limiting the extent to which an attacker can influence the response of a server.
This subtest checks if the web server on root directory level supports HTTP compression. However it does not check additional website sources like images and scripts.
See \'IT Security Guidelines for Transport Layer Security (TLS) v2.1\' from NCSC-NL, guideline B7-1 and table 11.
Requirement level: Optional
Compression option
If so, we also check in the below subtests whether HTTPS is configured sufficiently secure in conformance with the \'IT Security Guidelines for Transport Layer Security (TLS) v2.1\' from NCSC-NL.
HTTPS guarantees the confidentiality and integrity of the exchanged information. Because it is situation depended how (privacy) sensitive and valuable information is, a secure HTTPS configuration is important for every website. Even trivial, public information could be extremely sensitive and valuable for a user. Note: for performance reasons the tests in the HTTPS test section only run for the first available IPv6 and IPv4 address.', + detail_web_tls_https_exists_exp: 'We check if your website is reachable on HTTPS.
If so, we also check in the below subtests whether HTTPS is configured sufficiently secure in conformance with the \'IT Security Guidelines for Transport Layer Security (TLS) v2.1\' from NCSC-NL.
HTTPS guarantees the confidentiality and integrity of the exchanged information. Because it is situation depended how (privacy) sensitive and valuable information is, a secure HTTPS configuration is important for every website. Even trivial, public information could be extremely sensitive and valuable for a user.
Note on IPv6/IPv4: for performance reasons all tests in the category \'Secure connection (HTTPS)\' only run for the first available IPv6 and IPv4 address.',
detail_web_tls_https_exists_label: 'HTTPS available',
detail_web_tls_https_exists_tech_table: 'Web server IP address|HTTPS existent',
detail_web_tls_https_exists_verdict_bad: 'Your website does not offer HTTPS.',
@@ -521,7 +524,7 @@ const internet_nl_messages = {
detail_web_tls_kex_hash_func_label: 'Hash function for key exchange',
detail_web_tls_kex_hash_func_tech_table: 'Web server IP address|SHA2 support for signatures',
detail_web_tls_kex_hash_func_verdict_good: 'Your web server supports a secure hash function for key exchange.',
- detail_web_tls_kex_hash_func_verdict_other: 'We were unable to determine the hash function used by your webserver. This could be because the cipher combination used has no signature for certificate verification (e.g it uses RSA key exchange or is anonymous i.e. anon
).',
+ detail_web_tls_kex_hash_func_verdict_other: 'We were unable to determine the hash function used by your web server. This could be because the cipher combination used has no signature for certificate verification (e.g. it uses RSA key exchange or is anonymous i.e. anon
).',
detail_web_tls_kex_hash_func_verdict_phase_out: 'Your web server does not support a secure hash function for key exchange. You should phase out this setting deliberately, because it is at risk of becoming insufficiently secure in the future.',
detail_web_tls_ocsp_stapling_exp: '
We check if your web server supports the TLS Certificate Status extension also known as OCSP stapling.
The web browser can verify the validity of the certificate presented by the web server by contacting the certificate authority using the OCSP protocol. OCSP provides a certificate authority with information on browsers communicating to the web server: this may be a privacy risk. A web server can also provide OCSP responses to web browsers itself through OCSP stapling. This solves this privacy risk, does not require connectivity between web browser and certificate authority, and is faster.
When connecting to your web server we use the TLS Certificate Status extension to request OCSP data be included in the server response. If your web server includes OCSP data in the response we then verify that the OCSP data is valid i.e. correctly signed by a known certificate authority. Note: we do not use the OCSP data to evaluate the validity of the certificate.
See \'IT Security Guidelines for Transport Layer Security (TLS) v2.1\' from NCSC-NL, table 15 (in English).
Requirement level: Optional
OCSP stapling
This is consistent with the "Technical requirements for the registration and use of .nl domain names" d.d. 13 November 2017 by SIDN (.nl TLD registry) that require each .nl domain to have at least two name servers.
\'IPv4-mapped IPv6 addresses\' (RFC 4291, beginning with ::ffff:) will fail in this test, as they do not provide IPv6 connectivity.', detail_web_mail_ipv6_ns_aaaa_label: 'IPv6 addresses for name servers', detail_web_mail_ipv6_ns_aaaa_tech_table: 'Name server|IPv6 address|IPv4 address', @@ -562,29 +565,31 @@ const internet_nl_messages = { detail_web_mail_ipv6_ns_reach_tech_table: 'Name server|Unreachable IPv6 address', detail_web_mail_ipv6_ns_reach_verdict_bad: 'Not all name servers that have an IPv6 address are reachable over IPv6.', detail_web_mail_ipv6_ns_reach_verdict_good: 'All name servers that have an IPv6 address are reachable over IPv6.', - detail_web_mail_rpki_ns_exists_exp: 'We check if an RPKI Route Origin Authorization (ROA) has been published for all IP addresses of the name servers of your domain.
Your hoster (or its network provider) announces through the Border Gateway Protocol (BGP) for which of its IP address blocks it accepts incoming Internet traffic. Other network providers use these route announcements to determine via which route to send traffic for your server\'s IP addresses.
However, a route announcement can be faked. In fact, another network provider may be able to connect the IP address block of your IP address to its network and thus potentially receive Internet traffic that is actually intended for your network provider. The cause may be accidental or malicious. In either case, this can result in your server becoming unreachable or in Internet traffic to your server being intercepted.
Resource Public Key Infrastructure (RPKI) significantly improves protection against this. With RPKI, the rightful holder of a block of IP addresses can publish a digitally signed statement with route authorization (Route Origin Authorisation; ROA for short). Another network provider that wants to send Internet traffic to a particular IP address, can use the corresponding statement to filter out Invalid
routes. In this way, the network provider prevents Internet traffic from its network from being sent to unauthorized provider networks.
Requirement level: Recommended', + detail_web_mail_rpki_ns_exists_exp: 'We check if an RPKI Route Origin Authorization (ROA) has been published for all IP addresses of the name servers of your domain.
Your hoster (or its network provider) announces through the Border Gateway Protocol (BGP) for which of its IP address blocks it accepts incoming Internet traffic. Other network providers use these route announcements to determine via which route to send traffic for your server\'s IP addresses.
However, a route announcement can be faked. In fact, another network provider may be able to connect the IP address block of your IP address to its network and thus potentially receive Internet traffic that is actually intended for your network provider. The cause may be accidental or malicious. In either case, this can result in your server becoming unreachable or in Internet traffic to your server being intercepted.
Resource Public Key Infrastructure (RPKI) significantly improves protection against this. With RPKI, the rightful holder of a block of IP addresses can publish a digitally signed statement with route authorization (Route Origin Authorisation; ROA for short). Another network provider that wants to send Internet traffic to a particular IP address, can use the corresponding statement to filter out Invalid
routes. In this way, the network provider prevents Internet traffic from its network from being sent to unauthorized provider networks.',
detail_web_mail_rpki_ns_exists_label: 'Route Origin Authorisation existence',
detail_web_mail_rpki_ns_exists_tech_table: 'Name server|IP address|RPKI Route Origin Authorization',
detail_web_mail_rpki_ns_exists_verdict_bad: 'For at least one of the IP addresses of your name servers no RPKI Route Origin Authorisation (ROA) is published.',
detail_web_mail_rpki_ns_exists_verdict_good: 'For all IP addresses of your name servers an RPKI Route Origin Authorisation (ROA) is published.',
detail_web_mail_rpki_ns_exists_verdict_no_addresses: 'Your domain does not contain any name servers. Therefore, this subtest could not be performed.',
- detail_web_mail_rpki_ns_valid_exp: 'We check if the validation status for all IP addresses of the name servers of your domain is Valid
. If there are multiple overlapping route announcements for the IP address, we test that they are all Valid
.
Your hoster (or its network provider) announces via the Border Gateway Protocol (BGP) for which of its IP address blocks it accepts incoming Internet traffic. It does this by associating (parts of) its IP address blocks (Route Prefix) with the unique number of its provider network (Route Origin ASN), and then distributing this routing information. Other network providers use these route announcements to determine via which route to send traffic for the IP addresses.
Additionally, for each route announcement, your hoster (or its network provider) should publish a digitally signed statement with route authorisation (Route Origin Authorisation; abbreviated: ROA) statement using Resource Public Key Infrastructure (RPKI).
Another network provider that is asked to send Internet traffic to your server\'s IP address can cryptographically verify the associated statement. The verified content (Validated ROA Payload; abbreviated: VRP) includes which provider networks (VRP ASN) are authorised to receive Internet traffic for each recorded IP address block (VRP Prefix).
The network provider can then use this content to filter BGP routes. For example, he can reject any Invalid
routes, to prevent Internet traffic from its network is sent to unauthorised provider networks.
Checking route announcements against route authorisations (RPKI Origin Validation; abbreviated: ROV) has the following three possible outcomes.
Valid
: The route announcement of the considered IP address is matched by at least one published route authorisation. A route authorisation is also matched for more specific route announcements (i.e., for a part of the IP address block contained in the route authorisation), unless they are more specific than the limit specified in the route authorisation (via the maxLength
attribute).
Invalid
: The route announcement of the considered IP address is covered by a route authorisation, but it does not match. There are two possible causes:
the IP address block (Route Prefix) is announced from a provider network (Route Origin ASN) that is not authorised in the route authorisation (result in the table below: "invalid (as)");
maxLength
value (result in table below: "invalid (length)").Note: The status Invalid
indicates an unintentional or malicious route configuration error, that can be caused by your hoster or its network provider (internal error) or by a third party (external error). In either case, it can lead to the unreachability of your server or the interception of Internet traffic to your server. Contact your hoster as soon as possible. In the case of an internal error, your hoster should ask his network provider that owns your server\'s IP addresses to fix the route configuration error.
NotFound
: No statement with route-authorisation has been found that covers the route announcement of the considered IP address. This makes the routing of Internet traffic to your server less secure. Please contact your hoster about this. He can ask his network provider that owns your server\'s IP addresses to publish route authorisations.Requirement level: Recommended',
+ detail_web_mail_rpki_ns_valid_exp: 'We check if the validation status for all IP addresses of the name servers of your domain is Valid
. If there are multiple overlapping route announcements for the IP address, we test that they are all Valid
.
Your hoster (or its network provider) announces via the Border Gateway Protocol (BGP) for which of its IP address blocks it accepts incoming Internet traffic. It does this by associating (parts of) its IP address blocks (Route Prefix) with the unique number of its provider network (Route Origin ASN), and then distributing this routing information. Other network providers use these route announcements to determine via which route to send traffic for the IP addresses.
Additionally, for each route announcement, your hoster (or its network provider) should publish a digitally signed statement with route authorisation (Route Origin Authorisation; abbreviated: ROA) statement using Resource Public Key Infrastructure (RPKI).
Another network provider that is asked to send Internet traffic to your server\'s IP address can cryptographically verify the associated statement. The verified content (Validated ROA Payload; abbreviated: VRP) includes which provider networks (VRP ASN) are authorised to receive Internet traffic for each recorded IP address block (VRP Prefix).
The network provider can then use this content to filter BGP routes. For example, he can reject any Invalid
routes, to prevent Internet traffic from its network is sent to unauthorised provider networks.
Checking route announcements against route authorisations (RPKI Origin Validation; abbreviated: ROV) has the following three possible outcomes.
1․ Valid
: The route announcement of the considered IP address is matched by at least one published route authorisation. A route authorisation is also matched for more specific route announcements (i.e., for a part of the IP address block contained in the route authorisation), unless they are more specific than the limit specified in the route authorisation (via the maxLength
attribute).
2․ Invalid
: The route announcement of the considered IP address is covered by a route authorisation, but it does not match. There are two possible causes:
maxLength
value (result in table below: "invalid (length)").3․ NotFound
: No statement with route-authorisation has been found that covers the route announcement of the considered IP address. This makes the routing of Internet traffic to your server less secure. Please contact your hoster about this. He can ask his network provider that owns your server\'s IP addresses to publish route authorisations.
What to do if the test result shows the status Invalid?
The status Invalid
indicates an unintentional or malicious route configuration error, that can be caused by your hoster or its network provider (internal error) or by a third party (external error). In either case, it increases the risk for unreachability of your server or for interception of Internet traffic to your server. Contact your hoster as soon as possible. In the case of an internal error, your hoster should ask its network provider that owns your server\'s IP addresses to fix the route configuration error. ',
detail_web_mail_rpki_ns_valid_label: 'Route announcement validity',
detail_web_mail_rpki_ns_valid_tech_table: 'Name server|BGP Route Prefix|BGP Route Origin ASN|RPKI Origin Validation state',
detail_web_mail_rpki_ns_valid_verdict_bad: 'At least one IP address of your name servers has a NotFound
validation state. There is no RPKI Route Origin Authorisation (ROA) is published for its route announcement.',
detail_web_mail_rpki_ns_valid_verdict_good: 'All IP addresses of your name servers have a Valid
validation state. The route announcement of these IP addresses is matched by the published RPKI Route Origin Authorisation (ROA).',
- detail_web_mail_rpki_ns_valid_verdict_invalid: 'At least one IP address of your name servers has an Invalid
validation state. The route announcement of the affected IP adresses is not matched by the published RPKI Route Origin Authorisation (ROA). This indicates an unintentional or malicious route configuration error, that can be caused by your name server hoster (internal error) or by a third party (external error). In either case, it can lead to the unreachability of your server or the interception of Internet traffic to your server. Contact your name server hoster as soon as possible. In the case of an internal error, your name server hoster should ask its network provider that owns your server\'s IP addresses to fix the route configuration error.',
+ detail_web_mail_rpki_ns_valid_verdict_invalid: 'At least one IP address of your name servers has an Invalid
validation state. The route announcement of the affected IP addresses is not matched by the published RPKI Route Origin Authorisation (ROA). This indicates an unintentional or malicious route configuration error, that can be caused by your name server hoster (internal error) or by a third party (external error). In either case, it increases the risk for unreachability of your server or for interception of Internet traffic to your server. Contact your name server hoster as soon as possible. In the case of an internal error, your name server hoster should ask its network provider that owns your server\'s IP addresses to fix the route configuration error.',
detail_web_mail_rpki_ns_valid_verdict_not_routed: 'This subtest did not run, because no route announcement was available for any of the IP addresses.',
domain_pagetitle: 'Website test:',
domain_title: 'Website test: {{prettyaddr}}',
domain_tweetmessage: 'The%20website%20{{report.domain}}%20scores%20{{score}}%25%20in%20the%20website%20test%20of%20%40Internet_nl%3A',
faqs_appsecpriv_title: 'Security options',
faqs_badges_title: 'Using the 100% badges',
+ faqs_batch_and_dashboard_title: 'Batch API and web-based dashboard',
faqs_dnssec_title: 'Domain signature (DNSSEC)',
faqs_halloffame_title: 'Criteria for \'Hall of Fame for Hosters\'',
faqs_https_title: 'Secure website connection (HTTPS)',
faqs_ipv6_title: 'Modern address (IPv6)',
faqs_mailauth_title: 'Protection against email phishing (DMARC, DKIM and SPF)',
+ faqs_measurements_title: 'Measurements using Internet.nl',
faqs_report_score_title: 'Norm and score',
faqs_report_subtest_bad: 'Bad: fail on REQUIRED subtest ⇒ null score',
faqs_report_subtest_error: 'Test error: error encountered during testing ⇒ null score',
@@ -635,7 +640,7 @@ const internet_nl_messages = {
page_gotofooter: 'Go to the footer',
page_gotomainmenu: 'Go to the main menu',
page_metadescription: 'Test for modern Internet Standards IPv6, DNSSEC, HTTPS, HSTS, DMARC, DKIM, SPF, STARTTLS, DANE, RPKI and security.txt',
- page_metakeywords: 'IPv6, DNSSEC, HTTPS, HSTS, TLS, DMARC, DKIM, SPF, STARTTLS, DANE, RPKI, security.txt, CSP, Content Security Policy, security headers, test, test tool, check, validation, Internet, Internet Standards, open standards, modern standards, security, internet security, mail, email security, website, website security, internet connection, secure connection, email authentication, encryption, ciphers, cipher suites, PKI, SSL certificate, TLS certificate, website certificaat, Internet Standards Platform',
+ page_metakeywords: 'IPv6, DNSSEC, HTTPS, HSTS, TLS, DMARC, DKIM, SPF, STARTTLS, DANE, RPKI, security.txt, CSP, Content Security Policy, security headers, test, test tool, check, validation, Internet, Internet Standards, open standards, modern standards, security, internet security, mail, email security, website, website security, internet connection, secure connection, email authentication, encryption, ciphers, cipher suites, PKI, SSL certificate, TLS certificate, website certificate, Internet Standards Platform',
page_sitedescription: 'Is your Internet up-to-date?',
page_sitetitle: 'Internet.nl',
page404_title: 'Page not found!',
@@ -745,7 +750,9 @@ const internet_nl_messages = {
test_mailipv6_title: 'Reachable via modern internet address?',
test_mailipv6_warning_description: 'Too bad! Your mail server can not be reached by senders using modern addresses (IPv6), or improvement is possible. Therefore your mail server is not part of the modern Internet yet. You should ask your email provider to fully enable IPv6.',
test_mailipv6_warning_summary: 'Not reachable via modern internet address, or improvement possible (IPv6)',
- test_mailrpki_failed_description: 'Too bad! At least one of the IP addresses of your receiving mail server(s) and associated name servers has a route announcement that is not matched by the published route authorisation (RPKI). This indicates an unintentional or malicious route configuration error, that can be caused by your mail hoster or your name server hoster (internal error) or by a third party (external error). In either case, it can lead to the unreachability of your server or the interception of Internet traffic to your server. Contact your mail hoster or name server hoster as soon as possible. In the case of an internal error, they should ask their network provider that owns your server\'s IP addresses to fix the route configuration error.',
+ test_mailrpki_error_description: 'Test not ready to run yet. Please try again later. Sorry for the inconvenience.',
+ test_mailrpki_error_summary: 'Test not ready to run (RPKI)',
+ test_mailrpki_failed_description: 'Too bad! At least one of the IP addresses of your receiving mail server(s) and associated name servers has a route announcement that is not matched by the published route authorisation (RPKI). This indicates an unintentional or malicious route configuration error, that can be caused by your mail hoster or your name server hoster (internal error) or by a third party (external error). In either case, it increases the risk for unreachability of your server or for interception of Internet traffic to your server. Contact your mail hoster or name server hoster as soon as possible. In the case of an internal error, they should ask their network provider that owns your server\'s IP addresses to fix the route configuration error.',
test_mailrpki_failed_summary: 'Unauthorised route announcement (RPKI)',
test_mailrpki_info_description: 'Informational: Your domain does not contain any name servers and thus contains no receiving mail server(s). There are no routable IP addresses that could be tested (RPKI).',
test_mailrpki_info_summary: 'No routable IP addresses found (RPKI)',
@@ -753,7 +760,7 @@ const internet_nl_messages = {
test_mailrpki_passed_description: 'Well done! All IP addresses of your receiving mail server(s) and associated name servers have a route announcement that is matched by the published route authorisation (RPKI). As a result, email transport between sending mail servers with enabled route validation and your receiving mail server(s) is better protected against various unintentional or malicious route configuration errors, that can lead to the unreachability of your servers or the interception of Internet traffic to your servers.',
test_mailrpki_passed_summary: 'Authorised route announcement (RPKI)',
test_mailrpki_title: 'Route authorisation?',
- test_mailrpki_warning_description: 'Warning! At least one of the IP addresses of your receiving mail server(s) and associated name servers has a route announcement for which no route authorisation is published (RPKI). As a result, email transport between sending mail servers with enabled route validation and your receiving mail server(s) is not (fully) protected against various unintentional or malicious route configuration errors, that can lead to the unreachability of your servers or the interception of Internet traffic to your servers. Contact your mail hoster or name server hoster about this. They can ask their network provider that owns your server\'s IP addresses to publish routing authorizations.',
+ test_mailrpki_warning_description: 'Too bad! At least one of the IP addresses of your receiving mail server(s) and associated name servers has a route announcement for which no route authorisation is published (RPKI). As a result, email transport between sending mail servers with enabled route validation and your receiving mail server(s) is not (fully) protected against various unintentional or malicious route configuration errors, that can lead to the unreachability of your servers or the interception of Internet traffic to your servers. Contact your mail hoster or name server hoster about this. They can ask their network provider that owns your server\'s IP addresses to publish routing authorizations.',
test_mailrpki_warning_summary: 'Route authorisation not published (RPKI)',
test_mailtls_failed_description: 'Too bad! Sending mail servers that support secure email transport (STARTTLS and DANE) can establish no or an insufficiently secure connection with your receiving mail server(s). Passive and/or active attackers will therefore be able to read emails in transit to you. You should ask your mail provider to enable STARTTLS and DANE, and configure it securely.',
test_mailtls_failed_summary: 'Mail server connection not or insufficiently secured (STARTTLS and DANE)',
@@ -762,9 +769,9 @@ const internet_nl_messages = {
test_mailtls_invalid_null_mx_description: 'Warning: Your domain advertises a "Null MX" record indicating that it does not accept email. However, either your domain does not have A/AAAA records, making the "Null MX" record unnecessary. Or on your domain a receiving mail server is set by another MX record, making the "Null MX" conflicting. ',
test_mailtls_invalid_null_mx_summary: 'Inconsistently configured non-receiving mail domain (STARTTLS and DANE)',
test_mailtls_label: 'Secure mail server connection (STARTTLS and DANE)',
- test_mailtls_no_mx_description: 'Informational: No receiving mail servers (MX) are set on your domain that does not have A/AAAA records. This is fine if you do not want to receive email. Note that you do not need a \'Null MX\' record in this case. Your configuration makes the subtests in the STARTTLS and DANE category not applicable. This also goes for the mail server specific subtests in the categories for IPv6 and DNSSEC. ',
+ test_mailtls_no_mx_description: 'Informational: The SPF record on your domain indicates that your domain may be used for sending mail. However, your domain does not have a receiving mail server (MX), which could hinder deliverability of your sent mails because not having an MX may be seen by receivers as an indicator for spam. Therefore if you really want to send mail from this domain, configure an MX. However, if you do not want to send mail from this domain, configure an SPF record with the -all
term only and besides a "Null MX" record if your domain has A/AAAA records. Because of your configuration, the subtests in the STARTTLS and DANE category and the mail server specific subtests in the IPv6 and DNSSEC categories are not applicable.',
test_mailtls_no_mx_summary: 'Properly configured non-receiving mail domain (STARTTLS and DANE)',
- test_mailtls_no_null_mx_description: 'Informational: No receiving mail servers (MX) are set on your domain that has A/AAAA records. We recommend you to explicitly indicate that your domain does not accept email by configuring a "Null MX" record. Your current configuration makes the subtests in the STARTTLS and DANE category not applicable. This also goes for the mail server specific subtests in the categories for IPv6 and DNSSEC. ',
+ test_mailtls_no_null_mx_description: 'Informational: No receiving mail servers (MX) are set on your domain that has A/AAAA records and has an SPF record with only the term -all
. We recommend you to set a "Null MX" record to explicitly indicate that your domain does not accept email. Because of your configuration, the subtests in the STARTTLS and DANE category and the mail server specific subtests in the IPv6 and DNSSEC categories are not applicable.',
test_mailtls_no_null_mx_summary: 'Not explicitly configured non-receiving mail domain (STARTTLS and DANE)',
test_mailtls_null_mx_description: 'Informational: Your domain that has A/AAAA records, clearly indicates that it does not accept email by advertising a "Null MX" record. This is fine if you do not want to receive email. Your configuration makes the subtests in the STARTTLS and DANE category not applicable. This also goes for the mail server specific subtests in the categories for IPv6 and DNSSEC.',
test_mailtls_null_mx_summary: 'Properly configured non-receiving mail domain (STARTTLS and DANE)',
@@ -775,21 +782,21 @@ const internet_nl_messages = {
test_mailtls_passed_description: 'Well done! Sending mail servers supporting secure email transport (STARTTLS and DANE) can establish a secure connection with your receiving mail server(s). STARTTLS prevents passive attackers from reading emails in transit to you. DANE protects against active attackers stripping STARTTLS encryption by manipulating the mail traffic.',
test_mailtls_passed_summary: 'Mail server connection sufficiently secured (STARTTLS and DANE)',
test_mailtls_title: 'Secure mail server connection?',
- test_mailtls_unreachable_description: 'Test error: at least one of your receiving mail servers was not reachable for us, making it impossible to (fully) test for STARTTLS and DANE. This could be caused by network connectivity problems or by the mailserver(s) not accepting connections.',
+ test_mailtls_unreachable_description: 'Test error: at least one of your receiving mail servers was not reachable for us, making it impossible to (fully) test for STARTTLS and DANE. This could be caused by network connectivity problems or by the mail server(s) not accepting connections.',
test_mailtls_unreachable_summary: 'Unreachable receiving mail server (STARTTLS and DANE)',
- test_mailtls_untestable_description: 'Test error: at least one of your receiving mail servers was not testable for us, making it impossible to (fully) test for STARTTLS and DANE. This could be caused by, among other things, SMTP errors and ratelimiting measures engaging and dropping connections.',
+ test_mailtls_untestable_description: 'Test error: at least one of your receiving mail servers was not testable for us, making it impossible to (fully) test for STARTTLS and DANE. This could be caused by, among other things, SMTP errors and rate limiting measures engaging and dropping connections.',
test_mailtls_untestable_summary: 'Untestable mail server (STARTTLS and DANE)',
test_mailtls_warning_description: 'Too bad! Sending mail servers that support secure email transport (STARTTLS and DANE) can establish no or an insufficiently secure connection with your receiving mail server(s). Passive and/or active attackers will therefore be able to read emails in transit to you. You should ask your mail provider to enable STARTTLS and DANE, and configure it securely.',
test_mailtls_warning_summary: 'Mail server connection not or insufficiently secured (STARTTLS and DANE)',
- test_siteappsecpriv_failed_description: 'Too bad! Not all required security options, i.e. security headers and security.txt, are set for your website (Security options). With security headers you can activate browser mechanisms to protect visitors against attacks involving, for example, cross-site scripting (XSS) or framing. Through a security.txt file you can provide researchers who have found a vulnerability on your systems, with your contact infomation and your Coordinated Vulnerability Disclosure policy. Note that HTTPS is a prerequisite for all tested security options. Security headers (except for Referrer-Policy) are not relevant for domains that redirect (through a 301/302 HTTP Status Code). ',
+ test_siteappsecpriv_failed_description: 'Too bad! Not all required security options, i.e. security headers and security.txt, are set for your website (Security options). With security headers you can activate browser mechanisms to protect visitors against attacks involving, for example, cross-site scripting (XSS) or framing. Security headers are also relevant for domains with response codes such as \'301 Redirect\' and \'404 Not Found\', because they create their own browsing context (MIME type \'text/html\') that may be vulnerable to certain attacks. Through a security.txt file you can provide researchers who have found a vulnerability on your systems, with your contact information and your Coordinated Vulnerability Disclosure policy. Note that HTTPS is a prerequisite for all tested security options.',
test_siteappsecpriv_failed_summary: 'One or more required security options not set (Security options)',
- test_siteappsecpriv_info_description: 'Informational: Not all optional security options, i.e. security headers and security.txt, are set for your website (Security options). With security headers you can activate browser mechanisms to protect visitors against attacks involving, for example, cross-site scripting (XSS) or framing. Through a security.txt file you can provide researchers who have found a vulnerability on your systems, with your contact infomation and your Coordinated Vulnerability Disclosure policy. Note that HTTPS is a prerequisite for all tested security options. Security headers (except for Referrer-Policy) are not relevant for domains that redirect (through a 301/302 HTTP Status Code).',
+ test_siteappsecpriv_info_description: 'Informational: Not all optional security options, i.e. security headers and security.txt, are set for your website (Security options). With security headers you can activate browser mechanisms to protect visitors against attacks involving, for example, cross-site scripting (XSS) or framing. Security headers are also relevant for domains with HTTP response codes such as \'301 Redirect\' and \'404 Not Found\', because they create their own browsing context (MIME type \'text/html\') that may be vulnerable to certain attacks. Through a security.txt file you can provide researchers who have found a vulnerability on your systems, with your contact information and your Coordinated Vulnerability Disclosure policy. Note that HTTPS is a prerequisite for all tested security options.',
test_siteappsecpriv_info_summary: 'One or more optional security options not set (Security options)',
test_siteappsecpriv_label: 'Security options',
- test_siteappsecpriv_passed_description: 'Well done! All security options, i.e. security headers and security.txt, are set for your website (Security options). With security headers you can activate browser mechanisms to protect visitors against attacks involving, for example, cross-site scripting (XSS) or framing. Through a security.txt file you can provide researchers who have found a vulnerability on your systems, with your contact infomation and your Coordinated Vulnerability Disclosure policy. Note that HTTPS is a prerequisite for all tested security options. Security headers (except for Referrer-Policy) are not relevant for domains that redirect (through a 301/302 HTTP Status Code). ',
+ test_siteappsecpriv_passed_description: 'Well done! All security options, i.e. security headers and security.txt, are set for your website (Security options). With security headers you can activate browser mechanisms to protect visitors against attacks involving, for example, cross-site scripting (XSS) or framing. Security headers are also relevant for domains with HTTP response codes such as \'301 Redirect\' and \'404 Not Found\', because they create their own browsing context (MIME type \'text/html\') that may be vulnerable to certain attacks. Through a security.txt file you can provide researchers who have found a vulnerability on your systems, with your contact information and your Coordinated Vulnerability Disclosure policy. Note that HTTPS is a prerequisite for all tested security options.',
test_siteappsecpriv_passed_summary: 'All security options set (Security options) ',
test_siteappsecpriv_title: 'Security options set?',
- test_siteappsecpriv_warning_description: 'Warning: Not all recommended security options, , i.e. security headers and security.txt, are set for your website (Security options). With security headers you can activate browser mechanisms to protect visitors against attacks involving, for example, cross-site scripting (XSS) or framing. Through a security.txt file you can provide researchers who have found a vulnerability on your systems, with your contact infomation and your Coordinated Vulnerability Disclosure policy. Note that HTTPS is a prerequisite for all tested security options. Security headers (except for Referrer-Policy) are not relevant for domains that redirect (through a 301/302 HTTP Status Code). ',
+ test_siteappsecpriv_warning_description: 'Warning: Not all recommended security options, , i.e. security headers and security.txt, are set for your website (Security options). With security headers you can activate browser mechanisms to protect visitors against attacks involving, for example, cross-site scripting (XSS) or framing. Security headers are also relevant for domains with HTTP response codes such as \'301 Redirect\' and \'404 Not Found\', because they create their own browsing context (MIME type \'text/html\') that may be vulnerable to certain attacks. Through a security.txt file you can provide researchers who have found a vulnerability on your systems, with your contact information and your Coordinated Vulnerability Disclosure policy. Note that HTTPS is a prerequisite for all tested security options. ',
test_siteappsecpriv_warning_summary: 'One or more recommended security options not set (Security options)',
test_sitednssec_failed_description: 'Too bad! Your domain is not signed with a valid signature (DNSSEC). Therefore visitors with enabled domain signature validation, are not protected against manipulated translation from your domain into rogue internet addresses. You should ask your name server operator (often your registrar and/or hosting provider) to enable DNSSEC.',
test_sitednssec_failed_summary: 'Domain name not signed (DNSSEC)',
@@ -811,7 +818,9 @@ const internet_nl_messages = {
test_siteipv6_title: 'Reachable via modern address?',
test_siteipv6_warning_description: 'Too bad! Your website is not reachable for visitors using a modern internet address (IPv6), or improvement is possible. Therefore your website is not part of the modern Internet yet. You should ask your hosting provider to fully enable IPv6.',
test_siteipv6_warning_summary: 'Not reachable via modern internet address, or improvement possible (IPv6)',
- test_siterpki_failed_description: 'Too bad! At least one of the IP addresses of your web server and associated name servers has a route announcement that is not matched by the published route authorisation (RPKI). This indicates an unintentional or malicious route configuration error, that can be caused by your web hoster or your name server hoster (internal error) or by a third party (external error). In either case, it can lead to the unreachability of your server or the interception of Internet traffic to your server. Contact your web hoster or name server hoster as soon as possible. In the case of an internal error, they should ask their network provider that owns your server\'s IP addresses to fix the route configuration error.',
+ test_siterpki_error_description: 'Test not ready to run yet. Please try again later. Sorry for the inconvenience.',
+ test_siterpki_error_summary: 'Test not ready to run (RPKI)',
+ test_siterpki_failed_description: 'Too bad! At least one of the IP addresses of your web server and associated name servers has a route announcement that is not matched by the published route authorisation (RPKI). This indicates an unintentional or malicious route configuration error, that can be caused by your web hoster or your name server hoster (internal error) or by a third party (external error). In either case, it increases the risk for unreachability of your server or for interception of Internet traffic to your server. Contact your web hoster or name server hoster as soon as possible. In the case of an internal error, they should ask their network provider that owns your server\'s IP addresses to fix the route configuration error.',
test_siterpki_failed_summary: 'Unauthorised route announcement (RPKI)',
test_siterpki_info_description: 'Informational: Your domain does not contain any name servers and thus contains no web server IP addresses. There are no routable IP addresses that could be tested (RPKI).',
test_siterpki_info_summary: 'No routable IP addresses found (RPKI)',
@@ -819,7 +828,7 @@ const internet_nl_messages = {
test_siterpki_passed_description: 'Well done! All IP addresses of your web server and associated name servers have a route announcement that is matched by the published route authorisation (RPKI). As a result, visitors with enabled route validation are better protected against various unintentional or malicious route configuration errors, that can lead to the unreachability of your servers or the interception of Internet traffic to your servers.',
test_siterpki_passed_summary: 'Authorised route announcement (RPKI)',
test_siterpki_title: 'Route authorisation?',
- test_siterpki_warning_description: 'Warning! At least one of the IP addresses of your web server and associated name servers has a route announcement for which no route authorisation is published (RPKI). As a result, visitors with enabled route validation are not (fully) protected against various unintentional or malicious route configuration errors, that can lead to the unreachability of your servers or the interception of Internet traffic to your servers. Contact your mail hoster or name server hoster about this. They can ask their network provider that owns your server\'s IP addresses to publish routing authorizations.',
+ test_siterpki_warning_description: 'Too bad! At least one of the IP addresses of your web server and associated name servers has a route announcement for which no route authorisation is published (RPKI). As a result, visitors with enabled route validation are not (fully) protected against various unintentional or malicious route configuration errors, that can lead to the unreachability of your servers or the interception of Internet traffic to your servers. Contact your mail hoster or name server hoster about this. They can ask their network provider that owns your server\'s IP addresses to publish routing authorizations.',
test_siterpki_warning_summary: 'Route authorisation not published (RPKI)',
test_sitetls_failed_description: 'Too bad! The connection with your website is not or insufficientlysecured (HTTPS). Therefore information in transit between your website and its visitors is not sufficiently protected against eavesdropping and tampering. You should ask your hosting provider to enable HTTPS and to configure it securely.',
test_sitetls_failed_summary: 'Connection not or insufficiently secured (HTTPS)',
@@ -829,11 +838,11 @@ const internet_nl_messages = {
test_sitetls_passed_description: 'Well done! The connection with your website is sufficiently secured (HTTPS). Therefore information in transit between your website and its visitors is protected against eavesdropping and tampering.',
test_sitetls_passed_summary: 'Connection sufficiently secured (HTTPS)',
test_sitetls_title: 'Secure connection?',
- test_sitetls_unreachable_description: 'Your webserver was not reachable for us, making it impossible to (fully) test for HTTPS. This could be caused by network connectivity problems or by the webserver not accepting connections.',
- test_sitetls_unreachable_summary: 'Unreachable webserver (HTTPS)',
+ test_sitetls_unreachable_description: 'Your web server was not reachable for us, making it impossible to (fully) test for HTTPS. This could be caused by network connectivity problems or by the web server not accepting connections.',
+ test_sitetls_unreachable_summary: 'Unreachable web server (HTTPS)',
test_sitetls_warning_description: 'Too bad! The connection with your website is not or insufficientlysecured (HTTPS). Therefore information in transit between your website and its visitors is not sufficiently protected against eavesdropping and tampering. You should ask your hosting provider to enable HTTPS and to configure it securely.',
test_sitetls_warning_summary: 'Connection not or insufficiently secured (HTTPS)',
- widget_content_notes: '
internet.nl
to the rules for form-action
and possibly also for img-src
in case you link to the logo on our webserver.internet.nl
to the rules for form-action
and possibly also for img-src
in case you link to the logo on our web server.Would you like visitors of your website to be able to directly start an email test?
Copy the HTML and CSS code from the text fields below into the source code of your website.
NOERROR
antwoordt op onze bevragingvoor _domainkey.example.nl
. Als _domainkey.example.nl
een \'empty non-terminal\' is, dan zullen sommige nameservers die zich niet houden aan destandaard RFC 2308, foutief antwoorden met NXDOMAIN
in plaats vanNOERROR
. Dit maakt het detecteren van het DKIM-record voor ons onmogelijk.From:
) en moet gelijk zijn aan zowel het DKIM-domein (d=
) als het SPF-domein (envelope sender, d.w.z. return-path dat terugkomt in MAIL FROM
).Voor een "good practice voor domeinnamen zonder mail" zie de uitleg van de "DMARC-policy" subtest.', + detail_mail_auth_dkim_exp: '
We testen of je domeinnaam DKIM ondersteunt. Een ontvangende mailserver kande publieke sleutel in je DKIM-record gebruiken om de handtekening in eene-mail met een gebruiker van jouw domein als afzender te controleren en deauthenticiteit van de e-mail te bepalen.
NOERROR
antwoordt op onze bevragingvoor _domainkey.example.nl
. Als _domainkey.example.nl
een \'empty non-terminal\' is, dan zullen sommige nameservers die zich niet houden aan destandaard RFC 2308, foutief antwoorden met NXDOMAIN
in plaats vanNOERROR
. Dit maakt het detecteren van het DKIM-record voor ons onmogelijk.From:
) en moet gelijk zijn aan zowel het DKIM-domein (d=
) als het SPF-domein (envelope sender, d.w.z. return-path dat terugkomt in MAIL FROM
).Aanvullende opmerkingen:
simple
instelling tolereert bijna geen wijzigingen en relaxed
tolereert veel voorkomende wijzigingen. Als er geen instelling is opgegeven, wordt standaard simple
gebruikt voor zowel de header als de body. Met name headerwijzigingen zijn een veelvoorkomende oorzaak dat een DKIM-handtekening onbedoeld ongeldig wordt, waardoor de bezorgbaarheid wordt belemmerd. Het gebruik van relaxed
voor de header en simple
voor de body (c=relaxed/simple
) kan dit soort problemen verminderen.We controleren of de syntax van je DMARC-record correct is en of deze een voldoende strikte policy bevat (p=quarantine
of p=reject
) om misbruik van je domein door phishers en spammers tegen te gaan. Zelfs zonder een strikte policy kan DMARC nuttig zijn om met behulp van DMARC-rapporten meer inzicht te verkrijgen in legale en illegale uitgaande e-mailstromen. Maar om DMARC effectief te laten zijn tegen misbruik van je domein, is een liberale policy (p=none
) niet voldoende.
We controleren ook of de mailadressen onder rua=
en ruf=
geldig zijn. Als deze een extern e-mailadres bevatten dan controleren we of het externe domein geautoriseerd is om DMARC-rapportages te ontvangen. Zorg ervoor dat het DMARC-autorisatierecord op het externe domein ten minste "v=DMARC1;"
bevat.
De test staat het gebruik van de experimentele np
tag toe (RFC 9091).
Good practice voor domeinnaam zonder mail:
p=reject
) en SPF policy (-all
) voor (sub-)domeinnamen die je niet gebruikt om mail vanaf te versturen, om misbruik (\'spoofing\') tegen te gaan. Merk op dat DKIM in dit geval niet noodzakelijk is.Hieronder volgen twee basisvoorbeelden van de DNS-configuratie voor een domeinnaam die niet gebruikt wordt voor het verzenden en ontvangen van mail.
A. Enkele domeinnaam zonder A- of AAAA-record
example.nl. TXT "v=spf1 -all"*.example.nl. TXT "v=spf1 -all"_dmarc.example.nl. TXT "v=DMARC1; p=reject;"
B. Enkele domeinnaam met A- of AAAA-record
example.nl. AAAA 2a00:d78:0:712:94:198:159:35example.nl. A 94.198.159.35example.nl. MX 0 .example.nl. TXT "v=spf1 -all"*.example.nl. TXT "v=spf1 -all"www.example.nl. CNAME example.nl_dmarc.example.nl. TXT "v=DMARC1; p=reject;"
',
+ detail_mail_auth_dmarc_policy_exp: 'We controleren of de syntax van je DMARC-record correct is en of deze een voldoende strikte policy bevat (p=quarantine
of p=reject
) om misbruik van je domein door phishers en spammers tegen te gaan. Zelfs zonder een strikte policy kan DMARC nuttig zijn om met behulp van DMARC-rapporten meer inzicht te verkrijgen in legale en illegale uitgaande e-mailstromen. Maar om DMARC effectief te laten zijn tegen misbruik van je domein, is een liberale policy (p=none
) niet voldoende.
We controleren ook of de mailadressen onder rua=
en ruf=
geldig zijn. Als deze een extern e-mailadres bevatten dan controleren we of het externe domein geautoriseerd is om DMARC-rapportages te ontvangen. Zorg ervoor dat het DMARC-autorisatierecord op het externe domein ten minste "v=DMARC1;"
bevat.
De test staat het gebruik van de experimentele np
tag toe (RFC 9091).
Good practice voor domeinnaam zonder mail:
p=reject
) en SPF policy (-all
) voor (sub-)domeinnamen die je niet gebruikt om mail vanaf te versturen, om misbruik (\'spoofing\') tegen te gaan. Merk op dat DKIM in dit geval niet noodzakelijk is.Hieronder volgen twee basisvoorbeelden van de DNS-configuratie voor een domeinnaam die niet gebruikt wordt voor het verzenden en ontvangen van mail.
A. Enkele domeinnaam zonder A- of AAAA-record
example.nl. TXT "v=spf1 -all"*.example.nl. TXT "v=spf1 -all"_dmarc.example.nl. TXT "v=DMARC1; p=reject;"
B. Enkele domeinnaam met A- of AAAA-record
example.nl. AAAA 2a00:d78:0:712:94:198:159:35example.nl. A 94.198.159.35example.nl. MX 0 .example.nl. TXT "v=spf1 -all"*.example.nl. TXT "v=spf1 -all"www.example.nl. CNAME example.nl_dmarc.example.nl. TXT "v=DMARC1; p=reject;"
',
detail_mail_auth_dmarc_policy_label: 'DMARC policy',
detail_mail_auth_dmarc_policy_verdict_bad: 'Je DMARC-policy is syntactisch niet correct.',
detail_mail_auth_dmarc_policy_verdict_external: 'De domeinnaam van het mailadres na rua=
en/of ruf=
bevat geen (geldig) autorisatie-record om DMARC-rapporten te ontvangen voor de geteste domeinnaam. ',
@@ -111,7 +111,7 @@ const internet_nl_messages = {
detail_mail_dnssec_mx_exists_verdict_bad: 'Tenminste één van jouw mailserverdomeinen is onveilig oftewel \'insecure\', omdat deze niet ondertekend is met DNSSEC.',
detail_mail_dnssec_mx_exists_verdict_good: 'Al je mailserverdomeinen zijn ondertekend met DNSSEC.',
detail_mail_dnssec_mx_exists_verdict_invalid_null_mx: 'Je domeinnaam adverteert een "Null MX" record dat aangeeft dat deze geen e-mail accepteert. Echter, óf je domeinnaam heeft geen A/AAAA records, waardoor het "Null MX" record onnodig is. Óf op je domeinnaam is een ontvangende mailserver ingesteld door een ander MX record, waardoor de "Null MX" tegenstrijdig is.',
- detail_mail_dnssec_mx_exists_verdict_no_mailservers: 'Er zijn geen ontvangende mailservers (MX) ingesteld op je domeinnaam die geen A/AAAA records heeft. Dat is prima als je geen e-mail wilt ontvangen. ',
+ detail_mail_dnssec_mx_exists_verdict_no_mailservers: 'Het SPF-record op je domeinnaam geeft aan dat je domeinnaam kan worden gebruikt voor het verzenden van e-mail. Je domeinnaam heeft echter geen ontvangende mailserver (MX), wat de bezorgbaarheid van je verzonden e-mail kan belemmeren omdat het ontbreken van een MX door ontvangers kan worden gezien als een indicator voor spam. Als je daarom echt mail vanaf deze domeinnaam wilt verzenden, configureer dan een MX. Als je echter geen mail wilt versturen vanaf deze domeinnaam, configureer dan een SPF-record met alleen de term -all
en daarnaast een "Null MX" record als je domeinnaam A/AAAA-records heeft. Vanwege je configuratie zijn de subtests in de categorie STARTTLS en DANE en de mailserver-specifieke subtests in de categorieën IPv6 en DNSSEC niet van toepassing.',
detail_mail_dnssec_mx_exists_verdict_no_null_mx: 'Er zijn geen ontvangende mailservers (MX) ingesteld op je domeinnaam die wel A/AAAA records heeft. We adviseren je om duidelijk te laten zien dat je domeinnaam geen e-mail accepteert door een "Null MX" record te publiceren. Gebruik geen "Null MX"-record en stel een MX in als je wel e-mail wil verzenden vanaf deze domeinnaam, aangezien ontvangende servers e-mail met een ongeldig retouradres kunnen weigeren.',
detail_mail_dnssec_mx_exists_verdict_null_mx: 'Je domeinnaam die A/AAAA-records heeft, geeft met een "Null MX" record duidelijk aan geen e-mail te accepteren. Dat is prima als je geen e-mail wilt ontvangen. Gebruik geen "Null MX"-record en stel een MX in als je wel e-mail wil verzenden vanaf deze domeinnaam, aangezien ontvangende servers e-mail met een ongeldig retouradres kunnen weigeren.',
detail_mail_dnssec_mx_exists_verdict_null_mx_with_other_mx: 'Je domeinnaam adverteert een "Null MX" record dat aangeeft dat deze geen e-mail accepteert. Echter, op je domeinnaam is een ontvangende mailserver ingesteld door een ander MX record, waardoor de "Null MX" tegenstrijdig is.',
@@ -136,41 +136,41 @@ const internet_nl_messages = {
detail_mail_ipv6_mx_aaaa_verdict_bad: 'Tenminste één ontvangende mailserver op jouw domeinnaam heeft geen IPv6-adres.',
detail_mail_ipv6_mx_aaaa_verdict_good: 'Alle ontvangende mailservers op jouw domeinnaam hebben een IPv6-adres.',
detail_mail_ipv6_mx_aaaa_verdict_invalid_null_mx: 'Je domeinnaam adverteert een "Null MX" record dat aangeeft dat deze geen e-mail accepteert. Echter, óf je domeinnaam heeft geen A/AAAA records, waardoor het "Null MX" record onnodig is. Óf op je domeinnaam is een ontvangende mailserver ingesteld met een ander MX record, waardoor de "Null MX" tegenstrijdig is.',
- detail_mail_ipv6_mx_aaaa_verdict_no_null_mx: 'Er zijn geen ontvangende mailservers (MX) ingesteld op je domeinnaam die wel A/AAAA records heeft. We adviseren je om duidelijk te laten zien dat je domeinnaam geen e-mail accepteert door een "Null MX" record te publiceren. Gebruik geen "Null MX"-record en stel een MX in als je wel e-mail wil verzenden vanaf deze domeinnaam, aangezien ontvangende servers e-mail met een ongeldig retouradres kunnen weigeren.',
+ detail_mail_ipv6_mx_aaaa_verdict_no_null_mx: 'Er zijn geen ontvangende mailservers (MX) ingesteld op je domein dat A/AAAA-records heeft en dat een SPF-record heeft met alleen de term -all
. We raden je aan een "Null MX" record in te stellen om expliciet aan te geven dat je domein geen e-mail accepteert. Vanwege je configuratie zijn de subtests in de categorie STARTTLS en DANE en de mailserver-specifieke subtests in de categorieën IPv6 en DNSSEC niet van toepassing.',
detail_mail_ipv6_mx_aaaa_verdict_null_mx: 'Je domeinnaam die A/AAAA-records heeft, geeft met een "Null MX" record duidelijk aan geen e-mail te accepteren. Dat is prima als je geen e-mail wilt ontvangen. Gebruik geen "Null MX"-record en stel een MX in als je wel e-mail wil verzenden vanaf deze domeinnaam, aangezien ontvangende servers e-mail met een ongeldig retouradres kunnen weigeren.',
detail_mail_ipv6_mx_aaaa_verdict_null_mx_with_other_mx: 'Je domeinnaam adverteert een "Null MX" record dat aangeeft dat deze geen e-mail accepteert. Echter, op je domeinnaam is een ontvangende mailserver ingesteld door een ander MX record, waardoor de "Null MX" tegenstrijdig is.',
detail_mail_ipv6_mx_aaaa_verdict_null_mx_without_a_aaaa: 'Je domeinnaam adverteert een "Null MX" record dat aangeeft dat deze geen e-mail accepteert. Echter, je domeinnaam heeft geen A/AAAA records, waardoor het "Null MX" record onnodig is.',
- detail_mail_ipv6_mx_aaaa_verdict_other: 'Er zijn geen ontvangende mailservers (MX) ingesteld op je domeinnaam die geen A/AAAA records heeft. Dat is prima als je geen e-mail wilt ontvangen. ',
+ detail_mail_ipv6_mx_aaaa_verdict_other: 'Het SPF-record op je domeinnaam geeft aan dat je domeinnaam kan worden gebruikt voor het verzenden van e-mail. Je domeinnaam heeft echter geen ontvangende mailserver (MX), wat de bezorgbaarheid van je verzonden e-mail kan belemmeren omdat het ontbreken van een MX door ontvangers kan worden gezien als een indicator voor spam. Als je daarom echt mail vanaf deze domeinnaam wilt verzenden, configureer dan een MX. Als je echter geen mail wilt versturen vanaf deze domeinnaam, configureer dan een SPF-record met alleen de term -all
en daarnaast een "Null MX" record als je domeinnaam A/AAAA-records heeft. Vanwege je configuratie zijn de subtests in de categorie STARTTLS en DANE en de mailserver-specifieke subtests in de categorieën IPv6 en DNSSEC niet van toepassing.',
detail_mail_ipv6_mx_reach_exp: 'We testen of we je mailservers (MX) kunnen bereiken via IPv6 op poort 25. We testen alle IPv6-adressen die we ontvangen van de nameservers van je mailserverdomein(en). Een deelscore wordt gegeven als niet alle IPv6-adressen bereikbaar zijn. Als een IPv6-adres (syntactisch) ongeldig is, dan beschouwen we dat als onbereikbaar.',
detail_mail_ipv6_mx_reach_label: 'IPv6-bereikbaarheid van mailserver(s)',
detail_mail_ipv6_mx_reach_tech_table: 'Mailserver (MX)|Onbereikbaar IPv6-adres',
detail_mail_ipv6_mx_reach_verdict_bad: 'Tenminste één van je ontvangende mailservers met een IPv6-adres is niet bereikbaar via IPv6.',
detail_mail_ipv6_mx_reach_verdict_good: 'Al je ontvangende mailservers met een IPv6-adres zijn bereikbaar via IPv6.',
- detail_mail_rpki_exists_exp: 'We testen of er een RPKI Route Origin Authorisation (ROA) is gepubliceerd voor alle IP-adressen van je mailserver(s) (MX).Je hoster (of zijn netwerkprovider) kondigt via het Border Gateway Protocol (BGP) aan voor welke van zijn IP-adresblokken hij inkomend internetverkeer accepteert. Andere netwerkproviders gebruiken deze route-aankondigingen om te bepalen via welke route ze het verkeer voor de IP-adressen van je server moeten sturen.
Een route-aankondiging is echter te vervalsen. Een andere netwerkprovider kan namelijk in de positie zijn om het IP-adresblok van jouw IP-adres te koppelen aan zijn netwerk en op die manier mogelijk internetverkeer te ontvangen dat eigenlijk voor jouw netwerkprovider bedoeld is. De oorzaak kan per ongeluk of kwaadwillig zijn. In beide gevallen kan het ertoe leiden dat je server onbereikbaar is of dat internetverkeer naar uw server wordt onderschept.
Resource Public Key Infrastructure (RPKI) verbetert de bescherming hiertegen aanzienlijk. Met RPKI kan de rechtmatige houder van een blok IP-adressen namelijk een digitaal ondertekende verklaring met route-autorisatie (Route Origin Authorisation; afgekort: ROA) publiceren. Een andere netwerkprovider die internetverkeer wil sturen naar een bepaalde IP-adres, kan de bijbehorende verklaring gebruiken om ongeldige (Invalid
) routes te filteren. Daarmee voorkomt de netwerkprovider dat internetverkeer vanuit zijn netwerk naar ongeautoriseerde providernetwerken wordt gestuurd.
Niveau van vereistheid: Aanbevolen', + detail_mail_rpki_exists_exp: 'We testen of er een RPKI Route Origin Authorisation (ROA) is gepubliceerd voor alle IP-adressen van je mailserver(s) (MX).
Je hoster (of zijn netwerkprovider) kondigt via het Border Gateway Protocol (BGP) aan voor welke van zijn IP-adresblokken hij inkomend internetverkeer accepteert. Andere netwerkproviders gebruiken deze route-aankondigingen om te bepalen via welke route ze het verkeer voor de IP-adressen van je server moeten sturen.
Een route-aankondiging is echter te vervalsen. Een andere netwerkprovider kan namelijk in de positie zijn om het IP-adresblok van jouw IP-adres te koppelen aan zijn netwerk en op die manier mogelijk internetverkeer te ontvangen dat eigenlijk voor jouw netwerkprovider bedoeld is. De oorzaak kan per ongeluk of kwaadwillig zijn. In beide gevallen kan het ertoe leiden dat je server onbereikbaar is of dat internetverkeer naar uw server wordt onderschept.
Resource Public Key Infrastructure (RPKI) verbetert de bescherming hiertegen aanzienlijk. Met RPKI kan de rechtmatige houder van een blok IP-adressen namelijk een digitaal ondertekende verklaring met route-autorisatie (Route Origin Authorisation; afgekort: ROA) publiceren. Een andere netwerkprovider die internetverkeer wil sturen naar een bepaalde IP-adres, kan de bijbehorende verklaring gebruiken om ongeldige (Invalid
) routes te filteren. Daarmee voorkomt de netwerkprovider dat internetverkeer vanuit zijn netwerk naar ongeautoriseerde providernetwerken wordt gestuurd.',
detail_mail_rpki_exists_label: 'Aanwezigheid van Route Origin Authorisation',
detail_mail_rpki_exists_tech_table: 'Mailserver|IP-adres|RPKI Route Origin Authorization',
detail_mail_rpki_exists_verdict_bad: 'Voor tenminste één van de IP-adressen van je ontvangende mailserver(s) is geen RPKI Route Origin Authorisation (ROA) gepubliceerd.',
detail_mail_rpki_exists_verdict_good: 'Voor alle IP-adressen van je ontvangende mailserver(s) is een RPKI Route Origin Authorisation (ROA) gepubliceerd.',
detail_mail_rpki_exists_verdict_no_addresses: 'Je domein bevat geen ontvangende mailservers. Daarom kon deze subtest niet worden uitgevoerd.',
- detail_mail_rpki_mx_ns_exists_exp: 'We testen of er een RPKI Route Origin Authorisation (ROA) is gepubliceerd voor alle IP-adressen van de nameservers van je mailserver(s) (MX).
Je hoster (of zijn netwerkprovider) kondigt via het Border Gateway Protocol (BGP) aan voor welke van zijn IP-adresblokken hij inkomend internetverkeer accepteert. Andere netwerkproviders gebruiken deze route-aankondigingen om te bepalen via welke route ze het verkeer voor de IP-adressen van je server moeten sturen.
Een route-aankondiging is echter te vervalsen. Een andere netwerkprovider kan namelijk in de positie zijn om het IP-adresblok van jouw IP-adres te koppelen aan zijn netwerk en op die manier mogelijk internetverkeer te ontvangen dat eigenlijk voor jouw netwerkprovider bedoeld is. De oorzaak kan per ongeluk of kwaadwillig zijn. In beide gevallen kan het ertoe leiden dat je server onbereikbaar is of dat internetverkeer naar je server wordt onderschept.
Resource Public Key Infrastructure (RPKI) verbetert de bescherming hiertegen aanzienlijk. Met RPKI kan de rechtmatige houder van een blok IP-adressen namelijk een digitaal ondertekende verklaring met route-autorisatie (Route Origin Authorisation; afgekort: ROA) publiceren. Een andere netwerkprovider die internetverkeer wil sturen naar een bepaalde IP-adres, kan de bijbehorende verklaring gebruiken om ongeldige (Invalid
) routes te filteren. Daarmee voorkomt de netwerkprovider dat internetverkeer vanuit zijn netwerk naar ongeautoriseerde providernetwerken wordt gestuurd.
Niveau van vereistheid: Aanbevolen', + detail_mail_rpki_mx_ns_exists_exp: 'We testen of er een RPKI Route Origin Authorisation (ROA) is gepubliceerd voor alle IP-adressen van de nameservers van je mailserver(s) (MX).
Je hoster (of zijn netwerkprovider) kondigt via het Border Gateway Protocol (BGP) aan voor welke van zijn IP-adresblokken hij inkomend internetverkeer accepteert. Andere netwerkproviders gebruiken deze route-aankondigingen om te bepalen via welke route ze het verkeer voor de IP-adressen van je server moeten sturen.
Een route-aankondiging is echter te vervalsen. Een andere netwerkprovider kan namelijk in de positie zijn om het IP-adresblok van jouw IP-adres te koppelen aan zijn netwerk en op die manier mogelijk internetverkeer te ontvangen dat eigenlijk voor jouw netwerkprovider bedoeld is. De oorzaak kan per ongeluk of kwaadwillig zijn. In beide gevallen kan het ertoe leiden dat je server onbereikbaar is of dat internetverkeer naar je server wordt onderschept.
Resource Public Key Infrastructure (RPKI) verbetert de bescherming hiertegen aanzienlijk. Met RPKI kan de rechtmatige houder van een blok IP-adressen namelijk een digitaal ondertekende verklaring met route-autorisatie (Route Origin Authorisation; afgekort: ROA) publiceren. Een andere netwerkprovider die internetverkeer wil sturen naar een bepaalde IP-adres, kan de bijbehorende verklaring gebruiken om ongeldige (Invalid
) routes te filteren. Daarmee voorkomt de netwerkprovider dat internetverkeer vanuit zijn netwerk naar ongeautoriseerde providernetwerken wordt gestuurd.',
detail_mail_rpki_mx_ns_exists_label: 'Aanwezigheid van Route Origin Authorisation',
detail_mail_rpki_mx_ns_exists_tech_table: 'Nameserver van MX|IP-adres|RPKI Route Origin Authorization',
detail_mail_rpki_mx_ns_exists_verdict_bad: 'Voor tenminste één van de IP-adressen van de nameservers van je mailserver(s) is geen RPKI Route Origin Authorisation (ROA) gepubliceerd.',
detail_mail_rpki_mx_ns_exists_verdict_good: 'Voor alle IP-adressen van de nameservers van je mailserver(s) is een RPKI Route Origin Authorisation (ROA) gepubliceerd.',
detail_mail_rpki_mx_ns_exists_verdict_no_addresses: 'Je domein bevat geen mailservers. Daarom kon deze subtest niet worden uitgevoerd.',
- detail_mail_rpki_mx_ns_valid_exp: 'We testen of de validatie-status van alle IP-adressen van de nameservers van je mailservers (MX) Valid
is. Als er meerdere overlappende route-aankondigingen voor het IP-adres zijn, dan testen we of die allemaal Valid
zijn.
Je hoster (of zijn netwerkprovider) kondigt via het Border Gateway Protocol (BGP) aan voor welke van zijn IP-adresblokken hij inkomend internetverkeer accepteert. Dat doet hij door (delen van) zijn IP-adresblokken (Route Prefix) aan het unieke nummer van zijn providernetwerk (Route Origin ASN) te koppelen, en door deze routeringsinformatie vervolgens te verspreiden. Andere netwerkproviders gebruiken deze route-aankondigingen om te bepalen via welke route ze het verkeer voor de IP-adressen moeten sturen.
Aanvullend kan je hoster (of zijn netwerkprovider) voor iedere route-aankondiging een digitaal ondertekende verklaring met route-autorisatie (Route Origin Authorisation, afgekort: ROA) publiceren met behulp van Resource Public Key Infrastructure (RPKI).
Een andere netwerkprovider die gevraagd wordt om internetverkeer te sturen naar het IP-adres van je server, kan de bijbehorende verklaring cryptografisch controleren. De gecontroleerde inhoud (Validated ROA Payload; afgekort: VRP) omvat welke providernetwerken (VRP ASN) voor ieder opgenomen IP-adresblok (VRP Prefix) geautoriseerd zijn om internetverkeer te ontvangen.
De netwerkprovider kan deze inhoud vervolgens gebruiken om BGP-routes te filteren. Hij kan bijvoorbeeld eventuele Invalid
routes weigeren om te voorkomen dat internetverkeer vanuit zijn netwerk naar ongeautoriseerde providernetwerken wordt gestuurd.
Het vergelijken van route-aankondigingen met route-autorisaties (RPKI Origin Validation; afgekort: ROV) kent de onderstaande drie mogelijk uitkomsten.
Valid
: De route-aankondiging van het desbetreffende IP-adres wordt gematcht door tenminste één gepubliceerde route-autorisatie. Een route-autorisatie is ook matchend voor meer specifieke route-aankondigingen (d.w.z. voor een deel van het IP-adresblok dat in de route-autorisatie staat), tenzij deze meer specifiek zijn dan de limiet die in de route-autorisatie is bepaald (via het maxLength
attribuut).
Invalid
: De route-aankondiging van het desbetreffende IP-adres is wel afgedekt door een route-autorisatie, maar deze matcht niet. Er zijn twee mogelijke oorzaken:
het IP-adresblok (Route Prefix) wordt aangekondigd vanaf een providernetwerk (Route Origin ASN) dat in de route-autorisatie niet is geautoriseerd (resultaat in onderstaande tabel: "invalid (as)");
het IP-adresblok (Route Prefix) dat wordt aangekondigd is kleiner dan wordt toegestaan in de route-autorisatie, d.w.z. overschrijding van maxLength
waarde (resultaat in onderstaande tabel: "invalid (length)").
NotFound
: Er is geen verklaring met route-autorisatie gevonden die de route-aankondiging van het desbetreffende IP-adres afdekt. De routering van internetverkeer naar jouw server is daardoor minder veilig. Neem hierover contact op met je hoster. Deze kan zijn netwerkprovider die eigenaar is van de IP-adressen van je server vragen om route-autorisaties te publiceren.
Wat te doen als het testresultaat de status Invalid toont?
De status Invalid
duidt op een onbedoelde of kwaadwillige route-configuratiefout, die wordt veroorzaakt door je hoster of zijn netwerkprovider (interne fout) óf door een derde partij (externe fout). In beide gevallen kan het leiden tot de onbereikbaarheid van je server of het onderscheppen van internetverkeer naar je server. Neem zo spoedig mogelijk contact op met je hoster. Bij een interne fout moet je hoster zijn netwerkprovider die eigenaar is van de IP-adressen van je server, vragen om de route-configuratiefout te herstellen.
Niveau van vereistheid: Aanbevolen',
+ detail_mail_rpki_mx_ns_valid_exp: 'We testen of de validatie-status van alle IP-adressen van de nameservers van je mailservers (MX) Valid
is. Als er meerdere overlappende route-aankondigingen voor het IP-adres zijn, dan testen we of die allemaal Valid
zijn.
Je hoster (of zijn netwerkprovider) kondigt via het Border Gateway Protocol (BGP) aan voor welke van zijn IP-adresblokken hij inkomend internetverkeer accepteert. Dat doet hij door (delen van) zijn IP-adresblokken (Route Prefix) aan het unieke nummer van zijn providernetwerk (Route Origin ASN) te koppelen, en door deze routeringsinformatie vervolgens te verspreiden. Andere netwerkproviders gebruiken deze route-aankondigingen om te bepalen via welke route ze het verkeer voor de IP-adressen moeten sturen.
Aanvullend kan je hoster (of zijn netwerkprovider) voor iedere route-aankondiging een digitaal ondertekende verklaring met route-autorisatie (Route Origin Authorisation, afgekort: ROA) publiceren met behulp van Resource Public Key Infrastructure (RPKI).
Een andere netwerkprovider die gevraagd wordt om internetverkeer te sturen naar het IP-adres van je server, kan de bijbehorende verklaring cryptografisch controleren. De gecontroleerde inhoud (Validated ROA Payload; afgekort: VRP) omvat welke providernetwerken (VRP ASN) voor ieder opgenomen IP-adresblok (VRP Prefix) geautoriseerd zijn om internetverkeer te ontvangen.
De netwerkprovider kan deze inhoud vervolgens gebruiken om BGP-routes te filteren. Hij kan bijvoorbeeld eventuele Invalid
routes weigeren om te voorkomen dat internetverkeer vanuit zijn netwerk naar ongeautoriseerde providernetwerken wordt gestuurd.
Het vergelijken van route-aankondigingen met route-autorisaties (RPKI Origin Validation; afgekort: ROV) kent de onderstaande drie mogelijk uitkomsten.
1․ Valid
: De route-aankondiging van het desbetreffende IP-adres wordt gematcht door tenminste één gepubliceerde route-autorisatie. Een route-autorisatie is ook matchend voor meer specifieke route-aankondigingen (d.w.z. voor een deel van het IP-adresblok dat in de route-autorisatie staat), tenzij deze meer specifiek zijn dan de limiet die in de route-autorisatie is bepaald (via het maxLength
attribuut).
2․ Invalid
: De route-aankondiging van het desbetreffende IP-adres is wel afgedekt door een route-autorisatie, maar deze matcht niet. Er zijn twee mogelijke oorzaken:
maxLength
waarde (resultaat in onderstaande tabel: "invalid (length)").3․ NotFound
: Er is geen verklaring met route-autorisatie gevonden die de route-aankondiging van het desbetreffende IP-adres afdekt. De routering van internetverkeer naar jouw server is daardoor minder veilig. Neem hierover contact op met je hoster. Deze kan zijn netwerkprovider die eigenaar is van de IP-adressen van je server vragen om route-autorisaties te publiceren.
Wat te doen als het testresultaat de status Invalid toont?
De status Invalid
duidt op een onbedoelde of kwaadwillige route-configuratiefout, die wordt veroorzaakt door je hoster of zijn netwerkprovider (interne fout) óf door een derde partij (externe fout). In beide gevallen verhoogt dit het risico dat je server onbereikbaar wordt of dat internetverkeer naar je server wordt onderschept. Neem zo spoedig mogelijk contact op met je hoster. Bij een interne fout moet je hoster zijn netwerkprovider die eigenaar is van de IP-adressen van je server, vragen om de route-configuratiefout te herstellen. ',
detail_mail_rpki_mx_ns_valid_label: 'Geldigheid van route-aankondiging',
detail_mail_rpki_mx_ns_valid_tech_table: 'Nameserver van MX|BGP Route Prefix|BGP Route Origin ASN|RPKI Origin Validation status',
detail_mail_rpki_mx_ns_valid_verdict_bad: 'Ten minste één IP-adres van de nameservers van je ontvangende mailservers heeft een NotFound
validatie-status. Er is geen RPKI Route Origin Authorization (ROA) gepubliceerd voor de route-aankondiging van ieder van de desbetreffende IP-adressen.',
detail_mail_rpki_mx_ns_valid_verdict_good: 'Alle IP-adressen van de nameservers van je ontvangende mailservers hebben een Valid
validatie-status. De route-aankondiging van deze IP-adressen wordt gematcht door de gepubliceerde RPKI Route Origin Authorisation (ROA).',
- detail_mail_rpki_mx_ns_valid_verdict_invalid: 'Tenminste één IP-adres van de nameservers van je ontvangende mailservers heeft een Invalid
validatie-status. De route-aankondiging van de desbetreffende IP-adressen wordt niet gematcht door de gepubliceerde RPKI Route Origin Authorisation (ROA). Dit duidt op een onbedoelde of kwaadwillige route-configuratiefout, die wordt veroorzaakt door je mailhoster (interne fout) óf door een derde partij (externe fout). In beide gevallen kan het leiden tot de onbereikbaarheid van je server of het onderscheppen van internetverkeer naar je server. Neem zo spoedig mogelijk contact op met je mailhoster. Bij een interne fout moet je mailhoster zijn netwerkprovider die eigenaar is van de IP-adressen van je server, vragen om de route-configuratiefout te herstellen.',
+ detail_mail_rpki_mx_ns_valid_verdict_invalid: 'Tenminste één IP-adres van de nameservers van je ontvangende mailservers heeft een Invalid
validatie-status. De route-aankondiging van de desbetreffende IP-adressen wordt niet gematcht door de gepubliceerde RPKI Route Origin Authorisation (ROA). Dit duidt op een onbedoelde of kwaadwillige route-configuratiefout, die wordt veroorzaakt door je mailhoster (interne fout) óf door een derde partij (externe fout). In beide gevallen verhoogt dit het risico dat je server onbereikbaar wordt of dat internetverkeer naar je server wordt onderschept. Neem zo spoedig mogelijk contact op met je mailhoster. Bij een interne fout moet je mailhoster zijn netwerkprovider die eigenaar is van de IP-adressen van je server, vragen om de route-configuratiefout te herstellen.',
detail_mail_rpki_mx_ns_valid_verdict_not_routed: 'Deze subtest werd niet uitgevoerd, omdat er voor geen van de IP-adressen een route-aankondiging beschikbaar was.',
- detail_mail_rpki_valid_exp: 'We testen of de validatie-status van alle IP-adressen van je mailservers (MX) Valid
is. Als er meerdere overlappende route-aankondigingen voor het IP-adres zijn, dan testen we of die allemaal Valid
zijn.
Je hoster (of zijn netwerkprovider) kondigt via het Border Gateway Protocol (BGP) aan voor welke van zijn IP-adresblokken hij inkomend internetverkeer accepteert. Dat doet hij door (delen van) zijn IP-adresblokken (Route Prefix) aan het unieke nummer van zijn providernetwerk (Route Origin ASN) te koppelen, en door deze routeringsinformatie vervolgens te verspreiden. Andere netwerkproviders gebruiken deze route-aankondigingen om te bepalen via welke route ze het verkeer voor de IP-adressen moeten sturen.
Aanvullend kan je hoster (of zijn netwerkprovider) voor iedere route-aankondiging een digitaal ondertekende verklaring met route-autorisatie (Route Origin Authorisation, afgekort: ROA) publiceren met behulp van Resource Public Key Infrastructure (RPKI).
Een andere netwerkprovider die gevraagd wordt om internetverkeer te sturen naar het IP-adres van je server, kan de bijbehorende verklaring cryptografisch controleren. De gecontroleerde inhoud (Validated ROA Payload; afgekort: VRP) omvat welke providernetwerken (VRP ASN) voor ieder opgenomen IP-adresblok (VRP Prefix) geautoriseerd zijn om internetverkeer te ontvangen.
De netwerkprovider kan deze inhoud vervolgens gebruiken om BGP-routes te filteren. Hij kan bijvoorbeeld eventuele Invalid
routes weigeren om te voorkomen dat internetverkeer vanuit zijn netwerk naar ongeautoriseerde providernetwerken wordt gestuurd.
Het vergelijken van route-aankondigingen met route-autorisaties (RPKI Origin Validation; afgekort: ROV) kent de onderstaande drie mogelijk uitkomsten.
Valid
: De route-aankondiging van het desbetreffende IP-adres wordt gematcht door tenminste één gepubliceerde route-autorisatie. Een route-autorisatie is ook matchend voor meer specifieke route-aankondigingen (d.w.z. voor een deel van het IP-adresblok dat in de route-autorisatie staat), tenzij deze meer specifiek zijn dan de limiet die in de route-autorisatie is bepaald (via het maxLength
attribuut).
Invalid
: De route-aankondiging van het desbetreffende IP-adres is wel afgedekt door een route-autorisatie, maar deze matcht niet. Er zijn twee mogelijke oorzaken:
het IP-adresblok (Route Prefix) wordt aangekondigd vanaf een providernetwerk (Route Origin ASN) dat in de route-autorisatie niet is geautoriseerd (resultaat in onderstaande tabel: "invalid (as)");
het IP-adresblok (Route Prefix) dat wordt aangekondigd is kleiner dan wordt toegestaan in de route-autorisatie, d.w.z. overschrijding van maxLength
waarde (resultaat in onderstaande tabel: "invalid (length)").
NotFound
: Er is geen verklaring met route-autorisatie gevonden die de route-aankondiging van het desbetreffende IP-adres afdekt. De routering van internetverkeer naar jouw server is daardoor minder veilig. Neem hierover contact op met je hoster. Deze kan zijn netwerkprovider die eigenaar is van de IP-adressen van je server vragen om route-autorisaties te publiceren.
Wat te doen als het testresultaat de status Invalid toont?
De status Invalid
duidt op een onbedoelde of kwaadwillige route-configuratiefout, die wordt veroorzaakt door je hoster of zijn netwerkprovider (interne fout) óf door een derde partij (externe fout). In beide gevallen kan het leiden tot de onbereikbaarheid van je server of het onderscheppen van internetverkeer naar je server. Neem zo spoedig mogelijk contact op met je hoster. Bij een interne fout moet je hoster zijn netwerkprovider die eigenaar is van de IP-adressen van je server, vragen om de route-configuratiefout te herstellen.
Niveau van vereistheid: Aanbevolen',
+ detail_mail_rpki_valid_exp: 'We testen of de validatie-status van alle IP-adressen van je mailservers (MX) Valid
is. Als er meerdere overlappende route-aankondigingen voor het IP-adres zijn, dan testen we of die allemaal Valid
zijn.
Je hoster (of zijn netwerkprovider) kondigt via het Border Gateway Protocol (BGP) aan voor welke van zijn IP-adresblokken hij inkomend internetverkeer accepteert. Dat doet hij door (delen van) zijn IP-adresblokken (Route Prefix) aan het unieke nummer van zijn providernetwerk (Route Origin ASN) te koppelen, en door deze routeringsinformatie vervolgens te verspreiden. Andere netwerkproviders gebruiken deze route-aankondigingen om te bepalen via welke route ze het verkeer voor de IP-adressen moeten sturen.
Aanvullend kan je hoster (of zijn netwerkprovider) voor iedere route-aankondiging een digitaal ondertekende verklaring met route-autorisatie (Route Origin Authorisation, afgekort: ROA) publiceren met behulp van Resource Public Key Infrastructure (RPKI).
Een andere netwerkprovider die gevraagd wordt om internetverkeer te sturen naar het IP-adres van je server, kan de bijbehorende verklaring cryptografisch controleren. De gecontroleerde inhoud (Validated ROA Payload; afgekort: VRP) omvat welke providernetwerken (VRP ASN) voor ieder opgenomen IP-adresblok (VRP Prefix) geautoriseerd zijn om internetverkeer te ontvangen.
De netwerkprovider kan deze inhoud vervolgens gebruiken om BGP-routes te filteren. Hij kan bijvoorbeeld eventuele Invalid
routes weigeren om te voorkomen dat internetverkeer vanuit zijn netwerk naar ongeautoriseerde providernetwerken wordt gestuurd.
Het vergelijken van route-aankondigingen met route-autorisaties (RPKI Origin Validation; afgekort: ROV) kent de onderstaande drie mogelijk uitkomsten.
1․ Valid
: De route-aankondiging van het desbetreffende IP-adres wordt gematcht door tenminste één gepubliceerde route-autorisatie. Een route-autorisatie is ook matchend voor meer specifieke route-aankondigingen (d.w.z. voor een deel van het IP-adresblok dat in de route-autorisatie staat), tenzij deze meer specifiek zijn dan de limiet die in de route-autorisatie is bepaald (via het maxLength
attribuut).
2․ Invalid
: De route-aankondiging van het desbetreffende IP-adres is wel afgedekt door een route-autorisatie, maar deze matcht niet. Er zijn twee mogelijke oorzaken:
maxLength
waarde (resultaat in onderstaande tabel: "invalid (length)").3․ NotFound
: Er is geen verklaring met route-autorisatie gevonden die de route-aankondiging van het desbetreffende IP-adres afdekt. De routering van internetverkeer naar jouw server is daardoor minder veilig. Neem hierover contact op met je hoster. Deze kan zijn netwerkprovider die eigenaar is van de IP-adressen van je server vragen om route-autorisaties te publiceren.
Wat te doen als het testresultaat de status Invalid toont?
De status Invalid
duidt op een onbedoelde of kwaadwillige route-configuratiefout, die wordt veroorzaakt door je hoster of zijn netwerkprovider (interne fout) óf door een derde partij (externe fout). In beide gevallen verhoogt dit het risico dat je server onbereikbaar wordt of dat internetverkeer naar je server wordt onderschept. Neem zo spoedig mogelijk contact op met je hoster. Bij een interne fout moet je hoster zijn netwerkprovider die eigenaar is van de IP-adressen van je server, vragen om de route-configuratiefout te herstellen. ',
detail_mail_rpki_valid_label: 'Geldigheid van route-aankondiging',
detail_mail_rpki_valid_tech_table: 'Mailserver|BGP Route Prefix|BGP Route Origin ASN|RPKI Origin Validation status',
detail_mail_rpki_valid_verdict_bad: 'Ten minste één IP-adres van je ontvangende mailservers heeft een NotFound
validatie-status. Er is geen RPKI Route Origin Authorization (ROA) gepubliceerd voor de route-aankondiging van ieder van de desbetreffende IP-adressen.',
detail_mail_rpki_valid_verdict_good: 'Alle IP-adressen van je ontvangende mailservers hebben een Valid
validatie-status. De route-aankondiging van deze IP-adressen wordt gematcht door de gepubliceerde RPKI Route Origin Authorisation (ROA).',
- detail_mail_rpki_valid_verdict_invalid: 'Tenminste één IP-adres van je ontvangende mailservers heeft een Invalid
validatie-status. De route-aankondiging van de desbetreffende IP-adressen wordt niet gematcht door de gepubliceerde RPKI Route Origin Authorisation (ROA). Dit duidt op een onbedoelde of kwaadwillige route-configuratiefout, die wordt veroorzaakt door je mailhoster (interne fout) óf door een derde partij (externe fout). In beide gevallen kan het leiden tot de onbereikbaarheid van je server of het onderscheppen van internetverkeer naar je server. Neem zo spoedig mogelijk contact op met je mailhoster. Bij een interne fout moet je mailhoster zijn netwerkprovider die eigenaar is van de IP-adressen van je server, vragen om de route-configuratiefout te herstellen.',
+ detail_mail_rpki_valid_verdict_invalid: 'Tenminste één IP-adres van je ontvangende mailservers heeft een Invalid
validatie-status. De route-aankondiging van de desbetreffende IP-adressen wordt niet gematcht door de gepubliceerde RPKI Route Origin Authorisation (ROA). Dit duidt op een onbedoelde of kwaadwillige route-configuratiefout, die wordt veroorzaakt door je mailhoster (interne fout) óf door een derde partij (externe fout). In beide gevallen verhoogt dit het risico dat je server onbereikbaar wordt of dat internetverkeer naar je server wordt onderschept. Neem zo spoedig mogelijk contact op met je mailhoster. Bij een interne fout moet je mailhoster zijn netwerkprovider die eigenaar is van de IP-adressen van je server, vragen om de route-configuratiefout te herstellen.',
detail_mail_rpki_valid_verdict_not_routed: 'Deze subtest werd niet uitgevoerd, omdat er voor geen van de IP-adressen een route-aankondiging beschikbaar was.',
detail_mail_tls_cert_hostmatch_exp: 'We testen of de domeinnaam van ieder van je ontvangende mailservers (MX) overeenkomt met de domeinnaam op het gepresenteerde certificaat.
Verzendende mailservers negeren doorgaans het domein op het certificaat. Zonder DNSSEC is de opvraging van het mailserverdomein kwetsbaar voor manipulatie. Daardoor voegt de controle of de domeinnaam op het certificaat overeenkomt met het mailserverdomeinnaam geen enkele authenticiteitswaarde toe. Ontvangende mailservers gebruiken daarom regelmatig zelf-ondertekende certificaten, vaak uitgegeven door een interne (private) certificaatautoriteit.
Voor authenticiteit dient een mailserver gebruikt te maken van DNSSEC en DANE. Een certificaat met domeinnaam die overeenkomt met de domeinnaam van je mailserver is alleen vereist als je gebruik maakt van DANE \'trust anchor assertion\' (DANE-TA, 2).
Zie \'ICT-beveiligingsrichtlijnen voor Transport Layer Security (TLS) v2.1\' van NCSC, richtlijn B3-1.
Niveau van vereistheid: Optioneel / Vereist (alleen als DANE-TA wordt gebruikt)', detail_mail_tls_cert_hostmatch_label: 'Domeinnaam op certificaat', @@ -193,7 +193,7 @@ const internet_nl_messages = { detail_mail_tls_cert_trust_tech_table: 'Mailserver (MX)|Onvertrouwde certificaatketen', detail_mail_tls_cert_trust_verdict_bad: 'De vertrouwensketen van tenminste één van je mailserver-certificaten is niet compleet en/of niet ondertekend door een vertrouwde certificaatautoriteit.', detail_mail_tls_cert_trust_verdict_good: 'De vertrouwensketen van al je mailserver-certificaten is compleet én ondertekend door een vertrouwde certificaatautoriteit.', - detail_mail_tls_cipher_order_exp: 'We testen of je ontvangende mailservers (MX) hun eigen cipher-voorkeur afdwingen (\'I\'), en ciphers aanbieden conform de voorgeschreven volgorde (\'II\').
Als je mailserver alleen \'Goede\' ciphers ondersteunt, dan is deze test niet van toepassing omdat de volgorde dan geen significant beveiligingsvoordeel oplevert.
I. Server afgedwongen cipher-volgorde: Ontvangende mailservers dwingen hun cipher-voorkeur af tijdens de onderhandeling met verzendende mailservers, en accepteren geen voorkeur van de verzendende mailservers;
II. Voorgeschreven volgorde: Ciphers worden aangeboden door de ontvangende mailservers in overeenstemming met de voorgeschreven volgorde waarbij Goede boven Voldoende boven Uit te faseren ciphers worden geprefereerd.
In de bovenstaande tabel met technische details staan alleen de eerst gevonden algoritmeselecties die niet voldoen aan de voorgeschreven volgorde.
Zie \'ICT-beveiligingsrichtlijnen voor Transport Layer Security (TLS) v2.1\' van NCSC, richtlijn B2-5.', + detail_mail_tls_cipher_order_exp: 'We testen of je ontvangende mailservers (MX) hun eigen cipher-voorkeur afdwingen (\'I\'), en ciphers aanbieden conform de voorgeschreven volgorde (\'II\').
Als je mailserver alleen \'Goede\' ciphers ondersteunt, dan is deze test niet van toepassing omdat de volgorde dan geen significant beveiligingsvoordeel oplevert.
I. Server afgedwongen cipher-voorkeur: Ontvangende mailservers dwingen hun cipher-voorkeur af tijdens de onderhandeling met verzendende mailservers, en accepteren geen voorkeur van de verzendende mailservers;
II. Voorgeschreven volgorde: Ciphers worden aangeboden door de ontvangende mailservers in overeenstemming met de voorgeschreven volgorde waarbij Goede boven Voldoende boven Uit te faseren ciphers worden geprefereerd.
In de bovenstaande tabel met technische details staan alleen de eerst gevonden algoritmeselecties die niet voldoen aan de voorgeschreven volgorde.
Zie \'ICT-beveiligingsrichtlijnen voor Transport Layer Security (TLS) v2.1\' van NCSC, richtlijn B2-5.', detail_mail_tls_cipher_order_label: 'Cipher-volgorde', detail_mail_tls_cipher_order_tech_table: 'Mail server (MX)|Eerst gevonden getroffen cipher-paren|Overtreden regel # (\'II-B\')', detail_mail_tls_cipher_order_verdict_bad: 'Tenminste één van je mailservers dwingt niet zijn eigen cipher-voorkeur af (\'I\').', @@ -218,7 +218,7 @@ const internet_nl_messages = { detail_mail_tls_dane_exists_verdict_bad: 'Tenminste één van je mailserverdomeinen bevat geen TLSA-record voor DANE.', detail_mail_tls_dane_exists_verdict_bogus: 'Tenminste één van je mailserverdomeinen bevat geen DNSSEC-bewijs dat DANE TLSA-records niet bestaan. Dit kan leiden tot afleveringsproblemen van mail die aan aan jou gericht is door DANE-validerende mailverstuurders. Vraag je nameserver-beheerder om deze fout op te lossen.', detail_mail_tls_dane_exists_verdict_good: 'Al je mailserverdomeinen bevatten een TLSA-record voor DANE.', - detail_mail_tls_dane_rollover_exp: 'We testen of er een actief schema met tenminste twee DANE TLSA records is om de vervanging van certificaten op je ontvangende mailservers (MX) betrouwbaar te kunnen uitvoeren.
Een dergelijk schema is vooral handig bij het vervangen van je mailserver-certificaten. Het kan voorkomen dat DANE tijdens de vervangingsperiode ongeldig raakt waardoor aan jouw domein gerichte mail niet afgeleverd wordt. Een vervangingsschema voor DANE kan maar hoeft niet continu \'actief\' te zijn.
We adviseren je om één van de twee volgende schema\'s met dubbele DANE TLSA records toe te passen:
Deze subtest accepteert ook andere combinaties van DANE TLSA records, d.w.z. "3 x x" + "3 x x" of "3 x x" + "2 x x". Andere typen dan de bovengenoemde zijn in de regel gevoeliger voor fouten en minder interoperabel.
Niveau van vereistheid: Optioneel', + detail_mail_tls_dane_rollover_exp: 'We testen of er een actief schema met tenminste twee DANE TLSA records is om de vervanging van certificaten op je ontvangende mailservers (MX) betrouwbaar te kunnen uitvoeren.
Een dergelijk schema is vooral handig bij het vervangen van je mailserver-certificaten. Het kan voorkomen dat DANE tijdens de vervangingsperiode ongeldig raakt waardoor aan jouw domein gerichte mail niet afgeleverd wordt. Een vervangingsschema voor DANE kan maar hoeft niet continu \'actief\' te zijn.
We adviseren je om één van de twee volgende schema\'s met dubbele DANE TLSA records toe te passen:
Deze subtest accepteert ook andere combinaties van DANE TLSA records, d.w.z. "3 x x" + "3 x x" of "3 x x" + "2 x x". Andere typen dan de bovengenoemde zijn in de regel gevoeliger voor fouten en minder interoperabel.
Merk op dat als een mailserver tegelijkertijd twee certificaten aanbiedt (één gebaseerd op RSA en één gebaseerd op ECDSA), een afzonderlijk DANE TLSA rollover schema wordt aanbevolen voor ieder certificaat. De subtest controleert niet op dit scenario. Als er slechts één DANE TLSA-record is geconfigureerd voor elk certificaat, dan geeft deze subtest een vals-positief resultaat.
Niveau van vereistheid: Optioneel', detail_mail_tls_dane_rollover_label: 'DANE-vervangingsschema', detail_mail_tls_dane_rollover_tech_table: 'Mailserver (MX)|DANE-vervangingsschema', detail_mail_tls_dane_rollover_verdict_bad: 'Tenminste een van je mailserver-domeinen heeft geen actief DANE-schema voor het betrouwbaar vervangen van certificaat-sleutels.', @@ -228,7 +228,7 @@ const internet_nl_messages = { detail_mail_tls_dane_valid_tech_table: 'Mailserver (MX)|DANE TLSA-record geldig', detail_mail_tls_dane_valid_verdict_bad: 'Tenminste één van je mailservers heeft geen geldige DANE-fingerprints. Óf iemand manipuleerde het antwoord van je mailserver, óf je mailserver heeft een ernstige DANE-configuratiefout. Dit laatste maakt je domeinnaam onbereikbaar voor verzendende mailservers die DANE-fingerprints controleren. Neem zo spoedig mogelijk contact op met je mailprovider.', detail_mail_tls_dane_valid_verdict_good: 'Ieder van je mailservers heeft tenminste één geldige DANE-fingerprint. Daardoor kunnen verzendende mailservers die DANE-verificatie ondersteunen, een geauthenticeerde versleutelde transportverbinding met je ontvangende mailserver(s) opzetten.', - detail_mail_tls_fs_params_exp: 'We testen of de publieke parameters, die in de Diffie-Hellman sleuteluitwisseling worden gebruikt door je mailservers (MX), veilig zijn.
ECDHE: De veiligheid van de ECDHE-sleuteluitwisseling is afhankelijk van de geselecteerde elliptische kromme. We testen of de bitlengte van de gebruikte kromme tenminste 224 bits is. Op dit moment kunnen we niet de naam van de elliptische kromme testen.
DHE: De veiligheid van de Diffie-Hellman Ephemeral (DHE) sleuteluitwisseling is afhankelijk van de lengte van de publieke en geheime sleutels die in de geselecteerde finite field-groep wordt gebruikt. We testen of je publieke DHE-sleutelmateriaal gebruikmaakt van een van de gepredefinieerde finite field-groepen die zijn gespecificeerd in RFC 7919. Zelf-gegenereerde groepen zijn \'Onvoldoende\'.
De grotere sleutellengtes die noodzakelijk zijn voor het gebruik van DHE gaan ten koste van de prestaties. Maak een zorgvuldige afweging en gebruik waar mogelijk ECDHE in plaats van DHE.
RSA als alternatief: Naast ECDHE en DHE, kan RSA gebruikt worden voor sleuteluitwisseling. RSA loopt het risico om onvoldoende veilig te worden (huidige status \'Uit te faseren\'). De publieke RSA-parameters worden getest in de subtest \'Handtekening-parameters van certificaat\'. Overigens heeft RSA voor certificaatverificatie wel de status \'Goed\'.
Zie \'ICT-beveiligingsrichtlijnen voor Transport Layer Security (TLS) v2.1\' van NCSC, richtlijn B5-1 en tabel 9 voor ECDHE, en richtlijn B6-1 en tabel 10 voor DHE.
Elliptische krommen voor ECDHE
secp384r1
, secp256r1
, x448
, en x25519
secp224r1
Finite field-groepen voor DHE
Voldoende:
64852d6890ff9e62eecd1ee89c72af9af244dfef5b853bcedea3dfd7aade22b3
c410cc9c4fd85d2c109f7ebe5930ca5304a52927c0ebcb1a11c5cf6b2386bbab
Uit te faseren:
9ba6429597aeed2d8617a7705b56e96d044f64b07971659382e426675105654b
Onvoldoende: Andere groepen
Let op: de bovenstaande namen zijn gebaseerd op de IANA naamgevingsconventies. Soms worden alternatieve namen gebruikt om te verwijzen naar dezelfde krommen, zoals prime256v1
(ANSI) en NIST P-256
voor secp256r1
.',
+ detail_mail_tls_fs_params_exp: 'We testen of de publieke parameters, die in de Diffie-Hellman sleuteluitwisseling worden gebruikt door je mailservers (MX), veilig zijn.
ECDHE: De veiligheid van de ECDHE-sleuteluitwisseling is afhankelijk van de geselecteerde elliptische kromme. We testen of de bitlengte van de gebruikte kromme tenminste 224 bits is. Op dit moment kunnen we niet de naam van de elliptische kromme testen.
DHE: De veiligheid van de Diffie-Hellman Ephemeral (DHE) sleuteluitwisseling is afhankelijk van de lengte van de publieke en geheime sleutels die in de geselecteerde finite field-groep wordt gebruikt. We testen of je publieke DHE-sleutelmateriaal gebruikmaakt van een van de gepredefinieerde finite field-groepen die zijn gespecificeerd in RFC 7919. Zelf-gegenereerde groepen zijn \'Onvoldoende\'.
De grotere sleutellengtes die noodzakelijk zijn voor het gebruik van DHE gaan ten koste van de prestaties. Maak een zorgvuldige afweging en gebruik waar mogelijk ECDHE in plaats van DHE.
RSA als alternatief: Naast ECDHE en DHE, kan RSA gebruikt worden voor sleuteluitwisseling. RSA loopt het risico om onvoldoende veilig te worden (huidige status \'Uit te faseren\'). De publieke RSA-parameters worden getest in de subtest \'Handtekening-parameters van certificaat\'. Overigens heeft RSA voor certificaatverificatie wel de status \'Goed\'.
Zie \'ICT-beveiligingsrichtlijnen voor Transport Layer Security (TLS) v2.1\' van NCSC, richtlijn B5-1 en tabel 9 voor ECDHE, en richtlijn B6-1 en tabel 10 voor DHE.
Elliptische krommen voor ECDHE
secp384r1
, secp256r1
, x448
, en x25519
secp224r1
Finite field-groepen voor DHE
Voldoende:
64852d6890ff9e62eecd1ee89c72af9af244dfef5b853bcedea3dfd7aade22b3
c410cc9c4fd85d2c109f7ebe5930ca5304a52927c0ebcb1a11c5cf6b2386bbab
Uit te faseren:
Onvoldoende: Andere groepen
Let op: de bovenstaande namen zijn gebaseerd op de IANA naamgevingsconventies. Soms worden alternatieve namen gebruikt om te verwijzen naar dezelfde krommen, zoals prime256v1
(ANSI) en NIST P-256
voor secp256r1
.',
detail_mail_tls_fs_params_label: 'Sleuteluitwisselingsparameters',
detail_mail_tls_fs_params_tech_table: 'Mailserver (MX)|Getroffen parameters|Veiligheidsniveau',
detail_mail_tls_fs_params_verdict_bad: 'Tenminste één van je mailservers ondersteunt onvoldoende veilige parameters voor Diffie-Hellman-sleuteluitwisseling.',
@@ -247,7 +247,7 @@ const internet_nl_messages = {
detail_mail_tls_ocsp_stapling_verdict_bad: 'OUTDATED TEXT; TEST NOT USED
TODO',
detail_mail_tls_ocsp_stapling_verdict_good: 'OUTDATED TEXT; TEST NOT USED
TODO',
detail_mail_tls_ocsp_stapling_verdict_ok: 'OUTDATED TEXT; TEST NOT USED
TODO',
- detail_mail_tls_renegotiation_client_exp: '
We testen of een verzendende mailserver een renegotiation kan initiëren met jouw ontvangende mailservers (MX).
In het algemeen is het niet nodig om clients de mogelijkheid te bieden om een renegotiation te initiëren (client-initiated renegotiation). Bovendien komt een ontvangende mailserver hierdoor binnen een TLS-verbinding bloot te staan aan DoS-aanvallen. Een aanvaller kan ook zonder renegotiation op initiatief van een client soortgelijke DoS-aanvallen uitvoeren door veel parallelle TLS-verbindingen te openen. Dergelijke aanvallen zijn echter eenvoudiger te traceren en met de standaardmaatregelen te mitigeren. Merk op dat client-initiated renegotiation impact heeft op de beschikbaarheid en niet op de vertrouwelijkheid.
Zie \'ICT-beveiligingsrichtlijnen voor Transport Layer Security (TLS) v2.1\' van NCSC, richtlijn 8-1 en tabel 13.
Niveau van vereistheid: Optioneel
Client-initiated renegotiation
We testen of een verzendende mailserver een renegotiation kan initiëren met jouw ontvangende mailservers (MX).
In het algemeen is het niet nodig om clients de mogelijkheid te bieden om een renegotiation te initiëren (client-initiated renegotiation). Bovendien komt een ontvangende mailserver hierdoor binnen een TLS-verbinding bloot te staan aan DoS-aanvallen. Een aanvaller kan ook zonder renegotiation op initiatief van een client soortgelijke DoS-aanvallen uitvoeren door veel parallelle TLS-verbindingen te openen. Dergelijke aanvallen zijn echter eenvoudiger te traceren en met de standaardmaatregelen te mitigeren. Merk op dat client-initiated renegotiation impact heeft op de beschikbaarheid en niet op de vertrouwelijkheid.
Zie \'ICT-beveiligingsrichtlijnen voor Transport Layer Security (TLS) v2.1\' van NCSC, richtlijn 8-1 en tabel 13.
Niveau van vereistheid: Optioneel
Client-initiated renegotiation
Vanwege performance-redenen worden maximaal tien mailservers via of IPv6 of IPv4 getest voor STARTTLS en DANE.
Merk op dat de e-mailtest niet terugvalt op A/AAAA-records voor mailservers in geval van afwezigheid van een MX-record.
Niet ontvangende domeinnaam:
Geen MX: In het geval dat je domein geen A/AAAA-records heeft en je er geen mail op wenst te ontvangen, adviseren we je om helemaal geen MX-record te configureren (dus ook geen "Null MX" record).
Als we een van de twee bovenstaande gevallen ontdekken, zijn de subtesten in de STARTTLS- en DANE-categorie niet van toepassing. Dit geldt ook voor de mailserver-specifieke subtests in de categorieën voor IPv6 en DNSSEC. Andere subtesten van de e-mailtest (bijv. voor DMARC) zijn nog steeds van toepassing.
Voor een "good practice voor domeinnamen zonder mail" zie de uitleg van de "DMARC-policy" subtest.', + detail_mail_tls_starttls_exists_exp: 'We testen of je ontvangende mailservers (MX) ondersteuning bieden voor STARTTLS. Als dat het geval is, dan testen we in de subtesten van deze testcategorie of STARTTLS ook voldoende veilig is geconfigureerd.
Vanwege performance-redenen worden maximaal tien mailservers via of IPv6 of IPv4 getest voor STARTTLS en DANE.
Merk op dat de e-mailtest niet terugvalt op A/AAAA-records voor mailservers in geval van afwezigheid van een MX-record.
Niet ontvangende domeinnaam:
Geen MX: In het geval dat je domein geen A/AAAA-records heeft en je er geen mail op wenst te ontvangen, adviseren we je om helemaal geen MX-record te configureren (dus ook geen "Null MX" record).
Als we een van de twee bovenstaande gevallen ontdekken, zijn de subtesten in de STARTTLS- en DANE-categorie niet van toepassing. Dit geldt ook voor de mailserver-specifieke subtests in de categorieën voor IPv6 en DNSSEC. Andere subtesten van de e-mailtest (bijv. voor DMARC) zijn nog steeds van toepassing.
Voor een "good practice voor domeinnamen zonder mail" zie de uitleg van de "DMARC-policy" subtest.',
detail_mail_tls_starttls_exists_label: 'STARTTLS beschikbaar',
detail_mail_tls_starttls_exists_tech_table: 'Mailserver (MX)|STARTTLS',
detail_mail_tls_starttls_exists_verdict_bad: 'Tenminste één van je mailservers biedt geen STARTTLS aan.',
detail_mail_tls_starttls_exists_verdict_good: 'Al je mailservers bieden STARTTLS aan.',
detail_mail_tls_starttls_exists_verdict_invalid_null_mx: 'Je domeinnaam adverteert een "Null MX" record dat aangeeft dat deze geen e-mail accepteert. Echter, óf je domeinnaam heeft geen A/AAAA records, waardoor het "Null MX" record onnodig is. Óf op je domeinnaam is een ontvangende mailserver ingesteld door een ander MX record, waardoor de "Null MX" tegenstrijdig is.',
- detail_mail_tls_starttls_exists_verdict_no_null_mx: 'Er zijn geen ontvangende mailservers (MX) ingesteld op je domeinnaam die wel A/AAAA records heeft. We adviseren je om duidelijk te laten zien dat je domeinnaam geen e-mail accepteert door een "Null MX" record te publiceren. Gebruik geen "Null MX"-record en stel een MX in als je wel e-mail wil verzenden vanaf deze domeinnaam, aangezien ontvangende servers e-mail met een ongeldig retouradres kunnen weigeren.',
+ detail_mail_tls_starttls_exists_verdict_no_null_mx: 'Er zijn geen ontvangende mailservers (MX) ingesteld op je domein dat A/AAAA-records heeft en dat een SPF-record heeft met alleen de term -all
. We raden je aan een "Null MX" record in te stellen om expliciet aan te geven dat je domein geen e-mail accepteert. Vanwege je configuratie zijn de subtests in de categorie STARTTLS en DANE en de mailserver-specifieke subtests in de categorieën IPv6 en DNSSEC niet van toepassing.',
detail_mail_tls_starttls_exists_verdict_null_mx: 'Je domeinnaam die A/AAAA-records heeft, geeft met een "Null MX" record duidelijk aan geen e-mail te accepteren. Dat is prima als je geen e-mail wilt ontvangen. Gebruik geen "Null MX"-record en stel een MX in als je wel e-mail wil verzenden vanaf deze domeinnaam, aangezien ontvangende servers e-mail met een ongeldig retouradres kunnen weigeren.',
detail_mail_tls_starttls_exists_verdict_null_mx_with_other_mx: 'Je domeinnaam adverteert een "Null MX" record dat aangeeft dat deze geen e-mail accepteert. Echter, op je domeinnaam is een ontvangende mailserver ingesteld door een ander MX record, waardoor de "Null MX" tegenstrijdig is.',
detail_mail_tls_starttls_exists_verdict_null_mx_without_a_aaaa: 'Je domeinnaam adverteert een "Null MX" record dat aangeeft dat deze geen e-mail accepteert. Echter, je domeinnaam heeft geen A/AAAA records, waardoor het "Null MX" record onnodig is.',
detail_mail_tls_starttls_exists_verdict_other: 'Tenminste één van je mailservers is onbereikbaar.',
- detail_mail_tls_starttls_exists_verdict_other_2: 'Er zijn geen ontvangende mailservers (MX) ingesteld op je domeinnaam die geen A/AAAA records heeft. Dat is prima als je geen e-mail wilt ontvangen. ',
+ detail_mail_tls_starttls_exists_verdict_other_2: 'Het SPF-record op je domeinnaam geeft aan dat je domeinnaam kan worden gebruikt voor het verzenden van e-mail. Je domeinnaam heeft echter geen ontvangende mailserver (MX), wat de bezorgbaarheid van je verzonden e-mail kan belemmeren omdat het ontbreken van een MX door ontvangers kan worden gezien als een indicator voor spam. Als je daarom echt mail vanaf deze domeinnaam wilt verzenden, configureer dan een MX. Als je echter geen mail wilt versturen vanaf deze domeinnaam, configureer dan een SPF-record met alleen de term -all
en daarnaast een "Null MX" record als je domeinnaam A/AAAA-records heeft. Vanwege je configuratie zijn de subtests in de categorie STARTTLS en DANE en de mailserver-specifieke subtests in de categorieën IPv6 en DNSSEC niet van toepassing.',
detail_mail_tls_version_exp: '
We testen of je ontvangende mailservers (MX) alleen veilige TLS-versies ondersteunen.
Een mailserver kan meer dan één TLS-versie ondersteunen.
Merk op dat behoorlijk wat mailservers alleen oudere TLS-versies ondersteunen. Als de verzendende en ontvangende mailserver niet allebei dezelfde TLS-versie ondersteunen, dan zullen ze doorgaans terugvallen op onversleuteld transport. Om die reden kan het raadzaam zijn om de TLS-versies met status \'uit te faseren\' voorlopig te blijven ondersteunen. Maak op basis van loggegevens een weloverwogen keuze voor het uitzetten van deze \'uit te faseren\' TLS-versies.
Zie \'ICT-beveiligingsrichtlijnen voor Transport Layer Security (TLS) v2.1\' van NCSC, richtlijn B1-1 en tabel 1
Versie
[Note: this content label is currently not used. See #1046.]', detail_tech_data_http_securitytxt_invalid_charset: 'Fout: Charset parameter in Content-Type header moet \'utf-8\' zijn indien aanwezig.', detail_tech_data_http_securitytxt_invalid_expiry: 'Fout: Datum en tijd in het veld \'Expires\' moeten worden geformatteerd conform ISO 8601 (regel {line_no}).', - detail_tech_data_http_securitytxt_invalid_lang: 'Fout: De waarde in het veld \'Preferred-Languages\' moet overeenkomen met één of meer taal-tags zoals gedefinieerd in RFC 5646, gescheiden door komma\'s (regel {line_no}).', + detail_tech_data_http_securitytxt_invalid_lang: 'Fout: De waarde in het veld \'Preferred-Languages\' moet overeenkomen met één of meer taal-tags zoals gedefinieerd in RFC 5646, gescheiden door komma\'s (regel {line_no}).', detail_tech_data_http_securitytxt_invalid_line: 'Fout: Regel moet een veldnaam en -waarde bevatten, tenzij de regel leeg is of een commentaar bevat (regel {line_no}).', detail_tech_data_http_securitytxt_invalid_media: 'Fout: Media type in Content-Type header moet \'text/plain\' zijn.', + detail_tech_data_http_securitytxt_invalid_uri_scheme: 'Fout: De toegang tot het bestand security.txt moet het HTTPS-schema gebruiken.
[Note: this content label is currently not used. See #1046.]',
detail_tech_data_http_securitytxt_location: 'Fout: security.txt stond op het top-level pad (verouderde locatie), maar moet geplaatst worden onder het \'/.well-known/\' pad.',
detail_tech_data_http_securitytxt_long_expiry: 'Aanbeveling: Datum en tijd in het veld \'Expires\' zouden minder dan een jaar in de toekomst moeten liggen (regel {line_no}).',
detail_tech_data_http_securitytxt_multi_expire: 'Fout: Het veld \'Expires\' moet niet meer dan één keer voorkomen.',
@@ -342,7 +345,7 @@ const internet_nl_messages = {
detail_tech_data_http_securitytxt_retrieved_from: 'security.txt opgehaald van {hostname}.',
detail_tech_data_http_securitytxt_signed_format_issue: 'Fout: Ondertekende security.txt moet beginnen met de kop \'-----BEGIN PGP SIGNED MESSAGE-----\'.',
detail_tech_data_http_securitytxt_unknown_field: 'Notificatie: security.txt bevat een onbekend veld. Ofwel het gaat om een aangepast veld dat misschien niet algemeen ondersteund wordt, ofwel er is sprake van een typfout in een gestandaardiseerde veldnaam (regel {line_no}).',
- detail_tech_data_http_securitytxt_utf8: 'Fout: Inhoud moet utf-8 gecodeerd zijn.',
+ detail_tech_data_http_securitytxt_utf8: 'Fout: Inhoud moet gecodeerd zijn met UTF-8 in Net-Unicode vorm.',
detail_tech_data_insecure: 'insecure',
detail_tech_data_insufficient: 'onvoldoende',
detail_tech_data_no: 'nee',
@@ -356,29 +359,29 @@ const internet_nl_messages = {
detail_tech_data_yes: 'ja',
detail_verdict_could_not_test: 'Testfout. Graag later opnieuw proberen.',
detail_verdict_not_tested: 'Deze subtest is niet uitgevoerd, omdat een bovenliggende test waarvan deze subtest afhankelijk is een negatief testresultaat gaf, of omdat onvoldoende informatie beschikbaar was om de subtest uit te kunnen voeren. ',
- detail_web_appsecpriv_http_csp_exp: 'We testen of je webserver een HTTP-header voor Content-Security-Policy
(CSP) aanbiedt. Verder controleren we op verschillende veilige CSP-instellingen, hoewel we de effectiviteit van je CSP-configuratie niet uitputtend testen.
CSP beschermt een website tegen aanvallen via content injection zoals cross-site scripting (XSS). Door met CSP een \'allowlist\' met bronnen van goedgekeurde content in te stellen, kan je voorkomen dat browsers die jouw website tonen daarbij kwaadaardige content van aanvallers laden.
We testen op onderstaande regels die gebaseerd zijn op good pracrices voor een veilige CSP-configuratie.
default-src
richtlijn moet zijn gedefinieerd en de waarde moet zijn óf \'none\'
, óf \'self\'
en/of één of meer URL\'s van het domein zelf (inclusief het subdomein of superdomein ervan). Dit is om een restrictief default fallback beleid te hebben voor bron-typen die gebruikt worden in je website waarvoor geen specifiek beleid is gedefinieerd. Naast deze waarden kan \'report-sample\'
als waarde zijn ingesteld als je wil dat in de \'violation reports\' code-voorbeelden worden opgenomen.base-uri
richtlijn moet zijn gedefinieerd en de waarde moet zijn óf \'none\'
, óf \'self\'
en/of één of meer URL\'s van het domein zelf (inclusief het subdomein of superdomein ervan). Dit limiteert de baseURI
zodat de injectie van een gemanipuleerd <base>
element wordt geblokkeerd. Dit beperkt de mogelijkheden van aanvallers om de locaties van bronnen (bijv. scripts) die vanaf relatieve URL\'s worden geladen te manipuleren.frame-src
richtlijn moet zijn gebruikt (hetzij per definitie of via de fallback naar child-src
en default-src
) en de waarde moet zijn óf \'none\'
, óf \'self\'
en/of één of meer specifieke URL\'s. Dit voorkomt dat inhoud van niet-geautoriseerde locaties wordt geframed of ge-embed in je website (met HTML-elementen zoals <frame>
en <iframe>
).frame-ancestors
richtlijn moet zijn gedefinieerd zijn en de waarde moet zijn óf \'none\'
, óf \'self\'
en/of één of meer specifieke URL\'s. Dit voorkomt dat ongeautoriseerde websites je website kunnen framen of embedden (met de HTML-elementen <frame>
, <iframe>
, <object>
, <embed>
, of <applet>
).form-action
richtlijn moet zijn gedefinieerd en de waarde ervan moet zijn óf \'none\'
, óf \'self\'
en/of één of meer specifieke URLs. Dit limiteert de URL\'s die gebruikt kunnen worden als doel voor formulierverzendingen.unsafe-inline
, unsafe-eval
en unsafe-hashes
moeten niet gebruikt worden, omdat deze XSS-aanvallen mogelijk maken.data:
moet niet gebruikt worden in default-src
, script-src
en object-src
, omdat dit XSS-aanvallen mogelijk maakt.http://
schema of een domein zonder schema moet niet worden gebruikt, omdat hiermee bronnen kunnen worden gedownload over een onveilige verbinding. Gebruik in plaats daarvan het https://
schema.*
) voor volledige host-gedeelte van een URL moet niet gebruikt worden in een CSP-richtlijn, omdat daardoor iedere externe bron is toegestaan. Gebruik bovendien niet alleen https:
omdat dit gelijk staat aan https://*
. Specificeer altijd het hoofddomein (bijvoorbeeld https://scripts.example.nl
of https://*.example.nl
). 127.0.0.1
moet niet gebruikt worden in een CSP-richtlijn, omdat dit aanvallen via content injection mogelijk maakt in een gecompromitteerd systeem.Aanvullende aanbevelingen:
Sta alleen zo specifiek mogelijke domeinen toe in CSP-richtlijnen. Dit wordt in deze subtest voor CSP tot op zekere hoogte automatisch getest.
*.nl
) of SLD (*.gov.uk
) toe, hoewel we hier momenteel niet op testen. default-src
(bijvoorbeeld voorbeeld2.gov.nl
voor voorbeeld1.gov.nl
), hoewel we hier momenteel niet op testen.Gebruik niet inline scripts of styles. In gevallen waarin je het gebruik van inline scripts of styles niet kunt vermijden, gebruik dan niet unsafe-inline
(zoals hierboven vermeld) maar gebruik bij voorkeur CSP-hashes of anders CSP-nonces.
<meta>
element om je CSP-beleid te serveren. Het laatste is minder veilig en ondersteunt niet alle CSP-richtlijnen (bijvoorbeeld niet het vereiste frame-ancestors
). Daarom controleren we niet op CSP die wordt aangeboden via het HTML <meta>
-element.Content-Security-Policy-Report-Only
om te experimenteren met je CSP-configuratie door het effect ervan te controleren maar nog niet af te dwingen.none
. Merk bovendien op dat als er andere bronnen in een bronnenlijst naast none
staan, het attribuut none
wordt genegeerd. Zie ook \'Webapplicatie-richtlijnen van NCSC, Verdieping\', richtlijn U/PW.03.
Niveau van vereistheid: Aanbevolen',
+ detail_web_appsecpriv_http_csp_exp: 'We testen of je webserver een HTTP-header voor Content-Security-Policy
(CSP) aanbiedt. Verder controleren we op verschillende veilige CSP-instellingen, hoewel we de effectiviteit van je CSP-configuratie niet uitputtend testen.
CSP beschermt een website tegen aanvallen via content injection zoals cross-site scripting (XSS). Door met CSP een \'allowlist\' met bronnen van goedgekeurde content in te stellen, kan je voorkomen dat browsers die jouw website tonen daarbij kwaadaardige content van aanvallers laden.
We testen op onderstaande regels die gebaseerd zijn op good pracrices voor een veilige CSP-configuratie.
default-src
richtlijn moet zijn gedefinieerd en de waarde moet zijn óf \'none\'
, óf \'self\'
en/of één of meer URL\'s van het domein zelf (inclusief het subdomein of superdomein ervan). Dit is om een restrictief default fallback beleid te hebben voor bron-typen die gebruikt worden in je website waarvoor geen specifiek beleid is gedefinieerd. Naast deze waarden kan \'report-sample\'
als waarde zijn ingesteld als je wil dat in de \'violation reports\' code-voorbeelden worden opgenomen.base-uri
richtlijn moet zijn gedefinieerd en de waarde moet zijn óf \'none\'
, óf \'self\'
en/of één of meer URL\'s van het domein zelf (inclusief het subdomein of superdomein ervan). Dit limiteert de baseURI
zodat de injectie van een gemanipuleerd <base>
element wordt geblokkeerd. Dit beperkt de mogelijkheden van aanvallers om de locaties van bronnen (bijv. scripts) die vanaf relatieve URL\'s worden geladen te manipuleren.frame-src
richtlijn moet zijn gebruikt (hetzij per definitie of via de fallback naar child-src
en default-src
) en de waarde moet zijn óf \'none\'
, óf \'self\'
en/of één of meer specifieke URL\'s. Dit voorkomt dat inhoud van niet-geautoriseerde locaties wordt geframed of ge-embed in je website (met HTML-elementen zoals <frame>
en <iframe>
).frame-ancestors
richtlijn moet zijn gedefinieerd zijn en de waarde moet zijn óf \'none\'
, óf \'self\'
en/of één of meer specifieke URL\'s. Dit voorkomt dat ongeautoriseerde websites je website kunnen framen of embedden (met de HTML-elementen <frame>
, <iframe>
, <object>
, <embed>
, of <applet>
).form-action
richtlijn moet zijn gedefinieerd en de waarde ervan moet zijn óf \'none\'
, óf \'self\'
en/of één of meer specifieke URLs. Dit limiteert de URL\'s die gebruikt kunnen worden als doel voor formulierverzendingen.unsafe-inline
, unsafe-eval
en unsafe-hashes
moeten niet gebruikt worden, omdat deze XSS-aanvallen mogelijk maken.data:
moet niet gebruikt worden in default-src
, script-src
en object-src
, omdat dit XSS-aanvallen mogelijk maakt.http://
schema of een domein zonder schema moet niet worden gebruikt, omdat hiermee bronnen kunnen worden gedownload over een onveilige verbinding. Gebruik in plaats daarvan het https://
schema.*
) voor volledige host-gedeelte van een URL moet niet gebruikt worden in een CSP-richtlijn, omdat daardoor iedere externe bron is toegestaan. Gebruik bovendien niet alleen https:
omdat dit gelijk staat aan https://*
. Specificeer altijd het hoofddomein (bijvoorbeeld https://scripts.example.nl
of https://*.example.nl
). 127.0.0.1
moet niet gebruikt worden in een CSP-richtlijn, omdat dit aanvallen via content injection mogelijk maakt in een gecompromitteerd systeem.Aanvullende aanbevelingen:
Sta alleen zo specifiek mogelijke domeinen toe in CSP-richtlijnen. Dit wordt in deze subtest voor CSP tot op zekere hoogte automatisch getest.
*.nl
) of SLD (*.gov.uk
) toe, hoewel we hier momenteel niet op testen. default-src
(bijvoorbeeld voorbeeld2.gov.nl
voor voorbeeld1.gov.nl
), hoewel we hier momenteel niet op testen.Gebruik niet inline scripts of styles. In gevallen waarin je het gebruik van inline scripts of styles niet kunt vermijden, gebruik dan niet unsafe-inline
(zoals hierboven vermeld) maar gebruik bij voorkeur CSP-hashes of anders CSP-nonces.
<meta>
element om je CSP-beleid te serveren. Het laatste is minder veilig en ondersteunt niet alle CSP-richtlijnen (bijvoorbeeld niet het vereiste frame-ancestors
). Daarom controleren we niet op CSP die wordt aangeboden via het HTML <meta>
-element.Content-Security-Policy-Report-Only
om te experimenteren met je CSP-configuratie door het effect ervan te controleren maar nog niet af te dwingen.none
. Merk bovendien op dat als er andere bronnen in een bronnenlijst naast none
staan, het attribuut none
wordt genegeerd.Opmerking over IPv6/IPv4: vanwege performance-redenen worden alle testen in de categorie \'Beveiligingsopties\' alleen uitgevoerd voor het eerste beschikbare IPv6- en IPv4-adres.
Zie ook \'Webapplicatie-richtlijnen van NCSC, Verdieping\', richtlijn U/PW.03.
Niveau van vereistheid: Aanbevolen',
detail_web_appsecpriv_http_csp_label: 'Content-Security-Policy',
detail_web_appsecpriv_http_csp_tech_table: 'Webserver-IP-adres|Bevindingen',
detail_web_appsecpriv_http_csp_verdict_bad: 'Je webserver biedt geen Content-Security-Policy (CSP) aan, of biedt CSP aan met bepaalde onveilige instellingen .',
detail_web_appsecpriv_http_csp_verdict_good: 'Je webserver biedt Content-Security-Policy (CSP) aan en maakt geen gebruik van bepaalde onveilige CSP-instellingen.',
- detail_web_appsecpriv_http_referrer_policy_exp: 'We testen of je webserver een HTTP-header voor Referrer-Policy
aanbiedt met een voldoende veilige en privacybeschermende policy-waarde. Met deze policy instrueert je webserver browsers of, wat en wanneer referrer-gegevens moeten worden verzonden naar de website waar de gebruiker naartoe navigeert vanaf jouw website. Deze referrer-gegevens worden in de Referer
-header door de browser verzonden naar de website waar de gebruiker naartoe navigeert. Deze navigatie hoeft niet per se domeinoverschrijdend te zijn.
De gegevens in de Referer
header worden meestal gebruikt voor analytics en logging. Er kunnen echter privacy- en beveiligingsrisico\'s zijn. De gegevens kunnen bijvoorbeeld worden gebruikt voor het volgen van gebruikers en de gegevens kunnen uitlekken naar derden die de verbinding afluisteren. Met de HTTP-header voor Referrer-Policy
kun je deze risico\'s beperken door het verzenden van referrer-gegevens te controleren en zelfs te minimaliseren.
We raden je aan om een weloverwogen beslissing te nemen, met privacy- en beveiligingsrisico\'s in gedachten, over het gebruik van een van de policy-waarden uit de eerste twee categorieën hieronder.
1. Goed
no-referrer
same-origin
Met deze policy-waarden worden er geen gevoelige referrer-gegevens naar derden verzonden.
2. Waarschuwing
strict-origin
strict-origin-when-cross-origin
(default waarde van browsers; zie ook onder aanvullende opmerking 2)Met deze policy-waarden worden basis referrer-gegevens, die gevoelig kunnen zijn, alleen via beveiligde verbindingen (HTTPS) naar derden verzonden. Daarom zouden deze waarden alleen gebruikt moeten worden als dit noodzakelijk en wettelijk toegestaan is.
3. Slecht
no-referrer-when-downgrade
origin-when-cross-origin
origin
unsafe-url
Met deze policy-waarden worden alle of alleen basis referrer-gegevens, die gevoelig kunnen zijn, mogelijk via onveilige verbindingen (HTTP) naar derden verzonden. Daarom moeten deze waarden niet worden gebruikt.
Aanvullende opmerkingen:
strict-origin-when-cross-origin
is de default policy-waarde wanneer er geen Referrer-Policy
is gepubliceerd zoals voorgeschreven in de huidige "Editor\'s Draft" van de Referrer-Policy
standaard en deze default wordt gebruikt door alle nieuwste grote browsers. Merk op dat sommige gebruikers nog steeds een ander default waarde geconfigureerd kunnen hebben in hun browser.Referrer-Policy
header als mechanisme om je referrer policy aan te bieden. We raden niet aan om het HTML <meta>
element of het HTML referrerpolicy
content attribuut te gebruiken om je referrer policy te publiceren, vooral omdat de secties die deze methoden beschrijven in de standaard gemarkeerd zijn als "niet normatief". Daarom controleren we niet op een referrer policy die wordt aangeboden via de laatste twee methoden.Referrer-Policy
headers kan sturen, en dat een Referrer-Policy
header meerdere waarden kan bevatten. Onbekende waarden worden genegeerd door de browser en alleen de laatst bekende waarde wordt gebruikt. Dit maakt het mogelijk om toekomstig gestandaardiseerde policy-waarden te gebruiken die nog niet door alle browsers worden ondersteund. Op dit moment ondersteunen echter alle nieuwste grote browsers de bovenstaande policy-waarden onder "Goed" en "Waarschuwing". Niveau van vereistheid: Aanbevolen',
+ detail_web_appsecpriv_http_referrer_policy_exp: 'We testen of je webserver een HTTP-header voor Referrer-Policy
aanbiedt met een voldoende veilige en privacybeschermende policy-waarde. Met deze policy instrueert je webserver browsers of, wat en wanneer referrer-gegevens moeten worden verzonden naar de website waar de gebruiker naartoe navigeert vanaf jouw website. Deze referrer-gegevens worden in de Referer
-header door de browser verzonden naar de website waar de gebruiker naartoe navigeert. Deze navigatie hoeft niet per se domeinoverschrijdend te zijn.
De gegevens in de Referer
header worden meestal gebruikt voor analytics en logging. Er kunnen echter privacy- en beveiligingsrisico\'s zijn. De gegevens kunnen bijvoorbeeld worden gebruikt voor het volgen van gebruikers en de gegevens kunnen uitlekken naar derden die de verbinding afluisteren. Met de HTTP-header voor Referrer-Policy
kun je deze risico\'s beperken door het verzenden van referrer-gegevens te controleren en zelfs te minimaliseren.
We raden je aan om een weloverwogen beslissing te nemen, met privacy- en beveiligingsrisico\'s in gedachten, over het gebruik van een van de policy-waarden uit de eerste twee categorieën hieronder.
1. Goed
no-referrer
same-origin
Met deze policy-waarden worden er geen gevoelige referrer-gegevens naar derden verzonden.
2. Waarschuwing
strict-origin
strict-origin-when-cross-origin
(default waarde van browsers; zie ook onder aanvullende opmerking 2)Met deze policy-waarden worden basis referrer-gegevens, die gevoelig kunnen zijn, alleen via beveiligde verbindingen (HTTPS) naar derden verzonden. Daarom zouden deze waarden alleen gebruikt moeten worden als dit noodzakelijk en wettelijk toegestaan is.
3. Slecht
no-referrer-when-downgrade
origin-when-cross-origin
origin
unsafe-url
Met deze policy-waarden worden alle of alleen basis referrer-gegevens, die gevoelig kunnen zijn, mogelijk via onveilige verbindingen (HTTP) naar derden verzonden. Daarom moeten deze waarden niet worden gebruikt.
Aanvullende opmerkingen:
strict-origin-when-cross-origin
is de default policy-waarde wanneer er geen Referrer-Policy
is gepubliceerd zoals voorgeschreven in de huidige "Editor\'s Draft" van de Referrer-Policy
standaard en deze default wordt gebruikt door alle nieuwste grote browsers. Merk op dat sommige gebruikers nog steeds een ander default waarde geconfigureerd kunnen hebben in hun browser.Referrer-Policy
header als mechanisme om je referrer policy aan te bieden. We raden niet aan om het HTML <meta>
element of het HTML referrerpolicy
content attribuut te gebruiken om je referrer policy te publiceren, vooral omdat de secties die deze methoden beschrijven in de standaard gemarkeerd zijn als "niet normatief". Daarom controleren we niet op een referrer policy die wordt aangeboden via de laatste twee methoden.Referrer-Policy
headers kan sturen, en dat een Referrer-Policy
header meerdere waarden kan bevatten. Onbekende waarden worden genegeerd door de browser en alleen de laatst bekende waarde wordt gebruikt. Dit maakt het mogelijk om toekomstig gestandaardiseerde policy-waarden te gebruiken die nog niet door alle browsers worden ondersteund. Op dit moment ondersteunen echter alle nieuwste grote browsers de bovenstaande policy-waarden onder "Goed" en "Waarschuwing".Opmerking over IPv6/IPv4: vanwege performance-redenen worden alle testen in de categorie \'Beveiligingsopties\' alleen uitgevoerd voor het eerste beschikbare IPv6- en IPv4-adres.
Niveau van vereistheid: Aanbevolen',
detail_web_appsecpriv_http_referrer_policy_label: 'Referrer-Policy',
detail_web_appsecpriv_http_referrer_policy_tech_table: 'Webserver-IP-adres|Bevindingen',
detail_web_appsecpriv_http_referrer_policy_verdict_bad: 'Je webserver biedt een Referrer-Policy aan met een policy-waarde die niet voldoende veilig en privacybeschermend is.',
detail_web_appsecpriv_http_referrer_policy_verdict_good: 'Je webserver biedt een Referrer-Policy aan met een policy-waarde die voldoende veilig en privacybeschermend is.',
detail_web_appsecpriv_http_referrer_policy_verdict_recommendations: 'Je webserver biedt ofwel geen Referrer-Policy aan en vertrouwt dus op de standaard browserpolicy, óf je webserver biedt een Referrer-Policy aan met een policy-waarde die met terughoudendheid moet worden gebruikt vanwege de mogelijke impact op beveiliging en privacy.',
- detail_web_appsecpriv_http_securitytxt_exp: 'We testen of je webserver een security.txt
bestand op de juiste locatie aanbiedt, of het opgehaald kan worden, en of de inhoud ervan syntactisch geldig is.
security.txt
is een tekstbestand met contactinformatie dat je op je webserver plaatst. Beveiligingsonderzoekers kunnen deze informatie gebruiken om direct contact met de juiste afdeling of persoon binnen je organisatie op te nemen over kwetsbaarheden die zij in je website of IT-systemen hebben gevonden. Dit kan het verhelpen van gevonden kwetsbaarheden versnellen, waardoor kwaadwillenden minder kans hebben om er misbruik van te maken.
Het formaat van het bestand is bedoeld om machinaal en menselijk leesbaar te zijn. De contactinformatie kan een e-mailadres, een telefoonnummer en/of een webpagina (bijvoorbeeld een webformulier) zijn. Merk op dat gepubliceerde contactinformatie openbaar is en ook kan worden misbruikt, bijvoorbeeld om spam te sturen naar een gepubliceerd e-mailadres.
Naast contactinformatie moet het security.txt
bestand ook een vervaldatum bevatten. Om te voorkomen dat de informatie niet meer actueel is, wordt aanbevolen een vervaldatum op te nemen die minder dan een jaar in de toekomst ligt. Het is optioneel om ook andere relevante informatie voor beveiligingsonderzoekers op te nemen, zoals een link naar je beleid voor het omgaan met meldingen van beveiligingskwetsbaarheden (meestal Coordinated Vulnerability Disclosure policy genoemd).
Het wordt aanbevolen om het security.txt
bestand te ondertekenen met PGP en daarbij de web URI waarop het bestand staat in een Canonical
veld op te nemen. We controleren of het security.txt
bestand ondertekend is. We valideren de handtekening echter niet, omdat er helaas geen gestandaardiseerde plaats is om een publieke PGP-sleutel (die nodig is voor handtekeningvalidatie) op te halen.
Als een of meer Canonical
velden aanwezig zijn, moet de web URI van het security.txt
bestand in een Canonical
veld staan. Bij het redirecten naar een security.txt
bestand moet ten minste de laatste URI van de redirect-keten in een Canonical
veld worden vermeld.
Het bestand moet gepubliceerd worden onder het /.well-known/
pad. Merk op dat het plaatsen onder het top-level pad verouderd is. Elk web(sub)domein dient zijn eigen security.txt
bestand te hebben. Een voorbeeldbestand is te vinden op https://example.nl/.well-known/security.txt
.
Met een redirect doorverwijzen naar een security.txt
op een andere domeinnaam is toegestaan. Vooral in het geval van een grote domeinnaamportfolio is het vanuit onderhoudsperspectief aan te raden om de domeinnamen te redirecten naar een centrale security.txt
.
Met een redirect doorverwijzen naar een security.txt
op een andere domeinnaam is toegestaan. Vooral in het geval van een grote domeinnaamportfolio is het vanuit onderhoudsperspectief aan te raden om de domeinnamen te redirecten naar een centrale security.txt
.
Merk op dat security.txt
bestanden normaal gesproken slechts enkele kilobytes groot zijn. We lezen en evalueren daarom maximaal de eerste 100 kB van een gevonden security.txt
bestand.
Niveau van vereistheid: Aanbevolen',
+ detail_web_appsecpriv_http_securitytxt_exp: 'We testen of je webserver een security.txt
bestand op de juiste locatie aanbiedt, of het opgehaald kan worden, en of de inhoud ervan syntactisch geldig is.
security.txt
is een tekstbestand met contactinformatie dat je op je webserver plaatst. Beveiligingsonderzoekers kunnen deze informatie gebruiken om direct contact met de juiste afdeling of persoon binnen je organisatie op te nemen over kwetsbaarheden die zij in je website of IT-systemen hebben gevonden. Dit kan het verhelpen van gevonden kwetsbaarheden versnellen, waardoor kwaadwillenden minder kans hebben om er misbruik van te maken.
Het formaat van het bestand is bedoeld om machinaal en menselijk leesbaar te zijn. De contactinformatie kan een e-mailadres, een telefoonnummer en/of een webpagina (bijvoorbeeld een webformulier) zijn. Merk op dat gepubliceerde contactinformatie openbaar is en ook kan worden misbruikt, bijvoorbeeld om spam te sturen naar een gepubliceerd e-mailadres.
Naast contactinformatie moet het security.txt
bestand ook een vervaldatum bevatten. Om te voorkomen dat de informatie niet meer actueel is, wordt aanbevolen een vervaldatum op te nemen die minder dan een jaar in de toekomst ligt. Het is optioneel om ook andere relevante informatie voor beveiligingsonderzoekers op te nemen, zoals een link naar je beleid voor het omgaan met meldingen van beveiligingskwetsbaarheden (meestal Coordinated Vulnerability Disclosure policy genoemd).
Het wordt aanbevolen om het security.txt
bestand te ondertekenen met PGP en daarbij de web URI waarop het bestand staat in een Canonical
veld op te nemen. We controleren of het security.txt
bestand ondertekend is. We valideren de handtekening echter niet, omdat er helaas geen gestandaardiseerde plaats is om een publieke PGP-sleutel (die nodig is voor handtekeningvalidatie) op te halen.
Als een of meer Canonical
velden aanwezig zijn, moet de web URI van het security.txt
bestand in een Canonical
veld staan. Bij het redirecten naar een security.txt
bestand moet ten minste de laatste URI van de redirect-keten in een Canonical
veld worden vermeld.
Het bestand moet gepubliceerd worden onder het /.well-known/
pad. Merk op dat het plaatsen onder het top-level pad verouderd is. Elk web(sub)domein dient zijn eigen security.txt
bestand te hebben. Een voorbeeldbestand is te vinden op https://example.nl/.well-known/security.txt
.
Met een redirect doorverwijzen naar een security.txt
op een andere domeinnaam is toegestaan. Vooral in het geval van een grote domeinnaamportfolio is het vanuit onderhoudsperspectief aan te raden om de domeinnamen te redirecten naar een centrale security.txt
.
Merk op dat security.txt
bestanden normaal gesproken slechts enkele kilobytes groot zijn. We lezen en evalueren daarom maximaal de eerste 100 kB van een gevonden security.txt
bestand.
Opmerking over IPv6/IPv4: vanwege performance-redenen worden alle testen in de categorie \'Beveiligingsopties\' alleen uitgevoerd voor het eerste beschikbare IPv6- en IPv4-adres.
Niveau van vereistheid: Aanbevolen',
detail_web_appsecpriv_http_securitytxt_label: 'security.txt',
detail_web_appsecpriv_http_securitytxt_tech_table: 'Webserver-IP-adres|Bevindingen',
detail_web_appsecpriv_http_securitytxt_verdict_bad: 'Je webserver biedt geen security.txt-bestand op de juiste plaats aan, het kon niet worden opgehaald, of de inhoud ervan is syntactisch niet geldig.',
detail_web_appsecpriv_http_securitytxt_verdict_good: 'Je webserver biedt een security.txt-bestand op de juiste plaats aan en de inhoud ervan is syntactisch geldig.',
detail_web_appsecpriv_http_securitytxt_verdict_recommendations: 'Je webserver biedt een security.txt-bestand op de juiste plaats aan en de inhoud ervan is syntactisch geldig. Echter, er zijn een of meer aanbevelingen voor verbetering.',
- detail_web_appsecpriv_http_x_content_type_exp: 'We testen of je webserver een HTTP header voor X-Content-Type-Options
aanbiedt. Met deze HTTP header kan je webbrowsers laten weten dat zij geen \'MIME type sniffing\' mogen uitvoeren en altijd het Content-Type
zoals gedeclareerd door jouw webserver moeten volgen. De enige geldige waarde voor deze HTTP header is nosniff
. Indien actief, dan zal een browser verzoeken voor style
en script
blokkeren als deze geen corresponderende Content-Type
(dat wil zeggen text/css
of een \'Javascript MIME type\' zoals application/javascript
) hebben.
\'MIME type sniffing\' is een techniek waarbij de browser de inhoud van een bestand scant om te bepalen wat het formaat van het bestand is, ongeacht het door de webserver gedeclareerde Content-Type
. Deze techniek is kwetsbaar voor de zogenaamde \'MIME confusion attack\' waarbij de aanvaller de content van een bestand zodanig manipuleert dat de browser deze behandelt als een andere Content-Type
, zoals een executeerbaar bestand.
Niveau van vereistheid: Aanbevolen',
+ detail_web_appsecpriv_http_x_content_type_exp: 'We testen of je webserver een HTTP header voor X-Content-Type-Options
aanbiedt. Met deze HTTP header kan je webbrowsers laten weten dat zij geen \'MIME type sniffing\' mogen uitvoeren en altijd het Content-Type
zoals gedeclareerd door jouw webserver moeten volgen. De enige geldige waarde voor deze HTTP header is nosniff
. Indien actief, dan zal een browser verzoeken voor style
en script
blokkeren als deze geen corresponderende Content-Type
(dat wil zeggen text/css
of een \'Javascript MIME type\' zoals application/javascript
) hebben.
\'MIME type sniffing\' is een techniek waarbij de browser de inhoud van een bestand scant om te bepalen wat het formaat van het bestand is, ongeacht het door de webserver gedeclareerde Content-Type
. Deze techniek is kwetsbaar voor de zogenaamde \'MIME confusion attack\' waarbij de aanvaller de content van een bestand zodanig manipuleert dat de browser deze behandelt als een andere Content-Type
, zoals een executeerbaar bestand.
Opmerking over IPv6/IPv4: vanwege performance-redenen worden alle testen in de categorie \'Beveiligingsopties\' alleen uitgevoerd voor het eerste beschikbare IPv6- en IPv4-adres.
Niveau van vereistheid: Aanbevolen',
detail_web_appsecpriv_http_x_content_type_label: 'X-Content-Type-Options',
detail_web_appsecpriv_http_x_content_type_tech_table: 'Webserver-IP-adres|X-Content-Type-Options waarde',
detail_web_appsecpriv_http_x_content_type_verdict_bad: 'Je webserver biedt geen X-Content-Type-Options aan.',
detail_web_appsecpriv_http_x_content_type_verdict_good: 'Je webserver biedt X-Content-Type-Options aan.',
- detail_web_appsecpriv_http_x_frame_exp: 'We testen of je webserver een HTTP header voor X-Frame-Options
aanbiedt die een voldoende veilige instelling heeft. Met deze HTTP header kan je webbrowsers laten weten of het toegestaan is om jouw website te \'framen\'. Het voorkomen van \'framen\' beschermt bezoekers tegen aanvallen zoals clickjacking. We beschouwen de volgende waarden als voldoende veilig:
DENY
(\'framen\' niet toegestaan); ofSAMEORIGIN
(\'framen\' alleen door je eigen website toegestaan).Alhoewel de waarde ALLOW-FROM
(alleen genoemde websites mogen jouw website \'framen\') onderdeel is van de specificatie voorX-Frame-Options
(RFC 7034), wordt deze niet ondersteund door moderne webbrowsers. Om die reden beschouwen we deze waarde niet als voldoende veilig.
Merk op dat Content-Security-Policy
(CSP) via frame-ancestors
vergelijkbare bescherming en daarnaast nog veel meer biedt voor bezoekers met moderne webbrowsers. Maar X-Frame-Options
kan nog steeds bescherming bieden aan bezoekers van oudere browsers die geen CSP ondersteunen. Bovendien kan X-Frame-Options
waardevolle bescherming aan alle bezoekers bieden, indien CSP niet (goed) is ingesteld voor de desbetreffende website.
Zie ook \'Webapplicatie-richtlijnen van NCSC, Verdieping\', richtlijn U/PW.03.
Niveau van vereistheid: Optioneel ',
+ detail_web_appsecpriv_http_x_frame_exp: 'We testen of je webserver een HTTP header voor X-Frame-Options
aanbiedt die een voldoende veilige instelling heeft. Met deze HTTP header kan je webbrowsers laten weten of het toegestaan is om jouw website te \'framen\'. Het voorkomen van \'framen\' beschermt bezoekers tegen aanvallen zoals clickjacking. We beschouwen de volgende waarden als voldoende veilig:
DENY
(\'framen\' niet toegestaan); ofSAMEORIGIN
(\'framen\' alleen door je eigen website toegestaan).Alhoewel de waarde ALLOW-FROM
(alleen genoemde websites mogen jouw website \'framen\') onderdeel is van de specificatie voorX-Frame-Options
(RFC 7034), wordt deze niet ondersteund door moderne webbrowsers. Om die reden beschouwen we deze waarde niet als voldoende veilig.
Merk op dat Content-Security-Policy
(CSP) via frame-ancestors
vergelijkbare bescherming en daarnaast nog veel meer biedt voor bezoekers met moderne webbrowsers. Maar X-Frame-Options
kan nog steeds bescherming bieden aan bezoekers van oudere browsers die geen CSP ondersteunen. Bovendien kan X-Frame-Options
waardevolle bescherming aan alle bezoekers bieden, indien CSP niet (goed) is ingesteld voor de desbetreffende website.
Opmerking over IPv6/IPv4: vanwege performance-redenen worden alle testen in de categorie \'Beveiligingsopties\' alleen uitgevoerd voor het eerste beschikbare IPv6- en IPv4-adres.
Zie ook \'Webapplicatie-richtlijnen van NCSC, Verdieping\', richtlijn U/PW.03.
Niveau van vereistheid: Optioneel ', detail_web_appsecpriv_http_x_frame_label: 'X-Frame-Options', detail_web_appsecpriv_http_x_frame_tech_table: 'Webserver-IP-adres|X-Frame-Options waarde', detail_web_appsecpriv_http_x_frame_verdict_bad: 'Je webserver biedt geen veilig ingestelde X-Frame-Options aan.', @@ -406,29 +409,29 @@ const internet_nl_messages = { detail_web_ipv6_web_aaaa_tech_table: 'Webserver|IPv6-adres|IPv4-adres', detail_web_ipv6_web_aaaa_verdict_bad: 'Geen van je webservers heeft een IPv6-adres.', detail_web_ipv6_web_aaaa_verdict_good: 'Tenminste één van je webservers heeft een IPv6-adres.', - detail_web_ipv6_web_ipv46_exp: 'We vergelijken het antwoord en de inhoud die we van je webserver over IPv6 ontvangen met die over IPv4.
We controleren:
Als er meerdere IPv6- en IPv4-adressen zijn, kiezen we één IPv6-adres en één IPv4-adres om de subtest uit te voeren. Als er alleen een IPv6-adres en geen IPv4-adres beschikbaar is, dan is de subtest niet van toepassing omdat er geen vergelijking kan worden gemaakt.', + detail_web_ipv6_web_ipv46_exp: 'We vergelijken de beschikbare poorten en aangeboden headers en inhoud van je webserver via IPv6 met die via IPv4.
We controleren of:
Aanvullende opmerkingen:- Als er meerdere IPv6- en IPv4-adressen zijn, dan kiezen we één IPv6-adres en één IPv4-adres om de subtest uit te voeren.- Als er alleen een IPv6-adres en geen IPv4-adres (of omgekeerd) beschikbaar is, dan is de subtest niet van toepassing omdat er geen vergelijking kan worden gemaakt.- Deze subtest volgt redirects en controleert ook alle onderliggende URL\'s.', detail_web_ipv6_web_ipv46_label: 'Gelijke website op IPv6 en IPv4', - detail_web_ipv6_web_ipv46_verdict_bad: 'Beschikbare poorten of aangeboden headers van je website over IPv4 zijn niet hetzelfde over IPv6.', - detail_web_ipv6_web_ipv46_verdict_good: 'Je website op IPv6 lijkt gelijk aan je website op IPv4.', - detail_web_ipv6_web_ipv46_verdict_notice: 'De HTML-inhoud van je website over IPv4 is niet hetzelfde over IPv6. ', - detail_web_ipv6_web_ipv46_verdict_notice_status_code: 'Je website op IPv6 lijkt gelijk aan je website op IPv4, maar de HTTP response code is 4xx of 5xx. Dit kan wijzen op een configuratiefout.', + detail_web_ipv6_web_ipv46_verdict_bad: 'Beschikbare poorten of aangeboden headers van je website via IPv4 zijn niet hetzelfde via IPv6.', + detail_web_ipv6_web_ipv46_verdict_good: 'Je website via IPv6 lijkt identiek via IPv4.', + detail_web_ipv6_web_ipv46_verdict_notice: 'De HTML-inhoud van je website via IPv4 is niet hetzelfde via IPv6. ', + detail_web_ipv6_web_ipv46_verdict_notice_status_code: 'Je website via IPv6 lijkt identiek via IPv4, maar de HTTP response code is 4xx of 5xx. Dit kan wijzen op een configuratiefout.', detail_web_ipv6_web_reach_exp: 'We testen of we je webserver(s) kunnen bereiken via IPv6 op alle beschikbare poorten (80 en/of 443). We testen alle IPv6-adressen die we ontvangen van je nameservers. Een deelscore wordt gegeven als niet alle IPv6-adressen bereikbaar zijn. Als een IPv6-adres (syntactisch) ongeldig is, dan beschouwen we dat als onbereikbaar.', detail_web_ipv6_web_reach_label: 'IPv6-bereikbaarheid van webserver', detail_web_ipv6_web_reach_tech_table: 'Webserver|Onbereikbaar IPv6-adres', detail_web_ipv6_web_reach_verdict_bad: 'Tenminste één van jouw webservers met een IPv6-adres, is niet bereikbaar via IPv6.', detail_web_ipv6_web_reach_verdict_good: 'Al je webservers met een IPv6-adres zijn bereikbaar via IPv6.', - detail_web_rpki_exists_exp: 'We testen of er een RPKI Route Origin Authorisation (ROA) is gepubliceerd voor alle IP-adressen van je webserver.
Je hoster (of zijn netwerkprovider) kondigt via het Border Gateway Protocol (BGP) aan voor welke van zijn IP-adresblokken hij inkomend internetverkeer accepteert. Andere netwerkproviders gebruiken deze route-aankondigingen om te bepalen via welke route ze het verkeer voor de IP-adressen van je server moeten sturen.
Een route-aankondiging is echter te vervalsen. Een andere netwerkprovider kan namelijk in de positie zijn om het IP-adresblok van jouw IP-adres te koppelen aan zijn netwerk en op die manier mogelijk internetverkeer te ontvangen dat eigenlijk voor jouw netwerkprovider bedoeld is. De oorzaak kan per ongeluk of kwaadwillig zijn. In beide gevallen kan het ertoe leiden dat je server onbereikbaar is of dat internetverkeer naar je server wordt onderschept.
Resource Public Key Infrastructure (RPKI) verbetert de bescherming hiertegen aanzienlijk. Met RPKI kan de rechtmatige houder van een blok IP-adressen namelijk een digitaal ondertekende verklaring met route-autorisatie (Route Origin Authorisation; afgekort: ROA) publiceren. Een andere netwerkprovider die internetverkeer wil sturen naar een bepaalde IP-adres, kan de bijbehorende verklaring gebruiken om ongeldige (Invalid
) routes te filteren. Daarmee voorkomt de netwerkprovider dat internetverkeer vanuit zijn netwerk naar ongeautoriseerde providernetwerken wordt gestuurd.
Niveau van vereistheid: Aanbevolen', + detail_web_rpki_exists_exp: 'We testen of er een RPKI Route Origin Authorisation (ROA) is gepubliceerd voor alle IP-adressen van je webserver.
Je hoster (of zijn netwerkprovider) kondigt via het Border Gateway Protocol (BGP) aan voor welke van zijn IP-adresblokken hij inkomend internetverkeer accepteert. Andere netwerkproviders gebruiken deze route-aankondigingen om te bepalen via welke route ze het verkeer voor de IP-adressen van je server moeten sturen.
Een route-aankondiging is echter te vervalsen. Een andere netwerkprovider kan namelijk in de positie zijn om het IP-adresblok van jouw IP-adres te koppelen aan zijn netwerk en op die manier mogelijk internetverkeer te ontvangen dat eigenlijk voor jouw netwerkprovider bedoeld is. De oorzaak kan per ongeluk of kwaadwillig zijn. In beide gevallen kan het ertoe leiden dat je server onbereikbaar is of dat internetverkeer naar je server wordt onderschept.
Resource Public Key Infrastructure (RPKI) verbetert de bescherming hiertegen aanzienlijk. Met RPKI kan de rechtmatige houder van een blok IP-adressen namelijk een digitaal ondertekende verklaring met route-autorisatie (Route Origin Authorisation; afgekort: ROA) publiceren. Een andere netwerkprovider die internetverkeer wil sturen naar een bepaalde IP-adres, kan de bijbehorende verklaring gebruiken om ongeldige (Invalid
) routes te filteren. Daarmee voorkomt de netwerkprovider dat internetverkeer vanuit zijn netwerk naar ongeautoriseerde providernetwerken wordt gestuurd.',
detail_web_rpki_exists_label: 'Aanwezigheid van Route Origin Authorisation',
detail_web_rpki_exists_tech_table: 'Webserver|IP-adres|RPKI Route Origin Authorization',
detail_web_rpki_exists_verdict_bad: 'Voor tenminste één van de IP-adressen van je webserver is geen RPKI Route Origin Authorisation (ROA) gepubliceerd.',
detail_web_rpki_exists_verdict_good: 'Voor alle IP-adressen van je webserver is een RPKI Route Origin Authorisation (ROA) gepubliceerd.',
detail_web_rpki_exists_verdict_no_addresses: 'Je domein bevat geen IP-adressen van webservers. Daarom kon deze subtest niet worden uitgevoerd.',
- detail_web_rpki_valid_exp: 'We testen of de validatie-status van alle IP-adressen van je webserver Valid
is. Als er meerdere overlappende route-aankondigingen voor het IP-adres zijn, dan testen we of die allemaal Valid
zijn.
Je hoster (of zijn netwerkprovider) kondigt via het Border Gateway Protocol (BGP) aan voor welke van zijn IP-adresblokken hij inkomend internetverkeer accepteert. Dat doet hij door (delen van) zijn IP-adresblokken (Route Prefix) aan het unieke nummer van zijn providernetwerk (Route Origin ASN) te koppelen, en door deze routeringsinformatie vervolgens te verspreiden. Andere netwerkproviders gebruiken deze route-aankondigingen om te bepalen via welke route ze het verkeer voor de IP-adressen moeten sturen.
Aanvullend kan je hoster (of zijn netwerkprovider) voor iedere route-aankondiging een digitaal ondertekende verklaring met route-autorisatie (Route Origin Authorisation, afgekort: ROA) publiceren met behulp van Resource Public Key Infrastructure (RPKI).
Een andere netwerkprovider die gevraagd wordt om internetverkeer te sturen naar het IP-adres van je server, kan de bijbehorende verklaring cryptografisch controleren. De gecontroleerde inhoud (Validated ROA Payload; afgekort: VRP) omvat welke providernetwerken (VRP ASN) voor ieder opgenomen IP-adresblok (VRP Prefix) geautoriseerd zijn om internetverkeer te ontvangen.
De netwerkprovider kan deze inhoud vervolgens gebruiken om BGP-routes te filteren. Hij kan bijvoorbeeld eventuele Invalid
routes weigeren om te voorkomen dat internetverkeer vanuit zijn netwerk naar ongeautoriseerde providernetwerken wordt gestuurd.
Het vergelijken van route-aankondigingen met route-autorisaties (RPKI Origin Validation; afgekort: ROV) kent de onderstaande drie mogelijk uitkomsten.
Valid
: De route-aankondiging van het desbetreffende IP-adres wordt gematcht door tenminste één gepubliceerde route-autorisatie. Een route-autorisatie is ook matchend voor meer specifieke route-aankondigingen (d.w.z. voor een deel van het IP-adresblok dat in de route-autorisatie staat), tenzij deze meer specifiek zijn dan de limiet die in de route-autorisatie is bepaald (via het maxLength
attribuut).
Invalid
: De route-aankondiging van het desbetreffende IP-adres is wel afgedekt door een route-autorisatie, maar deze matcht niet. Er zijn twee mogelijke oorzaken:
het IP-adresblok (Route Prefix) wordt aangekondigd vanaf een providernetwerk (Route Origin ASN) dat in de route-autorisatie niet is geautoriseerd (resultaat in onderstaande tabel: "invalid (as)");
het IP-adresblok (Route Prefix) dat wordt aangekondigd is kleiner dan wordt toegestaan in de route-autorisatie, d.w.z. overschrijding van maxLength
waarde (resultaat in onderstaande tabel: "invalid (length)").
NotFound
: Er is geen verklaring met route-autorisatie gevonden die de route-aankondiging van het desbetreffende IP-adres afdekt. De routering van internetverkeer naar jouw server is daardoor minder veilig. Neem hierover contact op met je hoster. Deze kan zijn netwerkprovider die eigenaar is van de IP-adressen van je server vragen om route-autorisaties te publiceren.
Wat te doen als het testresultaat de status Invalid toont?
De status Invalid
duidt op een onbedoelde of kwaadwillige route-configuratiefout, die wordt veroorzaakt door je hoster of zijn netwerkprovider (interne fout) óf door een derde partij (externe fout). In beide gevallen kan het leiden tot de onbereikbaarheid van je server of het onderscheppen van internetverkeer naar je server. Neem zo spoedig mogelijk contact op met je hoster. Bij een interne fout moet je hoster zijn netwerkprovider die eigenaar is van de IP-adressen van je server, vragen om de route-configuratiefout te herstellen.
Niveau van vereistheid: Aanbevolen',
+ detail_web_rpki_valid_exp: 'We testen of de validatie-status van alle IP-adressen van je webserver Valid
is. Als er meerdere overlappende route-aankondigingen voor het IP-adres zijn, dan testen we of die allemaal Valid
zijn.
Je hoster (of zijn netwerkprovider) kondigt via het Border Gateway Protocol (BGP) aan voor welke van zijn IP-adresblokken hij inkomend internetverkeer accepteert. Dat doet hij door (delen van) zijn IP-adresblokken (Route Prefix) aan het unieke nummer van zijn providernetwerk (Route Origin ASN) te koppelen, en door deze routeringsinformatie vervolgens te verspreiden. Andere netwerkproviders gebruiken deze route-aankondigingen om te bepalen via welke route ze het verkeer voor de IP-adressen moeten sturen.
Aanvullend kan je hoster (of zijn netwerkprovider) voor iedere route-aankondiging een digitaal ondertekende verklaring met route-autorisatie (Route Origin Authorisation, afgekort: ROA) publiceren met behulp van Resource Public Key Infrastructure (RPKI).
Een andere netwerkprovider die gevraagd wordt om internetverkeer te sturen naar het IP-adres van je server, kan de bijbehorende verklaring cryptografisch controleren. De gecontroleerde inhoud (Validated ROA Payload; afgekort: VRP) omvat welke providernetwerken (VRP ASN) voor ieder opgenomen IP-adresblok (VRP Prefix) geautoriseerd zijn om internetverkeer te ontvangen.
De netwerkprovider kan deze inhoud vervolgens gebruiken om BGP-routes te filteren. Hij kan bijvoorbeeld eventuele Invalid
routes weigeren om te voorkomen dat internetverkeer vanuit zijn netwerk naar ongeautoriseerde providernetwerken wordt gestuurd.
Het vergelijken van route-aankondigingen met route-autorisaties (RPKI Origin Validation; afgekort: ROV) kent de onderstaande drie mogelijk uitkomsten.
1․ Valid
: De route-aankondiging van het desbetreffende IP-adres wordt gematcht door tenminste één gepubliceerde route-autorisatie. Een route-autorisatie is ook matchend voor meer specifieke route-aankondigingen (d.w.z. voor een deel van het IP-adresblok dat in de route-autorisatie staat), tenzij deze meer specifiek zijn dan de limiet die in de route-autorisatie is bepaald (via het maxLength
attribuut).
2․ Invalid
: De route-aankondiging van het desbetreffende IP-adres is wel afgedekt door een route-autorisatie, maar deze matcht niet. Er zijn twee mogelijke oorzaken:
maxLength
waarde (resultaat in onderstaande tabel: "invalid (length)").3․ NotFound
: Er is geen verklaring met route-autorisatie gevonden die de route-aankondiging van het desbetreffende IP-adres afdekt. De routering van internetverkeer naar jouw server is daardoor minder veilig. Neem hierover contact op met je hoster. Deze kan zijn netwerkprovider die eigenaar is van de IP-adressen van je server vragen om route-autorisaties te publiceren.
Wat te doen als het testresultaat de status Invalid toont?
De status Invalid
duidt op een onbedoelde of kwaadwillige route-configuratiefout, die wordt veroorzaakt door je hoster of zijn netwerkprovider (interne fout) óf door een derde partij (externe fout). In beide gevallen verhoogt dit het risico dat je server onbereikbaar wordt of dat internetverkeer naar je server wordt onderschept. Neem zo spoedig mogelijk contact op met je hoster. Bij een interne fout moet je hoster zijn netwerkprovider die eigenaar is van de IP-adressen van je server, vragen om de route-configuratiefout te herstellen. ',
detail_web_rpki_valid_label: 'Geldigheid van route-aankondiging',
detail_web_rpki_valid_tech_table: 'Webserver|BGP Route Prefix|BGP Route Origin ASN|RPKI Origin Validation status',
detail_web_rpki_valid_verdict_bad: 'Ten minste één IP-adres van je webserver heeft een NotFound
validatie-status. Er is geen RPKI Route Origin Authorization (ROA) gepubliceerd voor de route-aankondiging van ieder van de desbetreffende IP-adressen.',
detail_web_rpki_valid_verdict_good: 'Alle IP-adressen van je webserver hebben een Valid
validatie-status. De route-aankondiging van deze IP-adressen wordt gematcht door de gepubliceerde RPKI Route Origin Authorisation (ROA).',
- detail_web_rpki_valid_verdict_invalid: 'Tenminste één IP-adres van je webserver heeft een Invalid
validatie-status. De route-aankondiging van de desbetreffende IP-adressen wordt niet gematcht door de gepubliceerde RPKI Route Origin Authorisation (ROA). Dit duidt op een onbedoelde of kwaadwillige route-configuratiefout, die wordt veroorzaakt door je webhoster (interne fout) óf door een derde partij (externe fout). In beide gevallen kan het leiden tot de onbereikbaarheid van je server of het onderscheppen van internetverkeer naar je server. Neem zo spoedig mogelijk contact op met je webhoster. Bij een interne fout moet je webhoster zijn netwerkprovider die eigenaar is van de IP-adressen van je server, vragen om de route-configuratiefout te herstellen.',
+ detail_web_rpki_valid_verdict_invalid: 'Tenminste één IP-adres van je webserver heeft een Invalid
validatie-status. De route-aankondiging van de desbetreffende IP-adressen wordt niet gematcht door de gepubliceerde RPKI Route Origin Authorisation (ROA). Dit duidt op een onbedoelde of kwaadwillige route-configuratiefout, die wordt veroorzaakt door je webhoster (interne fout) óf door een derde partij (externe fout). In beide gevallen verhoogt dit het risico dat je server onbereikbaar wordt of dat internetverkeer naar je server wordt onderschept. Neem zo spoedig mogelijk contact op met je webhoster. Bij een interne fout moet je webhoster zijn netwerkprovider die eigenaar is van de IP-adressen van je server, vragen om de route-configuratiefout te herstellen.',
detail_web_rpki_valid_verdict_not_routed: 'Deze subtest werd niet uitgevoerd, omdat er voor geen van de IP-adressen een route-aankondiging beschikbaar was.',
detail_web_tls_cert_hostmatch_exp: 'We testen of de domeinnaam van je website overeenkomt met de domeinnaam op het certificaat.
Het kan handig zijn om meerdere domeinnamen (bijvoorbeeld de domeinnaam met en zonder www) als Subject Alternative Name (SAN) in het certificaat op te nemen.
Zie \'ICT-beveiligingsrichtlijnen voor Transport Layer Security (TLS) v2.1\' van NCSC, richtlijn B3-1.', detail_web_tls_cert_hostmatch_label: 'Domeinnaam op certificaat', @@ -451,7 +454,7 @@ const internet_nl_messages = { detail_web_tls_cert_trust_tech_table: 'Webserver-IP-adres|Onvertrouwde certificaatketen', detail_web_tls_cert_trust_verdict_bad: 'De vertrouwensketen van je websitecertificaat is niet compleet en/of niet ondertekend door een vertrouwde certificaatautoriteit.', detail_web_tls_cert_trust_verdict_good: 'De vertrouwensketen van je websitecertificaat is compleet en ondertekend door een vertrouwde certificaatautoriteit.', - detail_web_tls_cipher_order_exp: 'We testen of je webserver zijn eigen cipher-voorkeur afdwingt (\'I\'), en ciphers aanbiedt conform de voorgeschreven volgorde (\'II\').
Als je webserver alleen \'Goede\' ciphers ondersteunt, dan is deze subtest niet van toepassing omdat de volgorde dan geen significant beveiligingsvoordeel oplevert.
I. Server afgedwongen cipher-volgorde: De webserver dwingt zijn cipher-voorkeur af tijdens de onderhandeling met een webbrowser, en accepteert geen voorkeur van de webbrowser;
II. Voorgeschreven volgorde: Ciphers worden aangeboden door de webserver in overeenstemming met de voorgeschreven volgorde waarbij Goede boven Voldoende boven Uit te faseren ciphers worden geprefereerd.
In de bovenstaande tabel met technische details staan alleen de eerst gevonden algoritmeselecties die niet voldoen aan de voorgeschreven volgorde.
Zie \'ICT-beveiligingsrichtlijnen voor Transport Layer Security (TLS) v2.1\' van NCSC, richtlijn B2-5.', + detail_web_tls_cipher_order_exp: 'We testen of je webserver zijn eigen cipher-voorkeur afdwingt (\'I\'), en ciphers aanbiedt conform de voorgeschreven volgorde (\'II\').
Als je webserver alleen \'Goede\' ciphers ondersteunt, dan is deze subtest niet van toepassing omdat de volgorde dan geen significant beveiligingsvoordeel oplevert.
I. Server afgedwongen cipher-voorkeur: De webserver dwingt zijn cipher-voorkeur af tijdens de onderhandeling met een webbrowser, en accepteert geen voorkeur van de webbrowser;
II. Voorgeschreven volgorde: Ciphers worden aangeboden door de webserver in overeenstemming met de voorgeschreven volgorde waarbij Goede boven Voldoende boven Uit te faseren ciphers worden geprefereerd.
In de bovenstaande tabel met technische details staan alleen de eerst gevonden algoritmeselecties die niet voldoen aan de voorgeschreven volgorde.
Zie \'ICT-beveiligingsrichtlijnen voor Transport Layer Security (TLS) v2.1\' van NCSC, richtlijn B2-5.', detail_web_tls_cipher_order_label: 'Cipher-volgorde', detail_web_tls_cipher_order_tech_table: 'Webserver IP-adres|Eerst gevonden getroffen cipher-paren|Overtreden regel # (\'II-B\')', detail_web_tls_cipher_order_verdict_bad: 'Je webserver dwingt niet zijn eigen cipher-voorkeur af (\'I\').', @@ -486,7 +489,7 @@ const internet_nl_messages = { detail_web_tls_dane_valid_tech_table: 'Webserver-IP-adres|DANE TLSA-record geldig', detail_web_tls_dane_valid_verdict_bad: 'De DANE-fingerprint op je domeinnaam is niet geldig voor je websitecertificaat. Óf iemand manipuleerde het antwoord van jouw nameserver, óf je domeinnaam heeft een serieuze DANE-configuratiefout. Dit laatste maakt je domeinnaam onbereikbaar voor alle gebruikers die DANE-fingerprints controleren. Neem zo spoedig mogelijk contact op met je nameserver-beheerder en/of hostingprovider.', detail_web_tls_dane_valid_verdict_good: 'De DANE-fingerprint op je domeinnaam is geldig voor je websitecertificaat.', - detail_web_tls_fs_params_exp: 'We testen of de publieke parameters, die in de Diffie-Hellman sleuteluitwisseling worden gebruikt door je webserver, veilig zijn.
ECDHE: De veiligheid van de ECDHE-sleuteluitwisseling is afhankelijk van de geselecteerde elliptische kromme. We testen of de bitlengte van de gebruikte kromme tenminste 224 bits is. Op dit moment kunnen we niet de naam van de elliptische kromme testen.
DHE: De veiligheid van de Diffie-Hellman Ephemeral (DHE) sleuteluitwisseling is afhankelijk van de lengte van de publieke en geheime sleutels die in de geselecteerde finite field-groep wordt gebruikt. We testen of je publieke DHE-sleutelmateriaal gebruikmaakt van een van de gepredefinieerde finite field-groepen die zijn gespecificeerd in RFC 7919. Zelf-gegenereerde groepen zijn \'Onvoldoende\'.
De grotere sleutellengtes die noodzakelijk zijn voor het gebruik van DHE gaan ten koste van de prestaties. Maak een zorgvuldige afweging en gebruik waar mogelijk ECDHE in plaats van DHE.
RSA als alternatief: Naast ECDHE en DHE, kan RSA gebruikt worden voor sleuteluitwisseling. RSA loopt het risico om onvoldoende veilig te worden (huidige status \'Uit te faseren\'). De publieke RSA-parameters worden getest in de subtest \'Handtekening-parameters van certificaat\'. Overigens heeft RSA voor certificaatverificatie wel de status \'Goed\'.
Zie \'ICT-beveiligingsrichtlijnen voor Transport Layer Security (TLS) v2.1\' van NCSC, richtlijn B5-1 en tabel 9 voor ECDHE, en richtlijn B6-1 en tabel 10 voor DHE.
Elliptische krommen voor ECDHE
secp384r1
, secp256r1
, x448
, en x25519
secp224r1
Finite field-groepen voor DHE
Voldoende:
64852d6890ff9e62eecd1ee89c72af9af244dfef5b853bcedea3dfd7aade22b3
c410cc9c4fd85d2c109f7ebe5930ca5304a52927c0ebcb1a11c5cf6b2386bbab
Uit te faseren:
9ba6429597aeed2d8617a7705b56e96d044f64b07971659382e426675105654b
Onvoldoende: Andere groepen
Let op: de bovenstaande namen zijn gebaseerd op de IANA naamgevingsconventies. Soms worden alternatieve namen gebruikt om te verwijzen naar dezelfde krommen, zoals prime256v1
(ANSI) en NIST P-256
voor secp256r1
.',
+ detail_web_tls_fs_params_exp: 'We testen of de publieke parameters, die in de Diffie-Hellman sleuteluitwisseling worden gebruikt door je webserver, veilig zijn.
ECDHE: De veiligheid van de ECDHE-sleuteluitwisseling is afhankelijk van de geselecteerde elliptische kromme. We testen of de bitlengte van de gebruikte kromme tenminste 224 bits is. Op dit moment kunnen we niet de naam van de elliptische kromme testen.
DHE: De veiligheid van de Diffie-Hellman Ephemeral (DHE) sleuteluitwisseling is afhankelijk van de lengte van de publieke en geheime sleutels die in de geselecteerde finite field-groep wordt gebruikt. We testen of je publieke DHE-sleutelmateriaal gebruikmaakt van een van de gepredefinieerde finite field-groepen die zijn gespecificeerd in RFC 7919. Zelf-gegenereerde groepen zijn \'Onvoldoende\'.
De grotere sleutellengtes die noodzakelijk zijn voor het gebruik van DHE gaan ten koste van de prestaties. Maak een zorgvuldige afweging en gebruik waar mogelijk ECDHE in plaats van DHE.
RSA als alternatief: Naast ECDHE en DHE, kan RSA gebruikt worden voor sleuteluitwisseling. RSA loopt het risico om onvoldoende veilig te worden (huidige status \'Uit te faseren\'). De publieke RSA-parameters worden getest in de subtest \'Handtekening-parameters van certificaat\'. Overigens heeft RSA voor certificaatverificatie wel de status \'Goed\'.
Zie \'ICT-beveiligingsrichtlijnen voor Transport Layer Security (TLS) v2.1\' van NCSC, richtlijn B5-1 en tabel 9 voor ECDHE, en richtlijn B6-1 en tabel 10 voor DHE.
Elliptische krommen voor ECDHE
secp384r1
, secp256r1
, x448
, en x25519
secp224r1
Finite field-groepen voor DHE
Voldoende:
64852d6890ff9e62eecd1ee89c72af9af244dfef5b853bcedea3dfd7aade22b3
c410cc9c4fd85d2c109f7ebe5930ca5304a52927c0ebcb1a11c5cf6b2386bbab
Uit te faseren:
Onvoldoende: Andere groepen
Let op: de bovenstaande namen zijn gebaseerd op de IANA naamgevingsconventies. Soms worden alternatieve namen gebruikt om te verwijzen naar dezelfde krommen, zoals prime256v1
(ANSI) en NIST P-256
voor secp256r1
.',
detail_web_tls_fs_params_label: 'Sleuteluitwisselingsparameters',
detail_web_tls_fs_params_tech_table: 'Webserver-IP-adres|Getroffen parameters|Status',
detail_web_tls_fs_params_verdict_bad: 'Je webserver ondersteunt onvoldoende veilige parameters voor Diffie-Hellman-sleuteluitwisseling.',
@@ -498,7 +501,7 @@ const internet_nl_messages = {
detail_web_tls_http_compression_tech_table: 'Webserver-IP-adres|HTTP-compressie',
detail_web_tls_http_compression_verdict_bad: 'Je webserver ondersteunt HTTP-compressie, wat een beveiligingsrisico kan vormen.',
detail_web_tls_http_compression_verdict_good: 'Je webserver ondersteunt geen HTTP-compressie.',
- detail_web_tls_https_exists_exp: 'We testen of je website bereikbaar is via HTTPS.
Als dat het geval is, dan testen we in de navolgende subtesten of HTTPS ook veilig is geconfigureerd conform de \'ICT-beveiligingsrichtlijnen voor Transport Layer Security (TLS) v2.1\'.
HTTPS garandeert de vertrouwelijkheid en integriteit van uitgewisselde informatie. Omdat het van de situatie afhangt hoe (privacy-)gevoelig en waardevol informatie is, een bezoeker van je website bepaalt hoe (privacy-) gevoelig en waardevol informatie is, is een veilige HTTPS-configuratie voor iedere website van belang. Ook triviale, publieke informatie kan door omstandigheden voor de gebruiker zeer gevoelig en waardevol zijn. Let op: vanwege performance-redenen worden de testen in het HTTPS-testonderdeel alleen uitgevoerd voor het eerst beschikbare IPv6- en IPv4-adres.', + detail_web_tls_https_exists_exp: 'We testen of je website bereikbaar is via HTTPS.
Als dat het geval is, dan testen we in de navolgende subtesten of HTTPS ook veilig is geconfigureerd conform de \'ICT-beveiligingsrichtlijnen voor Transport Layer Security (TLS) v2.1\'.
HTTPS garandeert de vertrouwelijkheid en integriteit van uitgewisselde informatie. Omdat het van de situatie afhangt hoe (privacy-)gevoelig en waardevol informatie is, een bezoeker van je website bepaalt hoe (privacy-) gevoelig en waardevol informatie is, is een veilige HTTPS-configuratie voor iedere website van belang. Ook triviale, publieke informatie kan door omstandigheden voor de gebruiker zeer gevoelig en waardevol zijn.
Opmerking over IPv6/IPv4: vanwege performance-redenen worden alle testen in de categorie \'Beveiligde verbinding (HTTPS)\' alleen uitgevoerd voor het eerst beschikbare IPv6- en IPv4-adres.', detail_web_tls_https_exists_label: 'HTTPS beschikbaar', detail_web_tls_https_exists_tech_table: 'Webserver-IP-adres|HTTPS aanwezig', detail_web_tls_https_exists_verdict_bad: 'Je website biedt geen HTTPS aan.', @@ -529,7 +532,7 @@ const internet_nl_messages = { detail_web_tls_ocsp_stapling_verdict_bad: 'Je webserver ondersteunt OCSP maar de data in het antwoord is niet valide.', detail_web_tls_ocsp_stapling_verdict_good: 'Je webserver ondersteunt OCSP en de data in het antwoord is valide.', detail_web_tls_ocsp_stapling_verdict_ok: 'Je webserver ondersteunt OCSP niet.', - detail_web_tls_renegotiation_client_exp: '
We testen of een client (doorgaans een webbrowser) een renegotiation kan initiëren met jouw webserver.
In het algemeen is het niet nodig om clients de mogelijkheid te bieden om een renegotiation te initiëren (client-initiated renegotiation). Bovendien komt een webserver hierdoor binnen een TLS-verbinding bloot te staan aan DoS-aanvallen. Een aanvaller kan ook zonder renegotiation op initiatief van een client soortgelijke DoS-aanvallen uitvoeren door veel parallelle TLS-verbindingen te openen. Dergelijke aanvallen zijn echter eenvoudiger te traceren en met de standaardmaatregelen te mitigeren. Merk op dat client-initiated renegotiation impact heeft op de beschikbaarheid en niet op de vertrouwelijkheid.
Zie \'ICT-beveiligingsrichtlijnen voor Transport Layer Security (TLS) v2.1\' van NCSC, richtlijn 8-1 en tabel 13.
Niveau van vereistheid: Optioneel
Client-initiated renegotiation
We testen of een client (doorgaans een webbrowser) een renegotiation kan initiëren met jouw webserver.
In het algemeen is het niet nodig om clients de mogelijkheid te bieden om een renegotiation te initiëren (client-initiated renegotiation). Bovendien komt een webserver hierdoor binnen een TLS-verbinding bloot te staan aan DoS-aanvallen. Een aanvaller kan ook zonder renegotiation op initiatief van een client soortgelijke DoS-aanvallen uitvoeren door veel parallelle TLS-verbindingen te openen. Dergelijke aanvallen zijn echter eenvoudiger te traceren en met de standaardmaatregelen te mitigeren. Merk op dat client-initiated renegotiation impact heeft op de beschikbaarheid en niet op de vertrouwelijkheid.
Zie \'ICT-beveiligingsrichtlijnen voor Transport Layer Security (TLS) v2.1\' van NCSC, richtlijn 8-1 en tabel 13.
Niveau van vereistheid: Optioneel
Client-initiated renegotiation
Je hoster (of zijn netwerkprovider) kondigt via het Border Gateway Protocol (BGP) aan voor welke van zijn IP-adresblokken hij inkomend internetverkeer accepteert. Andere netwerkproviders gebruiken deze route-aankondigingen om te bepalen via welke route ze het verkeer voor de IP-adressen van je server moeten sturen.
Een route-aankondiging is echter te vervalsen. Een andere netwerkprovider kan namelijk in de positie zijn om het IP-adresblok van jouw IP-adres te koppelen aan zijn netwerk en op die manier mogelijk internetverkeer te ontvangen dat eigenlijk voor jouw netwerkprovider bedoeld is. De oorzaak kan per ongeluk of kwaadwillig zijn. In beide gevallen kan het ertoe leiden dat je server onbereikbaar is of dat internetverkeer naar je server wordt onderschept.
Resource Public Key Infrastructure (RPKI) verbetert de bescherming hiertegen aanzienlijk. Met RPKI kan de rechtmatige houder van een blok IP-adressen namelijk een digitaal ondertekende verklaring met route-autorisatie (Route Origin Authorisation; afgekort: ROA) publiceren. Een andere netwerkprovider die internetverkeer wil sturen naar een bepaalde IP-adres, kan de bijbehorende verklaring gebruiken om ongeldige (Invalid
) routes te filteren. Daarmee voorkomt de netwerkprovider dat internetverkeer vanuit zijn netwerk naar ongeautoriseerde providernetwerken wordt gestuurd.
Niveau van vereistheid: Aanbevolen', + detail_web_mail_rpki_ns_exists_exp: 'We testen of er een RPKI Route Origin Authorisation (ROA) is gepubliceerd voor alle IP-adressen van de nameservers van je domein.
Je hoster (of zijn netwerkprovider) kondigt via het Border Gateway Protocol (BGP) aan voor welke van zijn IP-adresblokken hij inkomend internetverkeer accepteert. Andere netwerkproviders gebruiken deze route-aankondigingen om te bepalen via welke route ze het verkeer voor de IP-adressen van je server moeten sturen.
Een route-aankondiging is echter te vervalsen. Een andere netwerkprovider kan namelijk in de positie zijn om het IP-adresblok van jouw IP-adres te koppelen aan zijn netwerk en op die manier mogelijk internetverkeer te ontvangen dat eigenlijk voor jouw netwerkprovider bedoeld is. De oorzaak kan per ongeluk of kwaadwillig zijn. In beide gevallen kan het ertoe leiden dat je server onbereikbaar is of dat internetverkeer naar je server wordt onderschept.
Resource Public Key Infrastructure (RPKI) verbetert de bescherming hiertegen aanzienlijk. Met RPKI kan de rechtmatige houder van een blok IP-adressen namelijk een digitaal ondertekende verklaring met route-autorisatie (Route Origin Authorisation; afgekort: ROA) publiceren. Een andere netwerkprovider die internetverkeer wil sturen naar een bepaalde IP-adres, kan de bijbehorende verklaring gebruiken om ongeldige (Invalid
) routes te filteren. Daarmee voorkomt de netwerkprovider dat internetverkeer vanuit zijn netwerk naar ongeautoriseerde providernetwerken wordt gestuurd.',
detail_web_mail_rpki_ns_exists_label: 'Aanwezigheid van Route Origin Authorisation',
detail_web_mail_rpki_ns_exists_tech_table: 'Nameserver|IP-adres|RPKI Route Origin Authorization',
detail_web_mail_rpki_ns_exists_verdict_bad: 'Voor tenminste één van de IP-adressen van je nameservers is geen RPKI Route Origin Authorisation (ROA) gepubliceerd.',
detail_web_mail_rpki_ns_exists_verdict_good: 'Voor alle IP-adressen van je nameservers is een RPKI Route Origin Authorisation (ROA) gepubliceerd.',
detail_web_mail_rpki_ns_exists_verdict_no_addresses: 'Je domein bevat geen nameservers. Daarom kon deze subtest niet worden uitgevoerd.',
- detail_web_mail_rpki_ns_valid_exp: 'We testen of de validatie-status van alle IP-adressen van de nameservers van je domein Valid
is. Als er meerdere overlappende route-aankondigingen voor het IP-adres zijn, dan testen we of die allemaal Valid
zijn.
Je hoster (of zijn netwerkprovider) kondigt via het Border Gateway Protocol (BGP) aan voor welke van zijn IP-adresblokken hij inkomend internetverkeer accepteert. Dat doet hij door (delen van) zijn IP-adresblokken (Route Prefix) aan het unieke nummer van zijn providernetwerk (Route Origin ASN) te koppelen, en door deze routeringsinformatie vervolgens te verspreiden. Andere netwerkproviders gebruiken deze route-aankondigingen om te bepalen via welke route ze het verkeer voor de IP-adressen moeten sturen.
Aanvullend kan je hoster (of zijn netwerkprovider) voor iedere route-aankondiging een digitaal ondertekende verklaring met route-autorisatie (Route Origin Authorisation, afgekort: ROA) publiceren met behulp van Resource Public Key Infrastructure (RPKI).
Een andere netwerkprovider die gevraagd wordt om internetverkeer te sturen naar het IP-adres van je server, kan de bijbehorende verklaring cryptografisch controleren. De gecontroleerde inhoud (Validated ROA Payload; afgekort: VRP) omvat welke providernetwerken (VRP ASN) voor ieder opgenomen IP-adresblok (VRP Prefix) geautoriseerd zijn om internetverkeer te ontvangen.
De netwerkprovider kan deze inhoud vervolgens gebruiken om BGP-routes te filteren. Hij kan bijvoorbeeld eventuele Invalid
routes weigeren om te voorkomen dat internetverkeer vanuit zijn netwerk naar ongeautoriseerde providernetwerken wordt gestuurd.
Het vergelijken van route-aankondigingen met route-autorisaties (RPKI Origin Validation; afgekort: ROV) kent de onderstaande drie mogelijk uitkomsten.
Valid
: De route-aankondiging van het desbetreffende IP-adres wordt gematcht door tenminste één gepubliceerde route-autorisatie. Een route-autorisatie is ook matchend voor meer specifieke route-aankondigingen (d.w.z. voor een deel van het IP-adresblok dat in de route-autorisatie staat), tenzij deze meer specifiek zijn dan de limiet die in de route-autorisatie is bepaald (via het maxLength
attribuut).
Invalid
: De route-aankondiging van het desbetreffende IP-adres is wel afgedekt door een route-autorisatie, maar deze matcht niet. Er zijn twee mogelijke oorzaken:
het IP-adresblok (Route Prefix) wordt aangekondigd vanaf een providernetwerk (Route Origin ASN) dat in de route-autorisatie niet is geautoriseerd (resultaat in onderstaande tabel: "invalid (as)");
maxLength
waarde (resultaat in onderstaande tabel: "invalid (length)").Let op: De status Invalid
duidt op een onbedoelde of kwaadwillige route-configuratiefout, die wordt veroorzaakt door je hoster of zijn netwerkprovider (interne fout) óf door een derde partij (externe fout). In beide gevallen kan het leiden tot de onbereikbaarheid van je server of het onderscheppen van internetverkeer naar je server. Neem zo spoedig mogelijk contact op met je hoster. Bij een interne fout moet je hoster zijn netwerkprovider die eigenaar is van de IP-adressen van je server, vragen om de route-configuratiefout te herstellen.
NotFound
: Er is geen verklaring met route-autorisatie gevonden die de route-aankondiging van het desbetreffende IP-adres afdekt. De routering van internetverkeer naar jouw server is daardoor minder veilig. Neem hierover contact op met je hoster. Deze kan zijn netwerkprovider die eigenaar is van de IP-adressen van je server vragen om route-autorisaties te publiceren.Niveau van vereistheid: Aanbevolen',
+ detail_web_mail_rpki_ns_valid_exp: 'We testen of de validatie-status van alle IP-adressen van de nameservers van je domein Valid
is. Als er meerdere overlappende route-aankondigingen voor het IP-adres zijn, dan testen we of die allemaal Valid
zijn.
Je hoster (of zijn netwerkprovider) kondigt via het Border Gateway Protocol (BGP) aan voor welke van zijn IP-adresblokken hij inkomend internetverkeer accepteert. Dat doet hij door (delen van) zijn IP-adresblokken (Route Prefix) aan het unieke nummer van zijn providernetwerk (Route Origin ASN) te koppelen, en door deze routeringsinformatie vervolgens te verspreiden. Andere netwerkproviders gebruiken deze route-aankondigingen om te bepalen via welke route ze het verkeer voor de IP-adressen moeten sturen.
Aanvullend kan je hoster (of zijn netwerkprovider) voor iedere route-aankondiging een digitaal ondertekende verklaring met route-autorisatie (Route Origin Authorisation, afgekort: ROA) publiceren met behulp van Resource Public Key Infrastructure (RPKI).
Een andere netwerkprovider die gevraagd wordt om internetverkeer te sturen naar het IP-adres van je server, kan de bijbehorende verklaring cryptografisch controleren. De gecontroleerde inhoud (Validated ROA Payload; afgekort: VRP) omvat welke providernetwerken (VRP ASN) voor ieder opgenomen IP-adresblok (VRP Prefix) geautoriseerd zijn om internetverkeer te ontvangen.
De netwerkprovider kan deze inhoud vervolgens gebruiken om BGP-routes te filteren. Hij kan bijvoorbeeld eventuele Invalid
routes weigeren om te voorkomen dat internetverkeer vanuit zijn netwerk naar ongeautoriseerde providernetwerken wordt gestuurd.
Het vergelijken van route-aankondigingen met route-autorisaties (RPKI Origin Validation; afgekort: ROV) kent de onderstaande drie mogelijk uitkomsten.
1․ Valid
: De route-aankondiging van het desbetreffende IP-adres wordt gematcht door tenminste één gepubliceerde route-autorisatie. Een route-autorisatie is ook matchend voor meer specifieke route-aankondigingen (d.w.z. voor een deel van het IP-adresblok dat in de route-autorisatie staat), tenzij deze meer specifiek zijn dan de limiet die in de route-autorisatie is bepaald (via het maxLength
attribuut).
2․ Invalid
: De route-aankondiging van het desbetreffende IP-adres is wel afgedekt door een route-autorisatie, maar deze matcht niet. Er zijn twee mogelijke oorzaken:
maxLength
waarde (resultaat in onderstaande tabel: "invalid (length)").3․ NotFound
: Er is geen verklaring met route-autorisatie gevonden die de route-aankondiging van het desbetreffende IP-adres afdekt. De routering van internetverkeer naar jouw server is daardoor minder veilig. Neem hierover contact op met je hoster. Deze kan zijn netwerkprovider die eigenaar is van de IP-adressen van je server vragen om route-autorisaties te publiceren.
Wat te doen als het testresultaat de status Invalid toont?
De status Invalid
duidt op een onbedoelde of kwaadwillige route-configuratiefout, die wordt veroorzaakt door je hoster of zijn netwerkprovider (interne fout) óf door een derde partij (externe fout). In beide gevallen verhoogt dit het risico dat je server onbereikbaar wordt of dat internetverkeer naar je server wordt onderschept. Neem zo spoedig mogelijk contact op met je hoster. Bij een interne fout moet je hoster zijn netwerkprovider die eigenaar is van de IP-adressen van je server, vragen om de route-configuratiefout te herstellen. ',
detail_web_mail_rpki_ns_valid_label: 'Geldigheid van route-aankondiging',
detail_web_mail_rpki_ns_valid_tech_table: 'Nameserver|BGP Route Prefix|BGP Route Origin ASN|RPKI Origin Validation status',
detail_web_mail_rpki_ns_valid_verdict_bad: 'Ten minste één IP-adres van je nameservers heeft een NotFound
validatie-status. Er is geen RPKI Route Origin Authorisation (ROA) gepubliceerd voor zijn route-aankondiging.',
detail_web_mail_rpki_ns_valid_verdict_good: 'Alle IP-adressen van je nameservers hebben een Valid
validatie-status. De route-aankondiging van deze IP-adressen wordt gematcht door de gepubliceerde RPKI Route Origin Authorisation (ROA).',
- detail_web_mail_rpki_ns_valid_verdict_invalid: 'Tenminste één IP-adres van je nameservers heeft een Invalid
validatie-status. De route-aankondiging van de desbetreffende IP-adressen wordt niet gematcht door de gepubliceerde RPKI Route Origin Authorisation (ROA). Dit duidt op een onbedoelde of kwaadwillige route-configuratiefout, die wordt veroorzaakt door je nameserver-hoster (interne fout) óf door een derde partij (externe fout). In beide gevallen kan het leiden tot de onbereikbaarheid van je server of het onderscheppen van internetverkeer naar je server. Neem zo spoedig mogelijk contact op met je nameserver-hoster. Bij een interne fout moet je nameserver-hoster zijn netwerkprovider die eigenaar is van de IP-adressen van je server, vragen om de route-configuratiefout te herstellen.',
+ detail_web_mail_rpki_ns_valid_verdict_invalid: 'Tenminste één IP-adres van je nameservers heeft een Invalid
validatie-status. De route-aankondiging van de desbetreffende IP-adressen wordt niet gematcht door de gepubliceerde RPKI Route Origin Authorisation (ROA). Dit duidt op een onbedoelde of kwaadwillige route-configuratiefout, die wordt veroorzaakt door je nameserver-hoster (interne fout) óf door een derde partij (externe fout). In beide gevallen verhoogt dit het risico dat je server onbereikbaar wordt of dat internetverkeer naar je server wordt onderschept. Neem zo spoedig mogelijk contact op met je nameserver-hoster. Bij een interne fout moet je nameserver-hoster zijn netwerkprovider die eigenaar is van de IP-adressen van je server, vragen om de route-configuratiefout te herstellen.',
detail_web_mail_rpki_ns_valid_verdict_not_routed: 'Deze subtest werd niet uitgevoerd, omdat er voor geen van de IP-adressen een route-aankondiging beschikbaar was.',
domain_pagetitle: 'Websitetest:',
domain_title: 'Websitetest: {{prettyaddr}} ',
domain_tweetmessage: 'De%20website%20{{report.domain}}%20scoort%20{{score}}%25%20in%20de%20websitetest%20van%20%40Internet_nl%3A',
faqs_appsecpriv_title: 'Beveiligingsopties',
faqs_badges_title: 'Gebruik van 100%-badges',
+ faqs_batch_and_dashboard_title: 'Batch API en webgebaseerd dashboard',
faqs_dnssec_title: 'Domeinnaamhandtekening (DNSSEC)',
faqs_halloffame_title: 'Criteria voor \'Hall of Fame voor Hosters\'',
faqs_https_title: 'Beveiligde websiteverbinding (HTTPS)',
faqs_ipv6_title: 'Modern adres (IPv6)',
faqs_mailauth_title: 'Protectie tegen e-mailphishing (DMARC, DKIM en SPF)',
+ faqs_measurements_title: 'Metingen met Internet.nl',
faqs_report_score_title: 'Norm en score',
faqs_report_subtest_bad: 'Slecht: gezakt voor VEREISTE subtest ⇒ nulscore',
faqs_report_subtest_error: 'Testfout: uitvoeringsfout tijdens testen ⇒ nulscore',
@@ -745,7 +750,9 @@ const internet_nl_messages = {
test_mailipv6_title: 'Bereikbaar via modern internetadres?',
test_mailipv6_warning_description: 'Helaas! Je mailserver is niet bereikbaar voor verzenders met moderne adressen (IPv6), of er is verbetering mogelijk. Daardoor maakt je mailserver nog geen onderdeel uit van het moderne internet. Vraag je e-mailprovider om IPv6 volledig aan te zetten.',
test_mailipv6_warning_summary: 'Niet bereikbaar via modern internetadres, of verbetering mogelijk (IPv6)',
- test_mailrpki_failed_description: 'Helaas! Ten minste één van de IP-adressen van je ontvangende mailserver(s) en bijbehorende nameservers heeft een route-aankondiging die niet wordt gematcht door de gepubliceerde route-autorisatie (RPKI). Dit duidt op een onbedoelde of kwaadwillige route-configuratiefout, die wordt veroorzaakt door je mailhoster of je nameserver-hoster (interne fout) óf door een derde partij (externe fout). In beide gevallen kan het leiden tot de onbereikbaarheid van je server of het onderscheppen van internetverkeer naar je server. Neem zo spoedig mogelijk contact op met je mailhoster of nameserver-hoster. Bij een interne fout moeten zij hun netwerkprovider die eigenaar is van de IP-adressen van je server, vragen om de route-configuratiefout te herstellen.',
+ test_mailrpki_error_description: 'De test kan nog niet worden uitgevoerd. Probeer het later nog eens. Sorry voor het ongemak.',
+ test_mailrpki_error_summary: 'Test niet klaar om uit te voeren (RPKI)',
+ test_mailrpki_failed_description: 'Helaas! Ten minste één van de IP-adressen van je ontvangende mailserver(s) en bijbehorende nameservers heeft een route-aankondiging die niet wordt gematcht door de gepubliceerde route-autorisatie (RPKI). Dit duidt op een onbedoelde of kwaadwillige route-configuratiefout, die wordt veroorzaakt door je mailhoster of je nameserver-hoster (interne fout) óf door een derde partij (externe fout). In beide gevallen verhoogt dit het risico dat je server onbereikbaar wordt of dat internetverkeer naar je server wordt onderschept. Neem zo spoedig mogelijk contact op met je mailhoster of nameserver-hoster. Bij een interne fout moeten zij hun netwerkprovider die eigenaar is van de IP-adressen van je server, vragen om de route-configuratiefout te herstellen.',
test_mailrpki_failed_summary: 'Ongeautoriseerde route-aankondiging (RPKI)',
test_mailrpki_info_description: 'Ter informatie: Je domein bevat geen nameservers en dus ook geen ontvangende mailserver(s). Er zijn geen routeerbare IP-adressen die kunnen worden getest (RPKI).',
test_mailrpki_info_summary: 'Geen routeerbare IP-adressen gevonden (RPKI)',
@@ -753,7 +760,7 @@ const internet_nl_messages = {
test_mailrpki_passed_description: 'Goed gedaan! Alle IP-adressen van je ontvangende mailserver(s) en bijbehorende nameservers hebben een route-aankondiging die wordt gematcht door de gepubliceerde route-autorisatie (RPKI). Daardoor is het e-mailtransport tussen verzendende mailservers met ingeschakelde route-validatie en jouw ontvangende mailserver(s) beter beschermd tegen diverse onbedoelde of kwaadwillige route-configuratiefouten, die kunnen leiden tot de onbereikbaarheid van je servers of de onderschepping van internetverkeer naar je servers.',
test_mailrpki_passed_summary: 'Geautoriseerde route-aankondiging (RPKI)',
test_mailrpki_title: 'Route-autorisatie?',
- test_mailrpki_warning_description: 'Waarschuwing! Ten minste één van de IP-adressen van je mailserver en bijbehorende nameservers heeft een route-aankondiging waarvoor geen route-autorisatie is gepubliceerd (RPKI). Daardoor is het e-mailtransport tussen verzendende mailservers met ingeschakelde route-validatie en jouw ontvangende mailserver(s) niet (volledig) beschermd tegen diverse onbedoelde of kwaadwillige route-configuratiefouten, die kunnen leiden tot de onbereikbaarheid van je servers of de onderschepping van internetverkeer naar je servers. Neem hierover contact op met je mailhoster of nameserver-hoster. Zij kunnen hun netwerkprovider die eigenaar is van de IP-adressen van je server vragen om route-autorisaties te publiceren.',
+ test_mailrpki_warning_description: 'Helaas! Ten minste één van de IP-adressen van je mailserver en bijbehorende nameservers heeft een route-aankondiging waarvoor geen route-autorisatie is gepubliceerd (RPKI). Daardoor is het e-mailtransport tussen verzendende mailservers met ingeschakelde route-validatie en jouw ontvangende mailserver(s) niet (volledig) beschermd tegen diverse onbedoelde of kwaadwillige route-configuratiefouten, die kunnen leiden tot de onbereikbaarheid van je servers of de onderschepping van internetverkeer naar je servers. Neem hierover contact op met je mailhoster of nameserver-hoster. Zij kunnen hun netwerkprovider die eigenaar is van de IP-adressen van je server vragen om route-autorisaties te publiceren.',
test_mailrpki_warning_summary: 'Route-autorisatie niet gepubliceerd (RPKI)',
test_mailtls_failed_description: 'Helaas! Verzendende mailservers die beveiligd e-mailtransport (STARTTLS en DANE) ondersteunen, kunnen met jouw ontvangende mailserver(s) geen of een onvoldoende beveiligde verbinding opzetten. Passieve en/of actieve aanvallers kunnen daardoor e-mails onderweg naar jou lezen. Vraag je mailprovider om STARTTLS en DANE te activeren, en veilig in te stellen. ',
test_mailtls_failed_summary: 'Mailserver-verbinding niet of onvoldoende beveiligd (STARTTLS en DANE)',
@@ -762,9 +769,9 @@ const internet_nl_messages = {
test_mailtls_invalid_null_mx_description: 'Waarschuwing: Je domeinnaam adverteert een "Null MX" record dat aangeeft dat deze geen e-mail accepteert. Echter, óf je domeinnaam heeft geen A/AAAA records, waardoor het "Null MX" record onnodig is. Óf op je domeinnaam is een ontvangende mailserver ingesteld door een ander MX record, waardoor de "Null MX" tegenstrijdig is.',
test_mailtls_invalid_null_mx_summary: 'Tegenstrijdig geconfigureerd niet-ontvangend maildomein (STARTTLS en DANE)',
test_mailtls_label: 'Beveiligde mailserver-verbinding (STARTTLS en DANE)',
- test_mailtls_no_mx_description: 'Ter informatie: Er zijn geen ontvangende mailservers (MX) ingesteld op je domeinnaam die geen A/AAAA records heeft. Dat is prima als je geen e-mail wilt ontvangen. Merk op dat je in dit geval geen \'Null MX\' record nodig hebt. Door je configuratie zijn de subtesten in de categorieën voor STARTTLS en DANE niet van toepassing. Dit geldt ook voor de mailserver-specifieke subtesten in de categorieën voor IPv6 en DNSSEC.',
+ test_mailtls_no_mx_description: 'Ter informatie: Het SPF-record op je domeinnaam geeft aan dat je domeinnaam kan worden gebruikt voor het verzenden van e-mail. Je domeinnaam heeft echter geen ontvangende mailserver (MX), wat de bezorgbaarheid van je verzonden e-mail kan belemmeren omdat het ontbreken van een MX door ontvangers kan worden gezien als een indicator voor spam. Als je daarom echt mail vanaf deze domeinnaam wilt verzenden, configureer dan een MX. Als je echter geen mail wilt versturen vanaf deze domeinnaam, configureer dan een SPF-record met alleen de term -all
en daarnaast een "Null MX" record als je domeinnaam A/AAAA-records heeft. Vanwege je configuratie zijn de subtests in de categorie STARTTLS en DANE en de mailserver-specifieke subtests in de categorieën IPv6 en DNSSEC niet van toepassing.',
test_mailtls_no_mx_summary: 'Goed geconfigureerd niet-ontvangend mail domein (STARTTLS en DANE)',
- test_mailtls_no_null_mx_description: 'Ter informatie: Er zijn geen ontvangende mailservers (MX) ingesteld op je domeinnaam die A/AAAA records heeft. We raden je aan om expliciet aan te geven dat je domeinnaam geen e-mail accepteert door een "Null MX" record te configureren. Door je huidige configuratie zijn de subtesten in de categorieën voor STARTTLS en DANE niet van toepassing. Dit geldt ook voor de mailserver-specifieke subtesten in de categorieën voor IPv6 en DNSSEC.',
+ test_mailtls_no_null_mx_description: 'Ter informatie: Er zijn geen ontvangende mailservers (MX) ingesteld op je domein dat A/AAAA-records heeft en dat een SPF-record heeft met alleen de term -all
. We raden je aan een "Null MX" record in te stellen om expliciet aan te geven dat je domein geen e-mail accepteert. Vanwege je configuratie zijn de subtests in de categorie STARTTLS en DANE en de mailserver-specifieke subtests in de categorieën IPv6 en DNSSEC niet van toepassing.',
test_mailtls_no_null_mx_summary: 'Niet expliciet geconfigureerd niet-ontvangend mail domein (STARTTLS en DANE)',
test_mailtls_null_mx_description: 'Ter informatie: Je domeinnaam die A/AAAA-records heeft, geeft duidelijk aan dat het geen e-mail accepteert door een "Null MX" record te adverteren. Dat is prima als je geen e-mail wilt ontvangen. Je configuratie maakt de subtesten in de categorieën voor STARTTLS en DANE niet van toepassing. Dit geldt ook voor de mailserver-specifieke subtesten in de categorieën voor IPv6 en DNSSEC.',
test_mailtls_null_mx_summary: 'Goed geconfigureerd niet-ontvangend mail domein (STARTTLS en DANE)',
@@ -781,15 +788,15 @@ const internet_nl_messages = {
test_mailtls_untestable_summary: 'Niet-testbare mailserver (STARTTLS en DANE)',
test_mailtls_warning_description: 'Helaas! Verzendende mailservers die beveiligd e-mailtransport (STARTTLS en DANE) ondersteunen, kunnen met jouw ontvangende mailserver(s) geen of een onvoldoende beveiligde verbinding opzetten. Passieve en/of actieve aanvallers kunnen daardoor e-mails onderweg naar jou lezen. Vraag je mailprovider om STARTTLS en DANE te activeren, en veilig in te stellen. ',
test_mailtls_warning_summary: 'Mailserver-verbinding niet of onvoldoende beveiligd (STARTTLS en DANE)',
- test_siteappsecpriv_failed_description: 'Helaas! Niet alle vereiste beveiligingsopties, dat wil zeggen security headers en security.txt, zijn ingesteld voor je website (Beveiligingsopties). Met security headers kan je browsermechanismen activeren om bezoekers te beschermen tegen aanvallen met bijvoorbeeld cross-site scripting (XSS) of framing. Via een security.txt-bestand kan je onderzoekers die een kwetsbaarheid op je systemen hebben gevonden, voorzien van je contactgegevens en je Coordinated Vulnerability Disclosure policy. Merk op dat HTTPS een voorwaarde is voor alle geteste beveiligingsopties. Verder is het zo dat security headers (behalve Referrer-Policy) niet relevant zijn voor domeinen die redirecten (via een 301/302 HTTP Status Code).',
+ test_siteappsecpriv_failed_description: 'Helaas! Niet alle vereiste beveiligingsopties, dat wil zeggen security headers en security.txt, zijn ingesteld voor je website (Beveiligingsopties). Met security headers kan je browsermechanismen activeren om bezoekers te beschermen tegen aanvallen met bijvoorbeeld cross-site scripting (XSS) of framing. Security headers zijn ook relevant voor domeinen met HTTP response codes zoals \'301 Redirect\' en \'404 Not Found\', omdat ze hun eigen browsercontext creëren (MIME type \'text/html\') die kwetsbaar kan zijn voor bepaalde aanvallen. Via een security.txt-bestand kan je onderzoekers die een kwetsbaarheid op je systemen hebben gevonden, voorzien van je contactgegevens en je Coordinated Vulnerability Disclosure policy. Merk op dat HTTPS een voorwaarde is voor alle geteste beveiligingsopties.',
test_siteappsecpriv_failed_summary: 'Een of meer vereiste beveiligingsopties niet ingesteld (Beveiligingsopties) ',
- test_siteappsecpriv_info_description: 'Ter informatie: Niet alle optionele beveiligingsopties, dat wil zeggen security headers en security.txt, zijn ingesteld voor je website (Beveiligingsopties). Met security headers kan je browsermechanismen activeren om bezoekers te beschermen tegen aanvallen met bijvoorbeeld cross-site scripting (XSS) of framing. Via een security.txt-bestand kan je onderzoekers die een kwetsbaarheid op je systemen hebben gevonden, voorzien van je contactgegevens en je Coordinated Vulnerability Disclosure policy. Merk op dat HTTPS een voorwaarde is voor alle geteste beveiligingsopties. Verder is het zo dat security headers (behalve Referrer-Policy) niet relevant zijn voor domeinen die redirecten (via een 301/302 HTTP Status Code).',
+ test_siteappsecpriv_info_description: 'Ter informatie: Niet alle optionele beveiligingsopties, dat wil zeggen security headers en security.txt, zijn ingesteld voor je website (Beveiligingsopties). Met security headers kan je browsermechanismen activeren om bezoekers te beschermen tegen aanvallen met bijvoorbeeld cross-site scripting (XSS) of framing. Security headers zijn ook relevant voor domeinen met HTTP response codes zoals \'301 Redirect\' en \'404 Not Found\', omdat ze hun eigen browsercontext creëren (MIME type \'text/html\') die kwetsbaar kan zijn voor bepaalde aanvallen. Via een security.txt-bestand kan je onderzoekers die een kwetsbaarheid op je systemen hebben gevonden, voorzien van je contactgegevens en je Coordinated Vulnerability Disclosure policy. Merk op dat HTTPS een voorwaarde is voor alle geteste beveiligingsopties.',
test_siteappsecpriv_info_summary: 'Een of meer optionele beveiligingsopties niet ingesteld (Beveiligingsopties) ',
test_siteappsecpriv_label: 'Beveiligingsopties',
- test_siteappsecpriv_passed_description: 'Goed gedaan! Alle beveiligingsopties, dat wil zeggen security headers en security.txt, zijn ingesteld voor je website (Beveiligingsopties). Met security headers kan je browsermechanismen activeren om bezoekers te beschermen tegen aanvallen met bijvoorbeeld cross-site scripting (XSS) of framing. Via een security.txt-bestand kan je onderzoekers die een kwetsbaarheid op je systemen hebben gevonden, voorzien van je contactgegevens en je Coordinated Vulnerability Disclosure policy. Merk op dat HTTPS een voorwaarde is voor alle geteste beveiligingsopties. Verder is het zo dat security headers (behalve Referrer-Policy) niet relevant zijn voor domeinen die redirecten (via een 301/302 HTTP Status Code).',
+ test_siteappsecpriv_passed_description: 'Goed gedaan! Alle beveiligingsopties, dat wil zeggen security headers en security.txt, zijn ingesteld voor je website (Beveiligingsopties). Met security headers kan je browsermechanismen activeren om bezoekers te beschermen tegen aanvallen met bijvoorbeeld cross-site scripting (XSS) of framing. Security headers zijn ook relevant voor domeinen met HTTP response codes zoals \'301 Redirect\' en \'404 Not Found\', omdat ze hun eigen browsercontext creëren (MIME type \'text/html\') die kwetsbaar kan zijn voor bepaalde aanvallen. Via een security.txt-bestand kan je onderzoekers die een kwetsbaarheid op je systemen hebben gevonden, voorzien van je contactgegevens en je Coordinated Vulnerability Disclosure policy. Merk op dat HTTPS een voorwaarde is voor alle geteste beveiligingsopties.',
test_siteappsecpriv_passed_summary: 'Alle beveiligingsopties ingesteld (Beveiligingsopties)',
test_siteappsecpriv_title: 'Beveiligingsopties ingesteld?',
- test_siteappsecpriv_warning_description: 'Waarschuwing: Niet alle aanbevolen beveiligingsopties, dat wil zeggen security headers en security.txt, zijn ingesteld voor je website (Beveiligingsopties). Met security headers kan je browsermechanismen activeren om bezoekers te beschermen tegen aanvallen met bijvoorbeeld cross-site scripting (XSS) of framing. Via een security.txt-bestand kan je onderzoekers die een kwetsbaarheid op je systemen hebben gevonden, voorzien van je contactgegevens en je Coordinated Vulnerability Disclosure policy. Merk op dat HTTPS een voorwaarde is voor alle geteste beveiligingsopties. Verder is het zo dat security headers (behalve Referrer-Policy) niet relevant zijn voor domeinen die redirecten (via een 301/302 HTTP Status Code).',
+ test_siteappsecpriv_warning_description: 'Waarschuwing: Niet alle aanbevolen beveiligingsopties, dat wil zeggen security headers en security.txt, zijn ingesteld voor je website (Beveiligingsopties). Met security headers kan je browsermechanismen activeren om bezoekers te beschermen tegen aanvallen met bijvoorbeeld cross-site scripting (XSS) of framing. Security headers zijn ook relevant voor domeinen met HTTP response codes zoals \'301 Redirect\' en \'404 Not Found\', omdat ze hun eigen browsercontext creëren (MIME type \'text/html\') die kwetsbaar kan zijn voor bepaalde aanvallen. Via een security.txt-bestand kan je onderzoekers die een kwetsbaarheid op je systemen hebben gevonden, voorzien van je contactgegevens en je Coordinated Vulnerability Disclosure policy. Merk op dat HTTPS een voorwaarde is voor alle geteste beveiligingsopties.',
test_siteappsecpriv_warning_summary: 'Een of meer aanbevolen beveiligingsopties niet ingesteld (Beveiligingsopties) ',
test_sitednssec_failed_description: 'Helaas! Je domeinnaam is niet ondertekend met een geldige handtekening (DNSSEC). Daardoor zijn bezoekers die controle van domein-handtekeningen geactiveerd hebben, niet beschermd tegen gemanipuleerde vertaling van jouw domeinnaam naar kwaadaardige internetadressen. Vraag je nameserver-beheerder (vaak je registrar en/of hostingprovider) om DNSSEC te activeren.',
test_sitednssec_failed_summary: 'Domeinnaam niet ondertekend (DNSSEC)',
@@ -811,7 +818,9 @@ const internet_nl_messages = {
test_siteipv6_title: 'Bereikbaar via modern adres?',
test_siteipv6_warning_description: 'Helaas! Je website is niet bereikbaar voor bezoekers die een modern internetadres (IPv6) gebruiken, of er is verbetering mogelijk. Daardoor maakt je website nog geen onderdeel uit van het moderne internet. Vraag je hostingprovider om IPv6 volledig aan te zetten.',
test_siteipv6_warning_summary: 'Niet bereikbaar via modern internetadres, of verbetering mogelijk (IPv6)',
- test_siterpki_failed_description: 'Helaas! Ten minste één van de IP-adressen van je ontvangende webserver en bijbehorende nameservers heeft een route-aankondiging die niet wordt gematcht door de gepubliceerde route-autorisatie (RPKI). Dit duidt op een onbedoelde of kwaadwillige route-configuratiefout, die wordt veroorzaakt door je webhoster of je nameserver-hoster (interne fout) óf door een derde partij (externe fout). In beide gevallen kan het leiden tot de onbereikbaarheid van je server of het onderscheppen van internetverkeer naar je server. Neem zo spoedig mogelijk contact op met je webhoster of nameserver-hoster. Bij een interne fout moeten zij hun netwerkprovider die eigenaar is van de IP-adressen van je server, vragen om de route-configuratiefout te herstellen.',
+ test_siterpki_error_description: 'De test kan nog niet worden uitgevoerd. Probeer het later nog eens. Sorry voor het ongemak.',
+ test_siterpki_error_summary: 'Test niet klaar om uit te voeren (RPKI)',
+ test_siterpki_failed_description: 'Helaas! Ten minste één van de IP-adressen van je ontvangende webserver en bijbehorende nameservers heeft een route-aankondiging die niet wordt gematcht door de gepubliceerde route-autorisatie (RPKI). Dit duidt op een onbedoelde of kwaadwillige route-configuratiefout, die wordt veroorzaakt door je webhoster of je nameserver-hoster (interne fout) óf door een derde partij (externe fout). In beide gevallen verhoogt dit het risico dat je server onbereikbaar wordt of dat internetverkeer naar je server wordt onderschept. Neem zo spoedig mogelijk contact op met je webhoster of nameserver-hoster. Bij een interne fout moeten zij hun netwerkprovider die eigenaar is van de IP-adressen van je server, vragen om de route-configuratiefout te herstellen.',
test_siterpki_failed_summary: 'Ongeautoriseerde route-aankondiging (RPKI)',
test_siterpki_info_description: 'Ter informatie: Je domein bevat geen nameservers en dus ook geen IP-adressen van webservers. Er zijn geen routeerbare IP-adressen die kunnen worden getest (RPKI).',
test_siterpki_info_summary: 'Geen routeerbare IP-adressen gevonden (RPKI)',
@@ -819,7 +828,7 @@ const internet_nl_messages = {
test_siterpki_passed_description: 'Goed gedaan! Alle IP-adressen van je webserver en bijbehorende nameservers hebben een route-aankondiging die wordt gematcht door de gepubliceerde route-autorisatie (RPKI). Daardoor zijn bezoekers met ingeschakelde route-validatie beter beschermd tegen verschillende onbedoelde of kwaadwillige route-configuratiefouten, die kunnen leiden tot de onbereikbaarheid van je servers of de onderschepping van internetverkeer naar je servers.',
test_siterpki_passed_summary: 'Geautoriseerde route-aankondiging (RPKI)',
test_siterpki_title: 'Route-autorisatie?',
- test_siterpki_warning_description: 'Waarschuwing! Ten minste één van de IP-adressen van je webserver en bijbehorende nameservers heeft een route-aankondiging waarvoor geen route-autorisatie is gepubliceerd (RPKI). Als gevolg daarvan zijn bezoekers met ingeschakelde routevalidatie niet (volledig) beschermd tegen verschillende onbedoelde of kwaadwillige route-configuratiefouten, die kunnen leiden tot de onbereikbaarheid van je servers of de onderschepping van internetverkeer naar je servers. Neem hierover contact op met je webhoster of nameserver-hoster. Zij kunnen hun netwerkprovider die eigenaar is van de IP-adressen van je server vragen om route-autorisaties te publiceren.',
+ test_siterpki_warning_description: 'Helaas! Ten minste één van de IP-adressen van je webserver en bijbehorende nameservers heeft een route-aankondiging waarvoor geen route-autorisatie is gepubliceerd (RPKI). Als gevolg daarvan zijn bezoekers met ingeschakelde routevalidatie niet (volledig) beschermd tegen verschillende onbedoelde of kwaadwillige route-configuratiefouten, die kunnen leiden tot de onbereikbaarheid van je servers of de onderschepping van internetverkeer naar je servers. Neem hierover contact op met je webhoster of nameserver-hoster. Zij kunnen hun netwerkprovider die eigenaar is van de IP-adressen van je server vragen om route-autorisaties te publiceren.',
test_siterpki_warning_summary: 'Route-autorisatie niet gepubliceerd (RPKI)',
test_sitetls_failed_description: 'Helaas! De verbinding met je website is niet of onvoldoende beveiligd (HTTPS). Gegevens die onderweg zijn tussen je website en haar bezoekers, zijn daardoor niet voldoende beschermd tegen afluisteren en manipulatie. Vraag je hostingprovider om HTTPS aan te zetten en veilig te configureren.',
test_sitetls_failed_summary: 'Verbinding niet of onvoldoende beveiligd (HTTPS)',
@@ -888,16 +897,16 @@ const internet_nl_messages = {
detail_conn_dnssec_validation_tech_table: 'DNS provider',
detail_conn_dnssec_validation_verdict_bad: 'You are not protected by DNSSEC signature validation.',
detail_conn_dnssec_validation_verdict_good: 'You are protected by DNSSEC signature validation.',
- detail_conn_ipv6_connection_exp: 'We check if your device through its current internet connection is able to connect directly (i.e. without DNS translation) with our webserver using our corresponding IPv6 address.
Some browser add-ons and routers offer functionality for domain filtering in order to enhance privacy or restrict internet use. To prevent circumvention this kind of functionality often blocks connecting to IP addresses directly, making your internet connection fail for this subtest.', + detail_conn_ipv6_connection_exp: 'We check if your device through its current internet connection is able to connect directly (i.e. without DNS translation) with our web server using our corresponding IPv6 address.
Some browser add-ons and routers offer functionality for domain filtering in order to enhance privacy or restrict internet use. To prevent circumvention this kind of functionality often blocks connecting to IP addresses directly, making your internet connection fail for this subtest.', detail_conn_ipv6_connection_label: 'IPv6 connectivity (direct)', detail_conn_ipv6_connection_tech_table: 'Anonymized IPv6 address|Reverse name|Internet provider', detail_conn_ipv6_connection_verdict_bad: 'You are not able to reach computers directly on their IPv6 address.', detail_conn_ipv6_connection_verdict_good: 'You are able to reach computers directly on their IPv6 address.', - detail_conn_ipv6_dns_conn_exp: 'We check if your device through its current internet connection is able to connect to our webserver via IPv6. For this test we provide a domain name and we expect your resolver to resolve the domain name to the appropriate IPv6 address.', + detail_conn_ipv6_dns_conn_exp: 'We check if your device through its current internet connection is able to connect to our web server via IPv6. For this test we provide a domain name and we expect your resolver to resolve the domain name to the appropriate IPv6 address.', detail_conn_ipv6_dns_conn_label: 'IPv6 connectivity (via DNS)', detail_conn_ipv6_dns_conn_verdict_bad: 'You are not able to reach computers via DNS on their IPv6 address.', detail_conn_ipv6_dns_conn_verdict_good: 'You are able to reach computers via DNS on their IPv6 address.', - detail_conn_ipv6_ipv4_conn_exp: 'We check if your device through its current internet connection is able to connect to our webserver via IPv4. For this test we provide a domain name and we expect your resolver to resolve the domain name to the appropriate IPv4 address.
Requirement level: Optional', + detail_conn_ipv6_ipv4_conn_exp: 'We check if your device through its current internet connection is able to connect to our web server via IPv4. For this test we provide a domain name and we expect your resolver to resolve the domain name to the appropriate IPv4 address.
Requirement level: Optional', detail_conn_ipv6_ipv4_conn_label: 'IPv4 connection (via DNS)', detail_conn_ipv6_ipv4_conn_tech_table: 'Anonymized IPv4 address|Reverse name|Internet provider', detail_conn_ipv6_ipv4_conn_verdict_bad: 'You are not able to reach computers via DNS on their IPv4 address.', @@ -910,7 +919,7 @@ const internet_nl_messages = { detail_conn_ipv6_resolver_conn_label: 'IPv6 connectivity of DNS resolver', detail_conn_ipv6_resolver_conn_verdict_bad: 'Your DNS resolver is not able to reach name servers over IPv6.', detail_conn_ipv6_resolver_conn_verdict_good: 'Your DNS resolver is able to reach name servers over IPv6.', - detail_mail_auth_dkim_exp: 'We check if your domain supports DKIM records. A receiving mail server canuse the public key in your DKIM record to validate the signature in an email with a user from your domain as sender and determine its authenticity.
NOERROR
to our query for_domainkey.example.nl
. When _domainkey.example.nl
is an \'empty non-terminal\' some name servers that are not conformant with the standardRFC 2308 incorrectly answer NXDOMAIN
instead of NOERROR
. This makes itimpossible for us to detect support for DKIM records.From:
) and this must be identical to the DKIM domain (d=
) and the SPF domain (envelope sender, i.e. return-path that shows up in MAIL FROM
).For a "good practice on domains without mail" see the explanation of the "DMARC policy" subtest.', + detail_mail_auth_dkim_exp: '
We check if your domain supports DKIM records. A receiving mail server canuse the public key in your DKIM record to validate the signature in an email with a user from your domain as sender and determine its authenticity.
NOERROR
to our query for_domainkey.example.nl
. When _domainkey.example.nl
is an \'empty non-terminal\' some name servers that are not conformant with the standardRFC 2308 incorrectly answer NXDOMAIN
instead of NOERROR
. This makes itimpossible for us to detect support for DKIM records.From:
) and this must be identical to the DKIM domain (d=
) and the SPF domain (envelope sender, i.e. return-path that shows up in MAIL FROM
).Additional notes:
simple
setting tolerates almost no modifications, and relaxed
tolerates common modifications. If no setting is specified it defaults to simple
for both header and body. In particular, header modifications are a common cause of a DKIM signature unintentionally becoming invalid, thus hindering deliverability. Using relaxed
for the header while keeping simple
for the body (c=relaxed/simple
), can mitigate these kind of issues.We check if the syntax of your DMARC record is correct and if it contains a sufficiently strict policy (p=quarantine
or p=reject
) in order to prevent abuse of your domain by phishers and spammers. Even without a strict policy, DMARC can be useful to get more insight in legitimate and illegitimate outbound mail flows through DMARC reports. However to be effective against abuse of your domain, a liberal policy (p=none
) is insufficient.
We also check whether the mail addresses under rua=
and ruf=
are valid. In case they contain an external mail address we check whether the external domain is authorised to receive DMARC reports. Make sure that the DMARC authorisation record on the external domain contains at least "v=DMARC1;"
.
The test permits the use of the experimental np
tag (RFC 9091).
Good practice for domains without mail:
p=reject
) and SPF policy (-all
) for your domain that you do not use for sending mail in order to prevent abuse (\'spoofing\'). Note that DKIM is not necessary in this case.Below you will find two basic example DNS configurations for domain names that are not used to send and receive mail.
A. Single domain without A or AAAA record
example.nl. TXT "v=spf1 -all"*.example.nl. TXT "v=spf1 -all"_dmarc.example.nl. TXT "v=DMARC1; p=reject;"
B. Single no-mail domain with A or AAAA record
example.nl. AAAA 2a00:d78:0:712:94:198:159:35example.nl. A 94.198.159.35example.nl. MX 0 .example.nl. TXT "v=spf1 -all"*.example.nl. TXT "v=spf1 -all"www.example.nl. CNAME example.nl_dmarc.example.nl. TXT "v=DMARC1; p=reject;"
',
+ detail_mail_auth_dmarc_policy_exp: 'We check if the syntax of your DMARC record is correct and if it contains a sufficiently strict policy (p=quarantine
or p=reject
) in order to prevent abuse of your domain by phishers and spammers. Even without a strict policy, DMARC can be useful to get more insight in legitimate and illegitimate outbound mail flows through DMARC reports. However to be effective against abuse of your domain, a liberal policy (p=none
) is insufficient.
We also check whether the mail addresses under rua=
and ruf=
are valid. In case they contain an external mail address we check whether the external domain is authorised to receive DMARC reports. Make sure that the DMARC authorisation record on the external domain contains at least "v=DMARC1;"
.
The test permits the use of the experimental np
tag (RFC 9091).
Good practice for domains without mail:
p=reject
) and SPF policy (-all
) for your domain that you do not use for sending mail in order to prevent abuse (\'spoofing\'). Note that DKIM is not necessary in this case.Below you will find two basic example DNS configurations for domain names that are not used to send and receive mail.
A. Single domain without A or AAAA record
example.nl. TXT "v=spf1 -all"*.example.nl. TXT "v=spf1 -all"_dmarc.example.nl. TXT "v=DMARC1; p=reject;"
B. Single no-mail domain with A or AAAA record
example.nl. AAAA 2a00:d78:0:712:94:198:159:35example.nl. A 94.198.159.35example.nl. MX 0 .example.nl. TXT "v=spf1 -all"*.example.nl. TXT "v=spf1 -all"www.example.nl. CNAME example.nl_dmarc.example.nl. TXT "v=DMARC1; p=reject;"
',
detail_mail_auth_dmarc_policy_label: 'DMARC policy',
detail_mail_auth_dmarc_policy_verdict_bad: 'Your DMARC policy is not syntactically correct.',
detail_mail_auth_dmarc_policy_verdict_external: 'The domain of the external mail address following rua=
and/or ruf=
has no (valid) authorisation record for receiving DMARC reports for the tested domain. ',
@@ -940,20 +949,20 @@ const internet_nl_messages = {
detail_mail_auth_spf_policy_verdict_include: 'Your SPF policy is not sufficiently strict. The \'include\' mechanism in your SPF record points to an insufficiently strict SPF policy or a non-existing SPF record.',
detail_mail_auth_spf_policy_verdict_max_lookups: 'Your SPF policy is not effective as it requires more than the allowed 10 DNS lookups. Each of the following SPF terms counts as a DNS lookup: redirect
, include
, a
, mx
, ptr
and exist
. The SPF terms all
, ip4
, ip6
and exp
do not count as DNS lookups.',
detail_mail_auth_spf_policy_verdict_redirect: 'Your SPF policy is not sufficiently strict. The \'redirect\' modifier in your SPF record points to an insufficiently strict SPF policy or a non-existing SPF record.',
- detail_mail_dnssec_exists_exp: 'We check if your domain, more specifically its SOA record, is DNSSEC signed. With a DNSSEC signature senders who validate domain signatures can verify the authenticity of the DNS reply that contains your mail server domains (MX). This prevents an attacker from manipulating the DNS answer in order to redirect mails sent to you to the attacker\'s mailserver domain.If a domain redirects to another domain via CNAME
, then we also check if the CNAME domain is signed (which is conformant with the DNSSEC standard). If the CNAME domain is not signed, the result of this subtest will be negative.
Note: the validity of the signature is not part of this subtest, but part of the next subtest.', + detail_mail_dnssec_exists_exp: 'We check if your domain, more specifically its SOA record, is DNSSEC signed. With a DNSSEC signature senders who validate domain signatures can verify the authenticity of the DNS reply that contains your mail server domains (MX). This prevents an attacker from manipulating the DNS answer in order to redirect mails sent to you to the attacker\'s mail server domain.
If a domain redirects to another domain via CNAME
, then we also check if the CNAME domain is signed (which is conformant with the DNSSEC standard). If the CNAME domain is not signed, the result of this subtest will be negative.
Note: the validity of the signature is not part of this subtest, but part of the next subtest.',
detail_mail_dnssec_exists_label: 'DNSSEC existence',
detail_mail_dnssec_exists_tech_table: 'Email address domain|Registrar',
detail_mail_dnssec_exists_verdict_bad: 'Your email address domain is insecure, because it is not DNSSEC signed.',
detail_mail_dnssec_exists_verdict_good: 'Your email address domain is DNSSEC signed.',
detail_mail_dnssec_exists_verdict_resolver_error: 'Unfortunately an error occurred in Internet.nl\'s resolver. Please contact us.',
detail_mail_dnssec_exists_verdict_servfail: 'The name servers of your email address domain are broken. They returned an error (SERVFAIL
) to our queries for a DNSSEC signature. Please contact your name server operator (often your hosting provider and/or registrar) to fix this soon.',
- detail_mail_dnssec_mx_exists_exp: 'We check if the domains of your mail servers (MX), more specifically their SOA records, are DNSSEC signed. With a DNSSEC signature senders who validate domain signatures can verify the authenticity of the DNS reply containing the IP addresses and DANE records of your mailserver(s). This prevents an attacker from manipulating the DNS answer in order to redirect mails sent to you to an IP address controlled by the attacker or to eavesdrop on the secured mail server connection.
If a domain redirects to another domain via CNAME
, then we also check if the CNAME domain is signed (which is conformant with the DNSSEC standard). If the CNAME domain is not signed, the result of this subtest will be negative.
Note that the email test does not fall back to A/AAAA records for mail servers in case of absence of an MX record.
The validity of the signature is not part of this subtest, but part of the next subtest.', + detail_mail_dnssec_mx_exists_exp: 'We check if the domains of your mail servers (MX), more specifically their SOA records, are DNSSEC signed. With a DNSSEC signature senders who validate domain signatures can verify the authenticity of the DNS reply containing the IP addresses and DANE records of your mail server(s). This prevents an attacker from manipulating the DNS answer in order to redirect mails sent to you to an IP address controlled by the attacker or to eavesdrop on the secured mail server connection.
If a domain redirects to another domain via CNAME
, then we also check if the CNAME domain is signed (which is conformant with the DNSSEC standard). If the CNAME domain is not signed, the result of this subtest will be negative.
Note that the email test does not fall back to A/AAAA records for mail servers in case of absence of an MX record.
The validity of the signature is not part of this subtest, but part of the next subtest.',
detail_mail_dnssec_mx_exists_label: 'DNSSEC existence',
detail_mail_dnssec_mx_exists_tech_table: 'Domain of mail server (MX)|DNSSEC existent',
detail_mail_dnssec_mx_exists_verdict_bad: 'At least one of your mail server domains is insecure, because it is not DNSSEC signed.',
detail_mail_dnssec_mx_exists_verdict_good: 'All your mail server domains are DNSSEC signed.',
detail_mail_dnssec_mx_exists_verdict_invalid_null_mx: 'Your domain advertises a "Null MX" record indicating that it does not accept email. However, either your domain does not have A/AAAA records, making the "Null MX" record unnecessary. Or on your domain a receiving mail server is set by another MX record, making the "Null MX" conflicting.',
- detail_mail_dnssec_mx_exists_verdict_no_mailservers: 'No receiving mail servers (MX) are set on your domain that does not have A/AAAA records. This is fine if you do not want to receive email.',
+ detail_mail_dnssec_mx_exists_verdict_no_mailservers: 'The SPF record on your domain indicates that your domain may be used for sending mail. However, your domain does not have a receiving mail server (MX), which could hinder deliverability of your sent mails because not having an MX may be seen by receivers as an indicator for spam. Therefore if you really want to send mail from this domain, configure an MX. However, if you do not want to send mail from this domain, configure an SPF record with the -all
term only and besides a "Null MX" record if your domain has A/AAAA records. Because of your configuration, the subtests in the STARTTLS and DANE category and the mail server specific subtests in the IPv6 and DNSSEC categories are not applicable.',
detail_mail_dnssec_mx_exists_verdict_no_null_mx: 'No receiving mail servers (MX) are set on your domain that has A/AAAA records. We recommend you to explicitly indicate that your domain does not accept email by configuring a "Null MX" record. Do not use a "Null MX" record and set an MX if you do want to send email from this domain name, as receiving servers may reject email that has an invalid return address.',
detail_mail_dnssec_mx_exists_verdict_null_mx: 'Your domain name that has A/AAAA records clearly indicates with a "Null MX" record that it does not accept e-mail. This is fine if you do not want to receive email. Do not use a "Null MX" record and set an MX if you do want to send email from this domain name, as receiving servers may reject email that has an invalid return address.',
detail_mail_dnssec_mx_exists_verdict_null_mx_with_other_mx: 'Your domain advertises a "Null MX" record indicating that it does not accept email. However, on your domain a receiving mail server is set by another MX record, making the "Null MX" conflicting.',
@@ -978,41 +987,41 @@ const internet_nl_messages = {
detail_mail_ipv6_mx_aaaa_verdict_bad: 'At least one receiving mail server on your domain does not have an IPv6 address.',
detail_mail_ipv6_mx_aaaa_verdict_good: 'All receiving mail servers on your domain have an IPv6 address.',
detail_mail_ipv6_mx_aaaa_verdict_invalid_null_mx: 'Your domain advertises a "Null MX" record indicating that it does not accept email. However, either your domain does not have A/AAAA records, making the "Null MX" record unnecessary. Or on your domain a receiving mail server is set by another MX record, making the "Null MX" conflicting.',
- detail_mail_ipv6_mx_aaaa_verdict_no_null_mx: 'No receiving mail servers (MX) are set on your domain that has A/AAAA records. We recommend you to explicitly indicate that your domain does not accept email by configuring a "Null MX" record. Do not use a "Null MX" record and set an MX if you do want to send email from this domain name, as receiving servers may reject email that has an invalid return address.',
+ detail_mail_ipv6_mx_aaaa_verdict_no_null_mx: 'No receiving mail servers (MX) are set on your domain that has A/AAAA records and has an SPF record with only the term -all. We recommend you to set a "Null MX" record to explicitly indicate that your domain does not accept email. Because of your configuration, the subtests in the STARTTLS and DANE category and the mail server specific subtests in the IPv6 and DNSSEC categories are not applicable.',
detail_mail_ipv6_mx_aaaa_verdict_null_mx: 'Your domain name that has A/AAAA records clearly indicates with a "Null MX" record that it does not accept e-mail. This is fine if you do not want to receive email. Do not use a "Null MX" record and set an MX if you do want to send email from this domain name, as receiving servers may reject email that has an invalid return address.',
detail_mail_ipv6_mx_aaaa_verdict_null_mx_with_other_mx: 'Your domain advertises a "Null MX" record indicating that it does not accept email. However, on your domain a receiving mail server is set by another MX record, making the "Null MX" conflicting.',
detail_mail_ipv6_mx_aaaa_verdict_null_mx_without_a_aaaa: 'Your domain advertises a "Null MX" record indicating that it does not accept email. However, your domain does not have A/AAAA records, making the "Null MX" record unnecessary.',
- detail_mail_ipv6_mx_aaaa_verdict_other: 'No receiving mail servers (MX) are set on your domain that does not have A/AAAA records. This is fine if you do not want to receive email.',
+ detail_mail_ipv6_mx_aaaa_verdict_other: 'The SPF record on your domain indicates that your domain may be used for sending mail. However, your domain does not have a receiving mail server (MX), which could hinder deliverability of your sent mails because not having an MX may be seen by receivers as an indicator for spam. Therefore if you really want to send mail from this domain, configure an MX. However, if you do not want to send mail from this domain, configure an SPF record with the -all
term only and besides a "Null MX" record if your domain has A/AAAA records. Because of your configuration, the subtests in the STARTTLS and DANE category and the mail server specific subtests in the IPv6 and DNSSEC categories are not applicable.',
detail_mail_ipv6_mx_reach_exp: 'We check if we can connect to your mail servers (MX) over IPv6 on port 25. We test all IPv6 addresses that we receive from the name servers of your mail server domain(s). A partial score will be given if not all IPv6 addresses are reachable. If an IPv6 address is (syntactically) invalid, we consider it unreachable.',
detail_mail_ipv6_mx_reach_label: 'IPv6 reachability of mail server(s)',
detail_mail_ipv6_mx_reach_tech_table: 'Mail server (MX)|Unreachable IPv6 address',
detail_mail_ipv6_mx_reach_verdict_bad: 'At least one of your receiving mail servers with an IPv6 address is not reachable over IPv6.',
detail_mail_ipv6_mx_reach_verdict_good: 'All your receiving mail servers with an IPv6 address are reachable over IPv6.',
- detail_mail_rpki_exists_exp: 'We check if an RPKI Route Origin Authorization (ROA) has been published for all IP addresses of your mail server(s) (MX).
Your hoster (or its network provider) announces through the Border Gateway Protocol (BGP) for which of its IP address blocks it accepts incoming Internet traffic. Other network providers use these route announcements to determine via which route to send traffic for your server\'s IP addresses.
However, a route announcement can be faked. In fact, another network provider may be able to connect the IP address block of your IP address to its network and thus potentially receive Internet traffic that is actually intended for your network provider. The cause may be accidental or malicious. In either case, this can result in your server becoming unreachable or in Internet traffic to your server being intercepted.
Resource Public Key Infrastructure (RPKI) significantly improves protection against this. With RPKI, the rightful holder of a block of IP addresses can publish a digitally signed statement with route authorization (Route Origin Authorisation; ROA for short). Another network provider that wants to send Internet traffic to a particular IP address, can use the corresponding statement to filter out Invalid
routes. In this way, the network provider prevents Internet traffic from its network from being sent to unauthorized provider networks.
Requirement level: Recommended', + detail_mail_rpki_exists_exp: 'We check if an RPKI Route Origin Authorization (ROA) has been published for all IP addresses of your mail server(s) (MX).
Your hoster (or its network provider) announces through the Border Gateway Protocol (BGP) for which of its IP address blocks it accepts incoming Internet traffic. Other network providers use these route announcements to determine via which route to send traffic for your server\'s IP addresses.
However, a route announcement can be faked. In fact, another network provider may be able to connect the IP address block of your IP address to its network and thus potentially receive Internet traffic that is actually intended for your network provider. The cause may be accidental or malicious. In either case, this can result in your server becoming unreachable or in Internet traffic to your server being intercepted.
Resource Public Key Infrastructure (RPKI) significantly improves protection against this. With RPKI, the rightful holder of a block of IP addresses can publish a digitally signed statement with route authorization (Route Origin Authorisation; ROA for short). Another network provider that wants to send Internet traffic to a particular IP address, can use the corresponding statement to filter out Invalid
routes. In this way, the network provider prevents Internet traffic from its network from being sent to unauthorized provider networks.',
detail_mail_rpki_exists_label: 'Route Origin Authorisation existence',
detail_mail_rpki_exists_tech_table: 'Mail server|IP address|RPKI Route Origin Authorization',
detail_mail_rpki_exists_verdict_bad: 'For at least one of the IP addresses of your receiving mail server(s) no RPKI Route Origin Authorisation (ROA) is published.',
detail_mail_rpki_exists_verdict_good: 'For all IP addresses of your receiving mail server(s) an RPKI Route Origin Authorisation (ROA) is published.',
detail_mail_rpki_exists_verdict_no_addresses: 'Your domain does not contain any receiving mail servers. Therefore, this subtest could not be performed.',
- detail_mail_rpki_mx_ns_exists_exp: 'We check if an RPKI Route Origin Authorization (ROA) has been published for all IP addresses of the name servers of your mail server(s) (MX).
Your hoster (or its network provider) announces through the Border Gateway Protocol (BGP) for which of its IP address blocks it accepts incoming Internet traffic. Other network providers use these route announcements to determine via which route to send traffic for your server\'s IP addresses.
However, a route announcement can be faked. In fact, another network provider may be able to connect the IP address block of your IP address to its network and thus potentially receive Internet traffic that is actually intended for your network provider. The cause may be accidental or malicious. In either case, this can result in your server becoming unreachable or in Internet traffic to your server being intercepted.
Resource Public Key Infrastructure (RPKI) significantly improves protection against this. With RPKI, the rightful holder of a block of IP addresses can publish a digitally signed statement with route authorization (Route Origin Authorisation; ROA for short). Another network provider that wants to send Internet traffic to a particular IP address, can use the corresponding statement to filter out Invalid
routes. In this way, the network provider prevents Internet traffic from its network from being sent to unauthorized provider networks.
Requirement level: Recommended', + detail_mail_rpki_mx_ns_exists_exp: 'We check if an RPKI Route Origin Authorization (ROA) has been published for all IP addresses of the name servers of your mail server(s) (MX).
Your hoster (or its network provider) announces through the Border Gateway Protocol (BGP) for which of its IP address blocks it accepts incoming Internet traffic. Other network providers use these route announcements to determine via which route to send traffic for your server\'s IP addresses.
However, a route announcement can be faked. In fact, another network provider may be able to connect the IP address block of your IP address to its network and thus potentially receive Internet traffic that is actually intended for your network provider. The cause may be accidental or malicious. In either case, this can result in your server becoming unreachable or in Internet traffic to your server being intercepted.
Resource Public Key Infrastructure (RPKI) significantly improves protection against this. With RPKI, the rightful holder of a block of IP addresses can publish a digitally signed statement with route authorization (Route Origin Authorisation; ROA for short). Another network provider that wants to send Internet traffic to a particular IP address, can use the corresponding statement to filter out Invalid
routes. In this way, the network provider prevents Internet traffic from its network from being sent to unauthorized provider networks.',
detail_mail_rpki_mx_ns_exists_label: 'Route Origin Authorisation existence',
detail_mail_rpki_mx_ns_exists_tech_table: 'Name server of MX|IP address|RPKI Route Origin Authorization',
detail_mail_rpki_mx_ns_exists_verdict_bad: 'For at least one of the IP addresses of the name servers of your mail server(s) no RPKI Route Origin Authorisation (ROA) is published.',
detail_mail_rpki_mx_ns_exists_verdict_good: 'For all IP addresses of the name servers of your mail server(s) an RPKI Route Origin Authorisation (ROA) is published.',
detail_mail_rpki_mx_ns_exists_verdict_no_addresses: 'Your domain does not contain any mail servers. Therefore, this subtest could not be performed.',
- detail_mail_rpki_mx_ns_valid_exp: 'We check if the validation status for all IP addresses of the name servers of your mail servers (MX) is Valid
. If there are multiple overlapping route announcements for the IP address, we test that they are all Valid
.
Your hoster (or its network provider) announces via the Border Gateway Protocol (BGP) for which of its IP address blocks it accepts incoming Internet traffic. It does this by associating (parts of) its IP address blocks (Route Prefix) with the unique number of its provider network (Route Origin ASN), and then distributing this routing information. Other network providers use these route announcements to determine via which route to send traffic for the IP addresses.
Additionally, for each route announcement, your hoster (or its network provider) should publish a digitally signed statement with route authorisation (Route Origin Authorisation; abbreviated: ROA) statement using Resource Public Key Infrastructure (RPKI).
Another network provider that is asked to send Internet traffic to your server\'s IP address can cryptographically verify the associated statement. The verified content (Validated ROA Payload; abbreviated: VRP) includes which provider networks (VRP ASN) are authorised to receive Internet traffic for each recorded IP address block (VRP Prefix).
The network provider can then use this content to filter BGP routes. For example, he can reject any Invalid
routes, to prevent Internet traffic from its network is sent to unauthorised provider networks.
Checking route announcements against route authorisations (RPKI Origin Validation; abbreviated: ROV) has the following three possible outcomes.
Valid
: The route announcement of the considered IP address is matched by at least one published route authorisation. A route authorisation is also matched for more specific route announcements (i.e., for a part of the IP address block contained in the route authorisation), unless they are more specific than the limit specified in the route authorisation (via the maxLength
attribute).
Invalid
: The route announcement of the considered IP address is covered by a route authorisation, but it does not match. There are two possible causes:
the IP address block (Route Prefix) is announced from a provider network (Route Origin ASN) that is not authorised in the route authorisation (result in the table below: "invalid (as)");
the IP address block (Route Prefix) that is announced is smaller than is allowed in the route authorisation, i.e. exceeding maxLength
value (result in table below: "invalid (length)").
NotFound
: No statement with route-authorisation has been found that covers the route announcement of the considered IP address. This makes the routing of Internet traffic to your server less secure. Please contact your hoster about this. He can ask his network provider that owns your server\'s IP addresses to publish route authorisations.
What to do if the test result shows the status Invalid?
The status Invalid
indicates an unintentional or malicious route configuration error, that can be caused by your hoster or its network provider (internal error) or by a third party (external error). In either case, it can lead to the unreachability of your server or the interception of Internet traffic to your server. Contact your hoster as soon as possible. In the case of an internal error, your hoster should ask his network provider that owns your server\'s IP addresses to fix the route configuration error.
Requirement level: Recommended',
+ detail_mail_rpki_mx_ns_valid_exp: 'We check if the validation status for all IP addresses of the name servers of your mail servers (MX) is Valid
. If there are multiple overlapping route announcements for the IP address, we test that they are all Valid
.
Your hoster (or its network provider) announces via the Border Gateway Protocol (BGP) for which of its IP address blocks it accepts incoming Internet traffic. It does this by associating (parts of) its IP address blocks (Route Prefix) with the unique number of its provider network (Route Origin ASN), and then distributing this routing information. Other network providers use these route announcements to determine via which route to send traffic for the IP addresses.
Additionally, for each route announcement, your hoster (or its network provider) should publish a digitally signed statement with route authorisation (Route Origin Authorisation; abbreviated: ROA) statement using Resource Public Key Infrastructure (RPKI).
Another network provider that is asked to send Internet traffic to your server\'s IP address can cryptographically verify the associated statement. The verified content (Validated ROA Payload; abbreviated: VRP) includes which provider networks (VRP ASN) are authorised to receive Internet traffic for each recorded IP address block (VRP Prefix).
The network provider can then use this content to filter BGP routes. For example, he can reject any Invalid
routes, to prevent Internet traffic from its network is sent to unauthorised provider networks.
Checking route announcements against route authorisations (RPKI Origin Validation; abbreviated: ROV) has the following three possible outcomes.
1․ Valid
: The route announcement of the considered IP address is matched by at least one published route authorisation. A route authorisation is also matched for more specific route announcements (i.e., for a part of the IP address block contained in the route authorisation), unless they are more specific than the limit specified in the route authorisation (via the maxLength
attribute).
2․ Invalid
: The route announcement of the considered IP address is covered by a route authorisation, but it does not match. There are two possible causes:
maxLength
value (result in table below: "invalid (length)").3․ NotFound
: No statement with route-authorisation has been found that covers the route announcement of the considered IP address. This makes the routing of Internet traffic to your server less secure. Please contact your hoster about this. He can ask his network provider that owns your server\'s IP addresses to publish route authorisations.
What to do if the test result shows the status Invalid?
The status Invalid
indicates an unintentional or malicious route configuration error, that can be caused by your hoster or its network provider (internal error) or by a third party (external error). In either case, it increases the risk for unreachability of your server or for interception of Internet traffic to your server. Contact your hoster as soon as possible. In the case of an internal error, your hoster should ask its network provider that owns your server\'s IP addresses to fix the route configuration error. ',
detail_mail_rpki_mx_ns_valid_label: 'Route announcement validity',
detail_mail_rpki_mx_ns_valid_tech_table: 'Name server of MX|BGP Route Prefix|BGP Route Origin ASN|RPKI Origin Validation state',
detail_mail_rpki_mx_ns_valid_verdict_bad: 'At least one IP address of the name servers of your receiving mail servers has a NotFound
validation state. There is no RPKI Route Origin Authorization (ROA) published for the route announcement of each of the affected IP addresses.',
detail_mail_rpki_mx_ns_valid_verdict_good: 'All IP addresses of the name servers of your receiving mail servers have a Valid
validation state. The route announcement of these IP addresses is matched by the published RPKI Route Origin Authorisation (ROA).',
- detail_mail_rpki_mx_ns_valid_verdict_invalid: 'At least one IP address of the name servers of your receiving mail servers has an Invalid
validation state. The route announcement of the affected IP adresses is not matched by the published RPKI Route Origin Authorisation (ROA). This indicates an unintentional or malicious route configuration error, that can be caused by your mail hoster (internal error) or by a third party (external error). In either case, it can lead to the unreachability of your server or the interception of Internet traffic to your server. Contact your mail hoster as soon as possible. In the case of an internal error, your mail hoster should ask its network provider that owns your server\'s IP addresses to fix the route configuration error.',
+ detail_mail_rpki_mx_ns_valid_verdict_invalid: 'At least one IP address of the name servers of your receiving mail servers has an Invalid
validation state. The route announcement of the affected IP addresses is not matched by the published RPKI Route Origin Authorisation (ROA). This indicates an unintentional or malicious route configuration error, that can be caused by your mail hoster (internal error) or by a third party (external error). In either case, it increases the risk for unreachability of your server or for interception of Internet traffic to your server. Contact your mail hoster as soon as possible. In the case of an internal error, your mail hoster should ask its network provider that owns your server\'s IP addresses to fix the route configuration error.',
detail_mail_rpki_mx_ns_valid_verdict_not_routed: 'This subtest did not run, because no route announcement was available for any of the IP addresses.',
- detail_mail_rpki_valid_exp: 'We check if the validation status for all IP addresses of your mail servers (MX) is Valid
. If there are multiple overlapping route announcements for the IP address, we test that they are all Valid
.
Your hoster (or its network provider) announces via the Border Gateway Protocol (BGP) for which of its IP address blocks it accepts incoming Internet traffic. It does this by associating (parts of) its IP address blocks (Route Prefix) with the unique number of its provider network (Route Origin ASN), and then distributing this routing information. Other network providers use these route announcements to determine via which route to send traffic for the IP addresses.
Additionally, for each route announcement, your hoster (or its network provider) should publish a digitally signed statement with route authorisation (Route Origin Authorisation; abbreviated: ROA) statement using Resource Public Key Infrastructure (RPKI).
Another network provider that is asked to send Internet traffic to your server\'s IP address can cryptographically verify the associated statement. The verified content (Validated ROA Payload; abbreviated: VRP) includes which provider networks (VRP ASN) are authorised to receive Internet traffic for each recorded IP address block (VRP Prefix).
The network provider can then use this content to filter BGP routes. For example, he can reject any Invalid
routes, to prevent Internet traffic from its network is sent to unauthorised provider networks.
Checking route announcements against route authorisations (RPKI Origin Validation; abbreviated: ROV) has the following three possible outcomes.
Valid
: The route announcement of the considered IP address is matched by at least one published route authorisation. A route authorisation is also matched for more specific route announcements (i.e., for a part of the IP address block contained in the route authorisation), unless they are more specific than the limit specified in the route authorisation (via the maxLength
attribute).
Invalid
: The route announcement of the considered IP address is covered by a route authorisation, but it does not match. There are two possible causes:
the IP address block (Route Prefix) is announced from a provider network (Route Origin ASN) that is not authorised in the route authorisation (result in the table below: "invalid (as)");
the IP address block (Route Prefix) that is announced is smaller than is allowed in the route authorisation, i.e. exceeding maxLength
value (result in table below: "invalid (length)").
NotFound
: No statement with route-authorisation has been found that covers the route announcement of the considered IP address. This makes the routing of Internet traffic to your server less secure. Please contact your hoster about this. He can ask his network provider that owns your server\'s IP addresses to publish route authorisations.
What to do if the test result shows the status Invalid?
The status Invalid
indicates an unintentional or malicious route configuration error, that can be caused by your hoster or its network provider (internal error) or by a third party (external error). In either case, it can lead to the unreachability of your server or the interception of Internet traffic to your server. Contact your hoster as soon as possible. In the case of an internal error, your hoster should ask his network provider that owns your server\'s IP addresses to fix the route configuration error.
Requirement level: Recommended',
+ detail_mail_rpki_valid_exp: 'We check if the validation status for all IP addresses of your mail servers (MX) is Valid
. If there are multiple overlapping route announcements for the IP address, we test that they are all Valid
.
Your hoster (or its network provider) announces via the Border Gateway Protocol (BGP) for which of its IP address blocks it accepts incoming Internet traffic. It does this by associating (parts of) its IP address blocks (Route Prefix) with the unique number of its provider network (Route Origin ASN), and then distributing this routing information. Other network providers use these route announcements to determine via which route to send traffic for the IP addresses.
Additionally, for each route announcement, your hoster (or its network provider) should publish a digitally signed statement with route authorisation (Route Origin Authorisation; abbreviated: ROA) statement using Resource Public Key Infrastructure (RPKI).
Another network provider that is asked to send Internet traffic to your server\'s IP address can cryptographically verify the associated statement. The verified content (Validated ROA Payload; abbreviated: VRP) includes which provider networks (VRP ASN) are authorised to receive Internet traffic for each recorded IP address block (VRP Prefix).
The network provider can then use this content to filter BGP routes. For example, he can reject any Invalid
routes, to prevent Internet traffic from its network is sent to unauthorised provider networks.
Checking route announcements against route authorisations (RPKI Origin Validation; abbreviated: ROV) has the following three possible outcomes.
1․ Valid
: The route announcement of the considered IP address is matched by at least one published route authorisation. A route authorisation is also matched for more specific route announcements (i.e., for a part of the IP address block contained in the route authorisation), unless they are more specific than the limit specified in the route authorisation (via the maxLength
attribute).
2․ Invalid
: The route announcement of the considered IP address is covered by a route authorisation, but it does not match. There are two possible causes:
maxLength
value (result in table below: "invalid (length)").3․ NotFound
: No statement with route-authorisation has been found that covers the route announcement of the considered IP address. This makes the routing of Internet traffic to your server less secure. Please contact your hoster about this. He can ask his network provider that owns your server\'s IP addresses to publish route authorisations.
What to do if the test result shows the status Invalid?
The status Invalid
indicates an unintentional or malicious route configuration error, that can be caused by your hoster or its network provider (internal error) or by a third party (external error). In either case, it increases the risk for unreachability of your server or for interception of Internet traffic to your server. Contact your hoster as soon as possible. In the case of an internal error, your hoster should ask its network provider that owns your server\'s IP addresses to fix the route configuration error.',
detail_mail_rpki_valid_label: 'Route announcement validity',
detail_mail_rpki_valid_tech_table: 'Mail server|BGP Route Prefix|BGP Route Origin ASN|RPKI Origin Validation state',
detail_mail_rpki_valid_verdict_bad: 'At least one IP address of your receiving mail servers has a NotFound
validation state. There is no RPKI Route Origin Authorization (ROA) published for the route announcement of each of the affected IP addresses.',
detail_mail_rpki_valid_verdict_good: 'All IP addresses of your receiving mail servers have a Valid
validation state. The route announcement of these IP addresses is matched by the published RPKI Route Origin Authorisation (ROA).',
- detail_mail_rpki_valid_verdict_invalid: 'At least one IP address of your receiving mail servers has an Invalid
validation state. The route announcement of the affected IP adresses is not matched by the published RPKI Route Origin Authorisation (ROA). This indicates an unintentional or malicious route configuration error, that can be caused by your mail hoster (internal error) or by a third party (external error). In either case, it can lead to the unreachability of your server or the interception of Internet traffic to your server. Contact your mail hoster as soon as possible. In the case of an internal error, your mail hoster should ask its network provider that owns your server\'s IP addresses to fix the route configuration error.',
+ detail_mail_rpki_valid_verdict_invalid: 'At least one IP address of your receiving mail servers has an Invalid
validation state. The route announcement of the affected IP addresses is not matched by the published RPKI Route Origin Authorisation (ROA). This indicates an unintentional or malicious route configuration error, that can be caused by your mail hoster (internal error) or by a third party (external error). In either case, it increases the risk for unreachability of your server or for interception of Internet traffic to your server. Contact your mail hoster as soon as possible. In the case of an internal error, your mail hoster should ask its network provider that owns your server\'s IP addresses to fix the route configuration error.',
detail_mail_rpki_valid_verdict_not_routed: 'This subtest did not run, because no route announcement was available for any of the IP addresses.',
detail_mail_tls_cert_hostmatch_exp: 'We check if the domain name of each of your receiving mail servers (MX) matches the domain name on the presented certificates.
Sending mail servers usually ignore the domain in the certificate. Without DNSSEC the lookup of the mail server domain is vulnerable to manipulation. Thus matching the domain on the certificate against the mail server domain does not add any authenticity value. Quite a few receiving mail servers are therefore using self-signed certificates, often issued by an internal (private) certificate authority.
For authenticity a mail server should use DNSSEC and DANE. A certificate with a domain that matches the domain of the mail server is only required when DANE \'trust anchor assertion\' (DANE-TA, 2) is used.
See \'IT Security Guidelines for Transport Layer Security (TLS) v2.1\' from NCSC-NL, guideline B3-1 (in English).
Requirement level: Optional / Required (only when DANE-TA is used)', detail_mail_tls_cert_hostmatch_label: 'Domain name on certificate', @@ -1038,7 +1047,7 @@ const internet_nl_messages = { detail_mail_tls_cipher_order_exp: 'We check if your receiving mail servers (MX) enforce their own cipher preference (\'I\'), and offer ciphers in accordance with the prescribed ordering (\'II\').
When your mail servers support \'Good\' ciphers only, this test is not applicable as the ordering has no significant security advantage.
I. Server enforced cipher preference: The receiving mail servers enforce their own cipher preference while negotiating with sending mail servers, and do not accept any preference of the the sending mail servers;
II. Prescribed ordering: Ciphers are offered by the receiving mail servers in accordance with the prescribed order where \'Good\' is preferred over \'Sufficient\' over \'Phase out\' ciphers.
In the above table with technical details only the first found out of prescribed order algorithm selections are listed.
See \'IT Security Guidelines for Transport Layer Security (TLS) v2.1\' from NCSC-NL, guideline B2-5.', detail_mail_tls_cipher_order_label: 'Cipher order', detail_mail_tls_cipher_order_tech_table: 'Mail server (MX)|First found affected cipher pair|Violated rule # (\'II-B\')', - detail_mail_tls_cipher_order_verdict_bad: 'At least one of your mailservers does not enforce its own cipher preference (\'I\').', + detail_mail_tls_cipher_order_verdict_bad: 'At least one of your mail servers does not enforce its own cipher preference (\'I\').', detail_mail_tls_cipher_order_verdict_good: 'All your mail servers enforce their own cipher preference (\'I\'), and offer ciphers in accordance with the prescribed ordering (\'II\').', detail_mail_tls_cipher_order_verdict_na: 'This subtest is not applicable as your mail server supports \'Good\' ciphers only.', detail_mail_tls_cipher_order_verdict_seclevel_bad: 'At least one of your mail servers does not prefer \'Good\' over \'Sufficient\' over \'Phase out\' ciphers (\'II\').', @@ -1060,7 +1069,7 @@ const internet_nl_messages = { detail_mail_tls_dane_exists_verdict_bad: 'At least one of your mail server domains does not provide a TLSA record for DANE.', detail_mail_tls_dane_exists_verdict_bogus: 'At least one of your mail server domains does not provide DNSSEC proof that DANE TLSA records do not exist. This could lead to non-deliverability of mail sent to you by DANE validating mail senders. You should ask your name server operator to fix this issue.', detail_mail_tls_dane_exists_verdict_good: 'All your mail server domains provide a TLSA record for DANE.', - detail_mail_tls_dane_rollover_exp: 'We check if there is an active scheme with at least two DANE TLSA records to reliably handle certificate rollovers on your receiving mail servers (MX).
Such a scheme will be proven useful when there is a need to update your mail server certificate(s). It can prevent that DANE becomes invalid during the transition period which could endanger mail deliverability at your domain. A rollover scheme could but does not need to be \'active\' all the time.
We recommend you to apply one of the following two schemes with double DANE TLSA records:
The test also accepts other combinations of DANE TLSA records i.e. "3 x x" + "3 x x" or "3 x x" + "2 x x". However other types than the above will generally be more error prone and less interoperable.
Requirement level: Optional', + detail_mail_tls_dane_rollover_exp: 'We check if there is an active scheme with at least two DANE TLSA records to reliably handle certificate rollovers on your receiving mail servers (MX).
Such a scheme will be proven useful when there is a need to update your mail server certificate(s). It can prevent that DANE becomes invalid during the transition period which could endanger mail deliverability at your domain. A rollover scheme could but does not need to be \'active\' all the time.
We recommend you to apply one of the following two schemes with double DANE TLSA records:
The test also accepts other combinations of DANE TLSA records i.e. "3 x x" + "3 x x" or "3 x x" + "2 x x". However other types than the above will generally be more error prone and less interoperable.
Note that if a mail server simultaneously offers two certificates (one based on RSA and one based on ECDSA), a separate DANE TLSA rollover scheme is recommended for each certificate. The subtest does not check for this scenario. If only one DANE TLSA record is configured for each certificate, this subtest gives a false-positive result.
Requirement level: Optional', detail_mail_tls_dane_rollover_label: 'DANE rollover scheme', detail_mail_tls_dane_rollover_tech_table: 'Mail server (MX)|DANE rollover scheme', detail_mail_tls_dane_rollover_verdict_bad: 'At least one of your mail server domains does not have an active DANE scheme for a reliable rollover of certificate keys.', @@ -1068,9 +1077,9 @@ const internet_nl_messages = { detail_mail_tls_dane_valid_exp: 'We check if the DANE fingerprints presented by your mail server domains are valid for your mail server certificates.
DANE allows you to publish information about your mail server certificates in a special DNS record, called TLSA record. Sending mail servers can check the authenticity of your certificates not only through the certificate authority but also through the TLSA records. A sending mail server can also use the TLSA record as a signal to only connect via STARTTLS (and not unencrypted). When the DANE fingerprint of a receiving mail server is checked by the sending mail server, an active attacker who is able to manipulate the mail traffic cannot strip STARTTLS encryption. ', detail_mail_tls_dane_valid_label: 'DANE validity', detail_mail_tls_dane_valid_tech_table: 'Mail server (MX)|DANE TLSA record valid', - detail_mail_tls_dane_valid_verdict_bad: 'At least one of your mailservers does not have any valid DANE fingerprints. Either someone manipulated the response of your mail server, or your mail server has a serious DANE configuration error. The latter makes your domain unreachable for any sending mail server that checks DANE fingerprints. You should contact your mail provider as soon as possible.', - detail_mail_tls_dane_valid_verdict_good: 'Each of your mailservers has at least one valid DANE fingerprint. This allows sending mail servers that support DANE verification to set up an authenticated encrypted transport connection with your receiving mail servers.', - detail_mail_tls_fs_params_exp: 'We check if the public parameters used in Diffie-Hellman key exchange by your receiving mail servers (MX) are secure.
ECDHE: The security of elliptic curve Diffie-Hellman (ECDHE) ephemeral key exchange depends on the used elliptic curve. We check if the bit-length of the used elliptic curves is a least 224 bits. Currently we are not able to check the elliptic curve name.
DHE: The security of Diffie-Hellman Ephemeral (DHE) key exchange depends on the lengths of the public and secret keys used within the chosen finite field group. We test if your DHE public key material uses one of the predefined finite field groups that are specified in RFC 7919. Self-generated groups are \'Insufficient\'.
The larger key sizes required for the use of DHE come with a performance penalty. Carefully evaluate and use ECDHE instead of DHE if you can.
RSA as an alternative: Besides ECDHE and DHE, RSA can be used for key exchange. However, it is at risk of becoming insufficiently secure (current status \'phase out\'). The RSA public parameters are tested in the subtest \'Public key of certificate\'. Note that RSA is considered as \'good\' for certificate verification.
See \'IT Security Guidelines for Transport Layer Security (TLS) v2.1\' from NCSC-NL, guideline B5-1 and table 9 for ECDHE, and guideline B6-1 and table 10 for DHE (in English).
Elliptic curve for ECDHE
secp384r1
, secp256r1
, x448
, and x25519
secp224r1
Finite field group for DHE
Sufficient:
64852d6890ff9e62eecd1ee89c72af9af244dfef5b853bcedea3dfd7aade22b3
c410cc9c4fd85d2c109f7ebe5930ca5304a52927c0ebcb1a11c5cf6b2386bbab
Phase out:
9ba6429597aeed2d8617a7705b56e96d044f64b07971659382e426675105654b
Insufficient: Other groups
Note: the above names are based on the IANA naming conventions. Sometimes alternative names are used to refer to the same curves, like prime256v1
(ANSI) and NIST P-256
for secp256r1
.',
+ detail_mail_tls_dane_valid_verdict_bad: 'At least one of your mail servers does not have any valid DANE fingerprints. Either someone manipulated the response of your mail server, or your mail server has a serious DANE configuration error. The latter makes your domain unreachable for any sending mail server that checks DANE fingerprints. You should contact your mail provider as soon as possible.',
+ detail_mail_tls_dane_valid_verdict_good: 'Each of your mail servers has at least one valid DANE fingerprint. This allows sending mail servers that support DANE verification to set up an authenticated encrypted transport connection with your receiving mail servers.',
+ detail_mail_tls_fs_params_exp: 'We check if the public parameters used in Diffie-Hellman key exchange by your receiving mail servers (MX) are secure.
ECDHE: The security of elliptic curve Diffie-Hellman (ECDHE) ephemeral key exchange depends on the used elliptic curve. We check if the bit-length of the used elliptic curves is a least 224 bits. Currently we are not able to check the elliptic curve name.
DHE: The security of Diffie-Hellman Ephemeral (DHE) key exchange depends on the lengths of the public and secret keys used within the chosen finite field group. We test if your DHE public key material uses one of the predefined finite field groups that are specified in RFC 7919. Self-generated groups are \'Insufficient\'.
The larger key sizes required for the use of DHE come with a performance penalty. Carefully evaluate and use ECDHE instead of DHE if you can.
RSA as an alternative: Besides ECDHE and DHE, RSA can be used for key exchange. However, it is at risk of becoming insufficiently secure (current status \'phase out\'). The RSA public parameters are tested in the subtest \'Public key of certificate\'. Note that RSA is considered as \'good\' for certificate verification.
See \'IT Security Guidelines for Transport Layer Security (TLS) v2.1\' from NCSC-NL, guideline B5-1 and table 9 for ECDHE, and guideline B6-1 and table 10 for DHE (in English).
Elliptic curve for ECDHE
secp384r1
, secp256r1
, x448
, and x25519
secp224r1
Finite field group for DHE
Sufficient:
64852d6890ff9e62eecd1ee89c72af9af244dfef5b853bcedea3dfd7aade22b3
c410cc9c4fd85d2c109f7ebe5930ca5304a52927c0ebcb1a11c5cf6b2386bbab
Phase out:
Insufficient: Other groups
Note: the above names are based on the IANA naming conventions. Sometimes alternative names are used to refer to the same curves, like prime256v1
(ANSI) and NIST P-256
for secp256r1
.',
detail_mail_tls_fs_params_label: 'Key exchange parameters',
detail_mail_tls_fs_params_tech_table: 'Mail server (MX)|Affected parameters|Security level',
detail_mail_tls_fs_params_verdict_bad: 'At least one of your mail servers supports insufficiently secure parameters for Diffie-Hellman key exchange.',
@@ -1081,7 +1090,7 @@ const internet_nl_messages = {
detail_mail_tls_kex_hash_func_label: 'Hash function for key exchange',
detail_mail_tls_kex_hash_func_tech_table: 'Mail server (MX)|SHA2 support for signatures',
detail_mail_tls_kex_hash_func_verdict_good: 'All your mail servers support secure hash functions for key exchange.',
- detail_mail_tls_kex_hash_func_verdict_other: 'We were unable to determine the hash function used by at least one of your mail servers. This could be because the cipher combination used has no signature for certificate verification (e.g it uses RSA key exchange or is anonymous i.e. anon
).',
+ detail_mail_tls_kex_hash_func_verdict_other: 'We were unable to determine the hash function used by at least one of your mail servers. This could be because the cipher combination used has no signature for certificate verification (e.g. it uses RSA key exchange or is anonymous i.e. anon
).',
detail_mail_tls_kex_hash_func_verdict_phase_out: 'At least one of your mail servers does not support a secure hash function for key exchange. You should phase out this setting deliberately, because it is at risk of becoming insufficiently secure in the future.',
detail_mail_tls_ocsp_stapling_exp: 'OUTDATED TEXT; TEST NOT USED
We check if your receiving mail server supports the TLS Certificate Status extension aka OCSP stapling. With OCSP stapling your mail server can provide OCSP responses itself which removes the need for the TLS client to verify the validity of the mail server certificate directly with the certificate supplier, and thus avoids exposing potentially privacy sensitive data about the client to the certificate supplier. It also does not require connectivity between client and certificate supplier and is faster. See \'IT Security Guidelines for Transport Layer Security (TLS)\', guideline B9-1 (in English).
When connecting to your mail server we use the TLS Certificate Status extension to request OCSP data be included in the server response. If your mail server includes OCSP data in the response we then verify that the OCSP data is signed by a known certificate authority.',
detail_mail_tls_ocsp_stapling_label: 'OUTDATED TEXT; TEST NOT USED
OCSP stapling',
@@ -1105,12 +1114,12 @@ const internet_nl_messages = {
detail_mail_tls_starttls_exists_verdict_bad: 'At least one of your mail servers does not offer STARTTLS.',
detail_mail_tls_starttls_exists_verdict_good: 'All your mail servers offer STARTTLS.',
detail_mail_tls_starttls_exists_verdict_invalid_null_mx: 'Your domain advertises a "Null MX" record indicating that it does not accept email. However, either your domain does not have A/AAAA records, making the "Null MX" record unnecessary. Or on your domain a receiving mail server is set by another MX record, making the "Null MX" conflicting.',
- detail_mail_tls_starttls_exists_verdict_no_null_mx: 'No receiving mail servers (MX) are set on your domain that has A/AAAA records. We recommend you to explicitly indicate that your domain does not accept email by configuring a "Null MX" record. Do not use a "Null MX" record and set an MX if you do want to send email from this domain name, as receiving servers may reject email that has an invalid return address.',
+ detail_mail_tls_starttls_exists_verdict_no_null_mx: 'No receiving mail servers (MX) are set on your domain that has A/AAAA records and has an SPF record with only the term -all. We recommend you to set a "Null MX" record to explicitly indicate that your domain does not accept email. Because of your configuration, the subtests in the STARTTLS and DANE category and the mail server specific subtests in the IPv6 and DNSSEC categories are not applicable.',
detail_mail_tls_starttls_exists_verdict_null_mx: 'Your domain name that has A/AAAA records clearly indicates with a "Null MX" record that it does not accept e-mail. This is fine if you do not want to receive email. Do not use a "Null MX" record and set an MX if you do want to send email from this domain name, as receiving servers may reject email that has an invalid return address.',
detail_mail_tls_starttls_exists_verdict_null_mx_with_other_mx: 'Your domain advertises a "Null MX" record indicating that it does not accept email. However, on your domain a receiving mail server is set by another MX record, making the "Null MX" conflicting.',
detail_mail_tls_starttls_exists_verdict_null_mx_without_a_aaaa: 'Your domain advertises a "Null MX" record indicating that it does not accept email. However, your domain does not have A/AAAA records, making the "Null MX" record unnecessary.',
detail_mail_tls_starttls_exists_verdict_other: 'At least one of your mail servers is unreachable.',
- detail_mail_tls_starttls_exists_verdict_other_2: 'No receiving mail servers (MX) are set on your domain that does not have A/AAAA records. This is fine if you do not want to receive email. ',
+ detail_mail_tls_starttls_exists_verdict_other_2: 'The SPF record on your domain indicates that your domain may be used for sending mail. However, your domain does not have a receiving mail server (MX), which could hinder deliverability of your sent mails because not having an MX may be seen by receivers as an indicator for spam. Therefore if you really want to send mail from this domain, configure an MX. However, if you do not want to send mail from this domain, configure an SPF record with the -all
term only and besides a "Null MX" record if your domain has A/AAAA records. Because of your configuration, the subtests in the STARTTLS and DANE category and the mail server specific subtests in the IPv6 and DNSSEC categories are not applicable.',
detail_mail_tls_version_exp: '
We check if your mail servers (MX) support secure TLS versions only.
A mail server may support more than one TLS version.
Note that quite some mail servers only support older TLS versions. If the sending and receiving mail server both do not support the same TLS version, they will usually fall back to unencrypted mail transport. Because of that it could be advisable to keep supporting TLS versions with a \'phase out\' status for a while. Make an informed decision based on log data on when to disable these \'phase out\' TLS versions.
See \'IT Security Guidelines for Transport Layer Security (TLS) v2.1\' from NCSC-NL, guideline B1-1 and table 1 (in English).
Version
[Note: this content label is currently not used. See #1046.]', detail_tech_data_http_securitytxt_invalid_charset: 'Error: Charset parameter in Content-Type header must be \'utf-8\' if present.', detail_tech_data_http_securitytxt_invalid_expiry: 'Error: Date and time in \'Expires\' field must be formatted according to ISO 8601 (line {line_no}).', - detail_tech_data_http_securitytxt_invalid_lang: 'Error: Value in \'Preferred-Languages\' field must match one or more language tags as defined in RFC 5646, separated by commas (line {line_no}).', + detail_tech_data_http_securitytxt_invalid_lang: 'Error: Value in \'Preferred-Languages\' field must match one or more language tags as defined in RFC 5646, separated by commas (line {line_no}).', detail_tech_data_http_securitytxt_invalid_line: 'Error: Line must contain a field name and value, unless the line is blank or contains a comment (line {line_no}).', detail_tech_data_http_securitytxt_invalid_media: 'Error: Media type in Content-Type header must be \'text/plain\'.', + detail_tech_data_http_securitytxt_invalid_uri_scheme: 'Error: The security.txt file access must use the HTTPS scheme.
[Note: this content label is currently not used. See #1046.]',
detail_tech_data_http_securitytxt_location: 'Error: security.txt was located on the top-level path (legacy place), but must be placed under the \'/.well-known/\' path.',
detail_tech_data_http_securitytxt_long_expiry: 'Recommendation: Date and time in \'Expires\' field should be less than a year into the future (line {line_no}).',
detail_tech_data_http_securitytxt_multi_expire: 'Error: \'Expires\' field must not appear more than once.',
@@ -1184,7 +1196,7 @@ const internet_nl_messages = {
detail_tech_data_http_securitytxt_retrieved_from: 'security.txt retrieved from {hostname}.',
detail_tech_data_http_securitytxt_signed_format_issue: 'Error: Signed security.txt must start with the header \'-----BEGIN PGP SIGNED MESSAGE-----\'.',
detail_tech_data_http_securitytxt_unknown_field: 'Notification: security.txt contains an unknown field. Either this is a custom field which may not be widely supported, or there is a typo in a standardised field name (line {line_no}).',
- detail_tech_data_http_securitytxt_utf8: 'Error: Content must be utf-8 encoded.',
+ detail_tech_data_http_securitytxt_utf8: 'Error: Content must encoded using UTF-8 in Net-Unicode form.',
detail_tech_data_insecure: 'insecure',
detail_tech_data_insufficient: 'insufficient',
detail_tech_data_no: 'no',
@@ -1198,29 +1210,29 @@ const internet_nl_messages = {
detail_tech_data_yes: 'yes',
detail_verdict_could_not_test: 'Test error. Please try again later.',
detail_verdict_not_tested: 'This subtest did not run, because either a parent test that this subtest depends on gave a negative result, or not enough information was available to run this subtest.',
- detail_web_appsecpriv_http_csp_exp: 'We check if your web server provides an HTTP header for Content-Security-Policy
(CSP). Furthermore we check for several secure CSP settings, although we do not exhaustively test the effectiveness of your CSP configuration.
CSP guards a website against content injection attacks including cross-site scripting (XSS). By using CSP to configure an \'allowlist\' with sources of approved content, you prevent browsers from loading malicious content of attackers.
We test for the rules below that are based on good practices for a secure CSP configuration.
default-src
directive should be defined and its value should be be either \'none\'
, or \'self\'
and/or one or more URLs of the domain itself (including its subdomain or superdomain). This is to have a restrictive default fallback policy for source types that are used in your website for which no specific policy is defined. Next to the mentioned values \'report-sample\'
could be there in case you want code samples to be sent together with the \'violation reports\'.base-uri
directive should be defined and its value should be either \'none\'
, or \'self\'
and/or one or more URLs of the domain itself (including its subdomain or superdomain). This restricts the baseURI
in order to block the injection of a manipulated <base>
element. This limits the ability of attackers to manipulate the locations of sources (e.g. scripts) that are loaded from relative URLs.frame-src
directive should be used (either by definition or by relying on the fallback to sequentially child-src
and default-src
) and its value should be either \'none\'
, or \'self\'
and/or one or more specific URLs. This prevents content from unauthorized locations to be framed or embedded in your website (with HTML elements such as <frame>
and <iframe>
).frame-ancestors
directive should be defined and its value should be either \'none\'
, or \'self\'
and/or one or more specific URLs. This prevents unauthorized websites from framing or embedding your website (with HTML elements <frame>
, <iframe>
, <object>
, <embed>
, or <applet>
).form-action
directive should be defined and its value should be either \'none\'
, or \'self\'
and/or one or more specific URLs. This restricts the URLs which can be used as the target of form submissions.unsafe-eval
, unsafe-inline
and unsafe-hashes
should not be used, because these enable XSS attacks. data:
scheme should not be used in the default-src
, script-src
and object-src
directives, because this enables XSS attacks.http://
scheme or a domain without a scheme should not be used, because this enables sources to be downloaded over an insecure connection. Use the https://
scheme instead.*
) for the full host part of a URL should not be used in any directive, because this allows for any external source. Furthermore do not use just https:
as this is equivalent to https://*
. Always specify the main domain as well (e.g. https://scripts.example.nl
or https://*.example.nl
). 127.0.0.1
should not be used in any directive, because it enables content injection attacks in a compromised system.Additional recommendations:
Only use domains in CSP directives as specific as possible, which is tested automatically to some extent in this subtest for CSP.
*.nl
) or SLD (*.gov.uk
), although we currently do not test for this. default-src
(for example example2.gov.nl
for example1.gov.nl
), although we currently do not test for this either.Ideally do not use inline scripts or styles. For cases where you cannot avoid using inline scripts or styles, do not use unsafe-inline
(as mentioned above) but preferably use CSP hashes or otherwise CSP nonces.
<meta>
element to serve your CSP policy. The latter is less secure and does not support all CSP directives (e.g. the required frame-ancestors
). Therfore we do not check for CSP that is offered via the HTML <meta>
element.Content-Security-Policy-Report-Only
to experiment with your CSP configuration by monitoring its effect without enforcing it.none
. Besides, note that if other sources are listed in a source list next to none
, then the attribute none
is ignored. Also see \'Web application guidelines from NCSC-NL\', guideline U/PW.03 (in Dutch).
Requirement level: Recommended',
+ detail_web_appsecpriv_http_csp_exp: 'We check if your web server provides an HTTP header for Content-Security-Policy
(CSP). Furthermore we check for several secure CSP settings, although we do not exhaustively test the effectiveness of your CSP configuration.
CSP guards a website against content injection attacks including cross-site scripting (XSS). By using CSP to configure an \'allowlist\' with sources of approved content, you prevent browsers from loading malicious content of attackers.
We test for the rules below that are based on good practices for a secure CSP configuration.
default-src
directive should be defined and its value should be be either \'none\'
, or \'self\'
and/or one or more URLs of the domain itself (including its subdomain or superdomain). This is to have a restrictive default fallback policy for source types that are used in your website for which no specific policy is defined. Next to the mentioned values \'report-sample\'
could be there in case you want code samples to be sent together with the \'violation reports\'.base-uri
directive should be defined and its value should be either \'none\'
, or \'self\'
and/or one or more URLs of the domain itself (including its subdomain or superdomain). This restricts the baseURI
in order to block the injection of a manipulated <base>
element. This limits the ability of attackers to manipulate the locations of sources (e.g. scripts) that are loaded from relative URLs.frame-src
directive should be used (either by definition or by relying on the fallback to sequentially child-src
and default-src
) and its value should be either \'none\'
, or \'self\'
and/or one or more specific URLs. This prevents content from unauthorized locations to be framed or embedded in your website (with HTML elements such as <frame>
and <iframe>
).frame-ancestors
directive should be defined and its value should be either \'none\'
, or \'self\'
and/or one or more specific URLs. This prevents unauthorized websites from framing or embedding your website (with HTML elements <frame>
, <iframe>
, <object>
, <embed>
, or <applet>
).form-action
directive should be defined and its value should be either \'none\'
, or \'self\'
and/or one or more specific URLs. This restricts the URLs which can be used as the target of form submissions.unsafe-eval
, unsafe-inline
and unsafe-hashes
should not be used, because these enable XSS attacks. data:
scheme should not be used in the default-src
, script-src
and object-src
directives, because this enables XSS attacks.http://
scheme or a domain without a scheme should not be used, because this enables sources to be downloaded over an insecure connection. Use the https://
scheme instead.*
) for the full host part of a URL should not be used in any directive, because this allows for any external source. Furthermore do not use just https:
as this is equivalent to https://*
. Always specify the main domain as well (e.g. https://scripts.example.nl
or https://*.example.nl
). 127.0.0.1
should not be used in any directive, because it enables content injection attacks in a compromised system.Additional recommendations:
Only use domains in CSP directives as specific as possible, which is tested automatically to some extent in this subtest for CSP.
*.nl
) or SLD (*.gov.uk
), although we currently do not test for this. default-src
(for example example2.gov.nl
for example1.gov.nl
), although we currently do not test for this either.Ideally do not use inline scripts or styles. For cases where you cannot avoid using inline scripts or styles, do not use unsafe-inline
(as mentioned above) but preferably use CSP hashes or otherwise CSP nonces.
<meta>
element to serve your CSP policy. The latter is less secure and does not support all CSP directives (e.g. the required frame-ancestors
). Therefore we do not check for CSP that is offered via the HTML <meta>
element.Content-Security-Policy-Report-Only
to experiment with your CSP configuration by monitoring its effect without enforcing it.none
. Besides, note that if other sources are listed in a source list next to none
, then the attribute none
is ignored.Note on IPv6/IPv4: for performance reasons all tests in the category \'Security options\' only run for the first available IPv6 and IPv4 address.
Also see \'Web application guidelines from NCSC-NL\', guideline U/PW.03 (in Dutch).
Requirement level: Recommended',
detail_web_appsecpriv_http_csp_label: 'Content-Security-Policy',
detail_web_appsecpriv_http_csp_tech_table: 'Web server IP address|Findings',
detail_web_appsecpriv_http_csp_verdict_bad: 'Your web server does not offer Content-Security-Policy (CSP), or does offer CSP with certain insecure settings. ',
detail_web_appsecpriv_http_csp_verdict_good: 'Your web server offers Content-Security-Policy (CSP) and does not use certain insecure CSP settings.',
- detail_web_appsecpriv_http_referrer_policy_exp: 'We check if your web server provides an HTTP header for Referrer-Policy
with a sufficiently secure and privacy-protecting policy value. With this policy your webserver instructs browsers if, what and when referrer data should be sent to the website the user is navigating to from your website. This referrer data is sent in the Referer
header by the browser to the website the user is navigating to. This navigation does not necessarily have to be cross-domain.
The data in the Referer
header is usually used for analytics and logging. However there can be privacy and security risks. The data could be used e.g. for user tracking and the data could leak to third parties who eavesdrop the connection. The HTTP header for Referrer-Policy
allows you to mitigate these risks by controlling and even minimizing the sending of referrer data.
We suggest to make an informed decision, with privacy and security risks in mind, on using one of the policy values from the first two categories below.
1. Good
no-referrer
same-origin
With these policy values no sensitive referrer data is sent to third parties.
2. Warning
strict-origin
strict-origin-when-cross-origin
(browser\'s default value; see also under additional note 2)With these policy values basic referrer data, which may be sensitive, is sent to third parties only via secure connections (HTTPS). Therefore these values should only to be used where necessary and permitted by law.
3. Bad
no-referrer-when-downgrade
origin-when-cross-origin
origin
unsafe-url
With these policy values any or basic referrer data, which may be sensitive, is sent to third parties possibly via insecure connections (HTTP). Therefore these values must not be used.
Additional notes:
strict-origin-when-cross-origin
is the default policy value when no Referrer-Policy
is published as prescribed in the current "Editor\'s Draft" of the Referrer-Policy
standard and this default is used by all latest major browsers. Note that some users may still have a different default value configured in their browser.Referrer-Policy
header as a mechanism for serving your referrer policy. We do not recommend to use the HTML <meta>
element or the HTML referrerpolicy
content attribute to publish your referrer policy, especially because the sections that describe these methods in the standard are marked as "not normative". Therefore we do not check for a referrer policy that is offered via the latter two methods.Referrer-Policy
headers, and a Referrer-Policy
header may contain multiple values. Unknown values will be ignored by the browser and only the last known value will be used. This makes it possible to use future standardised policy values that are not supported by all browsers yet. However, currently all latest major browsers support the above mentioned policy values under "Good" and "Warning". Requirement level: Recommended',
+ detail_web_appsecpriv_http_referrer_policy_exp: 'We check if your web server provides an HTTP header for Referrer-Policy
with a sufficiently secure and privacy-protecting policy value. With this policy your web server instructs browsers if, what and when referrer data should be sent to the website the user is navigating to from your website. This referrer data is sent in the Referer
header by the browser to the website the user is navigating to. This navigation does not necessarily have to be cross-domain.
The data in the Referer
header is usually used for analytics and logging. However there can be privacy and security risks. The data could be used e.g. for user tracking and the data could leak to third parties who eavesdrop the connection. The HTTP header for Referrer-Policy
allows you to mitigate these risks by controlling and even minimizing the sending of referrer data.
We suggest to make an informed decision, with privacy and security risks in mind, on using one of the policy values from the first two categories below.
1. Good
no-referrer
same-origin
With these policy values no sensitive referrer data is sent to third parties.
2. Warning
strict-origin
strict-origin-when-cross-origin
(browser\'s default value; see also under additional note 2)With these policy values basic referrer data, which may be sensitive, is sent to third parties only via secure connections (HTTPS). Therefore these values should only to be used where necessary and permitted by law.
3. Bad
no-referrer-when-downgrade
origin-when-cross-origin
origin
unsafe-url
With these policy values any or basic referrer data, which may be sensitive, is sent to third parties possibly via insecure connections (HTTP). Therefore these values must not be used.
Additional notes:
strict-origin-when-cross-origin
is the default policy value when no Referrer-Policy
is published as prescribed in the current "Editor\'s Draft" of the Referrer-Policy
standard and this default is used by all latest major browsers. Note that some users may still have a different default value configured in their browser.Referrer-Policy
header as a mechanism for serving your referrer policy. We do not recommend to use the HTML <meta>
element or the HTML referrerpolicy
content attribute to publish your referrer policy, especially because the sections that describe these methods in the standard are marked as "not normative". Therefore we do not check for a referrer policy that is offered via the latter two methods.Referrer-Policy
headers, and a Referrer-Policy
header may contain multiple values. Unknown values will be ignored by the browser and only the last known value will be used. This makes it possible to use future standardised policy values that are not supported by all browsers yet. However, currently all latest major browsers support the above mentioned policy values under "Good" and "Warning".Note on IPv6/IPv4: for performance reasons all tests in the category \'Security options\' only run for the first available IPv6 and IPv4 address.
Requirement level: Recommended',
detail_web_appsecpriv_http_referrer_policy_label: 'Referrer-Policy',
detail_web_appsecpriv_http_referrer_policy_tech_table: 'Web server IP address|Findings',
detail_web_appsecpriv_http_referrer_policy_verdict_bad: 'Your web server offers a Referrer-Policy with a policy value that is not sufficiently secure and privacy-protecting.',
detail_web_appsecpriv_http_referrer_policy_verdict_good: 'Your web server offers a Referrer-Policy with a policy value that is sufficiently secure and privacy-protecting.',
detail_web_appsecpriv_http_referrer_policy_verdict_recommendations: 'Your web server either does not offer a Referrer-Policy and thus relies on the default browser policy, or your web server offers a Referrer-Policy with a policy value that should be used with caution because of its potential impact on security and privacy.',
- detail_web_appsecpriv_http_securitytxt_exp: 'We check if your web server provides a security.txt
file in the right location, whether it could be retrieved, and whether its content is syntactically valid.
security.txt
is a text file with contact information that you place on your web server. Security researchers can use this information to directly contact the right department or person within your organization about vulnerabilities that they found in your website or IT systems. This can speed up the fixing of found vulnerabilities, reducing the opportunity for malicious parties to exploit.
The syntax of the file is intended to be machine- and human-readable. The contact information can be an email address, a phone number, and/or a web page (e.g. a web form). Note that published contact information is public and can also be abused, for example, to send spam to a published e-mail address.
Besides contact infomation, the security.txt
file must also contain an expiry date. To avoid staleness it is recommended that the date be less than a year into the future. It is optional to also include other relevant information for security researchers, like a link to your policy on dealing with security vulnerabilities reports (usually called a Coordinated Vulnerability Disclosure policy).
It is recommended to PGP sign the security.txt
file while including the web URI on which the file is located in a Canonical
field. We check if the security.txt
file is signed. However, we do not validate the signature because, unfortunately, there is no standardised place to retrieve a public PGP key (which is required for signature validation).
If one or more Canonical
fields are present, the web URI of the security.txt
file must be listed in a Canonical
field. When redirecting to a security.txt
file at least the last URI of the redirect chain must be listed.
The file must be published under the /.well-known/
path. Note that placing it under the top-level path has been deprecated. Every web (sub) domain should have its own security.txt
file. An example file can be found on https://example.nl/.well-known/security.txt
.
Redirecting to a security.txt
on another domain name is allowed. Especially in the case of a large domain name portfolio, it is advisable from a maintenance perspective to redirect the domain names to a central security.txt
.
Note that security.txt
files are normally just a few kilobytes in size. We therefore read and evaluate at maximum the first 100 kB of a found security.txt
file.
Requirement level: Recommended',
+ detail_web_appsecpriv_http_securitytxt_exp: 'We check if your web server provides a security.txt
file in the right location, whether it could be retrieved, and whether its content is syntactically valid.
security.txt
is a text file with contact information that you place on your web server. Security researchers can use this information to directly contact the right department or person within your organization about vulnerabilities that they found in your website or IT systems. This can speed up the fixing of found vulnerabilities, reducing the opportunity for malicious parties to exploit.
The syntax of the file is intended to be machine- and human-readable. The contact information can be an email address, a phone number, and/or a web page (e.g. a web form). Note that published contact information is public and can also be abused, for example, to send spam to a published e-mail address.
Besides contact information, the security.txt
file must also contain an expiry date. To avoid staleness it is recommended that the date be less than a year into the future. It is optional to also include other relevant information for security researchers, like a link to your policy on dealing with security vulnerabilities reports (usually called a Coordinated Vulnerability Disclosure policy).
It is recommended to PGP sign the security.txt
file while including the web URI on which the file is located in a Canonical
field. We check if the security.txt
file is signed. However, we do not validate the signature because, unfortunately, there is no standardised place to retrieve a public PGP key (which is required for signature validation).
If one or more Canonical
fields are present, the web URI of the security.txt
file must be listed in a Canonical
field. When redirecting to a security.txt
file at least the last URI of the redirect chain must be listed.
The file must be published under the /.well-known/
path. Note that placing it under the top-level path has been deprecated. Every web (sub) domain should have its own security.txt
file. An example file can be found on https://example.nl/.well-known/security.txt
.
Redirecting to a security.txt
on another domain name is allowed. Especially in the case of a large domain name portfolio, it is advisable from a maintenance perspective to redirect the domain names to a central security.txt
.
Note that security.txt
files are normally just a few kilobytes in size. We therefore read and evaluate at maximum the first 100 kB of a found security.txt
file.
Note on IPv6/IPv4: for performance reasons all tests in the category \'Security options\' only run for the first available IPv6 and IPv4 address.
Requirement level: Recommended',
detail_web_appsecpriv_http_securitytxt_label: 'security.txt',
detail_web_appsecpriv_http_securitytxt_tech_table: 'Web server IP address|Findings',
detail_web_appsecpriv_http_securitytxt_verdict_bad: 'Your web server does not offer a security.txt file in the right location, it could not be retrieved, or its content is not syntactically valid.',
detail_web_appsecpriv_http_securitytxt_verdict_good: 'Your web server offers a security.txt file in the right location and its content is syntactically valid.',
detail_web_appsecpriv_http_securitytxt_verdict_recommendations: 'Your web server offers a security.txt file in the right location and its content is syntactically valid. However, there are one or more recommendations for improvement.',
- detail_web_appsecpriv_http_x_content_type_exp: 'We check if your web server provides an HTTP header for X-Content-Type-Options
. With this HTTP header you let web browsers know that they must not do \'MIME type sniffing\' and always follow the Content-Type
as declared by your web server. The only valid value for this HTTP header is nosniff
. When enabled, a browser will block requests for style
and script
when they do not have a corresponding Content-Type
(i.e. text/css
or a \'JavaScript MIME type\' like application/javascript
).
\'MIME type sniffing\' is a technique where the browser scans the content of a file to detect the format of a file regardless of the declared Content-Type
by the web server. This technique is vulnerable to the so-called \'MIME confusion attack\' in which the attacker manipulates the content of a file in a way that it is treated by the browser as a different Content-Type
, like an executable.
Requirement level: Recommended ',
+ detail_web_appsecpriv_http_x_content_type_exp: 'We check if your web server provides an HTTP header for X-Content-Type-Options
. With this HTTP header you let web browsers know that they must not do \'MIME type sniffing\' and always follow the Content-Type
as declared by your web server. The only valid value for this HTTP header is nosniff
. When enabled, a browser will block requests for style
and script
when they do not have a corresponding Content-Type
(i.e. text/css
or a \'JavaScript MIME type\' like application/javascript
).
\'MIME type sniffing\' is a technique where the browser scans the content of a file to detect the format of a file regardless of the declared Content-Type
by the web server. This technique is vulnerable to the so-called \'MIME confusion attack\' in which the attacker manipulates the content of a file in a way that it is treated by the browser as a different Content-Type
, like an executable.
Note on IPv6/IPv4: for performance reasons all tests in the category \'Security options\' only run for the first available IPv6 and IPv4 address.
Requirement level: Recommended ',
detail_web_appsecpriv_http_x_content_type_label: 'X-Content-Type-Options',
detail_web_appsecpriv_http_x_content_type_tech_table: 'Web server IP address|X-Content-Type-Options value',
detail_web_appsecpriv_http_x_content_type_verdict_bad: 'Your web server does not offer X-Content-Type-Options.',
detail_web_appsecpriv_http_x_content_type_verdict_good: 'Your web server offers X-Content-Type-Options.',
- detail_web_appsecpriv_http_x_frame_exp: 'We check if your web server provides an HTTP header for X-Frame-Options
that has a sufficiently secure policy. With this HTTP header you let web browsers know whether you want to allow your website to be framed or not. Prevention of framing defends visitors against attacks like clickjacking. We consider the following values to be sufficiently secure:
DENY
(framing not allowed); orSAMEORIGIN
(only framing by your own website allowed).Although the value ALLOW-FROM
(only allow specific websites to frame your website) is part of the X-Frame-Options
specification (RFC 7034), it is not supported by most modern web browsers. Therefore we do not consider this value as sufficiently secure.
Note that Content-Security-Policy
(CSP) offers similar protection through frame-ancestors
and besides much more for visitors with modern web browsers. However X-Frame-Options
could still protect visitors of older web browsers that do not support CSP. Furthermore X-Frame-Options
could offer valuable protection for all visitors when CSP is not (properly) configured for the website concerned.
Also see \'Web application guidelines from NCSC-NL\', guideline U/PW.03 (in Dutch).
Requirement level: Optional ',
+ detail_web_appsecpriv_http_x_frame_exp: 'We check if your web server provides an HTTP header for X-Frame-Options
that has a sufficiently secure policy. With this HTTP header you let web browsers know whether you want to allow your website to be framed or not. Prevention of framing defends visitors against attacks like clickjacking. We consider the following values to be sufficiently secure:
DENY
(framing not allowed); orSAMEORIGIN
(only framing by your own website allowed).Although the value ALLOW-FROM
(only allow specific websites to frame your website) is part of the X-Frame-Options
specification (RFC 7034), it is not supported by most modern web browsers. Therefore we do not consider this value as sufficiently secure.
Note that Content-Security-Policy
(CSP) offers similar protection through frame-ancestors
and besides much more for visitors with modern web browsers. However X-Frame-Options
could still protect visitors of older web browsers that do not support CSP. Furthermore X-Frame-Options
could offer valuable protection for all visitors when CSP is not (properly) configured for the website concerned.
Also see \'Web application guidelines from NCSC-NL\', guideline U/PW.03 (in Dutch).
Note on IPv6/IPv4: for performance reasons all tests in the category \'Security options\' only run for the first available IPv6 and IPv4 address.
Requirement level: Optional ', detail_web_appsecpriv_http_x_frame_label: 'X-Frame-Options', detail_web_appsecpriv_http_x_frame_tech_table: 'Web server IP address|X-Frame-Options value', detail_web_appsecpriv_http_x_frame_verdict_bad: 'Your web server does not offer securely configured X-Frame-Options.', @@ -1248,29 +1260,29 @@ const internet_nl_messages = { detail_web_ipv6_web_aaaa_tech_table: 'Web server|IPv6 address|IPv4 address', detail_web_ipv6_web_aaaa_verdict_bad: 'None of your web servers has an IPv6 address.', detail_web_ipv6_web_aaaa_verdict_good: 'At least one of your web servers has an IPv6 address.', - detail_web_ipv6_web_ipv46_exp: 'We compare the response and content received from your web server over IPv6 with that received over IPv4.
We check:
Note that in case there are multiple IPv6 and IPv4 addresses, we pick one IPv6 address and one IPv4 address to perform the subtest. If only an IPv6 address and no IPv4 address is available, the subtest is not applicable because no comparison can be made.', + detail_web_ipv6_web_ipv46_exp: '
We compare the available ports and offered headers and content of your web server via IPv6 with those via IPv4.
We check if:
Additional notes:
Your hoster (or its network provider) announces through the Border Gateway Protocol (BGP) for which of its IP address blocks it accepts incoming Internet traffic. Other network providers use these route announcements to determine via which route to send traffic for your server\'s IP addresses.
However, a route announcement can be faked. In fact, another network provider may be able to connect the IP address block of your IP address to its network and thus potentially receive Internet traffic that is actually intended for your network provider. The cause may be accidental or malicious. In either case, this can result in your server becoming unreachable or in Internet traffic to your server being intercepted.
Resource Public Key Infrastructure (RPKI) significantly improves protection against this. With RPKI, the rightful holder of a block of IP addresses can publish a digitally signed statement with route authorization (Route Origin Authorisation; ROA for short). Another network provider that wants to send Internet traffic to a particular IP address, can use the corresponding statement to filter out Invalid
routes. In this way, the network provider prevents Internet traffic from its network from being sent to unauthorized provider networks.
Requirement level: Recommended', + detail_web_rpki_exists_exp: 'We check if an RPKI Route Origin Authorization (ROA) has been published for all IP addresses of your web server.
Your hoster (or its network provider) announces through the Border Gateway Protocol (BGP) for which of its IP address blocks it accepts incoming Internet traffic. Other network providers use these route announcements to determine via which route to send traffic for your server\'s IP addresses.
However, a route announcement can be faked. In fact, another network provider may be able to connect the IP address block of your IP address to its network and thus potentially receive Internet traffic that is actually intended for your network provider. The cause may be accidental or malicious. In either case, this can result in your server becoming unreachable or in Internet traffic to your server being intercepted.
Resource Public Key Infrastructure (RPKI) significantly improves protection against this. With RPKI, the rightful holder of a block of IP addresses can publish a digitally signed statement with route authorization (Route Origin Authorisation; ROA for short). Another network provider that wants to send Internet traffic to a particular IP address, can use the corresponding statement to filter out Invalid
routes. In this way, the network provider prevents Internet traffic from its network from being sent to unauthorized provider networks.',
detail_web_rpki_exists_label: 'Route Origin Authorisation existence',
- detail_web_rpki_exists_tech_table: 'Webserver|IP address|RPKI Route Origin Authorization',
+ detail_web_rpki_exists_tech_table: 'Web server|IP address|RPKI Route Origin Authorization',
detail_web_rpki_exists_verdict_bad: 'For at least one of the IP addresses of your web server no RPKI Route Origin Authorisation (ROA) is published.',
detail_web_rpki_exists_verdict_good: 'For all IP addresses of your web server an RPKI Route Origin Authorisation (ROA) is published.',
detail_web_rpki_exists_verdict_no_addresses: 'Your domain does not contain any web server IP addresses. Therefore, this subtest could not be performed.',
- detail_web_rpki_valid_exp: 'We check if the validation status for all IP addresses of your web server is Valid
. If there are multiple overlapping route announcements for the IP address, we test that they are all Valid
.
Your hoster (or its network provider) announces via the Border Gateway Protocol (BGP) for which of its IP address blocks it accepts incoming Internet traffic. It does this by associating (parts of) its IP address blocks (Route Prefix) with the unique number of its provider network (Route Origin ASN), and then distributing this routing information. Other network providers use these route announcements to determine via which route to send traffic for the IP addresses.
Additionally, for each route announcement, your hoster (or its network provider) should publish a digitally signed statement with route authorisation (Route Origin Authorisation; abbreviated: ROA) statement using Resource Public Key Infrastructure (RPKI).
Another network provider that is asked to send Internet traffic to your server\'s IP address can cryptographically verify the associated statement. The verified content (Validated ROA Payload; abbreviated: VRP) includes which provider networks (VRP ASN) are authorised to receive Internet traffic for each recorded IP address block (VRP Prefix).
The network provider can then use this content to filter BGP routes. For example, he can reject any Invalid
routes, to prevent Internet traffic from its network is sent to unauthorised provider networks.
Checking route announcements against route authorisations (RPKI Origin Validation; abbreviated: ROV) has the following three possible outcomes.
Valid
: The route announcement of the considered IP address is matched by at least one published route authorisation. A route authorisation is also matched for more specific route announcements (i.e., for a part of the IP address block contained in the route authorisation), unless they are more specific than the limit specified in the route authorisation (via the maxLength
attribute).
Invalid
: The route announcement of the considered IP address is covered by a route authorisation, but it does not match. There are two possible causes:
the IP address block (Route Prefix) is announced from a provider network (Route Origin ASN) that is not authorised in the route authorisation (result in the table below: "invalid (as)");
the IP address block (Route Prefix) that is announced is smaller than is allowed in the route authorisation, i.e. exceeding maxLength
value (result in table below: "invalid (length)").
NotFound
: No statement with route-authorisation has been found that covers the route announcement of the considered IP address. This makes the routing of Internet traffic to your server less secure. Please contact your hoster about this. He can ask his network provider that owns your server\'s IP addresses to publish route authorisations.
What to do if the test result shows the status Invalid?
The status Invalid
indicates an unintentional or malicious route configuration error, that can be caused by your hoster or its network provider (internal error) or by a third party (external error). In either case, it can lead to the unreachability of your server or the interception of Internet traffic to your server. Contact your hoster as soon as possible. In the case of an internal error, your hoster should ask his network provider that owns your server\'s IP addresses to fix the route configuration error.
Requirement level: Recommended',
+ detail_web_rpki_valid_exp: 'We check if the validation status for all IP addresses of your web server is Valid
. If there are multiple overlapping route announcements for the IP address, we test that they are all Valid
.
Your hoster (or its network provider) announces via the Border Gateway Protocol (BGP) for which of its IP address blocks it accepts incoming Internet traffic. It does this by associating (parts of) its IP address blocks (Route Prefix) with the unique number of its provider network (Route Origin ASN), and then distributing this routing information. Other network providers use these route announcements to determine via which route to send traffic for the IP addresses.
Additionally, for each route announcement, your hoster (or its network provider) should publish a digitally signed statement with route authorisation (Route Origin Authorisation; abbreviated: ROA) statement using Resource Public Key Infrastructure (RPKI).
Another network provider that is asked to send Internet traffic to your server\'s IP address can cryptographically verify the associated statement. The verified content (Validated ROA Payload; abbreviated: VRP) includes which provider networks (VRP ASN) are authorised to receive Internet traffic for each recorded IP address block (VRP Prefix).
The network provider can then use this content to filter BGP routes. For example, he can reject any Invalid
routes, to prevent Internet traffic from its network is sent to unauthorised provider networks.
Checking route announcements against route authorisations (RPKI Origin Validation; abbreviated: ROV) has the following three possible outcomes.
1․ Valid
: The route announcement of the considered IP address is matched by at least one published route authorisation. A route authorisation is also matched for more specific route announcements (i.e., for a part of the IP address block contained in the route authorisation), unless they are more specific than the limit specified in the route authorisation (via the maxLength
attribute).
2․ Invalid
: The route announcement of the considered IP address is covered by a route authorisation, but it does not match. There are two possible causes:
maxLength
value (result in table below: "invalid (length)").3․ NotFound
: No statement with route-authorisation has been found that covers the route announcement of the considered IP address. This makes the routing of Internet traffic to your server less secure. Please contact your hoster about this. He can ask his network provider that owns your server\'s IP addresses to publish route authorisations.
What to do if the test result shows the status Invalid?
The status Invalid
indicates an unintentional or malicious route configuration error, that can be caused by your hoster or its network provider (internal error) or by a third party (external error). In either case, it increases the risk for unreachability of your server or for interception of Internet traffic to your server. Contact your hoster as soon as possible. In the case of an internal error, your hoster should ask its network provider that owns your server\'s IP addresses to fix the route configuration error. ',
detail_web_rpki_valid_label: 'Route announcement validity',
detail_web_rpki_valid_tech_table: 'Web server|BGP Route Prefix|BGP Route Origin ASN|RPKI Origin Validation state',
detail_web_rpki_valid_verdict_bad: 'At least one IP address of your web server has a NotFound
validation state. There is no RPKI Route Origin Authorization (ROA) published for the route announcement of each of the affected IP addresses.',
detail_web_rpki_valid_verdict_good: 'All IP addresses of your web server have a Valid
validation state. The route announcement of these IP addresses is matched by the published RPKI Route Origin Authorisation (ROA).',
- detail_web_rpki_valid_verdict_invalid: 'At least one IP address of your web server has an Invalid
validation state. The route announcement of the affected IP adresses is not matched by the published RPKI Route Origin Authorisation (ROA). This indicates an unintentional or malicious route configuration error, that can be caused by your web hoster (internal error) or by a third party (external error). In either case, it can lead to the unreachability of your server or the interception of Internet traffic to your server. Contact your web hoster as soon as possible. In the case of an internal error, your web hoster should ask its network provider that owns your server\'s IP addresses to fix the route configuration error.',
+ detail_web_rpki_valid_verdict_invalid: 'At least one IP address of your web server has an Invalid
validation state. The route announcement of the affected IP addresses is not matched by the published RPKI Route Origin Authorisation (ROA). This indicates an unintentional or malicious route configuration error, that can be caused by your web hoster (internal error) or by a third party (external error). In either case, it increases the risk for unreachability of your server or for interception of Internet traffic to your server. Contact your web hoster as soon as possible. In the case of an internal error, your web hoster should ask its network provider that owns your server\'s IP addresses to fix the route configuration error.',
detail_web_rpki_valid_verdict_not_routed: 'This subtest did not run, because no route announcement was available for any of the IP addresses.',
detail_web_tls_cert_hostmatch_exp: 'We check if the domain name of your website matches the domain name on the certificate.
It could be useful to include more than one domain (e.g. the domain with and without www) as Subject Alternative Name on the certificate.
See \'IT Security Guidelines for Transport Layer Security (TLS) v2.1\' from NCSC-NL, guideline B3-1 (in English).', detail_web_tls_cert_hostmatch_label: 'Domain name on certificate', @@ -1328,19 +1340,19 @@ const internet_nl_messages = { detail_web_tls_dane_valid_tech_table: 'Web server IP address|DANE TLSA record valid', detail_web_tls_dane_valid_verdict_bad: 'The DANE fingerprint on your domain is not valid for your web certificate. Either someone manipulated the response from your name server, or your domain has a serious DANE configuration error. The latter makes your website unreachable for any user who check DANE fingerprints. You should contact your name server operator and/or your hosting provider as soon as possible.', detail_web_tls_dane_valid_verdict_good: 'The DANE fingerprint on your domain is valid for your web certificate.', - detail_web_tls_fs_params_exp: 'We check if the public parameters used in Diffie-Hellman key exchange by your web server are secure.
ECDHE: The security of elliptic curve Diffie-Hellman (ECDHE) ephemeral key exchange depends on the used elliptic curve. We check if the bit-length of the used elliptic curves is a least 224 bits. Currently we are not able to check the elliptic curve name.
DHE: The security of Diffie-Hellman Ephemeral (DHE) key exchange depends on the lengths of the public and secret keys used within the chosen finite field group. We test if your DHE public key material uses one of the predefined finite field groups that are specified in RFC 7919. Self-generated groups are \'Insufficient\'.
The larger key sizes required for the use of DHE come with a performance penalty. Carefully evaluate and use ECDHE instead of DHE if you can.
RSA as an alternative: Besides ECDHE and DHE, RSA can be used for key exchange. However, it is at risk of becoming insufficiently secure (current status \'phase out\'). The RSA public parameters are tested in the subtest \'Public key of certificate\'. Note that RSA is considered as \'good\' for certificate verification.
See \'IT Security Guidelines for Transport Layer Security (TLS) v2.1\' from NCSC-NL, guideline B5-1 and table 9 for ECDHE, and guideline B6-1 and table 10 for DHE (in English).
Elliptic curve for ECDHE
secp384r1
, secp256r1
, x448
, and x25519
secp224r1
Finite field group for DHE
Sufficient:
64852d6890ff9e62eecd1ee89c72af9af244dfef5b853bcedea3dfd7aade22b3
c410cc9c4fd85d2c109f7ebe5930ca5304a52927c0ebcb1a11c5cf6b2386bbab
Phase out:
9ba6429597aeed2d8617a7705b56e96d044f64b07971659382e426675105654b
Insufficient: Other groups
Note: the above names are based on the IANA naming conventions. Sometimes alternative names are used to refer to the same curves, like prime256v1
(ANSI) and NIST P-256
for secp256r1
.',
+ detail_web_tls_fs_params_exp: 'We check if the public parameters used in Diffie-Hellman key exchange by your web server are secure.
ECDHE: The security of elliptic curve Diffie-Hellman (ECDHE) ephemeral key exchange depends on the used elliptic curve. We check if the bit-length of the used elliptic curves is a least 224 bits. Currently we are not able to check the elliptic curve name.
DHE: The security of Diffie-Hellman Ephemeral (DHE) key exchange depends on the lengths of the public and secret keys used within the chosen finite field group. We test if your DHE public key material uses one of the predefined finite field groups that are specified in RFC 7919. Self-generated groups are \'Insufficient\'.
The larger key sizes required for the use of DHE come with a performance penalty. Carefully evaluate and use ECDHE instead of DHE if you can.
RSA as an alternative: Besides ECDHE and DHE, RSA can be used for key exchange. However, it is at risk of becoming insufficiently secure (current status \'phase out\'). The RSA public parameters are tested in the subtest \'Public key of certificate\'. Note that RSA is considered as \'good\' for certificate verification.
See \'IT Security Guidelines for Transport Layer Security (TLS) v2.1\' from NCSC-NL, guideline B5-1 and table 9 for ECDHE, and guideline B6-1 and table 10 for DHE (in English).
Elliptic curve for ECDHE
secp384r1
, secp256r1
, x448
, and x25519
secp224r1
Finite field group for DHE
Sufficient:
64852d6890ff9e62eecd1ee89c72af9af244dfef5b853bcedea3dfd7aade22b3
c410cc9c4fd85d2c109f7ebe5930ca5304a52927c0ebcb1a11c5cf6b2386bbab
Phase out:
Insufficient: Other groups
Note: the above names are based on the IANA naming conventions. Sometimes alternative names are used to refer to the same curves, like prime256v1
(ANSI) and NIST P-256
for secp256r1
.',
detail_web_tls_fs_params_label: 'Key exchange parameters',
detail_web_tls_fs_params_tech_table: 'Web server IP address|Affected parameters|Status',
detail_web_tls_fs_params_verdict_bad: 'Your web server supports insufficiently secure parameters for Diffie-Hellman key exchange.',
detail_web_tls_fs_params_verdict_good: 'Your web server supports secure parameters for Diffie-Hellman key exchange.',
- detail_web_tls_fs_params_verdict_na: 'This subtest is not applicable as your webserver does not support Diffie-Hellman key exchange. Note that RSA is an alternative for key exchange, but has the phase out status.',
+ detail_web_tls_fs_params_verdict_na: 'This subtest is not applicable as your web server does not support Diffie-Hellman key exchange. Note that RSA is an alternative for key exchange, but has the phase out status.',
detail_web_tls_fs_params_verdict_phase_out: 'Your web server supports parameters for Diffie-Hellman key exchange that have a phase out status, because they are known to be fragile and are at risk of of becoming insufficiently secure.',
- detail_web_tls_http_compression_exp: '
We test if your web server supports HTTP compression.
HTTP compression makes the secure connection with your webserver vulnerable for the BREACH attack. However HTTP compression is commonly used to make more efficient use of available bandwidth. Consider the trade-offs involved with HTTP compression. If you choose to use HTTP compression, verify if it is possible to mitigate related attacks at the application level. An example of such a measure is limiting the extent to which an attacker can influence the response of a server.
This subtest checks if the web server on root directory level supports HTTP compression. However it does not check additional website sources like images and scripts.
See \'IT Security Guidelines for Transport Layer Security (TLS) v2.1\' from NCSC-NL, guideline B7-1 and table 11.
Requirement level: Optional
Compression option
We test if your web server supports HTTP compression.
HTTP compression makes the secure connection with your web server vulnerable for the BREACH attack. However HTTP compression is commonly used to make more efficient use of available bandwidth. Consider the trade-offs involved with HTTP compression. If you choose to use HTTP compression, verify if it is possible to mitigate related attacks at the application level. An example of such a measure is limiting the extent to which an attacker can influence the response of a server.
This subtest checks if the web server on root directory level supports HTTP compression. However it does not check additional website sources like images and scripts.
See \'IT Security Guidelines for Transport Layer Security (TLS) v2.1\' from NCSC-NL, guideline B7-1 and table 11.
Requirement level: Optional
Compression option
If so, we also check in the below subtests whether HTTPS is configured sufficiently secure in conformance with the \'IT Security Guidelines for Transport Layer Security (TLS) v2.1\' from NCSC-NL.
HTTPS guarantees the confidentiality and integrity of the exchanged information. Because it is situation depended how (privacy) sensitive and valuable information is, a secure HTTPS configuration is important for every website. Even trivial, public information could be extremely sensitive and valuable for a user. Note: for performance reasons the tests in the HTTPS test section only run for the first available IPv6 and IPv4 address.', + detail_web_tls_https_exists_exp: 'We check if your website is reachable on HTTPS.
If so, we also check in the below subtests whether HTTPS is configured sufficiently secure in conformance with the \'IT Security Guidelines for Transport Layer Security (TLS) v2.1\' from NCSC-NL.
HTTPS guarantees the confidentiality and integrity of the exchanged information. Because it is situation depended how (privacy) sensitive and valuable information is, a secure HTTPS configuration is important for every website. Even trivial, public information could be extremely sensitive and valuable for a user.
Note on IPv6/IPv4: for performance reasons all tests in the category \'Secure connection (HTTPS)\' only run for the first available IPv6 and IPv4 address.',
detail_web_tls_https_exists_label: 'HTTPS available',
detail_web_tls_https_exists_tech_table: 'Web server IP address|HTTPS existent',
detail_web_tls_https_exists_verdict_bad: 'Your website does not offer HTTPS.',
@@ -1363,7 +1375,7 @@ const internet_nl_messages = {
detail_web_tls_kex_hash_func_label: 'Hash function for key exchange',
detail_web_tls_kex_hash_func_tech_table: 'Web server IP address|SHA2 support for signatures',
detail_web_tls_kex_hash_func_verdict_good: 'Your web server supports a secure hash function for key exchange.',
- detail_web_tls_kex_hash_func_verdict_other: 'We were unable to determine the hash function used by your webserver. This could be because the cipher combination used has no signature for certificate verification (e.g it uses RSA key exchange or is anonymous i.e. anon
).',
+ detail_web_tls_kex_hash_func_verdict_other: 'We were unable to determine the hash function used by your web server. This could be because the cipher combination used has no signature for certificate verification (e.g. it uses RSA key exchange or is anonymous i.e. anon
).',
detail_web_tls_kex_hash_func_verdict_phase_out: 'Your web server does not support a secure hash function for key exchange. You should phase out this setting deliberately, because it is at risk of becoming insufficiently secure in the future.',
detail_web_tls_ocsp_stapling_exp: '
We check if your web server supports the TLS Certificate Status extension also known as OCSP stapling.
The web browser can verify the validity of the certificate presented by the web server by contacting the certificate authority using the OCSP protocol. OCSP provides a certificate authority with information on browsers communicating to the web server: this may be a privacy risk. A web server can also provide OCSP responses to web browsers itself through OCSP stapling. This solves this privacy risk, does not require connectivity between web browser and certificate authority, and is faster.
When connecting to your web server we use the TLS Certificate Status extension to request OCSP data be included in the server response. If your web server includes OCSP data in the response we then verify that the OCSP data is valid i.e. correctly signed by a known certificate authority. Note: we do not use the OCSP data to evaluate the validity of the certificate.
See \'IT Security Guidelines for Transport Layer Security (TLS) v2.1\' from NCSC-NL, table 15 (in English).
Requirement level: Optional
OCSP stapling
This is consistent with the "Technical requirements for the registration and use of .nl domain names" d.d. 13 November 2017 by SIDN (.nl TLD registry) that require each .nl domain to have at least two name servers.
\'IPv4-mapped IPv6 addresses\' (RFC 4291, beginning with ::ffff:) will fail in this test, as they do not provide IPv6 connectivity.', detail_web_mail_ipv6_ns_aaaa_label: 'IPv6 addresses for name servers', detail_web_mail_ipv6_ns_aaaa_tech_table: 'Name server|IPv6 address|IPv4 address', @@ -1404,29 +1416,31 @@ const internet_nl_messages = { detail_web_mail_ipv6_ns_reach_tech_table: 'Name server|Unreachable IPv6 address', detail_web_mail_ipv6_ns_reach_verdict_bad: 'Not all name servers that have an IPv6 address are reachable over IPv6.', detail_web_mail_ipv6_ns_reach_verdict_good: 'All name servers that have an IPv6 address are reachable over IPv6.', - detail_web_mail_rpki_ns_exists_exp: 'We check if an RPKI Route Origin Authorization (ROA) has been published for all IP addresses of the name servers of your domain.
Your hoster (or its network provider) announces through the Border Gateway Protocol (BGP) for which of its IP address blocks it accepts incoming Internet traffic. Other network providers use these route announcements to determine via which route to send traffic for your server\'s IP addresses.
However, a route announcement can be faked. In fact, another network provider may be able to connect the IP address block of your IP address to its network and thus potentially receive Internet traffic that is actually intended for your network provider. The cause may be accidental or malicious. In either case, this can result in your server becoming unreachable or in Internet traffic to your server being intercepted.
Resource Public Key Infrastructure (RPKI) significantly improves protection against this. With RPKI, the rightful holder of a block of IP addresses can publish a digitally signed statement with route authorization (Route Origin Authorisation; ROA for short). Another network provider that wants to send Internet traffic to a particular IP address, can use the corresponding statement to filter out Invalid
routes. In this way, the network provider prevents Internet traffic from its network from being sent to unauthorized provider networks.
Requirement level: Recommended', + detail_web_mail_rpki_ns_exists_exp: 'We check if an RPKI Route Origin Authorization (ROA) has been published for all IP addresses of the name servers of your domain.
Your hoster (or its network provider) announces through the Border Gateway Protocol (BGP) for which of its IP address blocks it accepts incoming Internet traffic. Other network providers use these route announcements to determine via which route to send traffic for your server\'s IP addresses.
However, a route announcement can be faked. In fact, another network provider may be able to connect the IP address block of your IP address to its network and thus potentially receive Internet traffic that is actually intended for your network provider. The cause may be accidental or malicious. In either case, this can result in your server becoming unreachable or in Internet traffic to your server being intercepted.
Resource Public Key Infrastructure (RPKI) significantly improves protection against this. With RPKI, the rightful holder of a block of IP addresses can publish a digitally signed statement with route authorization (Route Origin Authorisation; ROA for short). Another network provider that wants to send Internet traffic to a particular IP address, can use the corresponding statement to filter out Invalid
routes. In this way, the network provider prevents Internet traffic from its network from being sent to unauthorized provider networks.',
detail_web_mail_rpki_ns_exists_label: 'Route Origin Authorisation existence',
detail_web_mail_rpki_ns_exists_tech_table: 'Name server|IP address|RPKI Route Origin Authorization',
detail_web_mail_rpki_ns_exists_verdict_bad: 'For at least one of the IP addresses of your name servers no RPKI Route Origin Authorisation (ROA) is published.',
detail_web_mail_rpki_ns_exists_verdict_good: 'For all IP addresses of your name servers an RPKI Route Origin Authorisation (ROA) is published.',
detail_web_mail_rpki_ns_exists_verdict_no_addresses: 'Your domain does not contain any name servers. Therefore, this subtest could not be performed.',
- detail_web_mail_rpki_ns_valid_exp: 'We check if the validation status for all IP addresses of the name servers of your domain is Valid
. If there are multiple overlapping route announcements for the IP address, we test that they are all Valid
.
Your hoster (or its network provider) announces via the Border Gateway Protocol (BGP) for which of its IP address blocks it accepts incoming Internet traffic. It does this by associating (parts of) its IP address blocks (Route Prefix) with the unique number of its provider network (Route Origin ASN), and then distributing this routing information. Other network providers use these route announcements to determine via which route to send traffic for the IP addresses.
Additionally, for each route announcement, your hoster (or its network provider) should publish a digitally signed statement with route authorisation (Route Origin Authorisation; abbreviated: ROA) statement using Resource Public Key Infrastructure (RPKI).
Another network provider that is asked to send Internet traffic to your server\'s IP address can cryptographically verify the associated statement. The verified content (Validated ROA Payload; abbreviated: VRP) includes which provider networks (VRP ASN) are authorised to receive Internet traffic for each recorded IP address block (VRP Prefix).
The network provider can then use this content to filter BGP routes. For example, he can reject any Invalid
routes, to prevent Internet traffic from its network is sent to unauthorised provider networks.
Checking route announcements against route authorisations (RPKI Origin Validation; abbreviated: ROV) has the following three possible outcomes.
Valid
: The route announcement of the considered IP address is matched by at least one published route authorisation. A route authorisation is also matched for more specific route announcements (i.e., for a part of the IP address block contained in the route authorisation), unless they are more specific than the limit specified in the route authorisation (via the maxLength
attribute).
Invalid
: The route announcement of the considered IP address is covered by a route authorisation, but it does not match. There are two possible causes:
the IP address block (Route Prefix) is announced from a provider network (Route Origin ASN) that is not authorised in the route authorisation (result in the table below: "invalid (as)");
maxLength
value (result in table below: "invalid (length)").Note: The status Invalid
indicates an unintentional or malicious route configuration error, that can be caused by your hoster or its network provider (internal error) or by a third party (external error). In either case, it can lead to the unreachability of your server or the interception of Internet traffic to your server. Contact your hoster as soon as possible. In the case of an internal error, your hoster should ask his network provider that owns your server\'s IP addresses to fix the route configuration error.
NotFound
: No statement with route-authorisation has been found that covers the route announcement of the considered IP address. This makes the routing of Internet traffic to your server less secure. Please contact your hoster about this. He can ask his network provider that owns your server\'s IP addresses to publish route authorisations.Requirement level: Recommended',
+ detail_web_mail_rpki_ns_valid_exp: 'We check if the validation status for all IP addresses of the name servers of your domain is Valid
. If there are multiple overlapping route announcements for the IP address, we test that they are all Valid
.
Your hoster (or its network provider) announces via the Border Gateway Protocol (BGP) for which of its IP address blocks it accepts incoming Internet traffic. It does this by associating (parts of) its IP address blocks (Route Prefix) with the unique number of its provider network (Route Origin ASN), and then distributing this routing information. Other network providers use these route announcements to determine via which route to send traffic for the IP addresses.
Additionally, for each route announcement, your hoster (or its network provider) should publish a digitally signed statement with route authorisation (Route Origin Authorisation; abbreviated: ROA) statement using Resource Public Key Infrastructure (RPKI).
Another network provider that is asked to send Internet traffic to your server\'s IP address can cryptographically verify the associated statement. The verified content (Validated ROA Payload; abbreviated: VRP) includes which provider networks (VRP ASN) are authorised to receive Internet traffic for each recorded IP address block (VRP Prefix).
The network provider can then use this content to filter BGP routes. For example, he can reject any Invalid
routes, to prevent Internet traffic from its network is sent to unauthorised provider networks.
Checking route announcements against route authorisations (RPKI Origin Validation; abbreviated: ROV) has the following three possible outcomes.
1․ Valid
: The route announcement of the considered IP address is matched by at least one published route authorisation. A route authorisation is also matched for more specific route announcements (i.e., for a part of the IP address block contained in the route authorisation), unless they are more specific than the limit specified in the route authorisation (via the maxLength
attribute).
2․ Invalid
: The route announcement of the considered IP address is covered by a route authorisation, but it does not match. There are two possible causes:
maxLength
value (result in table below: "invalid (length)").3․ NotFound
: No statement with route-authorisation has been found that covers the route announcement of the considered IP address. This makes the routing of Internet traffic to your server less secure. Please contact your hoster about this. He can ask his network provider that owns your server\'s IP addresses to publish route authorisations.
What to do if the test result shows the status Invalid?
The status Invalid
indicates an unintentional or malicious route configuration error, that can be caused by your hoster or its network provider (internal error) or by a third party (external error). In either case, it increases the risk for unreachability of your server or for interception of Internet traffic to your server. Contact your hoster as soon as possible. In the case of an internal error, your hoster should ask its network provider that owns your server\'s IP addresses to fix the route configuration error. ',
detail_web_mail_rpki_ns_valid_label: 'Route announcement validity',
detail_web_mail_rpki_ns_valid_tech_table: 'Name server|BGP Route Prefix|BGP Route Origin ASN|RPKI Origin Validation state',
detail_web_mail_rpki_ns_valid_verdict_bad: 'At least one IP address of your name servers has a NotFound
validation state. There is no RPKI Route Origin Authorisation (ROA) is published for its route announcement.',
detail_web_mail_rpki_ns_valid_verdict_good: 'All IP addresses of your name servers have a Valid
validation state. The route announcement of these IP addresses is matched by the published RPKI Route Origin Authorisation (ROA).',
- detail_web_mail_rpki_ns_valid_verdict_invalid: 'At least one IP address of your name servers has an Invalid
validation state. The route announcement of the affected IP adresses is not matched by the published RPKI Route Origin Authorisation (ROA). This indicates an unintentional or malicious route configuration error, that can be caused by your name server hoster (internal error) or by a third party (external error). In either case, it can lead to the unreachability of your server or the interception of Internet traffic to your server. Contact your name server hoster as soon as possible. In the case of an internal error, your name server hoster should ask its network provider that owns your server\'s IP addresses to fix the route configuration error.',
+ detail_web_mail_rpki_ns_valid_verdict_invalid: 'At least one IP address of your name servers has an Invalid
validation state. The route announcement of the affected IP addresses is not matched by the published RPKI Route Origin Authorisation (ROA). This indicates an unintentional or malicious route configuration error, that can be caused by your name server hoster (internal error) or by a third party (external error). In either case, it increases the risk for unreachability of your server or for interception of Internet traffic to your server. Contact your name server hoster as soon as possible. In the case of an internal error, your name server hoster should ask its network provider that owns your server\'s IP addresses to fix the route configuration error.',
detail_web_mail_rpki_ns_valid_verdict_not_routed: 'This subtest did not run, because no route announcement was available for any of the IP addresses.',
domain_pagetitle: 'Website test:',
domain_title: 'Website test: {{prettyaddr}}',
domain_tweetmessage: 'The%20website%20{{report.domain}}%20scores%20{{score}}%25%20in%20the%20website%20test%20of%20%40Internet_nl%3A',
faqs_appsecpriv_title: 'Security options',
faqs_badges_title: 'Using the 100% badges',
+ faqs_batch_and_dashboard_title: 'Batch API and web-based dashboard',
faqs_dnssec_title: 'Domain signature (DNSSEC)',
faqs_halloffame_title: 'Criteria for \'Hall of Fame for Hosters\'',
faqs_https_title: 'Secure website connection (HTTPS)',
faqs_ipv6_title: 'Modern address (IPv6)',
faqs_mailauth_title: 'Protection against email phishing (DMARC, DKIM and SPF)',
+ faqs_measurements_title: 'Measurements using Internet.nl',
faqs_report_score_title: 'Norm and score',
faqs_report_subtest_bad: 'Bad: fail on REQUIRED subtest ⇒ null score',
faqs_report_subtest_error: 'Test error: error encountered during testing ⇒ null score',
@@ -1477,7 +1491,7 @@ const internet_nl_messages = {
page_gotofooter: 'Go to the footer',
page_gotomainmenu: 'Go to the main menu',
page_metadescription: 'Test for modern Internet Standards IPv6, DNSSEC, HTTPS, HSTS, DMARC, DKIM, SPF, STARTTLS, DANE, RPKI and security.txt',
- page_metakeywords: 'IPv6, DNSSEC, HTTPS, HSTS, TLS, DMARC, DKIM, SPF, STARTTLS, DANE, RPKI, security.txt, CSP, Content Security Policy, security headers, test, test tool, check, validation, Internet, Internet Standards, open standards, modern standards, security, internet security, mail, email security, website, website security, internet connection, secure connection, email authentication, encryption, ciphers, cipher suites, PKI, SSL certificate, TLS certificate, website certificaat, Internet Standards Platform',
+ page_metakeywords: 'IPv6, DNSSEC, HTTPS, HSTS, TLS, DMARC, DKIM, SPF, STARTTLS, DANE, RPKI, security.txt, CSP, Content Security Policy, security headers, test, test tool, check, validation, Internet, Internet Standards, open standards, modern standards, security, internet security, mail, email security, website, website security, internet connection, secure connection, email authentication, encryption, ciphers, cipher suites, PKI, SSL certificate, TLS certificate, website certificate, Internet Standards Platform',
page_sitedescription: 'Is your Internet up-to-date?',
page_sitetitle: 'Internet.nl',
page404_title: 'Page not found!',
@@ -1587,7 +1601,9 @@ const internet_nl_messages = {
test_mailipv6_title: 'Reachable via modern internet address?',
test_mailipv6_warning_description: 'Too bad! Your mail server can not be reached by senders using modern addresses (IPv6), or improvement is possible. Therefore your mail server is not part of the modern Internet yet. You should ask your email provider to fully enable IPv6.',
test_mailipv6_warning_summary: 'Not reachable via modern internet address, or improvement possible (IPv6)',
- test_mailrpki_failed_description: 'Too bad! At least one of the IP addresses of your receiving mail server(s) and associated name servers has a route announcement that is not matched by the published route authorisation (RPKI). This indicates an unintentional or malicious route configuration error, that can be caused by your mail hoster or your name server hoster (internal error) or by a third party (external error). In either case, it can lead to the unreachability of your server or the interception of Internet traffic to your server. Contact your mail hoster or name server hoster as soon as possible. In the case of an internal error, they should ask their network provider that owns your server\'s IP addresses to fix the route configuration error.',
+ test_mailrpki_error_description: 'Test not ready to run yet. Please try again later. Sorry for the inconvenience.',
+ test_mailrpki_error_summary: 'Test not ready to run (RPKI)',
+ test_mailrpki_failed_description: 'Too bad! At least one of the IP addresses of your receiving mail server(s) and associated name servers has a route announcement that is not matched by the published route authorisation (RPKI). This indicates an unintentional or malicious route configuration error, that can be caused by your mail hoster or your name server hoster (internal error) or by a third party (external error). In either case, it increases the risk for unreachability of your server or for interception of Internet traffic to your server. Contact your mail hoster or name server hoster as soon as possible. In the case of an internal error, they should ask their network provider that owns your server\'s IP addresses to fix the route configuration error.',
test_mailrpki_failed_summary: 'Unauthorised route announcement (RPKI)',
test_mailrpki_info_description: 'Informational: Your domain does not contain any name servers and thus contains no receiving mail server(s). There are no routable IP addresses that could be tested (RPKI).',
test_mailrpki_info_summary: 'No routable IP addresses found (RPKI)',
@@ -1595,7 +1611,7 @@ const internet_nl_messages = {
test_mailrpki_passed_description: 'Well done! All IP addresses of your receiving mail server(s) and associated name servers have a route announcement that is matched by the published route authorisation (RPKI). As a result, email transport between sending mail servers with enabled route validation and your receiving mail server(s) is better protected against various unintentional or malicious route configuration errors, that can lead to the unreachability of your servers or the interception of Internet traffic to your servers.',
test_mailrpki_passed_summary: 'Authorised route announcement (RPKI)',
test_mailrpki_title: 'Route authorisation?',
- test_mailrpki_warning_description: 'Warning! At least one of the IP addresses of your receiving mail server(s) and associated name servers has a route announcement for which no route authorisation is published (RPKI). As a result, email transport between sending mail servers with enabled route validation and your receiving mail server(s) is not (fully) protected against various unintentional or malicious route configuration errors, that can lead to the unreachability of your servers or the interception of Internet traffic to your servers. Contact your mail hoster or name server hoster about this. They can ask their network provider that owns your server\'s IP addresses to publish routing authorizations.',
+ test_mailrpki_warning_description: 'Too bad! At least one of the IP addresses of your receiving mail server(s) and associated name servers has a route announcement for which no route authorisation is published (RPKI). As a result, email transport between sending mail servers with enabled route validation and your receiving mail server(s) is not (fully) protected against various unintentional or malicious route configuration errors, that can lead to the unreachability of your servers or the interception of Internet traffic to your servers. Contact your mail hoster or name server hoster about this. They can ask their network provider that owns your server\'s IP addresses to publish routing authorizations.',
test_mailrpki_warning_summary: 'Route authorisation not published (RPKI)',
test_mailtls_failed_description: 'Too bad! Sending mail servers that support secure email transport (STARTTLS and DANE) can establish no or an insufficiently secure connection with your receiving mail server(s). Passive and/or active attackers will therefore be able to read emails in transit to you. You should ask your mail provider to enable STARTTLS and DANE, and configure it securely.',
test_mailtls_failed_summary: 'Mail server connection not or insufficiently secured (STARTTLS and DANE)',
@@ -1604,9 +1620,9 @@ const internet_nl_messages = {
test_mailtls_invalid_null_mx_description: 'Warning: Your domain advertises a "Null MX" record indicating that it does not accept email. However, either your domain does not have A/AAAA records, making the "Null MX" record unnecessary. Or on your domain a receiving mail server is set by another MX record, making the "Null MX" conflicting. ',
test_mailtls_invalid_null_mx_summary: 'Inconsistently configured non-receiving mail domain (STARTTLS and DANE)',
test_mailtls_label: 'Secure mail server connection (STARTTLS and DANE)',
- test_mailtls_no_mx_description: 'Informational: No receiving mail servers (MX) are set on your domain that does not have A/AAAA records. This is fine if you do not want to receive email. Note that you do not need a \'Null MX\' record in this case. Your configuration makes the subtests in the STARTTLS and DANE category not applicable. This also goes for the mail server specific subtests in the categories for IPv6 and DNSSEC. ',
+ test_mailtls_no_mx_description: 'Informational: The SPF record on your domain indicates that your domain may be used for sending mail. However, your domain does not have a receiving mail server (MX), which could hinder deliverability of your sent mails because not having an MX may be seen by receivers as an indicator for spam. Therefore if you really want to send mail from this domain, configure an MX. However, if you do not want to send mail from this domain, configure an SPF record with the -all
term only and besides a "Null MX" record if your domain has A/AAAA records. Because of your configuration, the subtests in the STARTTLS and DANE category and the mail server specific subtests in the IPv6 and DNSSEC categories are not applicable.',
test_mailtls_no_mx_summary: 'Properly configured non-receiving mail domain (STARTTLS and DANE)',
- test_mailtls_no_null_mx_description: 'Informational: No receiving mail servers (MX) are set on your domain that has A/AAAA records. We recommend you to explicitly indicate that your domain does not accept email by configuring a "Null MX" record. Your current configuration makes the subtests in the STARTTLS and DANE category not applicable. This also goes for the mail server specific subtests in the categories for IPv6 and DNSSEC. ',
+ test_mailtls_no_null_mx_description: 'Informational: No receiving mail servers (MX) are set on your domain that has A/AAAA records and has an SPF record with only the term -all
. We recommend you to set a "Null MX" record to explicitly indicate that your domain does not accept email. Because of your configuration, the subtests in the STARTTLS and DANE category and the mail server specific subtests in the IPv6 and DNSSEC categories are not applicable.',
test_mailtls_no_null_mx_summary: 'Not explicitly configured non-receiving mail domain (STARTTLS and DANE)',
test_mailtls_null_mx_description: 'Informational: Your domain that has A/AAAA records, clearly indicates that it does not accept email by advertising a "Null MX" record. This is fine if you do not want to receive email. Your configuration makes the subtests in the STARTTLS and DANE category not applicable. This also goes for the mail server specific subtests in the categories for IPv6 and DNSSEC.',
test_mailtls_null_mx_summary: 'Properly configured non-receiving mail domain (STARTTLS and DANE)',
@@ -1617,21 +1633,21 @@ const internet_nl_messages = {
test_mailtls_passed_description: 'Well done! Sending mail servers supporting secure email transport (STARTTLS and DANE) can establish a secure connection with your receiving mail server(s). STARTTLS prevents passive attackers from reading emails in transit to you. DANE protects against active attackers stripping STARTTLS encryption by manipulating the mail traffic.',
test_mailtls_passed_summary: 'Mail server connection sufficiently secured (STARTTLS and DANE)',
test_mailtls_title: 'Secure mail server connection?',
- test_mailtls_unreachable_description: 'Test error: at least one of your receiving mail servers was not reachable for us, making it impossible to (fully) test for STARTTLS and DANE. This could be caused by network connectivity problems or by the mailserver(s) not accepting connections.',
+ test_mailtls_unreachable_description: 'Test error: at least one of your receiving mail servers was not reachable for us, making it impossible to (fully) test for STARTTLS and DANE. This could be caused by network connectivity problems or by the mail server(s) not accepting connections.',
test_mailtls_unreachable_summary: 'Unreachable receiving mail server (STARTTLS and DANE)',
- test_mailtls_untestable_description: 'Test error: at least one of your receiving mail servers was not testable for us, making it impossible to (fully) test for STARTTLS and DANE. This could be caused by, among other things, SMTP errors and ratelimiting measures engaging and dropping connections.',
+ test_mailtls_untestable_description: 'Test error: at least one of your receiving mail servers was not testable for us, making it impossible to (fully) test for STARTTLS and DANE. This could be caused by, among other things, SMTP errors and rate limiting measures engaging and dropping connections.',
test_mailtls_untestable_summary: 'Untestable mail server (STARTTLS and DANE)',
test_mailtls_warning_description: 'Too bad! Sending mail servers that support secure email transport (STARTTLS and DANE) can establish no or an insufficiently secure connection with your receiving mail server(s). Passive and/or active attackers will therefore be able to read emails in transit to you. You should ask your mail provider to enable STARTTLS and DANE, and configure it securely.',
test_mailtls_warning_summary: 'Mail server connection not or insufficiently secured (STARTTLS and DANE)',
- test_siteappsecpriv_failed_description: 'Too bad! Not all required security options, i.e. security headers and security.txt, are set for your website (Security options). With security headers you can activate browser mechanisms to protect visitors against attacks involving, for example, cross-site scripting (XSS) or framing. Through a security.txt file you can provide researchers who have found a vulnerability on your systems, with your contact infomation and your Coordinated Vulnerability Disclosure policy. Note that HTTPS is a prerequisite for all tested security options. Security headers (except for Referrer-Policy) are not relevant for domains that redirect (through a 301/302 HTTP Status Code). ',
+ test_siteappsecpriv_failed_description: 'Too bad! Not all required security options, i.e. security headers and security.txt, are set for your website (Security options). With security headers you can activate browser mechanisms to protect visitors against attacks involving, for example, cross-site scripting (XSS) or framing. Security headers are also relevant for domains with response codes such as \'301 Redirect\' and \'404 Not Found\', because they create their own browsing context (MIME type \'text/html\') that may be vulnerable to certain attacks. Through a security.txt file you can provide researchers who have found a vulnerability on your systems, with your contact information and your Coordinated Vulnerability Disclosure policy. Note that HTTPS is a prerequisite for all tested security options.',
test_siteappsecpriv_failed_summary: 'One or more required security options not set (Security options)',
- test_siteappsecpriv_info_description: 'Informational: Not all optional security options, i.e. security headers and security.txt, are set for your website (Security options). With security headers you can activate browser mechanisms to protect visitors against attacks involving, for example, cross-site scripting (XSS) or framing. Through a security.txt file you can provide researchers who have found a vulnerability on your systems, with your contact infomation and your Coordinated Vulnerability Disclosure policy. Note that HTTPS is a prerequisite for all tested security options. Security headers (except for Referrer-Policy) are not relevant for domains that redirect (through a 301/302 HTTP Status Code).',
+ test_siteappsecpriv_info_description: 'Informational: Not all optional security options, i.e. security headers and security.txt, are set for your website (Security options). With security headers you can activate browser mechanisms to protect visitors against attacks involving, for example, cross-site scripting (XSS) or framing. Security headers are also relevant for domains with HTTP response codes such as \'301 Redirect\' and \'404 Not Found\', because they create their own browsing context (MIME type \'text/html\') that may be vulnerable to certain attacks. Through a security.txt file you can provide researchers who have found a vulnerability on your systems, with your contact information and your Coordinated Vulnerability Disclosure policy. Note that HTTPS is a prerequisite for all tested security options.',
test_siteappsecpriv_info_summary: 'One or more optional security options not set (Security options)',
test_siteappsecpriv_label: 'Security options',
- test_siteappsecpriv_passed_description: 'Well done! All security options, i.e. security headers and security.txt, are set for your website (Security options). With security headers you can activate browser mechanisms to protect visitors against attacks involving, for example, cross-site scripting (XSS) or framing. Through a security.txt file you can provide researchers who have found a vulnerability on your systems, with your contact infomation and your Coordinated Vulnerability Disclosure policy. Note that HTTPS is a prerequisite for all tested security options. Security headers (except for Referrer-Policy) are not relevant for domains that redirect (through a 301/302 HTTP Status Code). ',
+ test_siteappsecpriv_passed_description: 'Well done! All security options, i.e. security headers and security.txt, are set for your website (Security options). With security headers you can activate browser mechanisms to protect visitors against attacks involving, for example, cross-site scripting (XSS) or framing. Security headers are also relevant for domains with HTTP response codes such as \'301 Redirect\' and \'404 Not Found\', because they create their own browsing context (MIME type \'text/html\') that may be vulnerable to certain attacks. Through a security.txt file you can provide researchers who have found a vulnerability on your systems, with your contact information and your Coordinated Vulnerability Disclosure policy. Note that HTTPS is a prerequisite for all tested security options.',
test_siteappsecpriv_passed_summary: 'All security options set (Security options) ',
test_siteappsecpriv_title: 'Security options set?',
- test_siteappsecpriv_warning_description: 'Warning: Not all recommended security options, , i.e. security headers and security.txt, are set for your website (Security options). With security headers you can activate browser mechanisms to protect visitors against attacks involving, for example, cross-site scripting (XSS) or framing. Through a security.txt file you can provide researchers who have found a vulnerability on your systems, with your contact infomation and your Coordinated Vulnerability Disclosure policy. Note that HTTPS is a prerequisite for all tested security options. Security headers (except for Referrer-Policy) are not relevant for domains that redirect (through a 301/302 HTTP Status Code). ',
+ test_siteappsecpriv_warning_description: 'Warning: Not all recommended security options, , i.e. security headers and security.txt, are set for your website (Security options). With security headers you can activate browser mechanisms to protect visitors against attacks involving, for example, cross-site scripting (XSS) or framing. Security headers are also relevant for domains with HTTP response codes such as \'301 Redirect\' and \'404 Not Found\', because they create their own browsing context (MIME type \'text/html\') that may be vulnerable to certain attacks. Through a security.txt file you can provide researchers who have found a vulnerability on your systems, with your contact information and your Coordinated Vulnerability Disclosure policy. Note that HTTPS is a prerequisite for all tested security options. ',
test_siteappsecpriv_warning_summary: 'One or more recommended security options not set (Security options)',
test_sitednssec_failed_description: 'Too bad! Your domain is not signed with a valid signature (DNSSEC). Therefore visitors with enabled domain signature validation, are not protected against manipulated translation from your domain into rogue internet addresses. You should ask your name server operator (often your registrar and/or hosting provider) to enable DNSSEC.',
test_sitednssec_failed_summary: 'Domain name not signed (DNSSEC)',
@@ -1653,7 +1669,9 @@ const internet_nl_messages = {
test_siteipv6_title: 'Reachable via modern address?',
test_siteipv6_warning_description: 'Too bad! Your website is not reachable for visitors using a modern internet address (IPv6), or improvement is possible. Therefore your website is not part of the modern Internet yet. You should ask your hosting provider to fully enable IPv6.',
test_siteipv6_warning_summary: 'Not reachable via modern internet address, or improvement possible (IPv6)',
- test_siterpki_failed_description: 'Too bad! At least one of the IP addresses of your web server and associated name servers has a route announcement that is not matched by the published route authorisation (RPKI). This indicates an unintentional or malicious route configuration error, that can be caused by your web hoster or your name server hoster (internal error) or by a third party (external error). In either case, it can lead to the unreachability of your server or the interception of Internet traffic to your server. Contact your web hoster or name server hoster as soon as possible. In the case of an internal error, they should ask their network provider that owns your server\'s IP addresses to fix the route configuration error.',
+ test_siterpki_error_description: 'Test not ready to run yet. Please try again later. Sorry for the inconvenience.',
+ test_siterpki_error_summary: 'Test not ready to run (RPKI)',
+ test_siterpki_failed_description: 'Too bad! At least one of the IP addresses of your web server and associated name servers has a route announcement that is not matched by the published route authorisation (RPKI). This indicates an unintentional or malicious route configuration error, that can be caused by your web hoster or your name server hoster (internal error) or by a third party (external error). In either case, it increases the risk for unreachability of your server or for interception of Internet traffic to your server. Contact your web hoster or name server hoster as soon as possible. In the case of an internal error, they should ask their network provider that owns your server\'s IP addresses to fix the route configuration error.',
test_siterpki_failed_summary: 'Unauthorised route announcement (RPKI)',
test_siterpki_info_description: 'Informational: Your domain does not contain any name servers and thus contains no web server IP addresses. There are no routable IP addresses that could be tested (RPKI).',
test_siterpki_info_summary: 'No routable IP addresses found (RPKI)',
@@ -1661,7 +1679,7 @@ const internet_nl_messages = {
test_siterpki_passed_description: 'Well done! All IP addresses of your web server and associated name servers have a route announcement that is matched by the published route authorisation (RPKI). As a result, visitors with enabled route validation are better protected against various unintentional or malicious route configuration errors, that can lead to the unreachability of your servers or the interception of Internet traffic to your servers.',
test_siterpki_passed_summary: 'Authorised route announcement (RPKI)',
test_siterpki_title: 'Route authorisation?',
- test_siterpki_warning_description: 'Warning! At least one of the IP addresses of your web server and associated name servers has a route announcement for which no route authorisation is published (RPKI). As a result, visitors with enabled route validation are not (fully) protected against various unintentional or malicious route configuration errors, that can lead to the unreachability of your servers or the interception of Internet traffic to your servers. Contact your mail hoster or name server hoster about this. They can ask their network provider that owns your server\'s IP addresses to publish routing authorizations.',
+ test_siterpki_warning_description: 'Too bad! At least one of the IP addresses of your web server and associated name servers has a route announcement for which no route authorisation is published (RPKI). As a result, visitors with enabled route validation are not (fully) protected against various unintentional or malicious route configuration errors, that can lead to the unreachability of your servers or the interception of Internet traffic to your servers. Contact your mail hoster or name server hoster about this. They can ask their network provider that owns your server\'s IP addresses to publish routing authorizations.',
test_siterpki_warning_summary: 'Route authorisation not published (RPKI)',
test_sitetls_failed_description: 'Too bad! The connection with your website is not or insufficientlysecured (HTTPS). Therefore information in transit between your website and its visitors is not sufficiently protected against eavesdropping and tampering. You should ask your hosting provider to enable HTTPS and to configure it securely.',
test_sitetls_failed_summary: 'Connection not or insufficiently secured (HTTPS)',
@@ -1671,11 +1689,11 @@ const internet_nl_messages = {
test_sitetls_passed_description: 'Well done! The connection with your website is sufficiently secured (HTTPS). Therefore information in transit between your website and its visitors is protected against eavesdropping and tampering.',
test_sitetls_passed_summary: 'Connection sufficiently secured (HTTPS)',
test_sitetls_title: 'Secure connection?',
- test_sitetls_unreachable_description: 'Your webserver was not reachable for us, making it impossible to (fully) test for HTTPS. This could be caused by network connectivity problems or by the webserver not accepting connections.',
- test_sitetls_unreachable_summary: 'Unreachable webserver (HTTPS)',
+ test_sitetls_unreachable_description: 'Your web server was not reachable for us, making it impossible to (fully) test for HTTPS. This could be caused by network connectivity problems or by the web server not accepting connections.',
+ test_sitetls_unreachable_summary: 'Unreachable web server (HTTPS)',
test_sitetls_warning_description: 'Too bad! The connection with your website is not or insufficientlysecured (HTTPS). Therefore information in transit between your website and its visitors is not sufficiently protected against eavesdropping and tampering. You should ask your hosting provider to enable HTTPS and to configure it securely.',
test_sitetls_warning_summary: 'Connection not or insufficiently secured (HTTPS)',
- widget_content_notes: '
internet.nl
to the rules for form-action
and possibly also for img-src
in case you link to the logo on our webserver.internet.nl
to the rules for form-action
and possibly also for img-src
in case you link to the logo on our web server.Would you like visitors of your website to be able to directly start an email test?
Copy the HTML and CSS code from the text fields below into the source code of your website.
NOERROR
antwoordt op onze bevragingvoor _domainkey.example.nl
. Als _domainkey.example.nl
een \'empty non-terminal\' is, dan zullen sommige nameservers die zich niet houden aan destandaard RFC 2308, foutief antwoorden met NXDOMAIN
in plaats vanNOERROR
. Dit maakt het detecteren van het DKIM-record voor ons onmogelijk.From:
) en moet gelijk zijn aan zowel het DKIM-domein (d=
) als het SPF-domein (envelope sender, d.w.z. return-path dat terugkomt in MAIL FROM
).Voor een "good practice voor domeinnamen zonder mail" zie de uitleg van de "DMARC-policy" subtest.', + detail_mail_auth_dkim_exp: '
We testen of je domeinnaam DKIM ondersteunt. Een ontvangende mailserver kande publieke sleutel in je DKIM-record gebruiken om de handtekening in eene-mail met een gebruiker van jouw domein als afzender te controleren en deauthenticiteit van de e-mail te bepalen.
NOERROR
antwoordt op onze bevragingvoor _domainkey.example.nl
. Als _domainkey.example.nl
een \'empty non-terminal\' is, dan zullen sommige nameservers die zich niet houden aan destandaard RFC 2308, foutief antwoorden met NXDOMAIN
in plaats vanNOERROR
. Dit maakt het detecteren van het DKIM-record voor ons onmogelijk.From:
) en moet gelijk zijn aan zowel het DKIM-domein (d=
) als het SPF-domein (envelope sender, d.w.z. return-path dat terugkomt in MAIL FROM
).Aanvullende opmerkingen:
simple
instelling tolereert bijna geen wijzigingen en relaxed
tolereert veel voorkomende wijzigingen. Als er geen instelling is opgegeven, wordt standaard simple
gebruikt voor zowel de header als de body. Met name headerwijzigingen zijn een veelvoorkomende oorzaak dat een DKIM-handtekening onbedoeld ongeldig wordt, waardoor de bezorgbaarheid wordt belemmerd. Het gebruik van relaxed
voor de header en simple
voor de body (c=relaxed/simple
) kan dit soort problemen verminderen.We controleren of de syntax van je DMARC-record correct is en of deze een voldoende strikte policy bevat (p=quarantine
of p=reject
) om misbruik van je domein door phishers en spammers tegen te gaan. Zelfs zonder een strikte policy kan DMARC nuttig zijn om met behulp van DMARC-rapporten meer inzicht te verkrijgen in legale en illegale uitgaande e-mailstromen. Maar om DMARC effectief te laten zijn tegen misbruik van je domein, is een liberale policy (p=none
) niet voldoende.
We controleren ook of de mailadressen onder rua=
en ruf=
geldig zijn. Als deze een extern e-mailadres bevatten dan controleren we of het externe domein geautoriseerd is om DMARC-rapportages te ontvangen. Zorg ervoor dat het DMARC-autorisatierecord op het externe domein ten minste "v=DMARC1;"
bevat.
De test staat het gebruik van de experimentele np
tag toe (RFC 9091).
Good practice voor domeinnaam zonder mail:
p=reject
) en SPF policy (-all
) voor (sub-)domeinnamen die je niet gebruikt om mail vanaf te versturen, om misbruik (\'spoofing\') tegen te gaan. Merk op dat DKIM in dit geval niet noodzakelijk is.Hieronder volgen twee basisvoorbeelden van de DNS-configuratie voor een domeinnaam die niet gebruikt wordt voor het verzenden en ontvangen van mail.
A. Enkele domeinnaam zonder A- of AAAA-record
example.nl. TXT "v=spf1 -all"*.example.nl. TXT "v=spf1 -all"_dmarc.example.nl. TXT "v=DMARC1; p=reject;"
B. Enkele domeinnaam met A- of AAAA-record
example.nl. AAAA 2a00:d78:0:712:94:198:159:35example.nl. A 94.198.159.35example.nl. MX 0 .example.nl. TXT "v=spf1 -all"*.example.nl. TXT "v=spf1 -all"www.example.nl. CNAME example.nl_dmarc.example.nl. TXT "v=DMARC1; p=reject;"
',
+ detail_mail_auth_dmarc_policy_exp: 'We controleren of de syntax van je DMARC-record correct is en of deze een voldoende strikte policy bevat (p=quarantine
of p=reject
) om misbruik van je domein door phishers en spammers tegen te gaan. Zelfs zonder een strikte policy kan DMARC nuttig zijn om met behulp van DMARC-rapporten meer inzicht te verkrijgen in legale en illegale uitgaande e-mailstromen. Maar om DMARC effectief te laten zijn tegen misbruik van je domein, is een liberale policy (p=none
) niet voldoende.
We controleren ook of de mailadressen onder rua=
en ruf=
geldig zijn. Als deze een extern e-mailadres bevatten dan controleren we of het externe domein geautoriseerd is om DMARC-rapportages te ontvangen. Zorg ervoor dat het DMARC-autorisatierecord op het externe domein ten minste "v=DMARC1;"
bevat.
De test staat het gebruik van de experimentele np
tag toe (RFC 9091).
Good practice voor domeinnaam zonder mail:
p=reject
) en SPF policy (-all
) voor (sub-)domeinnamen die je niet gebruikt om mail vanaf te versturen, om misbruik (\'spoofing\') tegen te gaan. Merk op dat DKIM in dit geval niet noodzakelijk is.Hieronder volgen twee basisvoorbeelden van de DNS-configuratie voor een domeinnaam die niet gebruikt wordt voor het verzenden en ontvangen van mail.
A. Enkele domeinnaam zonder A- of AAAA-record
example.nl. TXT "v=spf1 -all"*.example.nl. TXT "v=spf1 -all"_dmarc.example.nl. TXT "v=DMARC1; p=reject;"
B. Enkele domeinnaam met A- of AAAA-record
example.nl. AAAA 2a00:d78:0:712:94:198:159:35example.nl. A 94.198.159.35example.nl. MX 0 .example.nl. TXT "v=spf1 -all"*.example.nl. TXT "v=spf1 -all"www.example.nl. CNAME example.nl_dmarc.example.nl. TXT "v=DMARC1; p=reject;"
',
detail_mail_auth_dmarc_policy_label: 'DMARC policy',
detail_mail_auth_dmarc_policy_verdict_bad: 'Je DMARC-policy is syntactisch niet correct.',
detail_mail_auth_dmarc_policy_verdict_external: 'De domeinnaam van het mailadres na rua=
en/of ruf=
bevat geen (geldig) autorisatie-record om DMARC-rapporten te ontvangen voor de geteste domeinnaam. ',
@@ -111,7 +111,7 @@ const internet_nl_messages = {
detail_mail_dnssec_mx_exists_verdict_bad: 'Tenminste één van jouw mailserverdomeinen is onveilig oftewel \'insecure\', omdat deze niet ondertekend is met DNSSEC.',
detail_mail_dnssec_mx_exists_verdict_good: 'Al je mailserverdomeinen zijn ondertekend met DNSSEC.',
detail_mail_dnssec_mx_exists_verdict_invalid_null_mx: 'Je domeinnaam adverteert een "Null MX" record dat aangeeft dat deze geen e-mail accepteert. Echter, óf je domeinnaam heeft geen A/AAAA records, waardoor het "Null MX" record onnodig is. Óf op je domeinnaam is een ontvangende mailserver ingesteld door een ander MX record, waardoor de "Null MX" tegenstrijdig is.',
- detail_mail_dnssec_mx_exists_verdict_no_mailservers: 'Er zijn geen ontvangende mailservers (MX) ingesteld op je domeinnaam die geen A/AAAA records heeft. Dat is prima als je geen e-mail wilt ontvangen. ',
+ detail_mail_dnssec_mx_exists_verdict_no_mailservers: 'Het SPF-record op je domeinnaam geeft aan dat je domeinnaam kan worden gebruikt voor het verzenden van e-mail. Je domeinnaam heeft echter geen ontvangende mailserver (MX), wat de bezorgbaarheid van je verzonden e-mail kan belemmeren omdat het ontbreken van een MX door ontvangers kan worden gezien als een indicator voor spam. Als je daarom echt mail vanaf deze domeinnaam wilt verzenden, configureer dan een MX. Als je echter geen mail wilt versturen vanaf deze domeinnaam, configureer dan een SPF-record met alleen de term -all
en daarnaast een "Null MX" record als je domeinnaam A/AAAA-records heeft. Vanwege je configuratie zijn de subtests in de categorie STARTTLS en DANE en de mailserver-specifieke subtests in de categorieën IPv6 en DNSSEC niet van toepassing.',
detail_mail_dnssec_mx_exists_verdict_no_null_mx: 'Er zijn geen ontvangende mailservers (MX) ingesteld op je domeinnaam die wel A/AAAA records heeft. We adviseren je om duidelijk te laten zien dat je domeinnaam geen e-mail accepteert door een "Null MX" record te publiceren. Gebruik geen "Null MX"-record en stel een MX in als je wel e-mail wil verzenden vanaf deze domeinnaam, aangezien ontvangende servers e-mail met een ongeldig retouradres kunnen weigeren.',
detail_mail_dnssec_mx_exists_verdict_null_mx: 'Je domeinnaam die A/AAAA-records heeft, geeft met een "Null MX" record duidelijk aan geen e-mail te accepteren. Dat is prima als je geen e-mail wilt ontvangen. Gebruik geen "Null MX"-record en stel een MX in als je wel e-mail wil verzenden vanaf deze domeinnaam, aangezien ontvangende servers e-mail met een ongeldig retouradres kunnen weigeren.',
detail_mail_dnssec_mx_exists_verdict_null_mx_with_other_mx: 'Je domeinnaam adverteert een "Null MX" record dat aangeeft dat deze geen e-mail accepteert. Echter, op je domeinnaam is een ontvangende mailserver ingesteld door een ander MX record, waardoor de "Null MX" tegenstrijdig is.',
@@ -136,41 +136,41 @@ const internet_nl_messages = {
detail_mail_ipv6_mx_aaaa_verdict_bad: 'Tenminste één ontvangende mailserver op jouw domeinnaam heeft geen IPv6-adres.',
detail_mail_ipv6_mx_aaaa_verdict_good: 'Alle ontvangende mailservers op jouw domeinnaam hebben een IPv6-adres.',
detail_mail_ipv6_mx_aaaa_verdict_invalid_null_mx: 'Je domeinnaam adverteert een "Null MX" record dat aangeeft dat deze geen e-mail accepteert. Echter, óf je domeinnaam heeft geen A/AAAA records, waardoor het "Null MX" record onnodig is. Óf op je domeinnaam is een ontvangende mailserver ingesteld met een ander MX record, waardoor de "Null MX" tegenstrijdig is.',
- detail_mail_ipv6_mx_aaaa_verdict_no_null_mx: 'Er zijn geen ontvangende mailservers (MX) ingesteld op je domeinnaam die wel A/AAAA records heeft. We adviseren je om duidelijk te laten zien dat je domeinnaam geen e-mail accepteert door een "Null MX" record te publiceren. Gebruik geen "Null MX"-record en stel een MX in als je wel e-mail wil verzenden vanaf deze domeinnaam, aangezien ontvangende servers e-mail met een ongeldig retouradres kunnen weigeren.',
+ detail_mail_ipv6_mx_aaaa_verdict_no_null_mx: 'Er zijn geen ontvangende mailservers (MX) ingesteld op je domein dat A/AAAA-records heeft en dat een SPF-record heeft met alleen de term -all
. We raden je aan een "Null MX" record in te stellen om expliciet aan te geven dat je domein geen e-mail accepteert. Vanwege je configuratie zijn de subtests in de categorie STARTTLS en DANE en de mailserver-specifieke subtests in de categorieën IPv6 en DNSSEC niet van toepassing.',
detail_mail_ipv6_mx_aaaa_verdict_null_mx: 'Je domeinnaam die A/AAAA-records heeft, geeft met een "Null MX" record duidelijk aan geen e-mail te accepteren. Dat is prima als je geen e-mail wilt ontvangen. Gebruik geen "Null MX"-record en stel een MX in als je wel e-mail wil verzenden vanaf deze domeinnaam, aangezien ontvangende servers e-mail met een ongeldig retouradres kunnen weigeren.',
detail_mail_ipv6_mx_aaaa_verdict_null_mx_with_other_mx: 'Je domeinnaam adverteert een "Null MX" record dat aangeeft dat deze geen e-mail accepteert. Echter, op je domeinnaam is een ontvangende mailserver ingesteld door een ander MX record, waardoor de "Null MX" tegenstrijdig is.',
detail_mail_ipv6_mx_aaaa_verdict_null_mx_without_a_aaaa: 'Je domeinnaam adverteert een "Null MX" record dat aangeeft dat deze geen e-mail accepteert. Echter, je domeinnaam heeft geen A/AAAA records, waardoor het "Null MX" record onnodig is.',
- detail_mail_ipv6_mx_aaaa_verdict_other: 'Er zijn geen ontvangende mailservers (MX) ingesteld op je domeinnaam die geen A/AAAA records heeft. Dat is prima als je geen e-mail wilt ontvangen. ',
+ detail_mail_ipv6_mx_aaaa_verdict_other: 'Het SPF-record op je domeinnaam geeft aan dat je domeinnaam kan worden gebruikt voor het verzenden van e-mail. Je domeinnaam heeft echter geen ontvangende mailserver (MX), wat de bezorgbaarheid van je verzonden e-mail kan belemmeren omdat het ontbreken van een MX door ontvangers kan worden gezien als een indicator voor spam. Als je daarom echt mail vanaf deze domeinnaam wilt verzenden, configureer dan een MX. Als je echter geen mail wilt versturen vanaf deze domeinnaam, configureer dan een SPF-record met alleen de term -all
en daarnaast een "Null MX" record als je domeinnaam A/AAAA-records heeft. Vanwege je configuratie zijn de subtests in de categorie STARTTLS en DANE en de mailserver-specifieke subtests in de categorieën IPv6 en DNSSEC niet van toepassing.',
detail_mail_ipv6_mx_reach_exp: 'We testen of we je mailservers (MX) kunnen bereiken via IPv6 op poort 25. We testen alle IPv6-adressen die we ontvangen van de nameservers van je mailserverdomein(en). Een deelscore wordt gegeven als niet alle IPv6-adressen bereikbaar zijn. Als een IPv6-adres (syntactisch) ongeldig is, dan beschouwen we dat als onbereikbaar.',
detail_mail_ipv6_mx_reach_label: 'IPv6-bereikbaarheid van mailserver(s)',
detail_mail_ipv6_mx_reach_tech_table: 'Mailserver (MX)|Onbereikbaar IPv6-adres',
detail_mail_ipv6_mx_reach_verdict_bad: 'Tenminste één van je ontvangende mailservers met een IPv6-adres is niet bereikbaar via IPv6.',
detail_mail_ipv6_mx_reach_verdict_good: 'Al je ontvangende mailservers met een IPv6-adres zijn bereikbaar via IPv6.',
- detail_mail_rpki_exists_exp: 'We testen of er een RPKI Route Origin Authorisation (ROA) is gepubliceerd voor alle IP-adressen van je mailserver(s) (MX).Je hoster (of zijn netwerkprovider) kondigt via het Border Gateway Protocol (BGP) aan voor welke van zijn IP-adresblokken hij inkomend internetverkeer accepteert. Andere netwerkproviders gebruiken deze route-aankondigingen om te bepalen via welke route ze het verkeer voor de IP-adressen van je server moeten sturen.
Een route-aankondiging is echter te vervalsen. Een andere netwerkprovider kan namelijk in de positie zijn om het IP-adresblok van jouw IP-adres te koppelen aan zijn netwerk en op die manier mogelijk internetverkeer te ontvangen dat eigenlijk voor jouw netwerkprovider bedoeld is. De oorzaak kan per ongeluk of kwaadwillig zijn. In beide gevallen kan het ertoe leiden dat je server onbereikbaar is of dat internetverkeer naar uw server wordt onderschept.
Resource Public Key Infrastructure (RPKI) verbetert de bescherming hiertegen aanzienlijk. Met RPKI kan de rechtmatige houder van een blok IP-adressen namelijk een digitaal ondertekende verklaring met route-autorisatie (Route Origin Authorisation; afgekort: ROA) publiceren. Een andere netwerkprovider die internetverkeer wil sturen naar een bepaalde IP-adres, kan de bijbehorende verklaring gebruiken om ongeldige (Invalid
) routes te filteren. Daarmee voorkomt de netwerkprovider dat internetverkeer vanuit zijn netwerk naar ongeautoriseerde providernetwerken wordt gestuurd.
Niveau van vereistheid: Aanbevolen', + detail_mail_rpki_exists_exp: 'We testen of er een RPKI Route Origin Authorisation (ROA) is gepubliceerd voor alle IP-adressen van je mailserver(s) (MX).
Je hoster (of zijn netwerkprovider) kondigt via het Border Gateway Protocol (BGP) aan voor welke van zijn IP-adresblokken hij inkomend internetverkeer accepteert. Andere netwerkproviders gebruiken deze route-aankondigingen om te bepalen via welke route ze het verkeer voor de IP-adressen van je server moeten sturen.
Een route-aankondiging is echter te vervalsen. Een andere netwerkprovider kan namelijk in de positie zijn om het IP-adresblok van jouw IP-adres te koppelen aan zijn netwerk en op die manier mogelijk internetverkeer te ontvangen dat eigenlijk voor jouw netwerkprovider bedoeld is. De oorzaak kan per ongeluk of kwaadwillig zijn. In beide gevallen kan het ertoe leiden dat je server onbereikbaar is of dat internetverkeer naar uw server wordt onderschept.
Resource Public Key Infrastructure (RPKI) verbetert de bescherming hiertegen aanzienlijk. Met RPKI kan de rechtmatige houder van een blok IP-adressen namelijk een digitaal ondertekende verklaring met route-autorisatie (Route Origin Authorisation; afgekort: ROA) publiceren. Een andere netwerkprovider die internetverkeer wil sturen naar een bepaalde IP-adres, kan de bijbehorende verklaring gebruiken om ongeldige (Invalid
) routes te filteren. Daarmee voorkomt de netwerkprovider dat internetverkeer vanuit zijn netwerk naar ongeautoriseerde providernetwerken wordt gestuurd.',
detail_mail_rpki_exists_label: 'Aanwezigheid van Route Origin Authorisation',
detail_mail_rpki_exists_tech_table: 'Mailserver|IP-adres|RPKI Route Origin Authorization',
detail_mail_rpki_exists_verdict_bad: 'Voor tenminste één van de IP-adressen van je ontvangende mailserver(s) is geen RPKI Route Origin Authorisation (ROA) gepubliceerd.',
detail_mail_rpki_exists_verdict_good: 'Voor alle IP-adressen van je ontvangende mailserver(s) is een RPKI Route Origin Authorisation (ROA) gepubliceerd.',
detail_mail_rpki_exists_verdict_no_addresses: 'Je domein bevat geen ontvangende mailservers. Daarom kon deze subtest niet worden uitgevoerd.',
- detail_mail_rpki_mx_ns_exists_exp: 'We testen of er een RPKI Route Origin Authorisation (ROA) is gepubliceerd voor alle IP-adressen van de nameservers van je mailserver(s) (MX).
Je hoster (of zijn netwerkprovider) kondigt via het Border Gateway Protocol (BGP) aan voor welke van zijn IP-adresblokken hij inkomend internetverkeer accepteert. Andere netwerkproviders gebruiken deze route-aankondigingen om te bepalen via welke route ze het verkeer voor de IP-adressen van je server moeten sturen.
Een route-aankondiging is echter te vervalsen. Een andere netwerkprovider kan namelijk in de positie zijn om het IP-adresblok van jouw IP-adres te koppelen aan zijn netwerk en op die manier mogelijk internetverkeer te ontvangen dat eigenlijk voor jouw netwerkprovider bedoeld is. De oorzaak kan per ongeluk of kwaadwillig zijn. In beide gevallen kan het ertoe leiden dat je server onbereikbaar is of dat internetverkeer naar je server wordt onderschept.
Resource Public Key Infrastructure (RPKI) verbetert de bescherming hiertegen aanzienlijk. Met RPKI kan de rechtmatige houder van een blok IP-adressen namelijk een digitaal ondertekende verklaring met route-autorisatie (Route Origin Authorisation; afgekort: ROA) publiceren. Een andere netwerkprovider die internetverkeer wil sturen naar een bepaalde IP-adres, kan de bijbehorende verklaring gebruiken om ongeldige (Invalid
) routes te filteren. Daarmee voorkomt de netwerkprovider dat internetverkeer vanuit zijn netwerk naar ongeautoriseerde providernetwerken wordt gestuurd.
Niveau van vereistheid: Aanbevolen', + detail_mail_rpki_mx_ns_exists_exp: 'We testen of er een RPKI Route Origin Authorisation (ROA) is gepubliceerd voor alle IP-adressen van de nameservers van je mailserver(s) (MX).
Je hoster (of zijn netwerkprovider) kondigt via het Border Gateway Protocol (BGP) aan voor welke van zijn IP-adresblokken hij inkomend internetverkeer accepteert. Andere netwerkproviders gebruiken deze route-aankondigingen om te bepalen via welke route ze het verkeer voor de IP-adressen van je server moeten sturen.
Een route-aankondiging is echter te vervalsen. Een andere netwerkprovider kan namelijk in de positie zijn om het IP-adresblok van jouw IP-adres te koppelen aan zijn netwerk en op die manier mogelijk internetverkeer te ontvangen dat eigenlijk voor jouw netwerkprovider bedoeld is. De oorzaak kan per ongeluk of kwaadwillig zijn. In beide gevallen kan het ertoe leiden dat je server onbereikbaar is of dat internetverkeer naar je server wordt onderschept.
Resource Public Key Infrastructure (RPKI) verbetert de bescherming hiertegen aanzienlijk. Met RPKI kan de rechtmatige houder van een blok IP-adressen namelijk een digitaal ondertekende verklaring met route-autorisatie (Route Origin Authorisation; afgekort: ROA) publiceren. Een andere netwerkprovider die internetverkeer wil sturen naar een bepaalde IP-adres, kan de bijbehorende verklaring gebruiken om ongeldige (Invalid
) routes te filteren. Daarmee voorkomt de netwerkprovider dat internetverkeer vanuit zijn netwerk naar ongeautoriseerde providernetwerken wordt gestuurd.',
detail_mail_rpki_mx_ns_exists_label: 'Aanwezigheid van Route Origin Authorisation',
detail_mail_rpki_mx_ns_exists_tech_table: 'Nameserver van MX|IP-adres|RPKI Route Origin Authorization',
detail_mail_rpki_mx_ns_exists_verdict_bad: 'Voor tenminste één van de IP-adressen van de nameservers van je mailserver(s) is geen RPKI Route Origin Authorisation (ROA) gepubliceerd.',
detail_mail_rpki_mx_ns_exists_verdict_good: 'Voor alle IP-adressen van de nameservers van je mailserver(s) is een RPKI Route Origin Authorisation (ROA) gepubliceerd.',
detail_mail_rpki_mx_ns_exists_verdict_no_addresses: 'Je domein bevat geen mailservers. Daarom kon deze subtest niet worden uitgevoerd.',
- detail_mail_rpki_mx_ns_valid_exp: 'We testen of de validatie-status van alle IP-adressen van de nameservers van je mailservers (MX) Valid
is. Als er meerdere overlappende route-aankondigingen voor het IP-adres zijn, dan testen we of die allemaal Valid
zijn.
Je hoster (of zijn netwerkprovider) kondigt via het Border Gateway Protocol (BGP) aan voor welke van zijn IP-adresblokken hij inkomend internetverkeer accepteert. Dat doet hij door (delen van) zijn IP-adresblokken (Route Prefix) aan het unieke nummer van zijn providernetwerk (Route Origin ASN) te koppelen, en door deze routeringsinformatie vervolgens te verspreiden. Andere netwerkproviders gebruiken deze route-aankondigingen om te bepalen via welke route ze het verkeer voor de IP-adressen moeten sturen.
Aanvullend kan je hoster (of zijn netwerkprovider) voor iedere route-aankondiging een digitaal ondertekende verklaring met route-autorisatie (Route Origin Authorisation, afgekort: ROA) publiceren met behulp van Resource Public Key Infrastructure (RPKI).
Een andere netwerkprovider die gevraagd wordt om internetverkeer te sturen naar het IP-adres van je server, kan de bijbehorende verklaring cryptografisch controleren. De gecontroleerde inhoud (Validated ROA Payload; afgekort: VRP) omvat welke providernetwerken (VRP ASN) voor ieder opgenomen IP-adresblok (VRP Prefix) geautoriseerd zijn om internetverkeer te ontvangen.
De netwerkprovider kan deze inhoud vervolgens gebruiken om BGP-routes te filteren. Hij kan bijvoorbeeld eventuele Invalid
routes weigeren om te voorkomen dat internetverkeer vanuit zijn netwerk naar ongeautoriseerde providernetwerken wordt gestuurd.
Het vergelijken van route-aankondigingen met route-autorisaties (RPKI Origin Validation; afgekort: ROV) kent de onderstaande drie mogelijk uitkomsten.
Valid
: De route-aankondiging van het desbetreffende IP-adres wordt gematcht door tenminste één gepubliceerde route-autorisatie. Een route-autorisatie is ook matchend voor meer specifieke route-aankondigingen (d.w.z. voor een deel van het IP-adresblok dat in de route-autorisatie staat), tenzij deze meer specifiek zijn dan de limiet die in de route-autorisatie is bepaald (via het maxLength
attribuut).
Invalid
: De route-aankondiging van het desbetreffende IP-adres is wel afgedekt door een route-autorisatie, maar deze matcht niet. Er zijn twee mogelijke oorzaken:
het IP-adresblok (Route Prefix) wordt aangekondigd vanaf een providernetwerk (Route Origin ASN) dat in de route-autorisatie niet is geautoriseerd (resultaat in onderstaande tabel: "invalid (as)");
het IP-adresblok (Route Prefix) dat wordt aangekondigd is kleiner dan wordt toegestaan in de route-autorisatie, d.w.z. overschrijding van maxLength
waarde (resultaat in onderstaande tabel: "invalid (length)").
NotFound
: Er is geen verklaring met route-autorisatie gevonden die de route-aankondiging van het desbetreffende IP-adres afdekt. De routering van internetverkeer naar jouw server is daardoor minder veilig. Neem hierover contact op met je hoster. Deze kan zijn netwerkprovider die eigenaar is van de IP-adressen van je server vragen om route-autorisaties te publiceren.
Wat te doen als het testresultaat de status Invalid toont?
De status Invalid
duidt op een onbedoelde of kwaadwillige route-configuratiefout, die wordt veroorzaakt door je hoster of zijn netwerkprovider (interne fout) óf door een derde partij (externe fout). In beide gevallen kan het leiden tot de onbereikbaarheid van je server of het onderscheppen van internetverkeer naar je server. Neem zo spoedig mogelijk contact op met je hoster. Bij een interne fout moet je hoster zijn netwerkprovider die eigenaar is van de IP-adressen van je server, vragen om de route-configuratiefout te herstellen.
Niveau van vereistheid: Aanbevolen',
+ detail_mail_rpki_mx_ns_valid_exp: 'We testen of de validatie-status van alle IP-adressen van de nameservers van je mailservers (MX) Valid
is. Als er meerdere overlappende route-aankondigingen voor het IP-adres zijn, dan testen we of die allemaal Valid
zijn.
Je hoster (of zijn netwerkprovider) kondigt via het Border Gateway Protocol (BGP) aan voor welke van zijn IP-adresblokken hij inkomend internetverkeer accepteert. Dat doet hij door (delen van) zijn IP-adresblokken (Route Prefix) aan het unieke nummer van zijn providernetwerk (Route Origin ASN) te koppelen, en door deze routeringsinformatie vervolgens te verspreiden. Andere netwerkproviders gebruiken deze route-aankondigingen om te bepalen via welke route ze het verkeer voor de IP-adressen moeten sturen.
Aanvullend kan je hoster (of zijn netwerkprovider) voor iedere route-aankondiging een digitaal ondertekende verklaring met route-autorisatie (Route Origin Authorisation, afgekort: ROA) publiceren met behulp van Resource Public Key Infrastructure (RPKI).
Een andere netwerkprovider die gevraagd wordt om internetverkeer te sturen naar het IP-adres van je server, kan de bijbehorende verklaring cryptografisch controleren. De gecontroleerde inhoud (Validated ROA Payload; afgekort: VRP) omvat welke providernetwerken (VRP ASN) voor ieder opgenomen IP-adresblok (VRP Prefix) geautoriseerd zijn om internetverkeer te ontvangen.
De netwerkprovider kan deze inhoud vervolgens gebruiken om BGP-routes te filteren. Hij kan bijvoorbeeld eventuele Invalid
routes weigeren om te voorkomen dat internetverkeer vanuit zijn netwerk naar ongeautoriseerde providernetwerken wordt gestuurd.
Het vergelijken van route-aankondigingen met route-autorisaties (RPKI Origin Validation; afgekort: ROV) kent de onderstaande drie mogelijk uitkomsten.
1․ Valid
: De route-aankondiging van het desbetreffende IP-adres wordt gematcht door tenminste één gepubliceerde route-autorisatie. Een route-autorisatie is ook matchend voor meer specifieke route-aankondigingen (d.w.z. voor een deel van het IP-adresblok dat in de route-autorisatie staat), tenzij deze meer specifiek zijn dan de limiet die in de route-autorisatie is bepaald (via het maxLength
attribuut).
2․ Invalid
: De route-aankondiging van het desbetreffende IP-adres is wel afgedekt door een route-autorisatie, maar deze matcht niet. Er zijn twee mogelijke oorzaken:
maxLength
waarde (resultaat in onderstaande tabel: "invalid (length)").3․ NotFound
: Er is geen verklaring met route-autorisatie gevonden die de route-aankondiging van het desbetreffende IP-adres afdekt. De routering van internetverkeer naar jouw server is daardoor minder veilig. Neem hierover contact op met je hoster. Deze kan zijn netwerkprovider die eigenaar is van de IP-adressen van je server vragen om route-autorisaties te publiceren.
Wat te doen als het testresultaat de status Invalid toont?
De status Invalid
duidt op een onbedoelde of kwaadwillige route-configuratiefout, die wordt veroorzaakt door je hoster of zijn netwerkprovider (interne fout) óf door een derde partij (externe fout). In beide gevallen verhoogt dit het risico dat je server onbereikbaar wordt of dat internetverkeer naar je server wordt onderschept. Neem zo spoedig mogelijk contact op met je hoster. Bij een interne fout moet je hoster zijn netwerkprovider die eigenaar is van de IP-adressen van je server, vragen om de route-configuratiefout te herstellen. ',
detail_mail_rpki_mx_ns_valid_label: 'Geldigheid van route-aankondiging',
detail_mail_rpki_mx_ns_valid_tech_table: 'Nameserver van MX|BGP Route Prefix|BGP Route Origin ASN|RPKI Origin Validation status',
detail_mail_rpki_mx_ns_valid_verdict_bad: 'Ten minste één IP-adres van de nameservers van je ontvangende mailservers heeft een NotFound
validatie-status. Er is geen RPKI Route Origin Authorization (ROA) gepubliceerd voor de route-aankondiging van ieder van de desbetreffende IP-adressen.',
detail_mail_rpki_mx_ns_valid_verdict_good: 'Alle IP-adressen van de nameservers van je ontvangende mailservers hebben een Valid
validatie-status. De route-aankondiging van deze IP-adressen wordt gematcht door de gepubliceerde RPKI Route Origin Authorisation (ROA).',
- detail_mail_rpki_mx_ns_valid_verdict_invalid: 'Tenminste één IP-adres van de nameservers van je ontvangende mailservers heeft een Invalid
validatie-status. De route-aankondiging van de desbetreffende IP-adressen wordt niet gematcht door de gepubliceerde RPKI Route Origin Authorisation (ROA). Dit duidt op een onbedoelde of kwaadwillige route-configuratiefout, die wordt veroorzaakt door je mailhoster (interne fout) óf door een derde partij (externe fout). In beide gevallen kan het leiden tot de onbereikbaarheid van je server of het onderscheppen van internetverkeer naar je server. Neem zo spoedig mogelijk contact op met je mailhoster. Bij een interne fout moet je mailhoster zijn netwerkprovider die eigenaar is van de IP-adressen van je server, vragen om de route-configuratiefout te herstellen.',
+ detail_mail_rpki_mx_ns_valid_verdict_invalid: 'Tenminste één IP-adres van de nameservers van je ontvangende mailservers heeft een Invalid
validatie-status. De route-aankondiging van de desbetreffende IP-adressen wordt niet gematcht door de gepubliceerde RPKI Route Origin Authorisation (ROA). Dit duidt op een onbedoelde of kwaadwillige route-configuratiefout, die wordt veroorzaakt door je mailhoster (interne fout) óf door een derde partij (externe fout). In beide gevallen verhoogt dit het risico dat je server onbereikbaar wordt of dat internetverkeer naar je server wordt onderschept. Neem zo spoedig mogelijk contact op met je mailhoster. Bij een interne fout moet je mailhoster zijn netwerkprovider die eigenaar is van de IP-adressen van je server, vragen om de route-configuratiefout te herstellen.',
detail_mail_rpki_mx_ns_valid_verdict_not_routed: 'Deze subtest werd niet uitgevoerd, omdat er voor geen van de IP-adressen een route-aankondiging beschikbaar was.',
- detail_mail_rpki_valid_exp: 'We testen of de validatie-status van alle IP-adressen van je mailservers (MX) Valid
is. Als er meerdere overlappende route-aankondigingen voor het IP-adres zijn, dan testen we of die allemaal Valid
zijn.
Je hoster (of zijn netwerkprovider) kondigt via het Border Gateway Protocol (BGP) aan voor welke van zijn IP-adresblokken hij inkomend internetverkeer accepteert. Dat doet hij door (delen van) zijn IP-adresblokken (Route Prefix) aan het unieke nummer van zijn providernetwerk (Route Origin ASN) te koppelen, en door deze routeringsinformatie vervolgens te verspreiden. Andere netwerkproviders gebruiken deze route-aankondigingen om te bepalen via welke route ze het verkeer voor de IP-adressen moeten sturen.
Aanvullend kan je hoster (of zijn netwerkprovider) voor iedere route-aankondiging een digitaal ondertekende verklaring met route-autorisatie (Route Origin Authorisation, afgekort: ROA) publiceren met behulp van Resource Public Key Infrastructure (RPKI).
Een andere netwerkprovider die gevraagd wordt om internetverkeer te sturen naar het IP-adres van je server, kan de bijbehorende verklaring cryptografisch controleren. De gecontroleerde inhoud (Validated ROA Payload; afgekort: VRP) omvat welke providernetwerken (VRP ASN) voor ieder opgenomen IP-adresblok (VRP Prefix) geautoriseerd zijn om internetverkeer te ontvangen.
De netwerkprovider kan deze inhoud vervolgens gebruiken om BGP-routes te filteren. Hij kan bijvoorbeeld eventuele Invalid
routes weigeren om te voorkomen dat internetverkeer vanuit zijn netwerk naar ongeautoriseerde providernetwerken wordt gestuurd.
Het vergelijken van route-aankondigingen met route-autorisaties (RPKI Origin Validation; afgekort: ROV) kent de onderstaande drie mogelijk uitkomsten.
Valid
: De route-aankondiging van het desbetreffende IP-adres wordt gematcht door tenminste één gepubliceerde route-autorisatie. Een route-autorisatie is ook matchend voor meer specifieke route-aankondigingen (d.w.z. voor een deel van het IP-adresblok dat in de route-autorisatie staat), tenzij deze meer specifiek zijn dan de limiet die in de route-autorisatie is bepaald (via het maxLength
attribuut).
Invalid
: De route-aankondiging van het desbetreffende IP-adres is wel afgedekt door een route-autorisatie, maar deze matcht niet. Er zijn twee mogelijke oorzaken:
het IP-adresblok (Route Prefix) wordt aangekondigd vanaf een providernetwerk (Route Origin ASN) dat in de route-autorisatie niet is geautoriseerd (resultaat in onderstaande tabel: "invalid (as)");
het IP-adresblok (Route Prefix) dat wordt aangekondigd is kleiner dan wordt toegestaan in de route-autorisatie, d.w.z. overschrijding van maxLength
waarde (resultaat in onderstaande tabel: "invalid (length)").
NotFound
: Er is geen verklaring met route-autorisatie gevonden die de route-aankondiging van het desbetreffende IP-adres afdekt. De routering van internetverkeer naar jouw server is daardoor minder veilig. Neem hierover contact op met je hoster. Deze kan zijn netwerkprovider die eigenaar is van de IP-adressen van je server vragen om route-autorisaties te publiceren.
Wat te doen als het testresultaat de status Invalid toont?
De status Invalid
duidt op een onbedoelde of kwaadwillige route-configuratiefout, die wordt veroorzaakt door je hoster of zijn netwerkprovider (interne fout) óf door een derde partij (externe fout). In beide gevallen kan het leiden tot de onbereikbaarheid van je server of het onderscheppen van internetverkeer naar je server. Neem zo spoedig mogelijk contact op met je hoster. Bij een interne fout moet je hoster zijn netwerkprovider die eigenaar is van de IP-adressen van je server, vragen om de route-configuratiefout te herstellen.
Niveau van vereistheid: Aanbevolen',
+ detail_mail_rpki_valid_exp: 'We testen of de validatie-status van alle IP-adressen van je mailservers (MX) Valid
is. Als er meerdere overlappende route-aankondigingen voor het IP-adres zijn, dan testen we of die allemaal Valid
zijn.
Je hoster (of zijn netwerkprovider) kondigt via het Border Gateway Protocol (BGP) aan voor welke van zijn IP-adresblokken hij inkomend internetverkeer accepteert. Dat doet hij door (delen van) zijn IP-adresblokken (Route Prefix) aan het unieke nummer van zijn providernetwerk (Route Origin ASN) te koppelen, en door deze routeringsinformatie vervolgens te verspreiden. Andere netwerkproviders gebruiken deze route-aankondigingen om te bepalen via welke route ze het verkeer voor de IP-adressen moeten sturen.
Aanvullend kan je hoster (of zijn netwerkprovider) voor iedere route-aankondiging een digitaal ondertekende verklaring met route-autorisatie (Route Origin Authorisation, afgekort: ROA) publiceren met behulp van Resource Public Key Infrastructure (RPKI).
Een andere netwerkprovider die gevraagd wordt om internetverkeer te sturen naar het IP-adres van je server, kan de bijbehorende verklaring cryptografisch controleren. De gecontroleerde inhoud (Validated ROA Payload; afgekort: VRP) omvat welke providernetwerken (VRP ASN) voor ieder opgenomen IP-adresblok (VRP Prefix) geautoriseerd zijn om internetverkeer te ontvangen.
De netwerkprovider kan deze inhoud vervolgens gebruiken om BGP-routes te filteren. Hij kan bijvoorbeeld eventuele Invalid
routes weigeren om te voorkomen dat internetverkeer vanuit zijn netwerk naar ongeautoriseerde providernetwerken wordt gestuurd.
Het vergelijken van route-aankondigingen met route-autorisaties (RPKI Origin Validation; afgekort: ROV) kent de onderstaande drie mogelijk uitkomsten.
1․ Valid
: De route-aankondiging van het desbetreffende IP-adres wordt gematcht door tenminste één gepubliceerde route-autorisatie. Een route-autorisatie is ook matchend voor meer specifieke route-aankondigingen (d.w.z. voor een deel van het IP-adresblok dat in de route-autorisatie staat), tenzij deze meer specifiek zijn dan de limiet die in de route-autorisatie is bepaald (via het maxLength
attribuut).
2․ Invalid
: De route-aankondiging van het desbetreffende IP-adres is wel afgedekt door een route-autorisatie, maar deze matcht niet. Er zijn twee mogelijke oorzaken:
maxLength
waarde (resultaat in onderstaande tabel: "invalid (length)").3․ NotFound
: Er is geen verklaring met route-autorisatie gevonden die de route-aankondiging van het desbetreffende IP-adres afdekt. De routering van internetverkeer naar jouw server is daardoor minder veilig. Neem hierover contact op met je hoster. Deze kan zijn netwerkprovider die eigenaar is van de IP-adressen van je server vragen om route-autorisaties te publiceren.
Wat te doen als het testresultaat de status Invalid toont?
De status Invalid
duidt op een onbedoelde of kwaadwillige route-configuratiefout, die wordt veroorzaakt door je hoster of zijn netwerkprovider (interne fout) óf door een derde partij (externe fout). In beide gevallen verhoogt dit het risico dat je server onbereikbaar wordt of dat internetverkeer naar je server wordt onderschept. Neem zo spoedig mogelijk contact op met je hoster. Bij een interne fout moet je hoster zijn netwerkprovider die eigenaar is van de IP-adressen van je server, vragen om de route-configuratiefout te herstellen. ',
detail_mail_rpki_valid_label: 'Geldigheid van route-aankondiging',
detail_mail_rpki_valid_tech_table: 'Mailserver|BGP Route Prefix|BGP Route Origin ASN|RPKI Origin Validation status',
detail_mail_rpki_valid_verdict_bad: 'Ten minste één IP-adres van je ontvangende mailservers heeft een NotFound
validatie-status. Er is geen RPKI Route Origin Authorization (ROA) gepubliceerd voor de route-aankondiging van ieder van de desbetreffende IP-adressen.',
detail_mail_rpki_valid_verdict_good: 'Alle IP-adressen van je ontvangende mailservers hebben een Valid
validatie-status. De route-aankondiging van deze IP-adressen wordt gematcht door de gepubliceerde RPKI Route Origin Authorisation (ROA).',
- detail_mail_rpki_valid_verdict_invalid: 'Tenminste één IP-adres van je ontvangende mailservers heeft een Invalid
validatie-status. De route-aankondiging van de desbetreffende IP-adressen wordt niet gematcht door de gepubliceerde RPKI Route Origin Authorisation (ROA). Dit duidt op een onbedoelde of kwaadwillige route-configuratiefout, die wordt veroorzaakt door je mailhoster (interne fout) óf door een derde partij (externe fout). In beide gevallen kan het leiden tot de onbereikbaarheid van je server of het onderscheppen van internetverkeer naar je server. Neem zo spoedig mogelijk contact op met je mailhoster. Bij een interne fout moet je mailhoster zijn netwerkprovider die eigenaar is van de IP-adressen van je server, vragen om de route-configuratiefout te herstellen.',
+ detail_mail_rpki_valid_verdict_invalid: 'Tenminste één IP-adres van je ontvangende mailservers heeft een Invalid
validatie-status. De route-aankondiging van de desbetreffende IP-adressen wordt niet gematcht door de gepubliceerde RPKI Route Origin Authorisation (ROA). Dit duidt op een onbedoelde of kwaadwillige route-configuratiefout, die wordt veroorzaakt door je mailhoster (interne fout) óf door een derde partij (externe fout). In beide gevallen verhoogt dit het risico dat je server onbereikbaar wordt of dat internetverkeer naar je server wordt onderschept. Neem zo spoedig mogelijk contact op met je mailhoster. Bij een interne fout moet je mailhoster zijn netwerkprovider die eigenaar is van de IP-adressen van je server, vragen om de route-configuratiefout te herstellen.',
detail_mail_rpki_valid_verdict_not_routed: 'Deze subtest werd niet uitgevoerd, omdat er voor geen van de IP-adressen een route-aankondiging beschikbaar was.',
detail_mail_tls_cert_hostmatch_exp: 'We testen of de domeinnaam van ieder van je ontvangende mailservers (MX) overeenkomt met de domeinnaam op het gepresenteerde certificaat.
Verzendende mailservers negeren doorgaans het domein op het certificaat. Zonder DNSSEC is de opvraging van het mailserverdomein kwetsbaar voor manipulatie. Daardoor voegt de controle of de domeinnaam op het certificaat overeenkomt met het mailserverdomeinnaam geen enkele authenticiteitswaarde toe. Ontvangende mailservers gebruiken daarom regelmatig zelf-ondertekende certificaten, vaak uitgegeven door een interne (private) certificaatautoriteit.
Voor authenticiteit dient een mailserver gebruikt te maken van DNSSEC en DANE. Een certificaat met domeinnaam die overeenkomt met de domeinnaam van je mailserver is alleen vereist als je gebruik maakt van DANE \'trust anchor assertion\' (DANE-TA, 2).
Zie \'ICT-beveiligingsrichtlijnen voor Transport Layer Security (TLS) v2.1\' van NCSC, richtlijn B3-1.
Niveau van vereistheid: Optioneel / Vereist (alleen als DANE-TA wordt gebruikt)', detail_mail_tls_cert_hostmatch_label: 'Domeinnaam op certificaat', @@ -193,7 +193,7 @@ const internet_nl_messages = { detail_mail_tls_cert_trust_tech_table: 'Mailserver (MX)|Onvertrouwde certificaatketen', detail_mail_tls_cert_trust_verdict_bad: 'De vertrouwensketen van tenminste één van je mailserver-certificaten is niet compleet en/of niet ondertekend door een vertrouwde certificaatautoriteit.', detail_mail_tls_cert_trust_verdict_good: 'De vertrouwensketen van al je mailserver-certificaten is compleet én ondertekend door een vertrouwde certificaatautoriteit.', - detail_mail_tls_cipher_order_exp: 'We testen of je ontvangende mailservers (MX) hun eigen cipher-voorkeur afdwingen (\'I\'), en ciphers aanbieden conform de voorgeschreven volgorde (\'II\').
Als je mailserver alleen \'Goede\' ciphers ondersteunt, dan is deze test niet van toepassing omdat de volgorde dan geen significant beveiligingsvoordeel oplevert.
I. Server afgedwongen cipher-volgorde: Ontvangende mailservers dwingen hun cipher-voorkeur af tijdens de onderhandeling met verzendende mailservers, en accepteren geen voorkeur van de verzendende mailservers;
II. Voorgeschreven volgorde: Ciphers worden aangeboden door de ontvangende mailservers in overeenstemming met de voorgeschreven volgorde waarbij Goede boven Voldoende boven Uit te faseren ciphers worden geprefereerd.
In de bovenstaande tabel met technische details staan alleen de eerst gevonden algoritmeselecties die niet voldoen aan de voorgeschreven volgorde.
Zie \'ICT-beveiligingsrichtlijnen voor Transport Layer Security (TLS) v2.1\' van NCSC, richtlijn B2-5.', + detail_mail_tls_cipher_order_exp: 'We testen of je ontvangende mailservers (MX) hun eigen cipher-voorkeur afdwingen (\'I\'), en ciphers aanbieden conform de voorgeschreven volgorde (\'II\').
Als je mailserver alleen \'Goede\' ciphers ondersteunt, dan is deze test niet van toepassing omdat de volgorde dan geen significant beveiligingsvoordeel oplevert.
I. Server afgedwongen cipher-voorkeur: Ontvangende mailservers dwingen hun cipher-voorkeur af tijdens de onderhandeling met verzendende mailservers, en accepteren geen voorkeur van de verzendende mailservers;
II. Voorgeschreven volgorde: Ciphers worden aangeboden door de ontvangende mailservers in overeenstemming met de voorgeschreven volgorde waarbij Goede boven Voldoende boven Uit te faseren ciphers worden geprefereerd.
In de bovenstaande tabel met technische details staan alleen de eerst gevonden algoritmeselecties die niet voldoen aan de voorgeschreven volgorde.
Zie \'ICT-beveiligingsrichtlijnen voor Transport Layer Security (TLS) v2.1\' van NCSC, richtlijn B2-5.', detail_mail_tls_cipher_order_label: 'Cipher-volgorde', detail_mail_tls_cipher_order_tech_table: 'Mail server (MX)|Eerst gevonden getroffen cipher-paren|Overtreden regel # (\'II-B\')', detail_mail_tls_cipher_order_verdict_bad: 'Tenminste één van je mailservers dwingt niet zijn eigen cipher-voorkeur af (\'I\').', @@ -218,7 +218,7 @@ const internet_nl_messages = { detail_mail_tls_dane_exists_verdict_bad: 'Tenminste één van je mailserverdomeinen bevat geen TLSA-record voor DANE.', detail_mail_tls_dane_exists_verdict_bogus: 'Tenminste één van je mailserverdomeinen bevat geen DNSSEC-bewijs dat DANE TLSA-records niet bestaan. Dit kan leiden tot afleveringsproblemen van mail die aan aan jou gericht is door DANE-validerende mailverstuurders. Vraag je nameserver-beheerder om deze fout op te lossen.', detail_mail_tls_dane_exists_verdict_good: 'Al je mailserverdomeinen bevatten een TLSA-record voor DANE.', - detail_mail_tls_dane_rollover_exp: 'We testen of er een actief schema met tenminste twee DANE TLSA records is om de vervanging van certificaten op je ontvangende mailservers (MX) betrouwbaar te kunnen uitvoeren.
Een dergelijk schema is vooral handig bij het vervangen van je mailserver-certificaten. Het kan voorkomen dat DANE tijdens de vervangingsperiode ongeldig raakt waardoor aan jouw domein gerichte mail niet afgeleverd wordt. Een vervangingsschema voor DANE kan maar hoeft niet continu \'actief\' te zijn.
We adviseren je om één van de twee volgende schema\'s met dubbele DANE TLSA records toe te passen:
Deze subtest accepteert ook andere combinaties van DANE TLSA records, d.w.z. "3 x x" + "3 x x" of "3 x x" + "2 x x". Andere typen dan de bovengenoemde zijn in de regel gevoeliger voor fouten en minder interoperabel.
Niveau van vereistheid: Optioneel', + detail_mail_tls_dane_rollover_exp: 'We testen of er een actief schema met tenminste twee DANE TLSA records is om de vervanging van certificaten op je ontvangende mailservers (MX) betrouwbaar te kunnen uitvoeren.
Een dergelijk schema is vooral handig bij het vervangen van je mailserver-certificaten. Het kan voorkomen dat DANE tijdens de vervangingsperiode ongeldig raakt waardoor aan jouw domein gerichte mail niet afgeleverd wordt. Een vervangingsschema voor DANE kan maar hoeft niet continu \'actief\' te zijn.
We adviseren je om één van de twee volgende schema\'s met dubbele DANE TLSA records toe te passen:
Deze subtest accepteert ook andere combinaties van DANE TLSA records, d.w.z. "3 x x" + "3 x x" of "3 x x" + "2 x x". Andere typen dan de bovengenoemde zijn in de regel gevoeliger voor fouten en minder interoperabel.
Merk op dat als een mailserver tegelijkertijd twee certificaten aanbiedt (één gebaseerd op RSA en één gebaseerd op ECDSA), een afzonderlijk DANE TLSA rollover schema wordt aanbevolen voor ieder certificaat. De subtest controleert niet op dit scenario. Als er slechts één DANE TLSA-record is geconfigureerd voor elk certificaat, dan geeft deze subtest een vals-positief resultaat.
Niveau van vereistheid: Optioneel', detail_mail_tls_dane_rollover_label: 'DANE-vervangingsschema', detail_mail_tls_dane_rollover_tech_table: 'Mailserver (MX)|DANE-vervangingsschema', detail_mail_tls_dane_rollover_verdict_bad: 'Tenminste een van je mailserver-domeinen heeft geen actief DANE-schema voor het betrouwbaar vervangen van certificaat-sleutels.', @@ -228,7 +228,7 @@ const internet_nl_messages = { detail_mail_tls_dane_valid_tech_table: 'Mailserver (MX)|DANE TLSA-record geldig', detail_mail_tls_dane_valid_verdict_bad: 'Tenminste één van je mailservers heeft geen geldige DANE-fingerprints. Óf iemand manipuleerde het antwoord van je mailserver, óf je mailserver heeft een ernstige DANE-configuratiefout. Dit laatste maakt je domeinnaam onbereikbaar voor verzendende mailservers die DANE-fingerprints controleren. Neem zo spoedig mogelijk contact op met je mailprovider.', detail_mail_tls_dane_valid_verdict_good: 'Ieder van je mailservers heeft tenminste één geldige DANE-fingerprint. Daardoor kunnen verzendende mailservers die DANE-verificatie ondersteunen, een geauthenticeerde versleutelde transportverbinding met je ontvangende mailserver(s) opzetten.', - detail_mail_tls_fs_params_exp: 'We testen of de publieke parameters, die in de Diffie-Hellman sleuteluitwisseling worden gebruikt door je mailservers (MX), veilig zijn.
ECDHE: De veiligheid van de ECDHE-sleuteluitwisseling is afhankelijk van de geselecteerde elliptische kromme. We testen of de bitlengte van de gebruikte kromme tenminste 224 bits is. Op dit moment kunnen we niet de naam van de elliptische kromme testen.
DHE: De veiligheid van de Diffie-Hellman Ephemeral (DHE) sleuteluitwisseling is afhankelijk van de lengte van de publieke en geheime sleutels die in de geselecteerde finite field-groep wordt gebruikt. We testen of je publieke DHE-sleutelmateriaal gebruikmaakt van een van de gepredefinieerde finite field-groepen die zijn gespecificeerd in RFC 7919. Zelf-gegenereerde groepen zijn \'Onvoldoende\'.
De grotere sleutellengtes die noodzakelijk zijn voor het gebruik van DHE gaan ten koste van de prestaties. Maak een zorgvuldige afweging en gebruik waar mogelijk ECDHE in plaats van DHE.
RSA als alternatief: Naast ECDHE en DHE, kan RSA gebruikt worden voor sleuteluitwisseling. RSA loopt het risico om onvoldoende veilig te worden (huidige status \'Uit te faseren\'). De publieke RSA-parameters worden getest in de subtest \'Handtekening-parameters van certificaat\'. Overigens heeft RSA voor certificaatverificatie wel de status \'Goed\'.
Zie \'ICT-beveiligingsrichtlijnen voor Transport Layer Security (TLS) v2.1\' van NCSC, richtlijn B5-1 en tabel 9 voor ECDHE, en richtlijn B6-1 en tabel 10 voor DHE.
Elliptische krommen voor ECDHE
secp384r1
, secp256r1
, x448
, en x25519
secp224r1
Finite field-groepen voor DHE
Voldoende:
64852d6890ff9e62eecd1ee89c72af9af244dfef5b853bcedea3dfd7aade22b3
c410cc9c4fd85d2c109f7ebe5930ca5304a52927c0ebcb1a11c5cf6b2386bbab
Uit te faseren:
9ba6429597aeed2d8617a7705b56e96d044f64b07971659382e426675105654b
Onvoldoende: Andere groepen
Let op: de bovenstaande namen zijn gebaseerd op de IANA naamgevingsconventies. Soms worden alternatieve namen gebruikt om te verwijzen naar dezelfde krommen, zoals prime256v1
(ANSI) en NIST P-256
voor secp256r1
.',
+ detail_mail_tls_fs_params_exp: 'We testen of de publieke parameters, die in de Diffie-Hellman sleuteluitwisseling worden gebruikt door je mailservers (MX), veilig zijn.
ECDHE: De veiligheid van de ECDHE-sleuteluitwisseling is afhankelijk van de geselecteerde elliptische kromme. We testen of de bitlengte van de gebruikte kromme tenminste 224 bits is. Op dit moment kunnen we niet de naam van de elliptische kromme testen.
DHE: De veiligheid van de Diffie-Hellman Ephemeral (DHE) sleuteluitwisseling is afhankelijk van de lengte van de publieke en geheime sleutels die in de geselecteerde finite field-groep wordt gebruikt. We testen of je publieke DHE-sleutelmateriaal gebruikmaakt van een van de gepredefinieerde finite field-groepen die zijn gespecificeerd in RFC 7919. Zelf-gegenereerde groepen zijn \'Onvoldoende\'.
De grotere sleutellengtes die noodzakelijk zijn voor het gebruik van DHE gaan ten koste van de prestaties. Maak een zorgvuldige afweging en gebruik waar mogelijk ECDHE in plaats van DHE.
RSA als alternatief: Naast ECDHE en DHE, kan RSA gebruikt worden voor sleuteluitwisseling. RSA loopt het risico om onvoldoende veilig te worden (huidige status \'Uit te faseren\'). De publieke RSA-parameters worden getest in de subtest \'Handtekening-parameters van certificaat\'. Overigens heeft RSA voor certificaatverificatie wel de status \'Goed\'.
Zie \'ICT-beveiligingsrichtlijnen voor Transport Layer Security (TLS) v2.1\' van NCSC, richtlijn B5-1 en tabel 9 voor ECDHE, en richtlijn B6-1 en tabel 10 voor DHE.
Elliptische krommen voor ECDHE
secp384r1
, secp256r1
, x448
, en x25519
secp224r1
Finite field-groepen voor DHE
Voldoende:
64852d6890ff9e62eecd1ee89c72af9af244dfef5b853bcedea3dfd7aade22b3
c410cc9c4fd85d2c109f7ebe5930ca5304a52927c0ebcb1a11c5cf6b2386bbab
Uit te faseren:
Onvoldoende: Andere groepen
Let op: de bovenstaande namen zijn gebaseerd op de IANA naamgevingsconventies. Soms worden alternatieve namen gebruikt om te verwijzen naar dezelfde krommen, zoals prime256v1
(ANSI) en NIST P-256
voor secp256r1
.',
detail_mail_tls_fs_params_label: 'Sleuteluitwisselingsparameters',
detail_mail_tls_fs_params_tech_table: 'Mailserver (MX)|Getroffen parameters|Veiligheidsniveau',
detail_mail_tls_fs_params_verdict_bad: 'Tenminste één van je mailservers ondersteunt onvoldoende veilige parameters voor Diffie-Hellman-sleuteluitwisseling.',
@@ -247,7 +247,7 @@ const internet_nl_messages = {
detail_mail_tls_ocsp_stapling_verdict_bad: 'OUTDATED TEXT; TEST NOT USED
TODO',
detail_mail_tls_ocsp_stapling_verdict_good: 'OUTDATED TEXT; TEST NOT USED
TODO',
detail_mail_tls_ocsp_stapling_verdict_ok: 'OUTDATED TEXT; TEST NOT USED
TODO',
- detail_mail_tls_renegotiation_client_exp: '
We testen of een verzendende mailserver een renegotiation kan initiëren met jouw ontvangende mailservers (MX).
In het algemeen is het niet nodig om clients de mogelijkheid te bieden om een renegotiation te initiëren (client-initiated renegotiation). Bovendien komt een ontvangende mailserver hierdoor binnen een TLS-verbinding bloot te staan aan DoS-aanvallen. Een aanvaller kan ook zonder renegotiation op initiatief van een client soortgelijke DoS-aanvallen uitvoeren door veel parallelle TLS-verbindingen te openen. Dergelijke aanvallen zijn echter eenvoudiger te traceren en met de standaardmaatregelen te mitigeren. Merk op dat client-initiated renegotiation impact heeft op de beschikbaarheid en niet op de vertrouwelijkheid.
Zie \'ICT-beveiligingsrichtlijnen voor Transport Layer Security (TLS) v2.1\' van NCSC, richtlijn 8-1 en tabel 13.
Niveau van vereistheid: Optioneel
Client-initiated renegotiation
We testen of een verzendende mailserver een renegotiation kan initiëren met jouw ontvangende mailservers (MX).
In het algemeen is het niet nodig om clients de mogelijkheid te bieden om een renegotiation te initiëren (client-initiated renegotiation). Bovendien komt een ontvangende mailserver hierdoor binnen een TLS-verbinding bloot te staan aan DoS-aanvallen. Een aanvaller kan ook zonder renegotiation op initiatief van een client soortgelijke DoS-aanvallen uitvoeren door veel parallelle TLS-verbindingen te openen. Dergelijke aanvallen zijn echter eenvoudiger te traceren en met de standaardmaatregelen te mitigeren. Merk op dat client-initiated renegotiation impact heeft op de beschikbaarheid en niet op de vertrouwelijkheid.
Zie \'ICT-beveiligingsrichtlijnen voor Transport Layer Security (TLS) v2.1\' van NCSC, richtlijn 8-1 en tabel 13.
Niveau van vereistheid: Optioneel
Client-initiated renegotiation
Vanwege performance-redenen worden maximaal tien mailservers via of IPv6 of IPv4 getest voor STARTTLS en DANE.
Merk op dat de e-mailtest niet terugvalt op A/AAAA-records voor mailservers in geval van afwezigheid van een MX-record.
Niet ontvangende domeinnaam:
Geen MX: In het geval dat je domein geen A/AAAA-records heeft en je er geen mail op wenst te ontvangen, adviseren we je om helemaal geen MX-record te configureren (dus ook geen "Null MX" record).
Als we een van de twee bovenstaande gevallen ontdekken, zijn de subtesten in de STARTTLS- en DANE-categorie niet van toepassing. Dit geldt ook voor de mailserver-specifieke subtests in de categorieën voor IPv6 en DNSSEC. Andere subtesten van de e-mailtest (bijv. voor DMARC) zijn nog steeds van toepassing.
Voor een "good practice voor domeinnamen zonder mail" zie de uitleg van de "DMARC-policy" subtest.', + detail_mail_tls_starttls_exists_exp: 'We testen of je ontvangende mailservers (MX) ondersteuning bieden voor STARTTLS. Als dat het geval is, dan testen we in de subtesten van deze testcategorie of STARTTLS ook voldoende veilig is geconfigureerd.
Vanwege performance-redenen worden maximaal tien mailservers via of IPv6 of IPv4 getest voor STARTTLS en DANE.
Merk op dat de e-mailtest niet terugvalt op A/AAAA-records voor mailservers in geval van afwezigheid van een MX-record.
Niet ontvangende domeinnaam:
Geen MX: In het geval dat je domein geen A/AAAA-records heeft en je er geen mail op wenst te ontvangen, adviseren we je om helemaal geen MX-record te configureren (dus ook geen "Null MX" record).
Als we een van de twee bovenstaande gevallen ontdekken, zijn de subtesten in de STARTTLS- en DANE-categorie niet van toepassing. Dit geldt ook voor de mailserver-specifieke subtests in de categorieën voor IPv6 en DNSSEC. Andere subtesten van de e-mailtest (bijv. voor DMARC) zijn nog steeds van toepassing.
Voor een "good practice voor domeinnamen zonder mail" zie de uitleg van de "DMARC-policy" subtest.',
detail_mail_tls_starttls_exists_label: 'STARTTLS beschikbaar',
detail_mail_tls_starttls_exists_tech_table: 'Mailserver (MX)|STARTTLS',
detail_mail_tls_starttls_exists_verdict_bad: 'Tenminste één van je mailservers biedt geen STARTTLS aan.',
detail_mail_tls_starttls_exists_verdict_good: 'Al je mailservers bieden STARTTLS aan.',
detail_mail_tls_starttls_exists_verdict_invalid_null_mx: 'Je domeinnaam adverteert een "Null MX" record dat aangeeft dat deze geen e-mail accepteert. Echter, óf je domeinnaam heeft geen A/AAAA records, waardoor het "Null MX" record onnodig is. Óf op je domeinnaam is een ontvangende mailserver ingesteld door een ander MX record, waardoor de "Null MX" tegenstrijdig is.',
- detail_mail_tls_starttls_exists_verdict_no_null_mx: 'Er zijn geen ontvangende mailservers (MX) ingesteld op je domeinnaam die wel A/AAAA records heeft. We adviseren je om duidelijk te laten zien dat je domeinnaam geen e-mail accepteert door een "Null MX" record te publiceren. Gebruik geen "Null MX"-record en stel een MX in als je wel e-mail wil verzenden vanaf deze domeinnaam, aangezien ontvangende servers e-mail met een ongeldig retouradres kunnen weigeren.',
+ detail_mail_tls_starttls_exists_verdict_no_null_mx: 'Er zijn geen ontvangende mailservers (MX) ingesteld op je domein dat A/AAAA-records heeft en dat een SPF-record heeft met alleen de term -all
. We raden je aan een "Null MX" record in te stellen om expliciet aan te geven dat je domein geen e-mail accepteert. Vanwege je configuratie zijn de subtests in de categorie STARTTLS en DANE en de mailserver-specifieke subtests in de categorieën IPv6 en DNSSEC niet van toepassing.',
detail_mail_tls_starttls_exists_verdict_null_mx: 'Je domeinnaam die A/AAAA-records heeft, geeft met een "Null MX" record duidelijk aan geen e-mail te accepteren. Dat is prima als je geen e-mail wilt ontvangen. Gebruik geen "Null MX"-record en stel een MX in als je wel e-mail wil verzenden vanaf deze domeinnaam, aangezien ontvangende servers e-mail met een ongeldig retouradres kunnen weigeren.',
detail_mail_tls_starttls_exists_verdict_null_mx_with_other_mx: 'Je domeinnaam adverteert een "Null MX" record dat aangeeft dat deze geen e-mail accepteert. Echter, op je domeinnaam is een ontvangende mailserver ingesteld door een ander MX record, waardoor de "Null MX" tegenstrijdig is.',
detail_mail_tls_starttls_exists_verdict_null_mx_without_a_aaaa: 'Je domeinnaam adverteert een "Null MX" record dat aangeeft dat deze geen e-mail accepteert. Echter, je domeinnaam heeft geen A/AAAA records, waardoor het "Null MX" record onnodig is.',
detail_mail_tls_starttls_exists_verdict_other: 'Tenminste één van je mailservers is onbereikbaar.',
- detail_mail_tls_starttls_exists_verdict_other_2: 'Er zijn geen ontvangende mailservers (MX) ingesteld op je domeinnaam die geen A/AAAA records heeft. Dat is prima als je geen e-mail wilt ontvangen. ',
+ detail_mail_tls_starttls_exists_verdict_other_2: 'Het SPF-record op je domeinnaam geeft aan dat je domeinnaam kan worden gebruikt voor het verzenden van e-mail. Je domeinnaam heeft echter geen ontvangende mailserver (MX), wat de bezorgbaarheid van je verzonden e-mail kan belemmeren omdat het ontbreken van een MX door ontvangers kan worden gezien als een indicator voor spam. Als je daarom echt mail vanaf deze domeinnaam wilt verzenden, configureer dan een MX. Als je echter geen mail wilt versturen vanaf deze domeinnaam, configureer dan een SPF-record met alleen de term -all
en daarnaast een "Null MX" record als je domeinnaam A/AAAA-records heeft. Vanwege je configuratie zijn de subtests in de categorie STARTTLS en DANE en de mailserver-specifieke subtests in de categorieën IPv6 en DNSSEC niet van toepassing.',
detail_mail_tls_version_exp: '
We testen of je ontvangende mailservers (MX) alleen veilige TLS-versies ondersteunen.
Een mailserver kan meer dan één TLS-versie ondersteunen.
Merk op dat behoorlijk wat mailservers alleen oudere TLS-versies ondersteunen. Als de verzendende en ontvangende mailserver niet allebei dezelfde TLS-versie ondersteunen, dan zullen ze doorgaans terugvallen op onversleuteld transport. Om die reden kan het raadzaam zijn om de TLS-versies met status \'uit te faseren\' voorlopig te blijven ondersteunen. Maak op basis van loggegevens een weloverwogen keuze voor het uitzetten van deze \'uit te faseren\' TLS-versies.
Zie \'ICT-beveiligingsrichtlijnen voor Transport Layer Security (TLS) v2.1\' van NCSC, richtlijn B1-1 en tabel 1
Versie
[Note: this content label is currently not used. See #1046.]', detail_tech_data_http_securitytxt_invalid_charset: 'Fout: Charset parameter in Content-Type header moet \'utf-8\' zijn indien aanwezig.', detail_tech_data_http_securitytxt_invalid_expiry: 'Fout: Datum en tijd in het veld \'Expires\' moeten worden geformatteerd conform ISO 8601 (regel {line_no}).', - detail_tech_data_http_securitytxt_invalid_lang: 'Fout: De waarde in het veld \'Preferred-Languages\' moet overeenkomen met één of meer taal-tags zoals gedefinieerd in RFC 5646, gescheiden door komma\'s (regel {line_no}).', + detail_tech_data_http_securitytxt_invalid_lang: 'Fout: De waarde in het veld \'Preferred-Languages\' moet overeenkomen met één of meer taal-tags zoals gedefinieerd in RFC 5646, gescheiden door komma\'s (regel {line_no}).', detail_tech_data_http_securitytxt_invalid_line: 'Fout: Regel moet een veldnaam en -waarde bevatten, tenzij de regel leeg is of een commentaar bevat (regel {line_no}).', detail_tech_data_http_securitytxt_invalid_media: 'Fout: Media type in Content-Type header moet \'text/plain\' zijn.', + detail_tech_data_http_securitytxt_invalid_uri_scheme: 'Fout: De toegang tot het bestand security.txt moet het HTTPS-schema gebruiken.
[Note: this content label is currently not used. See #1046.]',
detail_tech_data_http_securitytxt_location: 'Fout: security.txt stond op het top-level pad (verouderde locatie), maar moet geplaatst worden onder het \'/.well-known/\' pad.',
detail_tech_data_http_securitytxt_long_expiry: 'Aanbeveling: Datum en tijd in het veld \'Expires\' zouden minder dan een jaar in de toekomst moeten liggen (regel {line_no}).',
detail_tech_data_http_securitytxt_multi_expire: 'Fout: Het veld \'Expires\' moet niet meer dan één keer voorkomen.',
@@ -342,7 +345,7 @@ const internet_nl_messages = {
detail_tech_data_http_securitytxt_retrieved_from: 'security.txt opgehaald van {hostname}.',
detail_tech_data_http_securitytxt_signed_format_issue: 'Fout: Ondertekende security.txt moet beginnen met de kop \'-----BEGIN PGP SIGNED MESSAGE-----\'.',
detail_tech_data_http_securitytxt_unknown_field: 'Notificatie: security.txt bevat een onbekend veld. Ofwel het gaat om een aangepast veld dat misschien niet algemeen ondersteund wordt, ofwel er is sprake van een typfout in een gestandaardiseerde veldnaam (regel {line_no}).',
- detail_tech_data_http_securitytxt_utf8: 'Fout: Inhoud moet utf-8 gecodeerd zijn.',
+ detail_tech_data_http_securitytxt_utf8: 'Fout: Inhoud moet gecodeerd zijn met UTF-8 in Net-Unicode vorm.',
detail_tech_data_insecure: 'insecure',
detail_tech_data_insufficient: 'onvoldoende',
detail_tech_data_no: 'nee',
@@ -356,29 +359,29 @@ const internet_nl_messages = {
detail_tech_data_yes: 'ja',
detail_verdict_could_not_test: 'Testfout. Graag later opnieuw proberen.',
detail_verdict_not_tested: 'Deze subtest is niet uitgevoerd, omdat een bovenliggende test waarvan deze subtest afhankelijk is een negatief testresultaat gaf, of omdat onvoldoende informatie beschikbaar was om de subtest uit te kunnen voeren. ',
- detail_web_appsecpriv_http_csp_exp: 'We testen of je webserver een HTTP-header voor Content-Security-Policy
(CSP) aanbiedt. Verder controleren we op verschillende veilige CSP-instellingen, hoewel we de effectiviteit van je CSP-configuratie niet uitputtend testen.
CSP beschermt een website tegen aanvallen via content injection zoals cross-site scripting (XSS). Door met CSP een \'allowlist\' met bronnen van goedgekeurde content in te stellen, kan je voorkomen dat browsers die jouw website tonen daarbij kwaadaardige content van aanvallers laden.
We testen op onderstaande regels die gebaseerd zijn op good pracrices voor een veilige CSP-configuratie.
default-src
richtlijn moet zijn gedefinieerd en de waarde moet zijn óf \'none\'
, óf \'self\'
en/of één of meer URL\'s van het domein zelf (inclusief het subdomein of superdomein ervan). Dit is om een restrictief default fallback beleid te hebben voor bron-typen die gebruikt worden in je website waarvoor geen specifiek beleid is gedefinieerd. Naast deze waarden kan \'report-sample\'
als waarde zijn ingesteld als je wil dat in de \'violation reports\' code-voorbeelden worden opgenomen.base-uri
richtlijn moet zijn gedefinieerd en de waarde moet zijn óf \'none\'
, óf \'self\'
en/of één of meer URL\'s van het domein zelf (inclusief het subdomein of superdomein ervan). Dit limiteert de baseURI
zodat de injectie van een gemanipuleerd <base>
element wordt geblokkeerd. Dit beperkt de mogelijkheden van aanvallers om de locaties van bronnen (bijv. scripts) die vanaf relatieve URL\'s worden geladen te manipuleren.frame-src
richtlijn moet zijn gebruikt (hetzij per definitie of via de fallback naar child-src
en default-src
) en de waarde moet zijn óf \'none\'
, óf \'self\'
en/of één of meer specifieke URL\'s. Dit voorkomt dat inhoud van niet-geautoriseerde locaties wordt geframed of ge-embed in je website (met HTML-elementen zoals <frame>
en <iframe>
).frame-ancestors
richtlijn moet zijn gedefinieerd zijn en de waarde moet zijn óf \'none\'
, óf \'self\'
en/of één of meer specifieke URL\'s. Dit voorkomt dat ongeautoriseerde websites je website kunnen framen of embedden (met de HTML-elementen <frame>
, <iframe>
, <object>
, <embed>
, of <applet>
).form-action
richtlijn moet zijn gedefinieerd en de waarde ervan moet zijn óf \'none\'
, óf \'self\'
en/of één of meer specifieke URLs. Dit limiteert de URL\'s die gebruikt kunnen worden als doel voor formulierverzendingen.unsafe-inline
, unsafe-eval
en unsafe-hashes
moeten niet gebruikt worden, omdat deze XSS-aanvallen mogelijk maken.data:
moet niet gebruikt worden in default-src
, script-src
en object-src
, omdat dit XSS-aanvallen mogelijk maakt.http://
schema of een domein zonder schema moet niet worden gebruikt, omdat hiermee bronnen kunnen worden gedownload over een onveilige verbinding. Gebruik in plaats daarvan het https://
schema.*
) voor volledige host-gedeelte van een URL moet niet gebruikt worden in een CSP-richtlijn, omdat daardoor iedere externe bron is toegestaan. Gebruik bovendien niet alleen https:
omdat dit gelijk staat aan https://*
. Specificeer altijd het hoofddomein (bijvoorbeeld https://scripts.example.nl
of https://*.example.nl
). 127.0.0.1
moet niet gebruikt worden in een CSP-richtlijn, omdat dit aanvallen via content injection mogelijk maakt in een gecompromitteerd systeem.Aanvullende aanbevelingen:
Sta alleen zo specifiek mogelijke domeinen toe in CSP-richtlijnen. Dit wordt in deze subtest voor CSP tot op zekere hoogte automatisch getest.
*.nl
) of SLD (*.gov.uk
) toe, hoewel we hier momenteel niet op testen. default-src
(bijvoorbeeld voorbeeld2.gov.nl
voor voorbeeld1.gov.nl
), hoewel we hier momenteel niet op testen.Gebruik niet inline scripts of styles. In gevallen waarin je het gebruik van inline scripts of styles niet kunt vermijden, gebruik dan niet unsafe-inline
(zoals hierboven vermeld) maar gebruik bij voorkeur CSP-hashes of anders CSP-nonces.
<meta>
element om je CSP-beleid te serveren. Het laatste is minder veilig en ondersteunt niet alle CSP-richtlijnen (bijvoorbeeld niet het vereiste frame-ancestors
). Daarom controleren we niet op CSP die wordt aangeboden via het HTML <meta>
-element.Content-Security-Policy-Report-Only
om te experimenteren met je CSP-configuratie door het effect ervan te controleren maar nog niet af te dwingen.none
. Merk bovendien op dat als er andere bronnen in een bronnenlijst naast none
staan, het attribuut none
wordt genegeerd. Zie ook \'Webapplicatie-richtlijnen van NCSC, Verdieping\', richtlijn U/PW.03.
Niveau van vereistheid: Aanbevolen',
+ detail_web_appsecpriv_http_csp_exp: 'We testen of je webserver een HTTP-header voor Content-Security-Policy
(CSP) aanbiedt. Verder controleren we op verschillende veilige CSP-instellingen, hoewel we de effectiviteit van je CSP-configuratie niet uitputtend testen.
CSP beschermt een website tegen aanvallen via content injection zoals cross-site scripting (XSS). Door met CSP een \'allowlist\' met bronnen van goedgekeurde content in te stellen, kan je voorkomen dat browsers die jouw website tonen daarbij kwaadaardige content van aanvallers laden.
We testen op onderstaande regels die gebaseerd zijn op good pracrices voor een veilige CSP-configuratie.
default-src
richtlijn moet zijn gedefinieerd en de waarde moet zijn óf \'none\'
, óf \'self\'
en/of één of meer URL\'s van het domein zelf (inclusief het subdomein of superdomein ervan). Dit is om een restrictief default fallback beleid te hebben voor bron-typen die gebruikt worden in je website waarvoor geen specifiek beleid is gedefinieerd. Naast deze waarden kan \'report-sample\'
als waarde zijn ingesteld als je wil dat in de \'violation reports\' code-voorbeelden worden opgenomen.base-uri
richtlijn moet zijn gedefinieerd en de waarde moet zijn óf \'none\'
, óf \'self\'
en/of één of meer URL\'s van het domein zelf (inclusief het subdomein of superdomein ervan). Dit limiteert de baseURI
zodat de injectie van een gemanipuleerd <base>
element wordt geblokkeerd. Dit beperkt de mogelijkheden van aanvallers om de locaties van bronnen (bijv. scripts) die vanaf relatieve URL\'s worden geladen te manipuleren.frame-src
richtlijn moet zijn gebruikt (hetzij per definitie of via de fallback naar child-src
en default-src
) en de waarde moet zijn óf \'none\'
, óf \'self\'
en/of één of meer specifieke URL\'s. Dit voorkomt dat inhoud van niet-geautoriseerde locaties wordt geframed of ge-embed in je website (met HTML-elementen zoals <frame>
en <iframe>
).frame-ancestors
richtlijn moet zijn gedefinieerd zijn en de waarde moet zijn óf \'none\'
, óf \'self\'
en/of één of meer specifieke URL\'s. Dit voorkomt dat ongeautoriseerde websites je website kunnen framen of embedden (met de HTML-elementen <frame>
, <iframe>
, <object>
, <embed>
, of <applet>
).form-action
richtlijn moet zijn gedefinieerd en de waarde ervan moet zijn óf \'none\'
, óf \'self\'
en/of één of meer specifieke URLs. Dit limiteert de URL\'s die gebruikt kunnen worden als doel voor formulierverzendingen.unsafe-inline
, unsafe-eval
en unsafe-hashes
moeten niet gebruikt worden, omdat deze XSS-aanvallen mogelijk maken.data:
moet niet gebruikt worden in default-src
, script-src
en object-src
, omdat dit XSS-aanvallen mogelijk maakt.http://
schema of een domein zonder schema moet niet worden gebruikt, omdat hiermee bronnen kunnen worden gedownload over een onveilige verbinding. Gebruik in plaats daarvan het https://
schema.*
) voor volledige host-gedeelte van een URL moet niet gebruikt worden in een CSP-richtlijn, omdat daardoor iedere externe bron is toegestaan. Gebruik bovendien niet alleen https:
omdat dit gelijk staat aan https://*
. Specificeer altijd het hoofddomein (bijvoorbeeld https://scripts.example.nl
of https://*.example.nl
). 127.0.0.1
moet niet gebruikt worden in een CSP-richtlijn, omdat dit aanvallen via content injection mogelijk maakt in een gecompromitteerd systeem.Aanvullende aanbevelingen:
Sta alleen zo specifiek mogelijke domeinen toe in CSP-richtlijnen. Dit wordt in deze subtest voor CSP tot op zekere hoogte automatisch getest.
*.nl
) of SLD (*.gov.uk
) toe, hoewel we hier momenteel niet op testen. default-src
(bijvoorbeeld voorbeeld2.gov.nl
voor voorbeeld1.gov.nl
), hoewel we hier momenteel niet op testen.Gebruik niet inline scripts of styles. In gevallen waarin je het gebruik van inline scripts of styles niet kunt vermijden, gebruik dan niet unsafe-inline
(zoals hierboven vermeld) maar gebruik bij voorkeur CSP-hashes of anders CSP-nonces.
<meta>
element om je CSP-beleid te serveren. Het laatste is minder veilig en ondersteunt niet alle CSP-richtlijnen (bijvoorbeeld niet het vereiste frame-ancestors
). Daarom controleren we niet op CSP die wordt aangeboden via het HTML <meta>
-element.Content-Security-Policy-Report-Only
om te experimenteren met je CSP-configuratie door het effect ervan te controleren maar nog niet af te dwingen.none
. Merk bovendien op dat als er andere bronnen in een bronnenlijst naast none
staan, het attribuut none
wordt genegeerd.Opmerking over IPv6/IPv4: vanwege performance-redenen worden alle testen in de categorie \'Beveiligingsopties\' alleen uitgevoerd voor het eerste beschikbare IPv6- en IPv4-adres.
Zie ook \'Webapplicatie-richtlijnen van NCSC, Verdieping\', richtlijn U/PW.03.
Niveau van vereistheid: Aanbevolen',
detail_web_appsecpriv_http_csp_label: 'Content-Security-Policy',
detail_web_appsecpriv_http_csp_tech_table: 'Webserver-IP-adres|Bevindingen',
detail_web_appsecpriv_http_csp_verdict_bad: 'Je webserver biedt geen Content-Security-Policy (CSP) aan, of biedt CSP aan met bepaalde onveilige instellingen .',
detail_web_appsecpriv_http_csp_verdict_good: 'Je webserver biedt Content-Security-Policy (CSP) aan en maakt geen gebruik van bepaalde onveilige CSP-instellingen.',
- detail_web_appsecpriv_http_referrer_policy_exp: 'We testen of je webserver een HTTP-header voor Referrer-Policy
aanbiedt met een voldoende veilige en privacybeschermende policy-waarde. Met deze policy instrueert je webserver browsers of, wat en wanneer referrer-gegevens moeten worden verzonden naar de website waar de gebruiker naartoe navigeert vanaf jouw website. Deze referrer-gegevens worden in de Referer
-header door de browser verzonden naar de website waar de gebruiker naartoe navigeert. Deze navigatie hoeft niet per se domeinoverschrijdend te zijn.
De gegevens in de Referer
header worden meestal gebruikt voor analytics en logging. Er kunnen echter privacy- en beveiligingsrisico\'s zijn. De gegevens kunnen bijvoorbeeld worden gebruikt voor het volgen van gebruikers en de gegevens kunnen uitlekken naar derden die de verbinding afluisteren. Met de HTTP-header voor Referrer-Policy
kun je deze risico\'s beperken door het verzenden van referrer-gegevens te controleren en zelfs te minimaliseren.
We raden je aan om een weloverwogen beslissing te nemen, met privacy- en beveiligingsrisico\'s in gedachten, over het gebruik van een van de policy-waarden uit de eerste twee categorieën hieronder.
1. Goed
no-referrer
same-origin
Met deze policy-waarden worden er geen gevoelige referrer-gegevens naar derden verzonden.
2. Waarschuwing
strict-origin
strict-origin-when-cross-origin
(default waarde van browsers; zie ook onder aanvullende opmerking 2)Met deze policy-waarden worden basis referrer-gegevens, die gevoelig kunnen zijn, alleen via beveiligde verbindingen (HTTPS) naar derden verzonden. Daarom zouden deze waarden alleen gebruikt moeten worden als dit noodzakelijk en wettelijk toegestaan is.
3. Slecht
no-referrer-when-downgrade
origin-when-cross-origin
origin
unsafe-url
Met deze policy-waarden worden alle of alleen basis referrer-gegevens, die gevoelig kunnen zijn, mogelijk via onveilige verbindingen (HTTP) naar derden verzonden. Daarom moeten deze waarden niet worden gebruikt.
Aanvullende opmerkingen:
strict-origin-when-cross-origin
is de default policy-waarde wanneer er geen Referrer-Policy
is gepubliceerd zoals voorgeschreven in de huidige "Editor\'s Draft" van de Referrer-Policy
standaard en deze default wordt gebruikt door alle nieuwste grote browsers. Merk op dat sommige gebruikers nog steeds een ander default waarde geconfigureerd kunnen hebben in hun browser.Referrer-Policy
header als mechanisme om je referrer policy aan te bieden. We raden niet aan om het HTML <meta>
element of het HTML referrerpolicy
content attribuut te gebruiken om je referrer policy te publiceren, vooral omdat de secties die deze methoden beschrijven in de standaard gemarkeerd zijn als "niet normatief". Daarom controleren we niet op een referrer policy die wordt aangeboden via de laatste twee methoden.Referrer-Policy
headers kan sturen, en dat een Referrer-Policy
header meerdere waarden kan bevatten. Onbekende waarden worden genegeerd door de browser en alleen de laatst bekende waarde wordt gebruikt. Dit maakt het mogelijk om toekomstig gestandaardiseerde policy-waarden te gebruiken die nog niet door alle browsers worden ondersteund. Op dit moment ondersteunen echter alle nieuwste grote browsers de bovenstaande policy-waarden onder "Goed" en "Waarschuwing". Niveau van vereistheid: Aanbevolen',
+ detail_web_appsecpriv_http_referrer_policy_exp: 'We testen of je webserver een HTTP-header voor Referrer-Policy
aanbiedt met een voldoende veilige en privacybeschermende policy-waarde. Met deze policy instrueert je webserver browsers of, wat en wanneer referrer-gegevens moeten worden verzonden naar de website waar de gebruiker naartoe navigeert vanaf jouw website. Deze referrer-gegevens worden in de Referer
-header door de browser verzonden naar de website waar de gebruiker naartoe navigeert. Deze navigatie hoeft niet per se domeinoverschrijdend te zijn.
De gegevens in de Referer
header worden meestal gebruikt voor analytics en logging. Er kunnen echter privacy- en beveiligingsrisico\'s zijn. De gegevens kunnen bijvoorbeeld worden gebruikt voor het volgen van gebruikers en de gegevens kunnen uitlekken naar derden die de verbinding afluisteren. Met de HTTP-header voor Referrer-Policy
kun je deze risico\'s beperken door het verzenden van referrer-gegevens te controleren en zelfs te minimaliseren.
We raden je aan om een weloverwogen beslissing te nemen, met privacy- en beveiligingsrisico\'s in gedachten, over het gebruik van een van de policy-waarden uit de eerste twee categorieën hieronder.
1. Goed
no-referrer
same-origin
Met deze policy-waarden worden er geen gevoelige referrer-gegevens naar derden verzonden.
2. Waarschuwing
strict-origin
strict-origin-when-cross-origin
(default waarde van browsers; zie ook onder aanvullende opmerking 2)Met deze policy-waarden worden basis referrer-gegevens, die gevoelig kunnen zijn, alleen via beveiligde verbindingen (HTTPS) naar derden verzonden. Daarom zouden deze waarden alleen gebruikt moeten worden als dit noodzakelijk en wettelijk toegestaan is.
3. Slecht
no-referrer-when-downgrade
origin-when-cross-origin
origin
unsafe-url
Met deze policy-waarden worden alle of alleen basis referrer-gegevens, die gevoelig kunnen zijn, mogelijk via onveilige verbindingen (HTTP) naar derden verzonden. Daarom moeten deze waarden niet worden gebruikt.
Aanvullende opmerkingen:
strict-origin-when-cross-origin
is de default policy-waarde wanneer er geen Referrer-Policy
is gepubliceerd zoals voorgeschreven in de huidige "Editor\'s Draft" van de Referrer-Policy
standaard en deze default wordt gebruikt door alle nieuwste grote browsers. Merk op dat sommige gebruikers nog steeds een ander default waarde geconfigureerd kunnen hebben in hun browser.Referrer-Policy
header als mechanisme om je referrer policy aan te bieden. We raden niet aan om het HTML <meta>
element of het HTML referrerpolicy
content attribuut te gebruiken om je referrer policy te publiceren, vooral omdat de secties die deze methoden beschrijven in de standaard gemarkeerd zijn als "niet normatief". Daarom controleren we niet op een referrer policy die wordt aangeboden via de laatste twee methoden.Referrer-Policy
headers kan sturen, en dat een Referrer-Policy
header meerdere waarden kan bevatten. Onbekende waarden worden genegeerd door de browser en alleen de laatst bekende waarde wordt gebruikt. Dit maakt het mogelijk om toekomstig gestandaardiseerde policy-waarden te gebruiken die nog niet door alle browsers worden ondersteund. Op dit moment ondersteunen echter alle nieuwste grote browsers de bovenstaande policy-waarden onder "Goed" en "Waarschuwing".Opmerking over IPv6/IPv4: vanwege performance-redenen worden alle testen in de categorie \'Beveiligingsopties\' alleen uitgevoerd voor het eerste beschikbare IPv6- en IPv4-adres.
Niveau van vereistheid: Aanbevolen',
detail_web_appsecpriv_http_referrer_policy_label: 'Referrer-Policy',
detail_web_appsecpriv_http_referrer_policy_tech_table: 'Webserver-IP-adres|Bevindingen',
detail_web_appsecpriv_http_referrer_policy_verdict_bad: 'Je webserver biedt een Referrer-Policy aan met een policy-waarde die niet voldoende veilig en privacybeschermend is.',
detail_web_appsecpriv_http_referrer_policy_verdict_good: 'Je webserver biedt een Referrer-Policy aan met een policy-waarde die voldoende veilig en privacybeschermend is.',
detail_web_appsecpriv_http_referrer_policy_verdict_recommendations: 'Je webserver biedt ofwel geen Referrer-Policy aan en vertrouwt dus op de standaard browserpolicy, óf je webserver biedt een Referrer-Policy aan met een policy-waarde die met terughoudendheid moet worden gebruikt vanwege de mogelijke impact op beveiliging en privacy.',
- detail_web_appsecpriv_http_securitytxt_exp: 'We testen of je webserver een security.txt
bestand op de juiste locatie aanbiedt, of het opgehaald kan worden, en of de inhoud ervan syntactisch geldig is.
security.txt
is een tekstbestand met contactinformatie dat je op je webserver plaatst. Beveiligingsonderzoekers kunnen deze informatie gebruiken om direct contact met de juiste afdeling of persoon binnen je organisatie op te nemen over kwetsbaarheden die zij in je website of IT-systemen hebben gevonden. Dit kan het verhelpen van gevonden kwetsbaarheden versnellen, waardoor kwaadwillenden minder kans hebben om er misbruik van te maken.
Het formaat van het bestand is bedoeld om machinaal en menselijk leesbaar te zijn. De contactinformatie kan een e-mailadres, een telefoonnummer en/of een webpagina (bijvoorbeeld een webformulier) zijn. Merk op dat gepubliceerde contactinformatie openbaar is en ook kan worden misbruikt, bijvoorbeeld om spam te sturen naar een gepubliceerd e-mailadres.
Naast contactinformatie moet het security.txt
bestand ook een vervaldatum bevatten. Om te voorkomen dat de informatie niet meer actueel is, wordt aanbevolen een vervaldatum op te nemen die minder dan een jaar in de toekomst ligt. Het is optioneel om ook andere relevante informatie voor beveiligingsonderzoekers op te nemen, zoals een link naar je beleid voor het omgaan met meldingen van beveiligingskwetsbaarheden (meestal Coordinated Vulnerability Disclosure policy genoemd).
Het wordt aanbevolen om het security.txt
bestand te ondertekenen met PGP en daarbij de web URI waarop het bestand staat in een Canonical
veld op te nemen. We controleren of het security.txt
bestand ondertekend is. We valideren de handtekening echter niet, omdat er helaas geen gestandaardiseerde plaats is om een publieke PGP-sleutel (die nodig is voor handtekeningvalidatie) op te halen.
Als een of meer Canonical
velden aanwezig zijn, moet de web URI van het security.txt
bestand in een Canonical
veld staan. Bij het redirecten naar een security.txt
bestand moet ten minste de laatste URI van de redirect-keten in een Canonical
veld worden vermeld.
Het bestand moet gepubliceerd worden onder het /.well-known/
pad. Merk op dat het plaatsen onder het top-level pad verouderd is. Elk web(sub)domein dient zijn eigen security.txt
bestand te hebben. Een voorbeeldbestand is te vinden op https://example.nl/.well-known/security.txt
.
Met een redirect doorverwijzen naar een security.txt
op een andere domeinnaam is toegestaan. Vooral in het geval van een grote domeinnaamportfolio is het vanuit onderhoudsperspectief aan te raden om de domeinnamen te redirecten naar een centrale security.txt
.
Met een redirect doorverwijzen naar een security.txt
op een andere domeinnaam is toegestaan. Vooral in het geval van een grote domeinnaamportfolio is het vanuit onderhoudsperspectief aan te raden om de domeinnamen te redirecten naar een centrale security.txt
.
Merk op dat security.txt
bestanden normaal gesproken slechts enkele kilobytes groot zijn. We lezen en evalueren daarom maximaal de eerste 100 kB van een gevonden security.txt
bestand.
Niveau van vereistheid: Aanbevolen',
+ detail_web_appsecpriv_http_securitytxt_exp: 'We testen of je webserver een security.txt
bestand op de juiste locatie aanbiedt, of het opgehaald kan worden, en of de inhoud ervan syntactisch geldig is.
security.txt
is een tekstbestand met contactinformatie dat je op je webserver plaatst. Beveiligingsonderzoekers kunnen deze informatie gebruiken om direct contact met de juiste afdeling of persoon binnen je organisatie op te nemen over kwetsbaarheden die zij in je website of IT-systemen hebben gevonden. Dit kan het verhelpen van gevonden kwetsbaarheden versnellen, waardoor kwaadwillenden minder kans hebben om er misbruik van te maken.
Het formaat van het bestand is bedoeld om machinaal en menselijk leesbaar te zijn. De contactinformatie kan een e-mailadres, een telefoonnummer en/of een webpagina (bijvoorbeeld een webformulier) zijn. Merk op dat gepubliceerde contactinformatie openbaar is en ook kan worden misbruikt, bijvoorbeeld om spam te sturen naar een gepubliceerd e-mailadres.
Naast contactinformatie moet het security.txt
bestand ook een vervaldatum bevatten. Om te voorkomen dat de informatie niet meer actueel is, wordt aanbevolen een vervaldatum op te nemen die minder dan een jaar in de toekomst ligt. Het is optioneel om ook andere relevante informatie voor beveiligingsonderzoekers op te nemen, zoals een link naar je beleid voor het omgaan met meldingen van beveiligingskwetsbaarheden (meestal Coordinated Vulnerability Disclosure policy genoemd).
Het wordt aanbevolen om het security.txt
bestand te ondertekenen met PGP en daarbij de web URI waarop het bestand staat in een Canonical
veld op te nemen. We controleren of het security.txt
bestand ondertekend is. We valideren de handtekening echter niet, omdat er helaas geen gestandaardiseerde plaats is om een publieke PGP-sleutel (die nodig is voor handtekeningvalidatie) op te halen.
Als een of meer Canonical
velden aanwezig zijn, moet de web URI van het security.txt
bestand in een Canonical
veld staan. Bij het redirecten naar een security.txt
bestand moet ten minste de laatste URI van de redirect-keten in een Canonical
veld worden vermeld.
Het bestand moet gepubliceerd worden onder het /.well-known/
pad. Merk op dat het plaatsen onder het top-level pad verouderd is. Elk web(sub)domein dient zijn eigen security.txt
bestand te hebben. Een voorbeeldbestand is te vinden op https://example.nl/.well-known/security.txt
.
Met een redirect doorverwijzen naar een security.txt
op een andere domeinnaam is toegestaan. Vooral in het geval van een grote domeinnaamportfolio is het vanuit onderhoudsperspectief aan te raden om de domeinnamen te redirecten naar een centrale security.txt
.
Merk op dat security.txt
bestanden normaal gesproken slechts enkele kilobytes groot zijn. We lezen en evalueren daarom maximaal de eerste 100 kB van een gevonden security.txt
bestand.
Opmerking over IPv6/IPv4: vanwege performance-redenen worden alle testen in de categorie \'Beveiligingsopties\' alleen uitgevoerd voor het eerste beschikbare IPv6- en IPv4-adres.
Niveau van vereistheid: Aanbevolen',
detail_web_appsecpriv_http_securitytxt_label: 'security.txt',
detail_web_appsecpriv_http_securitytxt_tech_table: 'Webserver-IP-adres|Bevindingen',
detail_web_appsecpriv_http_securitytxt_verdict_bad: 'Je webserver biedt geen security.txt-bestand op de juiste plaats aan, het kon niet worden opgehaald, of de inhoud ervan is syntactisch niet geldig.',
detail_web_appsecpriv_http_securitytxt_verdict_good: 'Je webserver biedt een security.txt-bestand op de juiste plaats aan en de inhoud ervan is syntactisch geldig.',
detail_web_appsecpriv_http_securitytxt_verdict_recommendations: 'Je webserver biedt een security.txt-bestand op de juiste plaats aan en de inhoud ervan is syntactisch geldig. Echter, er zijn een of meer aanbevelingen voor verbetering.',
- detail_web_appsecpriv_http_x_content_type_exp: 'We testen of je webserver een HTTP header voor X-Content-Type-Options
aanbiedt. Met deze HTTP header kan je webbrowsers laten weten dat zij geen \'MIME type sniffing\' mogen uitvoeren en altijd het Content-Type
zoals gedeclareerd door jouw webserver moeten volgen. De enige geldige waarde voor deze HTTP header is nosniff
. Indien actief, dan zal een browser verzoeken voor style
en script
blokkeren als deze geen corresponderende Content-Type
(dat wil zeggen text/css
of een \'Javascript MIME type\' zoals application/javascript
) hebben.
\'MIME type sniffing\' is een techniek waarbij de browser de inhoud van een bestand scant om te bepalen wat het formaat van het bestand is, ongeacht het door de webserver gedeclareerde Content-Type
. Deze techniek is kwetsbaar voor de zogenaamde \'MIME confusion attack\' waarbij de aanvaller de content van een bestand zodanig manipuleert dat de browser deze behandelt als een andere Content-Type
, zoals een executeerbaar bestand.
Niveau van vereistheid: Aanbevolen',
+ detail_web_appsecpriv_http_x_content_type_exp: 'We testen of je webserver een HTTP header voor X-Content-Type-Options
aanbiedt. Met deze HTTP header kan je webbrowsers laten weten dat zij geen \'MIME type sniffing\' mogen uitvoeren en altijd het Content-Type
zoals gedeclareerd door jouw webserver moeten volgen. De enige geldige waarde voor deze HTTP header is nosniff
. Indien actief, dan zal een browser verzoeken voor style
en script
blokkeren als deze geen corresponderende Content-Type
(dat wil zeggen text/css
of een \'Javascript MIME type\' zoals application/javascript
) hebben.
\'MIME type sniffing\' is een techniek waarbij de browser de inhoud van een bestand scant om te bepalen wat het formaat van het bestand is, ongeacht het door de webserver gedeclareerde Content-Type
. Deze techniek is kwetsbaar voor de zogenaamde \'MIME confusion attack\' waarbij de aanvaller de content van een bestand zodanig manipuleert dat de browser deze behandelt als een andere Content-Type
, zoals een executeerbaar bestand.
Opmerking over IPv6/IPv4: vanwege performance-redenen worden alle testen in de categorie \'Beveiligingsopties\' alleen uitgevoerd voor het eerste beschikbare IPv6- en IPv4-adres.
Niveau van vereistheid: Aanbevolen',
detail_web_appsecpriv_http_x_content_type_label: 'X-Content-Type-Options',
detail_web_appsecpriv_http_x_content_type_tech_table: 'Webserver-IP-adres|X-Content-Type-Options waarde',
detail_web_appsecpriv_http_x_content_type_verdict_bad: 'Je webserver biedt geen X-Content-Type-Options aan.',
detail_web_appsecpriv_http_x_content_type_verdict_good: 'Je webserver biedt X-Content-Type-Options aan.',
- detail_web_appsecpriv_http_x_frame_exp: 'We testen of je webserver een HTTP header voor X-Frame-Options
aanbiedt die een voldoende veilige instelling heeft. Met deze HTTP header kan je webbrowsers laten weten of het toegestaan is om jouw website te \'framen\'. Het voorkomen van \'framen\' beschermt bezoekers tegen aanvallen zoals clickjacking. We beschouwen de volgende waarden als voldoende veilig:
DENY
(\'framen\' niet toegestaan); ofSAMEORIGIN
(\'framen\' alleen door je eigen website toegestaan).Alhoewel de waarde ALLOW-FROM
(alleen genoemde websites mogen jouw website \'framen\') onderdeel is van de specificatie voorX-Frame-Options
(RFC 7034), wordt deze niet ondersteund door moderne webbrowsers. Om die reden beschouwen we deze waarde niet als voldoende veilig.
Merk op dat Content-Security-Policy
(CSP) via frame-ancestors
vergelijkbare bescherming en daarnaast nog veel meer biedt voor bezoekers met moderne webbrowsers. Maar X-Frame-Options
kan nog steeds bescherming bieden aan bezoekers van oudere browsers die geen CSP ondersteunen. Bovendien kan X-Frame-Options
waardevolle bescherming aan alle bezoekers bieden, indien CSP niet (goed) is ingesteld voor de desbetreffende website.
Zie ook \'Webapplicatie-richtlijnen van NCSC, Verdieping\', richtlijn U/PW.03.
Niveau van vereistheid: Optioneel ',
+ detail_web_appsecpriv_http_x_frame_exp: 'We testen of je webserver een HTTP header voor X-Frame-Options
aanbiedt die een voldoende veilige instelling heeft. Met deze HTTP header kan je webbrowsers laten weten of het toegestaan is om jouw website te \'framen\'. Het voorkomen van \'framen\' beschermt bezoekers tegen aanvallen zoals clickjacking. We beschouwen de volgende waarden als voldoende veilig:
DENY
(\'framen\' niet toegestaan); ofSAMEORIGIN
(\'framen\' alleen door je eigen website toegestaan).Alhoewel de waarde ALLOW-FROM
(alleen genoemde websites mogen jouw website \'framen\') onderdeel is van de specificatie voorX-Frame-Options
(RFC 7034), wordt deze niet ondersteund door moderne webbrowsers. Om die reden beschouwen we deze waarde niet als voldoende veilig.
Merk op dat Content-Security-Policy
(CSP) via frame-ancestors
vergelijkbare bescherming en daarnaast nog veel meer biedt voor bezoekers met moderne webbrowsers. Maar X-Frame-Options
kan nog steeds bescherming bieden aan bezoekers van oudere browsers die geen CSP ondersteunen. Bovendien kan X-Frame-Options
waardevolle bescherming aan alle bezoekers bieden, indien CSP niet (goed) is ingesteld voor de desbetreffende website.
Opmerking over IPv6/IPv4: vanwege performance-redenen worden alle testen in de categorie \'Beveiligingsopties\' alleen uitgevoerd voor het eerste beschikbare IPv6- en IPv4-adres.
Zie ook \'Webapplicatie-richtlijnen van NCSC, Verdieping\', richtlijn U/PW.03.
Niveau van vereistheid: Optioneel ', detail_web_appsecpriv_http_x_frame_label: 'X-Frame-Options', detail_web_appsecpriv_http_x_frame_tech_table: 'Webserver-IP-adres|X-Frame-Options waarde', detail_web_appsecpriv_http_x_frame_verdict_bad: 'Je webserver biedt geen veilig ingestelde X-Frame-Options aan.', @@ -406,29 +409,29 @@ const internet_nl_messages = { detail_web_ipv6_web_aaaa_tech_table: 'Webserver|IPv6-adres|IPv4-adres', detail_web_ipv6_web_aaaa_verdict_bad: 'Geen van je webservers heeft een IPv6-adres.', detail_web_ipv6_web_aaaa_verdict_good: 'Tenminste één van je webservers heeft een IPv6-adres.', - detail_web_ipv6_web_ipv46_exp: 'We vergelijken het antwoord en de inhoud die we van je webserver over IPv6 ontvangen met die over IPv4.
We controleren:
Als er meerdere IPv6- en IPv4-adressen zijn, kiezen we één IPv6-adres en één IPv4-adres om de subtest uit te voeren. Als er alleen een IPv6-adres en geen IPv4-adres beschikbaar is, dan is de subtest niet van toepassing omdat er geen vergelijking kan worden gemaakt.', + detail_web_ipv6_web_ipv46_exp: 'We vergelijken de beschikbare poorten en aangeboden headers en inhoud van je webserver via IPv6 met die via IPv4.
We controleren of:
Aanvullende opmerkingen:- Als er meerdere IPv6- en IPv4-adressen zijn, dan kiezen we één IPv6-adres en één IPv4-adres om de subtest uit te voeren.- Als er alleen een IPv6-adres en geen IPv4-adres (of omgekeerd) beschikbaar is, dan is de subtest niet van toepassing omdat er geen vergelijking kan worden gemaakt.- Deze subtest volgt redirects en controleert ook alle onderliggende URL\'s.', detail_web_ipv6_web_ipv46_label: 'Gelijke website op IPv6 en IPv4', - detail_web_ipv6_web_ipv46_verdict_bad: 'Beschikbare poorten of aangeboden headers van je website over IPv4 zijn niet hetzelfde over IPv6.', - detail_web_ipv6_web_ipv46_verdict_good: 'Je website op IPv6 lijkt gelijk aan je website op IPv4.', - detail_web_ipv6_web_ipv46_verdict_notice: 'De HTML-inhoud van je website over IPv4 is niet hetzelfde over IPv6. ', - detail_web_ipv6_web_ipv46_verdict_notice_status_code: 'Je website op IPv6 lijkt gelijk aan je website op IPv4, maar de HTTP response code is 4xx of 5xx. Dit kan wijzen op een configuratiefout.', + detail_web_ipv6_web_ipv46_verdict_bad: 'Beschikbare poorten of aangeboden headers van je website via IPv4 zijn niet hetzelfde via IPv6.', + detail_web_ipv6_web_ipv46_verdict_good: 'Je website via IPv6 lijkt identiek via IPv4.', + detail_web_ipv6_web_ipv46_verdict_notice: 'De HTML-inhoud van je website via IPv4 is niet hetzelfde via IPv6. ', + detail_web_ipv6_web_ipv46_verdict_notice_status_code: 'Je website via IPv6 lijkt identiek via IPv4, maar de HTTP response code is 4xx of 5xx. Dit kan wijzen op een configuratiefout.', detail_web_ipv6_web_reach_exp: 'We testen of we je webserver(s) kunnen bereiken via IPv6 op alle beschikbare poorten (80 en/of 443). We testen alle IPv6-adressen die we ontvangen van je nameservers. Een deelscore wordt gegeven als niet alle IPv6-adressen bereikbaar zijn. Als een IPv6-adres (syntactisch) ongeldig is, dan beschouwen we dat als onbereikbaar.', detail_web_ipv6_web_reach_label: 'IPv6-bereikbaarheid van webserver', detail_web_ipv6_web_reach_tech_table: 'Webserver|Onbereikbaar IPv6-adres', detail_web_ipv6_web_reach_verdict_bad: 'Tenminste één van jouw webservers met een IPv6-adres, is niet bereikbaar via IPv6.', detail_web_ipv6_web_reach_verdict_good: 'Al je webservers met een IPv6-adres zijn bereikbaar via IPv6.', - detail_web_rpki_exists_exp: 'We testen of er een RPKI Route Origin Authorisation (ROA) is gepubliceerd voor alle IP-adressen van je webserver.
Je hoster (of zijn netwerkprovider) kondigt via het Border Gateway Protocol (BGP) aan voor welke van zijn IP-adresblokken hij inkomend internetverkeer accepteert. Andere netwerkproviders gebruiken deze route-aankondigingen om te bepalen via welke route ze het verkeer voor de IP-adressen van je server moeten sturen.
Een route-aankondiging is echter te vervalsen. Een andere netwerkprovider kan namelijk in de positie zijn om het IP-adresblok van jouw IP-adres te koppelen aan zijn netwerk en op die manier mogelijk internetverkeer te ontvangen dat eigenlijk voor jouw netwerkprovider bedoeld is. De oorzaak kan per ongeluk of kwaadwillig zijn. In beide gevallen kan het ertoe leiden dat je server onbereikbaar is of dat internetverkeer naar je server wordt onderschept.
Resource Public Key Infrastructure (RPKI) verbetert de bescherming hiertegen aanzienlijk. Met RPKI kan de rechtmatige houder van een blok IP-adressen namelijk een digitaal ondertekende verklaring met route-autorisatie (Route Origin Authorisation; afgekort: ROA) publiceren. Een andere netwerkprovider die internetverkeer wil sturen naar een bepaalde IP-adres, kan de bijbehorende verklaring gebruiken om ongeldige (Invalid
) routes te filteren. Daarmee voorkomt de netwerkprovider dat internetverkeer vanuit zijn netwerk naar ongeautoriseerde providernetwerken wordt gestuurd.
Niveau van vereistheid: Aanbevolen', + detail_web_rpki_exists_exp: 'We testen of er een RPKI Route Origin Authorisation (ROA) is gepubliceerd voor alle IP-adressen van je webserver.
Je hoster (of zijn netwerkprovider) kondigt via het Border Gateway Protocol (BGP) aan voor welke van zijn IP-adresblokken hij inkomend internetverkeer accepteert. Andere netwerkproviders gebruiken deze route-aankondigingen om te bepalen via welke route ze het verkeer voor de IP-adressen van je server moeten sturen.
Een route-aankondiging is echter te vervalsen. Een andere netwerkprovider kan namelijk in de positie zijn om het IP-adresblok van jouw IP-adres te koppelen aan zijn netwerk en op die manier mogelijk internetverkeer te ontvangen dat eigenlijk voor jouw netwerkprovider bedoeld is. De oorzaak kan per ongeluk of kwaadwillig zijn. In beide gevallen kan het ertoe leiden dat je server onbereikbaar is of dat internetverkeer naar je server wordt onderschept.
Resource Public Key Infrastructure (RPKI) verbetert de bescherming hiertegen aanzienlijk. Met RPKI kan de rechtmatige houder van een blok IP-adressen namelijk een digitaal ondertekende verklaring met route-autorisatie (Route Origin Authorisation; afgekort: ROA) publiceren. Een andere netwerkprovider die internetverkeer wil sturen naar een bepaalde IP-adres, kan de bijbehorende verklaring gebruiken om ongeldige (Invalid
) routes te filteren. Daarmee voorkomt de netwerkprovider dat internetverkeer vanuit zijn netwerk naar ongeautoriseerde providernetwerken wordt gestuurd.',
detail_web_rpki_exists_label: 'Aanwezigheid van Route Origin Authorisation',
detail_web_rpki_exists_tech_table: 'Webserver|IP-adres|RPKI Route Origin Authorization',
detail_web_rpki_exists_verdict_bad: 'Voor tenminste één van de IP-adressen van je webserver is geen RPKI Route Origin Authorisation (ROA) gepubliceerd.',
detail_web_rpki_exists_verdict_good: 'Voor alle IP-adressen van je webserver is een RPKI Route Origin Authorisation (ROA) gepubliceerd.',
detail_web_rpki_exists_verdict_no_addresses: 'Je domein bevat geen IP-adressen van webservers. Daarom kon deze subtest niet worden uitgevoerd.',
- detail_web_rpki_valid_exp: 'We testen of de validatie-status van alle IP-adressen van je webserver Valid
is. Als er meerdere overlappende route-aankondigingen voor het IP-adres zijn, dan testen we of die allemaal Valid
zijn.
Je hoster (of zijn netwerkprovider) kondigt via het Border Gateway Protocol (BGP) aan voor welke van zijn IP-adresblokken hij inkomend internetverkeer accepteert. Dat doet hij door (delen van) zijn IP-adresblokken (Route Prefix) aan het unieke nummer van zijn providernetwerk (Route Origin ASN) te koppelen, en door deze routeringsinformatie vervolgens te verspreiden. Andere netwerkproviders gebruiken deze route-aankondigingen om te bepalen via welke route ze het verkeer voor de IP-adressen moeten sturen.
Aanvullend kan je hoster (of zijn netwerkprovider) voor iedere route-aankondiging een digitaal ondertekende verklaring met route-autorisatie (Route Origin Authorisation, afgekort: ROA) publiceren met behulp van Resource Public Key Infrastructure (RPKI).
Een andere netwerkprovider die gevraagd wordt om internetverkeer te sturen naar het IP-adres van je server, kan de bijbehorende verklaring cryptografisch controleren. De gecontroleerde inhoud (Validated ROA Payload; afgekort: VRP) omvat welke providernetwerken (VRP ASN) voor ieder opgenomen IP-adresblok (VRP Prefix) geautoriseerd zijn om internetverkeer te ontvangen.
De netwerkprovider kan deze inhoud vervolgens gebruiken om BGP-routes te filteren. Hij kan bijvoorbeeld eventuele Invalid
routes weigeren om te voorkomen dat internetverkeer vanuit zijn netwerk naar ongeautoriseerde providernetwerken wordt gestuurd.
Het vergelijken van route-aankondigingen met route-autorisaties (RPKI Origin Validation; afgekort: ROV) kent de onderstaande drie mogelijk uitkomsten.
Valid
: De route-aankondiging van het desbetreffende IP-adres wordt gematcht door tenminste één gepubliceerde route-autorisatie. Een route-autorisatie is ook matchend voor meer specifieke route-aankondigingen (d.w.z. voor een deel van het IP-adresblok dat in de route-autorisatie staat), tenzij deze meer specifiek zijn dan de limiet die in de route-autorisatie is bepaald (via het maxLength
attribuut).
Invalid
: De route-aankondiging van het desbetreffende IP-adres is wel afgedekt door een route-autorisatie, maar deze matcht niet. Er zijn twee mogelijke oorzaken:
het IP-adresblok (Route Prefix) wordt aangekondigd vanaf een providernetwerk (Route Origin ASN) dat in de route-autorisatie niet is geautoriseerd (resultaat in onderstaande tabel: "invalid (as)");
het IP-adresblok (Route Prefix) dat wordt aangekondigd is kleiner dan wordt toegestaan in de route-autorisatie, d.w.z. overschrijding van maxLength
waarde (resultaat in onderstaande tabel: "invalid (length)").
NotFound
: Er is geen verklaring met route-autorisatie gevonden die de route-aankondiging van het desbetreffende IP-adres afdekt. De routering van internetverkeer naar jouw server is daardoor minder veilig. Neem hierover contact op met je hoster. Deze kan zijn netwerkprovider die eigenaar is van de IP-adressen van je server vragen om route-autorisaties te publiceren.
Wat te doen als het testresultaat de status Invalid toont?
De status Invalid
duidt op een onbedoelde of kwaadwillige route-configuratiefout, die wordt veroorzaakt door je hoster of zijn netwerkprovider (interne fout) óf door een derde partij (externe fout). In beide gevallen kan het leiden tot de onbereikbaarheid van je server of het onderscheppen van internetverkeer naar je server. Neem zo spoedig mogelijk contact op met je hoster. Bij een interne fout moet je hoster zijn netwerkprovider die eigenaar is van de IP-adressen van je server, vragen om de route-configuratiefout te herstellen.
Niveau van vereistheid: Aanbevolen',
+ detail_web_rpki_valid_exp: 'We testen of de validatie-status van alle IP-adressen van je webserver Valid
is. Als er meerdere overlappende route-aankondigingen voor het IP-adres zijn, dan testen we of die allemaal Valid
zijn.
Je hoster (of zijn netwerkprovider) kondigt via het Border Gateway Protocol (BGP) aan voor welke van zijn IP-adresblokken hij inkomend internetverkeer accepteert. Dat doet hij door (delen van) zijn IP-adresblokken (Route Prefix) aan het unieke nummer van zijn providernetwerk (Route Origin ASN) te koppelen, en door deze routeringsinformatie vervolgens te verspreiden. Andere netwerkproviders gebruiken deze route-aankondigingen om te bepalen via welke route ze het verkeer voor de IP-adressen moeten sturen.
Aanvullend kan je hoster (of zijn netwerkprovider) voor iedere route-aankondiging een digitaal ondertekende verklaring met route-autorisatie (Route Origin Authorisation, afgekort: ROA) publiceren met behulp van Resource Public Key Infrastructure (RPKI).
Een andere netwerkprovider die gevraagd wordt om internetverkeer te sturen naar het IP-adres van je server, kan de bijbehorende verklaring cryptografisch controleren. De gecontroleerde inhoud (Validated ROA Payload; afgekort: VRP) omvat welke providernetwerken (VRP ASN) voor ieder opgenomen IP-adresblok (VRP Prefix) geautoriseerd zijn om internetverkeer te ontvangen.
De netwerkprovider kan deze inhoud vervolgens gebruiken om BGP-routes te filteren. Hij kan bijvoorbeeld eventuele Invalid
routes weigeren om te voorkomen dat internetverkeer vanuit zijn netwerk naar ongeautoriseerde providernetwerken wordt gestuurd.
Het vergelijken van route-aankondigingen met route-autorisaties (RPKI Origin Validation; afgekort: ROV) kent de onderstaande drie mogelijk uitkomsten.
1․ Valid
: De route-aankondiging van het desbetreffende IP-adres wordt gematcht door tenminste één gepubliceerde route-autorisatie. Een route-autorisatie is ook matchend voor meer specifieke route-aankondigingen (d.w.z. voor een deel van het IP-adresblok dat in de route-autorisatie staat), tenzij deze meer specifiek zijn dan de limiet die in de route-autorisatie is bepaald (via het maxLength
attribuut).
2․ Invalid
: De route-aankondiging van het desbetreffende IP-adres is wel afgedekt door een route-autorisatie, maar deze matcht niet. Er zijn twee mogelijke oorzaken:
maxLength
waarde (resultaat in onderstaande tabel: "invalid (length)").3․ NotFound
: Er is geen verklaring met route-autorisatie gevonden die de route-aankondiging van het desbetreffende IP-adres afdekt. De routering van internetverkeer naar jouw server is daardoor minder veilig. Neem hierover contact op met je hoster. Deze kan zijn netwerkprovider die eigenaar is van de IP-adressen van je server vragen om route-autorisaties te publiceren.
Wat te doen als het testresultaat de status Invalid toont?
De status Invalid
duidt op een onbedoelde of kwaadwillige route-configuratiefout, die wordt veroorzaakt door je hoster of zijn netwerkprovider (interne fout) óf door een derde partij (externe fout). In beide gevallen verhoogt dit het risico dat je server onbereikbaar wordt of dat internetverkeer naar je server wordt onderschept. Neem zo spoedig mogelijk contact op met je hoster. Bij een interne fout moet je hoster zijn netwerkprovider die eigenaar is van de IP-adressen van je server, vragen om de route-configuratiefout te herstellen. ',
detail_web_rpki_valid_label: 'Geldigheid van route-aankondiging',
detail_web_rpki_valid_tech_table: 'Webserver|BGP Route Prefix|BGP Route Origin ASN|RPKI Origin Validation status',
detail_web_rpki_valid_verdict_bad: 'Ten minste één IP-adres van je webserver heeft een NotFound
validatie-status. Er is geen RPKI Route Origin Authorization (ROA) gepubliceerd voor de route-aankondiging van ieder van de desbetreffende IP-adressen.',
detail_web_rpki_valid_verdict_good: 'Alle IP-adressen van je webserver hebben een Valid
validatie-status. De route-aankondiging van deze IP-adressen wordt gematcht door de gepubliceerde RPKI Route Origin Authorisation (ROA).',
- detail_web_rpki_valid_verdict_invalid: 'Tenminste één IP-adres van je webserver heeft een Invalid
validatie-status. De route-aankondiging van de desbetreffende IP-adressen wordt niet gematcht door de gepubliceerde RPKI Route Origin Authorisation (ROA). Dit duidt op een onbedoelde of kwaadwillige route-configuratiefout, die wordt veroorzaakt door je webhoster (interne fout) óf door een derde partij (externe fout). In beide gevallen kan het leiden tot de onbereikbaarheid van je server of het onderscheppen van internetverkeer naar je server. Neem zo spoedig mogelijk contact op met je webhoster. Bij een interne fout moet je webhoster zijn netwerkprovider die eigenaar is van de IP-adressen van je server, vragen om de route-configuratiefout te herstellen.',
+ detail_web_rpki_valid_verdict_invalid: 'Tenminste één IP-adres van je webserver heeft een Invalid
validatie-status. De route-aankondiging van de desbetreffende IP-adressen wordt niet gematcht door de gepubliceerde RPKI Route Origin Authorisation (ROA). Dit duidt op een onbedoelde of kwaadwillige route-configuratiefout, die wordt veroorzaakt door je webhoster (interne fout) óf door een derde partij (externe fout). In beide gevallen verhoogt dit het risico dat je server onbereikbaar wordt of dat internetverkeer naar je server wordt onderschept. Neem zo spoedig mogelijk contact op met je webhoster. Bij een interne fout moet je webhoster zijn netwerkprovider die eigenaar is van de IP-adressen van je server, vragen om de route-configuratiefout te herstellen.',
detail_web_rpki_valid_verdict_not_routed: 'Deze subtest werd niet uitgevoerd, omdat er voor geen van de IP-adressen een route-aankondiging beschikbaar was.',
detail_web_tls_cert_hostmatch_exp: 'We testen of de domeinnaam van je website overeenkomt met de domeinnaam op het certificaat.
Het kan handig zijn om meerdere domeinnamen (bijvoorbeeld de domeinnaam met en zonder www) als Subject Alternative Name (SAN) in het certificaat op te nemen.
Zie \'ICT-beveiligingsrichtlijnen voor Transport Layer Security (TLS) v2.1\' van NCSC, richtlijn B3-1.', detail_web_tls_cert_hostmatch_label: 'Domeinnaam op certificaat', @@ -451,7 +454,7 @@ const internet_nl_messages = { detail_web_tls_cert_trust_tech_table: 'Webserver-IP-adres|Onvertrouwde certificaatketen', detail_web_tls_cert_trust_verdict_bad: 'De vertrouwensketen van je websitecertificaat is niet compleet en/of niet ondertekend door een vertrouwde certificaatautoriteit.', detail_web_tls_cert_trust_verdict_good: 'De vertrouwensketen van je websitecertificaat is compleet en ondertekend door een vertrouwde certificaatautoriteit.', - detail_web_tls_cipher_order_exp: 'We testen of je webserver zijn eigen cipher-voorkeur afdwingt (\'I\'), en ciphers aanbiedt conform de voorgeschreven volgorde (\'II\').
Als je webserver alleen \'Goede\' ciphers ondersteunt, dan is deze subtest niet van toepassing omdat de volgorde dan geen significant beveiligingsvoordeel oplevert.
I. Server afgedwongen cipher-volgorde: De webserver dwingt zijn cipher-voorkeur af tijdens de onderhandeling met een webbrowser, en accepteert geen voorkeur van de webbrowser;
II. Voorgeschreven volgorde: Ciphers worden aangeboden door de webserver in overeenstemming met de voorgeschreven volgorde waarbij Goede boven Voldoende boven Uit te faseren ciphers worden geprefereerd.
In de bovenstaande tabel met technische details staan alleen de eerst gevonden algoritmeselecties die niet voldoen aan de voorgeschreven volgorde.
Zie \'ICT-beveiligingsrichtlijnen voor Transport Layer Security (TLS) v2.1\' van NCSC, richtlijn B2-5.', + detail_web_tls_cipher_order_exp: 'We testen of je webserver zijn eigen cipher-voorkeur afdwingt (\'I\'), en ciphers aanbiedt conform de voorgeschreven volgorde (\'II\').
Als je webserver alleen \'Goede\' ciphers ondersteunt, dan is deze subtest niet van toepassing omdat de volgorde dan geen significant beveiligingsvoordeel oplevert.
I. Server afgedwongen cipher-voorkeur: De webserver dwingt zijn cipher-voorkeur af tijdens de onderhandeling met een webbrowser, en accepteert geen voorkeur van de webbrowser;
II. Voorgeschreven volgorde: Ciphers worden aangeboden door de webserver in overeenstemming met de voorgeschreven volgorde waarbij Goede boven Voldoende boven Uit te faseren ciphers worden geprefereerd.
In de bovenstaande tabel met technische details staan alleen de eerst gevonden algoritmeselecties die niet voldoen aan de voorgeschreven volgorde.
Zie \'ICT-beveiligingsrichtlijnen voor Transport Layer Security (TLS) v2.1\' van NCSC, richtlijn B2-5.', detail_web_tls_cipher_order_label: 'Cipher-volgorde', detail_web_tls_cipher_order_tech_table: 'Webserver IP-adres|Eerst gevonden getroffen cipher-paren|Overtreden regel # (\'II-B\')', detail_web_tls_cipher_order_verdict_bad: 'Je webserver dwingt niet zijn eigen cipher-voorkeur af (\'I\').', @@ -486,7 +489,7 @@ const internet_nl_messages = { detail_web_tls_dane_valid_tech_table: 'Webserver-IP-adres|DANE TLSA-record geldig', detail_web_tls_dane_valid_verdict_bad: 'De DANE-fingerprint op je domeinnaam is niet geldig voor je websitecertificaat. Óf iemand manipuleerde het antwoord van jouw nameserver, óf je domeinnaam heeft een serieuze DANE-configuratiefout. Dit laatste maakt je domeinnaam onbereikbaar voor alle gebruikers die DANE-fingerprints controleren. Neem zo spoedig mogelijk contact op met je nameserver-beheerder en/of hostingprovider.', detail_web_tls_dane_valid_verdict_good: 'De DANE-fingerprint op je domeinnaam is geldig voor je websitecertificaat.', - detail_web_tls_fs_params_exp: 'We testen of de publieke parameters, die in de Diffie-Hellman sleuteluitwisseling worden gebruikt door je webserver, veilig zijn.
ECDHE: De veiligheid van de ECDHE-sleuteluitwisseling is afhankelijk van de geselecteerde elliptische kromme. We testen of de bitlengte van de gebruikte kromme tenminste 224 bits is. Op dit moment kunnen we niet de naam van de elliptische kromme testen.
DHE: De veiligheid van de Diffie-Hellman Ephemeral (DHE) sleuteluitwisseling is afhankelijk van de lengte van de publieke en geheime sleutels die in de geselecteerde finite field-groep wordt gebruikt. We testen of je publieke DHE-sleutelmateriaal gebruikmaakt van een van de gepredefinieerde finite field-groepen die zijn gespecificeerd in RFC 7919. Zelf-gegenereerde groepen zijn \'Onvoldoende\'.
De grotere sleutellengtes die noodzakelijk zijn voor het gebruik van DHE gaan ten koste van de prestaties. Maak een zorgvuldige afweging en gebruik waar mogelijk ECDHE in plaats van DHE.
RSA als alternatief: Naast ECDHE en DHE, kan RSA gebruikt worden voor sleuteluitwisseling. RSA loopt het risico om onvoldoende veilig te worden (huidige status \'Uit te faseren\'). De publieke RSA-parameters worden getest in de subtest \'Handtekening-parameters van certificaat\'. Overigens heeft RSA voor certificaatverificatie wel de status \'Goed\'.
Zie \'ICT-beveiligingsrichtlijnen voor Transport Layer Security (TLS) v2.1\' van NCSC, richtlijn B5-1 en tabel 9 voor ECDHE, en richtlijn B6-1 en tabel 10 voor DHE.
Elliptische krommen voor ECDHE
secp384r1
, secp256r1
, x448
, en x25519
secp224r1
Finite field-groepen voor DHE
Voldoende:
64852d6890ff9e62eecd1ee89c72af9af244dfef5b853bcedea3dfd7aade22b3
c410cc9c4fd85d2c109f7ebe5930ca5304a52927c0ebcb1a11c5cf6b2386bbab
Uit te faseren:
9ba6429597aeed2d8617a7705b56e96d044f64b07971659382e426675105654b
Onvoldoende: Andere groepen
Let op: de bovenstaande namen zijn gebaseerd op de IANA naamgevingsconventies. Soms worden alternatieve namen gebruikt om te verwijzen naar dezelfde krommen, zoals prime256v1
(ANSI) en NIST P-256
voor secp256r1
.',
+ detail_web_tls_fs_params_exp: 'We testen of de publieke parameters, die in de Diffie-Hellman sleuteluitwisseling worden gebruikt door je webserver, veilig zijn.
ECDHE: De veiligheid van de ECDHE-sleuteluitwisseling is afhankelijk van de geselecteerde elliptische kromme. We testen of de bitlengte van de gebruikte kromme tenminste 224 bits is. Op dit moment kunnen we niet de naam van de elliptische kromme testen.
DHE: De veiligheid van de Diffie-Hellman Ephemeral (DHE) sleuteluitwisseling is afhankelijk van de lengte van de publieke en geheime sleutels die in de geselecteerde finite field-groep wordt gebruikt. We testen of je publieke DHE-sleutelmateriaal gebruikmaakt van een van de gepredefinieerde finite field-groepen die zijn gespecificeerd in RFC 7919. Zelf-gegenereerde groepen zijn \'Onvoldoende\'.
De grotere sleutellengtes die noodzakelijk zijn voor het gebruik van DHE gaan ten koste van de prestaties. Maak een zorgvuldige afweging en gebruik waar mogelijk ECDHE in plaats van DHE.
RSA als alternatief: Naast ECDHE en DHE, kan RSA gebruikt worden voor sleuteluitwisseling. RSA loopt het risico om onvoldoende veilig te worden (huidige status \'Uit te faseren\'). De publieke RSA-parameters worden getest in de subtest \'Handtekening-parameters van certificaat\'. Overigens heeft RSA voor certificaatverificatie wel de status \'Goed\'.
Zie \'ICT-beveiligingsrichtlijnen voor Transport Layer Security (TLS) v2.1\' van NCSC, richtlijn B5-1 en tabel 9 voor ECDHE, en richtlijn B6-1 en tabel 10 voor DHE.
Elliptische krommen voor ECDHE
secp384r1
, secp256r1
, x448
, en x25519
secp224r1
Finite field-groepen voor DHE
Voldoende:
64852d6890ff9e62eecd1ee89c72af9af244dfef5b853bcedea3dfd7aade22b3
c410cc9c4fd85d2c109f7ebe5930ca5304a52927c0ebcb1a11c5cf6b2386bbab
Uit te faseren:
Onvoldoende: Andere groepen
Let op: de bovenstaande namen zijn gebaseerd op de IANA naamgevingsconventies. Soms worden alternatieve namen gebruikt om te verwijzen naar dezelfde krommen, zoals prime256v1
(ANSI) en NIST P-256
voor secp256r1
.',
detail_web_tls_fs_params_label: 'Sleuteluitwisselingsparameters',
detail_web_tls_fs_params_tech_table: 'Webserver-IP-adres|Getroffen parameters|Status',
detail_web_tls_fs_params_verdict_bad: 'Je webserver ondersteunt onvoldoende veilige parameters voor Diffie-Hellman-sleuteluitwisseling.',
@@ -498,7 +501,7 @@ const internet_nl_messages = {
detail_web_tls_http_compression_tech_table: 'Webserver-IP-adres|HTTP-compressie',
detail_web_tls_http_compression_verdict_bad: 'Je webserver ondersteunt HTTP-compressie, wat een beveiligingsrisico kan vormen.',
detail_web_tls_http_compression_verdict_good: 'Je webserver ondersteunt geen HTTP-compressie.',
- detail_web_tls_https_exists_exp: 'We testen of je website bereikbaar is via HTTPS.
Als dat het geval is, dan testen we in de navolgende subtesten of HTTPS ook veilig is geconfigureerd conform de \'ICT-beveiligingsrichtlijnen voor Transport Layer Security (TLS) v2.1\'.
HTTPS garandeert de vertrouwelijkheid en integriteit van uitgewisselde informatie. Omdat het van de situatie afhangt hoe (privacy-)gevoelig en waardevol informatie is, een bezoeker van je website bepaalt hoe (privacy-) gevoelig en waardevol informatie is, is een veilige HTTPS-configuratie voor iedere website van belang. Ook triviale, publieke informatie kan door omstandigheden voor de gebruiker zeer gevoelig en waardevol zijn. Let op: vanwege performance-redenen worden de testen in het HTTPS-testonderdeel alleen uitgevoerd voor het eerst beschikbare IPv6- en IPv4-adres.', + detail_web_tls_https_exists_exp: 'We testen of je website bereikbaar is via HTTPS.
Als dat het geval is, dan testen we in de navolgende subtesten of HTTPS ook veilig is geconfigureerd conform de \'ICT-beveiligingsrichtlijnen voor Transport Layer Security (TLS) v2.1\'.
HTTPS garandeert de vertrouwelijkheid en integriteit van uitgewisselde informatie. Omdat het van de situatie afhangt hoe (privacy-)gevoelig en waardevol informatie is, een bezoeker van je website bepaalt hoe (privacy-) gevoelig en waardevol informatie is, is een veilige HTTPS-configuratie voor iedere website van belang. Ook triviale, publieke informatie kan door omstandigheden voor de gebruiker zeer gevoelig en waardevol zijn.
Opmerking over IPv6/IPv4: vanwege performance-redenen worden alle testen in de categorie \'Beveiligde verbinding (HTTPS)\' alleen uitgevoerd voor het eerst beschikbare IPv6- en IPv4-adres.', detail_web_tls_https_exists_label: 'HTTPS beschikbaar', detail_web_tls_https_exists_tech_table: 'Webserver-IP-adres|HTTPS aanwezig', detail_web_tls_https_exists_verdict_bad: 'Je website biedt geen HTTPS aan.', @@ -529,7 +532,7 @@ const internet_nl_messages = { detail_web_tls_ocsp_stapling_verdict_bad: 'Je webserver ondersteunt OCSP maar de data in het antwoord is niet valide.', detail_web_tls_ocsp_stapling_verdict_good: 'Je webserver ondersteunt OCSP en de data in het antwoord is valide.', detail_web_tls_ocsp_stapling_verdict_ok: 'Je webserver ondersteunt OCSP niet.', - detail_web_tls_renegotiation_client_exp: '
We testen of een client (doorgaans een webbrowser) een renegotiation kan initiëren met jouw webserver.
In het algemeen is het niet nodig om clients de mogelijkheid te bieden om een renegotiation te initiëren (client-initiated renegotiation). Bovendien komt een webserver hierdoor binnen een TLS-verbinding bloot te staan aan DoS-aanvallen. Een aanvaller kan ook zonder renegotiation op initiatief van een client soortgelijke DoS-aanvallen uitvoeren door veel parallelle TLS-verbindingen te openen. Dergelijke aanvallen zijn echter eenvoudiger te traceren en met de standaardmaatregelen te mitigeren. Merk op dat client-initiated renegotiation impact heeft op de beschikbaarheid en niet op de vertrouwelijkheid.
Zie \'ICT-beveiligingsrichtlijnen voor Transport Layer Security (TLS) v2.1\' van NCSC, richtlijn 8-1 en tabel 13.
Niveau van vereistheid: Optioneel
Client-initiated renegotiation
We testen of een client (doorgaans een webbrowser) een renegotiation kan initiëren met jouw webserver.
In het algemeen is het niet nodig om clients de mogelijkheid te bieden om een renegotiation te initiëren (client-initiated renegotiation). Bovendien komt een webserver hierdoor binnen een TLS-verbinding bloot te staan aan DoS-aanvallen. Een aanvaller kan ook zonder renegotiation op initiatief van een client soortgelijke DoS-aanvallen uitvoeren door veel parallelle TLS-verbindingen te openen. Dergelijke aanvallen zijn echter eenvoudiger te traceren en met de standaardmaatregelen te mitigeren. Merk op dat client-initiated renegotiation impact heeft op de beschikbaarheid en niet op de vertrouwelijkheid.
Zie \'ICT-beveiligingsrichtlijnen voor Transport Layer Security (TLS) v2.1\' van NCSC, richtlijn 8-1 en tabel 13.
Niveau van vereistheid: Optioneel
Client-initiated renegotiation
Je hoster (of zijn netwerkprovider) kondigt via het Border Gateway Protocol (BGP) aan voor welke van zijn IP-adresblokken hij inkomend internetverkeer accepteert. Andere netwerkproviders gebruiken deze route-aankondigingen om te bepalen via welke route ze het verkeer voor de IP-adressen van je server moeten sturen.
Een route-aankondiging is echter te vervalsen. Een andere netwerkprovider kan namelijk in de positie zijn om het IP-adresblok van jouw IP-adres te koppelen aan zijn netwerk en op die manier mogelijk internetverkeer te ontvangen dat eigenlijk voor jouw netwerkprovider bedoeld is. De oorzaak kan per ongeluk of kwaadwillig zijn. In beide gevallen kan het ertoe leiden dat je server onbereikbaar is of dat internetverkeer naar je server wordt onderschept.
Resource Public Key Infrastructure (RPKI) verbetert de bescherming hiertegen aanzienlijk. Met RPKI kan de rechtmatige houder van een blok IP-adressen namelijk een digitaal ondertekende verklaring met route-autorisatie (Route Origin Authorisation; afgekort: ROA) publiceren. Een andere netwerkprovider die internetverkeer wil sturen naar een bepaalde IP-adres, kan de bijbehorende verklaring gebruiken om ongeldige (Invalid
) routes te filteren. Daarmee voorkomt de netwerkprovider dat internetverkeer vanuit zijn netwerk naar ongeautoriseerde providernetwerken wordt gestuurd.
Niveau van vereistheid: Aanbevolen', + detail_web_mail_rpki_ns_exists_exp: 'We testen of er een RPKI Route Origin Authorisation (ROA) is gepubliceerd voor alle IP-adressen van de nameservers van je domein.
Je hoster (of zijn netwerkprovider) kondigt via het Border Gateway Protocol (BGP) aan voor welke van zijn IP-adresblokken hij inkomend internetverkeer accepteert. Andere netwerkproviders gebruiken deze route-aankondigingen om te bepalen via welke route ze het verkeer voor de IP-adressen van je server moeten sturen.
Een route-aankondiging is echter te vervalsen. Een andere netwerkprovider kan namelijk in de positie zijn om het IP-adresblok van jouw IP-adres te koppelen aan zijn netwerk en op die manier mogelijk internetverkeer te ontvangen dat eigenlijk voor jouw netwerkprovider bedoeld is. De oorzaak kan per ongeluk of kwaadwillig zijn. In beide gevallen kan het ertoe leiden dat je server onbereikbaar is of dat internetverkeer naar je server wordt onderschept.
Resource Public Key Infrastructure (RPKI) verbetert de bescherming hiertegen aanzienlijk. Met RPKI kan de rechtmatige houder van een blok IP-adressen namelijk een digitaal ondertekende verklaring met route-autorisatie (Route Origin Authorisation; afgekort: ROA) publiceren. Een andere netwerkprovider die internetverkeer wil sturen naar een bepaalde IP-adres, kan de bijbehorende verklaring gebruiken om ongeldige (Invalid
) routes te filteren. Daarmee voorkomt de netwerkprovider dat internetverkeer vanuit zijn netwerk naar ongeautoriseerde providernetwerken wordt gestuurd.',
detail_web_mail_rpki_ns_exists_label: 'Aanwezigheid van Route Origin Authorisation',
detail_web_mail_rpki_ns_exists_tech_table: 'Nameserver|IP-adres|RPKI Route Origin Authorization',
detail_web_mail_rpki_ns_exists_verdict_bad: 'Voor tenminste één van de IP-adressen van je nameservers is geen RPKI Route Origin Authorisation (ROA) gepubliceerd.',
detail_web_mail_rpki_ns_exists_verdict_good: 'Voor alle IP-adressen van je nameservers is een RPKI Route Origin Authorisation (ROA) gepubliceerd.',
detail_web_mail_rpki_ns_exists_verdict_no_addresses: 'Je domein bevat geen nameservers. Daarom kon deze subtest niet worden uitgevoerd.',
- detail_web_mail_rpki_ns_valid_exp: 'We testen of de validatie-status van alle IP-adressen van de nameservers van je domein Valid
is. Als er meerdere overlappende route-aankondigingen voor het IP-adres zijn, dan testen we of die allemaal Valid
zijn.
Je hoster (of zijn netwerkprovider) kondigt via het Border Gateway Protocol (BGP) aan voor welke van zijn IP-adresblokken hij inkomend internetverkeer accepteert. Dat doet hij door (delen van) zijn IP-adresblokken (Route Prefix) aan het unieke nummer van zijn providernetwerk (Route Origin ASN) te koppelen, en door deze routeringsinformatie vervolgens te verspreiden. Andere netwerkproviders gebruiken deze route-aankondigingen om te bepalen via welke route ze het verkeer voor de IP-adressen moeten sturen.
Aanvullend kan je hoster (of zijn netwerkprovider) voor iedere route-aankondiging een digitaal ondertekende verklaring met route-autorisatie (Route Origin Authorisation, afgekort: ROA) publiceren met behulp van Resource Public Key Infrastructure (RPKI).
Een andere netwerkprovider die gevraagd wordt om internetverkeer te sturen naar het IP-adres van je server, kan de bijbehorende verklaring cryptografisch controleren. De gecontroleerde inhoud (Validated ROA Payload; afgekort: VRP) omvat welke providernetwerken (VRP ASN) voor ieder opgenomen IP-adresblok (VRP Prefix) geautoriseerd zijn om internetverkeer te ontvangen.
De netwerkprovider kan deze inhoud vervolgens gebruiken om BGP-routes te filteren. Hij kan bijvoorbeeld eventuele Invalid
routes weigeren om te voorkomen dat internetverkeer vanuit zijn netwerk naar ongeautoriseerde providernetwerken wordt gestuurd.
Het vergelijken van route-aankondigingen met route-autorisaties (RPKI Origin Validation; afgekort: ROV) kent de onderstaande drie mogelijk uitkomsten.
Valid
: De route-aankondiging van het desbetreffende IP-adres wordt gematcht door tenminste één gepubliceerde route-autorisatie. Een route-autorisatie is ook matchend voor meer specifieke route-aankondigingen (d.w.z. voor een deel van het IP-adresblok dat in de route-autorisatie staat), tenzij deze meer specifiek zijn dan de limiet die in de route-autorisatie is bepaald (via het maxLength
attribuut).
Invalid
: De route-aankondiging van het desbetreffende IP-adres is wel afgedekt door een route-autorisatie, maar deze matcht niet. Er zijn twee mogelijke oorzaken:
het IP-adresblok (Route Prefix) wordt aangekondigd vanaf een providernetwerk (Route Origin ASN) dat in de route-autorisatie niet is geautoriseerd (resultaat in onderstaande tabel: "invalid (as)");
maxLength
waarde (resultaat in onderstaande tabel: "invalid (length)").Let op: De status Invalid
duidt op een onbedoelde of kwaadwillige route-configuratiefout, die wordt veroorzaakt door je hoster of zijn netwerkprovider (interne fout) óf door een derde partij (externe fout). In beide gevallen kan het leiden tot de onbereikbaarheid van je server of het onderscheppen van internetverkeer naar je server. Neem zo spoedig mogelijk contact op met je hoster. Bij een interne fout moet je hoster zijn netwerkprovider die eigenaar is van de IP-adressen van je server, vragen om de route-configuratiefout te herstellen.
NotFound
: Er is geen verklaring met route-autorisatie gevonden die de route-aankondiging van het desbetreffende IP-adres afdekt. De routering van internetverkeer naar jouw server is daardoor minder veilig. Neem hierover contact op met je hoster. Deze kan zijn netwerkprovider die eigenaar is van de IP-adressen van je server vragen om route-autorisaties te publiceren.Niveau van vereistheid: Aanbevolen',
+ detail_web_mail_rpki_ns_valid_exp: 'We testen of de validatie-status van alle IP-adressen van de nameservers van je domein Valid
is. Als er meerdere overlappende route-aankondigingen voor het IP-adres zijn, dan testen we of die allemaal Valid
zijn.
Je hoster (of zijn netwerkprovider) kondigt via het Border Gateway Protocol (BGP) aan voor welke van zijn IP-adresblokken hij inkomend internetverkeer accepteert. Dat doet hij door (delen van) zijn IP-adresblokken (Route Prefix) aan het unieke nummer van zijn providernetwerk (Route Origin ASN) te koppelen, en door deze routeringsinformatie vervolgens te verspreiden. Andere netwerkproviders gebruiken deze route-aankondigingen om te bepalen via welke route ze het verkeer voor de IP-adressen moeten sturen.
Aanvullend kan je hoster (of zijn netwerkprovider) voor iedere route-aankondiging een digitaal ondertekende verklaring met route-autorisatie (Route Origin Authorisation, afgekort: ROA) publiceren met behulp van Resource Public Key Infrastructure (RPKI).
Een andere netwerkprovider die gevraagd wordt om internetverkeer te sturen naar het IP-adres van je server, kan de bijbehorende verklaring cryptografisch controleren. De gecontroleerde inhoud (Validated ROA Payload; afgekort: VRP) omvat welke providernetwerken (VRP ASN) voor ieder opgenomen IP-adresblok (VRP Prefix) geautoriseerd zijn om internetverkeer te ontvangen.
De netwerkprovider kan deze inhoud vervolgens gebruiken om BGP-routes te filteren. Hij kan bijvoorbeeld eventuele Invalid
routes weigeren om te voorkomen dat internetverkeer vanuit zijn netwerk naar ongeautoriseerde providernetwerken wordt gestuurd.
Het vergelijken van route-aankondigingen met route-autorisaties (RPKI Origin Validation; afgekort: ROV) kent de onderstaande drie mogelijk uitkomsten.
1․ Valid
: De route-aankondiging van het desbetreffende IP-adres wordt gematcht door tenminste één gepubliceerde route-autorisatie. Een route-autorisatie is ook matchend voor meer specifieke route-aankondigingen (d.w.z. voor een deel van het IP-adresblok dat in de route-autorisatie staat), tenzij deze meer specifiek zijn dan de limiet die in de route-autorisatie is bepaald (via het maxLength
attribuut).
2․ Invalid
: De route-aankondiging van het desbetreffende IP-adres is wel afgedekt door een route-autorisatie, maar deze matcht niet. Er zijn twee mogelijke oorzaken:
maxLength
waarde (resultaat in onderstaande tabel: "invalid (length)").3․ NotFound
: Er is geen verklaring met route-autorisatie gevonden die de route-aankondiging van het desbetreffende IP-adres afdekt. De routering van internetverkeer naar jouw server is daardoor minder veilig. Neem hierover contact op met je hoster. Deze kan zijn netwerkprovider die eigenaar is van de IP-adressen van je server vragen om route-autorisaties te publiceren.
Wat te doen als het testresultaat de status Invalid toont?
De status Invalid
duidt op een onbedoelde of kwaadwillige route-configuratiefout, die wordt veroorzaakt door je hoster of zijn netwerkprovider (interne fout) óf door een derde partij (externe fout). In beide gevallen verhoogt dit het risico dat je server onbereikbaar wordt of dat internetverkeer naar je server wordt onderschept. Neem zo spoedig mogelijk contact op met je hoster. Bij een interne fout moet je hoster zijn netwerkprovider die eigenaar is van de IP-adressen van je server, vragen om de route-configuratiefout te herstellen. ',
detail_web_mail_rpki_ns_valid_label: 'Geldigheid van route-aankondiging',
detail_web_mail_rpki_ns_valid_tech_table: 'Nameserver|BGP Route Prefix|BGP Route Origin ASN|RPKI Origin Validation status',
detail_web_mail_rpki_ns_valid_verdict_bad: 'Ten minste één IP-adres van je nameservers heeft een NotFound
validatie-status. Er is geen RPKI Route Origin Authorisation (ROA) gepubliceerd voor zijn route-aankondiging.',
detail_web_mail_rpki_ns_valid_verdict_good: 'Alle IP-adressen van je nameservers hebben een Valid
validatie-status. De route-aankondiging van deze IP-adressen wordt gematcht door de gepubliceerde RPKI Route Origin Authorisation (ROA).',
- detail_web_mail_rpki_ns_valid_verdict_invalid: 'Tenminste één IP-adres van je nameservers heeft een Invalid
validatie-status. De route-aankondiging van de desbetreffende IP-adressen wordt niet gematcht door de gepubliceerde RPKI Route Origin Authorisation (ROA). Dit duidt op een onbedoelde of kwaadwillige route-configuratiefout, die wordt veroorzaakt door je nameserver-hoster (interne fout) óf door een derde partij (externe fout). In beide gevallen kan het leiden tot de onbereikbaarheid van je server of het onderscheppen van internetverkeer naar je server. Neem zo spoedig mogelijk contact op met je nameserver-hoster. Bij een interne fout moet je nameserver-hoster zijn netwerkprovider die eigenaar is van de IP-adressen van je server, vragen om de route-configuratiefout te herstellen.',
+ detail_web_mail_rpki_ns_valid_verdict_invalid: 'Tenminste één IP-adres van je nameservers heeft een Invalid
validatie-status. De route-aankondiging van de desbetreffende IP-adressen wordt niet gematcht door de gepubliceerde RPKI Route Origin Authorisation (ROA). Dit duidt op een onbedoelde of kwaadwillige route-configuratiefout, die wordt veroorzaakt door je nameserver-hoster (interne fout) óf door een derde partij (externe fout). In beide gevallen verhoogt dit het risico dat je server onbereikbaar wordt of dat internetverkeer naar je server wordt onderschept. Neem zo spoedig mogelijk contact op met je nameserver-hoster. Bij een interne fout moet je nameserver-hoster zijn netwerkprovider die eigenaar is van de IP-adressen van je server, vragen om de route-configuratiefout te herstellen.',
detail_web_mail_rpki_ns_valid_verdict_not_routed: 'Deze subtest werd niet uitgevoerd, omdat er voor geen van de IP-adressen een route-aankondiging beschikbaar was.',
domain_pagetitle: 'Websitetest:',
domain_title: 'Websitetest: {{prettyaddr}} ',
domain_tweetmessage: 'De%20website%20{{report.domain}}%20scoort%20{{score}}%25%20in%20de%20websitetest%20van%20%40Internet_nl%3A',
faqs_appsecpriv_title: 'Beveiligingsopties',
faqs_badges_title: 'Gebruik van 100%-badges',
+ faqs_batch_and_dashboard_title: 'Batch API en webgebaseerd dashboard',
faqs_dnssec_title: 'Domeinnaamhandtekening (DNSSEC)',
faqs_halloffame_title: 'Criteria voor \'Hall of Fame voor Hosters\'',
faqs_https_title: 'Beveiligde websiteverbinding (HTTPS)',
faqs_ipv6_title: 'Modern adres (IPv6)',
faqs_mailauth_title: 'Protectie tegen e-mailphishing (DMARC, DKIM en SPF)',
+ faqs_measurements_title: 'Metingen met Internet.nl',
faqs_report_score_title: 'Norm en score',
faqs_report_subtest_bad: 'Slecht: gezakt voor VEREISTE subtest ⇒ nulscore',
faqs_report_subtest_error: 'Testfout: uitvoeringsfout tijdens testen ⇒ nulscore',
@@ -745,7 +750,9 @@ const internet_nl_messages = {
test_mailipv6_title: 'Bereikbaar via modern internetadres?',
test_mailipv6_warning_description: 'Helaas! Je mailserver is niet bereikbaar voor verzenders met moderne adressen (IPv6), of er is verbetering mogelijk. Daardoor maakt je mailserver nog geen onderdeel uit van het moderne internet. Vraag je e-mailprovider om IPv6 volledig aan te zetten.',
test_mailipv6_warning_summary: 'Niet bereikbaar via modern internetadres, of verbetering mogelijk (IPv6)',
- test_mailrpki_failed_description: 'Helaas! Ten minste één van de IP-adressen van je ontvangende mailserver(s) en bijbehorende nameservers heeft een route-aankondiging die niet wordt gematcht door de gepubliceerde route-autorisatie (RPKI). Dit duidt op een onbedoelde of kwaadwillige route-configuratiefout, die wordt veroorzaakt door je mailhoster of je nameserver-hoster (interne fout) óf door een derde partij (externe fout). In beide gevallen kan het leiden tot de onbereikbaarheid van je server of het onderscheppen van internetverkeer naar je server. Neem zo spoedig mogelijk contact op met je mailhoster of nameserver-hoster. Bij een interne fout moeten zij hun netwerkprovider die eigenaar is van de IP-adressen van je server, vragen om de route-configuratiefout te herstellen.',
+ test_mailrpki_error_description: 'De test kan nog niet worden uitgevoerd. Probeer het later nog eens. Sorry voor het ongemak.',
+ test_mailrpki_error_summary: 'Test niet klaar om uit te voeren (RPKI)',
+ test_mailrpki_failed_description: 'Helaas! Ten minste één van de IP-adressen van je ontvangende mailserver(s) en bijbehorende nameservers heeft een route-aankondiging die niet wordt gematcht door de gepubliceerde route-autorisatie (RPKI). Dit duidt op een onbedoelde of kwaadwillige route-configuratiefout, die wordt veroorzaakt door je mailhoster of je nameserver-hoster (interne fout) óf door een derde partij (externe fout). In beide gevallen verhoogt dit het risico dat je server onbereikbaar wordt of dat internetverkeer naar je server wordt onderschept. Neem zo spoedig mogelijk contact op met je mailhoster of nameserver-hoster. Bij een interne fout moeten zij hun netwerkprovider die eigenaar is van de IP-adressen van je server, vragen om de route-configuratiefout te herstellen.',
test_mailrpki_failed_summary: 'Ongeautoriseerde route-aankondiging (RPKI)',
test_mailrpki_info_description: 'Ter informatie: Je domein bevat geen nameservers en dus ook geen ontvangende mailserver(s). Er zijn geen routeerbare IP-adressen die kunnen worden getest (RPKI).',
test_mailrpki_info_summary: 'Geen routeerbare IP-adressen gevonden (RPKI)',
@@ -753,7 +760,7 @@ const internet_nl_messages = {
test_mailrpki_passed_description: 'Goed gedaan! Alle IP-adressen van je ontvangende mailserver(s) en bijbehorende nameservers hebben een route-aankondiging die wordt gematcht door de gepubliceerde route-autorisatie (RPKI). Daardoor is het e-mailtransport tussen verzendende mailservers met ingeschakelde route-validatie en jouw ontvangende mailserver(s) beter beschermd tegen diverse onbedoelde of kwaadwillige route-configuratiefouten, die kunnen leiden tot de onbereikbaarheid van je servers of de onderschepping van internetverkeer naar je servers.',
test_mailrpki_passed_summary: 'Geautoriseerde route-aankondiging (RPKI)',
test_mailrpki_title: 'Route-autorisatie?',
- test_mailrpki_warning_description: 'Waarschuwing! Ten minste één van de IP-adressen van je mailserver en bijbehorende nameservers heeft een route-aankondiging waarvoor geen route-autorisatie is gepubliceerd (RPKI). Daardoor is het e-mailtransport tussen verzendende mailservers met ingeschakelde route-validatie en jouw ontvangende mailserver(s) niet (volledig) beschermd tegen diverse onbedoelde of kwaadwillige route-configuratiefouten, die kunnen leiden tot de onbereikbaarheid van je servers of de onderschepping van internetverkeer naar je servers. Neem hierover contact op met je mailhoster of nameserver-hoster. Zij kunnen hun netwerkprovider die eigenaar is van de IP-adressen van je server vragen om route-autorisaties te publiceren.',
+ test_mailrpki_warning_description: 'Helaas! Ten minste één van de IP-adressen van je mailserver en bijbehorende nameservers heeft een route-aankondiging waarvoor geen route-autorisatie is gepubliceerd (RPKI). Daardoor is het e-mailtransport tussen verzendende mailservers met ingeschakelde route-validatie en jouw ontvangende mailserver(s) niet (volledig) beschermd tegen diverse onbedoelde of kwaadwillige route-configuratiefouten, die kunnen leiden tot de onbereikbaarheid van je servers of de onderschepping van internetverkeer naar je servers. Neem hierover contact op met je mailhoster of nameserver-hoster. Zij kunnen hun netwerkprovider die eigenaar is van de IP-adressen van je server vragen om route-autorisaties te publiceren.',
test_mailrpki_warning_summary: 'Route-autorisatie niet gepubliceerd (RPKI)',
test_mailtls_failed_description: 'Helaas! Verzendende mailservers die beveiligd e-mailtransport (STARTTLS en DANE) ondersteunen, kunnen met jouw ontvangende mailserver(s) geen of een onvoldoende beveiligde verbinding opzetten. Passieve en/of actieve aanvallers kunnen daardoor e-mails onderweg naar jou lezen. Vraag je mailprovider om STARTTLS en DANE te activeren, en veilig in te stellen. ',
test_mailtls_failed_summary: 'Mailserver-verbinding niet of onvoldoende beveiligd (STARTTLS en DANE)',
@@ -762,9 +769,9 @@ const internet_nl_messages = {
test_mailtls_invalid_null_mx_description: 'Waarschuwing: Je domeinnaam adverteert een "Null MX" record dat aangeeft dat deze geen e-mail accepteert. Echter, óf je domeinnaam heeft geen A/AAAA records, waardoor het "Null MX" record onnodig is. Óf op je domeinnaam is een ontvangende mailserver ingesteld door een ander MX record, waardoor de "Null MX" tegenstrijdig is.',
test_mailtls_invalid_null_mx_summary: 'Tegenstrijdig geconfigureerd niet-ontvangend maildomein (STARTTLS en DANE)',
test_mailtls_label: 'Beveiligde mailserver-verbinding (STARTTLS en DANE)',
- test_mailtls_no_mx_description: 'Ter informatie: Er zijn geen ontvangende mailservers (MX) ingesteld op je domeinnaam die geen A/AAAA records heeft. Dat is prima als je geen e-mail wilt ontvangen. Merk op dat je in dit geval geen \'Null MX\' record nodig hebt. Door je configuratie zijn de subtesten in de categorieën voor STARTTLS en DANE niet van toepassing. Dit geldt ook voor de mailserver-specifieke subtesten in de categorieën voor IPv6 en DNSSEC.',
+ test_mailtls_no_mx_description: 'Ter informatie: Het SPF-record op je domeinnaam geeft aan dat je domeinnaam kan worden gebruikt voor het verzenden van e-mail. Je domeinnaam heeft echter geen ontvangende mailserver (MX), wat de bezorgbaarheid van je verzonden e-mail kan belemmeren omdat het ontbreken van een MX door ontvangers kan worden gezien als een indicator voor spam. Als je daarom echt mail vanaf deze domeinnaam wilt verzenden, configureer dan een MX. Als je echter geen mail wilt versturen vanaf deze domeinnaam, configureer dan een SPF-record met alleen de term -all
en daarnaast een "Null MX" record als je domeinnaam A/AAAA-records heeft. Vanwege je configuratie zijn de subtests in de categorie STARTTLS en DANE en de mailserver-specifieke subtests in de categorieën IPv6 en DNSSEC niet van toepassing.',
test_mailtls_no_mx_summary: 'Goed geconfigureerd niet-ontvangend mail domein (STARTTLS en DANE)',
- test_mailtls_no_null_mx_description: 'Ter informatie: Er zijn geen ontvangende mailservers (MX) ingesteld op je domeinnaam die A/AAAA records heeft. We raden je aan om expliciet aan te geven dat je domeinnaam geen e-mail accepteert door een "Null MX" record te configureren. Door je huidige configuratie zijn de subtesten in de categorieën voor STARTTLS en DANE niet van toepassing. Dit geldt ook voor de mailserver-specifieke subtesten in de categorieën voor IPv6 en DNSSEC.',
+ test_mailtls_no_null_mx_description: 'Ter informatie: Er zijn geen ontvangende mailservers (MX) ingesteld op je domein dat A/AAAA-records heeft en dat een SPF-record heeft met alleen de term -all
. We raden je aan een "Null MX" record in te stellen om expliciet aan te geven dat je domein geen e-mail accepteert. Vanwege je configuratie zijn de subtests in de categorie STARTTLS en DANE en de mailserver-specifieke subtests in de categorieën IPv6 en DNSSEC niet van toepassing.',
test_mailtls_no_null_mx_summary: 'Niet expliciet geconfigureerd niet-ontvangend mail domein (STARTTLS en DANE)',
test_mailtls_null_mx_description: 'Ter informatie: Je domeinnaam die A/AAAA-records heeft, geeft duidelijk aan dat het geen e-mail accepteert door een "Null MX" record te adverteren. Dat is prima als je geen e-mail wilt ontvangen. Je configuratie maakt de subtesten in de categorieën voor STARTTLS en DANE niet van toepassing. Dit geldt ook voor de mailserver-specifieke subtesten in de categorieën voor IPv6 en DNSSEC.',
test_mailtls_null_mx_summary: 'Goed geconfigureerd niet-ontvangend mail domein (STARTTLS en DANE)',
@@ -781,15 +788,15 @@ const internet_nl_messages = {
test_mailtls_untestable_summary: 'Niet-testbare mailserver (STARTTLS en DANE)',
test_mailtls_warning_description: 'Helaas! Verzendende mailservers die beveiligd e-mailtransport (STARTTLS en DANE) ondersteunen, kunnen met jouw ontvangende mailserver(s) geen of een onvoldoende beveiligde verbinding opzetten. Passieve en/of actieve aanvallers kunnen daardoor e-mails onderweg naar jou lezen. Vraag je mailprovider om STARTTLS en DANE te activeren, en veilig in te stellen. ',
test_mailtls_warning_summary: 'Mailserver-verbinding niet of onvoldoende beveiligd (STARTTLS en DANE)',
- test_siteappsecpriv_failed_description: 'Helaas! Niet alle vereiste beveiligingsopties, dat wil zeggen security headers en security.txt, zijn ingesteld voor je website (Beveiligingsopties). Met security headers kan je browsermechanismen activeren om bezoekers te beschermen tegen aanvallen met bijvoorbeeld cross-site scripting (XSS) of framing. Via een security.txt-bestand kan je onderzoekers die een kwetsbaarheid op je systemen hebben gevonden, voorzien van je contactgegevens en je Coordinated Vulnerability Disclosure policy. Merk op dat HTTPS een voorwaarde is voor alle geteste beveiligingsopties. Verder is het zo dat security headers (behalve Referrer-Policy) niet relevant zijn voor domeinen die redirecten (via een 301/302 HTTP Status Code).',
+ test_siteappsecpriv_failed_description: 'Helaas! Niet alle vereiste beveiligingsopties, dat wil zeggen security headers en security.txt, zijn ingesteld voor je website (Beveiligingsopties). Met security headers kan je browsermechanismen activeren om bezoekers te beschermen tegen aanvallen met bijvoorbeeld cross-site scripting (XSS) of framing. Security headers zijn ook relevant voor domeinen met HTTP response codes zoals \'301 Redirect\' en \'404 Not Found\', omdat ze hun eigen browsercontext creëren (MIME type \'text/html\') die kwetsbaar kan zijn voor bepaalde aanvallen. Via een security.txt-bestand kan je onderzoekers die een kwetsbaarheid op je systemen hebben gevonden, voorzien van je contactgegevens en je Coordinated Vulnerability Disclosure policy. Merk op dat HTTPS een voorwaarde is voor alle geteste beveiligingsopties.',
test_siteappsecpriv_failed_summary: 'Een of meer vereiste beveiligingsopties niet ingesteld (Beveiligingsopties) ',
- test_siteappsecpriv_info_description: 'Ter informatie: Niet alle optionele beveiligingsopties, dat wil zeggen security headers en security.txt, zijn ingesteld voor je website (Beveiligingsopties). Met security headers kan je browsermechanismen activeren om bezoekers te beschermen tegen aanvallen met bijvoorbeeld cross-site scripting (XSS) of framing. Via een security.txt-bestand kan je onderzoekers die een kwetsbaarheid op je systemen hebben gevonden, voorzien van je contactgegevens en je Coordinated Vulnerability Disclosure policy. Merk op dat HTTPS een voorwaarde is voor alle geteste beveiligingsopties. Verder is het zo dat security headers (behalve Referrer-Policy) niet relevant zijn voor domeinen die redirecten (via een 301/302 HTTP Status Code).',
+ test_siteappsecpriv_info_description: 'Ter informatie: Niet alle optionele beveiligingsopties, dat wil zeggen security headers en security.txt, zijn ingesteld voor je website (Beveiligingsopties). Met security headers kan je browsermechanismen activeren om bezoekers te beschermen tegen aanvallen met bijvoorbeeld cross-site scripting (XSS) of framing. Security headers zijn ook relevant voor domeinen met HTTP response codes zoals \'301 Redirect\' en \'404 Not Found\', omdat ze hun eigen browsercontext creëren (MIME type \'text/html\') die kwetsbaar kan zijn voor bepaalde aanvallen. Via een security.txt-bestand kan je onderzoekers die een kwetsbaarheid op je systemen hebben gevonden, voorzien van je contactgegevens en je Coordinated Vulnerability Disclosure policy. Merk op dat HTTPS een voorwaarde is voor alle geteste beveiligingsopties.',
test_siteappsecpriv_info_summary: 'Een of meer optionele beveiligingsopties niet ingesteld (Beveiligingsopties) ',
test_siteappsecpriv_label: 'Beveiligingsopties',
- test_siteappsecpriv_passed_description: 'Goed gedaan! Alle beveiligingsopties, dat wil zeggen security headers en security.txt, zijn ingesteld voor je website (Beveiligingsopties). Met security headers kan je browsermechanismen activeren om bezoekers te beschermen tegen aanvallen met bijvoorbeeld cross-site scripting (XSS) of framing. Via een security.txt-bestand kan je onderzoekers die een kwetsbaarheid op je systemen hebben gevonden, voorzien van je contactgegevens en je Coordinated Vulnerability Disclosure policy. Merk op dat HTTPS een voorwaarde is voor alle geteste beveiligingsopties. Verder is het zo dat security headers (behalve Referrer-Policy) niet relevant zijn voor domeinen die redirecten (via een 301/302 HTTP Status Code).',
+ test_siteappsecpriv_passed_description: 'Goed gedaan! Alle beveiligingsopties, dat wil zeggen security headers en security.txt, zijn ingesteld voor je website (Beveiligingsopties). Met security headers kan je browsermechanismen activeren om bezoekers te beschermen tegen aanvallen met bijvoorbeeld cross-site scripting (XSS) of framing. Security headers zijn ook relevant voor domeinen met HTTP response codes zoals \'301 Redirect\' en \'404 Not Found\', omdat ze hun eigen browsercontext creëren (MIME type \'text/html\') die kwetsbaar kan zijn voor bepaalde aanvallen. Via een security.txt-bestand kan je onderzoekers die een kwetsbaarheid op je systemen hebben gevonden, voorzien van je contactgegevens en je Coordinated Vulnerability Disclosure policy. Merk op dat HTTPS een voorwaarde is voor alle geteste beveiligingsopties.',
test_siteappsecpriv_passed_summary: 'Alle beveiligingsopties ingesteld (Beveiligingsopties)',
test_siteappsecpriv_title: 'Beveiligingsopties ingesteld?',
- test_siteappsecpriv_warning_description: 'Waarschuwing: Niet alle aanbevolen beveiligingsopties, dat wil zeggen security headers en security.txt, zijn ingesteld voor je website (Beveiligingsopties). Met security headers kan je browsermechanismen activeren om bezoekers te beschermen tegen aanvallen met bijvoorbeeld cross-site scripting (XSS) of framing. Via een security.txt-bestand kan je onderzoekers die een kwetsbaarheid op je systemen hebben gevonden, voorzien van je contactgegevens en je Coordinated Vulnerability Disclosure policy. Merk op dat HTTPS een voorwaarde is voor alle geteste beveiligingsopties. Verder is het zo dat security headers (behalve Referrer-Policy) niet relevant zijn voor domeinen die redirecten (via een 301/302 HTTP Status Code).',
+ test_siteappsecpriv_warning_description: 'Waarschuwing: Niet alle aanbevolen beveiligingsopties, dat wil zeggen security headers en security.txt, zijn ingesteld voor je website (Beveiligingsopties). Met security headers kan je browsermechanismen activeren om bezoekers te beschermen tegen aanvallen met bijvoorbeeld cross-site scripting (XSS) of framing. Security headers zijn ook relevant voor domeinen met HTTP response codes zoals \'301 Redirect\' en \'404 Not Found\', omdat ze hun eigen browsercontext creëren (MIME type \'text/html\') die kwetsbaar kan zijn voor bepaalde aanvallen. Via een security.txt-bestand kan je onderzoekers die een kwetsbaarheid op je systemen hebben gevonden, voorzien van je contactgegevens en je Coordinated Vulnerability Disclosure policy. Merk op dat HTTPS een voorwaarde is voor alle geteste beveiligingsopties.',
test_siteappsecpriv_warning_summary: 'Een of meer aanbevolen beveiligingsopties niet ingesteld (Beveiligingsopties) ',
test_sitednssec_failed_description: 'Helaas! Je domeinnaam is niet ondertekend met een geldige handtekening (DNSSEC). Daardoor zijn bezoekers die controle van domein-handtekeningen geactiveerd hebben, niet beschermd tegen gemanipuleerde vertaling van jouw domeinnaam naar kwaadaardige internetadressen. Vraag je nameserver-beheerder (vaak je registrar en/of hostingprovider) om DNSSEC te activeren.',
test_sitednssec_failed_summary: 'Domeinnaam niet ondertekend (DNSSEC)',
@@ -811,7 +818,9 @@ const internet_nl_messages = {
test_siteipv6_title: 'Bereikbaar via modern adres?',
test_siteipv6_warning_description: 'Helaas! Je website is niet bereikbaar voor bezoekers die een modern internetadres (IPv6) gebruiken, of er is verbetering mogelijk. Daardoor maakt je website nog geen onderdeel uit van het moderne internet. Vraag je hostingprovider om IPv6 volledig aan te zetten.',
test_siteipv6_warning_summary: 'Niet bereikbaar via modern internetadres, of verbetering mogelijk (IPv6)',
- test_siterpki_failed_description: 'Helaas! Ten minste één van de IP-adressen van je ontvangende webserver en bijbehorende nameservers heeft een route-aankondiging die niet wordt gematcht door de gepubliceerde route-autorisatie (RPKI). Dit duidt op een onbedoelde of kwaadwillige route-configuratiefout, die wordt veroorzaakt door je webhoster of je nameserver-hoster (interne fout) óf door een derde partij (externe fout). In beide gevallen kan het leiden tot de onbereikbaarheid van je server of het onderscheppen van internetverkeer naar je server. Neem zo spoedig mogelijk contact op met je webhoster of nameserver-hoster. Bij een interne fout moeten zij hun netwerkprovider die eigenaar is van de IP-adressen van je server, vragen om de route-configuratiefout te herstellen.',
+ test_siterpki_error_description: 'De test kan nog niet worden uitgevoerd. Probeer het later nog eens. Sorry voor het ongemak.',
+ test_siterpki_error_summary: 'Test niet klaar om uit te voeren (RPKI)',
+ test_siterpki_failed_description: 'Helaas! Ten minste één van de IP-adressen van je ontvangende webserver en bijbehorende nameservers heeft een route-aankondiging die niet wordt gematcht door de gepubliceerde route-autorisatie (RPKI). Dit duidt op een onbedoelde of kwaadwillige route-configuratiefout, die wordt veroorzaakt door je webhoster of je nameserver-hoster (interne fout) óf door een derde partij (externe fout). In beide gevallen verhoogt dit het risico dat je server onbereikbaar wordt of dat internetverkeer naar je server wordt onderschept. Neem zo spoedig mogelijk contact op met je webhoster of nameserver-hoster. Bij een interne fout moeten zij hun netwerkprovider die eigenaar is van de IP-adressen van je server, vragen om de route-configuratiefout te herstellen.',
test_siterpki_failed_summary: 'Ongeautoriseerde route-aankondiging (RPKI)',
test_siterpki_info_description: 'Ter informatie: Je domein bevat geen nameservers en dus ook geen IP-adressen van webservers. Er zijn geen routeerbare IP-adressen die kunnen worden getest (RPKI).',
test_siterpki_info_summary: 'Geen routeerbare IP-adressen gevonden (RPKI)',
@@ -819,7 +828,7 @@ const internet_nl_messages = {
test_siterpki_passed_description: 'Goed gedaan! Alle IP-adressen van je webserver en bijbehorende nameservers hebben een route-aankondiging die wordt gematcht door de gepubliceerde route-autorisatie (RPKI). Daardoor zijn bezoekers met ingeschakelde route-validatie beter beschermd tegen verschillende onbedoelde of kwaadwillige route-configuratiefouten, die kunnen leiden tot de onbereikbaarheid van je servers of de onderschepping van internetverkeer naar je servers.',
test_siterpki_passed_summary: 'Geautoriseerde route-aankondiging (RPKI)',
test_siterpki_title: 'Route-autorisatie?',
- test_siterpki_warning_description: 'Waarschuwing! Ten minste één van de IP-adressen van je webserver en bijbehorende nameservers heeft een route-aankondiging waarvoor geen route-autorisatie is gepubliceerd (RPKI). Als gevolg daarvan zijn bezoekers met ingeschakelde routevalidatie niet (volledig) beschermd tegen verschillende onbedoelde of kwaadwillige route-configuratiefouten, die kunnen leiden tot de onbereikbaarheid van je servers of de onderschepping van internetverkeer naar je servers. Neem hierover contact op met je webhoster of nameserver-hoster. Zij kunnen hun netwerkprovider die eigenaar is van de IP-adressen van je server vragen om route-autorisaties te publiceren.',
+ test_siterpki_warning_description: 'Helaas! Ten minste één van de IP-adressen van je webserver en bijbehorende nameservers heeft een route-aankondiging waarvoor geen route-autorisatie is gepubliceerd (RPKI). Als gevolg daarvan zijn bezoekers met ingeschakelde routevalidatie niet (volledig) beschermd tegen verschillende onbedoelde of kwaadwillige route-configuratiefouten, die kunnen leiden tot de onbereikbaarheid van je servers of de onderschepping van internetverkeer naar je servers. Neem hierover contact op met je webhoster of nameserver-hoster. Zij kunnen hun netwerkprovider die eigenaar is van de IP-adressen van je server vragen om route-autorisaties te publiceren.',
test_siterpki_warning_summary: 'Route-autorisatie niet gepubliceerd (RPKI)',
test_sitetls_failed_description: 'Helaas! De verbinding met je website is niet of onvoldoende beveiligd (HTTPS). Gegevens die onderweg zijn tussen je website en haar bezoekers, zijn daardoor niet voldoende beschermd tegen afluisteren en manipulatie. Vraag je hostingprovider om HTTPS aan te zetten en veilig te configureren.',
test_sitetls_failed_summary: 'Verbinding niet of onvoldoende beveiligd (HTTPS)',