Опубликован: 04.07.2008 | Уровень: профессионал | Доступ: платный
Лекция 7:

Принцип единого входа (Single sign-on)

Опрос (расшифровка) маркера LTPA

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

Следующий пример отображает журнал отладки сервера Domino, выполняющего три шага по обработке полученного им маркера LTPA, сгенерированного WebSphere: декодирование кода Base64, расшифровка с применением совместно используемого секретного ключа (импортированного из WebSphere), и определение того, следует ли доверять имени пользователя в маркере как пользователю, прошедшему аутентификацию.

06/09/2003 05:53:39.53 PM [03071:00010-106510] SSO API> Decoding Websphere
style Single Sign-On token (LTPA).
06/09/2003 05:53:39.53 PM [03071:00010-106510] SSO API> Dumping memory
of encoded token [364 bytes].
00000000: 6C71 3150 4847 4536 3576 597A 6154 7878 'qlP1GH6Ev5zYTaxx'
00000010: 6F5A 534D 4262 6D70 3746 4643 6B56 3172 'ZoMSbBpmF7CFVkr1'
00000020: 5146 7045 5762 756E 6467 4532 6C68 314B 'FQEpbWnugd2EhlK1'
00000030: 3138 6E47 5164 5A41 634C 3965 3258 386C '81GndQAZLce9X2l8'
00000040: 2B7A 7239 7263 7976 5537 6332 4957 4F44 'z+9rcrvy7U2cWIDO'
00000050: 3755 4677 586D 2B6B 3768 7A31 3767 6976 'U7wFmXk+h71zg7vi'
00000060: 3672 5949 4672 7566 4C4D 636E 6236 665A 'r6IYrFfuMLnc6bZf'
00000070: 6E63 6A43 6246 4476 7159 476A 2F72 5445 'cnCjFbvDYqjGr/ET'
00000080: 6742 6C57 7779 7457 3671 6632 7467 3978 'BgWlywWtq62fgtx9'
00000090: 4947 6D71 4674 6643 7470 716D 6E56 5863 'GIqmtFCfptmqVncX'
000000A0: 6C43 5A4A 5050 4E48 4733 336E 6F69 757A 'ClJZPPHN3Gn3iozu'
000000B0: 4562 3777 475A 6136 3362 5138 6C4D 7554 'bEw7ZG6ab38QMlTu'
000000C0: 5475 7166 7438 5971 5269 5736 4949 6238 'uTfq8tqYiR6WII8b'
000000D0: 5839 6578 6552 714F 6378 6A35 4663 6435 '9XxeReOqxc5jcF5d'
000000E0: 4343 4E69 3076 4A6D 4372 686A 306C 6A51 'CCiNv0mJrCjhl0Qj'
000000F0: 4F57 6142 5955 7634 7771 3838 5A57 3230 'WOBaUY4vqw88WZ02'
00000100: 6F42 7671 3939 7231 5765 3068 4753 596B 'Boqv991reWh0SGkY'
00000110: 7A63 5862 4D31 4A4B 314E 4F6B 3576 4337 'czbX1MKJN1kOv57C'
00000120: 7449 654A 5253 3577 477A 4352 384D 684C 'ItJeSRw5zGRCM8Lh'
00000130: 6665 4E43 7365 504C 6B2B 7258 5157 7343 'efCNesLP+kXrWQCs'
00000140: 5866 3741 576C 534C 4630 6941 3035 6C76 'fXA7lWLS0FAi50vl'
00000150: 3247 356E 5076 2B68 4968 2F64 6955 3442 'G2n5vPh+hId/UiB4'
00000160: 5065 4F6F 324C 476D 3958 3D30 'ePoOL2mGX90='
06/09/2003 05:53:39.55 PM [03071:00010-106510] SSO API> Dumping memory
of encoded token before decryption step [272 bytes].
00000000: 53AA 18F5 847E 9CBF 4DD8 71AC 8366 6C12 '*Su.~.?.XM,qf..l'
00000010: 661A B017 5685 F54A 0115 6D29 EE69 DD81 '.f.0.VJu..)min.]'
00000020: 8684 B552 51F3 75A7 1900 C72D 5FBD 7C69 '..R5sQ'u..-G=_i|'
00000030: EFCF 726B F2BB 4DED 589C CE80 BC53 9905 'Ookr;rmM.X.NS<..'
00000040: 3E79 BD87 8373 E2BB A2AF AC18 EE57 B930 'y>.=s.;b/".,Wn09'
00000050: E9DC 5FB6 7072 15A3 C3BB A862 AFC6 13F1 '\i6_rp#.;Cb(F/q.'
00000060: 0506 CBA5 AD05 ADAB 829F 7DDC 8A18 B4A6 '..%K.-+-..\}..&4'
00000070: 9F50 D9A6 56AA 1777 520A 3C59 CDF1 69DC 'P.&Y*Vw..RY<qM\i'
00000080: 8AF7 EE8C 4C6C 643B 9A6E 7F6F 3210 EE54 'w..nlL;dn.o..2Tn'
00000090: 37B9 F2EA 98DA 1E89 2096 1B8F 7CF5 455E '97jrZ.... ..u|^E'
000000A0: AAE3 CEC5 7063 5D5E 2808 BF8D 8949 28AC 'c*ENcp^].(.?I.,('
000000B0: 97E1 2344 E058 515A 2F8E 0FAB 593C 369D 'a.D#X`ZQ./+.<Y.6'
000000C0: 8A06 F7AF 6BDD 6879 4874 1869 3673 D4D7 '../w]kyhtHi.s6WT'
000000D0: 89C2 5937 BF0E C29E D222 495E 391C 64CC 'B.7Y.?.B"R^I.9Ld'
000000E0: 3342 E1C2 F079 7A8D CFC2 45FA 59EB AC00 'B3Bayp.zBOzEkY.,'
000000F0: 707D 953B D262 50D0 E722 E54B 691B BCF9 '}p;.bRPP"gKe.iy<'
00000100: 7EF8 8784 527F 7820 FA78 2F0E 8669 DD5F 'x~...R xxz./i._]'
06/09/2003 05:53:39.55 PM [03071:00010-106510] SSO API> Dumping memory
of encoded token after decryption step [271 bytes].
00000000: 3A75 7375 7265 3A5C 7469 6F73 6573 2D63 'u:user\:itsosec-'
00000010: 646C 7061 632E 6D61 692E 7374 2E6F 6269 'ldap.cam.itso.ib'
00000020: 2E6D 6F63 5C6D 333A 3938 552F 4449 443D 'm.com\:389/UID=D'
00000030: 6948 6B6E 656C 4F2C 3D55 7250 646F 6375 'Hinkle,OU=Produc'
00000040: 6974 6E6F 6F2C 723D 6465 6F62 6B6F 2C73 'tion,o=redbooks,'
00000050: 3D63 7375 3125 3530 3235 3831 3733 3138 'c=us%10552183781'
00000060: 3635 4125 4274 4669 5238 3748 4858 6C4F '56%AtBiF8RH7XHOl'
00000070: 7A47 554F 5645 3575 7456 4172 597A 765A 'GzOUEVu5VtrAzYZv'
00000080: 6756 314E 5374 6548 3671 7573 554E 6872 'VgN1tSHeq6suNUrh'
00000090: 4E4B 3537 6632 6442 6A35 3161 6969 3479 'KN752fBd5ja1iiy4'
000000A0: 2F65 5868 7261 5A7A 4D6A 5977 6E6F 715A 'e/hXarzZjMwYonZq'
000000B0: 7868 2B43 4142 7434 7A52 5764 4B33 4E6A 'hxC+BA4tRzdW3KjN'
000000C0: 3044 6471 4B55 4C48 7450 5772 7150 2B48 'D0qdUKHLPtrWPqH+'
000000D0: 4655 7A33 4469 4F75 3261 4B4A 7349 5855 'UF3ziDuOa2JKIsUX'
000000E0: 6A69 684A 5567 594D 4335 6266 3335 3256 'ijJhgUMY5Cfb53V2'
000000F0: 6263 7034 4657 6851 6A35 7152 7636 3641 'cb4pWFQh5jRq6vA6'
00000100: 6339 4662 4441 5A58 7248 744D 414A 3D '9cbFADXZHrMtJA='
06/09/2003 05:53:39.56 PM [03071:00010-106510] SSO API> -LDAP Realm
= itsosec-ldap.cam.itso.ibm.com\:389
06/09/2003 05:53:39.56 PM [03071:00010-106510] SSO API> -Username
= UID=DHinkle/OU=Production/o=redbooks/c=us
06/09/2003 05:53:39.56 PM [03071:00010-106510] SSO API> -Expiration
Ticks = 1055218378666 [06/10/2003 12:12:58 AM].
06/09/2003 05:53:39.56 PM [03071:00010-106510] WebAuth> LOOKUP in view
$Users (user='UID=DHinkle/OU=Production/o=redbooks/c=us')
Пример 7.1.

В этом примере обратите внимание на то, что Domino не осуществляет проверку достоверности цифровой подписи выпустившего сервера, когда определяет, что это маркер LTPA WebSphere. Domino интересует только три аспекта относительно принятого маркера LTPA:

  • факт, что маркер может быть расшифрован с применением совместно используемого секретного ключа;
  • имя пользователя (отличительное имя LDAP);
  • дату/время истечения срока действия.

Как правило, серверы WebSphere не имеют доступных Domino открытых/секретных ключей и, значит, без наличия общей инфраструктуры открытых ключей (PKI) для Domino не существует способа проверить достоверность цифровой подписи сервера WebSphere.

Основным соображением относительно обеспечения безопасности при использовании LTPA в смешанной среде WebSphere-Domino является защита совместно используемого секретного ключа. Если секретный ключ был скомпрометирован, то для осведомленного относительно этого факта лица становится возможным генерировать поддельные маркеры. Несмотря на всевозможные меры относительно защиты секретного ключа, теоретически он все еще уязвим для автономных атак в том случае, если достаточное количество маркеров получено посредством выборки (с помощью сетевого сниффинга) и кто-то может определить ключ с применением взлома по методу "грубой силы" (brute force cracking). По этой причине секретный ключ на сервере WebSphere должен периодически повторно генерироваться, например каждые три месяца, после чего повторно импортироваться на другие серверы.

Антон Чурков
Антон Чурков
Россия, Владимир, Владимирский государственный университет, 2002
Елена Коппалина
Елена Коппалина
Россия, г. Губкинский