사용자 이름 열거 | 피하는 방법 Secure Code Warrior
사용자 이름 열거 | 피하는 방법 Secure Code Warrior
사이드 채널 공격은 해커가 소프트웨어 코드의 알고리즘이나 버그의 이론적 약점이 아닌 소프트웨어 시스템의 물리적 구현에서 정보를 수집할 수 있는 경우입니다.
이것을 더 명확하게 만드는 데 사용하는 예제는 사용자 이름 열거를 수행하는 방법입니다. 사용자 이름 열거가 무엇인지 또는 나쁜 이유를 알고 싶다면 웹 사이트를 방문하여 비디오 설명을 하거나 코드에서 식별할 수 있는지 확인하는 데 어려움을 해결하십시오.
이제 사이드 채널 공격을 통해 사용자 이름 열거를 수행하는 방법을 이해하려면 최신 웹 응용 프로그램에서 암호가 어떻게 처리되는지(또는 적어도 해야 합니다)를 이해해야 합니다. 좋은 웹 응용 프로그램은 암호를 모르고, 어디서나 암호를 저장하거나 저장하지 않습니다. 그렇다면 입력한 내용이 정확하고 실제로 암호라는 것을 어떻게 알 수 있을까요? 음, 암호가 해시됩니다.
해싱 함수는 한 가지 방식으로 수행하기 쉬운 수학적 작업이지만(다소 계산비용이 많이 들지만) 역방향이 매우 어렵고 좋은 해싱 알고리즘을 위해 입력에 따라 출력이 고유합니다. 웹 사이트에 등록하면 해시가 암호 자체가 아니라 안전하게 저장됩니다. 즉, 로그인할 때마다 웹 응용 프로그램이 입력을 해시하고 해시된 결과를 저장된 해시와 비교합니다. 보안 암호 저장소에대해 자세히 알아보려면 플랫폼에서 이를 수행할 수 있습니다.
해시 입력은 컴퓨터에 시간이 걸리며 개발자는 항상 사용자가 원활한 경험을 하기 위해 작성하는 모든 것을 최적화하려고 노력합니다. 프로그램의 속도를 높이는 한 가지는 필요하지 않을 때 해시를 건너 뛰는 것입니다. 예를 들어 사용자 이름이 존재하지 않으므로 암호를 확인할 필요가 없는 경우 즉시 사용자에게 응답할 수 있습니다. 이렇게 하면 암호를 해시하는 느린 계산을 건너뛸 수 있습니다. 사용자 이름이 정확하면 암호 입력을 해시하고 저장된 해시와 비교합니다.
이 시점에서, 당신은 일이 잘못 될 수있는 곳을 추측 했을 수 있습니다. 실제로 해싱은 몇 밀리초밖에 걸리지 않지만 해커는 해시가 수행되지 않았기 때문에 잘못된 사용자 이름이 약간 더 빠른 응답을 갖기 때문에 입력한 사용자 이름이 올바른지 아닌지 알아내기 위해 이 추가 지연을 사용할 수 있습니다. 이러한 유형의 측면 채널 공격은 타이밍 공격이라고 하며 서로 다른 비기능 요구 사항이 서로 어떻게 대응할 수 있는지에 대한 좋은 예입니다. 때로는 코드가 동시에 빠르고 안전할 수 없는 경우가 있습니다.
따라서 암호가 완벽하게 처리되고 표시되는 메시지가 일반적이며 암호 또는 사용자 이름이 잘못되었는지 여부를 알려주지 않더라도 시스템은 여전히 취약합니다. 해결책은 항상 암호를 해시하거나 해시하는 데 걸리는 시간을 회신 보내기를 지연, 쉽습니다.
획득한 정보는 공격자가 시스템에서 사용자 목록을 가져오는 데 사용할 수 있습니다. 이 정보는 무차별 암호 힘 또는 기본 사용자 이름/암호 공격을 통해 웹 응용 프로그램을 공격하는 데 사용할 수 있습니다.
블로그에서 최신 보안 코딩 인사이트에 대해 자세히 알아보세요.
Atlassian의 광범위한 리소스 라이브러리는 안전한 코딩 숙련도를 확보하기 위한 인적 접근 방식을 강화하는 것을 목표로 합니다.
개발자 중심 보안에 대한 최신 연구 보기
광범위한 리소스 라이브러리에는 개발자 중심의 보안 코딩을 시작하는 데 도움이 되는 백서부터 웨비나까지 유용한 리소스가 가득합니다. 지금 살펴보세요.
사용자 이름 열거 | 피하는 방법 Secure Code Warrior
사이드 채널 공격은 해커가 소프트웨어 코드의 알고리즘이나 버그의 이론적 약점이 아닌 소프트웨어 시스템의 물리적 구현에서 정보를 수집할 수 있는 경우입니다.
이것을 더 명확하게 만드는 데 사용하는 예제는 사용자 이름 열거를 수행하는 방법입니다. 사용자 이름 열거가 무엇인지 또는 나쁜 이유를 알고 싶다면 웹 사이트를 방문하여 비디오 설명을 하거나 코드에서 식별할 수 있는지 확인하는 데 어려움을 해결하십시오.
이제 사이드 채널 공격을 통해 사용자 이름 열거를 수행하는 방법을 이해하려면 최신 웹 응용 프로그램에서 암호가 어떻게 처리되는지(또는 적어도 해야 합니다)를 이해해야 합니다. 좋은 웹 응용 프로그램은 암호를 모르고, 어디서나 암호를 저장하거나 저장하지 않습니다. 그렇다면 입력한 내용이 정확하고 실제로 암호라는 것을 어떻게 알 수 있을까요? 음, 암호가 해시됩니다.
해싱 함수는 한 가지 방식으로 수행하기 쉬운 수학적 작업이지만(다소 계산비용이 많이 들지만) 역방향이 매우 어렵고 좋은 해싱 알고리즘을 위해 입력에 따라 출력이 고유합니다. 웹 사이트에 등록하면 해시가 암호 자체가 아니라 안전하게 저장됩니다. 즉, 로그인할 때마다 웹 응용 프로그램이 입력을 해시하고 해시된 결과를 저장된 해시와 비교합니다. 보안 암호 저장소에대해 자세히 알아보려면 플랫폼에서 이를 수행할 수 있습니다.
해시 입력은 컴퓨터에 시간이 걸리며 개발자는 항상 사용자가 원활한 경험을 하기 위해 작성하는 모든 것을 최적화하려고 노력합니다. 프로그램의 속도를 높이는 한 가지는 필요하지 않을 때 해시를 건너 뛰는 것입니다. 예를 들어 사용자 이름이 존재하지 않으므로 암호를 확인할 필요가 없는 경우 즉시 사용자에게 응답할 수 있습니다. 이렇게 하면 암호를 해시하는 느린 계산을 건너뛸 수 있습니다. 사용자 이름이 정확하면 암호 입력을 해시하고 저장된 해시와 비교합니다.
이 시점에서, 당신은 일이 잘못 될 수있는 곳을 추측 했을 수 있습니다. 실제로 해싱은 몇 밀리초밖에 걸리지 않지만 해커는 해시가 수행되지 않았기 때문에 잘못된 사용자 이름이 약간 더 빠른 응답을 갖기 때문에 입력한 사용자 이름이 올바른지 아닌지 알아내기 위해 이 추가 지연을 사용할 수 있습니다. 이러한 유형의 측면 채널 공격은 타이밍 공격이라고 하며 서로 다른 비기능 요구 사항이 서로 어떻게 대응할 수 있는지에 대한 좋은 예입니다. 때로는 코드가 동시에 빠르고 안전할 수 없는 경우가 있습니다.
따라서 암호가 완벽하게 처리되고 표시되는 메시지가 일반적이며 암호 또는 사용자 이름이 잘못되었는지 여부를 알려주지 않더라도 시스템은 여전히 취약합니다. 해결책은 항상 암호를 해시하거나 해시하는 데 걸리는 시간을 회신 보내기를 지연, 쉽습니다.
획득한 정보는 공격자가 시스템에서 사용자 목록을 가져오는 데 사용할 수 있습니다. 이 정보는 무차별 암호 힘 또는 기본 사용자 이름/암호 공격을 통해 웹 응용 프로그램을 공격하는 데 사용할 수 있습니다.