2009-11-20 4 views
0

고객이 우리에게 데이터베이스를 제공하려고합니다. 원래 데이터베이스에는 전화 번호 열이 있습니다. 그는 우리에게 전화 번호를 알려주고 싶지 않습니다. 어떻게 든 나는 왜 그런지 확신하지 못한다. - 클라이언트가 128 비트 AES 키로 암호화 된 암호화 된 전화 번호를 줄 것이라고 결정된다.암호화 사용 여부에 관한 조언

우리는 어떤 전화 번호가 어떤 목적을 위해 명단에 올릴지를 알려주지 만 실제 전화 번호가 무엇인지 결코 알 수 없습니다. 우리는 암호화 된 번호를 알 것입니다.

  1. 이 목적에 적합한 128 비트 AES 키 암호화를 사용하는 것입니다 : 여기

    내가 이해하지 못하는 것입니까?
  2. 클라이언트가 숫자를 변환하거나 키를 보존 클라이언트 대신 이 암호화 된 번호로 시킴으로 빨리 번호를 매핑하는 데이터베이스 을 만들어야합니다 사용하는 AES 키를 보존해야
  3. 같은 키는 모든 변환하는 데 사용되어야한다 숫자 또는 다른 문자
  4. 무작위로 생성 된 키를 사용하여 숫자를 암호화하는 경우 암호화 된 텍스트는 동일 할 수 있습니다. 가능합니까?
+1

, 하나의 중재자가 SO에이 아니다 -과 사람 합리적으로 높은 담당자가 질문을 닫을 수 있습니다. 질문을 닫지 않는 가장 좋은 방법은 관련성이 있다고 주장하는 것이 아니라 좋은 관련성있는 질문을 작성하는 것입니다. 개개인에 대한 "개인적인"항소 여부와 관계없이 좋은 질문을 머무르고 나쁜 질문은 닫힙니다. –

답변

1

위해 우려 주소 : 그것은있을 수 있습니다

  1. , 그것은되지 않을 수 있습니다. 실제로 목적이 무엇인지는 언급하지 않았습니다.

    • 왜 암호화가 필요한가?
    • 보호 대상은 누구입니까?
    • 데이터의 가치 (또는 손실에 대한 책임)는 무엇입니까?
    • 가상의 공격자는 어떻게 생각합니까?
    • 보안 게인에는 어떤 성능 손실이 허용됩니까?
    • 사용 가능한 하드웨어는 무엇입니까?
    • 시스템의 다양한 부분에 대한 물리적/논리적 액세스 권한은 누구에게 있습니까?

    기타 등등. 상황을 알지 못하면 이것이 적절한 암호화 체계인지 여부를 말할 수 없습니다. (단단한 선택 일 가능성이 있지만).

  2. 확실히 클라이언트가 결정하기위한 것입니까? 하지만 나는 후자의 경우 암호화의 목적을 완전히 무력화시키는 것 같다.
  3. 어떤 번호를 해독하는 데 사용할 키를 저글링하려고하지 않는 한, 모든 숫자를 변환하는 데 동일한 키를 사용해야합니다. 보안 시스템이 잘 설계되어 있다면 이는 추가적인 보안을 제공하지 않으며 단지 기괴한 두통 일뿐입니다.
  4. 정의에 의해 암호화, 아니요. 항상 해시 매핑을 사용하면 해시를 가져 오는 것과 같은 정보가 손실되지 않습니다. 결과적으로 암호문의 모든 인스턴스에는 단일 키가있는 고유 한 일반 텍스트가 암호화됩니다.

이 모든 것이 필요한 것처럼 들리지는 않지만. 누군가 기술적 인 장점보다는 외형을 기반으로 의사 결정을 내린 것처럼 들립니다. "우리는 브라우저에 사용 된 것과 동일한 128 비트 암호화로 전화 번호를 암호화합니다."라는 말은 좋지만 실제로 필요한 것입니까?

5

IMO 잘못된 접근입니다. 누군가가 키를 유출했기 때문에 전화 번호를 암호화 해독하는 대신에, 클라이언트는 실제 전화 번호가있는 테이블을 가리키는 ID로 대체해야합니다. 물론이 룩업 테이블은 그와 함께 머물러 있습니다.

I.E.

원래 테이블 :

Name | Phone 
-------+--------- 
Erich | 555-4245 
Max | 1234-567 

당신이 얻을 :

Name | Phone 
-------+--------- 
Erich | 1 
Max | 2 

만 클라이언트가있다 : 그런데

ID | Phone 
---+--------- 
1 | 555-4245 
2 | 1234-567 
관련 문제