2008-08-27 2 views
2

나는 Java로 클래스를위한 투표 데스크탑 응용 프로그램을 만드는 프로젝트를 가지고있다. 보안은 프로젝트의 초점이 아니지만 가능한 한 현실적이되고 싶습니다. Java 애플리케이션에 보안을 통합하는 주요 도구는 무엇입니까?투표 신청을위한 보안

편집 : 저는 기본적으로 물리적 보안에 대해 걱정하지 않습니다. 우리는 단순히 전체 시스템이 아닌 응용 프로그램을 구축하고 있습니다. 투표가 올바르게 기록되고 다른 사람이 변경하거나 읽을 수 없도록하고 싶습니다.

답변

3

정말로 통합 할 보안의 종류에 따라 다릅니다. 보안을 통해 사용자가 디버거를 실행하지 않도록하거나 투표를 변경하기 위해 응용 프로그램의 비트를 뒤집을 수 있도록할까요? 사용자가 누구에게 투표했는지 추적하기 위해 로깅 소프트웨어를 설치하지 않았는지 확인 하시겠습니까? 투표 할 사람이 실제로 투표를하고 있는지 확인하고 싶습니까? 보안은 매우 광범위한 주제이며, 당신이 정확히 무엇을 찾고 있는지 알지 못하면 대답하기가 어렵습니다.

+0

새 질문보기 편집 –

1

Applied Cryptography에는 코드와 같이이 항목에 대한 "상위 수준"설명이 필요한 경우 꽤 많은 관련 사례가 있습니다 (일부 투표를 다루는 "보안 선거"섹션 참조). 전략).

0

저는 코드 보안과 같은 물리적 보안이 투표소 시스템에 중요하다고 생각합니다.
이 기계는 본질적으로 어떤 종류의 공용 네트워크, 특히 인터넷에 연결되어서는 안됩니다. 그러나 물리적 인 변조를 방지하기 위해 물리적 인 보안을 유지하는 것이 매우 중요합니다.

0

저는 주로 물리적 보안에 대해 걱정하지 않습니다. 우리는 단순히 전체 시스템이 아닌 응용 프로그램을 구축하고 있습니다. 투표가 올바르게 기록되고 다른 사람이 변경하거나 읽을 수 없도록하고 싶습니다. 물리적 침해에 대하여 (기본 데이터베이스의 예)를 보호 한 쪽의 질문에 퍼팅

0

물리적 보안이 본 문제가 아니라고 규정 한 이후 ...

나는 차 고려 사항은 어떻게 생각 주어진 유권자가 한 번만 투표하도록하십시오. 설문 조사에서 각 등록 유권자는 특정 부스/위치로 제한되며 이름 + SSN 및 서명으로 확인됩니다.

고해상도 디지털 서명 캡처가 필요하므로 터치 스크린 캡처 주변 장치 또는 터치 스크린 터미널이 필요할 수 있습니다. 보다 정교한 접근법은 생체 인식 스캐너이지만 정부/지문 또는 망막 스캔 기록이 필요합니다. 변호사 사무실에 일렬로 배치 된 개인 정보 보호 옹호자를 볼 수 있습니다.

또 다른 방법은 유권자 "등록 사무소"가 선거 전에 각 유권자에게 디지털 키를 발급하는 것입니다 - 유권자의 이름으로 입력되는 상대적으로 짧은 (암호 학적으로 강한) 임의의 알파/숫자 키 및/또는 SSN을 응용 프로그램에 추가하십시오. 특정 선거에서 특정 유권자에게 그 핵심에 대한 지식이 필요합니다. 이 키는 은행이 계좌 이체 및 PIN 번호 전달을 위해 우편 확인을 위해 사용하는 것과 같은 변조 방지 봉투로 발행됩니다. 이 키에는 체크섬 데이터가 포함되어 있어야 사용자가 해당 항목의 유효성을 즉시 확인할 수 있으며 XXXX-XXXX-XXXX-CCCC와 같은 4 개의 그룹이어야합니다.

SSN과 같은 다른 "비밀"지식은 인구의 많은 부분에서 너무 쉽게 발견 될 수 있습니다 (신용 부여 기관이이를 이해하지 못하는 것 같지만). 인증에 적합하지 않습니다.

투표 계산은 공개 키 암호화 데이터 파일을 생성하여 수행 할 수 있습니다.이 파일은 (스니커 넷에서) 중앙 시스템으로 전송됩니다. 여기에는 "투표소"신원 정보와 SSN 및 디지털 키 (또는 서명 또는 생체 인식 데이터)를 포함한 각 유권자의 기록이 포함되어야합니다. 잘못된 키가있는 투표는 삭제됩니다. 동일한 키와 동일한 표를 가진 복수 표는 해당 후보에 대해 단일 표로 취급됩니다. 동일한 키와 다른 표를 가진 여러 표가 사기 수사로 신고됩니다 (전화로 연락 한 구성 원, 새 키를 발행 한 후 revote하도록 지시 한 경우).

2

최근 내 회사는 매우 강력한 보안 기능을 제공합니다. 어쩌면 도움이 될지도 모른다.

Google 어플

자바 EE 앱이었습니다.

아키텍처는 다음입니다 :

  1. 클라이언트 컴퓨터는 암호화 패키지를 가지고있다. 암호화 사용자 입출력 키 및 암호 해독 데이터를 저장하는 외부 accesible 아니다
  2. 면도 serwer 저장
  3. 더러운 serwer.

사용자는 암호화 카드 (안전하지 않은 것을 사용하는 경우가 있습니다. 예 : .pgp)가 발행되며 JSP 페이지에서 모든 입력을 암호화해야합니다. 페이지에는 cryctography 앱에 연결하고 사용자에게 키 암호를 묻고 서버 공개 키로 암호화 한 다음 사용자 개인 키로 서명 한 다음 제출하는 구성 요소가 들어 있습니다.

데이터는 외부 서버에 저장되고 내부 서버로 전송되어 해독되며 서명이 확인되면 데이터가 처리되고 다시 암호화 된 다음 더티 서버로 전송 된 다음 사용자가 가져올 수 있습니다.

누군가가 더러운 서버를 크랙해도 (심지어 데이터베이스를 확보하더라도) 그는 쓸모없는 데이터를 얻을 수 있습니다.

암호화 된 서명 된 투표를 서버에 보냈습니다. 당신은

  • 아무도는 투표가 무엇인지 알 수있을 줘야 투표를 보낸 사람이 누구인지 알 수

    1. : 그것은 두 가지를 주장하는 것입니다.

    그런 다음 서버에서 데이터를 가져 와서 모든 사람이 한 번 투표에 포함되어 있다고 단정하십시오.

  • 0

    문제는 사용자가 신원을 확인하고 서로 투표에 액세스하는 것을 방지 할 수 있도록 사용자를 신원 확인해야한다는 것입니다.

    이것은 인증 (잠재적으로 권한 부여)이 필요한 다른 데스크톱 응용 프로그램과 다르지 않습니다. 유권자가 사용자 계정이있는 네트워크의 폐쇄 된 그룹 인 경우 디렉토리와 통합하여 사용자의 로그인을 요구할 수 있습니다.

    유권자에게 네트워크 사용자 계정이 없으면 이것이 흥미로운 곳입니다. 각 사용자는 여전히 응용 프로그램을 인증해야합니다. 응용 프로그램에 암호가있는 계정을 생성하고이 정보를 투표 전에 안전하게 배포 할 수 있습니다.응용 프로그램은 응용 프로그램에 처음 액세스 할 때 암호를 선택하도록 사용자에게 요청할 수 있습니다.

    자세한 내용을 모르면보다 구체적인 답변을 제공합니다.

    0

    전자 투표는 미해결 된 연구 문제임을 알고 있습니까? 대규모 사기는 많은 노력을 기울여야합니다.

    +0

    저는 일반적인 지침/관행에 대한 질문이 많았습니다. –