LINUX.ORG.RU
решено ФорумAdmin

Самоподписанный PEM сертификат

 ,


0

1

Мне надо проверить, является ли заданный сертификат самоподписанным.

Правильно ли я понимаю, что такой сертификат от выданного УЦ отличается тем, что в нем есть строка CA:FALSE?

Если это не так, то как определить? Подскажите пожалуйста



Последнее исправление: CYB3R (всего исправлений: 3)

Если хочешь минимизировать количество ложно-негативных срабатываний то лучше составить список доверенны центров сертификации (можно выдернуть из любимого браузера например) и если сертификат подписан не одним из них то считать его самоподписанным.

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

Выданный УЦ подписан УЦ, самоподписанный подписан абы-чем (самодельным УЦ или самим собой).
Разница между хорошими, годными сертификатами и плохими не нехническая, а сугубо административная.

Я могу создать свой корневой сертификат который технически не будет ничем отличаться от тех которые использует уважаемые корневые УЦ, могу подписать с помощью него другой сертификат, и технически он будет идентичен сертификату подписанному респектабельным УЦ.
Вот только едва-ли кто-то (в частности производители браузеров и прочего) сочтут что подпись от моего УЦ заслуживает такого-же доверия как подпись от респектабельного, крупного УЦ. Они не добавят мой корневой сертификат в свои иписки доверенных корневых сертификатов и их ПО не будет доверять поим подписям на других сертификатах.
Вся эта система с сертификатами держится на предположении о том что респектабельные УЦ дорожа своей репутацией будут проверять что они подписывают перед тем как подписывать (по факту это не особо работает, но в первом приближении жить можно).

MrClon ★★★★★
()

Мне надо проверить, является ли заданный сертификат самоподписанным.

На самом деле Вам нужно определить есть ли в цепочке подписей сертификата один из УЦ которым Вы доверяете. Если нет то сертификат считается самоподписанным. Все очень субъективно.

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

давайте объясню еще раз

у меня есть некий сертификат, который выглядит, допустим, вот так:

Certificate:
Data:
Version: 3 (0x2)
Serial Number:
e0:2d:01:45:32:fb:81:60
Signature Algorithm: sha1WithRSAEncryption
Issuer: C=UA, ST=Zaporizhzhya, O=MegaCompany, CN=Serge Dukhopel/emailAddress=amirul@mail.ru
Validity
Not Before: Nov 8 16:46:07 2013 GMT
Not After : Dec 8 16:46:07 2013 GMT
Subject: C=UA, ST=Zaporizhzhya, O=MegaCompany, CN=Serge Dukhopel/emailAddress=amirul@mail.ru
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (1024 bit)
Modulus:
00:b1:a9:c0:0c:b6:03:db:89:98:34:e0:59:9e:4b:
c0:e0:df:b1:45:da:0f:a9:79:39:35:15:84:cc:28:
35:eb:7b:75:90:c1:7d:15:78:56:dd:67:1b:c1:23:
6c:bd:a4:f1:7f:3b:84:5d:62:07:c2:e1:e2:1e:56:
7b:e1:69:64:ef:72:eb:0f:1b:08:f8:52:45:27:64:
f8:d3:27:7b:c7:b7:c1:c6:22:50:b0:0a:62:6b:a7:
de:81:0a:08:df:f5:41:24:8d:03:c4:b1:4a:6e:12:
5f:94:aa:ec:3b:1a:d7:bf:5a:0e:cb:65:fa:55:12:
0f:6a:39:63:d4:5a:c9:a1:a9
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE
X509v3 Extended Key Usage:
TLS Web Server Authentication, TLS Web Client Authentication
Signature Algorithm: sha1WithRSAEncryption
25:e8:cd:32:47:c7:ce:15:99:a9:c3:81:00:72:2f:76:c2:48:
6e:c0:b6:f0:a1:7b:bd:c9:f6:04:be:da:bd:91:96:e3:d5:e9:
4d:b6:4d:e1:7f:4b:b2:08:ab:4e:fc:14:92:91:3f:97:ae:8d:
c9:52:93:05:cf:ee:64:95:12:60:a7:68:26:f8:cc:62:02:08:
56:e5:d2:ec:37:eb:08:1a:b8:21:b9:26:47:df:3a:f8:53:b7:
a1:f1:36:6c:6e:cb:75:08:cb:22:80:fd:c4:0f:39:04:25:79:
f2:26:95:8d:bb:4f:18:1b:b4:55:e8:c4:be:0a:1b:c8:94:9e:
07:ef

Здесь строка CA:FALSE явно говорит, что он самоподписан

Если же CA:TRUE, то он якобы выдан якобы УЦ

Есть еще какие то нюансы?

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

Строка CA:TRUE - говорит что это сертификат самого УЦ, CA:FALSE - клиентский.

Нет понятия самоподписан, это субъективная трактовка факта что Вы не доверяете ни одному из УЦ которые подписали этот сертификат.

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

все, разобрался

если поле Issuer совпадает с полем Subject, то сертификат может считаться самоподписанным

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

А что ам собственно нужно: однозначно определить что некоторый сертификат является самоподписанным или однозначно определить что он таковым не является? В общем что нужно минимизировать: ложно положительные или ложно-отрицательные срабатывания?

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

Еще один с кашей в голове. Нет такого термина как самоподписанный сертификат.

Для технологии открытых ключей необходимо, чтобы пользователь открытого ключа был уверен, что этот ключ принадлежит именно тому удаленному субъекту (пользователю или системе), который будет использовать средства шифрования или цифровой подписи. Такую уверенность дают сертификаты открытых ключей, то есть структуры данных, которые связывают величины открытых ключей с субъектами. Эта связь достигается цифровой подписью доверенного CA под каждым сертификатом.

Специально используют термин - доверенный.

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

Если заменить «самоподписанный» на «недоверенный» вам станет легче? ТСу первый термин видимо понятнее и роднее. Я пытаюсь выяснить чего именно он хочет в конце концов добиться, представляется разумным говорить в терминах привычных ТСу.

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