31

Lupo Alberto: ...а я не такой настойчивый. До завтра.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

32

drBatty пишет:

что в этой девушке тебе не понравилось?

Всё понравилось, но всему своё место и время — у меня рядом  ребёнок бегает, да и жене приходится объяснять, что я посещаю именно технический ресурс.

Был, был и весь вышел...

33

AlfaStriker пишет:

К черту парольную защиту и шифрацию,

В русском языке нет слова шифрация. Есть слова шифрование, расшифровывание и зашифровывание. Вы, наверное, его с кастрацией спутали?

34

Подводя черту под вышесказанным:

1. AlfaStriker решил свою проблему самостоятельно, а так же поделился своими личными предпочтениями)))
2. drBatty гипотетически "поделился" с нами своим root паролем.
3. Cruiser78 и drBatty пришли к некоему консенсусу в части обсуждаемого вопроса.
4. Настроенная у меня SASL авторизация мягко говоря неэффективна.

Возникает ряд вопросов: (применительно к связке сервер - клиенты в одной локальной сети + возможность клиентам забирать(проверять) свою почту извне а также и отсылать извне через имеющейся сервер)

1. Что необходимо для более менее безопасной организации описанной связки (как я понял TLS(шифрование трафика) так же не гарант)
2. Подпись сообщений
3. Использование соли

Буду при много благодарен за разъяснения

35

Lupo Alberto пишет:

Всё понравилось, но всему своё место и время — у меня рядом  ребёнок бегает, да и жене приходится объяснять, что я посещаю именно технический ресурс.

у мну тоже бегает. да и жена не против. Это же картинка bx

Cruiser78 пишет:

Соль не может и не должна быть постоянной. Соль должна быть исключительно случайным значением. Тогда она сыграет свою рояль. Иное - иллюзия.

ну... как не странно, соль хоть и случайная величина, но она таки постоянная. Уж извините, но таковы факты.

Cruiser78 пишет:

Мы сознательно переходим от проблемы надежной аутентификации на сервере (каких либо приложений) к проблеме защиты почтовых сообщений?

прочитайте Subject данной темы. Мы ваще-то начинали с почты. И переход к какой-то левой аутентификации === переход к сиськам.

Cruiser78 пишет:

Совершенно нет. Неправильно. Нет там, в этой схеме никаких криптографических (за исключением вычисления хэша, который не слишком криптография, так как нет там секрета) алгоритмов, никаких сертификатов (я понимаю этот термин исключительно в рамках ассиметричной криптографии, в рамках ЭЦП и всего, что на этой базе построено). Соль этого алгоритма - в передаче клиенту _случайной_ соли, случайного значения, синхронного вычисления клиентом (хеша пароля, хеша конкатенации случайной соли и хэша пароля) и сервером (хеша конкатенации случайной соли и хэша пароля, хранящегося на сервере) и равнения на сервере того, что вычислил клиент с тем, что вычислил сервер. При этом ни пароли, ни их хэши по сети не передаются, передаются только случайные (каждый раз новые) значения. Кстати, это алгоритм аутентификации в сетях NovellNetware.

случайный пароль во первых передаётся при соединении по SSL/TLS, во вторых он НЕ называется "солью". Не нужно переносить существующий термин на другие вещи. Это как называть вертолётом пиво.

moshell пишет:

Сиси vs попа
Что рулит?

э... одно без другого не рулит bx

nik222 пишет:

2. drBatty гипотетически "поделился" с нами своим root паролем.

вы таки в своём уме?
У мну есть утилита mkpassword, которая генерит случайный пароль. С вами поделиться?

nik222 пишет:

3. Cruiser78 и drBatty пришли к некоему консенсусу в части обсуждаемого вопроса.

неа

nik222 пишет:

1. Что необходимо для более менее безопасной организации описанной связки (как я понял TLS(шифрование трафика) так же не гарант)
2. Подпись сообщений
3. Использование соли

А что вы понимаете под понятием "безопасное"? Какие существуют риски и опасности в вашей сети?
С этого надо начинать, а не с некой "соли".

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

36

drBatty пишет:

та не, мы с неё и начали.

Та не, тема изначально посвящена парольной защите почтового сервера. И совершенно не касалась защиты почтовых сообщений. Я и писал про аспекты именно парольной защиты. И мое резюме такое - что вход на сервер по плайн-паролю, что по какому-то дайджесту от этого пароля - всё одинаково небезопасно при угрозе прослушивания нарушителем трафика. Если эта угороза для нас незначима, то можно применять любой из методов.
Это первое.
Второе: Не следует разрешать своим юзерам использовать сторонние почтовые сервисы непосредственно с их рабочего места. Если есть нужда им с такими сервисами работать, то следует на нашем почтаре настроить fetchmail и забирать оттуда почту, так как на нашем сервере настроена антивирусная защита. .

37

Cruiser78 пишет:

Та не, тема изначально посвящена парольной защите почтового сервера. И совершенно не касалась защиты почтовых сообщений. Я и писал про аспекты именно парольной защиты. И мое резюме такое - что вход на сервер по плайн-паролю, что по какому-то дайджесту от этого пароля - всё одинаково небезопасно при угрозе прослушивания нарушителем трафика. Если эта угороза для нас незначима, то можно применять любой из методов.

не совсем так. Защита по паролю и по дайджесту пароля уязвима от атак, связанных с подменой сервера. Например от атаки человек посередине
От такой атаки помогает SSL/TLS соединение, если сервер и клиент имеют сертификаты, которые подписаны какой-то третьей стороной, которой доверяют как сервер, так и клиент.

Cruiser78 пишет:

Второе: Не следует разрешать своим юзерам использовать сторонние почтовые сервисы непосредственно с их рабочего места.

ну в этом случае также есть смысл использовать TLS, причём сертификат можно подписать самостоятельно. Очевидно, что клиентов с таким сертификатом на чужие сервера попросту не пустят. Правда практически любой клиент УЖЕ имеет в своём составе многие сертификаты, которые позволяют ему соединяться с gmail, yandex mail, mail.ru и прочими почтовыми сервисами.

Cruiser78 пишет:

Если есть нужда им с такими сервисами работать, то следует на нашем почтаре настроить fetchmail и забирать оттуда почту, так как на нашем сервере настроена антивирусная защита. .

на вашем - возможно
а на нашем никаких антивирусов не было, нет, и не будет.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

38

drBatty пишет:

а на нашем никаких антивирусов не было, нет, и не будет.

Интересны аргументы в пользу такого выбора.

39

drBatty пишет:

вы таки в своём уме?
У мну есть утилита mkpassword, которая генерит случайный пароль. С вами поделиться?

Стоило в конце фразы добавить смайл дабы дать понять что это шутка  ag
По поводу mkpassword - был бы не против и полный инструктаж по использованию

drBatty пишет:

А что вы понимаете под понятием "безопасное"? Какие существуют риски и опасности в вашей сети?
С этого надо начинать, а не с некой "соли".

Меня больше всего смущает использование клиентами почты организации в нее стен - наверное самый острый момент.
Ну а соль - заинтересовался ее применением после вашего диспута.

40

Cruiser78 пишет:

Интересны аргументы в пользу такого выбора.

не нужен.
зачем термоядерный реактор в велосипеде?

nik222 пишет:

По поводу mkpassword - был бы не против и полный инструктаж по использованию

+ открыть спойлер

#!/bin/sh
# \
exec expect -- "$0" ${1+"$@"}
# mkpasswd - make a password, if username given, set it.
# Author: Don Libes, NIST

# defaults
set length 9
set minnum 2
set minlower 2
set minupper 2
set minspecial 1
set verbose 0
set distribute 0

if {[file executable /bin/nispasswd]} {
    set defaultprog /bin/nispasswd
} elseif {[file executable /bin/yppasswd]} {
    set defaultprog /bin/yppasswd
} elseif {[file executable /bin/passwd]} {
    set defaultprog /bin/passwd
} else {
    set defaultprog passwd
}
set prog $defaultprog

while {[llength $argv]>0} {
    set flag [lindex $argv 0]
    switch -- $flag \
    "-l" {
        set length [lindex $argv 1]
        set argv [lrange $argv 2 end]
    } "-d" {
        set minnum [lindex $argv 1]
        set argv [lrange $argv 2 end]
    } "-c" {
        set minlower [lindex $argv 1]
        set argv [lrange $argv 2 end]
    } "-C" {
        set minupper [lindex $argv 1]
        set argv [lrange $argv 2 end]
    } "-s" {
        set minspecial [lindex $argv 1]
        set argv [lrange $argv 2 end]
    } "-v" {
        set verbose 1
        set argv [lrange $argv 1 end]
    } "-p" {
        set prog [lindex $argv 1]
        set argv [lrange $argv 2 end]
    } "-2" {
        set distribute 1
        set argv [lrange $argv 1 end]
    } default {
        set user [lindex $argv 0]
        set argv [lrange $argv 1 end]
        break
    }
}

if {[llength $argv]} {
    puts "usage: mkpasswd \[args] \[user]"
    puts "  where arguments are:"
    puts "    -l #      (length of password, default = $length)"
    puts "    -d #      (min # of digits, default = $minnum)"
    puts "    -c #      (min # of lowercase chars, default = $minlower)"
    puts "    -C #      (min # of uppercase chars, default = $minupper)"
    puts "    -s #      (min # of special chars, default = $minspecial)"
    puts "    -v        (verbose, show passwd interaction)"
    puts "    -p prog   (program to set password, default = $defaultprog)"
    exit 1
}

if {$minnum + $minlower + $minupper + $minspecial > $length} {
    puts "impossible to generate $length-character password\
        with $minnum numbers, $minlower lowercase letters,\
        $minupper uppercase letters and\
        $minspecial special characters."
    exit 1
}

# if there is any underspecification, use additional lowercase letters
set minlower [expr {$length - ($minnum + $minupper + $minspecial)}]

set lpass ""        ;# password chars typed by left hand
set rpass ""        ;# password chars typed by right hand

# insert char into password at a random position, thereby spreading
# the different kinds of characters throughout the password
proc insert {pvar char} {
    upvar $pvar p

    set p [linsert $p [rand [expr {(1+[llength $p])}]] $char]
}

proc rand {m} {
    expr {int($m*rand())}
}

# choose left or right starting hand
set initially_left [set isleft [rand 2]]

# given a size, distribute between left and right hands
# taking into account where we left off
proc psplit {max lvar rvar} {
    upvar $lvar left $rvar right
    global isleft

    if {$isleft} {
        set right [expr $max/2]
        set left [expr $max-$right]
        set isleft [expr !($max%2)]
    } else {
        set left [expr $max/2]
        set right [expr $max-$left]
        set isleft [expr $max%2]
    }
}

if {$distribute} {
    set lkeys {q w e r t a s d f g z x c v b}
    set rkeys {y u i o p h j k l n m}
    set lnums {1 2 3 4 5 6}
    set rnums {7 8 9 0}
    set lspec {! @ # \$ %}
    set rspec {^ & * ( ) - = _ + [ ] "{" "}" \\ | ; : ' \" < > , . ? /}
} else {
    set lkeys {a b c d e f g h i j k l m n o p q r s t u v w x y z}
    set rkeys {a b c d e f g h i j k l m n o p q r s t u v w x y z}
    set lnums {0 1 2 3 4 5 6 7 8 9}
    set rnums {0 1 2 3 4 5 6 7 8 9}
    set lspec {! @ # \$ % ~ ^ & * ( ) - = _ + [ ] "{" "}" \\ | ; : ' \" < > , . ? /}
    set rspec {! @ # \$ % ~ ^ & * ( ) - = _ + [ ] "{" "}" \\ | ; : ' \" < > , . ? /}
}

set lkeys_length [llength $lkeys]
set rkeys_length [llength $rkeys]
set lnums_length [llength $lnums]
set rnums_length [llength $rnums]
set lspec_length [llength $lspec]
set rspec_length [llength $rspec]

psplit $minnum left right
for {set i 0} {$i<$left} {incr i} {
    insert lpass [lindex $lnums [rand $lnums_length]]
}
for {set i 0} {$i<$right} {incr i} {
    insert rpass [lindex $rnums [rand $rnums_length]]
}

psplit $minlower left right
for {set i 0} {$i<$left} {incr i} {
    insert lpass [lindex $lkeys [rand $lkeys_length]]
}
for {set i 0} {$i<$right} {incr i} {
    insert rpass [lindex $rkeys [rand $rkeys_length]]
}

psplit $minupper left right
for {set i 0} {$i<$left} {incr i} {
    insert lpass [string toupper [lindex $lkeys [rand $lkeys_length]]]
}
for {set i 0} {$i<$right} {incr i} {
    insert rpass [string toupper [lindex $rkeys [rand $rkeys_length]]]
}

psplit $minspecial left right
for {set i 0} {$i<$left} {incr i} {
    insert lpass [lindex $lspec [rand $lspec_length]]
}
for {set i 0} {$i<$right} {incr i} {
    insert rpass [lindex $rspec [rand $rspec_length]]
}

# merge results together
foreach l $lpass r $rpass {
    if {$initially_left} {
    append password $l $r
    } else {
    append password $r $l
    }
}

if {[info exists user]} {
    if {!$verbose} {
        log_user 0
    }

    spawn $prog $user
    expect {
        "assword*:" {
            # some systems say "Password (again):"
            send "$password\r"
            exp_continue
        }
    }

    # if user isn't watching, check status
    if {!$verbose} {
        if {[lindex [wait] 3]} {
            puts -nonewline "$expect_out(buffer)"
            exit 1
        }
    }

        if {$verbose} {
        puts -nonewline "password for $user is "
        }
}

puts "$password"

nik222 пишет:

Меня больше всего смущает использование клиентами почты организации в нее стен - наверное самый острый момент.

запретите.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

41

drBatty пишет:

запретите.

Для страждущих организовать пересылку на внешние источники ?

Так, а как этим скриптом пользоваться ? Точнее принцип работы интересен (Смайл чайника)

42

nik222 пишет:

Для страждущих организовать пересылку на внешние источники ?

ну это зависит от вашей фантазии.

nik222 пишет:

Так, а как этим скриптом пользоваться ? Точнее принцип работы интересен (Смайл чайника)

принцип? генерируется N случайных символов, в соответствии с общепринятыми рекомендациями. Для работы программы нужен expect
http://ru.wikipedia.org/wiki/Expect
Это на самом деле демка, показывающая возможности expect'а.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

43

drBatty пишет:

Это на самом деле демка, показывающая возможности expect'а.

Я и подумал, зачем так сложно? Можно же и проще, в одну строку...

Был, был и весь вышел...

44

Lupo Alberto пишет:

Я и подумал, зачем так сложно? Можно же и проще, в одну строку...

можно конечно. Вот только для любого хакера (и даже простого админа) необходим expect, а mkpasswd идёт с ним в комплекте.
и да, "простой" скрипт на bash будет не такой уж и простой, на самом-то деле...

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

45

drBatty пишет:

принцип? генерируется N случайных символов, в соответствии с общепринятыми рекомендациями. Для работы программы нужен expect
http://ru.wikipedia.org/wiki/Expect
Это на самом деле демка, показывающая возможности expect'а.

Просто генератор паролей получается ?

46

>Просто генератор паролей получается ?

да. А вы что хотели?

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

47

drBatty пишет:

да. А вы что хотели?

да нет, все нормально. Спасибо большое