목록분류 전체보기 (66)
줴림이 공부하줴림
인증 관련 기술구분설명SSO(Single Sign On)커버로스에서 사용되는 기술한 번의 인증 과정으로 여러 컴퓨터 상의 자원을 이용할 수 있도록 해주는 인증 기술커버로스(Kerberos)1980년대 중반 MIT의 Athena 프로젝트의 일환으로 개발됨클라이언트/서버 모델에서 동작하고 대칭 키 암호기법에 바탕을 둔 티켓 기반의 프로토콜OAuth사용자가 비밀번호를 제공하지 않고 다른 웹 사이트나 애플리케이션의 접근 권한을 부여할 수 있게 하는 개방형 표준 기술외부 계정(Naver, Kakaotalk 등)을 기반으로 토큰을 이용하여 간편하게 회원가입 및 로그인 가능하게 해줌 암호 알고리즘데이터의 무결성 및 기밀성 확보를 위해 정보를 쉽게 해독할 수 없는 형태로 변환하는 기법 주요 용어평문(Plain/Plai..
이번 문제는 'Name이 CodeEngn일 때 Serial을 구하시오"라고 되어 있다. 근데 정답이 여러 개가 나올 수 있으며, 5개의 숫자로 되어 있는 정답을 찾아야 한다고 한다. 심지어 Bruteforce가 필요하다고... 미치겠군!+) Bruteforce가 무엇인지 기억이 안난다면, 내가 작성한 정처기 실기 내용을 보고 오자. [정보처리기사 실기] Ⅸ. 소프트웨어 개발 보안 구축 (1)기타 네트워크 공격ARP 스푸핑: 공격자가 특정 호스트의 MAC 주소를 자신의 MAC 주소로 위조한 ARP Reply를 만들어 희생자에게 지속적으로 전송하여 희생자의 ARP Cache Table에 특정 호스트의 MAC 정보를juerrim.tistory.com 이번 실행파일은 되게 게임처럼 생겼다. 처음 실행할 때 악성..
부분 문자열에 관한 문제이다. 사전 순으로 배열했을 때 N번째의 부분 문자열의 첫 글자와 그 길이를 출력하면 된다.T = int(input())for test_case in range(1, T+1): N, string = input().split() N = int(N) substring = set() for i in range(len(string)): for j in range(i+1, len(string)+1): # 개인적으로 어려웠던 부분 substring.add(string[i:j]) # 개인적으로 어려웠던 부분 substring = sorted(substring) target = substri..
기타 네트워크 공격ARP 스푸핑: 공격자가 특정 호스트의 MAC 주소를 자신의 MAC 주소로 위조한 ARP Reply를 만들어 희생자에게 지속적으로 전송하여 희생자의 ARP Cache Table에 특정 호스트의 MAC 정보를 공격자의 MAC 정보로 변경, 희생자로부터 특정 호스트로 나가는 패킷을 공격자가 스니핑하는 공격기법ICMP Redirect 공격: 3계층에서 스니핑 시스템을 네트워크에 존재하는 또다른 라우터라고 알림으로써 패킷의 흐름을 바꾸는 공격기법. ICMP Redirect 메시지를 공격자가 원하는 형태로 만들어서 특정 목적지로 가는 패킷을 공격자가 스니핑하는 공격기법트로이 목마: 악성 루틴이 숨어 있는 프로그램. 겉보기에는 정상적인 프로글매처럼 보이지만 실행하면 악성코드를 실행한다. 시스템 보..
이번 문제는 전이랑 다르게 그냥 '정답을 구하세요'라고 되어 있었다. 13.exe 파일을 열어보니까 진짜로 그냥 password 입력하는 부분만 존재한다?Olly로 열어서 뜯어보기 전에 혹시 패킹이 되어있나 확인하기 위해 PEiD에 올려봤다. 결과는 패킹 처리 안된 아이. 그냥 올려서 확인해도 되겠다! ...싶었는데 막상 Ollydbg에서 열려고 하니까 파일을 시작할 수 없다고 나온다. 이게 무슨 소리고??? 찾아보니까 C#으로 작성된 경우에는 Olly로 열 수가 없다고 한다. 에바잖아 그래서 Olly는 과감히 버리고 HxD로 뜯어보기로 했다. 여기에 패스워드를 입력하라는 말과, 실패했을 때 + 성공했을 때 출력되는 메시지들이 보인다. 근데 여기서 끝났다. 뭘 더 알아볼 수가 없어... 그래서 문제 해결..
이번엔 접두어 개수를 알아내는 문제이다. 이번에는 해결하는데 조금 애먹긴 했다.T = int(input())for test_case in range(1, T+1): N, M = map(int, input().split()) a_list = [input() for _ in range(N)] b_list = [input() for _ in range(M)] count = 0 for b in b_list: for a in a_list: if len(a) >= len(b) and a.startswith(b): count += 1 break print(f"#{test_case..
원래는 그래프의 최소 비용 문제들을 풀어야 하지만, 피곤함 이슈로 문자열 탐색 문제를 풀기로 한 나.T = int(input())for test_case in range(1, T+1): N, M = map(int, input().split()) A_dict = [input() for _ in range(N)] B_dict = [input() for _ in range(M)] tmp = [] count = 0 for i in range(len(A_dict)): for j in range(len(B_dict)): if A_dict[i] == B_dict[j] and B_dict[j] not in tmp: ..