Изменение Cipher Suite, вызывающее ошибку входа в систему единого входа - PullRequest
0 голосов
/ 21 января 2019

У меня есть Perl-скрипт, который пытается войти на веб-сайт (mywebserver.com) с именем пользователя и паролем, используя соединение https, а затем выходит из системы.

Наблюдалось, что когда наборы шифров на сервере (mywebserver.com) были усилены в Apache Config., Вход на веб-сервер завершился неудачно. Ни имя пользователя, ни пароль не изменились, ни срок действия сертификата сервера для mywebserver.com не истек.

Возможно ли, что изменение шифров на веб-сервере mywebserver.com приведет к ошибке входа в систему. Должен ли клиент, на котором выполняется этот Perl-скрипт, поддерживать ВСЕ новые наборы шифров, которые обновляются на mywebserver.com?

Как найти список шифров, поддерживаемых на клиентском компьютере (ОС SUN), с которого запускается Perl-скрипт? и как исправить проблему с логином?

Новые наборы шифров обновлены в конфигурации apache mywebserver.com:

SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256: ECDHE-ECDSA-AES128-GCM-SHA256: ECDHE-RSA-AES256-GCM-SHA384: ECDHE-ECDSA-AES25E-AES256-G-38: GC GCM-SHA256: ДНЕ-DSS-AES128-GCM-SHA256: kEDH + AESGCM: ECDHE-RSA-AES128-SHA256: ECDHE-ECDSA-AES128-SHA256: ECDHE-RSA-AES128-SHA: ECDHE-ECDSA-AES128-SHA: ECDHE-RSA-AES256-SHA384: ECDHE-ECDSA-AES256-SHA384: ECDHE-RSA-AES256-SHA: ECDHE-ECDSA-AES256-SHA: DHE-RSA-AES128-SHA256: DHE-RSA-AES128-SHA: DHE- DSS-AES128-SHA256: DHE-RSA-AES256-SHA256: ДНЕ-DSS-AES256-SHA: DHE-RSA-AES256-SHA: aNULL: eNULL: ЭКСПОРТ: DES: RC4: 3DES: MD5 : PSK

SSLProxyCipherSuite ECDHE-RSA-AES128-GCM-SHA256: ECDHE-ECDSA-AES128-GCM-SHA256: ECDHE-RSA-AES256-GCM-SHA384: ECDHE-ECDSA-AES-G12-A12-AE-SH8-AE-388-AE8 GCM-SHA256: ДНЕ-DSS-AES128-GCM-SHA256: kEDH + AESGCM: ECDHE-RSA-AES128-SHA256: ECDHE-ECDSA-AES128-SHA256: ECDHE-RSA-AES128-SHA: ECDHE-ECDSA-AES128-SHA: ECDHE-RSA-AES256-SHA384: ECDHE-ECDSA-AES256-SHA384: ECDHE-RSA-AES256-SHA: ECDHE-ECDSA-AES256-SHA: DHE-RSA-AES128-SHA256: DHE-RSA-AES128-SHA: DHE- DSS-AES128-SHA256: DHE-RSA-AES256-SHA256: ДНЕ-DSS-AES256-SHA: DHE-RSA-AES256-SHA: aNULL: eNULL: ЭКСПОРТ: DES: RC4: 3DES: MD5 :! PSK

Старые комплекты шифров, которые были заменены в конфигурации Apache:

SSLCipherSuite -ВСЕ: ECDH + AESGCM: DH + AESGCM: ECDH + AES256: DH + AES256: ECDH + AES128: DH + AES: RSA + AESGCM: RSA + AES:! ANULL:! MD5:! DSS:! AES256 : ECDH + 3DES: DH + 3DES: RSA + 3DES

SSLProxyCipherSuite - ВСЕ: ECDH + AESGCM: DH + AESGCM: ECDH + AES256: DH + AES256: ECDH + AES128: DH + AES: RSA + AESGCM: RSA + AES:! ANULL:! MD5:! DSS:! AES256 :! ECDH + 3DES:! DH + 3DES:! RSA + 3DES

Скрипт Perl: enter code here

#!/opt/SP/perl/perl-5.18.2-reloc/bin/perl -w


use strict;
use warnings;
use LWP;
use Time::Piece;
use Time::HiRes qw[gettimeofday tv_interval];

my $time1=[gettimeofday()];

my $browser = LWP::UserAgent->new;
$browser->agent($0.' $Revision: 778 $');
$browser->cookie_jar( {} );

my @ns_headers = (
        'Accept' => 'text/html, text/plain, image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */*',
        'Accept-Charset' => 'iso-8859-1,*',
        'Accept-Language' => 'en-US',
);
my $login= "https://mywebsite.com/opensso/rest/1.0/opensso/identity/authenticate";
my $logout="https://mywebsite.com/opensso/rest/1.0/opensso/identity/logout";
my $response;

# Logon
$response = $browser->post(
        $login,
        [
                username => 'test@123',
                password => 'pssd123',
        ],
        @ns_headers);

do_die("login: ".$response->status_line) unless $response->is_success;

do_die("No token received ".$response->content) unless $response->content=~ /^token\.id=(\S+)$/;

# Logoff
my $token= $1;

$response = $browser->post(
        $logout,
        [
                subjectid => $token,
        ],
        @ns_headers);

do_die("logout: ".$response->status_line) unless $response->is_success;

my $date = localtime->strftime('%y%m%d');
my $time = localtime->strftime('%R');

my $milliseconds = tv_interval($time1);

open (MYFILE, '>>/var/SP/data/reporting/customersystems/result_KPI.txt');
print MYFILE "$date $time    GIS     sso_logon_logoff        0       $milliseconds\n";
close (MYFILE);
exit 0;

sub do_die {
        my($text)= @_;
        # $text=~ s/\n/\\n/g;
        print $text;
        open (MYFILE, '>>/var/SP/data/reporting/customersystems/result_KPI.txt');
        print MYFILE "$date $time    GIS     sso_logon_logoff        1       $milliseconds\n";
        close (MYFILE);
        exit 1;
}
...