Вот как должен выглядеть настоящий компьютер, а не ваши черные ящики

Обновлено: 21.11.2024

Большинство коммерческих самолетов оснащены неразрушимым бортовым самописцем, также называемым «черным ящиком», хотя его корпус на самом деле ярко-оранжевый. На самом деле их два: один записывает информацию с бортовых компьютеров, а второй блок записывает звук из кабины и другие звуки внутри самолета. В случае сбоя следователи могут восстановить черные ящики и выяснить, что именно произошло.

В автомобилях тоже могут быть черные ящики. На самом деле, можно поспорить, что в вашем нынешнем автомобиле он уже есть, а если нет, то в вашем следующем новом автомобиле он точно будет. Вот почему вы должны точно знать, что записывает этот черный ящик, кто может получить эту информацию и как вы можете контролировать ее.

Немного истории

Черные ящики в автомобилях — не новая идея. Практика началась в 1994 году с автомобилей Cadillac, Buick, Chevrolet и Pontiac. Черные ящики должны были помочь производителям узнать, как их автомобили ведут себя в авариях.

С начала 2000-х годов Национальная администрация безопасности дорожного движения США (NHTSA) собирает информацию из "черных ящиков", чтобы получить более полное представление об обстоятельствах дорожно-транспортных происшествий. В 2013 году 96 % всех новых автомобилей, проданных в США, поставлялись с черным ящиком, а с 1 сентября 2014 года он должен быть установлен на каждом новом автомобиле.

Данные черного ящика использовались в нескольких громких расследованиях. В 2011 году лейтенант-губернатор штата Массачусетс Тимоти Мюррей разбил правительственную машину (он ушел). Он утверждал, что превышал скорость и был пристегнут ремнем безопасности. Следователи использовали данные его черного ящика, чтобы показать, что во время аварии он ехал со скоростью 100 миль в час без ремня безопасности.

Хотите узнать, есть ли в вашем автомобиле черный ящик? На сайте Harris Technical указан год выпуска, марка и модель почти каждого автомобиля с черным ящиком. Вы также можете проверить руководство по эксплуатации вашего автомобиля. Если вы покупаете автомобиль у дилера, они должны сообщить вам, есть ли в автомобиле черный ящик.

Что записывают черные ящики?

В то время как регистраторы данных о событиях первого поколения лишь отслеживали, сработали ли автомобильные подушки безопасности, технологии записи и датчиков стали меньше и намного мощнее. NHTSA требует, чтобы каждый новый регистратор отслеживал 15 переменных.

Информация включает скорость автомобиля, положение дроссельной заслонки, время срабатывания подушек безопасности, были ли задействованы тормоза, пристегнуты ли ремни безопасности, частота вращения двигателя, углы поворота рулевого колеса и многое другое. Производители также могут иметь до 30 дополнительных точек данных, если они хотят, за исключением, по их словам, местоположения GPS, видео и аудио. Кроме того, черный ящик хранит информацию только в течение 20 секунд после аварии.

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

Кто может получить данные?

Чтобы получить доступ к данным черного ящика, требуется профессиональная подготовка и система извлечения данных о сбоях, стоимость которой начинается от 2000 долларов США и может стоить до 20 000 долларов США с аксессуарами. Система CDR подключается к порту бортовой диагностики под приборной панелью со стороны водителя и передает информацию в специальную компьютерную программу.

Очевидно, что у автопроизводителей есть оборудование. У НАБДД и правоохранительных органов есть ресурсы для получения информации либо напрямую, либо через специализированных третьих лиц. Сторонние магазины часто извлекают данные в рамках службы реконструкции аварии. Страховые компании и юридические фирмы также могут использовать третьих лиц для получения данных для расследования несчастных случаев или судебных дел.

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

Хакеров больше интересует взлом автомобилей, чтобы они могли управлять ими на расстоянии. К сожалению, у них это получается хорошо, и это становится проще, поскольку автомобили все больше и больше управляются компьютером.

Это техническая сторона загрузки данных черного ящика, но есть и юридическая сторона. На момент написания этой статьи 15 штатов — Арканзас, Калифорния, Колорадо, Коннектикут, Делавэр, Мэн, Невада, Нью-Гэмпшир, Нью-Йорк, Северная Дакота, Орегон, Техас, Юта, Вирджиния и Вашингтон — приняли правила, определяющие, кто может извлекать информацию. с разрешения владельца автомобиля и без него.

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

Можете ли вы сохранить конфиденциальность ваших данных?

Тем не менее любой, у кого есть постановление суда или просто нужный инструмент и немного времени, может получить доступ к информации из вашего черного ящика. Вы не можете удалить данные или отключить черный ящик.

К счастью, есть более простой вариант. Такие продукты, как AutoCYB, OBD Lock и OBD Saver, блокируют диагностический порт, чтобы никто не мог подключить к нему что-либо без вашего разрешения. Это удерживает людей от сброса информации, извлечения данных или фальсификации записей, которые могут быть использованы против вас.

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

Подпрограмма состоит из инструкций по выполнению некоторой задачи, объединенных воедино и имеющих имя. «Разбиение на фрагменты» позволяет рассматривать потенциально очень сложную задачу как единую концепцию. Вместо того, чтобы беспокоиться о многих-многих шагах, которые может пройти компьютер для выполнения этой задачи, вам просто нужно запомнить имя подпрограммы. Всякий раз, когда вы хотите, чтобы ваша программа выполнила задачу, вы просто вызываете подпрограмму. Подпрограммы — это основной инструмент для решения сложных задач.

Подпрограмму иногда называют «черным ящиком», потому что вы не можете видеть, что находится «внутри» ее (или, если быть более точным, вы обычно не хотите заглядывать внутрь нее, потому что тогда вы чтобы справиться со всей сложностью, которую подпрограмма должна скрывать). Конечно, черный ящик, не имеющий возможности взаимодействовать с остальным миром, был бы совершенно бесполезен. Черный ящик нуждается в каком-то интерфейсе с остальным миром, который позволяет взаимодействовать между тем, что находится внутри ящика, и тем, что снаружи. Физический черный ящик может иметь кнопки снаружи, которые вы можете нажимать, циферблаты, которые вы можете устанавливать, и слоты, которые можно использовать для передачи информации туда и обратно. Поскольку мы пытаемся скрыть сложность, а не создать ее, у нас есть первое правило черных ящиков:

Интерфейс черного ящика должен быть достаточно простым, четким и понятным.

Есть ли в реальном мире примеры черных ящиков? Да; на самом деле, вы окружены ими. Ваш телевизор, ваш автомобиль, ваш мобильный телефон, ваш холодильник. Вы можете включать и выключать телевизор, переключать каналы и регулировать громкость с помощью элементов интерфейса телевизора — выключателя, пульта дистанционного управления, не забудьте подключить питание — ничего не понимая, как это происходит на самом деле. работает. То же самое и с мобильным телефоном, хотя интерфейс в этом случае намного сложнее.

Теперь у черного ящика есть внутренняя часть — код в подпрограмме, которая фактически выполняет задачу, или вся электроника внутри вашего телевизора. Внутренняя часть черного ящика называется его реализацией. Второе правило черных ящиков заключается в следующем:

Чтобы использовать черный ящик, вам не нужно ничего знать о его реализации; все, что вам нужно знать, это его интерфейс.

На самом деле должна быть возможность изменить реализацию, пока поведение блока, если смотреть снаружи, остается неизменным. Например, когда внутри телевизоров вместо электронных ламп использовались транзисторы, пользователям телевизоров не нужно было об этом знать — или даже знать, что это значит. Точно так же должна быть возможность переписать внутреннюю часть подпрограммы, чтобы, например, использовать более эффективный код, не затрагивая программы, использующие эту подпрограмму.

Конечно, чтобы иметь черный ящик, кто-то должен спроектировать и создать его реализацию. Идея черного ящика работает на пользу как разработчику, так и пользователю черного ящика. Ведь черный ящик можно использовать в неограниченном количестве различных ситуаций. Разработчику «черного ящика» не нужно ничего об этом знать. Разработчику просто нужно убедиться, что коробка выполняет возложенную на нее задачу и правильно взаимодействует с остальным миром. Это третье правило черных ящиков:

Разработчику черного ящика не нужно ничего знать о более крупных системах, в которых он будет использоваться.

В каком-то смысле черный ящик делит мир на две части: внутреннюю (реализация) и внешнюю. Интерфейс находится на границе, соединяющей эти две части.

Кстати, вы не должны думать об интерфейсе просто как о физическом соединении между коробкой и остальным миром. Интерфейс также включает спецификацию того, что делает блок и как им можно управлять с помощью элементов физического интерфейса. Недостаточно сказать, что у телевизора есть выключатель питания; необходимо указать, что выключатель питания используется для включения и выключения телевизора!

Если говорить языком информатики, интерфейс подпрограммы имеет не только синтаксический, но и семантический компонент.Синтаксическая часть интерфейса сообщает вам, что вам нужно ввести, чтобы вызвать подпрограмму. Семантическая составляющая точно определяет, какую задачу будет выполнять подпрограмма. Чтобы написать легальную программу, вам нужно знать синтаксическую спецификацию подпрограммы. Чтобы понять назначение подпрограммы и эффективно ее использовать, необходимо знать семантическую спецификацию подпрограммы. Я буду называть обе части интерфейса — синтаксическую и семантическую — в совокупности контрактом подпрограммы.

Контракт подпрограммы, по сути, говорит: "Вот что вы должны сделать, чтобы использовать меня, и вот что я сделаю для вас, гарантированно". Когда вы пишете подпрограмму, комментарии, которые вы пишете для подпрограммы, должны сделать контракт очень ясным. (Я должен признать, что на практике контракты подпрограмм часто неадекватно определены, к большому сожалению и раздражению программистов, которые должны их использовать.)

В оставшейся части этой главы я перейду от общих представлений о черных ящиках и подпрограммах в целом к ​​особенностям написания и использования подпрограмм в Java. Но помните об общих идеях и принципах. Это причины, по которым подпрограммы существуют в первую очередь, и ваши рекомендации по их использованию. Это должно быть особенно ясно в разделе 4.7, где я буду обсуждать подпрограммы как инструмент разработки программ.

Вы должны иметь в виду, что подпрограммы — не единственный пример черных ящиков в программировании. Например, класс — это тоже черный ящик. Мы увидим, что класс может иметь «общедоступную» часть, представляющую его интерфейс, и «приватную» часть, полностью находящуюся внутри его скрытой реализации. Все принципы черных ящиков применимы как к классам, так и к подпрограммам.

Детектив Дэйв Уэллс подключает свой ноутбук к автомобильному регистратору данных. Этим устройством оснащена большая часть новых автомобилей, и правительство рассматривает возможность сделать его обязательным для всех транспортных средств. Но некоторые говорят, что должна быть опция «выключено». Мартин Касте/NPR скрыть подпись

Детектив Дэйв Уэллс подключает свой ноутбук к автомобильному регистратору данных. Этим устройством оснащена большая часть новых автомобилей, и правительство рассматривает возможность сделать его обязательным для всех транспортных средств. Но некоторые говорят, что должна быть опция "выключено".

Если вы являетесь владельцем транспортного средства и в ближайшем будущем попадете в автомобильную аварию (мы надеемся, что это не так), скорее всего, подробности аварии будут записаны. Автомобильные «черные ящики» в настоящее время встроены в более чем 90 % новых автомобилей, и правительство рассматривает возможность сделать их обязательными.

Дэйв Уэллс, детектив из офиса шерифа округа Кинг в штате Вашингтон, специализируется на реконструкции ДТП. Это означает, что он часто прятался под рулем в поисках разъема, который механики используют для получения диагностических кодов. Но Уэллс использует другой инструмент, и он извлекает совсем другую информацию.

Прочитав данные со своего ноутбука, он говорит: "За первые 10 миллисекунд они разгоняются до полумили в час".

Это данные о ДТП — пошаговая статистика, сохраненная с момента последнего столкновения автомобиля. Есть скорость, ускорение, торможение и даже информация из салона автомобиля.

"У вас под сиденьем есть датчики", — объясняет он. "Таким образом, если кто-то пытался сказать, что во время аварии в машине был другой человек, который убежал, это показывает, что во время столкновения его не было."

Черный ящик в суде

Подробнее о конфиденциальности

Двусторонний

OnStar меняет ситуацию: он больше не будет собирать данные о старых клиентах

Учитываются все технологии

Большой брат у вас в кармане (но вы получаете скидку)

Соберите все вместе, и вы получите подробную картину секунд до и после аварии. Информация поступает из так называемого «регистратора данных о событиях»; EDR стал ключом к страховым расследованиям, судебным искам и даже уголовным делам. Но это не было его первоначальной целью.

"Он никогда не предназначался для следственных целей", – говорит Уэллс. "Он был разработан для . безопасности транспортных средств и защиты людей от травм и сохранения жизни".

EDR – это часть системы безопасности автомобиля, которая за доли секунды принимает решения, например, следует ли натянуть ремни безопасности или надуть подушки безопасности. А инженерам нравится видеть данные о реальных авариях, чтобы отслеживать, как работают эти системы. Таким образом, EDR сохраняют данные об авариях, а по мере усложнения систем безопасности регистраторы сохраняют больше информации.

"Не думаю, что вы найдете очень много американцев, которые знают, что эти устройства есть в их автомобилях", – говорит представитель штата Массачусетс Майкл Капуано. Вот уже восемь лет он пытается принять закон, предоставляющий водителям право отказаться.

Возможность отключить

"Я бы сказал, что это устройство, которое обычный человек должен иметь возможность отключить, если захочет", – говорит он. "Очевидно, что если бы это был вариант, некоторые страховые компании могли бы принять это во внимание при ценообразовании страховки, я это понимаю. Но, тем не менее, я думаю, что у обычного человека должен быть такой выбор".

Системы EDR существуют уже некоторое время, но проблема возникает снова, поскольку Национальная администрация безопасности дорожного движения предложила сделать эти устройства обязательными для всех новых автомобилей, начиная со следующего года. Это привлекло внимание экспертов по конфиденциальности, таких как Нейт Кардозо, штатный юрист Electronic Frontier Foundation.

"Объем данных, которые они регистрируют, огромен. И он не ограничен", – говорит Кардозо. "И я обнаружил, что это довольно проблематично."

Кардозо понимает важность данных об авариях для безопасности, но считает важным устанавливать ограничения, особенно по мере роста емкости цифровых хранилищ автомобилей. Он также говорит, что федералы должны уточнить, кто получает данные.

Серая зона

Некоторые штаты ограничивают действия страховых компаний с информацией EDR и требуют от полиции получения ордера, прежде чем подключаться к ней. Но в большей части страны это все еще остается серой зоной.

"Они могли бы сделать что-нибудь, например, добавить в руководство пользователя уведомление о том, что водитель разумно ожидает конфиденциальности данных в этом черном ящике. Мы думаем, что это будет иметь большое значение для решения вопроса о том, кому намного понятнее", – говорит Кардозо.

NHTSA не будет обсуждать свои планы, потому что оно находится в процессе написания предлагаемого нового правила, делающего регистраторы обязательными, но в прошлом некоторые официальные лица NHSTA предлагали рассмотреть вопрос о конфиденциальности данных об авариях. Конгрессом.

В округе Кинг Уэллс считает, что сохраненные данные об авариях не должны пугать людей.

"Чаще всего полученные данные помогут им в случае аварии", – говорит он. "Это, по крайней мере, укажет на одну вещь, а именно на факты".

Уэллс говорит, что водителям, заботящимся о конфиденциальности, следует больше беспокоиться о GPS и встроенных службах, предлагающих помощь на дороге. Разница в том, что на новых автомобилях эти системы по-прежнему будут опциональными.

Начав работать с классами и объектами, вы можете встретить термин программирование черного ящика. Часто программисты пишут методы, как если бы они были черными ящиками — программист знает, что происходит внутри ящика, но все эти детали реализации скрыты от пользователя. Пользователь должен знать о входных данных черного ящика, и он должен быть в состоянии предсказать выходные данные на основе входных данных, но детали того, как эти входные данные преобразуются в выходные данные, могут быть скрыты от пользователей.

Большинство технологий, которые мы используем в наши дни, в какой-то степени являются черными ящиками. Рассмотрим пульт от телевизора — мы можем дать пульту какой-то ввод, например, нажать кнопку «Увеличение громкости», и мы можем ожидать какой-то вывод, например увеличение громкости. Но помимо этого, вся внутренняя работа процесса скрыта от нас. Мы, как пользователи пульта дистанционного управления телевизором, на самом деле не знаем, как пульт дистанционного управления взаимодействует с телевизором или как телевизор взаимодействует с его динамиками. Все, что мы знаем, это формат ввода и ожидаемый результат. Затем мы позволяем черному ящику сделать все остальное.

Предварительные и постусловия

Чтобы связать это с Java, важно подумать о предусловиях и постусловиях метода. Предварительное условие — это условие, которое должно быть истинным, чтобы метод работал должным образом. Эти предварительные условия должны быть каким-то образом сообщены пользователю.

Например, чтобы пульт от телевизора работал должным образом, телевизор должен быть уже включен. В примере с Java вы можете написать функцию, которая принимает число в качестве входных данных. Потенциальным предварительным условием может быть то, что число должно быть положительным.

Вы можете написать свой метод, который проверяет, верно ли это предварительное условие. Например, если вашему методу требуется положительное число, вы можете напечатать сообщение об ошибке, если метод получит отрицательное число.Хорошей практикой является написание методов, учитывающих различные ситуации, но на самом деле некоторые методы будут иметь предварительные условия, о которых вам необходимо знать.

Точно так же важно подумать о постусловии метода. Постусловие — это условие, истинность которого гарантирована после вызова метода при условии, что выполнены предварительные условия. Возвращаясь к нашему примеру с телевизором, постусловие «Увеличить громкость» заключается в том, что громкость увеличится на 1. Это будет верно только в том случае, если выполнены предварительные условия. Предварительными условиями могут быть что-то вроде «телевизор включен» и «телевизор не на максимальной громкости».

Как и в случае с предусловиями, постусловия должны быть сообщены пользователю метода. Часто это делается с помощью документации. Взгляните на некоторые примеры официальной документации по Java. Попробуйте найти, где в документации описываются предусловия и постусловия этих методов. Некоторые из этих методов взяты из классов, с которыми вы еще не сталкивались:

Просматривая эту документацию, обратите внимание, что некоторые методы описывают больше деталей реализации, чем другие. Если вы хотите узнать больше о методе черного ящика, есть способы глубже погрузиться в код или документацию. Черный ящик не обязательно должен быть черным навсегда — если вам действительно интересно, как работает метод, вы всегда можете найти дополнительную информацию. Однако, когда вы начнете писать свои собственные методы, помните, что, как минимум, вы должны четко указать, каковы предварительные и постусловия ваших методов.

Читайте также: