aomnutza58

Authentication

What is authentication?

image

In cyber security, authentication is the process of verifying someone’s or something’s identity. Authentication usually takes place by checking a password, a hardware token, or some other piece of information that proves identity. Just as an airline worker checks a passport or an identification card to verify a person’s identity when they board a plane, computer systems need to be sure a person really is who they say they are. At an airport, this authentication process ensures only people with a ticket get on the plane; for digital systems, this ensures data is viewed and used by the right people.

Authentication does not just apply to verifying human users. Computer systems also need to check servers, software, APIs, and other computers to be sure they are who they “say” they are.

What is the purpose of authentication?

Authentication is used to verify that you are who you say you are. After a user’s identity is confirmed, for instance with a username and password, that identity may be used in an authorization policy to determine the appropriate access privileges. Organizations today must ensure that the right users are given access to the right resources, whether it is physical or–increasingly–digital.

How is authentication used in a security context?

Authentication is an important part of identity and access management (IAM), which dictates who can view data and what they can do with it. But it applies to many other areas of security as well, including:

How does authentication work?

Because a computer cannot “recognize” a person or another computer the way a human can, the process of authentication relies on objective criteria that a computer can measure. One type of objective criteria involves checking for some quality that the person or computer in question is known to have. Another involves the use of a technology called public key cryptography to prove identity.

Verifying identity via authentication factors

This type of authentication involves checking a measurable characteristic of identity against a corresponding digital record. The characteristics that an authentication system will check are called “factors.” Three common authentication factors are widely used today:

1. Something the person knows

This authentication factor checks a piece of secret knowledge that only the real person should have. A username-and-password combination is the classic example of this factor. Security questions and PIN codes also are examples.

2. Something the person has

This authentication factor checks if the person possesses a physical item they were issued or are known to have. Many people use this authentication factor every day: they live in a house or an apartment that they can unlock with a metal key. Possession of this key, therefore, proves they are authorized to enter the premises, and enables them to do so.

In digital systems, this authentication factor does not rely on an old-fashioned lock and key. But it uses a similar principle by checking for a physical token. There are two types of tokens: soft tokens and hard tokens.

Soft tokens: A soft token involves verifying possession of a device, like a smartphone, by sending a code to that device and asking the user to enter it. The code may be sent as a text message or through an app that generates random codes.
Hard tokens: A hard token is a small physical item that connects to a computer or mobile device via Bluetooth, a USB port, or some other port. Users must plug this token into their device to verify their identity.

Some security experts consider hard tokens more secure than soft tokens. An attacker could remotely intercept a code on its way to a user’s phone and use that code to impersonate the user. But it is much harder to steal a hard token: the attacker needs to physically access the token in order to do so.

3. Something the person is

This authentication factor assesses a person’s inherent qualities. In real life, people do this all the time — two friends may recognize each other by their appearance or manner of speaking, for instance. A computer could do the same by scanning a person’s face or retina, verifying their thumbprint, measuring the frequencies of their voice, or checking the results of a blood test (although this last one is more rare).

Additional authentication factors

Some members of the security industry have proposed or used additional authentication factors besides the three main ones listed above. Two of these additional factors are location (where a user is) and time (when they are accessing the system).

Verifying identity via digital certificates

In addition to using the authentication factors described above, known and trusted entities can also be issued digital certificates. A digital certificate is a small digital file that contains information for verifying identity, just as an ID card contains information that verifies a person’s identity in real life.

Digital certificates receive a digital signature to prove their authenticity from the authority that issues them, like how a passport, ID card, or piece of paper currency may have a watermark proving it is not counterfeit.

A digital certificate also contains a string of random values called a public key. The public key corresponds to a private key that is stored separately. The entity that has the certificate can digitally sign data with these keys to prove that it possesses the private key and is therefore authentic.

Currently, digital certificates are not often used to verify the identity of individual people. But most people rely on digital certificates every day without realizing it.

Whenever someone loads a website that uses HTTPS, the secure version of HTTP, the TLS protocol uses the website’s digital certificate (called an SSL certificate or TLS certificate) to authenticate the website. DKIM, which authenticates email senders, is another example of a technology that uses this method instead of checking authentication factors. DKIM helps email providers sort and block spam emails.

What are the different authentication protocols?

Network authentication protocols are used to help securely transfer identity credentials for authentication between the subject (user or device) and the authentication server. There are several different authentication protocols for network access control, including:

What is multi-factor authentication (MFA)?

Multi-factor authentication (MFA) is the process of verifying a person’s identity by checking two or more authentication factors, rather than just one. MFA is a stronger type of authentication than single-factor authentication, because it is much harder to fake two of these factors than it is to fake one of them.

An attacker might be able to steal Bob’s username and password (perhaps through a phishing attack). But if Bob has to scan his face as well, the attacker will not be able to fake Bob’s identity, since their face does not look like Bob’s face. Or, if Bob has to plug a hard token into his computer in addition to entering his password, the attacker would have to steal this token as well. While possible, such a theft is much more difficult, making account takeover less likely.

For true MFA, separate factors have to be checked. Assessing multiple instances of one factor is not MFA. For instance, if an application has a user enter a password and answer security questions to authenticate, this is still single-factor authentication. Password entry and security questions both assess the “something you know” factor.

Because of the increased security it offers, MFA is a core principle of Zero Trust security, a security model that requires identity verification for every user and device that accesses a private network.

What is two-factor authentication (2FA)?

Two-factor authentication (2FA) is what MFA is called when exactly two factors are used. The most common type of two-factor authentication is “something you know” + “something you have.” For instance, in addition to entering their passwords, many people have codes sent to their phones before they can access their bank accounts (an example of the “soft token” version of this factor).

Today, many businesses are employing 2FA in order to reduce the impact of phishing attacks. For example, Google was able to eliminate account takeover attacks by using 2FA with hard tokens for authentication.

What is the difference between authentication and authorization?

While authentication is concerned with verifying identity, authorization is concerned with permissions, or what someone is allowed to do once they gain access to a protected system or resource.

Suppose Bob works in his company’s marketing department. Bob enters his password, scans his face, and inserts his hard token to log in to his company’s network. At this point, authentication is complete.

After logging in, Bob does not have access to every data file in the company’s possession. Authorization determines what Bob can and cannot see. As a marketer, he is authorized to see some data, like a list of potential customers to whom the company will send marketing messages, but not other data, like the company’s main codebase or its list of employee salaries.

What is single sign-on (SSO)?

Modern corporate employees have to authenticate to many different cloud-based applications. This forces those employees to establish many sets of authentication factors — one set for each application — and creates potential security concerns:

Single sign-on (SSO) is a service that enables users to authenticate only once. Users sign in to the SSO service, which then passes on this authentication to every application by sending a digital authentication message to each application as needed.

SSO also gives IT teams a single point at which to enforce security policies. Not all applications support 2FA, but if the SSO service supports it, then 2FA can be used anyway. IT teams can also enforce requirements for password length and complexity via an SSO service, putting less of a burden on users to remember multiple passwords.

What is Security Assertion Markup Language (SAML)?

SSO authentication messages use a protocol called Security Assertion Markup Language (SAML). SAML is a standardized method for telling external applications that a user is who they say they are.

A message authenticating a user is called a SAML “assertion.” Once an application receives a SAML assertion for a user, it does not need to authenticate the user on its own, because it knows the SSO service has already done this.

SAML vs. OpenID Connect (OIDC)

OpenID Connect (OIDC) is another authentication protocol that is growing in use by SSO providers. OIDC functions similarly to SAML, but it formats data differently, among other distinctions; while SAML formats data via XML, OIDC uses JSON.

How do I benefit from a user authentication policy?

A user authentication policy may be used to help ensure that only the intended audience is accessing certain assets in your organization. User authentication policies strive to ensure that the person requesting sensitive information and data is the right person to access that information.

Authentication คืออะไร

image

Authentication

Authentication คือ ระบบการยืนยันตัวตนที่เมื่อเราจะเข้าใช้งานในเว็บไซต์ แอปพลิเคชั่นหรืออะไรก็ตามบนโลกออนไลน์ พูดง่ายๆก็คือ การ Log- in นั้นเองเช่น การเข้าสู่ระบบ Email, การเข้าสู่ระบบ Internet Banking และการเข้าสู่ระบบ social media ต่างๆ เพื่อเป็นการยืนยันตัวตนว่าเราคือคนๆนี้และกำลังจะใช้บริการต่างๆในฐานะคนนี้ พร้อมทั้งทำการตรวจสอบสิทธิ์ว่าผู้ใช้งานระบบนั้นมีสิทธิ์ใช้ได้และเป็นเจ้าของข้อมูลเหล่านั้นจริงๆ โดยการยืนยันนั้นก็จะมีการใส่ Username และ Password ไม่ว่าจะเป็นแบบที่เรากำหนดตั้งเองหรือแบบที่ระบบกำหนดมาให้เราใช้ตาม มันมีชื่อเรียกสั้นๆว่า AuthN.

การทำ Authentication มี 2 แบบ

1. การระบุตัวตน (Identification)

คือผู้ใช้งานนั่นระบุว่าตนเองคือใครผ่านการล็อคอินโดยใช้ username และ password ซึ่งเป็นวิธีพื้นฐานที่หลายๆเว็บไซต์ หลายๆแอปพลิเคชั่นทำกัน

2. การพิสูจน์ตัวตน (Authentication)

คือ ขั้นตอนที่ตรวจสอบหลักฐานเพื่อแสดงว่าเป็นบุคคลที่กล่าวอ้างจริง เป็นการยืนยันตัวตนอีกรอบ ใช้ในเวลาที่เราใช้แอปธนาคารในการทำธุรกรรมทางการเงิน ซึ่งมักจะใช้ในการยืนยันตนที่ต้องการความปลอดภัยขั้นสูง ซึ่งในปัจจุบันนั่นก็มีอีกหลายวิธีมากมายที่จะยืนยันตัวของเราได้อย่างปลอดภัยและมั่นใจว่าจะไม่มีใครเอา username และ password ของเราไปใช้ได้ เช่น การใช้ระบบ Biometric การสแกนลายนิ้วมือ การสแกนใบหน้าหรือรูม่านตาเป็นต้น แต่วิธีที่ดีรับความนิยมมาก การยืนยันการทำรายการโดยการกรอกรหัส OTP (One Time Password) นั่นเอง

ขั้นตอนการทำงานของ Authentication

ซึ่งในขั้นตอนของการ Authentication นั้น สำหรับการตรวจสอบหลักฐานเพื่อแสดงว่าเป็นบุคคลที่กล่าวอ้างนั้นจริงนั้นจะประกอบไปด้วยหลายวิธี โดยใช้หลักฐานต่างๆ กันออกไปแล้วแต่วิธีการ โดยส่วนมากในหนังสือหลายๆเล่มระบุไว้ 3 วิธี บ้างที่ก็ 5 วิธี วันนี้ผู้เขียนจะมาอธิบาย 3 ละกันนะครับ เพราะ 3 วิธีนี้มันเป็นวิธีที่เพื่อนน่าจะรู้จัก (Well-Know)และคุ้นชินกับการใช้งานมันดีอยู่แล้ว เพื่อตอนนำไปใช้งานจะได้เข้าใจมากขึ้น

ความสำคัญของการพิสูจน์ตัวตน

โดยในขั้นตอนของการ Authentication ดังที่อธิบายมาทั้ง 3 วิธีนั้นสามารถนำมาใช้พร้อมกันได้เลยนะครับ แต่ทั้งนี้ก็ขึ้นอยู่กับการใช้งานของเราเอง และตัวระบบว่าสามารถรองรับวิธีการไหนนี้ได้บ้าง แต่ขอแนะนำเพื่อนๆว่าไม่ควรนำมาใช้เพียงวิธีใดวิธีหนึ่ง เพราะมันไม่ค่อยมีประสิทธิภาพ คือสมมติถ้าเราใช้แค่ Password อย่างเดียว (Single factor Authentication) ถ้าเกิด Hacker ขโมยหรือเดา Password เราได้เขาก็จะสามารถปลอมเป็นตัวเรา และเข้าไปทำโขมยข้อมูลและเงินของเราได้

ดังนั้นควรนำแต่ละคุณลักษณะมาใช้ร่วมกัน แต่บ้างระบบที่เราใช้อาจจะมีการ Design แบบ Multi-factor Authentication มาให้เราแล้วเช่นพวก App เกี่ยวกับเงินๆๆทองๆ เช่นเมื่อเราอยากโอนเงินให้ใครสักคน App Mobile Banking จะตรวจสอบว่าเบอร์มือถือที่ใช้ตรงกับที่ผูกไว้กับ Userไหม ซึ่งเท่ากับการป้องกันชั้นแรก something you have คือเรามีซิมที่ผูกกับเบอร์มือถือและเมื่อเราจะเข้า App หรือตอนโอนเงิน เราก็ต้องใส่ PIN เป็นชั้นที่สองเรียกว่า something you know หรือบาง App ของธนาคารอาจจะใช้ลายนิ้วมือเป็นชั้นที่สองก็จะเป็น something you are ซึ่งการนำแต่ละลักษณะของการพิสูจน์ตัวตนมาใช้ร่วมกันมากกว่า 1 ลักษณะ จะช่วยเพิ่มประสิทธิภาพในการรักษาความปลอดภัยได้ดียิ่งขึ้นนะครับ

ประเภทของการพิสูจน์ตัวตน (Authentication Types)

จากที่ได้กล่าวไปซะยาวก่อนหน้าแล้วว่าการพิสูจน์ตัวตนนั้นถือว่ามีความสำคัญที่สุดกับการเข้าใช้ระบบอย่างไร ถึงตรงนี้เรามาดูต่อกันว่าการพิสูจน์ตัวตนที่เขานิยมใช้กันอยู่ในปัจจุบันมีอะไรบ้างและแต่ละชนิดมีลักษณะอย่างไร​

เป็นการใช้ข้อมูลอัตลักษณ์ทางกายภาพของบุคคลซึ่งเป็นลักษณะเฉพาะและลอกเลียนแบบกันไม่ได้ เช่น ใบหน้า ลายนิ้วมือ หรือพฤติกรรมของผู้ใช้ จึงมีการนำเทคโนโลยีนี้มาช่วยในการพิสูจน์ตัวตน เพื่อเพิ่มความปลอดภัยก่อนเข้าสู่ระบบ เช่น การใช้ควบคู่กับการใช้รหัสผ่านในการเข้าสู่ระบบ

การพิสูจน์ตัวตนแบบ​Time-synchronous authentication เป็นวิธีการที่สร้างรหัสผ่านโดยมีการกำหนดช่วงระยะเวลาการใช้งาน โดยปกติแล้วรหัสผ่านจะถูกเปลี่ยนทุกๆ 30​ วินาที การสร้างรหัสผ่านจะเป็นไปอย่างต่อเนื่อง เมื่อผู้ใช้ต้องการเข้าสู่ระบบก็ใส่รหัสผ่าน เพื่อเข้าสู่ระบบ ระบบจะทำการตรวจสอบเวลาและรหัสผ่านที่ผู้ใช้ใส่ลงไป กับ​ Server​ ว่ารหัสผ่านที่ใส่ตรงกับเวลาที่ Token สร้าง และมีอยู่ในเซิร์ฟเวอร์จริง จึงยินยอมให้ผู้ใช้เข้าสู่ระบบ

การพิสูจน์ตัวตนแบบอะซิงโครนัส หรือเรียกอีกอย่างหนึ่งว่า “challenge-response” ถูกพัฒนาขึ้น เป็นลำดับแรกๆ ของระบบการใช้ “รหัสผ่านซึ่งเปลี่ยนแปลงได้” ซึ่งถือได้ว่าเป็นการป้องกันการจู่โจมที่ปลอดภัยที่สุด เพราะเนื่องจากว่าเมื่อผู้ใช้ต้องการจะเข้าสู่ระบบ ผู้ใช้จะต้องทำการร้องของไปยัง​ Server​ จากนั้นจะได้รับ challenge string มาเพื่อให้ผู้ใช้ใส่ลงใน Token จากนั้น Token จะทำการคำนวณรหัสผ่านออกมาให้ผู้ใช้ ผู้ใช้จึงสามารถนำรหัสผ่านเพื่อเข้าสู่ระบบได้

เป็นการแสดงความเป็นเจ้าของข้อมูล เพราะข้อความใดก็ตามที่สร้างโดย Private Key ของคนๆนั้น จะถอดได้โดยใช้ Public Key ของคนๆนั้นเท่านั้น ดังนั้นหากเรายืนยันได้ว่า Public Key ที่นำมาใช้ถอดรหัสเป็นของคนนั้นจริง และสามารถถอดรหัสได้ เราก็สามารถยืนยันได้ว่าข้อความนั้นมาจากคนๆนั้นจริง​ ซึ่งวิธีนี้จะแบ่ง Key​ ออกเป็น 2 ชนิด ที่ต้องใช้ควบคู่กันเสมอในการเข้ารหัสและถอดรหัสคือ

กุญแจสาธารณะ (public key) เป็นกุญแจที่เปิดเผยให้ชาวโลกรู้ได้
กุญแจส่วนตัว (private key) เป็นกุญแจที่เราเก็บไว้ใช้เองโดยไม่เปิดเผยให้คนอื่นรู้

เป็นวิธีการพิสูจน์ตัวตนโดยใช้การถาม-ตอบ​ถ้าให้เห็นภาพง่ายๆ​ ว่ามีการนำไปใช้อย่างไร​ เช่นตอนที่เราโทรหา​ Call​ Center ก่อนที่พนักงานจะให้ข้อมูลกับเราเขาก็จะข้อมูลเราก่อนเช่นชื่อ​-นามสกุล​ วันเดือนปีเกิดหรือเลขบัตรประชาชน​ เพื่อเป็นการพิสูจน์​ตัวตนว่าเป็นเราจริงๆ​

Ref : cloudflare, cisco, medium, monsterconnect