Предположим, что вы хотите, чтобы никто из посторонних не смог воспользоваться вашим компьютером. Для данной задачи я могу подумать о двух путях решения: использования программного или аппаратного обеспечения. Программное обеспечение предполагает использование программы определенного типа, которая будет прерывать нормальный ход загрузки программного обеспечения компьютера, требуя ввода пароля. Естественно, что вы можете пойти именно таким путем, но я думаю, что более действенным будет использование аппаратного обеспечения. То, что я могу себе представить — это кодовый замок с цифровой клавиатурой, который требует от пользователя компьютера ввода секретного кода перед тем, как компьютер может быть включен.
Гарантийные обязательства
Если вы захотите довести данный проект до его завершения, то вам придется вскрывать настольный компьютер, обрезать провода и прорезать проем в корпусе (рис. 1). Без сомнения, это приведет к тому, что гарантийные обязательства на это изделие будут нарушены. Если же это вас беспокоит, то существуют три варианта решения проблемы:
- Собрать схему на макетной плате для собственного удовольствия и оставить ее в таком состоянии.
- Использовать цифровую клавиатуру на каком-либо другом устройстве.
- Использовать для этой цели старый компьютер.
Вам понадобятся:
- Цифровая клавиатура (она должна иметь «общий вывод» или «общий выход»). На схеме, которая приведена на рис. 2, показано, что я имею в виду. Внутри клавиатуры один проводник (который я изобразил красным цветом для того, чтобы он отличался от других) подключен к одному из контактов каждой кнопки. Этот проводник является «общим» для всех них. Он идет от крайнего разъема клавиатуры или набора выводов в нижней части, которые я окрасил желтым цветом.
Клавиатура, которая использует «матричное кодирование», не будет работать со схемой, которую я собираюсь описывать. Если клавиатура компании Valleman nv, которую я вам рекомендую, недоступна, а вы не можете найти другую, аналогичную этой, то вы можете использовать 12 отдельных однополюсных однопозиционных кнопок. Конечно, это будет стоить несколько дороже.
- Микросхема 74HC08, содержащая четыре двухвходовых логических элемента И. Количество — 1 шт.
- Микросхема 74HC04, содержащая шесть инверторов. Количество — 1 шт.
- Микросхема таймера 555. Количество — 1 шт.
- Реле с самоудерживанием (с фиксацией состояния), с рабочим напряжением 5 В, двухполюсное однопозиционное или двухполюсное двухпозиционное, корпус «2 from C», Panasonic DS2E-SL2-DC5V или его аналог. Большинство реле имеет две отдельные катушки (одну для фиксации, другую для снятия фиксации) с раздельными входами. Количество — 1 шт.
- Светодиоды диаметром 5 мм, цвет свечения по вашему выбору. Количество — 3 шт.
- Плоский кабель минимум с шестью проводниками, если вы действительно хотите получить компактную конструкцию. Вы можете использовать кабель такого типа, которые используются для подключения жестких дисков внутри настольного компьютера, и отделить от него шесть жил, которые вам нужны, а также купить то, что вам нужно, на интернет-аукционе eBay.
- Инструмент для открытия вашего компьютера, дрель для сверления четырех отверстий и пилка для их соединения, чтобы образовать прямоугольный вырез для установки клавиатуры (если вы хотите довести этот проект до завершения). Также необходимы четыре небольших болта для того, чтобы прикрепить клавиатуру к корпусу компьютера после завершения выполнения выреза.
Схема
На этот раз я хотел бы рассмотреть схему до того, как что-то монтировать. Давайте начнем с более упрощенной версии, которая показана на рис. 3.
Я хочу, чтобы эта схема питалась от батарейки для того, чтобы не было необходимости для нее создавать какой-либо другой источник питания или (что еще хуже) попытаться подключиться к внутренней шине компьютера с напряжением 5 В. Питание от батарейки означает, что схема должна находиться в положении «выключено» большую часть времени, чтобы предотвратить бесполезное использование батарейки. Поскольку клавиатура имеет две запасные кнопки (с символами звездочка «*» и решетка «#»), то я собираюсь использовать кнопку «*» для включения питания кодового замка. Когда вы нажмете на эту кнопку, будет загораться светодиод, расположенный в верхней части схемы, подтверждая, что все находится в рабочем состоянии и кнопка подает напряжение питания на все логические микросхемы и таймер 555. Следует обратить ваше внимание, что пока вы будете набирать код, состоящий из трех цифр, для снятия блокировки с компьютера, вы должны будете удерживать кнопку «*» нажатой.
По своему выбору в качестве кода я взял цифры 1-4-7. Давайте проследим за тем, что произойдет, когда вы будете вводить эту кодовую последовательность. (Разумеется, если вы будете сами монтировать схему, то вы можете подключить провода к трем другим цифрам по вашему выбору.)
Нажатие кнопки «1» будет приводить к тому, что сигнал высокого логического уровня поступит на вход первого логического элемента И (верхнего по схеме). На другой вход этого элемента тоже подается сигнал высокого логического уровня, поскольку он получает напряжение через инвертер, вход которого через подтягивающий резистор подключен к минусовому выводу источника питания. Когда на входе инвертора будет напряжение, соответствующее минусовому выводу источника питания, то на выходе элемента будет высокий логический уровень сигнала, поэтому нажатие кнопки «1» будет приводить к срабатыванию первого элемента И, что приведет к появлению на его выходе сигнала высокого логического уровня. При этом элемент И будет защелкнут в этом состоянии, поскольку сигнал с его выхода через диод будет подаваться на его же вход. Поэтому выход элемента будет находиться в состоянии высокого логического уровня даже после того, как вы отпустите кнопку «1».
Сигнал с выхода первого элемента И поступает на вход второго. При этом, если вы нажмете на кнопку «4», то подадите высокий уровень на другой логический вход этого элемента И, поэтому его выход также перейдет в состояние высокого логического уровня, а сам элемент защелкнется в своем состоянии точно также, как это делал первый элемент.
Второй логический элемент И подает сигнал на вход последнего третьего элемента И, поэтому когда вы нажмете на кнопку «7», третий элемент И изменит состояние на его выходе с низкого уровня на высокий. Этот сигнал подается на инвертор, поэтому выход инвертора при этом перейдет из стояния высокого логического уровня в низкое. Этот сигнал в свою очередь запустит таймер 555, функционирующий в моностабильном режиме.
Когда сигнал на входе «Запуск» таймера 555 перейдет из высокого логического уровня в низкое, таймер на своем выходе (вывод 3) начнет формировать положительный импульс. Таким образом, за счет протекания тока по верхней показанной на схеме катушке, это приводит к срабатыванию реле с самоудерживанием (с фиксацией состояния), загорится светодиод, подтверждая, что код был введен правильно и реле активировано.
Два контакта реле подключены к кнопке выключателя вашего компьютера. Несколько позднее я объясню, почему это будет безопасно для любого современного компьютера.
Поскольку мы используем реле с самоудерживанием, то оно переключается в состояние «включено» и остается в этом состоянии даже тогда, когда завершается формирование запускающего импульса, поступающего от таймера 555. Итак, сейчас вы можете отпустить кнопку «*», чтобы отключить напряжение питания от вашего кодового замка, и нажать кнопку, которая включит ваш компьютер.
В конце вашей работы с компьютером вы можете, как обычно, отключить ваш компьютер, а затем нажать кнопку «#» на клавиатуре вашего кодового замка, которая переключит реле в другое исходное состояние для блокировки компьютера, которое потребует активации вашего кодового замка.
В случае ввода неправильного кода
Что случится, если будет введен неправильный код? Если вы нажали какую-либо другую кнопку, а не «1», «4» или «7», то будет подано положительное напряжение на инвертор в верхней части схемы (см. рис. 3). Это положительное напряжение подавляет отрицательное напряжение, приложенное к инвертору через подтягивающий резистор. В результате на выходе инвертора будет отрицательное напряжение, которое будет поступать на один из логических входов первого логического элемента И. Если элемент И заблокирован (защелкнут), то это отрицательное напряжение разблокирует его. Поскольку выходной сигнал с первого элемента поступает на вход второго элемента И, то это приведет и к его к отключению.
Таким образом, любая ошибка при вводе первой, второй или третьей цифры секретного кода будет приводить к сбросу элемента И, а также вынудит вас вводить код снова и снова.
А что будет, если вы введете цифры «1», «4» и «7» в неправильной последовательности? Схема также не сработает. Третий элемент И может реагировать на нажатие кнопки только тогда, когда получит на свой другой вход сигнал высокого уровня от второго элемента И, а второй элемент И отреагирует только когда получит сигнал от первого элемента И. Поэтому логические элементы И вы должны приводить в действие строго в определенной последовательности.
Вопросы
Почему для подачи импульса на реле я применил именно таймер 555? Потому что логический выход элемента И не обладает для этого достаточной мощностью. Я мог бы, конечно, усилить этот сигнал с помощью транзистора, но мне для переключения реле и зажигания светодиода в течение 1 сек вне зависимости от того как быстро пользователь нажимает последнюю кнопку кода (в рассматриваемом случае кнопку «7») понравилась идея формирования импульса фиксированной длительности.
Зачем мне понадобились три светодиода? Потому что, когда вы работаете с клавиатурой кодового замка для снятия блокировки вашего компьютера, вы должны знать, что именно при этом происходит. Первый светодиод для индикации включения напряжения питания покажет вам, что ваша батарейка еще не разряжена. Второй светодиод для индикации активизации реле покажет, что блокировка компьютера отключена даже в том случае, если вам не удастся расслышать щелчок сработавшего реле. Светодиод для индикации состояния повторной блокировки компьютера покажет, что вы снова установили защиту от несанкционированного доступа к вашему компьютеру.
Поскольку светодиоды подключаются либо непосредственно к напряжению питания 5 В, либо к выходу таймера 555, они должны быть светодиодами с низким потреблением тока, и мы можем последовательно с ними подключать резисторы с сопротивлением 330 Ом, чтобы их свечение было хорошим и ярким.
Как можно подключить клавиатуру к схеме кодового замка? Для этого-то и предусматривался плоский кабель. Вы должны аккуратно снять изоляцию с каждого проводника кабеля и припаять их к контактной полоске или к разъему, который расположен на краю вашей клавиатуры. Вставьте проводники, расположенные с другой стороны кабеля, в вашу макетную плату (при монтаже платы в тестовом режиме) или припаяйте их к перфорированной плате (когда выполняете монтаж законченного изделия). Внутри вашего компьютера найдите подходящее пространство, где можно установить перфорированную плату, и закрепите ее в этом месте с помощью двухстороннего скотча или небольших болтов в зависимости от того, что удобнее. Добавьте держатель для 9-вольтовой батарейки и не забудьте стабилизатор напряжения питания для уменьшения этого напряжения до 5 В.
Выполнение устройства на макетной плате
Нет сомнения, что вы уже поняли, что макетные платы очень удобны в качестве самого быстрого способа установки некоторых компонентов и выполнения соединений, но расположение проводников заставляет вас устанавливать компоненты в конфигурации, которая интуитивно не представляется удобной. Таким образом, если вы тщательно сравните схему, которая предназначена для сбора на макетной плате на рис. 4 с упрощенной схемой, которая приведена на рис. 3, то обнаружите, что соединения между компонентами будут точно такими же.
Чтобы помочь это понять, я показал логические элементы, которые находятся внутри микросхем. Кроме того, чтобы уменьшить вероятность ошибки, провода для подвода напряжений питания, как и раньше, я выделил цветом. Плюс источника питания соединяется только с общей клеммой вашей клавиатуры, и чтобы с помощью плоского кабеля подать напряжение питания на микросхемы вы должны нажать на кнопку «*».
Следует заметить, что выводы кнопок клавиатуры «неправильных» цифр кода закорочены между собой. Это создает некоторое неудобство, если вы захотите изменить кодовую комбинацию в будущем. Я предлагаю возможность для «улучшения» этой части схемы, которая предполагает выделение отдельного проводника, идущего от контакта каждой кнопки на вашей клавиатуре к остальным компонентам схемы на макетной плате, и выполнение необходимой коммутации с помощью перемычек уже на макетной плате, а не на клавиатуре.
Кроме того, следует обратить ваше внимание на то, что если вы для проверки уровней сигналов на входах логических элементов И используете мультиметр и коснетесь пальцем пробника мультиметра при выполнении этой операции, то этого может оказаться достаточно для переключения чувствительных входов КМОП-микросхем, что в конечном счете приведет к ложной подаче положительного сигнала.
Примечание
Если вы смонтировали схему и не можете понять, почему ничего не работает, то наиболее вероятная причина заключается в том, что при наборе кода вы забыли, что надо удерживать кнопку «*» нажатой.
Одна небольшая деталь. Интерфейс компьютера
В старых моделях компьютеров использовался относительно большой выключатель на задней поверхности корпуса системного блока компьютера, который крепился на тяжелой металлической коробке внутри компьютера, преобразующей напряжение домашней электросети в напряжения, необходимые для компьютера. У большинства современных компьютеров конструкция несколько иная; вы оставляете компьютер подключенным к сетевой розетке, а затем касаетесь маленькой кнопки на корпусе (если это система Windows) или на клавиатуре (если это система Mac), которые посылают низковольтный импульс на вашу материнскую плату.
Это идеально с нашей точки зрения, поскольку мы не хотим связываться с высоким напряжением. Но даже не помышляйте о вскрытии металлической коробки с вентилятором, который в ней установлен, потому что в этой коробке находится блок питания компьютера. Просто обратите внимание на провод, который следует от выключателя питания компьютера к небольшому разъему на материнской плате (обычно в нем содержатся две жилы, если это компьютер Windows).
Чтобы проверить, что вы нашли именно его, сначала надо убедиться, что ваш компьютер отключен от сети, затем выполнить заземление своего тела (это связано с тем, что компьютеры содержат КМОП-микросхемы, которые чувствительны к воздействию статического электричества) и очень осторожно разрезать одну из двух жил этого провода. Теперь подключите ваш компьютер к сети и попробуйте включить его выключателем. Если ничего не произойдет, тогда, скорее всего, вы перерезали именно тот провод. Хотя даже, если вы разрезали и не тот провод, то все равно это наверняка не позволит вашему компьютеру выполнить загрузку, а это именно то, что вам и нужно. Следовательно, вы можете использовать такой провод в любом случае. Следует отметить, что мы не собираемся делать так, чтобы на этот провод попадало какое-либо напряжение. Мы всего лишь собираемся использовать реле в качестве дополнительного выключателя для восстановления соединения по жиле, которую вы разрезали. У вас не будет проблем, если вы все выполняете с холодным рассудком и находясь в твердой памяти, а также будете сосредоточены только на этом единственном проводе, который все запускает. Найдите в Интернете руководство по эксплуатации вашего компьютера, если вы на самом деле считаете, что сделали ошибку.
После того как вы нашли нужный провод и отрезали одну из его жил, надо снова отключить компьютер от сетевой розетки и оставить его в таком состоянии при выполнении следующих шагов.
Найдите то место, где провод подключается к вашей материнской плате. Обычно в этом месте находится небольшой разъем, который можно отсоединять. Прежде всего, нужно заметить это место для того, чтобы потом можно было снова его включить точно таким же образом, а затем отсоединить при выполнении следующей пары пунктов данной процедуры.
Удалите изоляцию с двух концов провода, который вы только что разрезали, и припаяйте дополнительный кусок двухжильного провода так, как это показано на рис. 5, с использованием термоусадочной трубки для защиты паяных соединений. (Это очень важно!)
Протяните новый отрезок провода к реле с самоудерживанием, убедившись, что вы присоединяете его к паре контактов реле, которые находятся в замкнутом состоянии, когда на него подается напряжение питания, т. е. когда кодовый замок будет в состоянии отключения блокировки компьютера. Вы же не хотите сделать ошибку снятия блокировки с вашего компьютера, когда вы думаете, что на самом деле блокируете его, и наоборот.
Снова подсоедините разъем, который вы отсоединили от материнской платы, подключите компьютер к сети и попробуйте его включить. Если ничего не случилось, то, возможно, вы все сделали правильно! Теперь введите секретный код на вашей клавиатуре кодового замка (при этом следует удерживать нажатой кнопку «*», чтобы обеспечивать подачу питания на все элементы замка) и постарайтесь услышать щелчок, когда сработает реле. Теперь попробуйте нажать выключатель питания на системном блоке компьютера — все должно работать.
Улучшения
При завершении любого проекта всегда есть что-то, что можно сделать еще лучше.
Чтобы сделать устройство более защищенным, можете отвинтить несколько винтов, которые крепят крышку системного блока компьютера, и заменить их винтами с защитой от проникновения.
Естественно вам может также потребоваться специальный инструмент, чтобы можно было установить эти винты (или снять их, если система безопасности окажется неисправной по какой-либо причине).
Другим улучшением мог бы быть дополнительный таймер 555, который будет активизироваться кнопкой «*», а также подавать напряжение питания на все остальные ИС кодового замка, допустим, в течение ограниченного периода времени, например 30 сек, предоставляя возможность снять блокировку компьютера только в течение этого времени. Это позволит избежать необходимости в удержании кнопки «*» при вводе пароля, снимающего блокировку компьютера, таймер может подавать напряжение на все остальные микросхемы, поскольку они не потребляют слишком большой ток. Я эту возможность исключил, чтобы не усложнять устройство.
Если для вас секретность норма жизни, то есть еще одно возможное улучшение — это переход к паролю из 4 цифр. Кроме всего прочего в микросхеме 74HC08 имеется еще один неиспользуемый логический элемент И. Вы могли бы добавить его в цепь уже используемых элементов и подключить к еще одной кнопке по вашему выбору.
Теперь еще одно улучшение, которое будет заключаться в способе изменения пароля без отпаивания одних и припаивания других проводов. Вы можете использовать миниатюрные многоконтактные колодки гнезд, которые я предлагал использовать в устройстве пульсирующей светодиодной мигалки (см. эксперимент 14). Это позволит вам отключать концы ваших проводов от клавиатуры.
А для тех, кто является абсолютным, законченным, тотальным параноиком, что готов сделать схему такой, что ввод неправильного пароля будет включать мощное реле, которое будет пропускать мощный ток через ваше ОЗУ, расплавляя его и посылая мощный импульс через магнитную катушку, установленную рядом с жестким диском, для мгновенного превращения всех данных на нем в электронный мусор (рис. 6). На самом деле, действительно, если вы хотите защитить информацию, то физическое разрушение имеет большие преимущества по сравнению с удалением данных с помощью программного обеспечения. Оно быстрее, его труднее остановить и оно имеет тенденцию дойти до конца. Поэтому, если к вам в дом заявятся из Американской ассоциации звукозаписи (RIAA — Recording Industry Association of America) и попросят включить ваш компьютер, чтобы поискать нелегальные файлы, то вам надо «случайно» дать неправильный пароль снятия блокировки компьютера, а потом сесть и подождать появления едкого запаха плавящейся изоляции.
Разумеется, если вы выберете этот вариант изменений схемы, то я определенно не беру на себя ответственность за последствия.
Если говорить более реально, то в принципе не существует такой системы, которая полностью безопасна. Ценность устройства аппаратной блокировки заключается в том, что если кто-то взломает его (например, определив каким-образом можно отвинтить винты с защитой от взлома или просто выломав вашу клавиатуру из корпуса компьютера ножницами по металлу), то, по меньшей мере, вы будете знать, что что-то случилось — особенно, если сделаете небольшие метки краской на головках винтов и будете следить за тем, чтобы они оставались совмещенными. Для сравнения, если вы будете использовать программу защиты с вводом пароля, и кто-то ее взломает, то вы даже можете и не узнать, что ваша система была взломана.
Автор: Чарльз Платт