전체 글579 네트워크 접근 통제 네트워크 접근 통제(NAC)네트워크 접근 통제란 네트워크 접근 관리에 사용하는 포괄적인 용어이다.사요자가 네트워크에 로그인 하는걸 인증사용자가 접근 할 수 있는 데이터와 수행 할 수 있는 작업 범위를 결정사용자가 컴퓨터나 모바일 기기(종단 기기)의 안정성을 접근한다핵심은 행동 제어를 해준다는 것이다 공공 기관에서 하나의 AP로 여러 개의 SSID를 뿌려 줄 수 있다. 즉 해당 기관 직원과 게스트를 위한 AP를 분리해둔 상황이다. 이 때 외부인이 직원 전용 SSID에 접근하여 공공 기관 인증 서버에서 접근 통제를 한다.네트워크 접근 통제 시스템 요소접근 요청자(AR : Access Requestor) 네트워크에 접근을 시도하는 노드 워크스테이션, 서버, 프린터, 카메라 등 NAC 시스템이 관리하는 모든 장.. Computer Science/Security 2023. 4. 12. 람다 대수 베타 축약 람다 대수 베타 축약 람다 대수의 베타 축약(Beta-reduction)은 람다 대수에서 함수 적용을 수행하는 과정입니다. 함수와 인자를 결합하여 하나의 표현식으로 줄이는 과정으로, 계산의 기본 단위를 나타냅니다. 베타 축약은 람다 대수의 핵심 연산으로, 프로그램의 실행을 모델링하는 방법을 제공합니다. 베타 축약은 다음과 같은 기본 규칙을 따릅니다. (λx. E1) E2 → E1[x := E2] 이 규칙은 함수 (λx. E1)에 인자 E2를 적용하면 결과 표현식 E1[x := E2]가 생성된다는 것을 의미합니다. 여기서 E1[x := E2]는 표현식 E1에서 매개변수 x가 출현하는 모든 부분을 E2로 치환한 결과입니다. 실습 (λx. x + 1) 2 베타 축약을 적용하면 다음과 같이 계산할 수 있습니다... Computer Science/프로그래밍 언어론 2023. 4. 12. X.509 인증서 X.509 인증서 ITU-T 권고안 X.509는 디렉터리 서비스를 정의하는 권고안 X.500 시리즈의 한 부분 X.509 X.509는 인증 서비스의 구조를 규정합니다 공개 키 암호와 디지털 서명을 이용해서 만들어졌습니다 해당 표준에서는 특정 디지털 서명 알고리즘/해시 함수 사용을 명시하지 않습니다 디렉터리 사용자 정보 데이터베이스를 관리하는 하나의 서버 또는 분산 서버 집단 공개키 인증서의 저장소로 이용 IT 센터 등에서 컴퓨터 안에 들어가야 할 소프트웨어 정보들을 관리 할 때 디렉터리를 사용한다 X.509 형식 X.509 구조의 핵심은 각 사용자와 연관 된 공개 키 인증서이다. 해당 사용자 인증서(공개 키 인증서)는 CA가 만들고, CA나 사용자가 디렉터리에 올린다 디렉터리 서버 자체는 공개 키 작성이.. Computer Science/Security 2023. 4. 11. Kerberos Kerberos 커버로스는 대칭 암호 원리 기초를 기반으로하는 컴퓨터 네트워크 인증프로토콜이다 주로 클라이언트-서버 시스템에 사용 되며, 인터넷 같이 보안이 보장되지 않는 네트워크에서 사용자 인증, 데이터 무결성, 기밀성 제공합니다 인터넷에서 데이터를 주고 받을 때의 위협은 무엇인가? 사용자 위장 네트워크 주소 변경 (Spoofing) 재전송 공격 커버로스에서 사용자는 서버를 인증할 수 있는 기능을 갖춘 중앙 집중식 인증 서버를 가지게 된다 커버로스 프로토콜의 핵심 요소 클라이언트(Client) : 서비스를 사용하려는 사용자 또는 시스템 서비스 서버(Service Server) : 클라이언트에게 서비스를 제공하는 시스템 인증서버(Authentication Server, AS) : 사용자의 인증 정보를 확.. Computer Science/Security 2023. 4. 11. Kerberos 5 Kerberos 5 Kerberos 4에 비해 개선 된 부분을 위주로 버전 5 kerberos 프로토콜에 대해 알아보자 버전 4와 버전 5의 차이점 환경적 결함 : Athena 프로젝트 환경에 국한해 설계해서 발생 암호화 시스템 의존성 : 기존의 버전 4는 DES 를 사용하였다 인터넷 프로토콜 의존성 : 버전 4는 IP 주소만을 사용해야 했다 메시지 바이트 순서 : 버전 4의 바이트 순서가 전통적인 방법을 따르지 않았음 티켓 유효 기간 : 버전 4는 티켓 유효기간이 21시간 정도로 짧았음 인증 전달 공동체 간 인증 기술적 결함 이중 암호화 PCBC 암호화 세션 키 패스워드 공격 버전 5의 인증 절차 인증 서비스 교환 티켓 - 발행 티켓 취득 용어 공동체(Realm) : 사용자의 공동체 선택 사항(Opti.. Computer Science/Security 2023. 4. 11. Kerberos 4 커버로스 4는 내부 암호로 DES를 사용하며, 설명을 위해 Athena 프로젝트의 Bill Bryant가 사용한 방법으로 구조 설명을 하겠다 단순 인증 절차 : 인증서버(AS:authentication server) AS는 각 서버와 유일한 비밀 키를 공유한다 이 때 비밀 키는 물리적으로 분배되거나 다른 안전한 방법을 통해서 분배 된다. 아래의 가상 절차를 고려해보자 (1) 사용자가 워크스테이션에 로그온하고, 서버 V에 접근 요청 사용자 워크 스테이션 내 클라이언트 모듈 C는 사용자 패스워드 요구 사용자의 ID와 서버 ID 그리고 사용자 패스워드를 포함하는 메시지를 AS에 보낸다 (2) AS의 티켓 발행 AS는 데이터베이스 조회 사용자가 자신의 ID와 일치하는 패숴워드를 입력했는지 서버 V에 접근 허가가.. Computer Science/Security 2023. 4. 11. 프로그래밍 언어란 프로그래밍 언어란 프로그래밍 언어 동작시키는 프로그램을 작성하기 위한 인공적인 언어 프로그래밍 언어의 분류 저급 언어 : 기계어, [[어셈블리어]] 하드웨어 지향의 기계 중심 언어 고급 언어 : C, C++, Java 등 대부분의 언어 컴퓨터 기종에 따라 다르게 표현 되는 저급 언어 문제 해결 사람이 사용하는 기호 체계와 유사 Computer Science/프로그래밍 언어론 2023. 4. 11. 논리형 언어 논리형 언어 논리형 언어는 기호 논리 형태의 규칙과 사실을 정의하는 방식으로 동작하는 프로그래밍 언어입니다. 선언형 프로그래밍 패러다임을 따르며, 주어진 사실과 규칙을 기반으로 새로운 사실을 유추하거나 질의를 수행합니다. 논리형 언어가 필요해진 이유는 명령형 언어의 기계 친화적인 특성 때문에 프로그래머가 더 사람 친화적이고 추상화된 언어를 원하기 시작했기 때문입니다. 논리형 언어를 사용하면 미리 관계 규칙을 선언하고 값을 입력하면 답이 나오는 구조로 동작하게 됩니다. 예를 들어, "저는 전남대 교수입니다."라는 사실을 선언한 후, 규칙들을 서술하고, 규칙이 맞는지 확인하면서 프로그램을 작성할 수 있습니다. 예시 저는 전남대 교수입니다. 규칙들을 서술해서, 규칙이 맞아? 이게 맞아? 했을 때? 미리 관계 .. Computer Science/프로그래밍 언어론 2023. 4. 11. 프로그래밍 패러다임 프로그래밍 패러다임 : 계산의 본질을 보는 관점에 따른 분류 지금까지 공부한 순서를 보면 전개 과정이 보입니다. 처음엔 프로그래밍 언어란에서 고급 언어와 저급 언어를 분류하였습니다. 프로그래밍 언어 설계 원칙에서 언어가 가지는 속성을 알게 되었습니다. 이를 토대로, 만들어진 언어가 어떻게 처리 되었는지 [[프로그램 처리 기법]]에서 보았죠 이번 시간에는 그렇다면, 프로그램 생성과 처리 단계도 알았고, 언어가 가지는 속성도 알았으니 프로그래밍 언어의 패러다임에 대해 알아봅시다 즉 언어 자체의 패턴을 보는 것입니다 제가 흔히 쓰는 언어는 명령형 언어인데, 왜 다른 패러다임으로 전환을 시도하는가, 어떤게 필요했을까에 대해 고민한 흔적이 보이니 조금은 더 즐겁게 공부 할 수 있었던거 같습니다 명령형 언어 논리형.. Computer Science/프로그래밍 언어론 2023. 4. 11. 구문 분석(syntax analysis) 구문 분석(syntax analysis) 구문 분석(syntax analysis)은 소스 코드를 구문적으로 분석하여 프로그램의 구조를 분석하고, 이를 통해 프로그램이 올바른 구조로 작성되었는지 검사하는 과정입니다. 구문 분석은 프로그래밍 언어의 문법 규칙을 따르는지 검사하며, 일반적으로 컴파일러나 인터프리터에서 수행됩니다. 구문 분석 과정에서는 프로그래밍 언어의 문법 규칙을 나타내는 문법이 사용됩니다. 문법은 토큰(token)과 규칙(rule)로 이루어져 있으며, 토큰은 문법적으로 의미 있는 최소 단위이고 규칙은 토큰의 조합을 나타냅니다. 구문 분석기는 이러한 문법을 사용하여 소스 코드를 토큰으로 분해하고, 토큰의 조합이 문법 규칙을 따르는지 검사합니다. 구문 분석 과정은 프로그래밍 언어의 구조를 이해하.. Computer Science/프로그래밍 언어론 2023. 4. 9. 객체 지향 언어 객체 지향 언어 객체 지향 언어는 프로그래밍의 다른 패러다임인 명령형, 함수형, 논리형 언어와 함께 사용할 수 있는 프로그래밍 패러다임입니다. 객체 지향 언어의 등장 계기는 주로 코드의 유지보수와 대규모 시스템을 다루기 위한 목적이었습니다. 객체 지향 프로그래밍은 데이터와 데이터와 관련된 기능을 클래스라는 구조로 묶어 처리하는 방식입니다. 이를 통해 데이터와 기능을 함께 캡슐화하며, 코드의 재사용성과 모듈성을 높입니다. 이러한 특징은 유지보수의 용이성과 대규모 시스템 개발에 큰 이점을 가져다 줍니다. 객체 지향 언어는 현재 프로그래밍 분야에서 매우 인기있는 패러다임으로 인식되고 있으며, 대표적인 객체 지향 언어로는 Java, C++, Python, C# 등이 있습니다. 이러한 언어들은 객체 지향의 개념을.. Computer Science/프로그래밍 언어론 2023. 4. 9. 함수형 언어 함수형 언어 함수형 언어는 명령형 언어와 달리, 사람에게 친화적이고 추상화된 프로그래밍 패러다임을 추구하고자 생성 되었다 이를 통해 프로그래머가 사람의 생각과 가까운 방식으로 코드를 작성할 수 있다. 함수형 언어는 함수와 논리형 언어의 개념을 기반으로 하며, 코드를 더 간결하고 이해하기 쉬운 형태로 표현할 수 있다. 이러한 특성 덕분에 함수형 언어는 코드의 예측성과 가독성을 높이며, 테스트와 디버깅에 유리하다. [[@최지우]] 간사님 : 최근 언어에 함수형 프로그래밍을 접목하는 시도가 늘어나고 있다 고차 함수란, 함수 자체를 인자로 전달하거나 반환 값으로 사용할 수 있는 함수를 말합니다. 이를 통해 코드를 더 간결하게 작성하고, 더 유연한 프로그래밍 스타일을 지원할 수 있습니다. 최근에는 함수형 프로그래.. Computer Science/프로그래밍 언어론 2023. 4. 9. 이전 1 ··· 34 35 36 37 38 39 40 ··· 49 다음