Версия 1.1.1, 18 юни 2008
Веселин Колев, Софийски Университет "Св. Климент Охридски"
Адрес за кореспонденция: vesso AT vesselin.org
Първоизточник: http://www.vesselin.org
Лиценз на документа: CC Attribution-ShareAlike
Съдържание:
Създаване на mntner обект за защита на обекта за X.509 сертификата
Промяна на метода за удостоверяване, зададен в mntner обекта защитаващ key-cert обекта
Забележка. Създаването на mntner и key-cert обектите става чрез услугата syncupdate-minimal на RIPE, която е достъпна на адрес:
https://www.ripe.net/db/syncupdates/syncupdate-minimal.html
Важна и полезна особеност на тази услуга е, че съобщава статуса на изпращаната към базата данни на RIPE промяна, веднага след изпращането на заявката.
Когато в RIPE DB се създава обект key-cert, той трябва да има попълнено поле mnt-by, за да може да бъде защитен от евентуална промяна от страна на произволен потребител на базата. Следователно хронологично първо трябва да се създаде mntner обект за защита на обекта от тип key-cert и след това последния да бъде създаден. Така още от създаването си обектът ще бъде заключен за несанкционирани промени.
Първоначално mntner обекта ще бъде защитен с парола, за която трябва да бъде пресметнат MD5 хеш, във формата, в който този хеш се използва в системата за удостоверяване на потребителите в UNIX (в Linux така се хешират паролите в /etc/shadow
). Това може да стане по два начина:
върху локалната система
Чрез инструментариума на системата се създава локален потребител и му се задава парола. Пресметнания хеш на паролата се намира във файла /etc/shadow
.
върху отдалечена система
MD5 форматен хеш на паролата може да се генерира през специален интерфейс, предлаган от web сървъра на RIPE (комуникацията е по протокол HTTPS), на адрес:
За примера по-долу ще се предполага, че пресметнатият и форматиран хеш има стойността:
$1$dLtHNram$MWTlIjg7PPdfVCOv3AL1g0
След като бъде изчислен хеша на паролата, в текстовото поле за въвеждане на информация на услугата syncupdate-minimal, се съставя шаблона за изграждане на mntner обекта:
За да се изпрати заявката към базата данни, се натиска бутона "Submit Query". Съобщението за успешно изпълнена заявка за изграждане на mntner обект има вида:
- From-Host: 62.44.127.1 - Date/Time: Wed Sep 9 09:12:04 2006 SUMMARY OF UPDATE: Number of objects found: 1 Number of objects processed successfully: 1 Create: 1 Modify: 0 Delete: 0 No Operation: 0 Number of objects processed with errors: 0 Create: 0 Modify: 0 Delete: 0 Syntax Errors: 0 DETAILED EXPLANATION: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The following object(s) were processed SUCCESSFULLY: --- Create SUCCEEDED: [mntner] TEST007-MNT ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ For assistance or clarification please contact: RIPE Database Administration <ripe-dbm@ripe.net>
При създаването на key-cert обект, трябва този, който го създава, да разполага с Base64 форматирано копие на X.509 сертификата. Този формат е известен още като PEM. Често X.509 сертификатите се пазят в бинарния формат DER. За да се конвертира даден X.509 сертификат от DER към PEM формат, може да се използва инструмента openssl
от пакета OpenSSL (http://www.openssl.org). Ето един пример как да стане това, ако сертификатът се намира във файла cert.der
:
$ openssl x509 -inform DER -in cert.der -outform PEM -out cert.pem
След изпълнението на този команден ред, във файла cert.pem
ще се намира PEM (Base64) форматирано копие на X.509 сертификата.
За да може PEM форматирания сертификат от файла cert.pem
да се изпрати за запис в базата на RIPE, трябва съдържанието на файла да се форматира. Формарирането засяга всеки ред на файла и се състои в поставянето на символния низ certif:
в началото на всеки ред. Ето един кратък команден ред (bash скрипт), който чете файла cert.pem
, прибавя "certif: "
в началото на всеки ред и резултата записва във файла cert.pem.ripe
:
$ while read line; do echo "certif: ${line}" >> cert.pem.ripe; done < cert.pem
Резултатът от изпълнението на командния ред, който се намира във файла cert.pem.ripe
е във вида:
certif: -----BEGIN CERTIFICATE----- certif: MIIHMDCCBRigAwIBAgIBETANBgkqhkiG9w0BAQUFADCByzELMAkGA1UEBhMCQkcx certif: DjAMBgNVBAgTBVNvZmlhMQ4wDAYDVQQHEwVTb2ZpYTEZMBcGA1UEChMQT3Blbklu certif: dGVncmEgTHRkLjEqMCgGA1UECxMhT3BlbkludGVncmEgQ2VydGlmaWNhdGUgQXV0 certif: aG9yaXR5MTIwMAYDVQQDEylPcGVuSW50ZWdyYSBDZXJ0aWZpY2F0ZSBmb3IgU3Rh certif: ZmYgU2lnbmluZzEhMB8GCSqGSIb3DQEJARYSY2FAb3BlbmludGVncmEuY29tMB4X certif: DTA1MTAxMjE0NTk0M1oXDTA2MTAxMjE0NTk0M1owgaIxCzAJBgNVBAYTAkJHMQ4w certif: DAYDVQQIEwVTb2ZpYTEOMAwGA1UEBxMFU29maWExGDAWBgNVBAoTD09wZW5JbnRl certif: Z3JhIFBMQzEaMBgGA1UECxMRT3BlbkludGVncmEgU3RhZmYxFzAVBgNVBAMTDlZl certif: c3NlbGluIEtvbGV2MSQwIgYJKoZIhvcNAQkBFhV2ZXNzb0BvcGVuaW50ZWdyYS5j certif: b20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6mLE2Nf+Ofyvee/Rk certif: 8oLhqo28nZcuMpoLIOSM3sgx85skn4JmrLQnSgxjWRGKujQXKWNkRk4peHnpZZlZ certif: 2ORNXW7fI+wpmAu+GuGeYjLRJdtWoYXUqdbic+aj9Zg27OU3t9H62kiwFIV1RJfO certif: b/d213xz1vGFEbRJnoa3zNtiyTDK6MdCTT5e5yog1bx5Ca3ve/x+heMScMd0uZTy certif: lDxYjBD7e0Gn/vxbnPm0OZdaDRPFrgD/n2aPAhsdQqS/CX4UX+HCE7a+miopQRR2 certif: Dw/SgvjZ5TsnQs3tC7aws+1HWEv0xrjRwrvYGwJea/Bnt1HRBe355Tv7fcfdCsu4 certif: 3ukBAgMBAAGjggJEMIICQDAJBgNVHRMEAjAAMAsGA1UdDwQEAwIDuDAdBgNVHSUE certif: FjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwEQYJYIZIAYb4QgEBBAQDAgSwMCwGCWCG certif: SAGG+EIBDQQfFh1PcGVuSW50ZWdyYSBTdGFmZiBDZXJ0aWZpY2F0ZTAdBgNVHQ4E certif: FgQUBjWEBfHaB2MxsN7K/CI8c+OuqVkwgesGA1UdIwSB4zCB4IAUdZeMNUNAaup6 certif: LbzYCWwuLB3fFTmhgcSkgcEwgb4xCzAJBgNVBAYTAkJHMQ4wDAYDVQQIEwVTb2Zp certif: YTEOMAwGA1UEBxMFU29maWExGTAXBgNVBAoTEE9wZW5JbnRlZ3JhIEx0ZC4xKjAo certif: BgNVBAsTIU9wZW5JbnRlZ3JhIENlcnRpZmljYXRlIEF1dGhvcml0eTElMCMGA1UE certif: AxMcT3BlbkludGVncmEgUm9vdCBDZXJ0aWZpY2F0ZTEhMB8GCSqGSIb3DQEJARYS certif: Y2FAb3BlbmludGVncmEuY29tggEDMEIGCWCGSAGG+EIBBAQ1FjNodHRwOi8vY2Eu certif: b3BlbmludGVncmEuY29tL2NybHMvb3BlbmludGVncmEtcm9vdC5jcmwwQwYJYIZI certif: AYb4QgEDBDYWNGh0dHA6Ly9jYS5vcGVuaW50ZWdyYS5jb20vY3Jscy9vcGVuaW50 certif: ZWdyYS1zdGFmZi5jcmwwMAYJYIZIAYb4QgEIBCMWIWh0dHA6Ly9jYS5vcGVuaW50 certif: ZWdyYS5jb20vcG9saWN5LzANBgkqhkiG9w0BAQUFAAOCAgEACEfpsIoShWyta8QM certif: tXgiLG+4zVRzNLj+c/G55qSlCGtZQx3wUOE+KIt/0YN3N60kHzyfsAtc5kCvdBkS certif: BV3Ni0moSgIk8TwUTzBFIBIPHVGczeYkMzmkhmlhevZ1jmTsqafMMCUFbydOLEX8 certif: zDmoATrS42ezDHCHQxlHmsgLXzk3LsOfO5fhdYTcLM4KpmhKRRMddKiPwdPdO4/6 certif: FQ+YexiXQJ+VG7kuzvZreTWZH1J7ZLOkZ6i3UH7k8ssMlL6+xJ8WSV3aWjEood3r certif: OzYJ0vKWQNtO7tzZ6hwMKqlXpm8/7sZfIr3vhlPO0len1k8K1XiAeD3bvlULR3WK certif: 7xJ+fI/VA1ptBwR5rbAai9aoe8Nkl+az9TnVU9ixpAonJJq45fzCi8nVyqe8a6jA certif: xHROKFUD6+YM3EF0ClPMxQC6NfvXlZPV0YZES3/9nyBZF8B54qf+R6JCmEsWG6MG certif: towSg9sSIAZfypKamyQkw5+9OjH7w8Yrdhb3pByKEIlFM+Vpa6bKdLSyZpGJgWX2 certif: TSqUQ13SrbMNKq7Yz4t9furit5jyespVNHgBaGTKvyAZ5ulOYpZ6F1eUPaIRH4KM certif: l6cLgDb1c3meULPa2+EjS/SOfOoz2K14TAA4UQybkaRktZsVimNRch7ozkvbwtBk certif: FddfkJ2FLQwqYcpO9yFhUX2DI4Y= certif: -----END CERTIFICATE-----
За да може този блок да се изпрати като заявка за изграждане на key-cert обект в RIPE DB, трябва да се прибави поне минималния набор служебни полета. Ето един пример за това (предполага се, че промените се правят и запазват във файла cert.pem.ripe
):
key-cert: AUTO-1 certif: -----BEGIN CERTIFICATE----- certif: MIIHMDCCBRigAwIBAgIBETANBgkqhkiG9w0BAQUFADCByzELMAkGA1UEBhMCQkcx certif: DjAMBgNVBAgTBVNvZmlhMQ4wDAYDVQQHEwVTb2ZpYTEZMBcGA1UEChMQT3Blbklu certif: dGVncmEgTHRkLjEqMCgGA1UECxMhT3BlbkludGVncmEgQ2VydGlmaWNhdGUgQXV0 certif: aG9yaXR5MTIwMAYDVQQDEylPcGVuSW50ZWdyYSBDZXJ0aWZpY2F0ZSBmb3IgU3Rh certif: ZmYgU2lnbmluZzEhMB8GCSqGSIb3DQEJARYSY2FAb3BlbmludGVncmEuY29tMB4X certif: DTA1MTAxMjE0NTk0M1oXDTA2MTAxMjE0NTk0M1owgaIxCzAJBgNVBAYTAkJHMQ4w certif: DAYDVQQIEwVTb2ZpYTEOMAwGA1UEBxMFU29maWExGDAWBgNVBAoTD09wZW5JbnRl certif: Z3JhIFBMQzEaMBgGA1UECxMRT3BlbkludGVncmEgU3RhZmYxFzAVBgNVBAMTDlZl certif: c3NlbGluIEtvbGV2MSQwIgYJKoZIhvcNAQkBFhV2ZXNzb0BvcGVuaW50ZWdyYS5j certif: b20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6mLE2Nf+Ofyvee/Rk certif: 8oLhqo28nZcuMpoLIOSM3sgx85skn4JmrLQnSgxjWRGKujQXKWNkRk4peHnpZZlZ certif: 2ORNXW7fI+wpmAu+GuGeYjLRJdtWoYXUqdbic+aj9Zg27OU3t9H62kiwFIV1RJfO certif: b/d213xz1vGFEbRJnoa3zNtiyTDK6MdCTT5e5yog1bx5Ca3ve/x+heMScMd0uZTy certif: lDxYjBD7e0Gn/vxbnPm0OZdaDRPFrgD/n2aPAhsdQqS/CX4UX+HCE7a+miopQRR2 certif: Dw/SgvjZ5TsnQs3tC7aws+1HWEv0xrjRwrvYGwJea/Bnt1HRBe355Tv7fcfdCsu4 certif: 3ukBAgMBAAGjggJEMIICQDAJBgNVHRMEAjAAMAsGA1UdDwQEAwIDuDAdBgNVHSUE certif: FjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwEQYJYIZIAYb4QgEBBAQDAgSwMCwGCWCG certif: SAGG+EIBDQQfFh1PcGVuSW50ZWdyYSBTdGFmZiBDZXJ0aWZpY2F0ZTAdBgNVHQ4E certif: FgQUBjWEBfHaB2MxsN7K/CI8c+OuqVkwgesGA1UdIwSB4zCB4IAUdZeMNUNAaup6 certif: LbzYCWwuLB3fFTmhgcSkgcEwgb4xCzAJBgNVBAYTAkJHMQ4wDAYDVQQIEwVTb2Zp certif: YTEOMAwGA1UEBxMFU29maWExGTAXBgNVBAoTEE9wZW5JbnRlZ3JhIEx0ZC4xKjAo certif: BgNVBAsTIU9wZW5JbnRlZ3JhIENlcnRpZmljYXRlIEF1dGhvcml0eTElMCMGA1UE certif: AxMcT3BlbkludGVncmEgUm9vdCBDZXJ0aWZpY2F0ZTEhMB8GCSqGSIb3DQEJARYS certif: Y2FAb3BlbmludGVncmEuY29tggEDMEIGCWCGSAGG+EIBBAQ1FjNodHRwOi8vY2Eu certif: b3BlbmludGVncmEuY29tL2NybHMvb3BlbmludGVncmEtcm9vdC5jcmwwQwYJYIZI certif: AYb4QgEDBDYWNGh0dHA6Ly9jYS5vcGVuaW50ZWdyYS5jb20vY3Jscy9vcGVuaW50 certif: ZWdyYS1zdGFmZi5jcmwwMAYJYIZIAYb4QgEIBCMWIWh0dHA6Ly9jYS5vcGVuaW50 certif: ZWdyYS5jb20vcG9saWN5LzANBgkqhkiG9w0BAQUFAAOCAgEACEfpsIoShWyta8QM certif: tXgiLG+4zVRzNLj+c/G55qSlCGtZQx3wUOE+KIt/0YN3N60kHzyfsAtc5kCvdBkS certif: BV3Ni0moSgIk8TwUTzBFIBIPHVGczeYkMzmkhmlhevZ1jmTsqafMMCUFbydOLEX8 certif: zDmoATrS42ezDHCHQxlHmsgLXzk3LsOfO5fhdYTcLM4KpmhKRRMddKiPwdPdO4/6 certif: FQ+YexiXQJ+VG7kuzvZreTWZH1J7ZLOkZ6i3UH7k8ssMlL6+xJ8WSV3aWjEood3r certif: OzYJ0vKWQNtO7tzZ6hwMKqlXpm8/7sZfIr3vhlPO0len1k8K1XiAeD3bvlULR3WK certif: 7xJ+fI/VA1ptBwR5rbAai9aoe8Nkl+az9TnVU9ixpAonJJq45fzCi8nVyqe8a6jA certif: xHROKFUD6+YM3EF0ClPMxQC6NfvXlZPV0YZES3/9nyBZF8B54qf+R6JCmEsWG6MG certif: towSg9sSIAZfypKamyQkw5+9OjH7w8Yrdhb3pByKEIlFM+Vpa6bKdLSyZpGJgWX2 certif: TSqUQ13SrbMNKq7Yz4t9furit5jyespVNHgBaGTKvyAZ5ulOYpZ6F1eUPaIRH4KM certif: l6cLgDb1c3meULPa2+EjS/SOfOoz2K14TAA4UQybkaRktZsVimNRch7ozkvbwtBk certif: FddfkJ2FLQwqYcpO9yFhUX2DI4Y= certif: -----END CERTIFICATE----- mnt-by: TEST007-MNT changed: certadmin@certs.lcpe.uni-sofia.bg 20060909 password: паролата_от_която_е_получен_MD5_хеша_за_TEST007-MNT source: RIPE
Този шаблон се копира в текстовото поле за въвеждане на информация на услугата syncupdate-minimal:
За да се изпрати заявката към базата данни, се натиска бутона "Submit Query". Съобщението за успешно изпълнена заявка за изграждане на key-cert обект ще има вида:
- From-Host: 62.44.127.1 - Date/Time: Wed Sep 9 09:34:17 2006 SUMMARY OF UPDATE: Number of objects found: 1 Number of objects processed successfully: 1 Create: 1 Modify: 0 Delete: 0 No Operation: 0 Number of objects processed with errors: 0 Create: 0 Modify: 0 Delete: 0 Syntax Errors: 0 DETAILED EXPLANATION: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The following object(s) were processed SUCCESSFULLY: --- Create SUCCEEDED: [key-cert] X509-996 ***Info: Authorisation for [mntner] TEST007-MNT using mnt-by: authenticated by: TEST007-MNT ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
След като key-cert обекта е създаден, защитата на mntner обекта, полето
auth: MD5-PW $1$dLtHNram$MWTlIjg7PPdfVCOv3AL1g0
може да се замени с
auth: X509-996
Възможно е задаването на повече от един ред за "auth" и следователно указването на повече от един сертификат (X.509 и/или OpenPGP) за управление на обекта.
Актуализираният шаблон се въвежда в полето на услугата syncupdate-minimal:
За да се изпрати заявката към базата данни, се натиска бутона "Submit Query". Съобщението за успешно изпълнена заявка за промяна на mntner обекта ще има вида:
- From-Host: 62.44.127.1 - Date/Time: Wed Sep 9 10:36:31 2006 SUMMARY OF UPDATE: Number of objects found: 1 Number of objects processed successfully: 1 Create: 1 Modify: 0 Delete: 0 No Operation: 0 Number of objects processed with errors: 0 Create: 0 Modify: 0 Delete: 0 Syntax Errors: 0 DETAILED EXPLANATION: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The following object(s) were processed SUCCESSFULLY: --- Modify SUCCEEDED: [mntner] TEST007-MNT ***Info: Authorisation for [mntner] TEST007-MNT using mnt-by: authenticated by: TEST007-MNT ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
След тази промяна, самият обект и всички обекти, които са подчинени само от този mntner обект, могат да бъдат модифицирани (и изтривани) само чрез електронно подписване на подавания като заявка към базата на RIPE шаблон.
След като mntner обекта и подчинените му се управляват само и единствено чрез заявки към базата данни на RIPE, които представляват електронно подписани шаблони, то следва да се уточни формата на заявките. При използване на сертификатния модел X.509, електронно подписаните шаблони в рамките на заявките, изпращани към базата данни на RIPE трябва да са в т.нар. "S/MIME формат". Това е монолитен формат за съобщения (за разлика от "inline" формата при OpenPGP). Подписването на шаблони във формата S/MIME може да се извърши или чрез специализиран клиент (например клиент за електронна поща, който поддържа стандарта за сигурна електронна поща PEM) или чрез обработката на файла съдържащ шаблона чрез инструменти, които могат да подпишат съдържанието му и да запазят резултата в S/MIME форматиран блок.
Ако заявките се изпращат чрез клиент за електронна поща, който поддържа X.509 базирания стандарт за сигурна поща PEM, то те се подписват с частния ключ към клиентския X.509 сертификат (същия X.509 сертификат, чието съдържание е поставено чрез процедурите по-горе в базата от данни на RIPE). Подписаното електронно писмо се изпраща към пощенския робот, който обслужва обработката на изпратени чрез електронна поща заявки (адресът на пощенския робот е auto-dbm@ripe.net). На електронния пощенски адрес на изпращача, се получава писмо за статуса на изпълнение на заявката.
Друг начин за генериране на електронно подписани шаблони за промяна на обект в RIPE DB и съхранението им в S/MIME блочен формат с цел последващото им изпращане като заявка към базата данни, е използването на инструментариума на пакета OpenSSL (http://www.openssl.org). Инструментът openssl
може да извършва подписване на блок информация и запазването му във S/MIME формат.
Ето и пример за използването на инструмента openssl
за подписване на блок с информация, който съдържа заявка за промяна на обекта TEST007-MNT, за който има зададено поле:
auth: X509-996
Шаблонът за промяна на обекта се създава във файл. За примера ще се приема, че това е файла object-mod.txt
. Ето примерен шаблон за промяна на обект, който е създаден в този файл:
mntner: TEST007-MNT descr: for tests only admin-c: VK1242-RIPE tech-c: VK1242-RIPE upd-to: certadmin@certs.lcpe.uni-sofia.bg auth: X509-996 mnt-by: TEST007-MNT refferal-by: TEST007-MNT changed: certadmin@certs.lcpe.uni-sofia.bg 20060906 changed: certadmin@certs.lcpe.uni-sofia.bg 20060907 changed: certadmin@certs.lcpe.uni-sofia.bg 20060908 changed: certadmin@certs.lcpe.uni-sofia.bg 20060909 source: RIPE
След като шаблонът е завършен и файлът object-mod.txt
е затворен, следва електронното подписване на шаблона. За да може да се извърши електронното подписване, е нужен частния ключ на двойката ключове, в основа на X.509 сертификата, описан в обекта X509-996. За примера се предполага, че частния ключ се намира във файла private.key.pem
. Нужно е също и копие от самия X.509 сертификат. За примера, нека той се намира във файла cert.pem
. Тогава, в команден ред, подписването на шаблона от файла object-mod.txt
и запазване на S/MIME форматирания блок в object-mod.txt.asc
, ще се реализира по следната схема:
$ openssl smime -sign -inkey private.key.pem -signer cert.pem -text -in object-mod.txt -out object-mod.txt.asc
При подписването ще бъде изискана паролата за защита на частния ключ, който се намира във файла private.key.pem
. След завършване на подписването и запазването на S/MIME форматирания разултат, във файла object-mod.txt.asc
ще има съдържание, подобно на следното:
MIME-Version: 1.0 Content-Type: multipart/signed; protocol="application/x-pkcs7-signature"; micalg=sha1; boundary="----D6A4ECFEAE0E62707FF0EA53409AC2D6" This is an S/MIME signed message ------D6A4ECFEAE0E62707FF0EA53409AC2D6 Content-Type: text/plain mntner: TEST007-MNT descr: for tests only admin-c: VK1242-RIPE tech-c: VK1242-RIPE upd-to: certadmin@certs.lcpe.uni-sofia.bg auth: X509-996 mnt-by: TEST007-MNT refferal-by: TEST007-MNT changed: certadmin@certs.lcpe.uni-sofia.bg 20060906 changed: certadmin@certs.lcpe.uni-sofia.bg 20060907 changed: certadmin@certs.lcpe.uni-sofia.bg 20060908 changed: certadmin@certs.lcpe.uni-sofia.bg 20060909 source: RIPE ------D6A4ECFEAE0E62707FF0EA53409AC2D6 Content-Type: application/x-pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" MIIKGQYJKoZIhvcNAQcCoIIKCjCCCgYCAQExCzAJBgUrDgMCGgUAMAsGCSqGSIb3 DQEHAaCCBzQwggcwMIIFGKADAgECAgERMA0GCSqGSIb3DQEBBQUAMIHLMQswCQYD VQQGEwJCRzEOMAwGA1UECBMFU29maWExDjAMBgNVBAcTBVNvZmlhMRkwFwYDVQQK ExBPcGVuSW50ZWdyYSBMdGQuMSowKAYDVQQLEyFPcGVuSW50ZWdyYSBDZXJ0aWZp Y2F0ZSBBdXRob3JpdHkxMjAwBgNVBAMTKU9wZW5JbnRlZ3JhIENlcnRpZmljYXRl IGZvciBTdGFmZiBTaWduaW5nMSEwHwYJKoZIhvcNAQkBFhJjYUBvcGVuaW50ZWdy YS5jb20wHhcNMDUxMDEyMTQ1OTQzWhcNMDYxMDEyMTQ1OTQzWjCBojELMAkGA1UE BhMCQkcxDjAMBgNVBAgTBVNvZmlhMQ4wDAYDVQQHEwVTb2ZpYTEYMBYGA1UEChMP T3BlbkludGVncmEgUExDMRowGAYDVQQLExFPcGVuSW50ZWdyYSBTdGFmZjEXMBUG A1UEAxMOVmVzc2VsaW4gS29sZXYxJDAiBgkqhkiG9w0BCQEWFXZlc3NvQG9wZW5p bnRlZ3JhLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALqYsTY1 /45/K9579GTyguGqjbydly4ymgsg5IzeyDHzmySfgmastCdKDGNZEYq6NBcpY2RG Til4eellmVnY5E1dbt8j7CmYC74a4Z5iMtEl21ahhdSp1uJz5qP1mDbs5Te30fra SLAUhXVEl85v93bXfHPW8YURtEmehrfM22LJMMrox0JNPl7nKiDVvHkJre97/H6F 4xJwx3S5lPKUPFiMEPt7Qaf+/Fuc+bQ5l1oNE8WuAP+fZo8CGx1CpL8JfhRf4cIT tr6aKilBFHYPD9KC+NnlOydCze0LtrCz7UdYS/TGuNHCu9gbAl5r8Ge3UdEF7fnl O/t9x90Ky7je6QECAwEAAaOCAkQwggJAMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgO4 MB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDARBglghkgBhvhCAQEEBAMC BLAwLAYJYIZIAYb4QgENBB8WHU9wZW5JbnRlZ3JhIFN0YWZmIENlcnRpZmljYXRl MB0GA1UdDgQWBBQGNYQF8doHYzGw3sr8Ijxz466pWTCB6wYDVR0jBIHjMIHggBR1 l4w1Q0Bq6notvNgJbC4sHd8VOaGBxKSBwTCBvjELMAkGA1UEBhMCQkcxDjAMBgNV BAgTBVNvZmlhMQ4wDAYDVQQHEwVTb2ZpYTEZMBcGA1UEChMQT3BlbkludGVncmEg THRkLjEqMCgGA1UECxMhT3BlbkludGVncmEgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 MSUwIwYDVQQDExxPcGVuSW50ZWdyYSBSb290IENlcnRpZmljYXRlMSEwHwYJKoZI hvcNAQkBFhJjYUBvcGVuaW50ZWdyYS5jb22CAQMwQgYJYIZIAYb4QgEEBDUWM2h0 dHA6Ly9jYS5vcGVuaW50ZWdyYS5jb20vY3Jscy9vcGVuaW50ZWdyYS1yb290LmNy bDBDBglghkgBhvhCAQMENhY0aHR0cDovL2NhLm9wZW5pbnRlZ3JhLmNvbS9jcmxz L29wZW5pbnRlZ3JhLXN0YWZmLmNybDAwBglghkgBhvhCAQgEIxYhaHR0cDovL2Nh Lm9wZW5pbnRlZ3JhLmNvbS9wb2xpY3kvMA0GCSqGSIb3DQEBBQUAA4ICAQAIR+mw ihKFbK1rxAy1eCIsb7jNVHM0uP5z8bnmpKUIa1lDHfBQ4T4oi3/Rg3c3rSQfPJ+w C1zmQK90GRIFXc2LSahKAiTxPBRPMEUgEg8dUZzN5iQzOaSGaWF69nWOZOypp8ww JQVvJ04sRfzMOagBOtLjZ7MMcIdDGUeayAtfOTcuw587l+F1hNwszgqmaEpFEx10 qI/B0907j/oVD5h7GJdAn5UbuS7O9mt5NZkfUntks6RnqLdQfuTyywyUvr7EnxZJ XdpaMSih3es7NgnS8pZA207u3NnqHAwqqVembz/uxl8ive+GU87SV6fWTwrVeIB4 Pdu+VQtHdYrvEn58j9UDWm0HBHmtsBqL1qh7w2SX5rP1OdVT2LGkCickmrjl/MKL ydXKp7xrqMDEdE4oVQPr5gzcQXQKU8zFALo1+9eVk9XRhkRLf/2fIFkXwHnip/5H okKYSxYbowa2jBKD2xIgBl/KkpqbJCTDn706MfvDxit2FvekHIoQiUUz5Wlrpsp0 tLJmkYmBZfZNKpRDXdKtsw0qrtjPi31+6uK3mPJ6ylU0eAFoZMq/IBnm6U5ilnoX V5Q9ohEfgoyXpwuANvVzeZ5Qs9rb4SNL9I586jPYrXhMADhRDJuRpGS1mxWKY1Fy HujOS9vC0GQV11+QnYUtDCphyk73IWFRfYMjhjGCAq0wggKpAgEBMIHRMIHLMQsw CQYDVQQGEwJCRzEOMAwGA1UECBMFU29maWExDjAMBgNVBAcTBVNvZmlhMRkwFwYD VQQKExBPcGVuSW50ZWdyYSBMdGQuMSowKAYDVQQLEyFPcGVuSW50ZWdyYSBDZXJ0 aWZpY2F0ZSBBdXRob3JpdHkxMjAwBgNVBAMTKU9wZW5JbnRlZ3JhIENlcnRpZmlj YXRlIGZvciBTdGFmZiBTaWduaW5nMSEwHwYJKoZIhvcNAQkBFhJjYUBvcGVuaW50 ZWdyYS5jb20CAREwCQYFKw4DAhoFAKCBsTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcN AQcBMBwGCSqGSIb3DQEJBTEPFw0wNjA5MDkxMTQzMDRaMCMGCSqGSIb3DQEJBDEW BBTR0zHdYyEsZTHeHcwY0ZDAUUGi5DBSBgkqhkiG9w0BCQ8xRTBDMAoGCCqGSIb3 DQMHMA4GCCqGSIb3DQMCAgIAgDANBggqhkiG9w0DAgIBQDAHBgUrDgMCBzANBggq hkiG9w0DAgIBKDANBgkqhkiG9w0BAQEFAASCAQBaeKi686+sIKFB9ongcZOygTUm kGiN0jmm9IDxAPmbNbuzH2tr9MStCfDjogPljagJcKK58bXhspqB5nxjPL9dADpR +foC/N7UtSSCzlBsMRVDTRslSvfHcteQ/a2iyBAod5ooQkJ+OyVC6GF9u08oLBx4 OQcLVVtrXYWBOSk5zL1m2GOMJ1K5c2DyBteTY9YKt+g3ZEBHU+FPN+y8Krgwj6hm o6bRwzwka6fRLhAJvQ3k0A2UnIYOMp7p8vWTH2dUALrIsV/sDIeIuVhg+wM9pi95 oNNlrUvNlzSFTJ9i3+euKF/m6A6qsadOGuClvALRLRknuK9IuTw0hoNS7Uu8 ------D6A4ECFEAE0E62707FF0EA53409AC2D6--
Полученият S/MIME форматен блок може да се изпрати в рамките на заявка през услугата syncupdate-minimal:
За да се изпрати заявката към базата данни, се натиска бутона "Submit Query". Съобщението за успешно изпълнена заявка за промяна на mntner обекта ще има вида:
- From-Host: 62.44.127.1 - Date/Time: Fri Sep 9 10:53:11 2006 SUMMARY OF UPDATE: Number of objects found: 1 Number of objects processed successfully: 1 Create: 1 Modify: 0 Delete: 0 No Operation: 0 Number of objects processed with errors: 0 Create: 0 Modify: 0 Delete: 0 Syntax Errors: 0 DETAILED EXPLANATION: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The following object(s) were processed SUCCESSFULLY: --- Modify SUCCEEDED: [mntner] TEST007-MNT ***Info: Authorisation for [mntner] TEST007-MNT using mnt-by: authenticated by: TEST007-MNT ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ВНИМАНИЕ! Описаният по-долу метод е податлив на колизии и следва да не се използва! За повече информация относно механизма на колизии, виж "Колизии на електронно подписани заявки "без билет" (с примери за RIPE DB)", 2007, Веселин Колев.
Подписаният шаблон може да се изпрати и към пощенския робот на RIPE DB като се използва "инжектиране" в опашката на Sendmail. При такова "инжектиране" не е нужно да има работещ демон sendmail, а просто да се обслужват "submit" процеси. Преди да се "инжектира" файлът с подписания шаблон, той трябва леко да се модифицира. В началото му се поставят полета "From", "To" и "Subject" така, че след прибавянето им, във файла (ако се следва горния пример, това е файла object-mod.txt.asc
) с подписаната заявка да има съдържание подобно на това:
From: Certificate Administrator <certadmin@certs.lcpe.uni-sofia.bg> To: RIPE AUTO-DBM <auto-dmb@ripe.net> Subject: (no subject) MIME-Version: 1.0 Content-Type: multipart/signed; protocol="application/x-pkcs7-signature"; micalg=sha1; boundary="----D6A4ECFEAE0E62707FF0EA53409AC2D6" This is an S/MIME signed message ------D6A4ECFEAE0E62707FF0EA53409AC2D6 Content-Type: text/plain mntner: TEST007-MNT descr: for tests only admin-c: VK1242-RIPE tech-c: VK1242-RIPE upd-to: certadmin@certs.lcpe.uni-sofia.bg auth: X509-996 mnt-by: TEST007-MNT refferal-by: TEST007-MNT changed: certadmin@certs.lcpe.uni-sofia.bg 20060906 changed: certadmin@certs.lcpe.uni-sofia.bg 20060907 changed: certadmin@certs.lcpe.uni-sofia.bg 20060908 changed: certadmin@certs.lcpe.uni-sofia.bg 20060909 source: RIPE ------D6A4ECFEAE0E62707FF0EA53409AC2D6 Content-Type: application/x-pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" MIIKGQYJKoZIhvcNAQcCoIIKCjCCCgYCAQExCzAJBgUrDgMCGgUAMAsGCSqGSIb3 DQEHAaCCBzQwggcwMIIFGKADAgECAgERMA0GCSqGSIb3DQEBBQUAMIHLMQswCQYD VQQGEwJCRzEOMAwGA1UECBMFU29maWExDjAMBgNVBAcTBVNvZmlhMRkwFwYDVQQK ExBPcGVuSW50ZWdyYSBMdGQuMSowKAYDVQQLEyFPcGVuSW50ZWdyYSBDZXJ0aWZp Y2F0ZSBBdXRob3JpdHkxMjAwBgNVBAMTKU9wZW5JbnRlZ3JhIENlcnRpZmljYXRl IGZvciBTdGFmZiBTaWduaW5nMSEwHwYJKoZIhvcNAQkBFhJjYUBvcGVuaW50ZWdy YS5jb20wHhcNMDUxMDEyMTQ1OTQzWhcNMDYxMDEyMTQ1OTQzWjCBojELMAkGA1UE BhMCQkcxDjAMBgNVBAgTBVNvZmlhMQ4wDAYDVQQHEwVTb2ZpYTEYMBYGA1UEChMP T3BlbkludGVncmEgUExDMRowGAYDVQQLExFPcGVuSW50ZWdyYSBTdGFmZjEXMBUG A1UEAxMOVmVzc2VsaW4gS29sZXYxJDAiBgkqhkiG9w0BCQEWFXZlc3NvQG9wZW5p bnRlZ3JhLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALqYsTY1 /45/K9579GTyguGqjbydly4ymgsg5IzeyDHzmySfgmastCdKDGNZEYq6NBcpY2RG Til4eellmVnY5E1dbt8j7CmYC74a4Z5iMtEl21ahhdSp1uJz5qP1mDbs5Te30fra SLAUhXVEl85v93bXfHPW8YURtEmehrfM22LJMMrox0JNPl7nKiDVvHkJre97/H6F 4xJwx3S5lPKUPFiMEPt7Qaf+/Fuc+bQ5l1oNE8WuAP+fZo8CGx1CpL8JfhRf4cIT tr6aKilBFHYPD9KC+NnlOydCze0LtrCz7UdYS/TGuNHCu9gbAl5r8Ge3UdEF7fnl O/t9x90Ky7je6QECAwEAAaOCAkQwggJAMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgO4 MB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDARBglghkgBhvhCAQEEBAMC BLAwLAYJYIZIAYb4QgENBB8WHU9wZW5JbnRlZ3JhIFN0YWZmIENlcnRpZmljYXRl MB0GA1UdDgQWBBQGNYQF8doHYzGw3sr8Ijxz466pWTCB6wYDVR0jBIHjMIHggBR1 l4w1Q0Bq6notvNgJbC4sHd8VOaGBxKSBwTCBvjELMAkGA1UEBhMCQkcxDjAMBgNV BAgTBVNvZmlhMQ4wDAYDVQQHEwVTb2ZpYTEZMBcGA1UEChMQT3BlbkludGVncmEg THRkLjEqMCgGA1UECxMhT3BlbkludGVncmEgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 MSUwIwYDVQQDExxPcGVuSW50ZWdyYSBSb290IENlcnRpZmljYXRlMSEwHwYJKoZI hvcNAQkBFhJjYUBvcGVuaW50ZWdyYS5jb22CAQMwQgYJYIZIAYb4QgEEBDUWM2h0 dHA6Ly9jYS5vcGVuaW50ZWdyYS5jb20vY3Jscy9vcGVuaW50ZWdyYS1yb290LmNy bDBDBglghkgBhvhCAQMENhY0aHR0cDovL2NhLm9wZW5pbnRlZ3JhLmNvbS9jcmxz L29wZW5pbnRlZ3JhLXN0YWZmLmNybDAwBglghkgBhvhCAQgEIxYhaHR0cDovL2Nh Lm9wZW5pbnRlZ3JhLmNvbS9wb2xpY3kvMA0GCSqGSIb3DQEBBQUAA4ICAQAIR+mw ihKFbK1rxAy1eCIsb7jNVHM0uP5z8bnmpKUIa1lDHfBQ4T4oi3/Rg3c3rSQfPJ+w C1zmQK90GRIFXc2LSahKAiTxPBRPMEUgEg8dUZzN5iQzOaSGaWF69nWOZOypp8ww JQVvJ04sRfzMOagBOtLjZ7MMcIdDGUeayAtfOTcuw587l+F1hNwszgqmaEpFEx10 qI/B0907j/oVD5h7GJdAn5UbuS7O9mt5NZkfUntks6RnqLdQfuTyywyUvr7EnxZJ XdpaMSih3es7NgnS8pZA207u3NnqHAwqqVembz/uxl8ive+GU87SV6fWTwrVeIB4 Pdu+VQtHdYrvEn58j9UDWm0HBHmtsBqL1qh7w2SX5rP1OdVT2LGkCickmrjl/MKL ydXKp7xrqMDEdE4oVQPr5gzcQXQKU8zFALo1+9eVk9XRhkRLf/2fIFkXwHnip/5H okKYSxYbowa2jBKD2xIgBl/KkpqbJCTDn706MfvDxit2FvekHIoQiUUz5Wlrpsp0 tLJmkYmBZfZNKpRDXdKtsw0qrtjPi31+6uK3mPJ6ylU0eAFoZMq/IBnm6U5ilnoX V5Q9ohEfgoyXpwuANvVzeZ5Qs9rb4SNL9I586jPYrXhMADhRDJuRpGS1mxWKY1Fy HujOS9vC0GQV11+QnYUtDCphyk73IWFRfYMjhjGCAq0wggKpAgEBMIHRMIHLMQsw CQYDVQQGEwJCRzEOMAwGA1UECBMFU29maWExDjAMBgNVBAcTBVNvZmlhMRkwFwYD VQQKExBPcGVuSW50ZWdyYSBMdGQuMSowKAYDVQQLEyFPcGVuSW50ZWdyYSBDZXJ0 aWZpY2F0ZSBBdXRob3JpdHkxMjAwBgNVBAMTKU9wZW5JbnRlZ3JhIENlcnRpZmlj YXRlIGZvciBTdGFmZiBTaWduaW5nMSEwHwYJKoZIhvcNAQkBFhJjYUBvcGVuaW50 ZWdyYS5jb20CAREwCQYFKw4DAhoFAKCBsTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcN AQcBMBwGCSqGSIb3DQEJBTEPFw0wNjA5MDkxMTQzMDRaMCMGCSqGSIb3DQEJBDEW BBTR0zHdYyEsZTHeHcwY0ZDAUUGi5DBSBgkqhkiG9w0BCQ8xRTBDMAoGCCqGSIb3 DQMHMA4GCCqGSIb3DQMCAgIAgDANBggqhkiG9w0DAgIBQDAHBgUrDgMCBzANBggq hkiG9w0DAgIBKDANBgkqhkiG9w0BAQEFAASCAQBaeKi686+sIKFB9ongcZOygTUm kGiN0jmm9IDxAPmbNbuzH2tr9MStCfDjogPljagJcKK58bXhspqB5nxjPL9dADpR +foC/N7UtSSCzlBsMRVDTRslSvfHcteQ/a2iyBAod5ooQkJ+OyVC6GF9u08oLBx4 OQcLVVtrXYWBOSk5zL1m2GOMJ1K5c2DyBteTY9YKt+g3ZEBHU+FPN+y8Krgwj6hm o6bRwzwka6fRLhAJvQ3k0A2UnIYOMp7p8vWTH2dUALrIsV/sDIeIuVhg+wM9pi95 oNNlrUvNlzSFTJ9i3+euKF/m6A6qsadOGuClvALRLRknuK9IuTw0hoNS7Uu8 ------D6A4ECFEAE0E62707FF0EA53409AC2D6--
Процесът на инжектиране на съдържанието на подписаната заявка в опашката на Sendmail може да се илюстрира чрез следния примерен команден ред:
$ cat object-mod.txt.asc | /usr/sbin/sendmail -f certadmin@certs.lcpe.uni-sofia.bg auto-dbm@ripe.net
След като пощенският робот auto-dbm@ripe.net получи заявката и я обработи, ще изпрати сведение за процеса на изпълнението й на електронния пощенски адрес на изпращача.
Версия 1.1: [tar.gz] [електронен подпис върху архива]
Публикувана на: 14 октомври 2007г.
Този документ е с OpenPGP подписано съдържание
[информация] [електронен подпис][TimeStamp]