다음을 통해 공유


암호 위협 평가

암호를 보호하는 코드를 구현하기 전에 공격자가 소프트웨어 방어에 침투하려고 할 수 있는 방법에 대해 특정 환경을 분석하는 것이 가장 좋습니다.

먼저 네트워크 또는 시스템 아키텍처를 분석합니다. 몇 가지 예제는 다음과 같습니다.

  • 보호해야 하는 암호 수입니다. 로컬 컴퓨터에 로그온하려면 암호가 필요한가요? 네트워크에 로그온하는 데 동일한 암호가 사용되어 있나요? 암호가 네트워크에서 둘 이상의 서버로 전파되는가? 얼마나 많은 암호를 수용해야 합니까?
  • 사용할 네트워크 종류(있는 경우)입니다. 네트워크가 회사 디렉터리 시스템(예: LDAP)을 사용하여 구현되고 암호 아키텍처가 사용되었나요? 암호화되지 않은 암호를 저장하는 개체가 있나요?
  • 열린 네트워크와 닫힌 네트워크. 네트워크가 자체 포함되었나요 아니면 외부에 열려 있나요? 그렇다면 방화벽으로 보호되고 있나요?
  • 원격 액세스. 사용자가 원격 위치에서 네트워크에 액세스해야 합니까?

시스템 또는 네트워크 아키텍처를 분석한 후에는 공격자가 이를 공격하는 방법을 분석하기 시작할 수 있습니다. 다음은 몇 가지 가능성입니다.

  • 컴퓨터 레지스트리에서 암호화되지 않은 암호를 읽습니다.
  • 소프트웨어에서 하드 코딩된 암호화되지 않은 암호를 읽습니다.
  • 컴퓨터의 교환된 코드 페이지에서 암호화되지 않은 암호를 읽습니다.
  • 프로그램의 이벤트 로그에서 암호를 읽습니다.
  • 일반 텍스트 암호를 포함하는 개체가 있는 확장된 Microsoft Active Directory 디렉터리 서비스 스키마에서 암호를 읽습니다.
  • 암호가 필요한 프로그램에서 디버거를 실행합니다.
  • 암호를 추측합니다. 여러 가지 기술을 사용할 수 있습니다. 예를 들어 공격자는 사용자에 대한 일부 개인 정보를 알고 해당 정보(예: 배우자/파트너 또는 자녀의 이름)에서 암호를 추측하려고 할 수 있습니다. 또는 문자, 숫자 및 문장 부호의 모든 조합을 시도하는 무차별 암호 대입 방법을 시도할 수 있습니다(짧은 암호가 사용되는 경우에만 가능).

가능한 공격 방법론을 시스템 또는 네트워크 아키텍처와 비교하면 보안 위험이 발생할 수 있습니다. 이 시점에서 각 위험에 대해 위험 요소를 설정할 수 있으며 위험 요소를 사용하여 수정 사항을 심사할 수 있습니다.