LINUX.ORG.RU
ФорумAdmin

DNS over TLS для андроида

 , ,


0

3

Сделал себе DoT сервер, чтоб фильтровать вредно-ненужное

dig +tls работает и всё хорошо, но

2 из 3х андроидов не хотят с ним работать: private DNS server - cannot connect

  • lineageos на samsung tab6 lite - не работает
  • почти сток с magisk на samsung М12 - не работает
  • сток на samsung A12 - работает

tcpdump показывает что все 3 ломятся на 853й порт как положено, но 2 перестают после неск пакетов

кто-нибудь знает чего ему надо? dnssec?

★★★★★

Похоже какая-то хрень с letsencrypt. Сертификаты все валидные: isrg-root-x1 -> r3 -> host, но телефон рвет соединение с certificate expired.

Засунуть свой ЦА в телефон пока тож не получилось, не хочет его использовать для dot.

sergej ★★★★★
() автор топика
Ответ на: комментарий от anc

Мой R3 пишет Not After Mon, 15 Sep 2025 16:00:00 GMT

а в ЦА андроида его вроде и нет, там только корневой X1

sergej ★★★★★
() автор топика
Ответ на: комментарий от sergej

ругань в андроиде вот такая

05-21 03:23:17.674   536 21227 W resolv  : Validating DnsTlsServer X.X.X.X with mark 0xf025d
05-21 03:23:17.730   536 21227 W resolv  : SSL_connect ssl error =1, mark 0xf025d: No such file or directory
05-21 03:23:17.730   536 21227 W resolv  : TLS Handshake failed
05-21 03:23:17.732   536 21227 W resolv  : query failed
05-21 03:23:17.732   536 21227 W resolv  : validateDnsTlsServer returned 0 for X.X.X.X
05-21 03:23:17.732   536 21227 W resolv  : Validation failed
sergej ★★★★★
() автор топика
Ответ на: комментарий от Pinkbyte

openssl отработала только после того как я указал

-CAfile /system/etc/security/cacerts/6187b673.0

-CApath /system/etc/security/cacerts - уже не работает

говорит

 1 s:C = US, O = Let's Encrypt, CN = R3
   i:C = US, O = Internet Security Research Group, CN = ISRG Root X1
   a:PKEY: rsaEncryption, 2048 (bit); sigalg: RSA-SHA256
   v:NotBefore: Sep  4 00:00:00 2020 GMT; NotAfter: Sep 15 16:00:00 2025 GMT
-----BEGIN CERTIFICATE-----
MIIFFjCCAv6gAwIBAgIRAJErCErPDBinU/bWLiWnX1owDQYJKoZIhvcNAQELBQAw
TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw
WhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg
RW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC7AhUozPaglNMPEuyNVZLD+ILxmaZ6QoinXSaqtSu5xUyxr45r+XXIo9cP
R5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH+jdx
sxPnHKzhm+/b5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm
NHz6a4uPVymZ+DAXXbpyb/uBxa3Shlg9F8fnCbvxK/eG3MHacV3URuPMrSXBiLxg
Z3Vms/EY96Jc5lP/Ooi2R6X/ExjqmAl3P51T+c8B5fWmcBcUr2Ok/5mzk53cU6cG
/kiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC
AYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB/wQIMAYB
Af8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA
FHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw
AoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw
Oi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB
gt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W
PTNlclQtgaDqw+34IL9fzLdwALduO/ZelN7kIJ+m74uyA+eitRY8kc607TkC53wl
ikfmZW4/RvTZ8M6UK+5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz
CkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh+BIm
lJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML+Hbisq/yFOGwXD9RiX8F6sw6W4
avAuvDszue5L3sz85K+EC4Y/wFVDNvZo4TYXao6Z0f+lQKc0t8DQYzk1OXVu8rp2
yJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O
yK5GhDDX8oVfGKF5u+decIsH4YaTw7mP3GFxJSqv3+0lUFJoi5Lc5da149p90Ids
hCExroL1+7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0+L4WPlbuEjN/lxPFin+
HlUjr8gRsI3qfJOQFy/9rKIJR0Y/8Omwt/8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv
MldlTTKB3zhThV1+XWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX
nLRbwHOoq7hHwg==
-----END CERTIFICATE-----
...
    Verify return code: 20 (unable to get local issuer certificate)

Но в принципе проблема решилась:

  • в цепочке был всё таки устаревший сертификат X3, но firefox его не показывал, останавливаясь на X1
  • openssl его убирание не помогло, как я написал выше, но сам DoT вроде заработал
sergej ★★★★★
() автор топика
Ответ на: комментарий от sergej

Скорее всего баг старых реализаций SSL для множественных валидных цепочек. Задумывалось что если ХОТЯ бы одна из цепочек - валидная, то всё нормально. А из-за бага требовалось чтобы ВСЕ цепочки были валидны, а в одной из них - просроченный сертификат, отсюда и фэйл.

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

Да я уже уморился добавлять-удалять сертификаты в /system/etc/security/cacert.

Бинарь openssl из ccbins и проблема судя по всему в нём. Он в CApath ищет 4 отсутствующих там сертификата судя по strace.

В андроиде теперь работает почти всё кроме некоторых приложений. Да и андроид вроде свежий - 1й - сборка самсунга от февраля этого года, 2й - lineageos примерно годовалой давности.

sergej ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.