Хранение номеров социального страхования

Отдел кадров в компании, на которую я в настоящее время работаю, запросил, чтобы я обеспечил систему для хранения номеров социального страхования сотрудника в нашей базе данных компании. Причина этого состоит в том, чтобы оптимизировать завершение платежной ведомости, поскольку мы используем программное обеспечение для внутреннего пользования для расписаний сотрудника, но имеем для интеграции со сторонним программным обеспечением для нашей фактической системы начисления заработной платы. Это - относительно небольшая компания (20-30 сотрудников), и мы только сохранили бы SSN's текущих сотрудников (таким образом, нарушение только ограничит влияние), но я все еще хотел бы положиться на безопасность.

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

Что касается текущего программного обеспечения, мы выполняем MySQL, и наш веб-интерфейс записан в PHP и работе сервера IIS.

25
задан Michael 14 March 2019 в 10:56
поделиться

11 ответов

Я не видел, что это упомянуло где-нибудь, но действительно ли необходимо для этой информации быть онлайн? В противном случае тогда Вы защитили один крупнейший путь нападения путем простого хранения этой информации в базе данных по компьютеру, это не подключено к Интернету. Или, если можно сойти с рук хранение его на LAN где-нибудь (таким образом, HR может иметь доступ к нему, или безотносительно), в противоположность рабочим серверам, это - все еще шаг в правильном направлении.

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

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

, Насколько реализация идет, если Вы довольны MySQL - придерживаются этого, у них есть инструменты, необходимо сделать то, что Вы хотите: http://dev.mysql.com/doc/refman/5.0/en/encryption-functions.html

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

Редактирование: после чтения, что сказал Graeme, я чувствую, что должен добавить, что большинство нарушений защиты является внутренним заданием - удостоверяются, что защитили Ваши данные на уровне диска, через базу данных, и по проводу.

9
ответ дан mmacaulay 28 November 2019 в 21:14
поделиться

лучший метод я видел то, чтобы хранить уязвимые данные , шифрование с открытым ключом, и хранение закрытого ключа где-нибудь кроме базы данных (скажите через приложение, только доступное главе HR и генеральному директору):

Тогда мы начали хранить people’s кредит cards†¦, но на веб-сайте we’d сразу шифруют их с открытым ключом....

На бэкенде, у нас был закрытый ключ, и с правильным паролем мы могли временно дешифровать [закрытый ключ], затем использовать [закрытый ключ], чтобы дешифровать кредитную карту и взимать карту за DVD.

12
ответ дан Max Lybbert 28 November 2019 в 21:14
поделиться

Моя рекомендация: храните свои данные MySQL на зашифрованных дисках, так, чтобы в случае ноутбука misplacement, и т.д., данные не могли быть получены.

, Если само приложение базы данных поставилось под угрозу, конечно, ничто не может помочь, поскольку само приложение использует SSNs. Возможно, это - недостаток дизайна, который можно исправить. Я был бы склонен думать с точки зрения маленького, ограниченного приложения, которое отображает SSN на (non-SSN) ключ и затем использование что новый ключ как "идентификатор пользователя" в Вашей базе данных, а не SSN. Я избежал бы быстрого увеличения самого SSN любой ценой.

7
ответ дан bog 28 November 2019 в 21:14
поделиться

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

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

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

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

Следуют инструкции NSA на компьютерной безопасности, где SSN's хранится и любая машина, которая имеет доступ к той машине.

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

5
ответ дан James Schek 28 November 2019 в 21:14
поделиться

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

3
ответ дан Scott 28 November 2019 в 21:14
поделиться

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

Номера кредитных карт подпадают под "PCI" (Промышленность Платежной карты) соответствие, и это - путаница. Но в Вашем случае, Вы в порядке.

BTW: AES 128 считают совершенно достаточно хорошим для Визы, AMEX, Узнайте, и т.д. (PCI).

3
ответ дан Timothy Khouri 28 November 2019 в 21:14
поделиться

Существует несколько текущих документов, указывающих политику такой как записка Белого дома и отчет ГАО отчет .

ГАО Кроме того, существует шифрование , vpn, и PKI для безопасности.

2
ответ дан user31051 28 November 2019 в 21:14
поделиться

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

1
ответ дан Brian Matthews 28 November 2019 в 21:14
поделиться

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

Примечание, что это только имеет дело с шифрованием данных на диске ; Вы хотели бы изучить шифрование транспортного уровня также для защиты данных по проводу (снова, если поддержки MySQL это).

Отредактированный для добавления: После чтения ответа Marcin я понял, что не упоминал проблему управления ключами. У любого, у кого есть доступ к триггеру или определениям представления также, есть доступ к ключу шифрования, поэтому если бы MySQL имеет способность скрыть триггер и определения представления, Вы хотели бы изучить это также. Конечно, включая ключ шифрования с зашифрованными данными по сути небезопасно во-первых, таким образом, это не прекрасно решение.

0
ответ дан Graeme Perrow 28 November 2019 в 21:14
поделиться

Моя рекомендация состояла бы в том, чтобы полагаться на ограничение доступа. Только имейте единственную учетную запись, которая в состоянии на самом деле считать (и если необходимая запись) таблицу, где SSN's хранится. Используйте ту учетную запись из своего приложения, чтобы получить доступ к дб и блокировать доступ из любой учетной записи.

0
ответ дан Matthew Brubaker 28 November 2019 в 21:14
поделиться

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

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

-1
ответ дан Jonathan Leffler 28 November 2019 в 21:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: