- •394026 Воронеж, Московский просп., 14 Введение
- •1.Обзор наиболее распространенных методов "взлома"
- •1.1. Комплексный поиск возможных методов доступа
- •1.2. Терминалы защищенной информационной системы
- •1.3. Получение пароля на основе ошибок администратора и пользователей
- •1.4. Получение пароля на основе ошибок в реализации
- •1.5. Социальная психология и иные способы получения паролей
- •2. Криптография
- •2.1. Классификация криптоалгоритмов
- •2.2. Симметричные криптоалгоритмы
- •2.2.1 Скремблеры
- •2.2.2. Блочные шифры
- •2.2.2.1. Общие сведения о блочных шифрах
- •2.2.2.2. Сеть Фейштеля
- •2.2.2.3. Блочный шифр tea
- •2.2.2.4. Aes : cтандарт блочных шифров сша
- •2.2.2.4.1. Общие сведения о конкурсе aes
- •2.2.2.4.2. Финалист aes – шифр mars
- •2.2.2.4.3. Финалист aes – шифр rc6
- •2.2.2.4.4. Финалист aes – шифр Serpent
- •2.2.2.4.5. Финалист aes – шифр TwoFish
- •2.2.2.4.6. Победитель aes – шифр Rijndael
- •2.3. Симметричные криптосистемы
- •2.3.1. Функции криптосистем
- •2.3.2. Алгоритмы создания цепочек
- •2.3.3. Методы рандомизации сообщений
- •2.3.3.1. Обзор методик рандомизации сообщений
- •2.3.3.2. Генераторы случайных и псевдослучайных последовательностей
- •2.3.4. Архивация
- •2.3.4.1. Общие принципы архивации. Классификация методов
- •2.3.4.2. Алгоритм Хаффмана
- •2.3.4.3. Алгоритм Лемпеля-Зива
- •2.3.5. Хеширование паролей
- •2.3.6. Транспортное кодирование
- •2.4. Асимметричные криптоалгоритмы
- •2.4.1. Общие сведения об асимметричных криптоалгоритмах
- •2.4.2. Алгоритм rsa
- •2.4.3. Технологии цифровых подписей
- •2.4.4. Механизм распространения открытых ключей
- •2.4.5. Обмен ключами по алгоритму Диффи-Хеллмана
- •3. Сетевая безопасность
- •3.1. Атакуемые сетевые компоненты
- •3.1.1. Сервера
- •3.1.2. Рабочие станции
- •3.1.3. Среда передачи информации
- •3.1.4. Узлы коммутации сетей
- •3.2. Уровни сетевых атак согласно модели osi
- •4. По и информационная безопасность
- •4.1. Обзор современного по
- •4.1.1. Операционные системы
- •4.1.2. Прикладные программы
- •4.2. Ошибки, приводящие к возможности атак на информацию
- •4.3. Основные положения по разработке по
- •5. Комплексная система безопасности
- •5.1. Классификация информационных объектов
- •5.1.1. Классификация по требуемой степени безотказности
- •5.1.2. Классификация по уровню конфиденциальности
- •5.1.3. Требования по работе с конфиденциальной информацией
- •5.2. Политика ролей
- •5.3. Создание политики информационной безопасности
- •5.4. Методы обеспечения безотказности
- •Заключение
- •Оглавление
2.3.6. Транспортное кодирование
Поскольку системы шифрования данных часто используются для кодирования текстовой информации : переписки, счетов, платежей электронной коммерции, и при этом криптосистема должна быть абсолютно прозрачной для пользователя, то над выходным потоком криптосистемы часто производится транспортное кодирование, то есть дополнительное кодирование (не шифрование !) информации исключительно для обеспечения совместимости с протоколами передачи данных. Все дело в том, что на выходе криптосистемы байт может принимать все 256 возможных значений, независимо от того был ли входной поток текстовой информацией или нет. А при передаче почтовых сообщений многие системы ориентированы на то, что допустимые значения байтов текста лежат в более узком диапазоне : все цифры, знаки препинания, алфавит латиницы плюс, возможно, национального языка. Первые 32 символа набора ASCII служат для специальных целей. Для того чтобы они и некоторые другие служебные символы никогда не появились в выходном потоке, используется транспортное кодирование. Наиболее простой метод состоит в записи каждого байта двумя шестнадцатиричными цифрами-символами. Так байт 252 будет записан двумя символами 'FC'; байт с кодом 26, попадающий на специальный символ CTRL-Z, будет записан двумя допустимыми символами '1A'. Но эта схема очень избыточна : в одном байте передается только 4 бита информации. На самом деле практически в любой системе коммуникации без проблем можно передавать около 68 символов (латинский алфавит строчный и прописной, цифры и знаки препинания). Из этого следует, что вполне реально создать систему с передачей 6 бит в одном байте (26<68), то есть кодировать 3 байта произвольного содержания 4-мя байтами из исключительно разрешенных (так называемых печатных) символов. Подобная система была разработана и стандартизирована на уровне протоколов сети Интернет – это система Base64 (стандарт RFC1251).
Процесс кодирования преобразует 4 входных символа в виде 24-битной группы, обрабатывая их слева направо. Эти группы затем рассматриваются как 4 соединенные 6-битные группы, каждая из которых транслируется в одиночную цифру алфавита Base64. При кодировании Base64 входной поток байтов должен быть упорядочен старшими битами вперед. Каждая 6-битная группа используется как индекс для массива 64-х печатных символов. Символ, на который указывает значение индекса, помещается в выходную строку. Эти символы выбраны так, чтобы быть универсально представимыми, и исключают символы, имеющие специальное значение (".", CR, LF). Выходной поток (закодированные байты) должен иметь длину строк не более 76 символов. Все признаки перевода строки и другие символы, отсутствующие в алфавмте, должны быть проигнорированы декодером Вase64. Среди данных в Base64 символы, не перечисленные в алфавите, переводы строки и т.п. должны говорить об ошибке передачи данных, и соответственно программа-декодер должна оповестить пользователя о ней. Если в хвосте потока кодируемых данных осталось меньше чем 24 бита, справа добавляются нулевые биты до образования целого числа 6-битных групп. А до конца 24-битной группы может оставаться только от 0 до 3-х недостающих 6-битных групп, вместо каждой из которых ставится символ-заполнитель "=". Поскольку весь входной поток представляет собой целое число 8-битных групп (т.е. просто байтных значений), то возможны лишь следующие случаи:
Входной поток оканчивается ровно 24-битной группой (длина файла кратна 3). В таком случае выходной поток будет оканчиваться четырьмя символами Base64 без каких-либо дополнительных символов.
"Хвост" входного потока имеет длину 8 бит. Тогда в конце выходного кода будут два символа Base64 с добавлением двух символов "=".
"Хвост" входного потока имеет длину 16 бит. Тогда в конце выходного потока будут стоять три символа Base64 и один символ "=".
Так как символ "=" является хвостовым заполнителем, его появление в теле письма может означать только то, что конец данных достигнут. Но опираться на поиск символа "=" для обнаружения конца файла неверно, так как если число переданных битов кратно 24, то в выходном файле не появится ни одного символа "="
значение |
код |
значение |
код |
значение |
код |
значение |
код |
0 |
А |
16 |
Q |
32 |
g |
48 |
w |
1 |
В |
17 |
R |
33 |
h |
49 |
x |
2 |
С |
18 |
S |
34 |
i |
50 |
y |
3 |
D |
19 |
T |
35 |
j |
51 |
z |
4 |
E |
20 |
U |
36 |
k |
52 |
0 |
5 |
F |
21 |
V |
37 |
l |
53 |
1 |
6 |
G |
22 |
W |
38 |
m |
54 |
2 |
7 |
H |
23 |
X |
39 |
n |
55 |
3 |
8 |
I |
24 |
Y |
40 |
o |
56 |
4 |
9 |
J |
25 |
Z |
41 |
p |
57 |
5 |
10 |
K |
26 |
a |
42 |
q |
58 |
6 |
11 |
L |
27 |
b |
43 |
r |
59 |
7 |
12 |
M |
28 |
c |
44 |
s |
60 |
8 |
13 |
N |
29 |
d |
45 |
t |
61 |
9 |
14 |
O |
30 |
e |
46 |
u |
62 |
+ |
15 |
P |
31 |
f |
47 |
v |
63 |
/ |
64 (=)-символ заполнитель
Общая схема симметричной криптосистемы с учетом всех рассмотренных пунктов изображена на рис. 2.23
Рис. 2.23